Frama-C API - LogicBuiltins
type category = Lang.lfun Lang.extern Qed.Logic.categorytype kind = | B(*boolean
*)| Z(*integer
*)| R(*real
*)| I of Ctypes.c_int(*C-ints
*)| F of Ctypes.c_float(*C-floats
*)| A(*Abstract Data
*)
val add_builtin : string -> kind list -> Lang.lfun Lang.extern -> unitAdd a new builtin. This builtin will be shared with all created drivers.
val add_builtin_type : string -> Lang.adt Lang.extern -> unitAdd a new builtin type. Must be an extern or imported type. This builtin will be shared with all created drivers.
val driver : driver Context.valueval new_driver : id:string -> ?base:driver -> ?descr:string -> ?configure:(unit -> unit) -> unit -> driverCreates a configured driver from an existing one. Default:
- base: builtin WP driver
- descr: id
- includes:
- configure: No-Op The configure is the only operation allowed to modify the content of the newly created driver. Except during static initialization of builtin driver.
val id : driver -> stringval descr : driver -> stringval is_default : driver -> boolval add_type : ?source:Frama_c_kernel.Fileloc.t -> string -> link:string -> unitval add_alias : source:Frama_c_kernel.Fileloc.t -> string -> kind list -> alias:string -> unitval add_ctor : source:Frama_c_kernel.Fileloc.t -> string -> kind list -> link:string -> unitval add_logic : source:Frama_c_kernel.Fileloc.t -> ?category:category -> kind -> string -> kind list -> link:string -> unitval add_predicate : source:Frama_c_kernel.Fileloc.t -> string -> kind list -> link:string -> unitval logic : Frama_c_kernel.Cil_types.logic_info -> builtinval ctor : Frama_c_kernel.Cil_types.logic_ctor_info -> builtinval constant : string -> builtinval lookup_t : string -> t_builtinval hack : string -> (Lang.F.term list -> Lang.F.term) -> unitReplace a logic definition or predicate by a built-in function. The LogicSemantics compilers will replace `Pcall` and `Tcall` instances of this symbol with the provided Qed function on terms.
val hack_type : string -> (Lang.F.tau list -> Lang.F.tau) -> unitReplace a logic type definition or predicate by a built-in type.
