22.01.2014 Views

Metatheory - University of Cambridge

Metatheory - University of Cambridge

Metatheory - University of Cambridge

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2. Substitution 16<br />

Step 3: Repeat step 2, until there are no atomic sentences that appear in the<br />

input sentence but not in B. At that point, stop. The last sentence you<br />

wrote down is an interpolant linking A to B.<br />

It is worth seeing this in action. Suppose we start with the entailment:<br />

((A ∧ (¬B ∨ C)) ∧ (¬C ∧ D)) ⊨ ((B ∨ D) ∧ (¬B ∨ E))<br />

Running the algorithm, our initial input sentence is:<br />

((A ∧ (¬B ∨ C)) ∧ (¬C ∧ D))<br />

We would first eliminate A, obtaining (using ‘⊤’ to abbreviate some tautology<br />

containing ‘B’, and ‘⊥’ to abbreviate some contradiction containing ‘B’):<br />

(((⊤ ∧ (¬B ∨ C)) ∧ (¬C ∧ D)) ∨ ((⊥ ∧ (¬B ∨ C)) ∧ (¬C ∧ D)))<br />

This would become our new input sentence; from which we would eliminate C:<br />

((((⊤ ∧ (¬B ∨ ⊤)) ∧ (¬⊤ ∧ D)) ∨ ((⊥ ∧ (¬B ∨ ⊤)) ∧ (¬⊤ ∧ D))) ∨<br />

(((⊤ ∧ (¬B ∨ ⊥)) ∧ (¬⊥ ∧ D)) ∨ ((⊥ ∧ (¬B ∨ ⊥)) ∧ (¬⊥ ∧ D))))<br />

And this is our interpolant! But, as the example illustrates, the output <strong>of</strong><br />

this algorithm can be quite a mouthful. To simplify it, we can apply some<br />

‘clean-up’ rules. Where ‘⊤’ abbreviates any tautology, and ‘⊥’ abbreviates any<br />

contradiction, note, for example, that:<br />

⊤ ∨ A<br />

⊥ ∧ A<br />

¬⊤<br />

¬⊥<br />

Using these equivalences and Lemma 2.2, we can simplify the subsentences <strong>of</strong><br />

our interpolant. 1 First, applying the rules for negation:<br />

⊨<br />

⊨<br />

⊨<br />

⊨<br />

⊨ ⊤<br />

⊨ ⊥<br />

⊨ ⊥<br />

⊨ ⊤<br />

((((⊤ ∧ (¬B ∨ ⊤)) ∧ (⊥ ∧ D)) ∨ ((⊥ ∧ (¬B ∨ ⊤)) ∧ (⊥ ∧ D))) ∨<br />

(((⊤ ∧ (¬B ∨ ⊥)) ∧ (⊤ ∧ D)) ∨ ((⊥ ∧ (¬B ∨ ⊥)) ∧ (⊤ ∧ D))))<br />

Next, applying the rules for conjunction and disjunction:<br />

((((⊤ ∧ ⊤) ∧ ⊥) ∨ (⊥ ∧ ⊥)) ∨ (((⊤ ∧ ¬B) ∧ D) ∨ (⊥ ∧ D)))<br />

And, then, applying them again and again, we get, successively:<br />

Which is much simpler!<br />

((⊥ ∨ ⊥) ∨ ((¬B ∧ D) ∨ ⊥))<br />

(⊥ ∨ (¬B ∧ D))<br />

(¬B ∧ D)<br />

1 Recall that a sentence A is a subsentence <strong>of</strong> B iff A is a part <strong>of</strong> B. We here read ‘part’<br />

in a generous sense, so that every sentence is a part <strong>of</strong> itself.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!