Module Why_ops


module Why_ops: sig .. end
This file should group all the function names used in why files, with some hints about where there are defined, etc.

val pbot : 'a Fol.t_pred
defined in acsl.why : this is a predicate
val pred_eq : 'a -> 'a -> 'a Fol.t_pred
val pred_neq : 'a -> 'a -> 'a Fol.t_pred
val int_zero : 'a Fol.d_term
val int_of_bool : 'a Fol.d_term -> 'a Fol.d_term
val int_bool_cmp_binop_name : Cil_types.binop -> 'a Fol.d_term -> 'a Fol.d_term -> 'a Fol.d_term
These are WHY names from library integers.why : int -> int -> bool
val real_bool_cmp_binop_name : Cil_types.binop -> 'a Fol.d_term -> 'a Fol.d_term -> 'a Fol.d_term
These are WHY names from library real.why : real -> real -> bool
val none : 'a Fol.d_term
defined in acsl.why : -> 'a option
val some : 'a Fol.d_term -> 'a Fol.d_term
defined in acsl.why : 'a -> 'a option
val why_keyword : string -> bool
val check_acsl_name : string -> string
TODO : better handling of ACSL predefined functions
val acsl_null : 'a Fol.d_term
defined in acsl.why : -> 'a pointer
val acsl_base_addr : 'a Fol.d_term -> 'a Fol.d_term
defined in acsl.why : 'a pointer -> char pointer
val int_base_addr : 'a Fol.d_term -> 'a Fol.d_term
defined in model1.why : 'a pointer -> int option
val base_id : 'a Fol.d_term -> int -> 'a Fol.d_term Fol.t_pred
val sub_pointer : 'a Fol.d_term -> 'a Fol.d_term -> 'a Fol.d_term
val ptr_bool_cmp_binop : Cil_types.binop -> 'a Fol.d_term -> 'a Fol.d_term -> 'a Fol.d_term
exception UnnamedCilOp of string
val cmp_binop_neg : Cil_types.binop -> Cil_types.binop
val bool_cmp_binop : ?not:bool ->
Cil_types.binop ->
Cil_types.logic_type -> 'a Fol.d_term -> 'a Fol.d_term -> 'a Fol.d_term
Comparison between two terms having the same type ty. The return expression is a bool term.
Raises UnnamedCilOp when ty is not a pointer or an integer (other types not handeled yet.
val cil_unop : Cil_types.unop -> Cil_types.logic_type -> 'a Fol.d_term -> 'a Fol.d_term
Return a term which should have the type ty.
Raises UnnamedCilOp for unsupported operations (mainly float op).
val cil_binop : Cil_types.binop ->
Cil_types.logic_type -> 'a Fol.d_term -> 'a Fol.d_term -> 'a Fol.d_term
Raises UnnamedCilOp for unsupported operations (mainly float op).
val cast_op : Cil_types.typ -> Cil_types.logic_type -> 'a -> 'a
(t1)(e) TODO : change that when we'll have different interger and reels.
val valid_pointer : 'a -> 'a Fol.t_pred
val disj_pointer : 'a -> 'a -> 'a Fol.t_pred
val array_length : 'a Fol.d_term -> 'a Fol.d_term
val bool_term_to_predicate : 'a Fol.d_term -> 'a Fol.d_term Fol.t_pred
val pnot : 'a Fol.t_pred -> 'a Fol.t_pred
val pif : 'a Fol.d_term * 'a Fol.d_pred * 'a Fol.d_pred -> 'a Fol.d_pred
val array_access : 'a Fol.d_term -> 'a Fol.d_term -> 'a Fol.d_term
defined in array.why : 'a array, int -> 'a
val array_update : 'a Fol.d_term -> 'a Fol.d_term -> 'a Fol.d_term -> 'a Fol.d_term
defined in array.why : 'a array, int, 'a -> 'a array
val index_shift : 'a Fol.d_term -> 'a Fol.d_term -> 'a Fol.d_term
p.+(i)
val shift_pointer : 'a Fol.d_term -> 'a Fol.d_term -> 'a Fol.d_term
p.#(i)
val field_shift : 'a Fol.d_term -> string -> bool -> 'a Fol.d_term
ps.+f
val field_access : 'a Fol.d_term -> string -> bool -> 'a Fol.d_term
s..field
val field_update : 'a Fol.d_term -> string -> bool -> 'a Fol.d_term -> 'a Fol.d_term
mu (s, .(field) -> v)
val neq_field : string -> string -> 'a Fol.d_term Fol.t_pred
module M1: sig .. end
for model M1 only
module M2: sig .. end
for model M2 only
module M3: sig .. end
for model M3 only
val builtin_why_file : unit -> unit
build a WHY file with the builtin functions declarations.