--- /dev/null
+digraph solver_states {
+
+ size="8,5";
+
+ graph [fontsize=14];
+ edge [fontsize=12];
+ node [fontsize=12];
+ node [shape=doublecircle]; Installed Uninstalled;
+ node [shape=circle]; Satisfied Incomplete;
+ node [shape=box];
+// ranksep = 1.5;
+// rankdir = LR;
+// nodesep = 0.5;
+ edge [style="setlinewidth(1)"];
+
+ Installed [label="Installed"];
+ Uninstalled [label="Uninstalled"];
+ Satisfied [label="Satisfied"];
+ Incomplete [label="Incomplete"];
+
+ Uninstalled -> To_be_installed [ label ="install,explicit"];
+ Uninstalled -> To_be_installed [ label ="install,implicit"];
+ Installed -> To_be_removed [ label ="remove,explicit"];
+ Installed -> To_be_removed [ label ="remove,implicit"];
+ To_be_installed -> Installed [ label ="commit"];
+ To_be_removed -> Uninstalled [ label ="commit"];
+
+ Uninstalled -> Satisfied [ label="establish,good" ];
+ Uninstalled -> Incomplete [ label="establish,bad" ];
+
+ Installed -> Incomplete [ label="establish,bad" ];
+
+ Incomplete -> To_be_installed [ label="resolve" ];
+ Incomplete -> To_be_removed [ label="remove" ];
+
+ Satisfied -> Installed [ label="install" ];
+}