English
Related papers

Related papers: Constrained Type Families

200 papers

We introduce layers to modal type theories, which subsequently enables type theories for pattern matching on code in meta-programming and clean and straightforward semantics.

Logic in Computer Science · Computer Science 2024-03-01 Jason Z. S. Hu , Brigitte Pientka

We consider the application of Constraint Handling Rules (CHR) for the specification of type inference systems, such as that used by Haskell. Confluence of CHR guarantees that the answer provided by type inference is correct and consistent.…

Programming Languages · Computer Science 2020-02-19 Gregory J. Duck , Remy Haemmerle , Martin Sulzmann

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

Type classes in Haskell are used to implement ad-hoc polymorphism, i.e. a way to ensure both to the programmer and the compiler that a set of functions are defined for a specific data type. All instances of such type classes are expected to…

Programming Languages · Computer Science 2018-08-20 Andreas Arvidsson , Moa Johansson , Robin Touche

This paper presents \tdl, a typed feature-based representation language and inference system. Type definitions in \tdl\ consist of type and feature constraints over the boolean connectives. \tdl\ supports open- and closed-world reasoning…

cmp-lg · Computer Science 2019-08-15 Hans-Ulrich Krieger , Ulrich Schäfer

The expression problem describes a fundamental tradeoff between two types of extensibility: extending a type with new operations, such as by pattern matching on an algebraic data type in functional programming, and extending a type with new…

Programming Languages · Computer Science 2025-11-21 Bohdan Liesnikov , David Binder , Tim Süberkrüb

MetaML-style metaprogramming languages allow programmers to construct, manipulate and run code. In the presence of higher-order references for code, ensuring type safety is challenging, as free variables can escape their binders. In this…

Programming Languages · Computer Science 2026-05-19 Haoxuan Yin , Andrzej S. Murawski , C. -H. Luke Ong

The depth-bounded fragment of the pi-calculus is an expressive class of systems enjoying decidability of some important verification problems. Unfortunately membership of the fragment is undecidable. We propose a novel type system,…

Logic in Computer Science · Computer Science 2015-02-24 Emanuele D'Osualdo , Luke Ong

Brouwer's constructivist foundations of mathematics is based on an intuitively meaningful notion of computation shared by all mathematicians. Martin-L\"of's meaning explanations for constructive type theory define the concept of a type in…

Logic in Computer Science · Computer Science 2016-06-15 Carlo Angiuli , Robert Harper , Todd Wilson

Dependent types provide a lightweight and modular means to integrate programming and formal program verification. In particular, the types of programs written in dependently typed programming languages (Agda, Idris, F*, etc.) can be used to…

Logic in Computer Science · Computer Science 2017-10-10 Danel Ahman

This paper presents preliminary work on a general system for integrating dependent types into substructural type systems such as linear logic and linear type theory. Prior work on this front has generally managed to deliver type systems…

Logic in Computer Science · Computer Science 2024-01-30 C. B. Aberlé

Previous results on proving confluence for Constraint Handling Rules are extended in two ways in order to allow a larger and more realistic class of CHR programs to be considered confluent. Firstly, we introduce the relaxed notion of…

Logic in Computer Science · Computer Science 2016-11-22 Henning Christiansen , Maja H. Kirkeby

Linear and substructural types are powerful tools, but adding them to standard functional programming languages often means introducing extra annotations and typing machinery. We propose a lightweight substructural type system design that…

Programming Languages · Computer Science 2015-02-18 Edward Gan , Jesse A. Tov , Greg Morrisett

Linear type systems have a long and storied history, but not a clear path forward to integrate with existing languages such as OCaml or Haskell. In this paper, we study a linear type system designed with two crucial properties in mind:…

Programming Languages · Computer Science 2017-11-09 Jean-Philippe Bernardy , Mathieu Boespflug , Ryan R. Newton , Simon Peyton Jones , Arnaud Spiwack

Extensible variants improve the modularity and expressiveness of programming languages: they allow program functionality to be decomposed into independent blocks, and allow seamless extension of existing code with both new cases of existing…

Programming Languages · Computer Science 2016-12-28 J. Garrett Morris

Haskell provides type-class-bounded and parametric polymorphism as opposed to subtype polymorphism of object-oriented languages such as Java and OCaml. It is a contentious question whether Haskell 98 without extensions, or with common…

Programming Languages · Computer Science 2007-05-23 Oleg Kiselyov , Ralf Laemmel

Formal verification methods for concurrent systems cannot always be scaled-down or tailored in order to be applied on specific subsystems. We address such an issue in a MultiParty Session Types setting by devising a partial type assignment…

Logic in Computer Science · Computer Science 2024-10-02 Franco Barbanera , Mariangiola Dezani-Ciancaglini , Ugo de'Liguoro

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 present a soundness theorem for a dependent type theory with context constants with respect to an indexed category of (finite, abstract) simplical complexes. The point of interest for computer science is that this category can be seen to…

Logic · Mathematics 2020-07-08 Henrik Forssell , Håkon Robbestad Gylterud , David I. Spivak

Polymorphic variants are a useful feature of the OCaml language whose current definition and implementation rely on kinding constraints to simulate a subtyping relation via unification. This yields an awkward formalization and results in a…

Programming Languages · Computer Science 2016-07-06 Giuseppe Castagna , Tommaso Petrucciani , Kim Nguyen