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), HOLlight (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 (ZermeloFraenkel 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 oldfashioned LF ideas:
 Dedukti:

a basic prover that you can enrich by adding deductionmodulo rules
Isabelle’s Meta Logic
We have
 basic types
 function types of the form $σ ⟶ τ$
 $λ$terms with De Bruijn indices
and metaformulas, metarules, metasymbols.
To represent an objectlogic, you add new basic types, constant symbols:
 $form$ is the type of objectlogic 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 multisorted 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 firstorder logic (FOL)
 In the metalogic:

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 objectlogic:

you have the arrow:
⟶: o → o → o
which is “equivalent” in a way (due to the matarules) to $⟹$

Leave a comment