05.01.2015 Views

Natural Deduction in ISABELLE: - ``Single-step proofs based on ...

Natural Deduction in ISABELLE: - ``Single-step proofs based on ...

Natural Deduction in ISABELLE: - ``Single-step proofs based on ...

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.

<str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g>:<br />

“S<str<strong>on</strong>g>in</str<strong>on</strong>g>gle-<str<strong>on</strong>g>step</str<strong>on</strong>g> <str<strong>on</strong>g>proofs</str<strong>on</strong>g> <str<strong>on</strong>g>based</str<strong>on</strong>g> <strong>on</strong> Sequent Notati<strong>on</strong> ”<br />

Joaquín AGuado 1<br />

1 Informatics Theory Group (GdI)<br />

University of Bamberg<br />

joaqu<str<strong>on</strong>g>in</str<strong>on</strong>g>.aguado@wiai.uni-bamberg.de<br />

University of Sheffield,<br />

August 17, 2007<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 1 / 56


Outl<str<strong>on</strong>g>in</str<strong>on</strong>g>e<br />

1 MA-101: Logic<br />

Lecture (Vorlesung)<br />

Tutorial (Übung)<br />

Laboratory (Praktikum)<br />

2 The Gospel of Isabelle<br />

She who Rules, Unifies . . .<br />

And this is Her Resoluti<strong>on</strong>:<br />

Lift Up the St<strong>on</strong>e, and You will F<str<strong>on</strong>g>in</str<strong>on</strong>g>d Me There<br />

3 Isis Bella<br />

Variati<strong>on</strong>s <strong>on</strong> Resoluti<strong>on</strong><br />

More Methods and Commands<br />

Examples<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 2 / 56


Formal Logic<br />

Generally, a Logic is captured by a Formal System c<strong>on</strong>sist<str<strong>on</strong>g>in</str<strong>on</strong>g>g of two<br />

comp<strong>on</strong>ents:<br />

1 A Formal Language:<br />

A f<str<strong>on</strong>g>in</str<strong>on</strong>g>ite set of symbols which can be used for c<strong>on</strong>struct<str<strong>on</strong>g>in</str<strong>on</strong>g>g formulae<br />

(signature Σ, sorted family of variables X).<br />

A way of c<strong>on</strong>struct<str<strong>on</strong>g>in</str<strong>on</strong>g>g well-formed-formulas: Term Σ (X), Atom Σ (X) and<br />

Form Σ (X) (e.g., grammars, syntax rules).<br />

2 A Proof System:<br />

A particular set of rules.<br />

General pr<str<strong>on</strong>g>in</str<strong>on</strong>g>ciples <strong>on</strong> of how rules are grafted together to build trees<br />

(called derivati<strong>on</strong>s).<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 3 / 56


The Language: A Signature for Lists<br />

ToyList<br />

Σ = (S, OP, REL)<br />

S = {a, list}<br />

OP = { nil : list,<br />

c<strong>on</strong>s: a list 7→ list,<br />

app: list list 7→ list,<br />

rev: list 7→ list }<br />

REL = { is <str<strong>on</strong>g>in</str<strong>on</strong>g>: ha listi,<br />

sublist: hlist listi }<br />

X = {x : a, xs : list}<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 4 / 56


The Language: FOL Syntax<br />

Well-Formed Terms (i.e., Term Σ(X)):<br />

x 2 X s<br />

(T1)<br />

x : s<br />

t 1 : s 1 t 2 : s 2 . . . t n : s n f : s 1 s 2 . . . s n → s 2 OP<br />

f(t 1 , t 2 , . . . , t n ) : s<br />

(T2)<br />

Well-Formed (Atomic) Formulas (i.e., Atom Σ(X)):<br />

(A1)<br />

> : hi<br />

(A1)<br />

: hi<br />

t 1 : s t 2 : s<br />

t 1 = t 2 : hi<br />

(A2)<br />

t 1 : s 1 t 2 : s 2 . . . t n : s n R : hs 1 s 2 . . . s n i 2 REL<br />

R(t 1 , t 2 , . . . , t n ) : hi<br />

Well-Formed Formulas (i.e., Form Σ(X)):<br />

(A3)<br />

ϕ : hi ψ : hi<br />

(ϕ ∧ ψ) : hi<br />

(F1)<br />

ϕ : hi ψ : hi<br />

(ϕ ∨ ψ) : hi<br />

(F1)<br />

ϕ : hi ψ : hi<br />

(ϕ → ψ) : hi<br />

(F1)<br />

ϕ : hi ψ : hi<br />

(ϕ ↔ ψ) : hi<br />

(F1)<br />

ϕ : hi<br />

(¬ϕ) : hi<br />

(F2)<br />

x 2 X ϕ : hi<br />

(8x ϕ) : hi<br />

(F3)<br />

x 2 X ϕ : hi<br />

(9x ϕ) : hi<br />

(F3)<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 5 / 56


The Language: A Well-Formed Formula<br />

x : a xs : list is <str<strong>on</strong>g>in</str<strong>on</strong>g> : ha listi 2 REL<br />

is <str<strong>on</strong>g>in</str<strong>on</strong>g>(x, xs) : hi<br />

(A 3 )<br />

x : a<br />

xs : list<br />

rev : list 7→ list 2 OP<br />

(T 2 )<br />

rev(xs) : list<br />

is <str<strong>on</strong>g>in</str<strong>on</strong>g>(x, rev(xs)) : hi<br />

is <str<strong>on</strong>g>in</str<strong>on</strong>g> : ha listi 2 REL<br />

(A 3 )<br />

xs 2 X<br />

is <str<strong>on</strong>g>in</str<strong>on</strong>g>(x, xs) : hi is <str<strong>on</strong>g>in</str<strong>on</strong>g>(x, rev(xs)) : hi<br />

x 2 X is <str<strong>on</strong>g>in</str<strong>on</strong>g>(x, xs) → is <str<strong>on</strong>g>in</str<strong>on</strong>g>(x, rev(xs)) : hi<br />

9x is <str<strong>on</strong>g>in</str<strong>on</strong>g>(x, xs) → is <str<strong>on</strong>g>in</str<strong>on</strong>g>(x, rev(xs)) : hi<br />

8xs 9x is <str<strong>on</strong>g>in</str<strong>on</strong>g>(x, xs) → is <str<strong>on</strong>g>in</str<strong>on</strong>g>(x, rev(xs)) : hi<br />

(F 1 )<br />

(F 3 )<br />

(F 3 )<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 6 / 56


Semantics, Meta-logical Approach & Motivati<strong>on</strong><br />

Logic maybe formulated abstractly by its own sake, but it usually has an<br />

<str<strong>on</strong>g>in</str<strong>on</strong>g>tended <str<strong>on</strong>g>in</str<strong>on</strong>g>terpretati<strong>on</strong> represent<str<strong>on</strong>g>in</str<strong>on</strong>g>g a descripti<strong>on</strong> of some doma<str<strong>on</strong>g>in</str<strong>on</strong>g> of<br />

<str<strong>on</strong>g>in</str<strong>on</strong>g>terest (Semantics).<br />

A Meta-logic is a logic that is used to formalise syntax, proof system,<br />

semantics and meta-properties (soundness, completeness) of another logic<br />

called the object-logic.<br />

Here we will focus <strong>on</strong> the deductive mach<str<strong>on</strong>g>in</str<strong>on</strong>g>ery and implicitly assume<br />

syntax, semantics and meta-theorems.<br />

Mechanis<str<strong>on</strong>g>in</str<strong>on</strong>g>g Logical <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> (Motivati<strong>on</strong>)<br />

By formalis<str<strong>on</strong>g>in</str<strong>on</strong>g>g patterns of reas<strong>on</strong><str<strong>on</strong>g>in</str<strong>on</strong>g>g, it is possible for such reas<strong>on</strong><str<strong>on</strong>g>in</str<strong>on</strong>g>g to be<br />

checked or even carried out by a computer.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 7 / 56


Proof System: <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g><br />

Isabelle is a generic (<str<strong>on</strong>g>in</str<strong>on</strong>g>teractive) theorem prover designed around <str<strong>on</strong>g>Natural</str<strong>on</strong>g><br />

<str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g>. It has been <str<strong>on</strong>g>in</str<strong>on</strong>g>stantiated to support reas<strong>on</strong><str<strong>on</strong>g>in</str<strong>on</strong>g>g <str<strong>on</strong>g>in</str<strong>on</strong>g> several<br />

object-logics.<br />

<str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> is an approach to Proof Theory that attempts to<br />

provide a formal model of logical reas<strong>on</strong><str<strong>on</strong>g>in</str<strong>on</strong>g>g as it “naturally” occurs.<br />

we make (temporary) assumpti<strong>on</strong>s.<br />

we derive new formulae by apply<str<strong>on</strong>g>in</str<strong>on</strong>g>g basic rules.<br />

there is a mechanism for discharg<str<strong>on</strong>g>in</str<strong>on</strong>g>g assumpti<strong>on</strong>.<br />

S<str<strong>on</strong>g>in</str<strong>on</strong>g>ce the logic’s syntax and the <str<strong>on</strong>g>in</str<strong>on</strong>g>ference rules are specified declaratively,<br />

this allows s<str<strong>on</strong>g>in</str<strong>on</strong>g>gle-<str<strong>on</strong>g>step</str<strong>on</strong>g> proof c<strong>on</strong>structi<strong>on</strong>.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 8 / 56


Inference<br />

In Isabelle, <str<strong>on</strong>g>proofs</str<strong>on</strong>g> are c<strong>on</strong>structed us<str<strong>on</strong>g>in</str<strong>on</strong>g>g <str<strong>on</strong>g>in</str<strong>on</strong>g>ference rules. The most familiar<br />

is (probably) modus p<strong>on</strong>ens:<br />

P → Q<br />

Q<br />

P<br />

(mp)<br />

Derivati<strong>on</strong>s are trees, where the leaves are called assumpti<strong>on</strong>s.<br />

[A → (B → C)] [A]<br />

B → C<br />

C<br />

(mp)<br />

[B]<br />

(mp)<br />

<str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>proofs</str<strong>on</strong>g> build derivati<strong>on</strong>s under (possibly temporary)<br />

assumpti<strong>on</strong>s. A proof is a derivati<strong>on</strong> with no open assumpti<strong>on</strong>s.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 9 / 56


Intuiti<strong>on</strong>istic FOL Rules I<br />

¬P abbreviates P → <br />

P ↔ Q abbreviates (P → Q) ∧ (Q → P)<br />

P Q<br />

P ∧ Q<br />

(c<strong>on</strong>jI)<br />

P ∧ Q<br />

(c<strong>on</strong>junct1)<br />

P<br />

P ∧ Q<br />

(c<strong>on</strong>junct2)<br />

Q<br />

[P]<br />

[Q]<br />

P<br />

P ∨ Q<br />

(disjI1)<br />

Q<br />

P ∨ Q<br />

(disjI2)<br />

P ∨ Q<br />

.<br />

R<br />

R<br />

.<br />

R<br />

(disjE)<br />

[P]<br />

.<br />

Q<br />

P → Q<br />

(impI)<br />

P → Q<br />

Q<br />

P<br />

(mp)<br />

<br />

P<br />

(FalseE)<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 10 / 56


Intuiti<strong>on</strong>istic FOL Rules II (Includ<str<strong>on</strong>g>in</str<strong>on</strong>g>g Equality)<br />

[P]<br />

P<br />

8x.P<br />

(allI) 1 £<br />

8x.P<br />

P[t/x]<br />

(spec)<br />

P[t/x]<br />

(exI)<br />

9x.P<br />

9x.P<br />

Q<br />

.<br />

Q<br />

(exE) 2 £<br />

(refl)<br />

t = t<br />

t = u<br />

P[u/x]<br />

P[t/x]<br />

(subst)<br />

Eigenvariable c<strong>on</strong>diti<strong>on</strong>s:<br />

1 £ : (8I) provided x is not free <str<strong>on</strong>g>in</str<strong>on</strong>g> any assumpti<strong>on</strong> <strong>on</strong> which P depends.<br />

2 £ : (9E) provided x is not free <str<strong>on</strong>g>in</str<strong>on</strong>g> Q or any assumpti<strong>on</strong> except P.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 11 / 56


Paper & Pencil<br />

Lemma 1<br />

(A ∧ (B ∧ C)) → (A ∧ C)<br />

Proof.<br />

[A ∧ (B ∧ C)] £<br />

[A ∧ (B ∧ C)] £ (c<strong>on</strong>junct2)<br />

B ∧ C<br />

(c<strong>on</strong>junct1)<br />

A<br />

C<br />

A ∧ C<br />

(A ∧ (B ∧ C)) £ → (A ∧ C)<br />

(c<strong>on</strong>junct2)<br />

(c<strong>on</strong>jI)<br />

(impI)<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 12 / 56


A “Theorem Checker” Dialog<br />

You<br />

lemma “A ∧ (B ∧ C) −→ A ∧ C”<br />

apply (rule impI)<br />

apply (rule c<strong>on</strong>jI)<br />

apply (rule c<strong>on</strong>junct1)<br />

apply (assumpti<strong>on</strong>)<br />

apply (c<strong>on</strong>junct2)<br />

apply (c<strong>on</strong>junct2)<br />

apply (assumpti<strong>on</strong>)<br />

d<strong>on</strong>e<br />

Isabelle<br />

1. A ∧ B ∧ C −→ A ∧ C<br />

1. A ∧ B ∧ C =⇒ A ∧ C<br />

1. A ∧ B ∧ C =⇒ A<br />

2. A ∧ B ∧ C =⇒ C<br />

1. A ∧ B ∧ C =⇒ A ∧ Q 2<br />

2. A ∧ B ∧ C =⇒ C<br />

1. A ∧ B ∧ C =⇒ C<br />

1. A ∧ B ∧ C =⇒ P 3 ∧ C<br />

1. A ∧ B ∧ C =⇒ P 4 ∧ P 3 ∧ C<br />

No more Goals . . .<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 13 / 56


Derivability Judgment<br />

All assumpti<strong>on</strong>s <str<strong>on</strong>g>in</str<strong>on</strong>g><br />

A → (B → C)<br />

B → C<br />

C<br />

A<br />

(mp)<br />

B<br />

(mp)<br />

are open.<br />

We can write A → (B → C), A, B ` C (derivability judgment) to assert<br />

that C can be derived <str<strong>on</strong>g>in</str<strong>on</strong>g> this proof system under the given assumpti<strong>on</strong>s<br />

A → (B → C), A, B.<br />

It is possible to make such derivability judgments the central object of a<br />

deducti<strong>on</strong> system. The notati<strong>on</strong> Γ ` A is called Sequent Notati<strong>on</strong>.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 14 / 56


<str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> Us<str<strong>on</strong>g>in</str<strong>on</strong>g>g Sequent Notati<strong>on</strong><br />

For the → /∧ fragment:<br />

A 2 Γ<br />

Γ ` A<br />

(assumpti<strong>on</strong>)<br />

Γ ` B<br />

A, Γ ` B<br />

(weaken)<br />

Γ ` A Γ ` B<br />

Γ ` A ∧ B<br />

(∧ I )<br />

Γ ` A ∧ B<br />

Γ ` A<br />

(∧ EL )<br />

Γ ` A ∧ B<br />

Γ ` B<br />

(∧ ER )<br />

A, Γ ` B<br />

Γ ` A → B<br />

(→ I )<br />

Γ ` A → B Γ ` A<br />

Γ ` B<br />

(→ E )<br />

More rules can be derived.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 15 / 56


Ref<str<strong>on</strong>g>in</str<strong>on</strong>g>ement Style with Metavariables<br />

A ∧ (B ∧ C) 2 Γ<br />

A ∧ (B ∧ C) ` P 4 ∧ (P 3 ∧ C)<br />

A ∧ (B ∧ C) ` P 3 ∧ C<br />

A ∧ (B ∧ C) ` C<br />

(assumpti<strong>on</strong>)<br />

(∧ ER )<br />

(∧ ER )<br />

A ∧ (B ∧ C) 2 Γ<br />

(assumpti<strong>on</strong>)<br />

A ∧ (B ∧ C) ` A ∧ Q 2<br />

(∧ EL )<br />

A ∧ (B ∧ C) ` A<br />

A ∧ (B ∧ C) ` A A ∧ (B ∧ C) ` C<br />

A ∧ (B ∧ C) ` A ∧ C<br />

` A ∧ (B ∧ C) −→ A ∧ C<br />

(∧ I )<br />

(→ I )<br />

Soluti<strong>on</strong> for Q 2 (B ∧ C) and P 3 B and P 4 A.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 16 / 56


Meta-Logic<br />

The Isabelle’s meta-level c<strong>on</strong>nectives are implicati<strong>on</strong>, the universal<br />

quantifier, and equality:<br />

The implicati<strong>on</strong> φ =⇒ ψ means ‘φ implies ψ’, and express logical<br />

entailment.<br />

The quantificati<strong>on</strong> V x.φ means ‘φ is true for all x’, and express<br />

generality <str<strong>on</strong>g>in</str<strong>on</strong>g> rules and axiom schemes.<br />

The equality a b means ‘a equals b’, for express<str<strong>on</strong>g>in</str<strong>on</strong>g>g def<str<strong>on</strong>g>in</str<strong>on</strong>g>iti<strong>on</strong>s.<br />

Isabelle also provides schematic variables (unknowns) for unificati<strong>on</strong>.<br />

Logically, these are free variables. But while ord<str<strong>on</strong>g>in</str<strong>on</strong>g>ary variables rema<str<strong>on</strong>g>in</str<strong>on</strong>g><br />

fixed, unificati<strong>on</strong> may <str<strong>on</strong>g>in</str<strong>on</strong>g>stantiate the schematic variables (i.e., they can be<br />

replaced by arbitrary formulas).<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 17 / 56


Object-Level Rules as Meta-Level Axioms I<br />

[P; Q] =⇒ P ∧ Q<br />

(c<strong>on</strong>jI)<br />

P ∧ Q =⇒ P P ∧ Q =⇒ Q (c<strong>on</strong>junct1, 2)<br />

[P ∨ Q; P =⇒ R; Q =⇒ R] =⇒ R<br />

(disjE)<br />

P =⇒ P ∨ Q Q =⇒ P ∨ Q (disjI1, 2)<br />

(P =⇒ Q) =⇒ P −→ Q<br />

[P −→ Q; P] =⇒ Q<br />

(impI)<br />

(mp)<br />

False =⇒ P<br />

(FalseE)<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 18 / 56


Object-Level Rules as Meta-Level Axioms II<br />

(^ x. P x) =⇒ 8x. P x (allI)<br />

(8x. P x) =⇒ P x<br />

(spec)<br />

P x =⇒ 9x. P x (exI)<br />

[9x. P x;<br />

^<br />

x. P x −→ Q] =⇒ Q (exE)<br />

[s = t; P s] =⇒ P t<br />

(subst)<br />

The object-level quantifier (8) is def<str<strong>on</strong>g>in</str<strong>on</strong>g>ed us<str<strong>on</strong>g>in</str<strong>on</strong>g>g V . But, it is not required<br />

to have meta-level counterparts of all the c<strong>on</strong>nectives of the object-logic!<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 19 / 56


Unificati<strong>on</strong><br />

Unificati<strong>on</strong> refers to the process of mak<str<strong>on</strong>g>in</str<strong>on</strong>g>g two terms identical<br />

(possibly) by substitut<str<strong>on</strong>g>in</str<strong>on</strong>g>g their schematic variables by terms.<br />

Unificati<strong>on</strong> is equati<strong>on</strong> solv<str<strong>on</strong>g>in</str<strong>on</strong>g>g:<br />

The simplest case is when the two terms are already the same.<br />

Next simplest is pattern-match<str<strong>on</strong>g>in</str<strong>on</strong>g>g which replaces variables <str<strong>on</strong>g>in</str<strong>on</strong>g> <strong>on</strong>e of<br />

the terms.<br />

In the most complex case, variables <str<strong>on</strong>g>in</str<strong>on</strong>g> both terms are replaced.<br />

Unificati<strong>on</strong> supports quantifier reas<strong>on</strong><str<strong>on</strong>g>in</str<strong>on</strong>g>g by allow<str<strong>on</strong>g>in</str<strong>on</strong>g>g the schematic<br />

variables to be <str<strong>on</strong>g>in</str<strong>on</strong>g>stantiate later, possibly <str<strong>on</strong>g>in</str<strong>on</strong>g> stages.<br />

Higher-Order Unificati<strong>on</strong> (HU) is equati<strong>on</strong> solv<str<strong>on</strong>g>in</str<strong>on</strong>g>g for typed<br />

λ-terms.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 20 / 56


Higher-Order Unificati<strong>on</strong>: Imitati<strong>on</strong><br />

Isabelle uses Huet’s Search Procedure (HSP) which solves equati<strong>on</strong>s by<br />

Imitati<strong>on</strong> and Projecti<strong>on</strong>. For example, to solve the equati<strong>on</strong>:<br />

P(t) αβη g(u 1 , . . . , u k ) (1)<br />

Imitati<strong>on</strong> makes P apply the lead<str<strong>on</strong>g>in</str<strong>on</strong>g>g symbol of the right-hand side. So,<br />

to solve equati<strong>on</strong> (1), HSP guesses:<br />

P λx. g(h 1 (x), . . . , h k (x))<br />

Now, assum<str<strong>on</strong>g>in</str<strong>on</strong>g>g there are no other occurrences of P, equati<strong>on</strong> (1)<br />

simplifies to the set of equati<strong>on</strong>s: h 1 (t) αβη u 1 . . . h k (t) αβη u k .<br />

If the processes solves these equati<strong>on</strong>s <str<strong>on</strong>g>in</str<strong>on</strong>g>stantiat<str<strong>on</strong>g>in</str<strong>on</strong>g>g h 1 , . . . , h k , then it<br />

yields an <str<strong>on</strong>g>in</str<strong>on</strong>g>stantiati<strong>on</strong> for P.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 21 / 56


Higher-Order Unificati<strong>on</strong>: Projecti<strong>on</strong><br />

Projecti<strong>on</strong> makes P apply <strong>on</strong>e of its argument. So, to solve equati<strong>on</strong>:<br />

P(t) αβη g(u 1 , . . . , u k ) (1)<br />

If t expects m arguments and delivers a result of suitable type, HSP<br />

guesses:<br />

P λx. x(h 1 (x), . . . , h m (x))<br />

Assum<str<strong>on</strong>g>in</str<strong>on</strong>g>g there are no other occurrences of P, equati<strong>on</strong> (1) simplifies to<br />

the equati<strong>on</strong>:<br />

t(h 1 (t), . . . , h m (t)) αβη g(u 1 , . . . , u k )<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 22 / 56


HSP Features<br />

1 Equati<strong>on</strong>s with no functi<strong>on</strong>s unknowns are solved us<str<strong>on</strong>g>in</str<strong>on</strong>g>g first-order<br />

unificati<strong>on</strong>, extended to treat bound variables.<br />

2 An occurrence of the term P(x, y, z), where the arguments are<br />

dist<str<strong>on</strong>g>in</str<strong>on</strong>g>ct bound variables, causes no difficulties. Its projecti<strong>on</strong>s can <strong>on</strong>ly<br />

match the corresp<strong>on</strong>d<str<strong>on</strong>g>in</str<strong>on</strong>g>g variables.<br />

3 Even an equati<strong>on</strong> such as P(a) αβη a + a is all right. It has four<br />

soluti<strong>on</strong>s, but Isabelle evaluates them lazily, try<str<strong>on</strong>g>in</str<strong>on</strong>g>g projecti<strong>on</strong> before<br />

imitati<strong>on</strong>:<br />

P αβη λx. x + x, P αβη λx. a + x, P αβη λx. x + a, and<br />

P αβη λx. a + a.<br />

4 Equati<strong>on</strong>s such as P(x, y) αβη t and P(g(x)) αβη t admit vast<br />

number of unifiers, and must be avoided.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 23 / 56


Proof by Resoluti<strong>on</strong><br />

Resoluti<strong>on</strong> is the basic mechanism for transform<str<strong>on</strong>g>in</str<strong>on</strong>g>g proof states <str<strong>on</strong>g>in</str<strong>on</strong>g><br />

Isabelle <str<strong>on</strong>g>in</str<strong>on</strong>g> order to c<strong>on</strong>struct a proof. It is c<strong>on</strong>venient for derive simple<br />

rules and for reas<strong>on</strong><str<strong>on</strong>g>in</str<strong>on</strong>g>g forward from facts.<br />

Forward proof work by unify<str<strong>on</strong>g>in</str<strong>on</strong>g>g theorems with the premises of a rule,<br />

deriv<str<strong>on</strong>g>in</str<strong>on</strong>g>g a new theorem.<br />

Resoluti<strong>on</strong>, <str<strong>on</strong>g>in</str<strong>on</strong>g> particular, is c<strong>on</strong>venient for backward proof.<br />

Intuitively<br />

Backward proof works by unify<str<strong>on</strong>g>in</str<strong>on</strong>g>g a goal with the c<strong>on</strong>clusi<strong>on</strong> of a rule,<br />

whose premises become new subgoals.<br />

So, we start with a goal and ref<str<strong>on</strong>g>in</str<strong>on</strong>g>e it to progressively simpler subgoals until<br />

all have been solved.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 24 / 56


Theorems (Rules and Proof States) for Resoluti<strong>on</strong><br />

Isabelle works with meta-level theorems of the form [φ 1 ; . . . φ n ] =⇒ φ.<br />

We can view this as the <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g>’s rule with premises<br />

φ 1 , . . . , φ n and c<strong>on</strong>clusi<strong>on</strong> φ. Also, it can be viewed as the proof state<br />

with subgoals φ 1 , . . . , φ n and ma<str<strong>on</strong>g>in</str<strong>on</strong>g> goal φ.<br />

Let [ψ 1 ; . . . ; ψ m ] =⇒ ψ and [φ 1 ; . . . ; φ n ] =⇒ φ be two Isabelle theorems.<br />

If ψ and φ i have a higher-order unifier, then there is some substituti<strong>on</strong> s<br />

such that (ψ)s αβη (φ i )s. In short,<br />

Def<str<strong>on</strong>g>in</str<strong>on</strong>g>iti<strong>on</strong> 2 (Resoluti<strong>on</strong>)<br />

[ψ 1 ; . . . ; ψ m ] =⇒ ψ [φ 1 ; . . . ; φ i ; . . . ; φ n ] =⇒ φ<br />

((ψ)s αβη (φ i )s)<br />

([φ 1 ; . . . ; φ i−1 ; ψ 1 ; . . . ; ψ m ; . . . φ n ] =⇒ φ)s<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 25 / 56


Backward Proof<br />

To prove the formula φ, take φ =⇒ φ as the <str<strong>on</strong>g>in</str<strong>on</strong>g>itial proof state. This<br />

asserti<strong>on</strong> is, trivially, a theorem.<br />

At a later stage <str<strong>on</strong>g>in</str<strong>on</strong>g> the (backward) proof, a typical proof state is<br />

[φ 1 ; . . . ; φ n ] =⇒ φ. This is a theorem, ensur<str<strong>on</strong>g>in</str<strong>on</strong>g>g that the subgoals<br />

φ 1 , . . . , φ n imply φ.<br />

If n = 0 then we have proved φ outright. Otherwise, to ref<str<strong>on</strong>g>in</str<strong>on</strong>g>e subgoal φ i<br />

of a proof state by a rule [ψ 1 ; . . . ; ψ m ] =⇒ ψ perform resoluti<strong>on</strong>.<br />

In this form, the subgoal φ i is replaced by m new subgoals (the rule’s<br />

<str<strong>on</strong>g>in</str<strong>on</strong>g>stantiated premises).<br />

If some unknowns are left un-<str<strong>on</strong>g>in</str<strong>on</strong>g>stantiated, they become new unknowns <str<strong>on</strong>g>in</str<strong>on</strong>g><br />

the (new) proof state.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 26 / 56


Beh<str<strong>on</strong>g>in</str<strong>on</strong>g>d the Scenes (Unificati<strong>on</strong>)<br />

You<br />

lemma “A ∧ (B ∧ C) −→ A ∧ C”<br />

Isabelle<br />

1. A ∧ B ∧ C −→ A ∧ C<br />

apply (rule impI)<br />

(P =⇒ Q) =⇒ P −→ Q<br />

A ∧ B ∧ C −→ A ∧ C =⇒ A ∧ B ∧ C −→ A ∧ C<br />

(impI)<br />

(state1)<br />

Substituti<strong>on</strong> s for (P −→ Q)s αβη ( A ∧ B ∧ C −→ A ∧ C)s<br />

Soluti<strong>on</strong> P A ∧ B ∧ C and Q A ∧ C<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 27 / 56


Beh<str<strong>on</strong>g>in</str<strong>on</strong>g>d the Scenes (Resoluti<strong>on</strong>)<br />

You<br />

lemma “A ∧ (B ∧ C) −→ A ∧ C”<br />

apply (rule impI)<br />

Isabelle<br />

1. A ∧ B ∧ C −→ A ∧ C<br />

1. A ∧ B ∧ C =⇒ A ∧ C<br />

(P =⇒ Q) =⇒ P −→ Q A ∧ B ∧ C −→ A ∧ C =⇒ A ∧ B ∧ C −→ A ∧ C<br />

((P =⇒ Q) =⇒ A ∧ B ∧ C −→ A ∧ C)s<br />

But ((P =⇒ Q) =⇒ A ∧ B ∧ C −→ A ∧ C)s after substituti<strong>on</strong> becomes:<br />

(A ∧ B ∧ C =⇒ A ∧ C) =⇒ A ∧ B ∧ C −→ A ∧ C (state2)<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 28 / 56


Lift<str<strong>on</strong>g>in</str<strong>on</strong>g>g a Rule <str<strong>on</strong>g>in</str<strong>on</strong>g>to a C<strong>on</strong>text<br />

The rules impI and allI may seem unsuitable for resoluti<strong>on</strong>.<br />

They have n<strong>on</strong>-atomic premises, namely P =⇒ Q and V x. P x, while<br />

the c<strong>on</strong>clusi<strong>on</strong>s of all the rules are atomic.<br />

Isabelle gets round this problem, through a meta-<str<strong>on</strong>g>in</str<strong>on</strong>g>ference called Lift<str<strong>on</strong>g>in</str<strong>on</strong>g>g.<br />

Def<str<strong>on</strong>g>in</str<strong>on</strong>g>iti<strong>on</strong> 3 (Lift<str<strong>on</strong>g>in</str<strong>on</strong>g>g over Assumpti<strong>on</strong>s)<br />

[φ 1 ; . . . ; φ n ] =⇒ φ<br />

[θ =⇒ φ 1 ; . . . ; θ =⇒ φ n ] =⇒ (θ =⇒ φ)<br />

Lift<str<strong>on</strong>g>in</str<strong>on</strong>g>g over θ =⇒ is clearly sound.<br />

Typically, the θ i are assumpti<strong>on</strong>s <str<strong>on</strong>g>in</str<strong>on</strong>g> a <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> proof; lift<str<strong>on</strong>g>in</str<strong>on</strong>g>g<br />

copies them <str<strong>on</strong>g>in</str<strong>on</strong>g>to a rule’s premises and c<strong>on</strong>clusi<strong>on</strong>.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 29 / 56


Lift<str<strong>on</strong>g>in</str<strong>on</strong>g>g Over Assumpti<strong>on</strong>s<br />

In our proof example, Isabelle is now display<str<strong>on</strong>g>in</str<strong>on</strong>g>g: A ∧ B ∧ C =⇒ A ∧ C<br />

and the proof state is:<br />

(A ∧ B ∧ C =⇒ A ∧ C) =⇒ A ∧ B ∧ C −→ A ∧ C<br />

We want to apply [P; Q] =⇒ P ∧ Q. But for this, the rule must be<br />

lifted over assumpti<strong>on</strong> A ∧ B ∧ C, as follows:<br />

Lift<str<strong>on</strong>g>in</str<strong>on</strong>g>g over A ∧ B ∧ C =⇒<br />

[P; Q] =⇒ P ∧ Q<br />

[A ∧ B ∧ C =⇒ P; A ∧ B ∧ C =⇒ Q] =⇒ (A ∧ B ∧ C =⇒ P ∧ Q)<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 30 / 56


The Next Step <str<strong>on</strong>g>in</str<strong>on</strong>g> the Proof<br />

Us<str<strong>on</strong>g>in</str<strong>on</strong>g>g the follow<str<strong>on</strong>g>in</str<strong>on</strong>g>g nomenclature for l<str<strong>on</strong>g>in</str<strong>on</strong>g>ear notati<strong>on</strong>:<br />

D 11<br />

D 1 D 2<br />

D<br />

D : [A ∧ B ∧ C =⇒ A; A ∧ B ∧ C =⇒ C] =⇒ A ∧ B ∧ C −→ A ∧ C<br />

D 1 : [A ∧ B ∧ C =⇒ P; A ∧ B ∧ C =⇒ Q] =⇒ (A ∧ B ∧ C =⇒ P ∧ Q)<br />

D 11 : [P; Q] =⇒ P ∧ Q<br />

D 2 : (A ∧ B ∧ C =⇒ A ∧ C) =⇒ A ∧ B ∧ C −→ A ∧ C<br />

From the lifted rule (D 1 ) and proof state (D 2 ).<br />

For (A ∧ B ∧ C =⇒ P ∧ Q αβη A ∧ B ∧ C =⇒ A ∧ C)s, we use s: P A<br />

and Q C.<br />

Then by resoluti<strong>on</strong>, and after substituti<strong>on</strong> we get a new state (D).<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 31 / 56


Lift<str<strong>on</strong>g>in</str<strong>on</strong>g>g Over Parameters<br />

An analogous form of Lift<str<strong>on</strong>g>in</str<strong>on</strong>g>g handles premises of the form V x . . . . Here,<br />

lift<str<strong>on</strong>g>in</str<strong>on</strong>g>g prefixes an object-rule’s premises and c<strong>on</strong>clusi<strong>on</strong> with V x . . . . At<br />

the same time lift<str<strong>on</strong>g>in</str<strong>on</strong>g>g <str<strong>on</strong>g>in</str<strong>on</strong>g>troduces a dependence up<strong>on</strong> x.<br />

It replaces each unknown P <str<strong>on</strong>g>in</str<strong>on</strong>g> the rule by P 0 x, where P 0 is a new<br />

unknown (by subscript<str<strong>on</strong>g>in</str<strong>on</strong>g>g) of suitable type (necessarily a functi<strong>on</strong> type).<br />

In short:<br />

Def<str<strong>on</strong>g>in</str<strong>on</strong>g>iti<strong>on</strong> 4 (Lift<str<strong>on</strong>g>in</str<strong>on</strong>g>g over Parameters)<br />

[φ 1 ; . . . ; φ n ] =⇒ φ<br />

[ V x. φ x 1 ; . . . ;V x. φ x n] =⇒ V x. φ x<br />

where φ x stands for the result of lift<str<strong>on</strong>g>in</str<strong>on</strong>g>g unknowns over x <str<strong>on</strong>g>in</str<strong>on</strong>g> φ. It is not<br />

hard to see that this meta-<str<strong>on</strong>g>in</str<strong>on</strong>g>ference is sound.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 32 / 56


A Quantifier Proof: For All Introducti<strong>on</strong><br />

You<br />

8x. P x −→ P x ∨ Q y<br />

Isabelle<br />

8x. P x −→ P x ∨ Q y =⇒ 8x. P x −→ P x ∨ Q y<br />

answers: 8x. P x −→ P x ∨ Q y<br />

You<br />

apply (rule allI)<br />

( V x. P x) =⇒ 8x. P x<br />

( V x. P x) =⇒ 8x. P x 8x. P x −→ P x ∨ Qy =⇒ 8x. P x −→ P x ∨ Q y<br />

(( V x. P x) =⇒ 8x. P x −→ P x ∨ Qy)s<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 33 / 56


A Quantifier Proof: Lift<str<strong>on</strong>g>in</str<strong>on</strong>g>g Over Parameters<br />

Isabelle<br />

V x. P x −→ P x ∨ Q y =⇒ 8x. P x −→ P x ∨ Q y<br />

answers: V x. P x −→ P x ∨ Q y<br />

You<br />

apply (rule impI) (P =⇒ Q) =⇒ P −→ Q<br />

And then . . .<br />

Lift<str<strong>on</strong>g>in</str<strong>on</strong>g>g over V x<br />

(P =⇒ Q) =⇒ P −→ Q<br />

( V x. P 0 x =⇒ Q 0 x) =⇒ V x. P 0 x −→ Q 0 x<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 34 / 56


A Quantifier Proof: Unificati<strong>on</strong><br />

D<br />

: ( V x. P x =⇒ P x ∨ Q y) =⇒ 8x. P x −→ P x ∨ Q y<br />

D 1 : ( V x. P 0 x =⇒ Q 0 x) =⇒ V x. P 0 x −→ Q 0 x<br />

D 11 : (P =⇒ Q) =⇒ P −→ Q<br />

D 2<br />

V<br />

: x. P x −→ P x ∨ Q y =⇒ 8x. P x −→ P x ∨ Q y<br />

V x. P<br />

0<br />

x −→ Q<br />

0<br />

x<br />

<br />

αβη<br />

V x. P x −→ P x ∨ Q y<br />

P 0<br />

x αβη P x<br />

Q 0 x αβη P x ∨ Q y:<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 35 / 56


A Quantifier Proof: Disjuncti<strong>on</strong> Introducti<strong>on</strong><br />

Isabelle<br />

( V x. P x =⇒ P x ∨ Q y)=⇒ 8x. P x −→ P x ∨ Q y<br />

answers: V x. P x =⇒ P x ∨ Q y<br />

You<br />

apply (rule disjI1) P =⇒ P ∨ Q<br />

Isabelle<br />

Lift<str<strong>on</strong>g>in</str<strong>on</strong>g>g over: V x. P x =⇒<br />

Produces: ( V x. P x =⇒ P 0 x) =⇒ ( V x. P x =⇒ P 0 x ∨ Q 0 x)<br />

( V x. P x =⇒ P x)=⇒ 8x. P x −→ P x ∨ Q y<br />

answers: V x. P x =⇒ P x<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 36 / 56


And then by Assumpti<strong>on</strong> . . .<br />

In the course of a proof, parameters x 1 , . . . , x m and assumpti<strong>on</strong>s<br />

accumulate form<str<strong>on</strong>g>in</str<strong>on</strong>g>g a c<strong>on</strong>text for each subgoal (<str<strong>on</strong>g>in</str<strong>on</strong>g> normal form):<br />

V<br />

x1 , . . . , x m [φ 1 ; . . . ; φ k ] =⇒ φ<br />

It says that φ follows from φ 1 , . . . , φ k for arbitrary x 1 , . . . , x m . This is<br />

trivially true if φ equals of any of φ 1 , . . . , φ k , or is unifiable with any of<br />

them .<br />

Isabelle<br />

answers: V x. P x =⇒ P x<br />

You<br />

apply (assumpti<strong>on</strong>)<br />

d<strong>on</strong>e<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 37 / 56


Rule Applicati<strong>on</strong> Methods (Tactics): rule & assumpti<strong>on</strong><br />

Tactics perform backward proof. A tactic is a functi<strong>on</strong> that takes a proof<br />

state and returns a sequence (lazy list) of possible successor states. Basic<br />

tactics execute a meta-rule <strong>on</strong> a given subgoal.<br />

Method rule R<br />

Ord<str<strong>on</strong>g>in</str<strong>on</strong>g>ary resoluti<strong>on</strong> attempts to reduce the current subgoal φ i by unify<str<strong>on</strong>g>in</str<strong>on</strong>g>g<br />

it with the c<strong>on</strong>clusi<strong>on</strong> of the rule R : [ψ 1 ; . . . ; ψ m ] =⇒ ψ. The subgoal is<br />

then replaced by m new subgoals <str<strong>on</strong>g>in</str<strong>on</strong>g>stances of the premises of the rule.<br />

Method assumpti<strong>on</strong><br />

If the goal φ i is of the form [ϕ 1 ; . . . ; ϕ k ] =⇒ ϕ. The assumpti<strong>on</strong> method<br />

tries to unify ϕ with ϕ j for some (1 j k). This models proof by<br />

assumpti<strong>on</strong> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g>.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 38 / 56


Example: rule with Sequent Notati<strong>on</strong><br />

Isabelle<br />

answers: [A −→ C; B −→ C] =⇒ A ∨ B −→ C<br />

Γ, P ` Q<br />

Γ ` P −→ Q<br />

(rule impI)<br />

[A −→ C; B −→ C; A ∨ B] ` C<br />

[A −→ C; B −→ C] ` A ∨ B −→ C<br />

(rule impI)<br />

Isabelle<br />

answers: [A −→ C; B −→ C; A ∨ B] =⇒ C<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 39 / 56


Rule Applicati<strong>on</strong> Methods (Tactics): erule<br />

In pr<str<strong>on</strong>g>in</str<strong>on</strong>g>ciple, resoluti<strong>on</strong> and assumpti<strong>on</strong> suffice to prove all theorems.<br />

However, specialised forms of resoluti<strong>on</strong> are helpful for work<str<strong>on</strong>g>in</str<strong>on</strong>g>g with some<br />

classes of rules.<br />

Method erule R<br />

C<strong>on</strong>sider the rule R : [ψ 1 ; . . . ; ψ m ] =⇒ ψ and subgoal φ i of the form<br />

[ϕ 1 ; . . . ; ϕ k ] =⇒ ϕ. Then erule would try simultaneously: (i) to reduce<br />

the goal φ i as with ord<str<strong>on</strong>g>in</str<strong>on</strong>g>ary resoluti<strong>on</strong>, and (ii) to solve the first premise<br />

ψ 1 of the rule R by assumpti<strong>on</strong>, with some assumpti<strong>on</strong> ϕ j of φ i .<br />

The subgoal is then replaced by m − 1 new subgoals <str<strong>on</strong>g>in</str<strong>on</strong>g>stances of the<br />

premises of the rule ψ 2 ; . . . ; ψ m where the match<str<strong>on</strong>g>in</str<strong>on</strong>g>g assumpti<strong>on</strong> ϕ j has<br />

been deleted.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 40 / 56


Example: erule with Sequent Notati<strong>on</strong><br />

Isabelle<br />

answers: [A −→ C; B −→ C; A ∨ B] =⇒ C<br />

Γ ` P ∨ Q Γ, P ` R Γ, Q ` R<br />

Γ ` R<br />

(rule disjE)<br />

Γ, P ` R Γ, Q ` R<br />

Γ, P ∨ Q ` R<br />

(erule disjE)<br />

[A −→ C; B −→ C; A] ` C [A −→ C; B −→ C; B] ` C<br />

[A −→ C; B −→ C; A ∨ B] ` C<br />

(erule disjE)<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 41 / 56


Two K<str<strong>on</strong>g>in</str<strong>on</strong>g>ds of Elim<str<strong>on</strong>g>in</str<strong>on</strong>g>ati<strong>on</strong><br />

There are two k<str<strong>on</strong>g>in</str<strong>on</strong>g>ds of elim<str<strong>on</strong>g>in</str<strong>on</strong>g>ati<strong>on</strong> rule. The rules, c<strong>on</strong>junct1,<br />

c<strong>on</strong>junct2, mp and spec extract the c<strong>on</strong>clusi<strong>on</strong> from the major premise.<br />

They are easy to use <str<strong>on</strong>g>in</str<strong>on</strong>g> forward proof (destructi<strong>on</strong> rules).<br />

The rules disjE, FalseE and exE work by discharg<str<strong>on</strong>g>in</str<strong>on</strong>g>g assumpti<strong>on</strong>s. In<br />

<str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> this is the most general form of elim<str<strong>on</strong>g>in</str<strong>on</strong>g>ati<strong>on</strong> rule.<br />

To facilitate the use of destructi<strong>on</strong> rules <str<strong>on</strong>g>in</str<strong>on</strong>g> a backward proof, Isabelle<br />

provides a means of transform<str<strong>on</strong>g>in</str<strong>on</strong>g>g them as follows:<br />

ψ 1 . . . ψ m (destructi<strong>on</strong>)<br />

ψ<br />

ψ 1 . . . ψ m<br />

[ψ]<br />

.<br />

ϕ<br />

ϕ<br />

(elim<str<strong>on</strong>g>in</str<strong>on</strong>g>ati<strong>on</strong>)<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 42 / 56


Rule Applicati<strong>on</strong> Methods (Tactics): drule & erule<br />

Method drule R<br />

This method comb<str<strong>on</strong>g>in</str<strong>on</strong>g>es the above transformati<strong>on</strong> with elim-resoluti<strong>on</strong> (i.e.,<br />

erule).<br />

In other words, it applies a destructi<strong>on</strong> rule to some assumpti<strong>on</strong> of the<br />

goal.<br />

Method frule R<br />

Sometimes a (universal) formula has to be kept so that it can be used<br />

aga<str<strong>on</strong>g>in</str<strong>on</strong>g>. Then we use frule.<br />

This method is like drule except that the match<str<strong>on</strong>g>in</str<strong>on</strong>g>g assumpti<strong>on</strong> is not<br />

deleted, <str<strong>on</strong>g>in</str<strong>on</strong>g>stead it is copied.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 43 / 56


Next Step <str<strong>on</strong>g>in</str<strong>on</strong>g> the Example: rule<br />

Let us c<strong>on</strong>t<str<strong>on</strong>g>in</str<strong>on</strong>g>ue our previous example, and explore various alternatives for<br />

it.<br />

Isabelle<br />

answers: [A −→ C; B −→ C; A] =⇒ C<br />

with rule<br />

Γ ` P −→ Q<br />

Γ ` Q<br />

Γ ` P<br />

(rule mp)<br />

[A −→ C; B −→ C; A] ` P −→ C [A −→ C; B −→ C; A] ` P<br />

[A −→ C; B −→ C; A] ` C<br />

(rule mp)<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 44 / 56


Next Step <str<strong>on</strong>g>in</str<strong>on</strong>g> the Example: erule & Transformati<strong>on</strong><br />

Isabelle<br />

answers: [A −→ C; B −→ C; A] =⇒ C<br />

with erule<br />

Γ ` P<br />

Γ, P −→ Q ` Q<br />

(erule mp)<br />

[B −→ C; A] ` A<br />

[A −→ C; B −→ C; A] ` C<br />

(erule mp)<br />

Transformati<strong>on</strong><br />

Γ ` P −→ Q<br />

Γ ` Q<br />

Γ ` P<br />

(dest. mp)<br />

Γ ` P −→ Q Γ ` P Γ, Q ` R<br />

Γ ` R<br />

(elim. mp)<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 45 / 56


Next Step <str<strong>on</strong>g>in</str<strong>on</strong>g> the Example: drule & frule<br />

Isabelle<br />

answers: [A −→ C; B −→ C; A] =⇒ C<br />

with drule<br />

Γ ` P Γ, Q ` R<br />

Γ, P −→ Q ` R<br />

(drule mp)<br />

[B −→ C; A] ` A [B −→ C; A; C] ` C<br />

[A −→ C; B −→ C; A] ` C<br />

(rule mp)<br />

with frule<br />

[A −→ C; B −→ C; A] ` A [A −→ C; B −→ C; A; C] ` C<br />

[A −→ C; B −→ C; A] ` C<br />

(frule mp)<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 46 / 56


Proof Search<br />

Commands<br />

The by command executes an apply command and then tries to prove all<br />

rema<str<strong>on</strong>g>in</str<strong>on</strong>g><str<strong>on</strong>g>in</str<strong>on</strong>g>g subgoals by assumpti<strong>on</strong>. S<str<strong>on</strong>g>in</str<strong>on</strong>g>ce (if successful) it ends the proof,<br />

it also replaces the d<strong>on</strong>e symbol.<br />

The back command tries an alternative proof state successor of the<br />

current proof state (e.g., different unifiers).<br />

The undo command returns to the previous proof state.<br />

Methods<br />

The <str<strong>on</strong>g>in</str<strong>on</strong>g>tro method repeatedly applies the given <str<strong>on</strong>g>in</str<strong>on</strong>g>troducti<strong>on</strong> rules.<br />

The elim method repeatedly applies elim<str<strong>on</strong>g>in</str<strong>on</strong>g>ati<strong>on</strong> rules.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 47 / 56


Mak<str<strong>on</strong>g>in</str<strong>on</strong>g>g Bigger Steps<br />

Example 5 (impI OF impI)<br />

apply (rule impI)<br />

apply (rule impI)<br />

apply (assumpti<strong>on</strong>)<br />

d<strong>on</strong>e<br />

Alternatives<br />

Us<str<strong>on</strong>g>in</str<strong>on</strong>g>g by<br />

apply (rule impI)<br />

by (rule impI)<br />

A −→ (B −→ A)<br />

A =⇒ B −→ A<br />

[A; B] =⇒ A<br />

No subgoals!<br />

Us<str<strong>on</strong>g>in</str<strong>on</strong>g>g <str<strong>on</strong>g>in</str<strong>on</strong>g>tro<br />

apply (<str<strong>on</strong>g>in</str<strong>on</strong>g>tro impI)<br />

apply (assumpti<strong>on</strong>)<br />

d<strong>on</strong>e<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 48 / 56


Explicit Substituti<strong>on</strong><br />

Some methods apply a rule while c<strong>on</strong>stra<str<strong>on</strong>g>in</str<strong>on</strong>g><str<strong>on</strong>g>in</str<strong>on</strong>g>g some of its variables. The<br />

general form is:<br />

Instantiat<str<strong>on</strong>g>in</str<strong>on</strong>g>g Variables<br />

rule tac v 1 = t 1 and . . . and v k = t k <str<strong>on</strong>g>in</str<strong>on</strong>g> R<br />

This behaves like rule R, while <str<strong>on</strong>g>in</str<strong>on</strong>g>stantiat<str<strong>on</strong>g>in</str<strong>on</strong>g>g variables v 1 , . . . , v k as<br />

specified.<br />

Note that for the tactics we have seen, there are variants of them:<br />

erule tac,<br />

drule tac and<br />

frule tac.<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 49 / 56


Work<str<strong>on</strong>g>in</str<strong>on</strong>g>g with Quantifiers I<br />

For all, Exists<br />

lemma “forall-exists”: “(8x. p(x)) −→ (9x. p(x))”<br />

goal: (8x. p x) −→ (9x. p x)<br />

Γ, P ` Q<br />

Γ ` P −→ Q<br />

(rule impI)<br />

goal: 8x. p x =⇒ 9x. p x<br />

Γ ` P[t/x]<br />

Γ ` 9x. P x<br />

(rule exI)<br />

goal: 8x. p x =⇒ p x 1<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 50 / 56


Work<str<strong>on</strong>g>in</str<strong>on</strong>g>g with Quantifiers II<br />

For all, Exists<br />

Alternatively, rule tac x = t <str<strong>on</strong>g>in</str<strong>on</strong>g> exI will result <str<strong>on</strong>g>in</str<strong>on</strong>g>:<br />

goal: 8x. p x =⇒ p t<br />

Γ ` 8x. P x<br />

Γ ` P[t/x]<br />

(rule spec)<br />

Γ, 8x. P x ` P[t/x]<br />

(erule spec)<br />

No subgoals!<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 51 / 56


Work<str<strong>on</strong>g>in</str<strong>on</strong>g>g with Negati<strong>on</strong> I<br />

C<strong>on</strong>trapositive<br />

goal: [¬(P −→ Q); ¬(R −→ Q)] =⇒ R<br />

[¬Q; ¬P =⇒ Q] =⇒ P<br />

(c<strong>on</strong>trapos np)<br />

Γ ` ¬Q Γ, ¬P ` Q<br />

Γ ` P<br />

(rule c<strong>on</strong>trapos np)<br />

goal: 1. [¬(P −→ Q); ¬(R −→ Q)] =⇒ ¬Q<br />

2. [¬(P −→ Q); ¬(R −→ Q); ¬R] =⇒ Q<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 52 / 56


Work<str<strong>on</strong>g>in</str<strong>on</strong>g>g with Negati<strong>on</strong> II<br />

C<strong>on</strong>trapositive<br />

goal: [¬(P −→ Q); ¬(R −→ Q)] =⇒ R<br />

Γ, ¬P ` Q<br />

Γ, ¬Q ` P<br />

(erule c<strong>on</strong>trapos np)<br />

[¬(R −→ Q); ¬R] ` P −→ Q<br />

[¬(P −→ Q); ¬(R −→ Q)] ` R<br />

(erule c<strong>on</strong>trapos np)<br />

[¬(P −→ Q); ¬R] ` R −→ Q<br />

[¬(P −→ Q); ¬(R −→ Q)] ` R<br />

(erule c<strong>on</strong>trapos np)<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 53 / 56


Work<str<strong>on</strong>g>in</str<strong>on</strong>g>g with Negati<strong>on</strong> III<br />

C<strong>on</strong>trapositive<br />

goal: [¬(P −→ Q); ¬(R −→ Q)] =⇒ R<br />

Γ, ¬P ` Q<br />

Γ, ¬Q ` P<br />

(erule c<strong>on</strong>trapos np)<br />

Alternatively, erule tac Q = "R −→ Q" <str<strong>on</strong>g>in</str<strong>on</strong>g> c<strong>on</strong>trapos np will produce the<br />

same effect.<br />

goal: [¬(P −→ Q); ¬R] =⇒ R −→ Q<br />

And then apply (rule impI) will result:<br />

goal: [¬(P −→ Q); ¬R; R] =⇒ Q<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 54 / 56


Work<str<strong>on</strong>g>in</str<strong>on</strong>g>g with Negati<strong>on</strong> IV<br />

Negati<strong>on</strong> Elim<str<strong>on</strong>g>in</str<strong>on</strong>g>ati<strong>on</strong><br />

goal: [¬(P −→ Q); ¬R; R] =⇒ Q<br />

[¬P; P] =⇒ R<br />

(notE)<br />

Γ ` ¬P Γ ` P<br />

Γ ` R<br />

(rule notE)<br />

Γ ` P<br />

Γ, ¬P ` R<br />

(erule notE)<br />

by (erule notE)<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 55 / 56


What is Next<br />

It is difficult to prove theorems us<str<strong>on</strong>g>in</str<strong>on</strong>g>g the methods we have studied<br />

(i.e., the proof can be very l<strong>on</strong>g).<br />

Proof sequences realise their full potential with Tacticals. These are<br />

operators for comb<str<strong>on</strong>g>in</str<strong>on</strong>g><str<strong>on</strong>g>in</str<strong>on</strong>g>g Tactics. DFS, BFS and Best-FS (heuristics)<br />

return their outcomes as sequences.<br />

Moreover, Isabelle provides enough atomati<strong>on</strong> to tackle substantial<br />

examples. The Classical Reas<strong>on</strong>er is a family of tools that perform<br />

such <str<strong>on</strong>g>proofs</str<strong>on</strong>g> automatically.<br />

The most important is the blast method, which basically is a generic<br />

tableaux prover <str<strong>on</strong>g>in</str<strong>on</strong>g>tegrated with Isabelle (reas<strong>on</strong>er).<br />

J. AGuado (Informatics Theory Group) <str<strong>on</strong>g>Natural</str<strong>on</strong>g> <str<strong>on</strong>g>Deducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> <str<strong>on</strong>g>ISABELLE</str<strong>on</strong>g> University of Bamberg 56 / 56

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

Saved successfully!

Ooh no, something went wrong!