Refinement types: A tutorial

R Jhala, N Vazou - Foundations and Trends® in …, 2021 - nowpublishers.com
Refinement types enrich a language's type system with logical predicates that circumscribe
the set of values described by the type. These refinement predicates provide software …

RefinedC: automating the foundational verification of C code with refined ownership types

M Sammler, R Lepigre, R Krebbers… - Proceedings of the …, 2021 - dl.acm.org
Given the central role that C continues to play in systems software, and the difficulty of
writing safe and correct C code, it remains a grand challenge to develop effective formal …

Reachability types: tracking aliasing and separation in higher-order functional programs

Y Bao, G Wei, O Bračevac, Y Jiang, Q He… - Proceedings of the ACM …, 2021 - dl.acm.org
Ownership type systems, based on the idea of enforcing unique access paths, have been
primarily focused on objects and top-level classes. However, existing models do not as …

[PDF][PDF] Soltype: Refinement types for solidity

B Tan, B Mariano, S Lahiri, I Dillig… - arXiv preprint arXiv …, 2021 - academia.edu
To evaluate the usefulness of our type system, we use Solid to prove arithmetic safety of a
total of 120 smart contracts. When used in its fully automated mode (ie, using Solid's type …

A Rich Type System for Quantum Programs

A Sundaram, R Rand, K Singhal, B Lackey - arXiv preprint arXiv …, 2021 - arxiv.org
We show that Gottesman's semantics (GROUP22, 1998) for Clifford circuits based on the
Heisenberg representation can be treated as a type system that can efficiently characterize a …

Fuel: A Compiler Framework for Safe Memory Management

D Racordon, A Coet, D Buchs - arXiv preprint arXiv:2106.12434, 2021 - arxiv.org
Flow-sensitive type systems offer an elegant way to ensure memory-safety in programming
languages. Unfortunately, their adoption in new or existing languages is often hindered by a …

[PDF][PDF] Bit-level type systems for assembly languages

F Mihola - 2021 - scholar.archive.org
Typsysteme helfen uns auf mehreren Wegen dabei, Software zu schreiben: Sie sind eine Art
Sicherheitsnetz und machen es schwieriger, aus Versehen unsichere oder fehlerhafte …