Module Constraint.Constraint


module Constraint: sig .. end


type numconstraint =
| CEq
| CNeq
| CLt
| CGt
| CLte
| CGte
type varname = string 
type recordindex = string * string * int 

type constraintbinop =
| CPlus
| CMinus
| CTimes
| CDivide

type cvar =
| CVar of varname
| CRecordVar of recordindex

type cexp =
| CVarExp of cvar
| CInt of int
| CArithop of constraintbinop * cexp
* cexp
| CBoolop of numconstraint * cexp
* cexp
| CGuard of cexp * cexp
* cexp
| CAnd of cexp list
| COr of cexp list
| CTrue
| CFalse
val negate : cexp -> cexp
val mkEqs : cexp ->
cexp -> cexp
val mkVar : string -> cexp
val mkRVar : string -> string -> int -> cexp