Module Cvalues

module Cvalues: sig .. end

Int-As-Boolans




Int-As-Boolans


val bool_val : Lang.F.unop
val bool_eq : Lang.F.binop
val bool_lt : Lang.F.binop
val bool_neq : Lang.F.binop
val bool_leq : Lang.F.binop
val bool_and : Lang.F.binop
val bool_or : Lang.F.binop
val is_true : Lang.F.pred -> Lang.F.term
p ? 1 : 0
val is_false : Lang.F.pred -> Lang.F.term
p ? 0 : 1

Null Values


val null : (Lang.F.term -> Lang.F.pred) Context.value
test for null pointer value
val is_null : Ctypes.c_object -> Lang.F.term -> Lang.F.pred

Typing and Sub-Typing for C and ACSL Types


val is_object : Ctypes.c_object -> 'a Memory.value -> Lang.F.pred
val has_ctype : Cil_types.typ -> Lang.F.term -> Lang.F.pred
val has_ltype : Cil_types.logic_type -> Lang.F.term -> Lang.F.pred
val cdomain : Cil_types.typ -> (Lang.F.term -> Lang.F.pred) option
val ldomain : Cil_types.logic_type -> (Lang.F.term -> Lang.F.pred) option

ACSL Equality


val equal_object : Ctypes.c_object -> Lang.F.term -> Lang.F.term -> Lang.F.pred
val equal_comp : Cil_types.compinfo -> Lang.F.term -> Lang.F.term -> Lang.F.pred
val equal_array : Matrix.matrix -> Lang.F.term -> Lang.F.term -> Lang.F.pred

C and ACSL Constants


val constant : Cil_types.constant -> Lang.F.term
val logic_constant : Cil_types.logic_constant -> Lang.F.term
val constant_exp : Cil_types.exp -> Lang.F.term
val constant_term : Cil_types.term -> Lang.F.term

Lifting Operations over Memory Values


val map_sloc : ('a -> 'b) -> 'a Memory.sloc -> 'b Memory.sloc
val map_value : ('a -> 'b) -> 'a Memory.value -> 'b Memory.value
val map_logic : ('a -> 'b) -> 'a Memory.logic -> 'b Memory.logic

ACSL Utilities


module Logic: 
functor (M : Memory.Model) -> sig .. end