module Symbols: sig end
Exceptions
|
exception Symbols_error of string
exception Symbols_not_found
Symbols.assoc_symbol
exception Symbols_already of string
Symbols type
|
type eva_symbol
constructors
|
val new_first_order_symbol : string ->
Abstract.eva_scope -> Abstract.eva_type -> bool -> eva_symbol
true
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_symbol
true
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_symbol
val new_value_symbol : string -> Abstract.eva_type -> eva_symbol
val intruder_symbol : eva_symbol
val new_alias_symbol : string -> Abstract.eva_lterm -> eva_symbol
val new_quantified_symbol : string -> Abstract.eva_type -> eva_symbol
val new_type_symbol : string -> bool -> eva_symbol
true
if it is a basetype, false
otherwiseval new_predicate_symbol : string -> eva_symbol
val is_first_order : eva_symbol -> bool
true
if the given symbol is of kind "first order",
false
otherwiseval is_functional : eva_symbol -> bool
true
if the given symbol is of kind "functional",
false
otherwiseval is_key : eva_symbol -> bool
true
if the given symbol is of kind "key",
false
otherwiseval is_value : eva_symbol -> bool
true
if the given symbol is of kind "value",
false
otherwiseval is_intruder : eva_symbol -> bool
true
if the given symbol is the "intruder" value,
false
otherwiseval is_quantified : eva_symbol -> bool
true
if the given symbol is of kind "quantified variable",
false
otherwiseval is_alias : eva_symbol -> bool
true
if the given symbol is of kind "alias",
false
otherwiseval is_type : eva_symbol -> bool
true
if the given symbol is of kind "type",
false
otherwiseval is_basetype : eva_symbol -> bool
true
if the given symbol is a user type
declared as basetype, subcase of is_type
false
otherwiseval is_predicate : eva_symbol -> bool
true
if the given symbol is of kind "predicate",
false
otherwiseval get_name : eva_symbol -> string
val get_type : eva_symbol -> Abstract.eva_type
Symbols_error
if the given symbol is not typed.val get_scope : eva_symbol -> Abstract.eva_scope
Symbols_error
if the given symbol has no such characteristic.val get_fresh : eva_symbol -> bool
Symbols_error
if the given symbol has no such characteristic.val get_hash : eva_symbol -> bool
Symbols_error
if the given symbol has no such characteristic.val get_secret : eva_symbol -> bool
Symbols_error
if the given symbol has no such characteristic.val get_signature : eva_symbol -> Abstract.eva_type list
Symbols_error
if the given symbol has no such characteristic.val get_symkey : eva_symbol -> string
Symbols_error
if the given symbol has no such characteristic.val get_algo : eva_symbol -> Abstract.eva_algo
Symbols_error
if the given symbol has no such characteristic.val get_term : eva_symbol -> Abstract.eva_lterm
Symbols_error
if the given symbol is not of kind "alias".type eva_symbol_list
val empty_symbol_list : eva_symbol_list
val memassoc_symbol : string -> eva_symbol_list -> bool
true
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_symbol
Symbols_not_found
if the given name is not declared in sl
.sl
.val append_symbol : eva_symbol -> eva_symbol_list -> eva_symbol_list
Symbols_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_list
add_symbol s sl
s
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_list
s
and the given symbol list sl
as follows:sl
contains no symbol with the name of s
,
append s
to sl
sl
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_list
Symbols_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_list
l2
with the symbols in the first given list l1
(see Symbols.overwrite_symbol
).val symbol_list_length : eva_symbol_list -> int
sl
.val iter_symbollist : (eva_symbol -> unit) -> eva_symbol_list -> unit
f
to each of the symbols
contained in the given symbol list sl
.val map_symbollist : (eva_symbol -> 'a) -> eva_symbol_list -> 'a list
map_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 -> 'a
fold_left_symbollist f a sl
f (... (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 -> 'a
fold_right_symbollist f sl b
f s1 (f s2 (... (f sn b) ...))
where s1...sn
are the symbols of the given symbol list sl
.