HOL

Symmetry in HOL

Symmetry in HOL:

\cfrac{Γ ⊢ s=u}{Γ ⊢ u=s}\texttt{SYM}

Recall that:

  1. Reflexivity of equality \cfrac{}{⊢ t=t} REFL

  2. Transitivity of equality (could be derived from other rules, but added just for efficiency)

  3. Congruence of application $s(u) = t(v)$ whenever $u=t$ ($MK_COMB$: make combinators)

  4. Congruence of abstraction $λx. u = λx. v$ whenever $u=v$

  5. $β$-reduction: $(λx. t)x = t$

  6. Axiom rule $\lbrace p \rbrace ⊢ p$

  7. Modus ponens $q$ whenever $p ⟺q$ and $p$

  8. Building equivalence: \cfrac{Γ ⊢ p \quad Δ ⊢ q}{(Γ\backslash \lbrace q \rbrace) ∪ (Δ \backslash \lbrace p \rbrace) ⊢ p ⟺ q}

  9. Instantiation of terms: \cfrac{Γ[x_1, ⋯, x_n] ⊢ p[x_1, ⋯, x_n]}{Γ[t_1, ⋯, t_n] ⊢ p[t_1, ⋯, t_n]}

  10. Instantiation of type variables: \cfrac{Γ[α_1, ⋯, α_n] ⊢ p[α_1, ⋯, α_n]}{Γ[γ_1, ⋯, γ_n] ⊢ p[γ_1, ⋯, γ_n]}

And the $η$-rule can be added:

\cfrac{}{⊢ λx.(t x) = t} \texttt{ETA} \text{ if } x ∉ fv(t)

Let’s assume \cfrac{}{Γ ⊢ s=u}

We can write

(=): ∀α, α ⟶ α ⟶ Bool

So that:

\cfrac{}{⊢ (=) = (=)}REFL

and by $MK_COMB$:

\cfrac{}{Γ ⊢ (=)s = (=)u}

Then, by applying these functions to $s=s$ by $MK_COMB$ again:

\cfrac{}{Γ ⊢ \underbrace{(=) \, s \, s}_{bool} ⟺ (=) \, u \, s}

And finally, by modus ponens:

\cfrac{}{Γ ⊢ (=) \, u \, s}

Transitivity

Same thing for the transitivity (almost the same proof):

\cfrac{}{⊢ (=)s = (=)s}REFL

then, with $MK_COMB$ on our assumption $t=u$

\cfrac{}{⊢ (=) \, s\, t = (=)\, s\, u}REFL

then one concludes with the modus ponens on our assumption $s=t$

New beta rule

From

\cfrac{}{⊢ (λx. t)x = t} \texttt{BETA}

we want to derive

\cfrac{}{⊢ (λx. t)u = t[x ← u]} \texttt{BETA'}

Let’s begin with

\cfrac{}{⊢ (λx. t)x = t}

By instantiating $x ← u$:

\cfrac{}{⊢ ((λx. t)x = t)[x ← u]}

i.e.

\cfrac{}{⊢ (λx. t)u = t[x ← u]}

Implication

p ⟹ q ≝ p ∧ q ⟺ p

Why does it work?

Introduction

\cfrac{Γ, p ⊢ q}{Γ ⊢ p ⟹ q} \texttt{INTRO}

We want to prove

\cfrac{}{Γ ⊢ \begin{cases} p ⟹ q \\ p ∧ q ⟺ p \end{cases}}
\cfrac{\cfrac{p ⊢ p \quad Γ, p ⊢ q}{Γ, p ⊢ p∧q} \texttt{∧-INTRO}\qquad \cfrac{p ∧ q ⊢ p ∧ q}{p ∧ q ⊢ p} \texttt{∧-Elim-left} }{Γ ⊢ \begin{cases} p ⟹ q \\ p ∧ q ⟺ p \end{cases}}

where

\cfrac{Γ ⊢ p \quad Δ ⊢ q}{Γ ∪ Δ ⊢ p ∧ q} \texttt{∧-INTRO}

Elimination

We use symmetry, then modus ponens with $Δ ⊢ p$ to get $Γ ∪ Δ ⊢ p ∧ q$, and then by elim:

Γ ∪ Δ ⊢ q

Universal quantification $∀$

\underbrace{∀x\underbrace{P(x)}_{α ⟶ bool}}_{bool} ≝ P = λx. ⊤

Impredicative encoding: we can quantify over all propositions.

Let’s show

\cfrac{}{Γ ⊢ \begin{cases} ∀x. P(x) \\ P = λx. ⊤ \end{cases}}

under the assumption

\cfrac{}{Γ ⊢ P(x)} \text{ when } x ∉ fv(Γ)

With $η$-expansion:

\cfrac{ \cfrac{ \cfrac{ \cfrac{}{ Γ ⊢ P(x) } \text{ when } x ∉ fv(Γ) }{Γ ⊢ P(x) ⟺ ⊤} }{Γ ⊢ λx. P(x) = λx. ⊤} }{Γ ⊢ \begin{cases} ∀x. P(x) \\ P = λx. ⊤ \end{cases}}

To avoid extensionality, we could have defined:

∀x. P(x) ≝ λx. P(x) = λx. ⊤

The other direction:

\cfrac{ Γ ⊢ \begin{cases} ∀x. P(x) \\ P = λx. ⊤ \end{cases} \qquad t=t} {\cfrac{ Γ ⊢ P(t) = \underbrace{(λx. ⊤)t}_{\overset{β}{=} ⊤}} { Γ ⊢ P(t) } }

False $⊥$

⊥ ≝ ∀ \underbrace{p}_{bool}. p

Then: $⊥$-Elim = $∀$-Elim:

\cfrac{Γ ⊢ ∀p.p}{Γ ⊢ p}

Existential quantification $∃$

∃x. P(x) ≝ ∀q. (∀x. P(x) ⟹ q) ⟹ q

Elimination:

\cfrac{Γ ⊢ ∃x. P(x) \qquad Δ, P(x) ⊢ C}{Γ, Δ ⊢ C} \text{ for } x ∉ fv(Δ, C)

Introduction:

\cfrac{ ⊢ P(t) ⟹ q \qquad ⊢ P(t) } { \cfrac{ ∀x. P(x) ⟹ q ⊢ q} {\cfrac{ ⊢ (∀x. P(x) ⟹ q) ⟹ q } { ⊢ ∃x. P(x) } }}

In HOL, there is a (private) type thm (coming from LCF) ⟶ implemented in OCamL.

Leave a Comment