src/Tools/Metis/src/Resolution.sig
changeset 39348 6f9c9899f99f
child 39349 2d0a4361c3ef
equal deleted inserted replaced
39347:50dec19e682b 39348:6f9c9899f99f
       
     1 (* ========================================================================= *)
       
     2 (* THE RESOLUTION PROOF PROCEDURE                                            *)
       
     3 (* Copyright (c) 2001-2007 Joe Hurd, distributed under the GNU GPL version 2 *)
       
     4 (* ========================================================================= *)
       
     5 
       
     6 signature Resolution =
       
     7 sig
       
     8 
       
     9 (* ------------------------------------------------------------------------- *)
       
    10 (* A type of resolution proof procedures.                                    *)
       
    11 (* ------------------------------------------------------------------------- *)
       
    12 
       
    13 type parameters =
       
    14      {active : Active.parameters,
       
    15       waiting : Waiting.parameters}
       
    16 
       
    17 type resolution
       
    18 
       
    19 (* ------------------------------------------------------------------------- *)
       
    20 (* Basic operations.                                                         *)
       
    21 (* ------------------------------------------------------------------------- *)
       
    22 
       
    23 val default : parameters
       
    24 
       
    25 val new :
       
    26     parameters -> {axioms : Thm.thm list, conjecture : Thm.thm list} ->
       
    27     resolution
       
    28 
       
    29 val active : resolution -> Active.active
       
    30 
       
    31 val waiting : resolution -> Waiting.waiting
       
    32 
       
    33 val pp : resolution Print.pp
       
    34 
       
    35 (* ------------------------------------------------------------------------- *)
       
    36 (* The main proof loop.                                                      *)
       
    37 (* ------------------------------------------------------------------------- *)
       
    38 
       
    39 datatype decision =
       
    40     Contradiction of Thm.thm
       
    41   | Satisfiable of Thm.thm list
       
    42 
       
    43 datatype state =
       
    44     Decided of decision
       
    45   | Undecided of resolution
       
    46 
       
    47 val iterate : resolution -> state
       
    48 
       
    49 val loop : resolution -> decision
       
    50 
       
    51 end