Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- ArticleOctober 2024
Building a Correct-by-Construction Type Checker for a Dependently Typed Core Language
AbstractDependently typed languages allow us to state a program’s expected properties and automatically check that they are satisfied at compile time. Yet the implementations of these languages are themselves just software, so can we really trust them? ...
A Dependent Nominal Physical Type System for Static Analysis of Memory in Low Level Code
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 272, Pages 30–59https://doi.org/10.1145/3689712We tackle the problem of checking non-proof-carrying code, i.e. automatically proving type-safety (implying in our type system spatial memory safety) of low-level C code or of machine code resulting from its compilation without modification. This ...
- research-articleAugust 2024
Normalizable Types
TyDe 2024: Proceedings of the 9th ACM SIGPLAN International Workshop on Type-Driven DevelopmentPages 29–36https://doi.org/10.1145/3678000.3678203In dependently typed programming languages, quotients can be introduced in two different ways: elements of each equivalence class can be made either propositionally equal, at the cost of having to manipulate those equality proofs, or definitionally equal,...
- ArticleApril 2024
-
- short-paperOctober 2023
Partial Gradual Dependent Type Theory
SPLASH 2023: Companion Proceedings of the 2023 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for HumanityPages 22–24https://doi.org/10.1145/3618305.3623594Gradual typing supports imprecise types in the type system, allowing incremental migration from untyped code to typed in the same language. Through the gradual typing approach, our ongoing work proposes a new theory based on the Martin-Löf type theory ...
- ArticleSeptember 2023
- research-articleJune 2024
What's in a Bag?: An “Application Proving Interface” for Finite Bags and its Implementation
IFL '23: Proceedings of the 35th Symposium on Implementation and Application of Functional LanguagesArticle No.: 2, Pages 1–13https://doi.org/10.1145/3652561.3652563Bags are ubiquitous in program verification. They are the means of choice when we want to express that a collection of elements is a rearrangement of another collection. We are working towards an “application proving interface” (API) for finite bags ...
- ArticleSeptember 2022
Graded Rings in Lean’s Dependent Type Theory
AbstractIn principle, dependent type theory should provide an ideal foundation for formalizing graded rings, where each grade can be of a different type. However, the power of these foundations leaves a plethora of choices for how to proceed with such a ...
- research-articleSeptember 2022
Reasonable Agda is correct Haskell: writing verified Haskell using agda2hs
Haskell 2022: Proceedings of the 15th ACM SIGPLAN International Haskell SymposiumPages 108–122https://doi.org/10.1145/3546189.3549920Modern dependently typed languages such as Agda can be used to statically enforce the correctness of programs. However, they still lack the large ecosystem of a more popular language like Haskell. To combine the strength of both approaches, we ...
Practical generic programming over a universe of native datatypes
Proceedings of the ACM on Programming Languages (PACMPL), Volume 6, Issue ICFPArticle No.: 113, Pages 625–649https://doi.org/10.1145/3547644Datatype-generic programming makes it possible to define a construction once and apply it to a large class of datatypes.
It is often used to avoid code duplication in languages that encourage the definition of custom datatypes, in particular state-of-...
- ArticleJune 2022
Simple Dependent Types for OSTRICH
AbstractThe demand to develop more applications and in a faster way has been increasing over the years. Even non-experienced developers are jumping into the market thanks to low-code development platforms such as OutSystems. OSTRICH, a type-safe rich ...
- research-articleJanuary 2021
Intrinsically typed compilation with nameless labels
Proceedings of the ACM on Programming Languages (PACMPL), Volume 5, Issue POPLArticle No.: 22, Pages 1–28https://doi.org/10.1145/3434303To avoid compilation errors it is desirable to verify that a compiler is type correct—i.e., given well-typed source code, it always outputs well-typed target code. This can be done intrinsically by implementing it as a function in a dependently typed ...
- research-articleOctober 2020
An Intrinsically-Typed Solution for the List-Machine Benchmark
SBLP '20: Proceedings of the 24th Brazilian Symposium on Context-Oriented Programming and Advanced ModularityPages 1–8https://doi.org/10.1145/3427081.3427082Formal models are important tools in the programming language research community. However, such models are full of intricacies and, due to that, they are subject to subtle errors. Such failures motivated the usage of tools to ensure the correctness of ...
- ArticleSeptember 2020
slepice: Towards a Verified Implementation of Type Theory in Type Theory
Logic-Based Program Synthesis and TransformationPages 133–150https://doi.org/10.1007/978-3-030-68446-4_7AbstractDependent types have proven a useful technique for development of verified software. Despite the existence of many systems based in dependent type theory, mostly interactive theorem provers but also programming languages, there is no system that ...
- ArticleJuly 2020
Constructive Hybrid Games
AbstractHybrid games combine discrete, continuous, and adversarial dynamics. Differential game logic ([inline-graphic not available: see fulltext]) enables proving (classical) existence of winning strategies. We introduce constructive differential game ...
- research-articleJanuary 2020
Extending Liquid Types to Arrays
ACM Transactions on Computational Logic (TOCL), Volume 21, Issue 2Article No.: 13, Pages 1–41https://doi.org/10.1145/3362740A liquid type is an ordinary Hindley-Milner type annotated with a logical predicate that states the properties satisfied by the elements of that type. Liquid types are a powerful tool for program verification, as programmers can use them to specify pre- ...
- research-articleAugust 2019
Generic level polymorphic n-ary functions
TyDe 2019: Proceedings of the 4th ACM SIGPLAN International Workshop on Type-Driven DevelopmentPages 14–26https://doi.org/10.1145/3331554.3342604Agda's standard library struggles in various places with n-ary functions and relations. It introduces congruence and substitution operators for functions of arities one and two, and provides users with convenient combinators for manipulating indexed ...
- research-articleAugust 2019
Position-dependent arrays and their application for high performance code generation
FHPNC 2019: Proceedings of the 8th ACM SIGPLAN International Workshop on Functional High-Performance and Numerical ComputingPages 14–26https://doi.org/10.1145/3331553.3342614Modern parallel hardware promises unprecedented performance, for the gifted few experts who can program it correctly. Code generators from high-level languages provide an attractive alternative, promising to deliver high performance automatically.
...
- research-articleMarch 2019
A Classical Sequent Calculus with Dependent Types
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 41, Issue 2Article No.: 8, Pages 1–47https://doi.org/10.1145/3230625Dependent types are a key feature of the proof assistants based on the Curry-Howard isomorphism. It is well known that this correspondence can be extended to classical logic by enriching the language of proofs with control operators. However, they are ...