Download MONA Version 1.4 User Manual
Transcript
MONA 1.4 Boolean function a1 ∧ a2 a1 ∨ a2 a1 ⇒ a2 a1 ⇔ a2 mode dfaAND dfaOR dfaIMPL dfaBIMPL Figure 14: Product operation modes DFA *dfaProject(DFA *a, unsigned index ) - projects away track index from a and determinizes the resulting automaton. void dfaRightQuotient(DFA *a, unsigned index ) - performs the right-quotient operation described in Section 3.1. DFA *dfaMinimize(DFA *a ) - minimizes a , that is, constructs an automaton with the minimal number of states and BDD nodes accepting and rejecting the same languages as the original automaton. Analysis and printing The following functions generate information about automata: char *dfaMakeExample(DFA *a, int kind, int num, unsigned indices []) generates a shortest satisfying example (if kind = +1) or a counter-example (if kind = −1) to the formula represented by a using the technique described in Section 2.3. The array indices of length num contains the free variables. The resulting char array is the concatenation of the rows of ’0’s, ’1’s, and ’X’s of the example string. void dfaAnalyze(DFA *a, int num, char *names [], unsigned indices [], char orders [], int treestyle ) analyzes the automaton a and prints the results as shown in Section 2.3. The arrays names , indices , and orders are for the free variables. These arrays have length num . The array orders contains 0s, 1s, and 2s representing boolean, first-order, and secondorder respectively. If treestyle is non-zero, examples are written in GTA style. void dfaPrintVitals(DFA *a ) - prints the number of states and BDD nodes in a . void dfaPrint(DFA *a, int num, char *names [], unsigned indices []) - prints a textual description of a as shown in Section 2.4. The arguments num , names , and indices are the number of free variables, their names, and their indices, respectively. void dfaPrintGraphviz(DFA *a, int num, unsigned indices []) - prints a in dot format as illustrated in Figure 3. void dfaPrintVerbose(DFA *a ) - prints a verbose textual description of a as illustrated in Section 5.1. 65