Manifest Contracts with Intersection Types

August 08, 2019 Β· Declared Dead Β· πŸ› Asian Symposium on Programming Languages and Systems

πŸ‘» CAUSE OF DEATH: Ghosted
No code link whatsoever

"No code URL or promise found in abstract"

Evidence collected by the PWNC Scanner

Authors Yuki Nishida, Atsushi Igarashi arXiv ID 1908.03010 Category cs.PL: Programming Languages Citations 1 Venue Asian Symposium on Programming Languages and Systems Last Checked 4 months ago
Abstract
We present a manifest contract system PCFv$Ξ”$H with intersection types. A manifest contract system is a typed functional calculus in which software contracts are integrated into a refinement type system and consistency of contracts is checked by combination of compile- and run-time type checking. Intersection types naturally arise when a contract is expressed by a conjunction of smaller contracts. Run-time contract checking for conjunctive higher-order contracts in an untyped language has been studied but our typed setting poses an additional challenge due to the fact that an expression of an intersection type $Ο„_1 \wedge Ο„_2$ may have to perform different run-time checking whether it is used as $Ο„_1$ or $Ο„_2$. We build PCFv$Ξ”$H on top of the $Ξ”$-calculus, a Church-style intersection type system by Liquori and Stolze. In the $Ξ”$-calculus, a canonical expression of an intersection type is a strong pair, whose elements are the same expressions except for type annotations. To address the challenge above, we relax strong pairs so that expressions in a pair are the same except for type annotations and casts, which are a construct for run-time checking. We give a formal definition of PCFv$Ξ”$H and show its basic properties as a manifest contract system: preservation, progress, and value inversion. Furthermore, we show that run-time checking does not affect essential computation.
Community shame:
Not yet rated
Community Contributions

Found the code? Know the venue? Think something is wrong? Let us know!

πŸ“œ Similar Papers

In the same crypt β€” Programming Languages

Died the same way β€” πŸ‘» Ghosted