60P      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO SafePQRSTUPRSTUPQRSTUSafeVWXYZVWXYZVWXYZNone:IJL #assumes total ordering on variables[Dinputs and output for binary op (unary will be simulated by binary)Apply function in each node, bottom-up. return the value in the root node. Will cache intermediate results. You might think that >count_models = fold (b -> if b then 1 else 0) (v l r -> l + r)A but that's not true because a path might omit variables. Use  full_fold) to fold over interpolated nodes as well.iRun action in each node, bottum-up. return the value in the root node. Will cache intermediate results.Apply function in each node, bottom-up. Also apply to interpolated nodes: when a link from a node to a child skips some variables: for each skipped variable, we run the branchv function on an interpolated node that contains this missing variable, and identical children. With this function, number_of_models can be implemented as 'full_fold vars (bool 0 1) ( const (+) )&. And it actually is, see the source.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%all variables that occur in the nodes list of all paths!$list of all models (a.k.a. minterms)"\]^_[`abcd !e"f#$% !"#$% !"$%#\]^_[`abcd !e"f#$%None( 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.)same as display, but does not show the False! node and the edges pointing to False.*la textual representation of the BDD that is suitable as input to the "dot" program from the graphviz suite.()*suppress pointers to False+,-.()*+,-.()*+,-.()*+,-.None0Variable with given parity/01/01/01/01NoneMT5remove variables existentially6remove variable existentially9replace variable by valueghi2j34klm56789:  23456789#  23496587ghi2j34klm56789: None ! ! None/   !()*+,-./0123456789None:LGO. Coudert , J. C. Madre: ?http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.38.3330<=>?@ABCDEFGHIJK<=>?@ABCDEFGHIJK@AB<=>?CDEFGHIJK <=>?@ABCDEFGHIJKNoneOsolve the constrained linear optimisation problem: returns an assignment that is a model of the BDD and maximises the sum of weights of variables. Keys missing from the weight map, but present in the BDD, get weight zero.nOopOOnOopq                 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`aa]_`b cdefghi]j7klmnopqrstu!obdd-0.8.1-CR0St8DDShn6S3iooelpaiOBDD.Operation OBDD.Data OBDD.Display OBDD.Make OBDD.Cube OBDD.LinoptOBDD.IntIntMapOBDD.VarIntIntMap OBDD.PropertyOBDD#ersatz-0.3.1-L0BmH7xQojBC75YDl7ZMWa Ersatz.Bitchoosexoranyallnornandorandnot==>||&&falsetrueboolBooleanNodeLeafBranchtopfoldfoldM full_fold full_foldMsizenumber_of_modelsaccess satisfiablenull some_model variablespathsmodelsmakecachedregisterchecked_register$fEqNode $fOrdNodedisplaydisplay'toDotfreshmkLabelunquotetextconstantunitvariableequivunarybinary exists_manyexists forall_manyforall instantiate $fBooleanOBDD$fShowSymmetricityCheckSignOccursOriginalCubeprimesnicesignoccursoriginalprocessprimednfcnfgreedclause $fEqCheck $fOrdCheck $fShowChecklinopt IntIntMapempty singletonlookupinsert VarIntIntMapcachecoreicorenextIndexunIndex icore_false icore_true select_one Symmetricity Asymmetric Symmetric fold_by_sizesymmetric_binarybinary_compItemnoaddadd