Presentation of Classical Propositional Tableaux
- n Program Design Premises∗
Juan Michelini and Álvaro Tasistro
Universidad ORT Uruguay michelini@ort.edu.uy, tasistro@ort.edu.uy
Abstract
We propose a presentation of classical propositional tableaux elaborated by application of some principles that are noteworthy in program design, namely program derivation with separation
- f concerns. We start by deriving from a straightforward specification an algorithm given as a
set of recursive equations for computing all models of a finite set of formulae. Thereafter we discuss the employment of data structures, mainly with regard to a manual execution of the
- algorithm. A requirement of natural traceability and verification leads us to the trees of sets
- f formulae presented in [Hintikka?] and [Ben-Ari], the correctness of which is immediate after
their derivation as traces of the employment of the original equations. A further improvement avoids repetition of unmodified formulae giving rise to the trees presented in [Smullyan], whose correctness is in turn guaranteed by showing that they carry the same information as the former
- trees. The whole development strives at avoiding gaps, both of logical and motivational nature.
1 Introduction
The context in which this work presents itself is as follows. We are in the course of developing an approach based on Functional Programming to teaching Mathematics and Programming from scratch. Such approach founds itself primarily on the construction of the mathematical
- bjects within the conceptual and notational framework of a core of the programming lan-
guage Haskell1. As usual in Mathematics, we consider properties and relations defined on such objects and then proceed to the illative development leading to the results of interest, all of which is accomplished in natural language2 enhanced by further convenient notation. As we see it, the approach serves the following educational purposes: To begin with, it provides a way for learning Programming in which programs are encountered from the beginning as subjects of mathematical definitions and scrutiny, which is to our mind a funda- mental and most usually neglected conception thereof 3. On the other hand, it proposes the study of Mathematics as based on types and functions. Besides introducing an alternative interesting in itself, this prompts teachers and students to develop a fresh approach to the most fundamental mathematical mechanisms which is generally quite useful and illuminat- ing —for all of them. As a third consequence, the mathematical results and methods are, if not directly so, readily conceived as opportunities for the development of interesting pieces
- f software.
∗ This work was partially supported by ANII–Agencia Nacional de Investigación e Innovación, Uruguay. 1 Specifically, a λ-calculus with a system of simple types in Curry’s style plus inductive definitions, i.e.
types defined by enumeration of their constructors. We refer to this language as λh when convenient.
2 I.e. Spanish in our case. Specifically, we do not use a formal system like e.g. Constructive Type Theory
for considering such option far too demanding for novice students.
3 It also conducts to introducing Programming via the principles and techniques of the functional
- paradigm. We do claim that this too is a feature of our method, but the corresponding discussion
is far beyond the scope of this paper.
licensed under Creative Commons License CC-BY Leibniz International Proceedings in Informatics Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Dagstuhl Publishing, Germany