All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fr.boreal.model.logicalElements.api.Predicate Maven / Gradle / Ivy

The newest version!
package fr.boreal.model.logicalElements.api;

import fr.boreal.model.logicalElements.impl.identityObjects.IdentityPredicateImpl;

/**
 * A Predicate represents a relation between terms. It's arity determines the
 * number of terms allowed in the relation. For example, a Predicate with name
 * {@code P} and arity {@code n} allows atomic formulas of the form
 * {@code P(t1,...,tn)}.
 *
 */
public interface Predicate {

	/**
	 * Bottom predicate : always false
	 */
	Predicate BOTTOM = new IdentityPredicateImpl("⊥", 0);
	/**
	 * Top predicate : always true
	 */
	Predicate TOP = new IdentityPredicateImpl("⊤", 0);

	/**
	 * @return the arity of this predicate
	 */
	int arity();

	/**
	 * @return a String representation of this predicate name
	 */
	String label();

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy