English
Related papers

Related papers: Teaching Simple Constructive Proofs with Haskell P…

200 papers

While functional programming is an efficient way to express complex software, functional programming languages have a steep learning curve. Haskell can be challenging to learn for students who were only introduced to imperative programming.…

Programming Languages · Computer Science 2019-06-28 Boldizsár Németh , Eunjong Choi , Erina Makihara , Hajimu Iida

Equational reasoning is one of the key features of pure functional languages such as Haskell. To date, however, such reasoning always took place externally to Haskell, either manually on paper, or mechanised in a theorem prover. This…

Programming Languages · Computer Science 2018-06-12 Niki Vazou , Joachim Breitner , Will Kunkel , David Van Horn , Graham Hutton

Education in the practical applications of logic and proving such as the formal specification and verification of computer programs is substantially hampered by the fact that most time and effort that is invested in proving is actually…

Logic in Computer Science · Computer Science 2018-03-06 Wolfgang Schreiner , Alexander Brunhuemer , Christoph Fürst

A number of introductory textbooks for Haskell use calculations right from the start to give the reader insight into the evaluation of expressions and the behavior of functional programs. Many programming concepts that are important in the…

Computers and Society · Computer Science 2014-12-17 Tim Olmer , Bastiaan Heeren , Johan Jeuring

Worldwide, computer science departments have experienced a dramatic increase in the number of student enrolments. Moreover, the ongoing COVID-19 pandemic requires institutions to radically replace the traditional way of on-site teaching,…

Computers and Society · Computer Science 2022-07-27 Kevin Kappelmann , Jonas Rädle , Lukas Stevens

Artificial intelligence assisted mathematical proof has become a highly focused area nowadays. One key problem in this field is to generate formal mathematical proofs from natural language proofs. Due to historical reasons, the formal proof…

Programming Languages · Computer Science 2024-05-14 Lihan Xie , Zhicheng Hui , Qinxiang Cao

Since its birth as a new scientific body of knowledge in the late 1950s, computer programming has become a fundamental skill needed in many other disciplines. However, programming is not easy, it is prone to errors and code re-use is key…

Programming Languages · Computer Science 2026-02-20 Paulo R. Pereira , Jose N. Oliveira

Real-life conjectures do not come with instructions saying whether they they should be proven or, instead, refuted. Yet, as we now know, in either case the final argument produced had better be not just convincing but actually verifiable in…

Computers and Society · Computer Science 2015-07-21 João Marcos

In order to work with mathematical content in computer systems, it is necessary to represent it in formal languages. Ideally, these are supported by tools that verify the correctness of the content, allow computing with it, and produce…

Logic in Computer Science · Computer Science 2020-05-27 Cezary Kaliszyk , Florian Rabe

Implementing a complex concept as an executable model in a strongly typed, purely functional language hits a sweet spot between mere simulation and formal specification. For research and education it is often desirable to enrich the…

Programming Languages · Computer Science 2020-08-31 Baltasar Trancón y Widemann , Markus Lepper

An introductory formal languages course exposes advanced undergraduate and early graduate students to automata theory, grammars, constructive proofs, computability, and decidability. Programming students find these topics to be challenging…

Formal Languages and Automata Theory · Computer Science 2014-12-17 Marco T. Morazán , Rosario Antunez

The ever-growing complexity of mathematical proofs makes their manual verification by mathematicians very cognitively demanding. Autoformalization seeks to address this by translating proofs written in natural language into a formal…

Computation and Language · Computer Science 2023-01-06 Garett Cunningham , Razvan C. Bunescu , David Juedes

We present a small, formal language for specifying the behavior of simple console I/O programs. The design is driven by the concrete application case of testing interactive Haskell programs written by students. Specifications are…

Programming Languages · Computer Science 2025-06-27 Oliver Westphal , Janis Voigtländer

Formal methods provide systematic and rigorous techniques for software development. We strongly believe that they must be taught in computer science curricula. In this paper we present the pedagogic rationale and the concrete implementation…

Logic in Computer Science · Computer Science 2021-11-17 Salwa Souaf , Frédéric Loulergue

Using the programming language Haskell, we introduce an implementation of propositional calculus, number theory, and a simple imperative language that can evaluate arithmetic and boolean expressions. Finally, we provide an implementation of…

Programming Languages · Computer Science 2021-12-28 Boro Sitnikovski

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…

Programming Languages · Computer Science 2022-07-27 Frederik Krogsdal Jacobsen , Jørgen Villadsen

We introduce a self-play framework for semantic equivalence in Haskell, utilizing formal verification to guide adversarial training between a generator and an evaluator. The framework leverages Liquid Haskell proofs for validating…

Computation and Language · Computer Science 2026-05-05 Antonio Valerio Miceli Barone , Poon Tsz Nok

Teaching college students how to write rigorous proofs is a critical objective in courses that introduce formal reasoning. Over the course of several years, we have developed a mechanically-checkable style of calculational reasoning that we…

Logic in Computer Science · Computer Science 2023-07-25 Andrew T. Walter , Ankit Kumar , Panagiotis Manolios

Web-based systems for assessment or homework are commonly used in many different domains. Several studies show that these systems can have positive effects on learning outcomes. Many research efforts also have made these systems quite…

Human-Computer Interaction · Computer Science 2018-11-07 Nils Schwinning , Michael Striewe , Till Massing , Christoph Hanck , Michael Goedicke

This paper presents Holbert: a work-in-progress pedagogical proof assistant and online textbook platform, aimed at the educational use-case, specifically for the teaching of programming language theory. Holbert allows proof exercises and…

Logic in Computer Science · Computer Science 2022-10-21 Liam O'Connor , Rayhana Amjad
‹ Prev 1 2 3 10 Next ›