úÎà0*      !"#$%&'()Safe*+,-./*,-./*+,-./Safe012340123401234None:IJ #assumes total ordering on variables5Dinputs and output for binary op (unary will be simulated by binary)ÿNumber of satisfying assignments with given set of variables. The set of variables must be given since the current OBDD may not contain all variables that were used to construct it, since some nodes may have been removed because they had identical children. does the OBDD have any models? "does the OBDD not have any models? &randomly select one model, if possible Hlist of all models (WARNING not using variables that had been deleted) Calls the dot executable (must be in $PATH{) to draw a diagram in an X11 window. Will block until this window is closed. Window can be closed gracefully by typing q when it has focus.btoDot outputs a string in format suitable for input to the "dot" program from the graphviz suite. 67895:;<=> ?@    67895:;<=> ?@NoneVariable with given parityNoneMT#`FIXME this is a silly implementation. Negation should be done by switching values in Leaves (?)&Aremove variables existentially TODO: needs better implementation'@remove variable existentially TODO: needs better implementation(replace variable by valueABC !"D#$%EF&'(G !"#$%&'(#!" $%('&ABC !"D#$%EF&'(G32None   None  !"#$%&'(H      !"#$%&'()*+,-./011234566245789:;<=>2?@ABCDEFGH!obdd-0.4.0-7XIK8Xa2mkwIX9WfH0uNzH OBDD.Data OBDD.MakeOBDD.OperationOBDD.IntIntMapOBDD.VarIntIntMap OBDD.PropertyOBDDNodeLeafBranchtopfoldfoldMsizenumber_of_modelsaccess satisfiablenull some_model all_modelsmakecachedregisterchecked_registerdisplaytoDot$fEqNode $fOrdNodeconstantfalsetrueunitvariable&&||boolequivxorimpliesandornotunarybinary exists_manyexists instantiate$fShowSymmetricity IntIntMapempty singletonlookupinsert VarIntIntMapcachecoreicorenextIndexunIndex icore_false icore_true select_onefresh Symmetricity Asymmetric Symmetric fold_by_sizesymmetric_binarybinary_comp