Representing facts with FOL, resolution, natural deduction, Bayesian networks, Dempster-Shafer theory, and fuzzy logic — with full worked examples
Natural language is full of ambiguity — "All that glitters is not gold" means different things to different readers. Predicate logic (First-Order Logic, FOL) eliminates ambiguity by providing a precise, formal language with well-defined syntax and semantics. Before we can reason about the world, we must encode what we know into this language — a process called knowledge representation in FOL.
This section covers the building blocks: terms, predicates, ground atoms, complex sentences, and how to translate natural-language facts into FOL one step at a time.
FOL sentences are built from these elements:
| Element | Definition | Examples | Notation |
|---|---|---|---|
| Constants | Name a specific object in the world | john, london, 42, amoxicillin | Lowercase first letter |
| Variables | Placeholder for any object | x, y, person, disease | Lowercase, often x/y/z |
| Predicates | Express properties of / relations between objects | Loves(x,y), Human(x), Father(tom,bob) | Uppercase first letter |
| Functions | Map objects to objects (object-valued) | motherOf(x), plusOne(n) | Lowercase first letter |
| Connectives | Combine sentences | ¬ ∧ ∨ → ↔ | Standard logical symbols |
| Quantifiers | Scope of variables | ∀x Human(x)→Mortal(x) | ∀ (for all), ∃ (there exists) |
| Atomic sentence | Predicate applied to terms | Father(tom, bob) | The smallest true/false unit |
We use a family domain for predicate logic examples and a medical diagnosis domain for probabilistic reasoning. The family KB is compact enough to work by hand yet rich enough to illustrate all inference rules.
| Fact (Natural Language) | FOL Representation |
|---|---|
| Tom is a person | Person(tom) |
| Bob is a person | Person(bob) |
| Liz is a person | Person(liz) |
| Ann is a person | Person(ann) |
| Tom is the father of Bob | Father(tom, bob) |
| Tom is the father of Liz | Father(tom, liz) |
| Bob is the father of Ann | Father(bob, ann) |
| Tom is male | Male(tom) |
| Bob is male | Male(bob) |
| Every person's father is also a person | ∀x ∀y (Person(x) ∧ Father(y,x) → Person(y)) |
The most basic FOL sentences are ground atomic sentences — predicates applied to constants only (no variables). These directly assert specific facts about named individuals.
| Natural Language Fact | FOL Ground Atom | Predicate Arity | Meaning |
|---|---|---|---|
| "Tom is tall" | Tall(tom) | Unary (1) | Property of one object |
| "Tom loves Ann" | Loves(tom, ann) | Binary (2) | Relation between two objects |
| "Bob gave Ann a book" | Gave(bob, ann, book1) | Ternary (3) | Relation among three objects |
| "The temperature is 38.5°C" | Temperature(john, 38.5) | Binary (2) | Property with a numeric value |
| "Tom is NOT tall" | ¬Tall(tom) | Unary negated | Negation of a property |
| "All humans are mortal" | ∀x (Human(x) → Mortal(x)) | Universal rule | Quantified implication |
A function in FOL maps one or more objects to another object. Unlike predicates (which return true/false), functions return an object. Functions allow us to refer to objects without naming them explicitly.
A function is computable if there exists an algorithm that, given input objects, terminates in finite time and returns the correct output object. In practice, all functions used in FOL knowledge bases are assumed computable.
| Function | Notation | Example | Result |
|---|---|---|---|
| Mother of | motherOf(x) | motherOf(bob) | The object that is Bob's mother |
| Age of | ageOf(x) | ageOf(john) | 45 (a number) |
| Father of father | fatherOf(fatherOf(x)) | fatherOf(fatherOf(ann)) | tom (grandfather) |
| Plus one | succ(n) | succ(succ(0)) | 2 (Peano arithmetic) |
| Drug dose for weight | doseFor(drug, weight) | doseFor(amoxicillin, 70) | 500mg (computed value) |
Predicates return true or false: Father(tom, bob) is either true or false.
Functions return objects: fatherOf(bob) returns the object tom.
The same relationship can often be expressed either way: Father(tom, bob) ↔ fatherOf(bob) = tom. Functions are more compact when used in complex nested expressions.
| English | FOL Translation | Key Structure |
|---|---|---|
| "Bob is the grandfather of Ann" | ∃z (Father(bob,z) ∧ Father(z,ann))or equivalently: fatherOf(fatherOf(ann)) = bob | Existential — intermediate person z |
| "Everyone has a father" | ∀x Person(x) → ∃y Father(y,x) | Universal + Existential |
| "No one is their own father" | ¬∃x Father(x,x)equiv: ∀x ¬Father(x,x) | Negated existential |
| "Only males can be fathers" | ∀x ∀y Father(x,y) → Male(x) | Universal implication |
| "Tom has at least one child" | ∃y Father(tom,y) | Existential witness |
| "Tom has exactly two children" | ∃y ∃z (Father(tom,y) ∧ Father(tom,z) ∧ y≠z ∧ ∀w Father(tom,w) → (w=y ∨ w=z)) | Counting (complex) |
"All/Every A is B" → ∀x A(x) → B(x) — use ∀ with →
"Some/There exists an A that is B" → ∃x A(x) ∧ B(x) — use ∃ with ∧
Common mistake: writing ∃x A(x) → B(x) — this is almost always wrong (it says "if there exists something satisfying A, then B holds," which is a completely different statement).
Organising knowledge into hierarchies is one of the most natural human cognitive strategies. We classify things into categories, categories into super-categories, and so on. In FOL, these hierarchical relationships are captured through ISA (is-a) and instance relationships — the formal backbone of ontologies, class hierarchies, and inheritance-based reasoning.
Instance relationship (∈ / is-an-instance-of): Relates a specific individual to the class it belongs to. "John is a Person" — John is an instance of the class Person.
In FOL: Person(john) — the predicate Person represents the class, and applying it to the constant john asserts John is a member.
ISA / Subclass relationship (⊆ / is-a-subclass-of): Relates one class to a more general class. "Doctor is a subclass of Person" — every Doctor is also a Person. In FOL: ∀x Doctor(x) → Person(x)
AKO (A-Kind-Of): Synonym for ISA at the class level — used in semantic networks and frame systems.
-- ISA: Every Doctor is a Person --
∀x Doctor(x) → Person(x)
-- ISA: Every Person is an Entity --
∀x Person(x) → Entity(x)
-- ISA: Every Specialist is a Doctor --
∀x Specialist(x) → Doctor(x)
-- ISA: Pneumonia is a kind of LungDisease --
∀x Pneumonia(x) → LungDisease(x)
-- ISA: Pneumonia is a kind of InfectiousDisease --
∀x Pneumonia(x) → InfectiousDisease(x)
-- john is an instance of Doctor --
Doctor(john)
-- mary is an instance of Patient --
Patient(mary)
-- pneumonia1 is a specific case of Pneumonia --
Pneumonia(pneumonia1)
DiagnosedIn(pneumonia1, mary)
| Given Fact | Applied Rule | Derived Fact |
|---|---|---|
Doctor(john) | ∀x Doctor(x)→Person(x) | Person(john) ✓ |
Person(john) | ∀x Person(x)→Entity(x) | Entity(john) ✓ |
Pneumonia(pneumonia1) | ∀x Pneumonia(x)→LungDisease(x) | LungDisease(pneumonia1) ✓ |
Pneumonia(pneumonia1) | ∀x Pneumonia(x)→InfectiousDisease(x) | InfectiousDisease(pneumonia1) ✓ |
This is FOL forward chaining — applying universal rules to derive new ground facts. Each derived fact becomes available for further inference.
We now have a language for representing facts. The next question is: how do we prove new facts from what we know? Resolution is the most important inference rule in automated theorem proving — it is the foundation of Prolog and most FOL reasoning systems. It works by contradiction: to prove a goal, assume its negation and show that a contradiction results.
Given two clauses containing complementary literals (one positive, one negative, for the same predicate), we can resolve them to produce a new clause containing all other literals from both.
Resolution requires all sentences in Conjunctive Normal Form (CNF) — a conjunction of clauses, where each clause is a disjunction of literals. The conversion process has six steps:
Eliminate implications: Replace α→β with ¬α∨β; replace α↔β with (¬α∨β)∧(¬β∨α).
Move negations inward (De Morgan's laws): ¬(α∧β) → ¬α∨¬β; ¬(α∨β) → ¬α∧¬β; ¬¬α → α; ¬∀x α → ∃x ¬α; ¬∃x α → ∀x ¬α.
Standardise variables: Rename variables so each quantifier uses a unique variable name. Prevents variable capture.
Skolemise (eliminate ∃): Replace each existentially quantified variable with a Skolem function of the universally quantified variables in scope. If no universal quantifiers: use a Skolem constant.
Drop universal quantifiers: All remaining variables are implicitly universally quantified. Remove ∀.
Distribute ∧ over ∨ (CNF): Use (α∨(β∧γ)) → (α∨β)∧(α∨γ) until each clause is a pure disjunction of literals.
Original sentence: ∀x Person(x) → ∃y (Person(y) ∧ MotherOf(y,x))
| Step | Action | Result |
|---|---|---|
| 1 | Eliminate → : α→β becomes ¬α∨β | ∀x ¬Person(x) ∨ ∃y (Person(y) ∧ MotherOf(y,x)) |
| 2 | Move ¬ inward (nothing to push here) | No change |
| 3 | Standardise variables (already unique) | No change |
| 4 | Skolemise ∃y: y depends on x, so replace y with function m(x) | ∀x ¬Person(x) ∨ (Person(m(x)) ∧ MotherOf(m(x),x)) |
| 5 | Drop ∀x | ¬Person(x) ∨ (Person(m(x)) ∧ MotherOf(m(x),x)) |
| 6 | Distribute ∨ over ∧ to get two clauses | Clause 1: ¬Person(x) ∨ Person(m(x))Clause 2: ¬Person(x) ∨ MotherOf(m(x),x) |
The original single sentence becomes two clauses in CNF. The Skolem function m(x) represents "the mother of x" without explicitly quantifying over a new variable.
Unification is the process of finding a substitution σ (a mapping from variables to terms) that makes two literals identical. The result is called the Most General Unifier (MGU) — the least committed substitution that achieves unification.
-- C1: Tom is a person --
Person(tom)
-- C2: If x is a person and y is x's father, then y is a person --
Person(x) ∧ Father(y,x) → Person(y)
-- In CNF: two clauses --
-- C2a: ¬Person(x) ∨ ¬Father(y,x) ∨ Person(y) --
-- C3: Tom is the father of Bob --
Father(tom, bob)
-- C4: Bob is the father of Ann --
Father(bob, ann)
Resolution by refutation: negate the goal, add ¬Person(ann) to the KB, and derive the empty clause □.
| Step | Clauses Used | Unifier σ | Resolvent |
|---|---|---|---|
| 1. Negate goal | Add ¬Person(ann) to KB | — | C5: ¬Person(ann) |
| 2. Resolve C5 with C2a | C5: ¬Person(ann) · C2a: ¬Person(x)∨¬Father(y,x)∨Person(y) | σ={y/ann} | C6: ¬Person(x)∨¬Father(ann,x) |
| 3. Resolve C6 with C4 | C6: ¬Person(x)∨¬Father(ann,x) · C4: Father(bob,ann) | σ={x/bob} | C7: ¬Person(bob) |
| 4. Resolve C7 with C2a | C7: ¬Person(bob) · C2a: ¬Person(x)∨¬Father(y,x)∨Person(y) | σ={y/bob} | C8: ¬Person(x)∨¬Father(bob,x) |
| 5. Resolve C8 with C3 | C8: ¬Person(x)∨¬Father(bob,x) · C3: Father(tom,bob) | σ={x/tom} | C9: ¬Person(tom) |
| 6. Resolve C9 with C1 | C9: ¬Person(tom) · C1: Person(tom) | σ={} | □ (empty clause!) ✓ |
The empty clause □ was derived — a contradiction. The assumption ¬Person(ann) is false. Therefore Person(ann) is proved. The resolution chain: ann←bob←tom, each step inheriting Person through Father relationships.
Resolution converts everything to clausal form and works mechanically. Natural Deduction (Gentzen, 1935) takes a different approach — it closely mirrors how humans actually reason. Rather than a single rule, natural deduction provides a system of rules, one for introducing and one for eliminating each logical connective. Proofs are structured derivations that look like mathematical proofs.
A natural deduction proof is a tree of judgements of the form Γ ⊢ φ ("from assumptions Γ, we can derive φ"). Each node in the proof tree is justified by one of the inference rules. The root is the goal; the leaves are axioms or discharged assumptions.
| Rule Name | Formal Rule | Meaning | Example |
|---|---|---|---|
| Modus Ponens (→E) | α, α→β ⊢ β | If α and "if α then β", derive β | HasFever, HasFever→Sick ⊢ Sick |
| Modus Tollens (MT) | α→β, ¬β ⊢ ¬α | If "if α then β" and not β, then not α | Human→Mortal, ¬Mortal ⊢ ¬Human |
| And-Introduction (∧I) | α, β ⊢ α∧β | Combine two facts into a conjunction | Fever, Cough ⊢ Fever∧Cough |
| And-Elimination (∧E) | α∧β ⊢ α (or β) | Extract either component of a conjunction | Fever∧Cough ⊢ Fever |
| Or-Introduction (∨I) | α ⊢ α∨β | Known fact can be disjuncted with anything | Fever ⊢ Fever∨Cough |
| Or-Elimination (∨E) | α∨β, α→γ, β→γ ⊢ γ | If both disjuncts lead to γ, derive γ | Case analysis |
| Universal Instantiation (UI) | ∀x φ(x) ⊢ φ(c) | Substitute any constant for the variable | ∀x Human(x)→Mortal(x), Human(tom) ⊢ Mortal(tom) |
| Existential Introduction (EI) | φ(c) ⊢ ∃x φ(x) | From a specific fact, assert existence | Father(tom,bob) ⊢ ∃y Father(tom,y) |
| Reductio (RAA) | ¬α ⊢ ⊥ → α | Proof by contradiction — assume ¬α, derive false | Basis of resolution refutation |
Premises:
P1: ∀x Human(x) → Mortal(x) (All humans are mortal)
P2: Human(tom) (Tom is human)
Goal: Mortal(tom)
-- Additional Premises --
P3: ∀x Mortal(x) → WillDie(x) -- all mortals will die
P4: ∀x WillDie(x) → HasFiniteLife(x) -- dying implies finite life
-- Proof of HasFiniteLife(tom) --
1. Human(tom) (P2)
2. Human(tom)→Mortal(tom) (UI from P1, x=tom)
3. Mortal(tom) (→E from 2,1)
4. Mortal(tom)→WillDie(tom) (UI from P3, x=tom)
5. WillDie(tom) (→E from 4,3)
6. WillDie(tom)→HasFiniteLife(tom) (UI from P4)
7. HasFiniteLife(tom) (→E from 6,5) ■
| Feature | Natural Deduction | Resolution |
|---|---|---|
| Style | Human-readable; mirrors mathematical proofs | Mechanical; hard for humans to follow |
| Input form | Any FOL sentence | Must be in CNF (clausal form) |
| Rules | Many rules — one per connective (intro + elim) | Single rule — resolution + unification |
| Strategy | Forward (from axioms) or backward (from goal) | Refutation — always by contradiction |
| Completeness | ✅ Complete for FOL | ✅ Complete for FOL |
| Automation | Hard to automate (many rule choices) | Easy to automate (one rule, systematic) |
| Best for | Human understanding, textbook proofs | Automated theorem proving, Prolog |
The world is not black and white. A patient with fever might have pneumonia — but also flu, malaria, or a dozen other conditions. Classical logic forces every proposition to be true or false, which fails the moment our evidence is incomplete or noisy. Probabilistic reasoning replaces binary truth values with degrees of belief — numbers between 0 and 1 that quantify how strongly the evidence supports each hypothesis.
A patient tests positive for a rare disease (prevalence 1%). The test has 95% sensitivity (true positive rate) and 90% specificity (true negative rate = 10% false positive rate).
Despite a 95% accurate test, a positive result means only an 8.76% chance of actually having the disease! This is the base rate fallacy — the low prior (1% prevalence) overwhelms the test sensitivity. Bayesian reasoning is essential to avoid medical overdiagnosis.
A Bayesian Network is a directed acyclic graph (DAG) where:
This factorisation exploits conditional independence — variables not connected don't affect each other — drastically reducing the number of probabilities needed.
| Cancer (C) | Bronchitis (B) | P(D=True) | P(D=False) |
|---|---|---|---|
| True | True | 0.90 | 0.10 |
| True | False | 0.70 | 0.30 |
| False | True | 0.80 | 0.20 |
| False | False | 0.10 | 0.90 |
What is P(S=T, Po=Low, C=T, B=T, D=T, X=T)?
Using Bayes' theorem + marginalisation (summing over all other variables):
Two sets of nodes X and Y are d-separated by a set Z if every path between X and Y is "blocked" by Z. D-separated nodes are conditionally independent given Z: P(X|Y,Z) = P(X|Z).
Three path types and their blocking rules:
Bayesian probability requires a prior for every hypothesis — but what if we genuinely have no information about some possibilities? Bayesian methods cannot distinguish "I assign 50% probability because of equal evidence" from "I assign 50% because I have absolutely no idea." Dempster-Shafer Theory (DST) solves this by separating belief (what we positively know) from ignorance (what we simply don't know yet), using a richer mathematical structure than single probability values.
DST was developed by Arthur Dempster (1967) and formalised by Glenn Shafer (1976). It is used in sensor fusion, legal reasoning, and medical diagnosis where evidence may be incomplete or contradictory.
The frame of discernment Θ is the exhaustive, mutually exclusive set of all possible hypotheses for a problem. DST assigns basic probability assignments (bpa / mass functions) to subsets of Θ, not just individual elements.
Frame of Discernment: Θ = {Pneumonia (P), Bronchitis (B), Flu (F)}
Subsets of Θ: ∅, {P}, {B}, {F}, {P,B}, {P,F}, {B,F}, {P,B,F}
| Focal Element | Mass m₁ | Interpretation |
|---|---|---|
| {Pneumonia} | 0.60 | Strong evidence toward Pneumonia |
| {Flu} | 0.10 | Weak evidence toward Flu |
| {Pneumonia, Bronchitis} | 0.20 | Evidence points to lung condition |
| {P, B, F} = Θ (total ignorance) | 0.10 | 10% of mass is unallocated — we simply don't know |
| Total | 1.00 |
| Focal Element | Mass m₂ | Interpretation |
|---|---|---|
| {Pneumonia} | 0.80 | X-ray strongly supports Pneumonia |
| {Bronchitis} | 0.05 | Slight evidence for Bronchitis |
| Θ (ignorance) | 0.15 | 15% unallocated — X-ray not conclusive |
| Total | 1.00 |
| Focal Element | Raw Sum | m₁₂ (normalised ÷0.885) |
|---|---|---|
| {Pneumonia} | 0.480+0.090+0.160+0.080 = 0.810 | 0.810/0.885 ≈ 0.915 |
| {Bronchitis} | 0.010+0.005 = 0.015 | 0.015/0.885 ≈ 0.017 |
| {Flu} | 0.015 | 0.015/0.885 ≈ 0.017 |
| {P,B} | 0.030 | 0.030/0.885 ≈ 0.034 |
| Θ | 0.015 | 0.015/0.885 ≈ 0.017 |
| Total | 0.885 | ≈ 1.000 |
From any mass function m, two derived measures bound a proposition A:
| Feature | Bayesian Probability | Dempster-Shafer Theory |
|---|---|---|
| Mass assigned to | Individual hypotheses only | Any subset of Θ (including sets of hypotheses) |
| Ignorance | Must be spread as a prior | Explicit as m(Θ) — separate from belief |
| Combination | Bayes' theorem requires likelihood | Dempster's rule — purely multiplicative, no likelihood needed |
| Output | Single probability P(H) | Interval [Bel(H), Pl(H)] — richer representation |
| Consistency | Always consistent (axioms of probability) | Conflict K must be <1 or combination fails |
| Best for | Well-specified prior knowledge | Sensor fusion, legal evidence, incomplete data |
Classical set theory is binary: an element either belongs to a set or it doesn't. Either a temperature is "high" or it isn't. But humans naturally think in gradations — 38°C is "slightly high", 40°C is "very high", 42°C is "dangerously high." Fuzzy set theory (Zadeh, 1965) formalises this by replacing the crisp membership function {0,1} with a continuous membership function μ: X → [0,1].
Fuzzy logic builds reasoning on top of fuzzy sets, capturing the vagueness inherent in natural language. It powers everything from washing machine sensors to aircraft autopilots to medical expert systems.
A fuzzy set A in universe of discourse X is defined by a membership function μ_A : X → [0,1], where μ_A(x) = 1 means x fully belongs to A, μ_A(x) = 0 means x definitely does not belong, and 0 < μ_A(x) < 1 means x partially belongs with that degree of membership.
The set is written: A = {(x, μ_A(x)) | x ∈ X}
A fuzzy inference system decides treatment urgency based on temperature and duration. We use Mamdani fuzzy inference — the most common type.
Patient: Temperature = 38.5°C, Duration = 2 days
| Input Variable | Linguistic Value | Membership Degree |
|---|---|---|
| Temperature = 38.5°C | Low Fever | μ = 0.35 |
| Temperature = 38.5°C | High Fever | μ = 0.50 |
| Duration = 2 days | Short | μ = 0.60 |
| Duration = 2 days | Medium | μ = 0.40 |
Rule 1: IF temp is HighFever AND duration is Medium
THEN urgency is High
Activation: min(0.50, 0.40) = 0.40
Rule 2: IF temp is HighFever AND duration is Short
THEN urgency is Medium
Activation: min(0.50, 0.60) = 0.50
Rule 3: IF temp is LowFever AND duration is Short
THEN urgency is Low
Activation: min(0.35, 0.60) = 0.35
Each rule clips the output membership function at its activation level. The three clipped fuzzy sets (High=0.40, Medium=0.50, Low=0.35) are combined using max (union).
The Centroid method (Centre of Gravity) computes the centroid of the aggregated output area:
Urgency score = 51.2 out of 100 → Moderate urgency. Recommend: antipyretics, monitor for 24 hours, return if fever rises above 39.5°C or duration exceeds 3 days. The fuzzy system gives a nuanced, graduated response rather than a binary "urgent / not urgent."
A linguistic variable takes linguistic values (words) as its values, not numbers. Each linguistic value is defined by a membership function. For example, the linguistic variable "Temperature" may take values: {Very Low, Low, Normal, High, Very High}.
Linguistic hedges modify membership functions: very A = μ_A(x)², somewhat A = √μ_A(x), not A = 1 − μ_A(x). These allow nuanced expressions like "very high fever" or "somewhat short duration."
| Aspect | Bayesian Probability | Dempster-Shafer | Fuzzy Logic |
|---|---|---|---|
| Models | Uncertainty (random events) | Ignorance + uncertainty | Vagueness (linguistic imprecision) |
| Values | Single probability P(H) | Interval [Bel, Pl] | Membership degree μ ∈ [0,1] |
| Complement | P(¬A) = 1−P(A) | Pl(¬A) = 1−Bel(A) | μ_{¬A}(x) = 1−μ_A(x) |
| Combination | Bayes' theorem | Dempster's rule | Min/Max operators |
| Prior required | Yes — must specify P(H) | No — can assign mass to Θ | No — defines membership functions |
| Output | Posterior probability | Belief + Plausibility interval | Crisp value via defuzzification |
| Best application | Medical diagnosis, spam filter | Sensor fusion, legal evidence | Control systems, natural language |
This section consolidates every formula, rule, algorithm, and comparison from Unit IV. Work through all tables and the final challenge quiz before your exam.
| Rule / Concept | Formal Statement | Example |
|---|---|---|
| Universal Instantiation | ∀x φ(x) ⊢ φ(c) for any constant c | ∀x Human(x)→Mortal(x), Human(tom) ⊢ Mortal(tom) |
| Existential Introduction | φ(c) ⊢ ∃x φ(x) | Father(tom,bob) ⊢ ∃y Father(tom,y) |
| Modus Ponens | α, α→β ⊢ β | HasFever, HasFever→Sick ⊢ Sick |
| Modus Tollens | α→β, ¬β ⊢ ¬α | Human→Mortal, ¬Mortal ⊢ ¬Human |
| ISA Transitivity | ∀x A(x)→B(x), ∀x B(x)→C(x) ⊢ ∀x A(x)→C(x) | Doctor→Person→Entity ⊢ Doctor→Entity |
| Resolution Rule | P∨α, ¬P∨β ⊢ α∨β | {¬Person(x)∨Mortal(x)}, {Person(tom)} ⊢ {Mortal(tom)} |
| FOL Translation | "All A is B" → ∀x A(x)→B(x) · "Some A is B" → ∃x A(x)∧B(x) | Universal uses →; Existential uses ∧ |
| Formula | Name | Use |
|---|---|---|
P(H|E) = P(E|H)·P(H) / P(E) | Bayes' Theorem | Update belief after observing evidence E |
P(A) = Σ_b P(A|B=b)·P(B=b) | Marginalisation | Eliminate nuisance variable B |
P(X₁…Xₙ) = ∏ᵢ P(Xᵢ|Parents(Xᵢ)) | Bayesian Net Factorisation | Joint = product of local CPTs |
Bel(A) = Σ_{B⊆A} m(B) | Belief Function (DST) | Lower bound on probability of A |
Pl(A) = Σ_{B∩A≠∅} m(B) | Plausibility (DST) | Upper bound on probability of A |
m₁₂(C) = Σ_{A∩B=C} m₁(A)m₂(B) / (1−K) | Dempster's Rule | Combine two independent evidence sources |
μ_{A∪B}(x) = max(μ_A, μ_B) | Fuzzy Union | OR operation in fuzzy logic |
μ_{A∩B}(x) = min(μ_A, μ_B) | Fuzzy Intersection | AND operation in fuzzy logic |
μ_{¬A}(x) = 1 − μ_A(x) | Fuzzy Complement | NOT operation in fuzzy logic |
very A: [μ_A]² · somewhat A: √μ_A | Linguistic Hedges | Concentration (very) and dilation (somewhat) |
Mistake 1: Writing ∃x A(x)→B(x) when you mean "some A is B." Correct: ∃x A(x)∧B(x). The implication form is nearly always wrong for existential statements.
Mistake 2: Forgetting to negate the goal in resolution. Resolution proves P by assuming ¬P and deriving □ — always add ¬Goal to the KB first.
Mistake 3: Confusing Belief (Bel) and Plausibility (Pl) in DST. Bel(A) uses only subsets OF A; Pl(A) uses all sets that INTERSECT A. Bel ≤ Pl always.
Mistake 4: Saying fuzzy logic handles uncertainty — it handles vagueness (imprecise language). Bayesian probability handles uncertainty (random events). These are different problems.
Mistake 5: Using min for fuzzy OR and max for fuzzy AND. It's: AND=min, OR=max, NOT=1−μ.
Mistake 6: Confusing Skolem function with a constant. A Skolem function depends on ALL universally quantified variables in scope. If ∀x ∃y, replace y with f(x). If ∃y alone, replace with constant c.