src/Tools/Metis/src/Problem.sig
author wenzelm
Sat, 09 Jul 2011 21:53:27 +0200
changeset 43721 fad8634cee62
parent 39502 cffceed8e7fa
child 72004 913162a47d9f
permissions -rw-r--r--
echo prover input via raw_messages, for improved protocol tracing;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
39348
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
     1
(* ========================================================================= *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
     2
(* CNF PROBLEMS                                                              *)
39502
cffceed8e7fa fix license
blanchet
parents: 39501
diff changeset
     3
(* Copyright (c) 2001 Joe Hurd, distributed under the BSD License            *)
39348
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
     4
(* ========================================================================= *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
     5
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
     6
signature Problem =
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
     7
sig
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
     8
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
     9
(* ------------------------------------------------------------------------- *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    10
(* Problems.                                                                 *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    11
(* ------------------------------------------------------------------------- *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    12
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    13
type problem =
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    14
     {axioms : Thm.clause list,
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    15
      conjecture : Thm.clause list}
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    16
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    17
val size : problem -> {clauses : int,
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    18
                       literals : int,
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    19
                       symbols : int,
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    20
                       typedSymbols : int}
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    21
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    22
val freeVars : problem -> NameSet.set
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    23
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    24
val toClauses : problem -> Thm.clause list
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    25
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    26
val toFormula : problem -> Formula.formula
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    27
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    28
val toGoal : problem -> Formula.formula
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    29
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    30
val toString : problem -> string
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    31
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    32
(* ------------------------------------------------------------------------- *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    33
(* Categorizing problems.                                                    *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    34
(* ------------------------------------------------------------------------- *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    35
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    36
datatype propositional =
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    37
    Propositional
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    38
  | EffectivelyPropositional
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    39
  | NonPropositional
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    40
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    41
datatype equality =
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    42
    NonEquality
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    43
  | Equality
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    44
  | PureEquality
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    45
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    46
datatype horn =
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    47
    Trivial
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    48
  | Unit
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    49
  | DoubleHorn
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    50
  | Horn
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    51
  | NegativeHorn
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    52
  | NonHorn
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    53
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    54
type category =
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    55
     {propositional : propositional,
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    56
      equality : equality,
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    57
      horn : horn}
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    58
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    59
val categorize : problem -> category
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    60
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    61
val categoryToString : category -> string
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    62
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    63
end