English
Related papers

Related papers: Elaborating Intersection and Union Types

200 papers

Unified Modeling Language (UML) is widely used for modeling IT systems but lacks formal rules to ensure consistency across diagrams. This often leads to inconsistencies when shared elements are interpreted differently. To address this,…

Software Engineering · Computer Science 2026-03-27 Stanislaw Jerzy Niepostyn , Wiktor Bohdan Daszczuk

The subtyping rules for intersection types traditionally employ a transitivity rule (Barendregt et al. 1983), which means that subtyping does not satisfy the subformula property, making it more difficult to use in filter models for compiler…

Programming Languages · Computer Science 2020-05-19 Jeremy G. Siek

We consider a general prescriptive type system with parametric polymorphism and subtyping for logic programs. The property of subject reduction expresses the consistency of the type system w.r.t. the execution model: if a program is…

Logic in Computer Science · Computer Science 2009-09-25 Jan-Georg Smaus , Francois Fages , Pierre Deransart

Refinement types are a well-studied manner of performing in-depth analysis on functional programs. The dependency pair method is a very powerful method used to prove termination of rewrite systems; however its extension to higher order…

Logic in Computer Science · Computer Science 2011-01-25 Cody Roux

How can we compress language models without sacrificing accuracy? The number of compression algorithms for language models is rapidly growing to benefit from remarkable advances of recent language models without side effects due to the…

Computation and Language · Computer Science 2024-01-30 Seungcheol Park , Jaehyeon Choi , Sojin Lee , U Kang

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

In this paper we examine a number of term rewriting system for integer number representations, building further upon the datatype defining systems described in [2]. In particular, we look at automated methods for proving confluence and…

Logic in Computer Science · Computer Science 2016-07-18 Boas Kluiving , Wijnand van Woerkom

We describe a type system with mixed linear and non-linear recursive types called LNL-FPC (the linear/non-linear fixpoint calculus). The type system supports linear typing, which enhances the safety properties of programs, but also supports…

Programming Languages · Computer Science 2023-06-22 Bert Lindenhovius , Michael Mislove , Vladimir Zamdzhiev

Semantic subtyping is an approach to define subtyping relations for type systems featuring union and intersection type connectives. It has been studied only for strict languages, and it is unsound for non-strict semantics. In this work, we…

Programming Languages · Computer Science 2021-11-15 Tommaso Petrucciani , Giuseppe Castagna , Davide Ancona , Elena Zucca

A software element defined in one place is typically used in many places. When it is changed, all its occurrences may need to be changed too, which can severely hinder software evolution. This has led to the support of encapsulation in…

Software Engineering · Computer Science 2013-12-11 Mikal Ziane , Mel Ó Cinnéide

Integrating architectural elements with a modern programming language is essential to ensure a smooth combination of architectural design and programming. In this position statement, we motivate a combination of architectural description…

Software Engineering · Computer Science 2014-09-09 Arne Haber , Jan Oliver Ringert , Bernhard Rumpe

We study the interaction of structural subtyping with parametric polymorphism and recursively defined type constructors. Although structural subtyping is undecidable in this setting, we describe a notion of parametricity for type…

Programming Languages · Computer Science 2023-10-30 Henry DeYoung , Andreia Mordido , Frank Pfenning , Ankush Das

The work presented in this thesis seeks to improve programmer productivity in the following ways: - by reducing the amount of code that has to be written to construct an application; - by increasing the reliability of the code written; and…

Programming Languages · Computer Science 2010-06-18 Graham Kirby

Getting polymorphism and effects such as mutation to live together in the same language is a tale worth telling, under the recurring refrain of copying vs. sharing. We add new stanzas to the tale, about the ordeal to generate code with…

Programming Languages · Computer Science 2017-02-09 Oleg Kiselyov

We provide a characterisation of strongly normalising terms of the lambda-mu-calculus by means of a type system that uses intersection and product types. The presence of the latter and a restricted use of the type omega enable us to…

Logic in Computer Science · Computer Science 2013-08-01 Steffen van Bakel , Franco Barbanera , Ugo de'Liguoro

We study the semantics of an untyped lambda-calculus equipped with operators representing read and write operations from and to a global store. We adopt the monadic approach to model side-effects and treat read and write as algebraic…

Logic in Computer Science · Computer Science 2025-09-03 Ugo de'Liguoro , Riccardo Treglia

Types are an important part of any modern programming language, but we often forget that the concept of type we understand nowadays is not the same it was perceived in the sixties. Moreover, we conflate the concept of "type" in programming…

Programming Languages · Computer Science 2017-03-30 Simone Martini

Ordered, linear, and other substructural type systems allow us to expose deep properties of programs at the syntactic level of types. In this paper, we develop a family of unary logical relations that allow us to prove consequences of…

Logic in Computer Science · Computer Science 2025-03-06 C. B. Aberlé , Chris Martens , Frank Pfenning

Gradually-typed programming languages permit the incremental addition of static types to untyped programs. To remain sound, languages insert run-time checks at the boundaries between typed and untyped code. Unfortunately, performance…

Programming Languages · Computer Science 2020-10-13 Cameron Moy , Phúc C. Nguyen , Sam Tobin-Hochstadt , David Van Horn

We propose a novel method for inferring refinement types of higher-order functional programs. The main advantage of the proposed method is that it can infer maximally preferred (i.e., Pareto optimal) refinement types with respect to a…

Programming Languages · Computer Science 2015-05-19 Kodai Hashimoto , Hiroshi Unno