Resolution in First-Order Logic
COS2661 - Formal Logic II · Resolution and Its Applications
Resolution in First-Order Logic
Resolution is a powerful method used in first-order logic (FOL) for proving the validity of arguments. It is based on the idea of refutation, which means showing that a statement cannot be true. This method is widely used in automated theorem proving and artificial intelligence.
Understanding First-Order Logic
First-order logic extends propositional logic by allowing quantifiers and predicates. In FOL, you can express statements about objects and their properties. The two main types of quantifiers are:
- Universal quantifier (∀): Indicates that a statement is true for all elements in a domain.
- Existential quantifier (∃): Indicates that there exists at least one element in the domain for which the statement is true.
For example, the statement “All humans are mortal” can be represented in FOL as:
∀x (Human(x) → Mortal(x))
This means that for every object x, if x is a human, then x is mortal.
Resolution Principle
The resolution principle states that if you have two clauses, one containing a literal and the other containing its negation, you can derive a new clause by resolving them. A clause is a disjunction of literals. A literal is either a positive or negative atomic proposition.
For example, consider the following two clauses:
A ∨ B¬B ∨ C
You can resolve these two clauses on the literal B. The result is:
A ∨ C
Remember: To resolve two clauses, they must contain complementary literals.
Transforming Statements into Clause Form
Before applying resolution, you must convert statements into a specific form called clause form (also known as conjunctive normal form). The steps to convert a first-order logic statement into clause form are:
- Eliminate implications and biconditionals.
- Move negations inwards using De Morgan's laws.
- Standardize variables to avoid conflicts.
- Skolemize the formula.
- Convert the result to conjunctive normal form.
- Extract the clauses.
Example of Converting to Clause Form
Let's convert the following statement into clause form:
∀x (Human(x) → Mortal(x))
1. Eliminate the implication: ¬Human(x) ∨ Mortal(x)
2. Move negation inwards: Already in the correct form.
3. Standardize variables: No need for changes here.
4. Skolemize: No existential quantifiers to eliminate.
5. Convert to conjunctive normal form: The clause is already in this form.
6. Extract the clauses: The only clause is ¬Human(x) ∨ Mortal(x).
Applying Resolution
Now that we have clauses, we can apply the resolution principle. Consider these two clauses:
¬Human(x) ∨ Mortal(x)Human(Socrates)
To resolve these clauses, we can resolve on the literal Human(x). The result is:
Mortal(Socrates)
Handling Quantifiers
When working with quantifiers, you must consider their scope. Universal quantifiers can be treated as if they apply to all instances, while existential quantifiers allow for specific instances. For example:
∃y (Human(y) ∧ ¬Mortal(y))
This statement can be read as “There exists a y such that y is human and y is not mortal.” To resolve this, you would replace y with a constant, say c, leading to:
Human(c) ∧ ¬Mortal(c)
Example of Resolution with Quantifiers
Consider the following clauses:
¬Mortal(c)Human(c) ∧ ∃y (Human(y) → Mortal(y))
We can resolve the first clause with the second clause. First, we need to extract the relevant part from the second clause:
Human(c) → Mortal(c)
Now, we can resolve:
¬Mortal(c) and Human(c) leads to no new information, but we can also resolve with the existential quantifier.
Refutation and Proof by Contradiction
The goal of resolution is often to prove that a particular statement is a logical consequence of other statements. To do this, you can use proof by contradiction. You assume the negation of what you want to prove and show that this leads to a contradiction.
For example, to prove that ∀x (Human(x) → Mortal(x)) is valid, you assume:
¬∀x (Human(x) → Mortal(x))
This can be rewritten as:
∃x (Human(x) ∧ ¬Mortal(x))
By resolving this with known clauses, if you reach a contradiction, you have proven the original statement.
Watch out: Be careful with the scope of quantifiers when resolving. Misinterpreting their scope can lead to incorrect conclusions.
Applications of Resolution
Resolution has several applications in computer science, particularly in automated theorem proving, artificial intelligence, and logic programming. It allows for the development of systems that can reason about knowledge and solve problems automatically.
In AI, resolution is used in algorithms that help machines understand and process natural language, make decisions, and learn from data.
Summary
- First-order logic extends propositional logic with quantifiers and predicates.
- The resolution principle allows you to derive new clauses from existing ones.
- Converting statements to clause form is essential before applying resolution.
- Proof by contradiction can be used to show the validity of logical statements.
Check your understanding
- What are the two types of quantifiers in first-order logic?
- Describe the steps to convert a first-order logic statement into clause form.
- Provide an example of resolution using two clauses.
- Explain how to handle quantifiers when applying resolution.