equal
deleted
inserted
replaced
1 (* ========================================================================= *) |
1 (* ========================================================================= *) |
2 (* NORMALIZING FORMULAS *) |
2 (* NORMALIZING FORMULAS *) |
3 (* Copyright (c) 2001-2007 Joe Hurd, distributed under the BSD License *) |
3 (* Copyright (c) 2001-2009 Joe Hurd, distributed under the BSD License *) |
4 (* ========================================================================= *) |
4 (* ========================================================================= *) |
5 |
5 |
6 signature Normalize = |
6 signature Normalize = |
7 sig |
7 sig |
8 |
8 |
11 (* ------------------------------------------------------------------------- *) |
11 (* ------------------------------------------------------------------------- *) |
12 |
12 |
13 val nnf : Formula.formula -> Formula.formula |
13 val nnf : Formula.formula -> Formula.formula |
14 |
14 |
15 (* ------------------------------------------------------------------------- *) |
15 (* ------------------------------------------------------------------------- *) |
|
16 (* Conjunctive normal form derivations. *) |
|
17 (* ------------------------------------------------------------------------- *) |
|
18 |
|
19 type thm |
|
20 |
|
21 datatype inference = |
|
22 Axiom of Formula.formula |
|
23 | Definition of string * Formula.formula |
|
24 | Simplify of thm * thm list |
|
25 | Conjunct of thm |
|
26 | Specialize of thm |
|
27 | Skolemize of thm |
|
28 | Clausify of thm |
|
29 |
|
30 val mkAxiom : Formula.formula -> thm |
|
31 |
|
32 val destThm : thm -> Formula.formula * inference |
|
33 |
|
34 val proveThms : |
|
35 thm list -> (Formula.formula * inference * Formula.formula list) list |
|
36 |
|
37 val toStringInference : inference -> string |
|
38 |
|
39 val ppInference : inference Print.pp |
|
40 |
|
41 (* ------------------------------------------------------------------------- *) |
16 (* Conjunctive normal form. *) |
42 (* Conjunctive normal form. *) |
17 (* ------------------------------------------------------------------------- *) |
43 (* ------------------------------------------------------------------------- *) |
18 |
44 |
19 val cnf : Formula.formula -> Formula.formula list |
45 type cnf |
|
46 |
|
47 val initialCnf : cnf |
|
48 |
|
49 val addCnf : thm -> cnf -> (Thm.clause * thm) list * cnf |
|
50 |
|
51 val proveCnf : thm list -> (Thm.clause * thm) list |
|
52 |
|
53 val cnf : Formula.formula -> Thm.clause list |
20 |
54 |
21 end |
55 end |