English
Related papers

Related papers: A Simple Soundness Proof for Dependent Object Type…

200 papers

The Dependent Object Types (DOT) calculus aims to formalize the Scala programming language with a focus on path-dependent types $-$ types such as $x.a_1\dots a_n.T$ that depend on the runtime value of a path $x.a_1\dots a_n$ to an object.…

Programming Languages · Computer Science 2019-08-15 Marianna Rapoport , Ondřej Lhoták

Scala's type system unifies ML modules, object-oriented, and functional programming. The Dependent Object Types (DOT) family of calculi has been proposed as a new foundation for Scala and similar languages. Unfortunately, it is not clear…

Programming Languages · Computer Science 2016-02-08 Tiark Rompf , Nada Amin

The Dependent Object Type (DOT) calculus was designed to put Scala on a sound basis, but while DOT relies on structural subtyping, Scala is a fundamentally class-based language. This impedance mismatch means that a proof of DOT soundness by…

Programming Languages · Computer Science 2023-07-13 Guillaume Martres

The Dependent Object Types (DOT) calculus aims to model the essence of Scala, with a focus on abstract type members, path-dependent types, and subtyping. Other Scala features could be defined by translation to DOT. Mutation is a fundamental…

Programming Languages · Computer Science 2016-11-24 Marianna Rapoport , Ondřej Lhoták

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

The Dependent Object Types (DOT) calculus formalizes key features of Scala. The D$_{<: }$ calculus is the core of DOT. To date, presentations of D$_{<: }$ have used declarative typing and subtyping rules, as opposed to algorithmic.…

Programming Languages · Computer Science 2017-09-29 Abel Nieto

The Dependent Object Types (DOT) calculus incorporates concepts from functional languages (e.g. modules) with traditional object-oriented features (e.g. objects, subtyping) to achieve greater expressivity (e.g. F-bounded polymorphism).…

Programming Languages · Computer Science 2025-10-27 Yu Xiang Zhu , Amos Robinson , Sophia Roshal , Timothy Mou , Julian Mackay , Jonathan Aldrich , Alex Potanin

Many programming languages in the OO tradition now support pattern matching in some form. Historical examples include Scala and Ceylon, with the more recent additions of Java, Kotlin, TypeScript, and Flow. But pattern matching on generic…

Programming Languages · Computer Science 2023-02-24 Aleksander Boruch-Gruszecki , Radosław Waśko , Yichen Xu , Lionel Parreaux

Aliasing is a known source of challenges in the context of imperative object-oriented languages, which have led to important advances in type systems for aliasing control. However, their large-scale adoption has turned out to be a…

Programming Languages · Computer Science 2016-07-26 Philipp Haller , Alexandre Loiko

We present a logic named L_{LF} whose intended use is to formalize properties of specifications developed in the dependently typed lambda calculus LF. The logic is parameterized by the LF signature that constitutes the specification. Atomic…

Logic in Computer Science · Computer Science 2022-04-12 Gopalan Nadathur , Mary Southern

We present a logically principled foundation for systematizing, in a way that works with any computational effect and evaluation order, SMT constraint generation seen in refinement type systems for functional programming languages. By…

Programming Languages · Computer Science 2023-08-21 Dimitrios J. Economou , Neel Krishnaswami , Jana Dunfield

The calculus of Dependent Object Types (DOT) has enabled a more principled and robust implementation of Scala, but its support for type-level computation has proven insufficient. As a remedy, we propose $F^\omega_{..}$, a rigorous…

Programming Languages · Computer Science 2021-07-06 Sandro Stucki , Paolo G. Giarrusso

Higher-order logic HOL offers a very simple syntax and semantics for representing and reasoning about typed data structures. But its type system lacks advanced features where types may depend on terms. Dependent type theory offers such a…

Logic in Computer Science · Computer Science 2023-05-25 Colin Rothgang , Florian Rabe , Christoph Benzmüller

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

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

In a recent paper, Herbelin developed a calculus dPA$^\omega$ in which constructive proofs for the axioms of countable and dependent choices could be derived via the encoding of a proof of countable universal quantification as a stream of…

Logic in Computer Science · Computer Science 2019-04-22 Étienne Miquey

Bidirectional typechecking, in which terms either synthesize a type or are checked against a known type, has become popular for its applicability to a variety of type systems, its error reporting, and its ease of implementation. Following…

Programming Languages · Computer Science 2020-09-22 Jana Dunfield , Neelakantan R. Krishnaswami

In this paper we use pre existing language support for type modifiers and object capabilities to enable a system for sound runtime verification of invariants. Our system guarantees that class invariants hold for all objects involved in…

Programming Languages · Computer Science 2019-02-28 Isaac Oscar Gariano , Marco Servetto , Alex Potanin

Reachability Logic is a formalism that can be used, among others, for expressing partial-correctness properties of transition systems. In this paper we present three proof systems for this formalism, all of which are sound and complete and…

Logic in Computer Science · Computer Science 2019-09-05 Vlad Rusu , David Nowak

Large Language Models (LLMs) excel at many tasks but often falter on complex problems that require structured, multi-step reasoning. We introduce the Diagram of Thought (DoT), a framework that enables a single LLM to build and navigate a…

Computation and Language · Computer Science 2026-05-15 Yifan Zhang , Yang Yuan , Andrew Chi-Chih Yao
‹ Prev 1 2 3 10 Next ›