aboutsummaryrefslogtreecommitdiffstats
path: root/src/trace/smtCertif.mli
blob: 942262c41c18e3396cfee828c2731443fe1a233d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
type used = int
type clause_id = int
type 'hform rule =
    ImmFlatten of 'hform clause * 'hform
  | True
  | False
  | BuildDef of 'hform
  | BuildDef2 of 'hform
  | BuildProj of 'hform * int
  | ImmBuildDef of 'hform clause
  | ImmBuildDef2 of 'hform clause
  | ImmBuildProj of 'hform clause * int
  | EqTr of 'hform * 'hform list
  | EqCgr of 'hform * 'hform option list
  | EqCgrP of 'hform * 'hform * 'hform option list
  | LiaMicromega of 'hform list *
      Structures.Micromega_plugin_Certificate.Mc.zArithProof list
  | LiaDiseq of 'hform
  | SplArith of 'hform clause * 'hform *
      Structures.Micromega_plugin_Certificate.Mc.zArithProof list
  | SplDistinctElim of 'hform clause * 'hform
  | Hole of 'hform clause list * 'hform list
  | Forall_inst of 'hform clause * 'hform
  | Qf_lemma of 'hform clause * 'hform

and 'hform clause = {
    mutable id    : clause_id;
    mutable kind  : 'hform clause_kind;
    mutable pos   : int option;
    mutable used  : used;
    mutable prev  : 'hform clause option;
    mutable next  : 'hform clause option;
    mutable value : 'hform list option;
}
and 'hform clause_kind =
    Root
  | Same of 'hform clause
  | Res of 'hform resolution
  | Other of 'hform rule
and 'hform resolution = {
  mutable rc1 : 'hform clause;
  mutable rc2 : 'hform clause;
  mutable rtail : 'hform clause list;
}
val used_clauses : 'a rule -> 'a clause list
val to_string : 'a clause_kind -> string