Wp.Definitions
Generated Logic Definitions
val dummy : unit -> cluster
val cluster :
id:string ->
?title:string ->
?position:Frama_c_kernel.Filepath.position ->
unit ->
cluster
val axiomatic : LogicUsage.axiomatic -> cluster
val section : LogicUsage.logic_section -> cluster
val compinfo : Frama_c_kernel.Cil_types.compinfo -> cluster
val matrix : unit -> cluster
val cluster_id : cluster -> string
Unique
val cluster_title : cluster -> string
val cluster_position : cluster -> Frama_c_kernel.Filepath.position option
val cluster_age : cluster -> int
val pp_cluster : Stdlib.Format.formatter -> cluster -> unit
val iter : ( cluster -> unit ) -> unit
type trigger = ( Lang.F.var, Lang.lfun ) Qed.Engine.ftrigger
type typedef = ( Lang.F.tau, Lang.field, Lang.lfun ) Qed.Engine.ftypedef
type dlemma = {
l_name : string; | |
l_cluster : cluster; | |
l_kind : Frama_c_kernel.Cil_types.predicate_kind; | |
l_types : int; | |
l_forall : Lang.F.var list; | |
l_triggers : trigger list list; | (* OR of AND-triggers *) |
l_lemma : Lang.F.pred; |
}
type definition =
| Logic of Lang.F.tau |
| Function of Lang.F.tau * recursion * Lang.F.term |
| Predicate of recursion * Lang.F.pred |
| Inductive of dlemma list |
type dfun = {
d_lfun : Lang.lfun; |
d_cluster : cluster; |
d_types : int; |
d_params : Lang.F.var list; |
d_definition : definition; |
}
module Trigger : sig ... end
val define_symbol : dfun -> unit
val update_symbol : dfun -> unit
val find_name : string -> dlemma
val find_lemma : LogicUsage.logic_lemma -> dlemma
val compile_lemma :
( LogicUsage.logic_lemma -> dlemma ) ->
LogicUsage.logic_lemma ->
unit
val define_lemma : dlemma -> unit
val define_type : cluster -> Frama_c_kernel.Cil_types.logic_type_info -> unit
val call_fun :
result:Lang.F.tau ->
Lang.lfun ->
( Lang.lfun -> dfun ) ->
Lang.F.term list ->
Lang.F.term
val call_pred :
Lang.lfun ->
( Lang.lfun -> dfun ) ->
Lang.F.term list ->
Lang.F.pred
type axioms = cluster * LogicUsage.logic_lemma list