An Abstract Contract Theory for Programs with Procedures
Christian Lidstr\"om, Dilian Gurov (KTH Royal Institute of, Technology, Stockholm, Sweden)

TL;DR
This paper introduces an abstract contract theory for sequential programming with procedures, bridging the gap between meta-theories and practical contract use in software development, supported by denotational semantics.
Contribution
It presents a novel contract theory that models procedures as fundamental components, aligning with meta-theory axioms and integrating with Hoare logic for modular verification.
Findings
Contracts of procedures can be modeled within the framework.
The theory satisfies the axioms of the meta-theory.
Supports procedure-modular verification in Hoare logic.
Abstract
When developing complex software and systems, contracts provide a means for controlling the complexity by dividing the responsibilities among the components of the system in a hierarchical fashion. In specific application areas, dedicated contract theories formalise the notion of contract and the operations on contracts in a manner that supports best the development of systems in that area. At the other end, contract meta-theories attempt to provide a systematic view on the various contract theories by axiomatising their desired properties. However, there exists a noticeable gap between the most well-known contract meta-theory of Benveniste et al., which focuses on the design of embedded and cyber-physical systems, and the established way of using contracts when developing general software, following Meyer's design-by-contract methodology. At the core of this gap appears to be the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsMulti-Agent Systems and Negotiation · Logic, programming, and type systems · Advanced Software Engineering Methodologies
