Wp.LangLow-Level Logic Terms and Predicates
Logic Language based on Qed
val comp_id : Frama_c_kernel.Cil_types.compinfo -> stringval comp_init_id : Frama_c_kernel.Cil_types.compinfo -> stringval field_id : Frama_c_kernel.Cil_types.fieldinfo -> stringval field_init_id : Frama_c_kernel.Cil_types.fieldinfo -> stringval type_id : Frama_c_kernel.Cil_types.logic_type_info -> stringval logic_id : Frama_c_kernel.Cil_types.logic_info -> stringval ctor_id : Frama_c_kernel.Cil_types.logic_ctor_info -> stringtype adt = private | Qdata of Qed.Symbol.dataQed/Why3 Type
*)| Atype of Frama_c_kernel.Cil_types.logic_type_infoACSL Logic Type
*)A type is never registered in a Definition.t
and field = Qed.Symbol.fieldand tau = adt Qed.Logic.datatypetype lfun = private | ACSL of Frama_c_kernel.Cil_types.logic_infoRegistered in Definition.t only
*)| CTOR of Frama_c_kernel.Cil_types.logic_ctor_infoNot registered in Definition.t directly converted/printed
*)| LFUN of lsymbolGenerated logic symbol
*)| QFUN of esymbolExternal logic symbol
*)and lsymbol = {m_name : string;m_context : WpContext.context option;m_category : lfun Qed.Logic.category;m_coloring : bool;m_result : tau;m_params : tau list;}val atype : Frama_c_kernel.Cil_types.logic_type_info -> tau list -> tauval on_lfun : (lfun -> unit) -> unitval on_field : (field -> unit) -> unitval acsl : Frama_c_kernel.Cil_types.logic_info -> lfunval ctor : Frama_c_kernel.Cil_types.logic_ctor_info -> lfunBuilders
val import_t : context:Why3.Theory.theory -> Why3.Ty.tysymbol -> adtval import_f : context:Why3.Theory.theory -> Why3.Term.lsymbol -> lfunval extern_f :
?category:lfun extern Qed.Logic.category ->
?coloring:bool ->
string ->
lfun externval generated_f :
?context:bool ->
?category:lfun Qed.Logic.category ->
?coloring:bool ->
result:tau ->
params:tau list ->
('a, Stdlib.Format.formatter, unit, lfun) Stdlib.format4 ->
'aval generated_p :
?context:bool ->
?category:lfun Qed.Logic.category ->
?coloring:bool ->
params:tau list ->
('a, Stdlib.Format.formatter, unit, lfun) Stdlib.format4 ->
'aval tau_of_object : Ctypes.c_object -> tauval tau_of_ctype : Frama_c_kernel.Cil_types.typ -> tauval tau_of_ltype : Frama_c_kernel.Cil_types.logic_type -> tauval tau_of_return : Frama_c_kernel.Cil_types.logic_type option -> tauval init_of_object : Ctypes.c_object -> tauval init_of_ctype : Frama_c_kernel.Cil_types.typ -> tauval t_int : tauval t_real : tauval t_bool : tauval t_prop : tauval t_addr : unit -> tauval t_comp : Frama_c_kernel.Cil_types.compinfo -> tauval t_init : Frama_c_kernel.Cil_types.compinfo -> tauval t_float : Ctypes.c_float -> tauval t_qdata : Qed.Symbol.data -> tau list -> tauval pointer : tau Context.valuetype of pointers
val floats : (Ctypes.c_float -> tau) Context.valueval comp : (datakind -> Frama_c_kernel.Cil_types.compinfo -> tau) Context.valueval field :
(datakind -> Frama_c_kernel.Cil_types.fieldinfo -> field) Context.valueval cfield : ?kind:datakind -> Frama_c_kernel.Cil_types.fieldinfo -> fieldval poly : string list Context.valuepolymorphism
val parameters : (lfun -> Qed.Logic.sort list) -> unitdefinitions
val context_of_lfun : lfun -> WpContext.context optionLFuns are unique by name and context
val is_coloring_lfun : lfun -> boolmodule ADT : Qed.Logic.Data with type t = adtmodule Field : Qed.Logic.Field with type t = fieldmodule Fun : Qed.Logic.Function with type t = lfunclass virtual idprinting : object ... endmodule F : sig ... endval assume : F.pred -> unitval get_pool : unit -> F.poolval get_gamma : unit -> gammaval get_hypotheses : unit -> F.pred listval sigma : unit -> F.sigmauses current pool
val alpha : unit -> F.sigmafreshen all variables
module E : sig ... endval extern : 'a extern -> 'aval extern_mk : (Why3.Env.env -> 'a) -> 'a externval extern_const : 'a -> 'a externval is_literal : F.term -> booliter_consequence_literals assume_from_literal hypothesis applies the function assume_from_literal on literals that are a consequence of the hypothesis (i.e. in the hypothesis not (A && (B || C) ==> D), only A and not D are considered as consequence literals).
class type simplifier = object ... end