Logic
Propositional Logic
Propositions (truth variables): | p, q, nice, etc. |
Operators: | and (&, ×, .), or (∨, +), not (¬), => (implies, ⇒), <= (if, implied by, ⇐), <=> (iff, if and only if, ⇔) |
e.g. | p & q ⇒ p |
Propositional logic can be manipulated by an algorithm to detect tautology (always true), contradiction (always false) or satisfiable (sometimes true sometimes false).
Predicate Logic
Predicates (truth functions): | p(...), q(...), odd(7), parent(william,charles), etc. |
Operators: | and (&, ×, .), or (∨, +), not (¬), => (⇒), <= (⇐), <=> (⇔ iff) |
Quantifiers: | ∀ (forall), ∃ (there exists) |
Logical variables: | X, Y, Child, Parent, etc. |
Constants: | 123, charles, etc. |
Function names: | f(), hcf(,), etc. |
e.g. | ∀ C, P, GP, parent(C,P) and parent(P,GP) => grandParent(C,GP). |
The logic programming language Prolog is based on predicate logic.