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 15<br />

I make the following claim:<br />

Claim 1: (A[ ⊤ /D] ∨ A[ ⊥ /D]) ⊨ B<br />

To prove Claim 1, let v be any valuation that makes (A[ ⊤ /D] ∨ A[ ⊥ /D]) true.<br />

If v makes A[ ⊤ /D] true, let w differ from v just by making D true; otherwise,<br />

let w differ from v just by making D false. Either way, w makes A true, so<br />

w makes B true too (since A ⊨ B). Finally, since D does not occur in B, v<br />

makes B true too. This establishes the Claim.<br />

Next, because there were n + 1 atomic sentences in A but not B, and D<br />

was one <strong>of</strong> these atomic sentences, there must be exactly n atomic sentences in<br />

A[ ⊤ /D] ∨ A[ ⊥ /D] but not B. Hence, by Claim 1 and the induction hypothesis,<br />

we can find an interpolant, I , linking (A[ ⊤ /D] ∨ A[ ⊥ /D]) to B, i.e.:<br />

1. (A[ ⊤ /D] ∨ A[ ⊥ /D]) ⊨ I<br />

2. I ⊨ B<br />

3. every atomic sentence in I occurs in both (A[ ⊤ /D] ∨ A[ ⊥ /D]) and in B<br />

I shall now show that I is an interpolant linking A itself to B. Point (2), above,<br />

tells us that I ⊨ B. Moreover, given point (3), it is obvious that every atomic<br />

sentence in I occurs in both A and in B. So it remains to show that A ⊨ I .<br />

Given that (A[ ⊤ /D] ∨ A[ ⊥ /D]) ⊨ I , it suffices, by the transitivity <strong>of</strong> entailment,<br />

to prove the following claim:<br />

Claim 2. A ⊨ (A[ ⊤ /D] ∨ A[ ⊥ /D])<br />

To prove Claim 2, let v be any valuation that makes A true. If v makes D<br />

true, then since ⊤ is a tautology, v makes A[ ⊤ /D] true. If v makes D false,<br />

then v makes A[ ⊥ /D] true. Either way, any valuation that makes A true makes<br />

(A[ ⊤ /D] ∨ A[ ⊥ /D]) true. This establishes Claim 2.<br />

Hence I is an interpolant linking A to B. This completes the pro<strong>of</strong> <strong>of</strong> the<br />

induction case. The entire Theorem now follows by induction.<br />

■<br />

This is easily the longest pro<strong>of</strong> that we have seen so far. So it is worth pausing,<br />

to make sure both that you understand every step in the pro<strong>of</strong>, and also how<br />

the pro<strong>of</strong> is put together.<br />

In fact, this pro<strong>of</strong> merits particular scrutiny since, implicitly, the pro<strong>of</strong><br />

does more than just prove the Theorem. The Interpolation Theorem states<br />

that, when A ⊨ B, an interpolant exists. If this were all we knew, then we<br />

might have no idea about how to find an interpolant. But, viewed correctly,<br />

the pro<strong>of</strong> yields an algorithm for finding an interpolant. An algorithm is a<br />

step-by-step process, followed ‘thoughtlessly’ (i.e. without any need for insight,<br />

just by implementing very simple little rules), that is guaranteed to terminate<br />

in finitely many steps. I shall describe the algorithm for finding an interpolant;<br />

and having done so, it should be clear how it relates to the pro<strong>of</strong>.<br />

Given that A ⊨ B, linking A to B as follows:<br />

Step 1: Designate A as the input sentence<br />

Step 2: Let D be the first atomic sentence (alphabetically) that appears in<br />

the input sentence, but that does not appear in B. Rewrite the input<br />

sentence twice, once uniformly substituting a tautology in place <strong>of</strong> D<br />

and once uniformly substituting a contradiction in place <strong>of</strong> D. Let the<br />

disjunction <strong>of</strong> these two rewritten sentences be your new input sentence.

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

Saved successfully!

Ooh no, something went wrong!