Corpus ID: 49315786

# Reasoning about Polymorphic Manifest Contracts

@article{Sekiyama2018ReasoningAP,
author={Taro Sekiyama and Atsushi Igarashi},
journal={ArXiv},
year={2018},
volume={abs/1806.07041}
}
• Published 2018
• Computer Science
• ArXiv
Manifest contract calculi, which integrate cast-based dynamic contract checking and refinement type systems, have been studied as foundations for hybrid contract checking. In this article, we study techniques to reasoning about a polymorphic manifest contract calculus, including a few program transformations related to static contract verification. We first define a polymorphic manifest contract calculus $\mathrm{F}_{H}$, which is much simpler than a previously studied one with delayed… Expand

#### References

SHOWING 1-10 OF 43 REFERENCES
Stateful manifest contracts
• Computer Science
• POPL 2017
• 2017
It is shown that dynamic contract checking in the calculus is consistent with static typing in the sense that the final result obtained without dynamic contract violations satisfies contracts in its static type, which means that the state after stateful computations satisfies their postconditions. Expand
Polymorphic Manifest Contracts, Revised and Resolved
• Computer Science
• ACM Trans. Program. Lang. Syst.
• 2017
This calculus is the first polymorphic manifest calculus with parametricity, depending on no conjectures—it resolves the issues in prior calculi with delayed substitution on casts, and establishes fundamental properties including type soundness and relationalParametricity. Expand
Polymorphic Contracts
• Computer Science
• ESOP
• 2011
This work defines FH, a polymorphic calculus with manifest contracts, and establishes fundamental properties including type soundness and relational parametricity, and develops the metatheory of contracts in a completely syntactic fashion. Expand
Manifest Contracts for Datatypes
• Computer Science
• POPL 2015
• 2015
A syntactic translation from refinement on type constructors to equivalent refinements on data constructors and dynamically checked casts between different but compatible datatypes such as int list and pos_list are proposed. Expand
Soft contract verification
• Computer Science
• ICFP 2014
• 2014
This work presents soft contract verification, which aims to statically prove either complete or partial contract correctness of components, written in an untyped, higher-order language with first-class contracts. Expand
Manifest contracts
• Computer Science
• 2013
This dissertation develops so-called manifest contract systems which integrate more coherently in the type system, and relates them to Findler-and-Felleisen-style latent contracts, and extends a manifest system with type abstraction and relational parametricity. Expand
Contracts for higher-order functions
• Computer Science
• ICFP '02
• 2002
This paper introduces λcon, a typed lambda calculus with assertions for higher-order functions, which models the assertion monitoring system that is employed in DrScheme and establishes basic properties of the model (type soundness, etc.). Expand
Relational Reasoning about Functions and Nondeterminism
• Computer Science
• 1999
A uniform, relational proof style for operational arguments about program equivalences is explored, improves and facilitates many previously given proofs, and it is used to establish new proof rules for reasoning about term contexts, recursion, and nondeterminism in higher-order programming languages. Expand
Step-Indexed Syntactic Logical Relations for Recursive and Quantified Types
We present a sound and complete proof technique, based on syntactic logical relations, for showing contextual equivalence of expressions in a λ-calculus with recursive types and impredicativeExpand
Lazy Contract Checking for Immutable Data Structures
• Computer Science
• IFL
• 2007
This paper explores the idea of adding a small, controlled amount of laziness to contract checkers so that the contracts on a data structure are only checked as the program inspects the data structure, and proposes an extension to the implementation that admits more expressive contracts by loosening the strict asymptotic guarantees and only preserving the amortized asymPTotic complexity. Expand