-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathfotypes.mli
48 lines (40 loc) · 1.27 KB
/
fotypes.mli
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
47
48
(* This code derives from a GPL'ed code and so is GPL'ed *)
type variable = string
type constant = string
type skolem = string
type varlist = variable list
type arg = Variable of variable
| Constant of constant
| Skolem of skolem * varlist
type arglist = arg list
type atom = string
type literal = Atom of atom * arglist | NotAtom of atom * arglist ;;
type formula = True (* constants *)
| False
| Literal of literal (* a literal *)
| And of formula * formula (* Booleans *)
| Or of formula * formula
| Implies of formula * formula
| Not of formula
| Forall of varlist * formula (* Quantification*)
| Exists of varlist * formula
| Always of formula (* Temporal operators*)
| AlwaysP of formula
| Sometime of formula
| SometimeP of formula
| Next of formula
| Until of formula * formula
| Unless of formula * formula
(*
type disjunct = True
| False
| Or of literal list
type cnf = True
| False
| And of disjunct list
type formulaList = True
| False
| Literal of literal
| And of formulaList list
| Or of formulaList list
*)