using Catlab.Graphs, Catlab.Graphics using Catlab.Theories, Catlab.CategoricalAlgebra G = cycle_graph(Graph, 4) ⊕ path_graph(Graph, 2) ⊕ cycle_graph(Graph, 1) add_edge!(G, 3, add_vertex!(G)) to_graphviz(G, node_labels=true, edge_labels=true) (A = Subobject(G, V=1:4, E=[1,2,4])) |> to_graphviz (B = Subobject(G, V=[2,3,4,7,8], E=[2,3,6,7])) |> to_graphviz A ∨ B |> to_graphviz A ∧ B |> to_graphviz (A ⟹ B) |> to_graphviz ¬A |> to_graphviz (C = Subobject(G, V=1:4)) |> to_graphviz ¬(¬C) |> to_graphviz (A \ B) |> to_graphviz ~A |> to_graphviz (A ∧ ~A) |> to_graphviz