Class PlFormula
java.lang.Object
org.tweetyproject.logics.pl.syntax.PlFormula
- All Implemented Interfaces:
Formula,ClassicalFormula,Conjunctable,Disjunctable,Invertable,ProbabilityAware,SimpleLogicalFormula
- Direct Known Subclasses:
AssociativePlFormula,Equivalence,ExistsQuantifiedFormula,ForallQuantifiedFormula,Implication,Indecision,Negation,Proposition,SpecialFormula,WeakNegation
This class represents the common ancestor for propositional formulae.
- Author:
- Matthias Thimm, Tim Janus
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract PlFormulaclone()Creates a deep copy of this formulaabstract PlFormulaThis method collapses all associative operations appearing in this term, e.g.Returns a conjunction of this and the given formula.abstract booleanabstract Set<Proposition> getAtoms()Processes the set of all atoms which appear in this formulaReturns all literals, i.e.Returns the set of models of this formula wrt.abstract Set<PossibleWorld> getModels(PlSignature sig) Returns the set of models of this formula wrt.abstract Set<PlPredicate> Processes the set of all predicates which appear in this formulaReturns the set of prime implicants of this formula.Returns the signature of the language of this formula.Returns this formula's probability in the uniform distribution.abstract inthashCode()booleanisClause()Checks whether this formula is a clause, i.e.booleanChecks whether this formula is a conjunctive clause, i.e.booleanabstract intReturns the number of occurrences of the given proposition within this formulaabstract PlFormulareplace(Proposition p, PlFormula f, int i) Replaces the ith instance of the proposition p by f.booleanresolvableWith(PlFormula other) Checks whether this formula (which must be a conjunction of literals) is resolvable with the given formula (which is also a conjunction of literals), i.e.resolveWith(PlFormula other) Resolves this formula with the given one (both have to be conjunctive clauses) and returns some resolvent.This method returns this formula in Blake canonical form.abstract ConjunctiontoCnf()This method returns this formula in conjunctive normal form (CNF).toDnf()This method returns this formula in disjunctive normal form (DNF).abstract PlFormulatoNnf()This method returns this formula in negation normal form (NNF).abstract PlFormulatrim()Removes duplicates (identical formulas) from conjunctions and disjunctions and removes duplicate negations.
-
Constructor Details
-
PlFormula
public PlFormula()Default Constructor
-
-
Method Details
-
getPredicateCls
- Specified by:
getPredicateClsin interfaceSimpleLogicalFormula- Returns:
- The class description of the predicate used by this formula.
-
getSignature
Description copied from interface:FormulaReturns the signature of the language of this formula.- Specified by:
getSignaturein interfaceFormula- Returns:
- the signature of the language of this formula.
-
getAtoms
Description copied from interface:SimpleLogicalFormulaProcesses the set of all atoms which appear in this formula- Specified by:
getAtomsin interfaceSimpleLogicalFormula- Returns:
- The set of all atoms
-
getLiterals
-
combineWithAnd
Description copied from interface:ConjunctableReturns a conjunction of this and the given formula.- Specified by:
combineWithAndin interfaceConjunctable- Parameters:
f- a formula to be combined with AND and this.- Returns:
- a conjunction of this and the given formula.
-
combineWithOr
- Specified by:
combineWithOrin interfaceDisjunctable- Parameters:
f- a formula to be combined with OR and this.- Returns:
- a disjunction of this and the given formula.
-
collapseAssociativeFormulas
This method collapses all associative operations appearing in this term, e.g. every a||(b||c) becomes a||b||c.- Returns:
- the collapsed formula.
-
getPredicates
Description copied from interface:SimpleLogicalFormulaProcesses the set of all predicates which appear in this formula- Specified by:
getPredicatesin interfaceSimpleLogicalFormula- Returns:
- all predicates that appear in this formula
-
trim
Removes duplicates (identical formulas) from conjunctions and disjunctions and removes duplicate negations. Simplifies equivalences and implications with equivalent formulas (A=>A, A<=>A) to tautologies.- Returns:
- an equivalent formula without duplicates.
-
getUniformProbability
Returns this formula's probability in the uniform distribution.- Specified by:
getUniformProbabilityin interfaceProbabilityAware- Returns:
- this formula's probability in the uniform distribution.
-
toNnf
This method returns this formula in negation normal form (NNF). A formula is in NNF iff negations occur only directly in front of a proposition.- Returns:
- the formula in NNF.
-
toCnf
This method returns this formula in conjunctive normal form (CNF). A formula is in CNF iff it is a conjunction of disjunctions and in NNF. The CNF generated by this method is not necessarily minimal.- Returns:
- the formula in CNF.
-
toDnf
This method returns this formula in disjunctive normal form (DNF). A formula is in DNF iff it is a disjunction of conjunctive clauses. The DNF generated by this method is not necessarily minimal.- Returns:
- the formula in DNF.
-
resolvableWith
Checks whether this formula (which must be a conjunction of literals) is resolvable with the given formula (which is also a conjunction of literals), i.e. whether they contains exactly one complementary literal.- Parameters:
other- a conjunction of literals- Returns:
- "true" iff this formula is resolvable with the other formula.
-
resolveWith
Resolves this formula with the given one (both have to be conjunctive clauses) and returns some resolvent.- Parameters:
other- a conjunction of formulas- Returns:
- some resolvent.
-
toBlakeCanonicalForm
This method returns this formula in Blake canonical form. A formula is in Blake canonical form iff it is the disjunction of its prime implicants.- Returns:
- the formula in Blake canonical form
-
getPrimeImplicants
Returns the set of prime implicants of this formula.- Returns:
- the set of prime implicants of this formula.
-
getModels
Returns the set of models of this formula wrt. a signature that only contains the propositions appearing in this formula.- Returns:
- the set of models of this formula wrt. a signature that only contains the propositions appearing in this formula.
-
getModels
Returns the set of models of this formula wrt. the given signature.- Parameters:
sig- some propositional signature- Returns:
- the set of models of this formula wrt. the given signature.
-
complement
- Specified by:
complementin interfaceInvertable- Returns:
- the complement of this formula.
-
isClause
public boolean isClause()Checks whether this formula is a clause, i.e. whether it is a disjunction of literals.- Returns:
- "true" iff this formula is a clause.
-
isConjunctiveClause
public boolean isConjunctiveClause()Checks whether this formula is a conjunctive clause, i.e. whether it is a conjunction of literals.- Returns:
- "true" iff this formula is a conjunctive clause.
-
numberOfOccurrences
Returns the number of occurrences of the given proposition within this formula- Parameters:
p- some proposition- Returns:
- the number of occurrences of the given proposition within this formula
-
replace
Replaces the ith instance of the proposition p by f.- Parameters:
p- some propositionf- some formulai- the index of the proposition- Returns:
- a new formula with the ith instance of the proposition p replaced by f.
-
isLiteral
public boolean isLiteral()- Specified by:
isLiteralin interfaceSimpleLogicalFormula- Returns:
- true if the formula represents a literal in the language or false otherwise
-
equals
- Specified by:
equalsin interfaceSimpleLogicalFormula- Overrides:
equalsin classObject
-
hashCode
public abstract int hashCode()- Specified by:
hashCodein interfaceSimpleLogicalFormula- Overrides:
hashCodein classObject
-
clone
Description copied from interface:SimpleLogicalFormulaCreates a deep copy of this formula- Specified by:
clonein interfaceSimpleLogicalFormula- Returns:
- the cloned formula
-