src/Tools/Metis/src/Normalize.sig
changeset 39353 7f11d833d65b
parent 23510 4521fead5609
parent 39349 2d0a4361c3ef
child 39443 e330437cd22a
equal deleted inserted replaced
39313:41ce0b56d858 39353:7f11d833d65b
     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