A HAT Trick: Automatically Verifying Representation Invariants Using Symbolic Finite Automata
Zhe Zhou, Qianchuan Ye, Benjamin Delaware, and Suresh Jagannathan

TL;DR
This paper introduces Hoare Automata Types (HATs), a novel type system that uses symbolic finite automata to automatically verify representation invariants of data structures interacting with stateful libraries, enabling precise and automated verification.
Contribution
The paper presents HATs, integrating symbolic finite automata into a refinement type system for automatic verification of data structure invariants involving stateful library interactions.
Findings
Efficient bidirectional type checking algorithm for HATs.
Successful verification of complex OCaml data structures.
Feasibility demonstrated through extensive experimental results.
Abstract
Functional programs typically interact with stateful libraries that hide state behind typed abstractions. One particularly important class of applications are data structure implementations that rely on such libraries to provide a level of efficiency and scalability that may be otherwise difficult to achieve. However, because the specifications of the methods provided by these libraries are necessarily general and rarely specialized to the needs of any specific client, any required application-level invariants must often be expressed in terms of additional constraints on the (often) opaque state maintained by the library. In this paper, we consider the specification and verification of such representation invariants using symbolic finite automata (SFA). We show that SFAs can be used to succinctly and precisely capture fine-grained temporal and data-dependent histories of interactions…
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
TopicsNatural Language Processing Techniques · semigroups and automata theory · Formal Methods in Verification
