package de.unisiegen.tpml.core.smallstep ; import de.unisiegen.tpml.core.ProofRule ; /** * Base interface for small step proof rules. * * @author Benedikt Meurer * @version $Rev$ * @see de.unisiegen.tpml.core.ProofRule */ public interface SmallStepProofRule extends ProofRule { // // Accessors // /** * Returns <code>true</code> if this rule is an axiom, which does not have * any premises. Otherwise, if the rule has exactly one premises (small step * rules cannot have more than one premise), <code>false</code> is returned * (this is called a meta rule then). * * @return <code>true</code> if the proof rule has no premises. */ public boolean isAxiom ( ) ; // // Primitives // /** * Returns the <b>EXN</b> rule for this meta rule. If this rule is an axiom * or an <b>EXN</b> in itself, this method will return a reference to this * rule instead (this does not really make sense, but it is convenient to * use). * * @return the <b>EXN</b> rule for this meta rule. */ public SmallStepProofRule toExnRule ( ) ; }