Refinement Types for tla  +

Author(s):  
Stephan Merz ◽  
Hernán Vanzetto
Keyword(s):  
2013 ◽  
Vol 48 (6) ◽  
pp. 73-84
Author(s):  
Colin S. Gordon ◽  
Michael D. Ernst ◽  
Dan Grossman
Keyword(s):  

2016 ◽  
Vol 51 (6) ◽  
pp. 522-538 ◽  
Author(s):  
Nadia Polikarpova ◽  
Ivan Kuraj ◽  
Armando Solar-Lezama

2020 ◽  
Vol 53 (9) ◽  
pp. 147-160
Author(s):  
Ahmad Salim Al-Sibahi ◽  
Thomas P. Jensen ◽  
Aleksandar S. Dimovski ◽  
Andrzej Wąsowski
Keyword(s):  

2017 ◽  
Vol 52 (1) ◽  
pp. 775-788
Author(s):  
Nico Lehmann ◽  
Éric Tanter
Keyword(s):  

2015 ◽  
Vol 50 (1) ◽  
pp. 55-68 ◽  
Author(s):  
Gilles Barthe ◽  
Marco Gaboardi ◽  
Emilio Jesús Gallego Arias ◽  
Justin Hsu ◽  
Aaron Roth ◽  
...  

Author(s):  
PIERRE-EVARISTE DAGAND

AbstractFunctional programmers from all horizons strive to use, and sometimes abuse, their favorite type system in order to capture the invariants of their programs. A widely used tool in that trade consists in defining finely indexed datatypes. Operationally, these types classify the programmer's data, following the ML tradition. Logically, these types enforce the program invariants in a novel manner. This new programming pattern, by which one programs over inductive definitions to account for some invariants, lead to the development of a theory of ornaments (McBride, 2011 Ornamental Algebras, Algebraic Ornaments. Unpublished). However, ornaments originate as a dependently-typed object and may thus appear rather daunting to a functional programmer of the non-dependent kind. This article aims at presenting ornaments from first-principles and, in particular, to declutter their presentation from syntactic considerations. To do so, we shall give a sufficiently abstract model of indexed datatypes by means of many-sorted signatures. In this process, we formalize our intuition that an indexed datatype is the combination of a data-structure and a data-logic. Over this abstraction of datatypes, we shall recast the definition of ornaments, effectively giving a model of ornaments. Benefiting both from the operational and abstract nature of many-sorted signatures, ornaments should appear applicable and, one hopes, of interest beyond the type-theoretic circles, case in point being languages with generalized abstract datatypes or refinement types.


2021 ◽  
Vol 5 (ICFP) ◽  
pp. 1-29
Author(s):  
Richard A. Eisenberg ◽  
Guillaume Duboc ◽  
Stephanie Weirich ◽  
Daniel Lee

Despite the great success of inferring and programming with universal types, their dual—existential types—are much harder to work with. Existential types are useful in building abstract types, working with indexed types, and providing first-class support for refinement types. This paper, set in the context of Haskell, presents a bidirectional type-inference algorithm that infers where to introduce and eliminate existentials without any annotations in terms, along with an explicitly typed, type-safe core language usable as a compilation target. This approach is backward compatible. The key ingredient is to use strong existentials, which support (lazily) projecting out the encapsulated data, not weak existentials accessible only by pattern-matching.


Sign in / Sign up

Export Citation Format

Share Document