package de.unisiegen.tpml.core; import de.unisiegen.tpml.core.languages.Language; /** * A set of <code>ProofRule</code>s. * * @author Benedikt Meurer * @version $Rev$ * * @see de.unisiegen.tpml.core.ProofRule */ public interface ProofRuleSet extends Iterable<ProofRule> { // // Accessors // /** * Returns the <code>Language</code> to which the proof rules within this proof rule * set belong. * * @return the language of the proof rules. * * @see de.unisiegen.tpml.core.languages.Language */ public Language getLanguage(); /** * Returns an array with all <code>ProofRule</code>s in this set of proof rules. * * The returned array is sorted using the sort order defined by the {@link ProofRule}s * implementation of the {@link Comparable} interface. * * The returned array is sorted using the sort order defined by the {@link ProofRule}s * implementation of the {@link Comparable} interface. * * @return an array with all <code>ProofRule</code>s. * * @see ProofRule */ public ProofRule[] getRules(); // // Primitives // /** * Returns <code>true</code> if the proof rule set contains the specified proof * <code>rule</code>, <code>false</code> otherwise. * * @param rule the <code>ProofRule</code> to look for. * * @return <code>true</code> if the proof rule set contains the <code>rule</code>. * * @see #getRules() */ public boolean contains(ProofRule rule); }