module Types:sig
..end
Terms, atoms and conjunctions
type
sort =
| |
Glob |
(* | global variable | *) |
| |
Constr |
(* | constructor | *) |
| |
Var |
(* | variable of the paramterized domain | *) |
sort of single symbol
type
const =
| |
ConstInt of |
| |
ConstReal of |
| |
ConstName of |
constant: it can be an integer, a real or a constant name
module MConst:sig
..end
val compare_constants : int MConst.t -> int MConst.t -> int
val add_constants : int MConst.t -> int MConst.t -> int MConst.t
val const_sign : int MConst.t -> int option
val const_nul : int MConst.t -> bool
val mult_const : int -> int MConst.t -> int MConst.t
module Var:sig
..end
module VMap:Map.S
with type key = Var.t
type
cst =
| |
CInt of |
| |
CReal of |
| |
CName of |
typepoly =
cst VMap.t * cst
type
term =
| |
Const of |
(* | constant given as a map. | *) |
| |
Elem of |
(* | element, can be a variable or a process | *) |
| |
Access of |
(* | an access to an array | *) |
| |
Arith of |
(* | arithmetic term: | *) |
the type of terms
module Term:sig
..end
Module interface for terms
type
op_comp =
| |
Eq |
(* | equality, | *) |
| |
Lt |
(* | comparison less than, | *) |
| |
Le |
(* | comparison less or equal, | *) |
| |
Neq |
(* | disequality, | *) |
comparison operators for litterals
module Atom:sig
..end
Interface for the atoms of the language
module SAtom:sig
..end
Interface for the conjunctions of atoms seen as sets of atoms.
module ArrayAtom:sig
..end
Interface for the conjunctions of atoms seen as arrays of atoms.