A  
accumulate_vertex [FixpointStd] 
Compute the least upper bound of the current value of the
vertex/variable with the values propagated by the incoming
hyperedges belonging to the working set.

add [Hashhe.Compare]  
add [Hashhe.S]  
add [Hashhe]  add tbl x y adds a binding of x to y in table tbl .

add [Sette.Compare]  
add [Sette.S]  add x s returns a set containing all elements of s ,
plus x .

add [Sette]  add x s returns a set containing all elements of s ,
plus x .

add_active_hedges [FixpointGuided]  
add_hedge [SHGraph.Compare]  
add_hedge [SHGraph.S]  
add_hedge [SHGraph] 
Add an hyperedge.

add_vertex [SHGraph.Compare]  
add_vertex [SHGraph.S]  
add_vertex [SHGraph] 
Add a vertex

analysis [FixpointDyn]  
analysis [FixpointGuided] 
Same as
FixpointStd.analysis , but with the technique of
Gopan and Reps published in Static Anlaysis Symposium,
SAS'2007.

analysis [FixpointStd] 
Main user function:
analysis manager equation_graph sinit
strategy takes a graph giving the structure of the equation
system, a manager indicating how to interpret the equation
system, a (super)set of the variables to be initialized to a
nonempty value, and an iteration strategy.

analysis_dyn [Fixpoint] 
Dynamic analysis.

analysis_guided [Fixpoint] 
Same as
Fixpoint.analysis_std , but with the technique of
Gopan and Reps published in Static Anlaysis Symposium,
SAS'2007.

analysis_std [Fixpoint] 
Performs initialization, fixpoint analysis and descending,
and measures the global analysis time.

append [Ilist] 
Append two lists

array [Print] 
Print an array

atome [Ilist] 
Create a list element from a single element.

attrhedge [SHGraph.Compare]  
attrhedge [SHGraph.S]  
attrhedge [SHGraph]  attrhedge graph hedge returns the information associated to the
hyperedge hedge

attrvertex [SHGraph.Compare]  
attrvertex [SHGraph.S]  
attrvertex [SHGraph]  attrvertex graph vertex returns the information associated to the
vertex vertex

C  
cardinal [Sette.S] 
Return the number of elements of a set.

cardinal [Sette] 
Return the number of elements of a set.

cfc [SHGraph.Compare]  
cfc [SHGraph.S]  
cfc [SHGraph] 
Decomposition of the graph into Strongly Connected Components,

cfc_multi [SHGraph.Compare]  
cfc_multi [SHGraph.S]  
cfc_multi [SHGraph] 
idem, but from several initial vertices.

choose [Sette.S] 
Return one element of the given set, or raise
Not_found if
the set is empty.

choose [Sette] 
Return one element of the given set, or raise
Not_found if the set
is empty.

clear [SHGraph.S]  
clear [SHGraph] 
Remove all vertices and hyperedges of the graph.

clear [Hashhe.S]  
clear [Hashhe] 
Empty a hash table.

compare [Sette.Compare]  
compare [Sette.S] 
Total ordering between sets.

compare [Sette] 
Total ordering between sets.

cons [Ilist] 
Adding a new list element at the begining of the list

copy [SHGraph.S]  
copy [SHGraph] 
Copy an hypergraph, using the given functions to duplicate the
attributes associated to the elements of the graph.

copy [Hashhe.S]  
copy [Hashhe] 
Return a copy of the given hashtable.

create [SHGraph.S]  
create [SHGraph]  create n data creates an hypergraph, using n for the initial size
of internal hashtables, and data for the user information

create [Hashhe.S]  
create [Hashhe]  create n creates a new, empty hash table, with
initial size n .

D  
depth [Ilist] 
Return the (maximal) depth of the list.

descend [FixpointStd] 
(Rather internal)

descend_strategy [FixpointStd] 
Internal functions

diff [Sette.Compare]  
diff [Sette.S] 
Set difference.

diff [Sette] 
Union, intersection and set difference.

dot_graph [FixpointType] 
Prints internal graph on the (optional) formatter
man.dot_fmt , see type FixpointType.manager .

E  
elements [Sette.S] 
Return the list of all elements of the given set.

elements [Sette] 
Return the list of all elements of the given set.

empty [Sette.S] 
The empty set.

empty [Sette] 
The empty set.

equal [Hashhe.HashedType] 
The equality predicate used to compare keys.

equal [Sette.Compare]  
equal [Sette.S]  equal s1 s2 tests whether the sets s1 and s2 are
equal, that is, contain equal elements.

equal [Sette]  equal s1 s2 tests whether the sets s1 and s2 are
equal, that is, contain equal elements.

equation_of_graph [Fixpoint] 
Generate from a graph a function of type
('vertex,
'hedge) equation or dynamically exploring the graph.

equation_of_graph [FixpointDyn]  
escaped [Print] 
Escape a string, replacing line breaks by
linebreak (default
'\n' ).

exists [Ilist] 
Existence test

exists [Sette.S]  exists p s checks if at least one element of
the set satisfies the predicate p .

exists [Sette]  exists p s checks if at least one element of
the set satisfies the predicate p .

F  
filter [Sette.Compare]  
filter [Sette.S]  filter p s returns the set of all elements in s
that satisfy predicate p .

filter [Sette]  filter p s returns the set of all elements in s
that satisfy predicate p .

find [Hashhe.Compare]  
find [Hashhe.S]  
find [Hashhe]  find tbl x returns the current binding of x in tbl ,
or raises Not_found if no such binding exists.

find_all [Hashhe.Compare]  
find_all [Hashhe.S]  
find_all [Hashhe]  find_all tbl x returns the list of all data
associated with x in tbl .

fixpoint [FixpointDyn]  
flatten [Ilist] 
Flatten the recursive list, only starting from the given

fold [Hashhe.S]  
fold [Hashhe]  fold f tbl init computes
(f kN dN ... (f k1 d1 init)...) ,
where k1 ... kN are the keys of all bindings in tbl ,
and d1 ... dN are the associated values.

fold [Sette.S]  fold f s a computes (f xN ... (f x2 (f x1 a))...) ,
where x1 ... xN are the elements of s .

fold [Sette]  fold f s a computes (f xN ... (f x2 (f x1 a))...) ,
where x1 ... xN are the elements of s .

fold_hedge [SHGraph.S]  
fold_hedge [SHGraph]  
fold_left [Ilist] 
Ordinary fold function for atoms, from left to right.

fold_right [Ilist] 
Ordinary fold function for atoms, from right to left.

fold_vertex [SHGraph.S]  
fold_vertex [SHGraph]  
for_all [Sette.S]  for_all p s checks if all elements of the set
satisfy the predicate p .

for_all [Sette]  for_all p s checks if all elements of the set
satisfy the predicate p .

G  
graph_of_equation [Fixpoint] 
Generate from an equation a graph, using
make_attrvertex , make_attrhedge and info .

graph_of_equation [FixpointDyn]  
H  
hash [Hashhe.HashedType] 
A hashing function on keys.

hash [Hashhe]  hash x associates a positive integer to any value of
any type.

hash [Print] 
Print an hashtable

hash_param [Hashhe]  hash_param n m x computes a hash value for x , with the
same properties as for hash .

hd [Ilist] 
Return the head of the list.

hedge_dummy [SHGraph.T] 
A dummy (never used) value for hyperedge identifiers (used for
the functions
XXX_multi )

hedge_dummy [SHGraph.S]  
I  
ilist_map_condense [FixpointType]  
inference [FixpointThreshold] 
Inference functions, taking a standard manager, a
threshold manager, an equation graph, and an iteration
strategy.

info [SHGraph.S]  
info [SHGraph]  info g returns the userinformation attached to the graph g

init [FixpointDyn]  
init [FixpointStd]  init manager input sinit creates the internal graph
structure (from the equation graph input ) and initialize the
working sets (from the set of initial points sinit ) (stored
in the info field of the internal graph).

inter [Sette.Compare]  
inter [Sette.S] 
Set intersection.

inter [Sette]  
is_empty [SHGraph.S]  
is_empty [SHGraph] 
Is the graph empty ?

is_empty [Sette.S] 
Test whether a set is empty or not.

is_empty [Sette] 
Test whether a set is empty or not.

is_hedge [SHGraph.Compare]  
is_hedge [SHGraph.S]  
is_hedge [SHGraph]  
is_tvertex [FixpointStd] 
Does the array of vertices belong to the graph, all with
non bottom values ?

is_vertex [SHGraph.Compare]  
is_vertex [SHGraph.S]  
is_vertex [SHGraph]  
iter [Ilist] 
Ordinary iteration function for atoms

iter [Hashhe.S]  
iter [Hashhe]  iter f tbl applies f to all bindings in table tbl .

iter [Sette.S]  iter f s applies f in turn to all elements of s .

iter [Sette]  iter f s applies f in turn to all elements of s .

iter_hedge [SHGraph.S]  
iter_hedge [SHGraph] 
Iterates the function
f hedge attrhedge succvertices predvertices to
all hyperedges of the graph.

iter_vertex [SHGraph.S]  
iter_vertex [SHGraph] 
Iterates the function
f vertex attrvertex succhedges predhedges to all
vertices of the graph.

L  
length [Ilist] 
Return the ength of the list.

length [Hashhe.S]  
length [Hashhe]  length tbl returns the number of bindings in tbl .

list [Ilist] 
Create a list element from a list.

list [Print] 
Print a list

M  
make_strategy_default [Fixpoint] 
Build a "default" strategy, with the following options:

make_strategy_default [FixpointType] 
Build a "default" strategy, with the following options:

make_strategy_iteration [FixpointType]  
map [SHGraph.S]  
map [SHGraph]  
map [Ilist] 
Ordinary map function

map [Hashhe.S]  
map [Hashhe]  map f tbl applies f to all bindings in table tbl and creates
a new hashtable associating the results of f to the same key type.

max [SHGraph.Compare]  
max [SHGraph.S]  
max [SHGraph] 
Return the set of vertices without successor hyperedges

max_elt [Sette.S] 
Same as
Sette.S.min_elt , but returns the largest element of the
given set.

max_elt [Sette] 
Same as
min_elt , but returns the largest element of the given
set.

mem [Ilist] 
Membership test.

mem [Hashhe.Compare]  
mem [Hashhe.S]  
mem [Hashhe]  mem tbl x checks if x is bound in tbl .

mem [Sette.Compare]  
mem [Sette.S]  mem x s tests whether x belongs to the set s .

mem [Sette]  mem x s tests whether x belongs to the set s .

min [SHGraph.Compare]  
min [SHGraph.S]  
min [SHGraph] 
Return the set of vertices without predecessor hyperedges

min_elt [Sette.S] 
Return the smallest element of the given set
(with respect to the
Ord.compare ordering), or raise
Not_found if the set is empty.

min_elt [Sette] 
Return the smallest element of the given set (with respect to the
Ord.compare ordering), or raise Not_found if the set is empty.

O  
obj [Sette.S]  
of_list [Ilist] 
Create a recursive list from a regular list

option [Print] 
Print an optional element

output_of_graph [FixpointStd] 
(Rather internal function)

P  
pair [Print] 
Print a pair

partition [Sette.Compare]  
partition [Sette.S]  partition p s returns a pair of sets (s1, s2) , where
s1 is the set of all the elements of s that satisfy the
predicate p , and s2 is the set of all the elements of
s that do not satisfy p .

partition [Sette]  partition p s returns a pair of sets (s1, s2) , where s1 is the
set of all the elements of s that satisfy the predicate p , and s2
is the set of all the elements of s that do not satisfy p .

pred_vertex [SHGraph.Compare]  
pred_vertex [SHGraph.S]  
pred_vertex [SHGraph] 
Predecessor vertices of a vertex by any hyperedge

predhedge [SHGraph.Compare]  
predhedge [SHGraph.S]  
predhedge [SHGraph] 
Predecessor hyperedges of a vertex

predvertex [SHGraph.Compare]  
predvertex [SHGraph.S]  
predvertex [SHGraph] 
Predecessor vertices of an hyperedge

print [SHGraph.Compare]  
print [SHGraph.S]  
print [SHGraph] 
Print a graph in textual format on the given formatter, using the given
functions to resp.

print [Ilist] 
Printing function.

print [Hashhe.S]  
print [Hashhe]  
print [Sette.S]  
print [Sette]  
print_arc [FixpointType]  
print_attr [FixpointType]  
print_dot [SHGraph.S]  
print_dot [SHGraph] 
Output the graph in DOT format on the given formatter, using the given
functions to resp print:

print_graph [FixpointType] 
Prints internal graph.

print_info [FixpointType]  
print_of_string [Print] 
Transforms a conversiontostring function to a printing function.

print_output [Fixpoint] 
Prints the result of an analysis.

print_output [FixpointType] 
Prints the result of an analysis.

print_stat [Fixpoint] 
Prints statistics

print_stat [FixpointType] 
Prints statistics

print_stat_iteration [FixpointType]  
print_stat_iteration_ilist [FixpointType]  
print_strategy [Fixpoint]  print_strategy_vertex man fmt sv prints an object of type
strategy , using the manager man for printing vertices and
hyperedges.

print_strategy [FixpointType]  print_strategy_vertex man fmt sv prints an object of type
strategy , using the manager man for printing vertices and
hyperedges.

print_strategy_iteration [FixpointType]  
print_strategy_vertex [Fixpoint]  print_strategy_vertex man fmt sv prints an object of type
strategy_vertex , using the manager man for printing vertices and
hyperedges.

print_strategy_vertex [FixpointType]  print_strategy_vertex man fmt sv prints an object of type
strategy_vertex , using the manager man for printing vertices and
hyperedges.

print_workingsets [FixpointType]  
process_strategy [FixpointStd]  
process_toplevel_strategy [FixpointStd] 
(Rather internal function)

process_vertex [FixpointStd]  
propagate [FixpointDyn]  
propagate_vertex [FixpointStd]  
R  
reachable [SHGraph.Compare]  
reachable [SHGraph.S]  
reachable [SHGraph] 
Returns the set of vertices and hyperedges that are *NOT* reachable from
the given root vertex.

reachable_multi [SHGraph.Compare]  
reachable_multi [SHGraph.S]  
reachable_multi [SHGraph]  
remove [Hashhe.Compare]  
remove [Hashhe.S]  
remove [Hashhe]  remove tbl x removes the current binding of x in tbl ,
restoring the previous binding if it exists.

remove [Sette.Compare]  
remove [Sette.S]  remove x s returns a set containing all elements of s ,
except x .

remove [Sette]  remove x s returns a set containing all elements of s , except
x .

remove_hedge [SHGraph.Compare]  
remove_hedge [SHGraph.S]  
remove_hedge [SHGraph] 
Remove the hyperedge from the graph.

remove_vertex [SHGraph.Compare]  
remove_vertex [SHGraph.S]  
remove_vertex [SHGraph] 
Remove the vertex from the graph, as well as all related hyperedges.

replace [Hashhe.Compare]  
replace [Hashhe.S]  
replace [Hashhe]  replace tbl x y replaces the current binding of x
in tbl by a binding of x to y .

replace_attrhedge [SHGraph.Compare]  
replace_attrhedge [SHGraph.S]  
replace_attrhedge [SHGraph] 
Change the attribute of an existing hyperedge

replace_attrvertex [SHGraph.Compare]  
replace_attrvertex [SHGraph.S]  
replace_attrvertex [SHGraph] 
Change the attribute of an existing vertex

repr [Sette.S]  
resize [Hashhe.Compare]  
rev [Ilist] 
Recursively reverse the recursive list
rev [a;[b;[c];d];e;[f]] = [[f];e;[d;[c];b];a]

S  
scfc [SHGraph.Compare]  
scfc [SHGraph.S]  
scfc [SHGraph] 
Decomposition of the graph into Strongly Connected SubComponents,

scfc_multi [SHGraph.Compare]  
scfc_multi [SHGraph.S]  
scfc_multi [SHGraph] 
idem, but from several initial vertices.

singleton [Sette.S]  singleton x returns the oneelement set containing only x .

singleton [Sette]  singleton x returns the oneelement set containing only x .

size [SHGraph.S]  
size [SHGraph]  size graph returns (nbvertex,nbhedge,nbedgevh,nbedgehv)

size_edgehv [SHGraph.S]  
size_edgehv [SHGraph] 
Number of edges (hyperedge,vertex) in the hypergraph

size_edgevh [SHGraph.S]  
size_edgevh [SHGraph] 
Number of edges (vertex,hyperedge) in the hypergraph

size_hedge [SHGraph.S]  
size_hedge [SHGraph] 
Number of hyperedges in the hypergraph

size_vertex [SHGraph.S]  
size_vertex [SHGraph] 
Number of vertices in the hypergraph

split [Sette.Compare] 
Meant to be internal, but exporting needed for Mappe.maptoset.

sprintf [Print] 
Better
sprintf function than Format.sprintf , as it takes the same
kind of formatters as other Format.Xprintf functions.

stat_iteration_merge [FixpointType]  
stdcompare [SHGraph.S]  
stdcompare [SHGraph]  
stdcompare [Hashhe]  
string_of_print [Print] 
Transforms a printing function into a conversiontostring function.

subset [Sette.Compare]  
subset [Sette.S]  subset s1 s2 tests whether the set s1 is a subset of
the set s2 .

subset [Sette]  subset s1 s2 tests whether the set s1 is a subset of
the set s2 .

succ_vertex [SHGraph.Compare]  
succ_vertex [SHGraph.S]  
succ_vertex [SHGraph] 
Successor vertices of a vertex by any hyperedge

succhedge [SHGraph.Compare]  
succhedge [SHGraph.S]  
succhedge [SHGraph] 
Successor hyperedges of a vertex

succvertex [SHGraph.Compare]  
succvertex [SHGraph.S]  
succvertex [SHGraph] 
Successor vertices of an hyperedge

T  
tl [Ilist] 
Return the tail of the list.

to_list [Ilist] 
Create a regular list from a recursive list.

topological_sort [SHGraph.Compare]  
topological_sort [SHGraph.S]  
topological_sort [SHGraph] 
Topological sort of the vertices of the hypergraph starting from
a root vertex.

topological_sort_multi [SHGraph.Compare]  
topological_sort_multi [SHGraph.S]  
topological_sort_multi [SHGraph] 
Topological sort from a set of root vertices.

transpose [SHGraph.S]  
transpose [SHGraph] 
Similar to
copy , but hyperedges are reversed: successor vertices
and predecessor vertices are exchanged.

treach_of_tvertex [FixpointStd] 
Return the array of abstract values associated to the
vertices

U  
union [Sette.Compare]  
union [Sette.S] 
Set union.

union [Sette]  
update_workingsets [FixpointStd] 
Update working sets assuming that the abstract value
associated to the vertex has been modified.

V  
vertex_dummy [SHGraph.T] 
A dummy (never used) value for vertex identifiers (used for the
functions
XXX_multi )

vertex_dummy [SHGraph.S]  
W  
weak [Print] 
Print a weak pointer array

wrap_duration [Time]  wrap_duration duration f executes the function f and stores into
!duration the time spent in f , in seconds.

wrap_duration_add [Time] 
Similar to
wrap_duration , but here the time spent in f is added to
the value !duration .
