module Symbols: sig end
Exceptions
|
exception Symbols_error of string
exception Symbols_not_found
Symbols.assoc_symbolexception Symbols_already of string
Symbols type
|
type eva_symbol
constructors
|
val new_first_order_symbol : string ->
Abstract.eva_scope -> Abstract.eva_type -> bool -> eva_symboltrue if the identifier is fresh, false otherwise.val new_functional_symbol : string ->
Abstract.eva_scope ->
Abstract.eva_type ->
Abstract.eva_type list -> bool -> bool -> eva_symboltrue if the function is one-way, false otherwise. true if the function is secret, false otherwise.val new_key_symbol : string ->
Abstract.eva_scope ->
Abstract.eva_type ->
Abstract.eva_type list -> string -> Abstract.eva_algo -> eva_symbolval new_value_symbol : string -> Abstract.eva_type -> eva_symbolval intruder_symbol : eva_symbolval new_alias_symbol : string -> Abstract.eva_lterm -> eva_symbolval new_quantified_symbol : string -> Abstract.eva_type -> eva_symbolval new_type_symbol : string -> bool -> eva_symboltrue if it is a basetype, false otherwiseval new_predicate_symbol : string -> eva_symbolval is_first_order : eva_symbol -> booltrue if the given symbol is of kind "first order",
false otherwiseval is_functional : eva_symbol -> booltrue if the given symbol is of kind "functional",
false otherwiseval is_key : eva_symbol -> booltrue if the given symbol is of kind "key",
false otherwiseval is_value : eva_symbol -> booltrue if the given symbol is of kind "value",
false otherwiseval is_intruder : eva_symbol -> booltrue if the given symbol is the "intruder" value,
false otherwiseval is_quantified : eva_symbol -> booltrue if the given symbol is of kind "quantified variable",
false otherwiseval is_alias : eva_symbol -> booltrue if the given symbol is of kind "alias",
false otherwiseval is_type : eva_symbol -> booltrue if the given symbol is of kind "type",
false otherwiseval is_basetype : eva_symbol -> booltrue if the given symbol is a user type
declared as basetype, subcase of is_type
false otherwiseval is_predicate : eva_symbol -> booltrue if the given symbol is of kind "predicate",
false otherwiseval get_name : eva_symbol -> stringval get_type : eva_symbol -> Abstract.eva_typeSymbols_error if the given symbol is not typed.val get_scope : eva_symbol -> Abstract.eva_scopeSymbols_error if the given symbol has no such characteristic.val get_fresh : eva_symbol -> boolSymbols_error if the given symbol has no such characteristic.val get_hash : eva_symbol -> boolSymbols_error if the given symbol has no such characteristic.val get_secret : eva_symbol -> boolSymbols_error if the given symbol has no such characteristic.val get_signature : eva_symbol -> Abstract.eva_type listSymbols_error if the given symbol has no such characteristic.val get_symkey : eva_symbol -> stringSymbols_error if the given symbol has no such characteristic.val get_algo : eva_symbol -> Abstract.eva_algoSymbols_error if the given symbol has no such characteristic.val get_term : eva_symbol -> Abstract.eva_ltermSymbols_error if the given symbol is not of kind "alias".type eva_symbol_list
val empty_symbol_list : eva_symbol_listval memassoc_symbol : string -> eva_symbol_list -> booltrue if the given symbol list sl
contains a symbol declared with the given name,
returns false otherwise.val assoc_symbol : string -> eva_symbol_list -> eva_symbolSymbols_not_found if the given name is not declared in sl.sl.val append_symbol : eva_symbol -> eva_symbol_list -> eva_symbol_listSymbols_already with the name of s
if there is already a symbol with the same name as s
in the given symbol list sl.s at the end of
the given symbol list sl.val add_symbol : eva_symbol -> eva_symbol_list -> eva_symbol_listadd_symbol s sls at the end of
the given symbol list sl only if sl does
not already contain a symbol with the same name as s.val overwrite_symbol : eva_symbol -> eva_symbol_list -> eva_symbol_lists and the given symbol list sl as follows:sl contains no symbol with the name of s,
append s to slsl contains a symbol s1 with the name of s,
returns sl where s has been replaced by s1.val append_symbollist : eva_symbol_list -> eva_symbol_list -> eva_symbol_listSymbols_already if l1 contains already one symbol with
the same name as a symbol of l2.l2 at the end
of the first symbols list l1.val overwrite_symbollist : eva_symbol_list -> eva_symbol_list -> eva_symbol_listl2
with the symbols in the first given list l1
(see Symbols.overwrite_symbol).val symbol_list_length : eva_symbol_list -> intsl.val iter_symbollist : (eva_symbol -> unit) -> eva_symbol_list -> unitf to each of the symbols
contained in the given symbol list sl.val map_symbollist : (eva_symbol -> 'a) -> eva_symbol_list -> 'a listmap_symbollist f sl (f s1); ...; (f sn)
where s1...sn are the symbols of the given symbol list sl.val fold_left_symbollist : ('a -> eva_symbol -> 'a) -> 'a -> eva_symbol_list -> 'afold_left_symbollist f a slf (... (f (f a s1) s2) ...) sn
where s1...sn are the symbols of the given symbol list sl.val fold_right_symbollist : (eva_symbol -> 'a -> 'a) -> eva_symbol_list -> 'a -> 'afold_right_symbollist f sl bf s1 (f s2 (... (f sn b) ...))
where s1...sn are the symbols of the given symbol list sl.