Wp.LangSourceLow-Level Logic Terms and Predicates
Logic Language based on Qed
type adt = private | Mtype of mdtExternal type
*)| Mrecord of mdt * fieldsExternal record-type
*)| Atype of Frama_c_kernel.Cil_types.logic_type_infoLogic Type
*)| Comp of Frama_c_kernel.Cil_types.compinfo * datakindC-code struct or union
*)A type is never registered in a Definition.t
type 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
*)| FUN of lsymbolExternal or Generated logic symbol
*)and lsymbol = {m_category : lfun Qed.Logic.category;m_params : Qed.Logic.sort list;m_result : Qed.Logic.sort;m_typeof : tau option list -> tau;m_source : source;m_coloring : bool;}and source = | Generated of WpContext.context option * string| Extern of Qed.Engine.link externMust not be a builtin
val extern_s :
library:library ->
?link:Qed.Engine.link ->
?category:lfun Qed.Logic.category ->
?params:Qed.Logic.sort list ->
?sort:Qed.Logic.sort ->
?result:tau ->
?coloring:bool ->
?typecheck:(tau option list -> tau) ->
string ->
lfunval extern_f :
library:library ->
?link:Qed.Engine.link ->
?balance:balance ->
?category:lfun Qed.Logic.category ->
?params:Qed.Logic.sort list ->
?sort:Qed.Logic.sort ->
?result:tau ->
?coloring:bool ->
?typecheck:(tau option list -> tau) ->
('a, Format.formatter, unit, lfun) format4 ->
'abalance just give a default when link is not specified
val extern_p :
library:library ->
?bool:string ->
?prop:string ->
?link:Qed.Engine.link ->
?params:Qed.Logic.sort list ->
?coloring:bool ->
unit ->
lfunval extern_fp :
library:library ->
?params:Qed.Logic.sort list ->
?link:string ->
?coloring:bool ->
string ->
lfunval generated_f :
?context:bool ->
?category:lfun Qed.Logic.category ->
?params:Qed.Logic.sort list ->
?sort:Qed.Logic.sort ->
?result:tau ->
?coloring:bool ->
('a, Format.formatter, unit, lfun) format4 ->
'atype of pointers
type of floats
polymorphism
definitions
LFuns are unique by name and context
iter_consequence_literals assume_from_litteral hypothesis applies the function assume_from_litteral 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).
For why3_api but circular dependency