package org.archstudio.prolog.op;
import java.util.Map;
import org.archstudio.prolog.engine.ProofContext;
import org.archstudio.prolog.engine.UnificationEngine;
import org.archstudio.prolog.term.Term;
import org.archstudio.prolog.term.VariableTerm;
public interface Executable extends Term {
/**
* @return the resulting variables after the operation succeeds.
*/
public Iterable<Map<VariableTerm, Term>> execute(ProofContext proofContext, UnificationEngine unificationEngine,
Term source, Map<VariableTerm, Term> variables);
}