Package edu.uky.ai.logic
Class Implication
java.lang.Object
edu.uky.ai.logic.BooleanProposition
edu.uky.ai.logic.Implication
- All Implemented Interfaces:
Formula
,Proposition
,Comparable<Formula>
An implication, or logical IF statement, is defined by the truth value of
its two parts, the antecedent and the consequent. It is always true, except
when the antecedent is true and the consequent is false.
- Author:
- Stephen G. Ware
-
Field Summary
FieldsModifier and TypeFieldDescriptionfinal Proposition
The first part of the implicationfinal Proposition
The second part of the implication, which is implied by the antecedentstatic final String
The word used to express an implicationFields inherited from class edu.uky.ai.logic.BooleanProposition
arguments
Fields inherited from interface edu.uky.ai.logic.Proposition
FALSE, TRUE
-
Constructor Summary
ConstructorsConstructorDescriptionImplication
(Proposition antecedent, Proposition consequent) Constructs an implication from a given antecedent and consequent. -
Method Summary
Modifier and TypeMethodDescriptionboolean
int
hashCode()
boolean
Tests whether this proposition is true in the given state.void
makeTrue
(MutableState state) Modifies the given state object to make this proposition true.negate()
Returns a proposition whose truth values are opposite of this proposition (i.e.simplify()
Returns an equivalent proposition which may be simpler.substitute
(Substitution substitution) Returns a version of this formula such that any elements that appear in the given substitution are replaced.toCNF()
Converts this proposition to Conjunctive Normal Form (CNF).toDNF()
Converts this proposition to Disjunctive Normal Form (DNF).toString()
Finds the bindings that would be necessary to make this formula the same as another formula (if any exist).Methods inherited from class edu.uky.ai.logic.BooleanProposition
argumentsEqual, isGround, negateArguments, substituteArguments, unifyArguments
-
Field Details
-
IMPLICATION_PREDICATE
The word used to express an implication- See Also:
-
antecedent
The first part of the implication -
consequent
The second part of the implication, which is implied by the antecedent
-
-
Constructor Details
-
Implication
Constructs an implication from a given antecedent and consequent.- Parameters:
antecedent
- the first part of the implicationconsequent
- the second part of the implication which is implied by the antecedent
-
-
Method Details
-
equals
-
hashCode
public int hashCode() -
toString
-
substitute
Description copied from interface:Formula
Returns a version of this formula such that any elements that appear in the given substitution are replaced.- Parameters:
substitution
- the substitution- Returns:
- a formula with replacements from the substitution
-
unify
Description copied from interface:Formula
Finds the bindings that would be necessary to make this formula the same as another formula (if any exist).- Parameters:
other
- the other formulabindings
- an existing set of bindings that will be added to- Returns:
- the bindings that would make both formulas the same, or null if so such bindings exist
-
isTrue
Description copied from interface:Proposition
Tests whether this proposition is true in the given state.- Parameters:
state
- the state in which to test this proposition- Returns:
- true if the proposition is true, false otherwise
-
makeTrue
Description copied from interface:Proposition
Modifies the given state object to make this proposition true. Note that some propositions (such asDisjunction
s) are non-deterministic, meaning there are multiple ways to make them true, and thus the state that would result from this operation is not clearly defined.- Parameters:
state
- the state to modify
-
simplify
Description copied from interface:Proposition
Returns an equivalent proposition which may be simpler.- Returns:
- the simplified proposition
-
negate
Description copied from interface:Proposition
Returns a proposition whose truth values are opposite of this proposition (i.e. true when this one is false, false when this one is true).- Returns:
- a proposition with opposite truth values
-
toCNF
Description copied from interface:Proposition
Converts this proposition to Conjunctive Normal Form (CNF). There are three kinds of formulas that are considered to be in CNF:- A
Literal
by itself - A
Disjunction
of literals, called a clause - A
Conjunction
of clauses
- Returns:
- an equivalent proposition in CNF
- A
-
toDNF
Description copied from interface:Proposition
Converts this proposition to Disjunctive Normal Form (DNF). There are three kinds of formulas that are considered to be in DNF:- A
Literal
by itself - A
Conjunction
of literals, called a clause - A
Disjunction
of clauses
- Returns:
- an equivalent proposition in DNF
- A
-