Package net.hydromatic.morel.util
Class MartelliUnifier
- java.lang.Object
-
- net.hydromatic.morel.util.Unifier
-
- net.hydromatic.morel.util.MartelliUnifier
-
public class MartelliUnifier extends Unifier
Unification algorithm due to Martelli, Montanari (1976) and Paterson, Wegman (1978).
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class net.hydromatic.morel.util.Unifier
Unifier.Action, Unifier.Failure, Unifier.Result, Unifier.Sequence, Unifier.Substitution, Unifier.Term, Unifier.TermTerm, Unifier.TermVisitor<R>, Unifier.Variable
-
-
Constructor Summary
Constructors Constructor Description MartelliUnifier()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidact(Unifier.Variable variable, Unifier.Term term, java.util.List<Unifier.TermTerm> termPairs, java.util.Map<Unifier.Variable,Unifier.Action> termActions, int depth)private intfindDelete(java.util.List<Unifier.TermTerm> termPairs)private intfindNonVarVar(java.util.List<Unifier.TermTerm> termPairs)private intfindSeqSeq(java.util.List<Unifier.TermTerm> termPairs)private intfindVarAny(java.util.List<Unifier.TermTerm> termPairs)Unifier.Resultunify(java.util.List<Unifier.TermTerm> termPairs, java.util.Map<Unifier.Variable,Unifier.Action> termActions)-
Methods inherited from class net.hydromatic.morel.util.Unifier
apply, apply, atom, failure, occurs, sequenceApply, substitution, variable, variable
-
-
-
-
Method Detail
-
unify
@Nonnull public Unifier.Result unify(java.util.List<Unifier.TermTerm> termPairs, java.util.Map<Unifier.Variable,Unifier.Action> termActions)
-
act
private void act(Unifier.Variable variable, Unifier.Term term, java.util.List<Unifier.TermTerm> termPairs, java.util.Map<Unifier.Variable,Unifier.Action> termActions, int depth)
-
findDelete
private int findDelete(java.util.List<Unifier.TermTerm> termPairs)
-
findSeqSeq
private int findSeqSeq(java.util.List<Unifier.TermTerm> termPairs)
-
findNonVarVar
private int findNonVarVar(java.util.List<Unifier.TermTerm> termPairs)
-
findVarAny
private int findVarAny(java.util.List<Unifier.TermTerm> termPairs)
-
-