Module Formula


module Formula: sig .. end
Logic Formulae


Pure types


type boolean 
The set of two elements {true,false}.
type integer 
Natural signed integers (Z).
type real 
Real numbers (R).
type abstract 
Abstract Data Types (user-defined WHY-types).
type m_name 
type name data_lib.why
type m_format 
type 'a format 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

Logic types



type tau =
| Integer
| Real
| Boolean
| Pointer
| 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

Arithmetics Operators



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

type real_op =
| Radd
| Rsub
| Rmul
| Rdiv

type cmp_op =
| Ceq
| Cneq
| Clt
| Cleq

Declarations



type section =
| S_name
| S_typedef
| S_userdef
| S_goals

type 'a item =
| Type of int
| Name of int
| Cons of int
| Function of tau list * tau
| Predicate of tau list
| Axiom of 'a

type 'a declaration = {
   d_section : section;
   d_name : string;
   d_title : Format.formatter -> unit;
   d_descr : Format.formatter -> unit;
   d_source : Log.source option;
   d_item : 'a item;
}

Signature for logic formulae


module type Vernacular = sig .. end
module type S = sig .. end