Teaching Functional Programmers Logic and Metatheory

We present a novel approach for teaching logic and the metatheory of logic to students who have some experience with functional programming. We define concepts in logic as a series of functional programs in the language of the proof assistant Isabelle/HOL. This allows us to make notions which are often unclear in textbooks precise, to experiment with definitions by executing them, and to prove metatheoretical theorems in full detail. We have surveyed student perceptions of our teaching approach to determine its usefulness and found that students felt that our formalizations helped them understand concepts in logic, and that they experimented with them as a learning tool. However, the approach was not enough to make students feel confident in their abilities to design and implement their own formal systems. Further studies are needed to confirm and generalize the results of our survey, but our initial results seem promising.

READ FULL TEXT
research
03/31/2023

Teaching Gödel's incompleteness theorems

The basic notions of logic-predicate logic, Peano arithmetic, incomplete...
research
04/26/2022

Evaluating Automatic Difficulty Estimation of Logic Formalization Exercises

Teaching logic effectively requires an understanding of the factors whic...
research
10/23/2018

DCLab: A Web-based System for Digital Logic Experiment Teaching

This Research-to-Practice Work in Progress paper presents DCLab, a web-b...
research
05/21/2018

One Monad to Prove Them All (Functional Pearl)

One Monad to Prove Them All is a modern fairy tale about curiosity and p...
research
06/27/2019

Introducing Certified Compilation in Education by a Functional Language Approach

Classes on compiler technology are commonly found in Computer Science cu...
research
03/05/2018

Teaching the Formalization of Mathematical Theories and Algorithms via the Automatic Checking of Finite Models

Education in the practical applications of logic and proving such as the...

Please sign up or login with your details

Forgot password? Click here to reset