English
Related papers

Related papers: Occurrence Typing Modulo Theories

200 papers

Recommender systems are intrinsically tied to a reliability/coverage dilemma: The more reliable we desire the forecasts, the more conservative the decision will be and thus, the fewer items will be recommended. This causes a detriment to…

Information Retrieval · Computer Science 2024-05-22 Diego Pérez-López , Fernando Ortega , Ángel González-Prieto , Jorge Dueñas-Lerín

We introduce type annotations as a flexible typing mechanism for graph systems and discuss their advantages with respect to classical typing based on graph morphisms. In this approach the type system is incorporated with the graph and…

Software Engineering · Computer Science 2016-12-07 Paolo Bottoni , Andrew Fish , Francesco Parisi Presicce

A type assignment system for lambda-calculus enjoys the principal typing property if every typable term M has a special typing, called principal, from which all typings for M can be obtained via suitable operations. The existence of…

Logic in Computer Science · Computer Science 2026-03-05 Daniele Pautasso , Simona Ronchi Della Rocca

Python's typing system has evolved pragmatically into a powerful but theoretically fragmented system, with scattered specifications. This paper proposes a formalization to address this fragmentation. The central contribution is a formal…

Programming Languages · Computer Science 2025-09-17 Andrei Nacu , Dorel Lucanu

Native type systems are those in which type constructors are derived from term constructors, as well as the constructors of predicate logic and intuitionistic type theory. We present a method to construct native type systems for a broad…

Logic in Computer Science · Computer Science 2022-11-04 Christian Williams , Michael Stay

Dynamic languages are praised for their flexibility and expressiveness, but static analysis often yields many false positives and verification is cumbersome for lack of structure. Hence, unit testing is the prevalent incomplete method for…

Programming Languages · Computer Science 2015-02-06 Robert Jakob , Peter Thiemann

Term rewriting has a significant presence in various areas, not least in automated theorem proving where it is used as a proof technique. Many theorem provers employ specialised proof tactics for rewriting. This results in an interleaving…

Logic in Computer Science · Computer Science 2010-12-23 Issam Maamria , Michael Butler

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

We develop a dependent type theory that is based purely on inductive and coinductive types, and the corresponding recursion and corecursion principles. This results in a type theory with a small set of rules, while still being fairly…

Logic in Computer Science · Computer Science 2016-05-10 Henning Basold , Herman Geuvers

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

Dependently typed programming languages have become increasingly relevant in recent years. They have been adopted in industrial strength programming languages and have been extremely successful as the basis for theorem provers. There are…

Programming Languages · Computer Science 2024-04-09 Christophe Scholliers

In the language-theoretic approach to refinement verification, we check that the language of traces of an implementation all belong to the language of a specification. We consider the refinement verification problem for asynchronous…

Formal Languages and Automata Theory · Computer Science 2023-06-23 Pascal Baumann , Moses Ganardi , Rupak Majumdar , Ramanathan S. Thinniyam , Georg Zetzsche

When optimizing a thread in a concurrent program (either done manually or by the compiler), it must be guaranteed that the resulting thread is a refinement of the original thread. Most theories of valid optimizations are formulated in terms…

Programming Languages · Computer Science 2015-10-27 Daniel Poetzl , Daniel Kroening

Liquid Haskell's refinement-reflection feature augments the Haskell language with theorem proving capabilities, allowing programmers to retrofit their existing code with proofs. But many of these proofs require routine, boilerplate code…

Programming Languages · Computer Science 2017-08-09 Ryan Scott , Vikraman Choudhury , Ryan Newton , Niki Vazou , Ranjit Jhala

As smart contracts gain adoption in financial transactions, it becomes increasingly important to ensure that they are free of bugs and security vulnerabilities. Of particular relevance in this context are arithmetic overflow bugs, as…

Programming Languages · Computer Science 2021-12-22 Bryan Tan , Benjamin Mariano , Shuvendu K. Lahiri , Isil Dillig , Yu Feng

We present a type-theoretic framework for reasoning about incorrectness in functional programs that interact with effectful, opaque library APIs. Our approach centers on traces -- temporally-ordered sequences of library API invocations --…

Programming Languages · Computer Science 2025-09-03 Yongwei Yuan , Zhe Zhou , Julia Belyakova , Benjamin Delaware , Suresh Jagannathan

Context. An extension method is a method declared in a package other than the package of its host class. Thanks to extension methods, developers can adapt to their needs classes they do not own: adding methods to core classes is a typical…

Programming Languages · Computer Science 2017-08-08 Guillermo Polito , Camille Teruel , Stéphane Ducasse , Luc Fabresse

Event-B is a refinement-based formal method that has been shown to be useful in developing concurrent and distributed programs. Large models can be decomposed into sub-models that can be refined semi-independently and executed in parallel.…

Logic in Computer Science · Computer Science 2011-06-22 Pontus Boström , Fredrik Degerlund , Kaisa Sere , Marina Waldén

The choice of how to represent an abstract type can have a major impact on the performance of a program, yet mainstream compilers cannot perform optimizations at such a high level. When dealing with optimizations of data type…

Programming Languages · Computer Science 2024-09-13 Viktor Palmkvist , Anders Ågren Thuné , Elias Castegren , David Broman

Dynamic languages, such as Python and Javascript, trade static typing for developer flexibility and productivity. Lack of static typing can cause run-time exceptions and is a major factor for weak IDE support. To alleviate these issues, PEP…

Machine Learning · Computer Science 2022-01-20 Amir M. Mir , Evaldas Latoskinas , Sebastian Proksch , Georgios Gousios