Newer
Older
RDLProofSystem / src / main / java / models / formulas / meta / MetaFormula.java
package models.formulas.meta;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import models.algebra.Variable;
import models.formulas.Formula;
import models.terms.RDLTerm;
import models.terms.meta.MatchConstraint;

public abstract class MetaFormula {

	public Set<MatchConstraint> isMatchedBy(Formula formula) {
		return isMatchedBy(formula, new MatchConstraint(new HashMap<>(), new HashMap<>()));
	}
	
	public abstract Set<MatchConstraint> isMatchedBy(Formula formula, MatchConstraint constraint);
	
	public abstract Formula substitution(Map<Variable, RDLTerm> binding);
	
	public abstract String toString();
	public abstract boolean equals(Object another);
	public abstract int hashCode();
	
}