|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectai.krr.propositions.InterpretationEnumerator
public class InterpretationEnumerator
This class is a very simple and inefficient TheoremProver that enumerates all possible Interpretation to find models that satisfy or falsify a given Sentence.
Constructor Summary | |
---|---|
InterpretationEnumerator()
|
Method Summary | |
---|---|
boolean |
equivalent(Sentence stmt1,
Sentence stmt2)
This function tests whether the two given Sentences are equivalent. |
boolean |
follows(Sentence stmt,
java.util.Collection<Sentence> axioms)
This function tests whether the given Sentence logically follows from the given Collection of Sentences. |
Interpretation |
getModel(Sentence stmt)
This function attempts to find a model for the given Sentence. |
boolean |
isInconsistent(Sentence stmt)
This function tests whether the given Sentence in propositional logic is inconsistent. |
boolean |
isValid(Sentence stmt)
This function tests whether the given Sentence in propositional logic is valid. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public InterpretationEnumerator()
Method Detail |
---|
public boolean isValid(Sentence stmt)
This function tests whether the given Sentence in propositional logic is valid. A Sentence is valid if and only if it is true under all possible Interpretations. This method loops over all possible Interpretations until it finds one that falsifies the given Sentence, in which case it returns false. Only if no such Interpretation can be found will it return true. The exponential time complexity of this method prohibits use for Sentences with many different atomic symbols.
isValid
in interface TheoremProver
stmt
- the Sentence to be tested
public boolean isInconsistent(Sentence stmt)
This function tests whether the given Sentence in propositional logic is inconsistent. A Sentence is inconsistent if and only if it is false under all possible Interpretations. This method loops over all possible Interpretations until it finds one that satisfies the given Sentence, in which case it returns false. Only if no such Interpretation can be found will it return true. The exponential time complexity of this method prohibits use for Sentences with many different atomic symbols.
isInconsistent
in interface TheoremProver
stmt
- the Sentence to be tested
public Interpretation getModel(Sentence stmt)
This function attempts to find a model for the given Sentence. A model is an Interpretation under which the Sentence evaluates to true. If such a model exists, the Sentence is satisfiable and the returned Interpretation proves this. If the Sentence is inconsistent then there is no model and this function returns null. This method enumerates all possible Interpretations and returns the first one it finds that satisfies the given Sentence.
getModel
in interface TheoremProver
stmt
- the Sentence for which a model is sought
public boolean equivalent(Sentence stmt1, Sentence stmt2)
This function tests whether the two given Sentences are equivalent. Two Sentences are equivalent if they evaluate to the same truth value under all possible Interpretations.
equivalent
in interface TheoremProver
stmt1
- the Sentence that may be equivalent to stmt2stmt2
- the Sentence that may be equivalent to stmt1
public boolean follows(Sentence stmt, java.util.Collection<Sentence> axioms)
This function tests whether the given Sentence logically follows from the given Collection of Sentences.
follows
in interface TheoremProver
stmt
- the Sentence to be testedaxioms
- Sentences from which the axiom might follow
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |