src/Tools/Metis/src/Waiting.sig
author blanchet
Mon, 13 Sep 2010 21:09:43 +0200
changeset 39348 6f9c9899f99f
child 39349 2d0a4361c3ef
permissions -rw-r--r--
new version of the Metis files
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
(* THE WAITING SET OF CLAUSES                                                *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
     3
(* Copyright (c) 2002-2007 Joe Hurd, distributed under the GNU GPL version 2 *)
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 Waiting =
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
(* The parameters control the order that clauses are removed from the        *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    11
(* waiting set: clauses are assigned a weight and removed in strict weight   *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    12
(* order, with smaller weights being removed before larger weights.          *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    13
(*                                                                           *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    14
(* The weight of a clause is defined to be                                   *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    15
(*                                                                           *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    16
(*   d * s^symbolsWeight * v^variablesWeight * l^literalsWeight * m          *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    17
(*                                                                           *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    18
(* where                                                                     *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    19
(*                                                                           *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    20
(*   d = the derivation distance of the clause from the axioms               *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    21
(*   s = the number of symbols in the clause                                 *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    22
(*   v = the number of distinct variables in the clause                      *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    23
(*   l = the number of literals in the clause                                *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    24
(*   m = the truth of the clause wrt the models                              *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    25
(* ------------------------------------------------------------------------- *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    26
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    27
type weight = real
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    28
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    29
type modelParameters =
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    30
     {model : Model.parameters,
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    31
      initialPerturbations : int,
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    32
      maxChecks : int option,
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    33
      perturbations : int,
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    34
      weight : weight}
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    35
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    36
type parameters =
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    37
     {symbolsWeight : weight,
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    38
      variablesWeight : weight,
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    39
      literalsWeight : weight,
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    40
      models : modelParameters list}
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    41
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    42
(* ------------------------------------------------------------------------- *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    43
(* A type of waiting sets of clauses.                                        *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    44
(* ------------------------------------------------------------------------- *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    45
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    46
type waiting
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    47
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    48
type distance
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    49
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    50
(* ------------------------------------------------------------------------- *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    51
(* Basic operations.                                                         *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    52
(* ------------------------------------------------------------------------- *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    53
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    54
val default : parameters
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    55
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    56
val new :
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    57
    parameters ->
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    58
    {axioms : Clause.clause list,
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    59
     conjecture : Clause.clause list} -> waiting
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 size : waiting -> int
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    62
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    63
val pp : waiting Print.pp
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    64
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    65
(* ------------------------------------------------------------------------- *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    66
(* Adding new clauses.                                                       *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    67
(* ------------------------------------------------------------------------- *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    68
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    69
val add : waiting -> distance * Clause.clause list -> waiting
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    70
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    71
(* ------------------------------------------------------------------------- *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    72
(* Removing the lightest clause.                                             *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    73
(* ------------------------------------------------------------------------- *)
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    74
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    75
val remove : waiting -> ((distance * Clause.clause) * waiting) option
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    76
6f9c9899f99f new version of the Metis files
blanchet
parents:
diff changeset
    77
end