English
Related papers

Related papers: Tutorial implementation of Hoare logic in Haskell

200 papers

We discuss a programming language for real-time audio signal processing that is embedded in the functional language Haskell and uses the Low-Level Virtual Machine as back-end. With that framework we can code with the comfort and type safety…

Programming Languages · Computer Science 2015-03-17 Henning Thielemann

We describe here a simple application of rational trees to the implementation of an interpreter for a procedural language written in a logic programming language. This is possible in languages designed to support rational trees (such as…

Data Structures and Algorithms · Computer Science 2007-05-23 Manuel Carro

Type classes are one of Haskell's most popular features and extend its type system with ad-hoc polymorphism. Since their conception, there were useful features that could not be offered because of the desire to offer two correctness…

Programming Languages · Computer Science 2018-07-31 Thomas Winant , Dominique Devriese

Deductive verification of hybrid systems (HSs) increasingly attracts more attention in recent years because of its power and scalability, where a powerful specification logic for HSs is the cornerstone. Often, HSs are naturally modelled by…

Logic in Computer Science · Computer Science 2024-07-16 Naijun Zhan , Xiangyu Jin , Bohua Zhan , Shuling Wang , Dimitar Guelev

We present a statically typed embedding of relational programming (specifically a dialect of miniKanren with disequality constraints) in Haskell. Apart from handling types, our dialect extends standard relational combinator repertoire with…

Programming Languages · Computer Science 2024-09-02 Nikolai Kudasov , Artem Starikov

Dialectical logic is the logic of dialectical processes. The goal of dialectical logic is to reveal the dynamical notions inherent in logical computational systems. The fundamental notions of proposition and truth-value in standard logic…

Logic in Computer Science · Computer Science 2018-10-12 Robert E. Kent

Separation logic is a recent extension of Hoare logic for reasoning about programs with references to shared mutable data structures. In this paper, we provide a new interpretation of the logic for a programming language with higher types.…

Logic in Computer Science · Computer Science 2015-07-01 Lars Birkedal , Hongseok Yang

We give a relational and a weakest precondition semantics for "knowledge-based programs", i.e., programs that restrict observability of variables so as to richly express changes in the knowledge of agents who can or cannot observe said…

Logic in Computer Science · Computer Science 2022-07-07 Francesco Belardinelli , Ioana Boureanu , Vadim Malvone , Solofomampionona Fortunat Rajaona

The fact that Applicative type class allows one to express simple parsers in a variable-less combinatorial style is well appreciated among Haskell programmers for its conceptual simplicity, ease of use, and usefulness for semi-automated…

Programming Languages · Computer Science 2019-05-28 Jan Malakhovski , Sergei Soloviev

Haskell functions are defined as a series of clauses consisting of patterns that are matched against the arguments in the order of definition. In case an input is not matched by any of the clauses, an error occurs. Therefore it is desirable…

Programming Languages · Computer Science 2019-09-11 Pavel Kalvoda , Tom Sydney Kerckhove

We present a method for computing stable models of normal logic programs, i.e., logic programs extended with negation, in the presence of predicates with arbitrary terms. Such programs need not have a finite grounding, so traditional…

Logic in Computer Science · Computer Science 2017-09-05 Kyle Marple , Elmer Salazar , Gopal Gupta

Many quantum programs require circuits for addition, subtraction and logical operations. These circuits may be packaged within routines known as oracles. However, oracles can be tedious to code with current frameworks. To solve this problem…

Quantum Physics · Physics 2021-10-26 Ayush Tambde

Intrinsic definitional interpreters, definitional interpreters that operate on typing derivations instead of abstract syntax trees, have recently been studied as a promising methodology for defining dynamic semantics of programming…

Programming Languages · Computer Science 2026-05-06 Ke Sun , Di Wang , Yuyan Bao , Meng Wang , Dan Hao

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

The BHK interpretation interprets propositional statements as descriptions of the world of proofs; a world which is hierarchical in nature. It consists of different layers of the concept of proof; the proofs, the proofs about proofs and so…

Logic · Mathematics 2017-04-26 Amirhossein Akbar Tabatabai

Theoretical foundations of compositional reasoning about heaps in imperative programming languages are investigated. We introduce a novel concept of compositional symbolic memory and its relevant properties. We utilize these formal…

Programming Languages · Computer Science 2019-06-27 Yurii Kostyukov , Konstantin Batoev , Dmitry Mordvinov , Michael Kostitsyn , Aleksandr Misonizhnik

Ability to use definitions occurring in the code directly in equational reasoning is one of the key strengths of functional programming. This is impossible in the case of Haskell type class methods unless a particular instance type is…

Programming Languages · Computer Science 2020-07-02 Härmel Nestra

We introduce a new application for inductive logic programming: learning the semantics of programming languages from example evaluations. In this short paper, we explored a simplified task in this domain using the Metagol meta-interpretive…

Programming Languages · Computer Science 2019-07-23 Sándor Bartha , James Cheney

We show how to systematically implement an algorithm in any imperative or functional programming language. The method is based on the premise that it is easy to write down how an algorithm proceeds on a concrete input. This…

Software Engineering · Computer Science 2020-04-28 Maurice Chandoo

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