Module Formula


module Formula: sig .. end
Logic Formulae


Logic Formulae

Logic types



type tau =
| Integer
| Real
| Boolean
| Pointer of tau
| Set of tau
| Record of Cil_types.compinfo
| Array of Ctypes.arrayinfo
| ADT of string * tau list

type kind =
| Model of tau
| Acsl of tau * Cil_types.logic_type

Pure types


type m_boolean 
The set of two elements {true,false}.
type m_integer 
Natural signed integers (Z).
type m_real 
Real numbers (R).
type m_abstract 
Abstract Data Types (user-defined WHY-types).
type m_name 
type name data_lib.why
type m_pointer 
type pointer data_lib.why
type m_array 
type 'a farray array.why
type m_record 
type record data_lib.why
type m_urecord 
type urecord data_lib.why
type m_set 
type 'a set data_lib.why
type m_zone 
type of elementary regions

Arithmetics Operators



type int_op =
| Iadd
| Isub
| Imul
| Idiv
| Imod

type real_op =
| Radd
| Rsub
| Rmul
| Rdiv

type cmp_op =
| Ceq
| Cneq
| Clt
| Cleq

Declarations



type section =
| S_Type (*LOGIC type definition*)
| S_Cons (*LOGIC type constructor*)
| S_Logic_Sig (*Signature of Functions and Predicates*)
| S_Logic_Def (*Definitions for Functions and Predicates*)
| S_Logic_Prop (*Axioms on Functions and Predicates*)
| S_Model_Sig (*Signature of Functions and Predicates*)
| S_Model_Def (*Definitions for Functions and Predicates*)
| S_Model_Prop (*Axioms on Functions and Predicates*)
| S_User_Sig (*Signature of User-defined function and predicates*)
| S_User_Prop (*Axioms on User-defined function and predicates*)

type ('a, 'b, 'c) item =
| Type of int
| Cons of int
| Function of tau list * tau
| Predicate of tau list
| FunctionDef of 'a list * tau * 'b
| PredicateDef of 'a list * 'c
| Axiom of 'c
| Trecord of Cil_types.compinfo

type ('a, 'b, 'c) declaration = {
   d_section : section;
   d_name : string;
   d_title : Format.formatter -> unit;
   d_descr : Format.formatter -> unit;
   d_source : Lexing.position option;
   d_item : ('a, 'b, 'c) item;
}

Signature for logic formulae


module type S = sig .. end
module type Logic = sig .. end