Module Types


module Types: sig .. end

class ident_table : object .. end
exception Variable_has_no_gid of int * int
exception Gid_not_in_table of int
class global_var_ident_table : object .. end
exception Variable_has_no_mmap of int
class memory_map_table : object .. end

type if_value_type =
| If_address of int
| If_const of int
| If_crypt of if_value_type * if_value_type
| If_scrypt of if_value_type * if_value_type
| If_pair of if_value_type * if_value_type
| If_cons of if_value_type * if_value_type
| If_delete of if_value_type * if_value_type
| If_inv of if_value_type
| If_set of if_value_type list
| If_function of if_value_type * if_value_type list
class value_map_table : object .. end

type 'a term_structure =
| Pair of 'a term_structure * 'a term_structure
| Scrypt of 'a term_structure * 'a term_structure
| Crypt of 'a term_structure * 'a term_structure
| Inv of 'a term_structure
| Function of 'a term_structure * 'a term_structure list
| Cons of 'a term_structure * 'a term_structure
| Delete of 'a term_structure * 'a term_structure
| Hash of 'a term_structure
| Set of 'a term_structure list
| Prime of 'a
| Base of 'a

type basic_type =
| Agent
| Channel
| Channel_dy
| Channel_ota
| Text
| Message
| Public_key
| Symmetric_key
| Protocol_id
| Bool
| Nat
| Hash_func
| Enum of int list

type atoms_type =
| Var of int
| Const of int
type term = atoms_type term_structure 
type term_type = basic_type term_structure 
class type_table_type : object .. end
class hlpsl_variable : id:int -> htyp:term_type -> object .. end

type if_term =
| Iknows of term
| State of string * int * term list
| Func of int * int * int
| Ifcontains of term * term
| Ifdelete of term * term
| Ifnot of if_term
| Ifequal of term * term
| Ifleq of term * term
| Ifnew of int
| Unknown of term * term list
type if_state = if_term list 
class basic_if_rule : if_state -> if_state -> if_state -> term list -> atoms_type list -> object .. end
type if_rule = int * (int * basic_if_rule) 

type predicate =
| Not of predicate
| Equal of term * term
| Leq of term * term
| In of term * term
| Event of atoms_type * term list
| New of int
type hlpsl_state = predicate list 
class hlpsl_transition : name:int -> lhs:hlpsl_state -> rhs:hlpsl_state -> object .. end
class generic_hlpsl_role : object .. end
class basic_hlpsl_role : object .. end
class call_type : id:int -> args_list:atoms_type term_structure list -> object .. end
class call_over_declaration : int -> term -> object .. end

type 'a composition_of =
| Call of 'a
| MultiPar of call_over_declaration * 'a composition_of
| Sequential of 'a composition_of * 'a composition_of
| Parallel of 'a composition_of * 'a composition_of
| Empty
type composition_type = call_type composition_of 
class composition_role : composition_type -> object .. end

type role_type =
| Basic of basic_hlpsl_role
| Composition of composition_role

type ltl_type =
| Pred of if_term
| Op1 of ltl_type
| Op2 of ltl_type
| Op3 of ltl_type
| Op4 of ltl_type
| Op5 of ltl_type
| Conj of ltl_type * ltl_type
| Dij of ltl_type * ltl_type
| Impl of ltl_type * ltl_type

type goals_type =
| Secrecy of int list
| Authentication of int list
| Weak_authentication of int list
| Auth of int * int * int list
| Weak_auth of int * int * int list
| LTL_goal of (ltl_type * term list)
class specification_class : role_type list -> goals_type list -> composition_type -> object .. end

type 'a _type_of_composition =
| If_parallel of 'a Types._type_of_composition * 'a Types._type_of_composition
| If_sequential of 'a Types._type_of_composition * 'a Types._type_of_composition
| If_call of 'a
| If_empty
class role_instance : call_type -> object .. end
type type_of_composition = role_instance Types._type_of_composition 

type composition_schema =
| Par of composition_schema list
| Seq of composition_schema list
| Inst of int
| None