Data Structures | |
struct | cuex_occurtree |
Functions | |
cuex_occurtree_t | cuex_folded_occurtree (cuex_t e, cu_bool_t force_comm) |
cuex_occurtree_t | cuex_unfolded_occurtree (cuex_t e, cu_bool_t force_comm) |
cuex_t | cuex_occurtree_expr (cuex_occurtree_t tree) |
cuex_occurtree_t | cuex_occurtree_at (cuex_occurtree_t tree, cu_rank_t i) |
cu_bool_t | cuex_occurtree_is_closed (cuex_occurtree_t tree) |
cu_bool_t | cuex_occurtree_is_muclosed (cuex_occurtree_t tree) |
cucon_ucset_t | cuex_occurtree_free_vars (cuex_occurtree_t tree) |
cuex_occurtree_t | cuex_occurtree_prune_mu (cuex_occurtree_t tree, cuex_opview_t view) |
void | cuex_occurtree_dump (cuex_occurtree_t tree, FILE *out) |
cuex_occurtree_t cuex_folded_occurtree | ( | cuex_t | e, | |
cu_bool_t | force_comm | |||
) |
Returns an occurtree treating μ-variables like regular variables. If force_comm, then use commutative iteration for all compounds.
cuex_occurtree_t cuex_occurtree_at | ( | cuex_occurtree_t | tree, | |
cu_rank_t | i | |||
) |
Returns occurtree for subexpression number i under tree.
void cuex_occurtree_dump | ( | cuex_occurtree_t | tree, | |
FILE * | out | |||
) |
Debug printout of tree.
cuex_t cuex_occurtree_expr | ( | cuex_occurtree_t | tree | ) |
The expression from which tree was created.
cucon_ucset_t cuex_occurtree_free_vars | ( | cuex_occurtree_t | tree | ) |
Returns the set of free variables in tree.
cu_bool_t cuex_occurtree_is_closed | ( | cuex_occurtree_t | tree | ) |
True iff tree has no free variables.
cu_bool_t cuex_occurtree_is_muclosed | ( | cuex_occurtree_t | tree | ) |
True iff tree has no free μ-variables.
cuex_occurtree_t cuex_occurtree_prune_mu | ( | cuex_occurtree_t | tree, | |
cuex_opview_t | view | |||
) |
Remove unused μ-binding sites from tree and return the new root. This destructs tree in the process.
cuex_occurtree_t cuex_unfolded_occurtree | ( | cuex_t | e, | |
cu_bool_t | force_comm | |||
) |
Returns an occurtree where a free μ-variable also implies all variables which are free in the corresponding μ-bind. If force_comm, then use the commutative iteration for all compounds.