English
Related papers

Related papers: Full Iso-recursive Types

200 papers

Type classes are a popular tool for implementing generic algorithms and data structures without loss of efficiency, bridging the gap between parametric and ad-hoc polymorphism. Since their initial development in Haskell, they now feature…

Programming Languages · Computer Science 2025-03-03 Dimi Racordon , Eugene Flesselle , Cao Nguyen Pham

Side effects are a core part of practical programming. However, they are often hard to reason about, particularly in a concurrent setting. We propose a foundation for reasoning about concurrent side effects using sessions. Primarily, we…

Programming Languages · Computer Science 2016-02-12 Dominic Orchard , Nobuko Yoshida

We explore recursive programming with extensible data types. Row types make the structure of data types first class, and can express a variety of type system features including record subtyping and combination of case branches. Our goal is…

Programming Languages · Computer Science 2025-07-23 Alex Hubers , Apoorv Ingle , Andrew Marmaduke , J. Garrett Morris

Guided by Tarksi's fixpoint theorem in order theory, we show how to derive monotone recursive types with constant-time roll and unroll operations within Cedille, an impredicative, constructive, and logically consistent pure typed lambda…

Programming Languages · Computer Science 2023-06-22 Christopher Jenkins , Aaron Stump

The elementary affine lambda-calculus was introduced as a polyvalent setting for implicit computational complexity, allowing for characterizations of polynomial time and hyperexponential time predicates. But these results rely on type…

Logic in Computer Science · Computer Science 2019-08-15 Lê Thành Dũng Nguyen

Normal-form bisimilarity is a simple, easy-to-use behavioral equivalence that relates terms in $\lambda$-calculi by decomposing their normal forms into bisimilar subterms. Moreover, it typically allows for powerful up-to techniques, such as…

Logic in Computer Science · Computer Science 2023-06-22 Dariusz Biernacki , Serguei Lenglet , Piotr Polesiuk

In the impredicative type theory of System F ({\lambda}2), it is possible to create inductive data types, such as natural numbers and lists. It is also possible to create coinductive data types such as streams. They work well in the sense…

Logic in Computer Science · Computer Science 2025-05-21 Steven Bronsveld , Herman Geuvers , Niels van der Weide

Recursive coalgebras provide an elegant categorical tool for modelling recursive algorithms and analysing their termination and correctness. By considering coalgebras over categories of suitably indexed families, the correctness of the…

Programming Languages · Computer Science 2026-04-20 Cass Alexandru , Henning Urbat , Thorsten Wißmann

We study an assignment system of intersection types for a lambda-calculus with records and a record-merge operator, where types are preserved both under subject reduction and expansion. The calculus is expressive enough to naturally…

Programming Languages · Computer Science 2015-03-18 Jan Bessai , Boris Düdder , Andrej Dudenhefner , Tzu-Chun Chen , Ugo de'Liguoro

A reliable technique for deductive program verification should be proven sound with respect to the semantics of the programming language. For each different language, the construction of a separate soundness proof is often a laborious…

Programming Languages · Computer Science 2021-08-05 Ximeng Li , Qianying Zhang , Guohui Wang , Zhiping Shi , Yong Guan

This paper proposes bimorphic recursion, which is restricted polymorphic recursion such that every recursive call in the body of a function definition has the same type. Bimorphic recursion allows us to assign two different types to a…

Logic in Computer Science · Computer Science 2011-06-08 Makoto Tatsuta , Ferruccio Damiani

Behavioural type systems ensure more than the usual safety guarantees of static analysis. They are based on the idea of "types-as-processes", providing dedicated type algebras for particular properties, ranging from protocol compatibility…

Programming Languages · Computer Science 2014-08-08 Simon J. Gay , Nils Gesbert , António Ravara

The set of pure terms which are typable in the $\lambda$$\Pi$-calculus in a given context is not recursive. So there is no general type inference algorithm for the programming language Elf and, in some cases, some type information has to be…

Logic in Computer Science · Computer Science 2023-06-14 Gilles Dowek

Guarded recursion is a powerful modal approach to recursion that can be seen as an abstract form of step-indexing. It is currently used extensively in separation logic to model programming languages with advanced features by solving domain…

Logic in Computer Science · Computer Science 2022-06-06 Magnus Baunsgaard Kristensen , Rasmus Ejlers Møgelberg , Andrea Vezzosi

One of the aims of Implicit Computational Complexity is the design of programming languages with bounded computational complexity; indeed, guaranteeing and certifying a limited resources usage is of central importance for various aspects of…

Logic in Computer Science · Computer Science 2014-10-24 Erika De Benedetti , Simona Ronchi Della Rocca

The Higher-Order $\Psi$-calculus framework (HO$\Psi$) is a generalisation of many first- and higher-order extensions of the $\pi$-calculus. It was proposed by Parrow et al. who showed that higher-order calculi such as HO$\pi$ and CHOCS can…

Logic in Computer Science · Computer Science 2022-09-07 Alex Rønning Bendixen , Bjarke Bredow Bojesen , Hans Hüttel , Stian Lybech

We introduce a type and effect system, for an imperative object calculus, which infers "sharing" possibly introduced by the evaluation of an expression, represented as an equivalence relation among its free variables. This direct…

Programming Languages · Computer Science 2018-08-03 Paola Giannini , Tim Richter , Marco Servetto , Elena Zucca

We show how to apply forward and reverse mode Combinatory Homomorphic Automatic Differentiation (CHAD) to total functional programming languages with expressive type systems featuring the combination of - tuple types; - sum types; -…

Programming Languages · Computer Science 2023-11-13 Fernando Lucatelli Nunes , Matthijs Vákár

We describe a type system for the linear-algebraic lambda-calculus. The type system accounts for the part of the language emulating linear operators and vectors, i.e. it is able to statically describe the linear combinations of terms…

Logic in Computer Science · Computer Science 2012-08-01 Pablo Arrighi , Alejandro Díaz-Caro , Benoît Valiron

This paper is concerned with the expressivity and denotational semantics of a functional higher-order reversible programming language based on Theseus. In this language, pattern-matching is used to ensure the reversibility of functions. We…

Logic in Computer Science · Computer Science 2024-10-10 Kostia Chardonnet , Louis Lemonnier , Benoît Valiron