Automatically Verifying Representation Invariants of Functional Programs Using Symbolic Finite Automata
Symbolic finite automata can be used to succinctly and precisely capture fine-grained temporal and data-dependent histories of interactions between functional clients and stateful libraries, enabling automated verification of representation invariants.