package org.archstudio.prolog.engine; import java.util.List; import java.util.Map; import org.archstudio.prolog.term.Term; import org.archstudio.prolog.term.VariableTerm; import com.google.common.collect.Lists; import com.google.common.collect.Maps; public class UnificationContext { public final ProofContext proofContext; public final List<Equation> equations = Lists.newArrayListWithCapacity(25); public final Map<VariableTerm, Term> variables = Maps.newHashMap(); public UnificationContext(ProofContext proofContext, Term t1, Term t2, Map<VariableTerm, Term> variables) { this.proofContext = proofContext; this.equations.add(new Equation(t1.resolve(proofContext, variables), t2.resolve(proofContext, variables))); this.variables.putAll(variables); } @Override public String toString() { return "Equations: " + equations + ", Variables: " + variables; } }