English
Related papers

Related papers: Complete and Easy Bidirectional Typechecking for H…

200 papers

A long-standing shortcoming of statically typed functional languages is that type checking does not rule out pattern-matching failures (run-time match exceptions). Refinement types distinguish different values of datatypes; if a program…

Programming Languages · Computer Science 2020-09-22 Khurram A. Jafery , Jana Dunfield

Erlang's dynamic typing discipline can lead to runtime errors that persist even after process restarts. Some of these runtime errors could be prevented through static type checking. While Erlang provides a type specification language, the…

Programming Languages · Computer Science 2026-03-24 Albert Schimpf , Stefan Wehr , Annette Bieniusa

We previously developed a polymorphic type system and a type checker for a multithreaded lock-based polymorphic typed assembly language (MIL) that ensures that well-typed programs do not encounter race conditions. This paper extends such…

Programming Languages · Computer Science 2010-02-05 Vasco T. Vasconcelos , Francisco Martins , Tiago Cogumbreiro

We prove normalization for MTT, a general multimodal dependent type theory capable of expressing modal type theories for guarded recursion, internalized parametricity, and various other prototypical modal situations. We prove that deciding…

Logic in Computer Science · Computer Science 2026-03-25 Daniel Gratzer

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

We introduce a high-level language with Python-like syntax for string-to-string, polyregular, first-order definable transductions. This language features function calls, boolean variables, and nested for-loops. We devise and implement a…

Formal Languages and Automata Theory · Computer Science 2025-05-16 Aliaume Lopez , Rafał Stefański

We develop semantics and syntax for bicategorical type theory. Bicategorical type theory features contexts, types, terms, and directed reductions between terms. This type theory is naturally interpreted in a class of structured…

Logic in Computer Science · Computer Science 2023-10-13 Benedikt Ahrens , Paige Randall North , Niels van der Weide

System F, the polymorphic lambda calculus, features the principle of impredicativity: polymorphic types may be (explicitly) instantiated at other types, enabling many powerful idioms such as Church encoding and data abstraction.…

Programming Languages · Computer Science 2022-03-04 Henry Mercer , Cameron Ramsay , Neel Krishnaswami

We present a prescriptive type system with parametric polymorphism and subtyping for constraint logic programs. The aim of this type system is to detect programming errors statically. It introduces a type discipline for constraint logic…

Programming Languages · Computer Science 2009-09-29 Francois Fages , Emmanuel Coquery

Bilinear maps and their classifying tensor products are well-known in the theory of linear algebra, and their generalization to algebras of commutative monads is a classical result of monad theory. Motivated by constructions needed in…

Category Theory · Mathematics 2022-05-12 Tomáš Jakl , Dan Marsden , Nihil Shah

A class of models is presented, in the form of continuation monads polymorphic for first-order individuals, that is sound and complete for minimal intuitionistic predicate logic. The proofs of soundness and completeness are constructive and…

Logic · Mathematics 2014-11-04 Danko Ilik

Proof assistants are getting more widespread use in research and industry to provide certified and independently checkable guarantees about theories, designs, systems and implementations. However, proof assistant implementations themselves…

Programming Languages · Computer Science 2021-07-19 Matthieu Sozeau

Many different systems with explicit substitutions have been proposed to implement a large class of higher-order languages. Motivations and challenges that guided the development of such calculi in functional frameworks are surveyed in the…

Programming Languages · Computer Science 2015-07-01 Delia Kesner

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

When factorizing binary matrices, we often have to make a choice between using expensive combinatorial methods that retain the discrete nature of the data and using continuous methods that can be more efficient but destroy the discrete…

Discrete Mathematics · Computer Science 2016-10-07 Stefan Neumann , Rainer Gemulla , Pauli Miettinen

Test input generators are an important part of property-based testing (PBT) frameworks, and a key expectation is that they be capable of producing all acceptable elements that satisfy both the function's input type and the…

Programming Languages · Computer Science 2025-12-09 Zhe Zhou , Ashish Mishra , Benjamin Delaware , Suresh Jagannathan

Being an unsupervised machine learning and data mining technique, biclustering and its multimodal extensions are becoming popular tools for analysing object-attribute data in different domains. Apart from conventional clustering techniques,…

Artificial Intelligence · Computer Science 2017-02-20 Dmitry I. Ignatov , Bruce W. Watson

Software frequently converts data from one representation to another and vice versa. Naively specifying both conversion directions separately is error prone and introduces conceptual duplication. Instead, bidirectional programming…

Programming Languages · Computer Science 2019-02-20 Li-yao Xia , Dominic Orchard , Meng Wang

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

Dependent Object Types (DOT) is a calculus with path dependent types, intersection types, and object self-references, which serves as the core calculus of Scala 3. Although the calculus has been proven sound, it remains open whether type…

Programming Languages · Computer Science 2020-05-15 Jason Hu , Ondřej Lhoták