sig
exception Not_LiPVar
exception Not_LiVar
exception Not_Guard
exception Invalid_nts_expression
exception Not_an_if_then_else_condition_guard
type nts_quantifier = NtsExists | NtsForall
type nts_base_types = NtsIntType | NtsRealType | NtsBoolType | NtsUnTyped
type nts_var = NtsVar of string * Nts_types.nts_base_types
type nts_primed_type = NtsPrimed | NtsUnPrimed
type nts_genrel_var =
NtsGenVar of Nts_types.nts_var * Nts_types.nts_primed_type
type cnt_binop = CntEq | CntNeq | CntLeq | CntLt | CntGt | CntGeq
type nts_gen_arithm_binop =
CntGenSum
| CntGenMinus
| CntGenProd
| CntGenDiv
| CntGenMod
type nts_gen_arithm_unop = CntGenUMinus
type nts_gen_bool_cst = CntBTrue | CntBFalse
type nts_gen_bool_binop = CntGenBAnd | CntGenBOr
type nts_base_type_cst =
CntGenICst of Big_int.big_int
| CntGenFCst of float
| CntGenBCst of Nts_types.nts_gen_bool_cst
type nts_symbolic_constant = CntSymCst of string * Nts_types.nts_base_types
type nts_genrel_arithm_exp =
CntGenCst of Nts_types.nts_base_type_cst * Nts_types.nts_base_types
| CntGenSymCst of Nts_types.nts_symbolic_constant *
Nts_types.nts_base_types
| CntGenVar of Nts_types.nts_genrel_var
| CntGenArithmBOp of Nts_types.nts_gen_arithm_binop *
Nts_types.nts_genrel_arithm_exp * Nts_types.nts_genrel_arithm_exp *
Nts_types.nts_base_types
| CntGenArithmUOp of Nts_types.nts_gen_arithm_unop *
Nts_types.nts_genrel_arithm_exp * Nts_types.nts_base_types
type ref_nts_array =
RefBasicTypeArray of Nts_types.nts_base_types
| RefMulDimArray of Nts_types.ref_nts_array
type nts_array =
RefNtsArray of Nts_types.ref_nts_array
| FixedSizeNtsArray of Nts_types.fixed_size_nts_array
and fixed_size_nts_array =
FixedSizeBasicTypeNtsArray of Nts_types.nts_genrel_arithm_exp *
Nts_types.nts_base_types
| FixedSizeMulDimNtsArray of Nts_types.nts_genrel_arithm_exp *
Nts_types.nts_array
type nts_array_var =
NtsArrayVar of string * Nts_types.nts_array * Nts_types.nts_base_types
type nts_gen_relation =
CntGenRel of Nts_types.cnt_binop * Nts_types.nts_genrel_arithm_exp *
Nts_types.nts_genrel_arithm_exp
| CntGenRelComp of Nts_types.nts_gen_bool_binop *
Nts_types.nts_gen_relation * Nts_types.nts_gen_relation
| CntGenNot of Nts_types.nts_gen_relation
| CntGenTrue
| CntGenFalse
| CntQVarsGenRel of Nts_types.nts_genrel_var list *
Nts_types.nts_quantifier * Nts_types.nts_gen_relation
type nts_trans_label =
CntGenGuard of Nts_types.nts_gen_relation
| CntGenCall of string * Nts_types.nts_genrel_var list option *
Nts_types.nts_genrel_arithm_exp list
| CntGenHavoc of Nts_types.nts_genrel_var list
end