module Admissible:making a context unifier admissiblesig..end
typesubst =Subst.subst
typeraw_context_unifier =Context_unifier.raw_context_unifier
val make_admissible : Config.config ->
raw_context_unifier ->
subst -> bool array -> substmake_admissible config database
raw_context_unifier subst remainder_flags
makes the context unifier raw_context_unifier admissible.
The actual context unifiers (subst, Context_unifier.recompute_unifier)
and the remainder states of the literals
(remainder_flags, Context_unifier.compute_remainder_states)
have to be explicitly given
(which is just a combination of performance and convenience based
on the current implementation and usage of make_admissible).
The context unifier is made admissible in a way that the remainder literals contain as few parameters as possible, while no new remainder literals are introduced.
Based on Config.mixed_literals the resulting remainder
may contain mixed literals,
or literals containing either universal or parametric variables.