# Isabelle

Isabelle (named by Lawrence Paulson after the daughter of Gérard Huet, as a tribute): a popular generic theorem prover

There are really intersting ideas underlying Isabelle:

Isabelle is not a prover in itself ⟶ it’s relying on the Logical Framework (LF)

Contrary to Coq (which relies on CIC), HOL-light (relying on HOL), the Logical Framework tries to encompass all possible logical systems.

⟶ Isabelle is such a framework, embedding various logical systems

Isabelle/”the logic used”:

• Isabelle/HOL
• Isabelle/ZF (Zermelo-Fraenkel Set theory)

but the most popular (by far) is Isabelle/HOL.

LF: Not very popular anymore, because there’s one logics with a binder and basic connectors, which helps us to encode the other logical systems ⟶ you end up having two layers (the underlying logics and the enriched one), which is cumbersome in practice.

More “modern” than the old-fashioned LF ideas:

Dedukti:

a basic prover that you can enrich by adding deduction-modulo rules

# Isabelle’s Meta Logic

We have

• basic types
• function types of the form $σ ⟶ τ$
• $λ$-terms with De Bruijn indices

and meta-formulas, meta-rules, meta-symbols.

To represent an object-logic, you add new basic types, constant symbols:

$true: form ⟶ prop$
• $form$ is the type of object-logic formulas
• $prop$ is the type of the meta (underlying) logic

• object class term (on which you quantify)

• containing for instance $nat, bool, ⋯$
• enables to use multi-sorted logics (by quantifying on only $nat$ for instance)
• objet fomulas of type o
• prop: one type in the $λ$-calculus in the meta/core logic

Warning!: you have many sorts of arrows:

Ex: for first-order logic (FOL)

• In the meta-logic:
• you have the arrow $→$ of types of $λ$-terms:

• $λx.x: A → A$
• among the basic types, there is $prop$, and there’s the arrow:

$⟹: prop → prop → prop$
• In the object-logic:

• you have the arrow:

$⟶: o → o → o$

which is “equivalent” in a way (due to the mata-rules) to $⟹$

Tags:

Updated: