English
Related papers

Related papers: An Introduction to Liquid Haskell

200 papers

Elfe is an interactive system for teaching basic proof methods in discrete mathematics. The user inputs a mathematical text written in fair English which is converted to a special data-structure of first-order formulas. Certain proof…

Logic in Computer Science · Computer Science 2018-02-01 Maximilian Doré , Krysia Broda

Liquid crystal is a typical kind of soft matter that is intermediate between crystalline solids and isotropic fluids. The study of liquid crystals has made tremendous progress over the last four decades, which is of great importance on both…

Numerical Analysis · Mathematics 2021-04-07 Wei Wang , Lei Zhang , Pingwen Zhang

User defined recursive types are a fundamental feature of modern functional programming languages like Haskell, Clean, and the ML family of languages. Properties of programs defined by recursion on the structure of recursive types are…

Programming Languages · Computer Science 2013-12-11 James Caldwell

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

In this paper we present a new static data type inference algorithm for logic programming. Without the need of declaring types for predicates, our algorithm is able to automatically assign types to predicates which, in most cases,…

Programming Languages · Computer Science 2021-08-17 João Barbosa , Mário Florido , Vítor Santos Costa

In this paper, we provide a comprehensive, hands-on tutorial on how to apply deductive verification to programs written in OCaml. In particular, we show how one can use the GOSPEL specification language and the Cameleer tool to conduct…

Logic in Computer Science · Computer Science 2024-07-23 Mário Pereira

This article examines two approaches to verification, one based on using a logic for expressing properties of a system, and one based on showing the system equivalent to a simpler system that obviously has whatever property is of interest.…

Logic in Computer Science · Computer Science 2007-05-23 Riccardo Pucella

This is a brief review of liquid scintillators, an important technology for detection of ionizing radiation. We will first review the basic mechanisms of light production in most organic liquid scintillators. For most practical detector…

Instrumentation and Detectors · Physics 2024-08-06 Milind Vaman Diwan

Statically typed languages offer significant advantages, such as bug prevention, enhanced code quality, and reduced maintenance costs. However, these benefits often come at the expense of a steep learning curve and a slower development…

Human-Computer Interaction · Computer Science 2024-05-22 Shuai Fu , Tim Dwyer , Peter J. Stuckey , John Grundy

We delineate a methodology for the specification and verification of flow security properties expressible in the opacity framework. We propose a logic, OpacTL , for straightforwardly expressing such properties in systems that can be…

Cryptography and Security · Computer Science 2022-06-30 Chunyan Mu , David Clark

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

Liquid crystals are the prototype of the so-called soft condensed matter. In simple terms they are "structured liquids" that historically have received a lot of interest because they help to generate new concepts and knowledge in Physics,…

Soft Condensed Matter · Physics 2024-03-11 Humberto Híjar

This paper describes a tool suite for the ACL2 programming language which incorporates certain ideas from the Hindley-Milner paradigm of functional programming (as exemplified in popular languages like ML and Haskell), including a "typed"…

Logic in Computer Science · Computer Science 2014-06-09 Benjamin Selfridge , Eric Smith

Refinement Reflection turns your favorite programming language into a proof assistant by reflecting the code implementing a user-defined function into the function's (output) refinement type. As a consequence, at uses of the function, the…

Programming Languages · Computer Science 2016-10-18 Niki Vazou , Ranjit Jhala

We introduce a new methodology based on refinement for testing the functional correctness of hardware and low-level software. Our methodology overcomes several major drawbacks of the de facto testing methodologies used in industry: (1) it…

Logic in Computer Science · Computer Science 2017-03-17 Mitesh Jain , Panagiotis Manolios

We propose an amortized analysis that approximates the resource usage of a Haskell expression. Using the plugin API of GHC, we convert the Haskell code into a simplified representation called GHC Core. We then apply a type-based system…

Programming Languages · Computer Science 2019-08-20 Franz Siglmüller

Type soundness is an important property of modern programming languages. In this paper we explore the idea that "well-typed languages are sound": the idea that the appropriate typing discipline over language specifications guarantees that…

Programming Languages · Computer Science 2016-11-17 Matteo Cimini , Dale Miller , Jeremy G. Siek

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

Multi-stage programming is a proven technique that provides predictable performance characteristics by controlling code generation. We propose a core semantics for Typed Template Haskell, an extension of Haskell that supports multi staged…

Programming Languages · Computer Science 2021-12-08 Matthew Pickering , Andres Löh , Nicolas Wu

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