package de.unisiegen.tpml.core ;
import de.unisiegen.tpml.core.latex.LatexPrintable ;
import de.unisiegen.tpml.core.prettyprinter.PrettyPrintable ;
/**
* Base interface for proof rules in the small and big step interpreters and the
* type checker.
*
* @author Benedikt Meurer
* @author Christian Fehler
* @version $Rev$
* @see de.unisiegen.tpml.core.ProofRuleSet
*/
public interface ProofRule extends Comparable < ProofRule > , PrettyPrintable ,
LatexPrintable
{
/**
* Returns the group to which this proof rule belongs. The group is an
* identifier used to sort the rules when displaying them to the user. The
* user interface should simply sort the rules by group and name, adding a
* separator between the different groups.
*
* @return the group id for this proof rule.
*/
public int getGroup ( ) ;
/**
* Returns the user visible name of the proof rule, without the parenthesis.
* For example for the big step proof rule <b>(APP)</b> the name is just
* <tt>"APP"</tt>.
*
* @return the user visible rule name of the proof rule.
*/
public String getName ( ) ;
}