Package net.hydromatic.morel.util
Class MartelliUnifier
java.lang.Object
net.hydromatic.morel.util.Unifier
net.hydromatic.morel.util.MartelliUnifier
Unification algorithm due to Martelli, Montanari (1976) and Paterson, Wegman
(1978).
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static enumprivate static classAsUnifier.Constraint, but mutable.(package private) classWorkspace forMartelliUnifier.Nested classes/interfaces inherited from class net.hydromatic.morel.util.Unifier
Unifier.Action, Unifier.Constraint, Unifier.CycleException, Unifier.Failure, Unifier.Result, Unifier.Retry, Unifier.Sequence, Unifier.Substitution, Unifier.SubstitutionResult, Unifier.Term, Unifier.TermTerm, Unifier.TermVisitor<R>, Unifier.Tracer, Unifier.Variable -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidact(Unifier.Variable variable, Unifier.Term term, MartelliUnifier.Work work, Unifier.Substitution substitution, Map<Unifier.Variable, Unifier.Action> termActions, Set<Unifier.Variable> set) private voidact2(Unifier.Variable variable, Unifier.Term term, MartelliUnifier.Work work, Unifier.Substitution substitution, Map<Unifier.Variable, Unifier.Action> termActions, Set<Unifier.Variable> set) @NonNull Unifier.Resultunify(List<Unifier.TermTerm> termPairs, Map<Unifier.Variable, Unifier.Action> termActions, List<Unifier.Constraint> constraints, Unifier.Tracer tracer) Methods inherited from class net.hydromatic.morel.util.Unifier
apply, apply, atom, atomUnique, constraint, constraint, failure, occurs, sequenceApply, substitution, variable, variable, variable
-
Constructor Details
-
MartelliUnifier
public MartelliUnifier()
-
-
Method Details
-
unify
public @NonNull Unifier.Result unify(List<Unifier.TermTerm> termPairs, Map<Unifier.Variable, Unifier.Action> termActions, List<Unifier.Constraint> constraints, Unifier.Tracer tracer) -
act
private void act(Unifier.Variable variable, Unifier.Term term, MartelliUnifier.Work work, Unifier.Substitution substitution, Map<Unifier.Variable, Unifier.Action> termActions, Set<Unifier.Variable> set) -
act2
private void act2(Unifier.Variable variable, Unifier.Term term, MartelliUnifier.Work work, Unifier.Substitution substitution, Map<Unifier.Variable, Unifier.Action> termActions, Set<Unifier.Variable> set)
-