12 research outputs found
Drawing Trees
We formally prove in Isabelle/HOL two properties of an algorithm for laying out trees visually. The first property states that removing layout annotations recovers the original tree. The second property states that nodes are placed at least a unit of distance apart. We have yet to formalize three additional properties: That parents are centered above their children, that drawings are symmetrical with respect to reflection and that identical subtrees are rendered identically
Code Generation for a Simple First-Order Prover
We present Standard ML code generation in Isabelle/HOL of a sound and complete prover for first-order logic, taking formalizations by Tom Ridge and others as the starting point. We also define a set of so-called unfolding rules and show how to use these as a simple prover, with the aim of using the approach for teaching logic and verification to computer science students at the bachelor level
Natural Deduction and the Isabelle Proof Assistant
We describe our Natural Deduction Assistant (NaDeA) and the interfaces between the Isabelle proof assistant and NaDeA. In particular, we explain how NaDeA, using a generated prover that has been verified in Isabelle, provides feedback to the student, and also how NaDeA, for each formula proved by the student, provides a generated theorem that can be verified in Isabelle.<br/
Students’ Proof Assistant (SPA)
The Students' Proof Assistant (SPA) aims to both teach how to use a proof
assistant like Isabelle and also to teach how reliable proof assistants are
built. Technically it is a miniature proof assistant inside the Isabelle proof
assistant. In addition we conjecture that a good way to teach structured
proving is with a concrete prover where the connection between semantics, proof
system, and prover is clear. The proofs in Lamport's TLAPS proof assistant have
a very similar structure to those in the declarative prover SPA. To illustrate
this we compare a proof of Pelletier's problem 43 in TLAPS, Isabelle/Isar and
SPA. We also consider Pelletier's problem 34, also known as Andrews's
Challenge, where students are encouraged to develop their own justification
function and thus obtain a lot of insight into the proof assistant. Although
SPA is fully functional we have so far only used it in a few educational
scenarios.Comment: In Proceedings ThEdu'18, arXiv:1903.1240
Natural Deduction Assistant (NaDeA)
We present the Natural Deduction Assistant (NaDeA) and discuss its advantages
and disadvantages as a tool for teaching logic. NaDeA is available online and
is based on a formalization of natural deduction in the Isabelle proof
assistant. We first provide concise formulations of the main formalization
results. We then elaborate on the prerequisites for NaDeA, in particular we
describe a formalization in Isabelle of "Hilbert's Axioms" that we use as a
starting point in our bachelor course on mathematical logic. We discuss a
recent evaluation of NaDeA and also give an overview of the exercises in NaDeA.Comment: In Proceedings ThEdu'18, arXiv:1903.1240
Teaching a Formalized Logical Calculus
Classical first-order logic is in many ways central to work in mathematics,
linguistics, computer science and artificial intelligence, so it is worthwhile
to define it in full detail. We present soundness and completeness proofs of a
sequent calculus for first-order logic, formalized in the interactive proof
assistant Isabelle/HOL. Our formalization is based on work by Stefan Berghofer,
which we have since updated to use Isabelle's declarative proof style Isar
(Archive of Formal Proofs, Entry FOL-Fitting, August 2007 / July 2018). We
represent variables with de Bruijn indices; this makes substitution under
quantifiers less intuitive for a human reader. However, the nature of natural
numbers yields an elegant solution when compared to implementations of
substitution using variables represented by strings. The sequent calculus
considered has the special property of an always empty antecedent and a list of
formulas in the succedent. We obtain the proofs of soundness and completeness
for the sequent calculus as a derived result of the inverse duality of its
tableau counterpart. We strive to not only present the results of the proofs of
soundness and completeness, but also to provide a deep dive into a
programming-like approach to the formalization of first-order logic syntax,
semantics and the sequent calculus. We use the formalization in a bachelor
course on logic for computer science and discuss our experiences.Comment: In Proceedings ThEdu'19, arXiv:2002.1189