=Paper=
{{Paper
|id=Vol-1949/CILCpaper10
|storemode=property
|title=LOGI: A Didactic Tool for a Beginners' Course in Logic (System Description)
|pdfUrl=https://ceur-ws.org/Vol-1949/CILCpaper10.pdf
|volume=Vol-1949
|authors=Mario Ornaghi,Camillo Fiorentini,Alberto Momigliano
|dblpUrl=https://dblp.org/rec/conf/ictcs/OrnaghiFM17
}}
==LOGI: A Didactic Tool for a Beginners' Course in Logic (System Description)==
LOGI: A didactic tool for a beginners’ course in logic
(system description)
Mario Ornaghi, Camillo Fiorentini, Alberto Momigliano
Dipartimento di Informatica, Università degli Studi di Milano, Italy
Abstract. LOGI is a didactic software designed for a basic course of Logic.
We developed it as an extension of the course-ware Language, Proof and
Logic (LPL) by Plummer, Barwise, and Etchemendy, in particular of Tarski’s
World (TW): the latter features simple virtual worlds populated by blocks
and equipped with a first order language to about them; this helps students to
understand the language of logic and its semantics in an intuitive and effective
way. A limit is that there is no automatic support for exercises involving other
domains. More importantly, if we view logic as a paradigmatic modeling lan-
guage, this aspect is lost in the predefined blocks world, while it should be one
of the educational outcomes of a course of Logic in a Computer Science curricu-
lum. To overcome those limits, LOGI provides an environment where students
can model simple “realities” by devising an appropriate (one- or many-sorted)
signature, writing finite interpretations that represent possible circumstances,
and evaluating the truth/falsity of first order formulas in an interpretation ac-
cording to Tarski’s semantics. Furthermore, it provides a detailed explanation
of the result of evaluating a formula in a set of interpretations. Finally, to stress
the role of logic in modeling, LOGI supports explicit definitions and allows the
user to deal with incomplete information. In this sense, LOGI is not a com-
petitor of TW, but an extension, to be used as a second, more advanced step.
1 Motivation
LOGI is a didactic tool designed for “Logica Matematica”, a first year course of the
“Corso di Laurea in Informatica” at the University of Milan. The decision of developing
LOGI followed three years of experience using the course-ware associated to Language,
Proof and Logic [1] (LPL, https://ggweb.gradegrinder.net/lpl). This is one of
the most widely used logic course-ware: it is available since 2002 and includes, among
other tools, “Tarski’s World” (TW), which provides a virtual environment for students
to draw on the screen virtual worlds populated by blocks (see Fig. 1); the aim is to learn
the formal language of logic and understand its semantics in an easy and intuitive way.
“There are two ways to learn a second language. One is to learn how to
translate sentences of the language to and from sentences of your native
language. The other is to learn by using the language directly. . . . In LPL,
we adopt the second method for learning FOL [first-order logic]. Tarski’s
World provides a simple environment in which FOL can be used in many of
the ways that we use our native language. . . . With LPL, students learn not
Fig. 1. A Tarski’s World screenshot
just how to prove consequences of premises, but also the equally important
technique of showing that a given claim does not follow logically from its
premises. To do this, they learn how to give counterexamples, which are
really proofs of non-consequence. These will often [our emphasis] be given
using Tarski’s World” ([1], pages 14–5).
In our experience, TW effectively helps students in gaining some understanding
of logic and students do like it. LPL contains a ton of exercises that can be developed
and checked via the tools and we used them in lectures and as support for homework.
However, most exercises involve signatures and interpretations different from TW.
For example, there are exercises requiring to translate English statements into FOL,
“introducing names, predicates, and function symbols as needed”, considering other
first order languages and interpretations, or asking to prove that an argument valid
in TW is not valid in FOL, etc. These exercises have to be solved by hand. It will
come to nobody’s surprise that many students present very confused and imprecise
solutions, which are in turn difficult to grade. Furthermore, students themselves would
like to have a tool to check the correctness of their homework. LOGI aims to address
those issues by: a) Defining first order (possibly many sorted) signatures, which can
be stored and reused. b) Writing formulas and arguments in the language of a chosen
signature. LOGI checks the correctness of formulas with respect to the signature. If no
signature is declared, LOGI tries to infer one from the formulas. c) Introducing finite
interpretations of the chosen signature. LOGI checks that interpretations are correctly
formulated. d) Evaluating the truth/falsity of formulas in an interpretation or in a
set of interpretations. LOGI shows also a detailed explanation of the computation
of an evaluation. e) Supporting explicit definitions.
An additional motivation for LOGI is to emphasize the role of modeling in soft-
ware development: FOL can be seen as a paradigmatic modeling language with a
consolidated formal semantics. LOGI allows students to formalize “contexts”, that is
the set of “circumstances” which we are reasoning about. In LOGI a formal model of
a context is obtained by introducing a signature that allows the user to represent all
the circumstances of interest as first order interpretations and to express all related
properties by primitively or explicitly defined symbols. Furthermore, to help modeling
large examples, LOGI handles incomplete information, in the form of partially defined
interpretations as well as of partially defined functions, corresponding to situations of
partial knowledge typical of software systems. Note that since we also allow integers
as a fixed structure, our system is outside of the strict limits of first-order logic.
Fig. 2. Creating a new signature s1.sig
Fig. 3. Sheet w1.sp of formulas with signature s1.sig
2 Using LOGI
To give a feel for the use of LOGI, we take on Exercise 11.30 of LPL. It requires to
“translate various statements into a version of FOL that has function symbols height,
mother, and father, the predicate >, and names for the people mentioned, and to
say which sentences are true”, in a (informally) given interpretation.
The first step is to create the required signature via the button “Crea Segnatura”
in the “Creazione Fogli” menu (Fig. 2, left). Sheets are the basic units of the tool
and an exercise involves the creation of a set of sheets of different kinds: .sig for
signatures, .sp for formulas of a specific signature, .intp for interpretations and so
on. Fig. 2, right, shows how to give a (many sorted) first order signature. A signature
always includes u, the “universe” of discourse, while in this example we also have inte-
gers, used here to interpret the height function. In LOGI, by declaring the sort inte-
ger the predefined structure of integers is automatically included. If types in constant,
function or predicate declarations are different from u, they have to be explicitly de-
clared (see the declaration of height in Fig. 2); otherwise u is assumed. The syntax
of declarations is quite intuitive and the tool clearly reports mistakes by highlighting.
The second step is to write down the required translations (Fig. 3). We consider
here only two of the statements of the exercise, shown in the comments. Formulas
are checked with respect to both FOL syntax and the declared signature. Once the
formulas are correct, the sheet is accepted.
The third step is to formalize the required interpretation, a fragment of which
is shown in Fig. 4. Mistakes, such as for example multi-valued functions, are signaled
by error messages. In the case of partially defined information, the tool just issues
a warning, see again Fig. 4. Finally, in exercises such as the one considered here, the
last step is to evaluate the truth of formulas in a given sheet w.r.t. the considered
interpretation. This is done via the “Esercizi” menu (details omitted). The result is
Fig. 4. Interpretation i1.intp of the signature s1.sig
Fig. 5. Truth evaluation
shown in Fig. 5: green indicates truth, red falsity and grey that the interpretation lacks
the information needed to evaluate the formula. The details of the evaluation are shown
on the output sheet *out.logi of the tool, as shown at the bottom of Fig. 5. Because
of the pedagogic nature of LOGI, we paid particular care to what we can call truth
verbalization, that is explaining the truth-value of a formula in a given interpretation.
Logically, this is accomplished recording during the interpretation, and then verbalizing
evaluation forms [2], which are essentially a kind of realizers of given formulas.
3 The architecture of LOGI
The tool is entirely developed in SWI Prolog — LPL’s Java code basis being pro-
prietary — and consists of circa 6000 lines of code, including extensive comments. It
contains three main “components”: application, parser, and GUI, trying to bend
SWI’s limited module system to approximate as much as possible the notion of soft-
ware components; this in order to separate the basic functionalities from the concrete
representation of the sheets and from the GUI, simplifying future improvements and
modifications. The information flow is the following:
Sheet on the GUI ↔(1) list(char) for the parser ↔(2) Prolog term for the application
The GUI is responsible for the translation (1). Different GUIs may behave in different
ways, but all have to produce the same representation for the parser. The current GUI
is based on XPCE-Emacs. For better rendering of logical symbols, we use different
fonts and encodings for Windows and Unix systems. A custom written DCG parser,
with a reasonable error messaging, is in charge of the translation (2). We refer to
that as a “compilation”.
Finally, the application component contains the basic functionalities. It defines
the Prolog representation of signatures, interpretations and formulas, it checks the con-
formance of formulas and interpretations to a signature and evaluates the truth-value
of formulas in an interpretation. Moreover, a compilation manager module main-
tains a dynamic database of the compiled sheets and their dependencies: for example,
if a signature sheet is modified, the interpretation and formula sheets depending on
it in general are no longer correct and thus are deleted from the compiled ones.
4 Conclusions
We have presented LOGI, a didactic tool for a beginners’ course in Logic. Being a
prototype, LOGI has not been tested in the classroom yet, but we plan to experiment
with it in the next edition and collect data, hopefully showing that it can improve
students’ performances.
We recall that we have designed LOGI to complement TW, addressing the same
kinds of problems with the same approach, but opening up the choice of language.
From this viewpoint, consistently with LPL’s choice, we are not interested (for the time
being) in other significant issues in a Logic course, such as automatic proofs and/or
counter-model generation; for this we refer to existing tools, which can conceivably
be integrated in a later version.
The code for both Windows and for Linux can be found at https://homes.di.
unimi.it/ornaghi/logi, together with some limited documentation.
References
1. D. Barker-Plummer, J. Barwise, and J. Etchemendy. Language, Proof, and Logic: Second
Edition. Center for the Study of Language and Information/SRI, 2nd edition, 2011.
2. P. Miglioli, U. Moscato, M. Ornaghi, S. Quazza, and G. Usberti. Some results on inter-
mediate constructive logics. Notre Dame Journal of Formal Logic, 30(4):543–562, 1989.