Constructive Galois Connections: Taming the Galois Connection Framework for Mechanized Metatheory
David Darais, David Van Horn

TL;DR
This paper introduces constructive Galois connections, a variant that enhances mechanization and reasoning in abstract interpretation and metatheory, bridging classical theory with proof assistants and enabling verified static analysis and gradual typing.
Contribution
It develops a constructive variant of Galois connections with monadic structure, facilitating mechanized reasoning and extraction of verified algorithms in dependently-typed languages.
Findings
Successfully mechanized abstract interpretation proofs
Enabled verified static analyzer design
Provided semantic basis for gradual typing
Abstract
Galois connections are a foundational tool for structuring abstraction in semantics and their use lies at the heart of the theory of abstract interpretation. Yet, mechanization of Galois connections remains limited to restricted modes of use, preventing their general application in mechanized metatheory and certified programming. This paper presents constructive Galois connections, a variant of Galois connections that is effective both on paper and in proof assistants; is complete with respect to a large subset of classical Galois connections; and enables more general reasoning principles, including the "calculational" style advocated by Cousot. To design constructive Galois connection we identify a restricted mode of use of classical ones which is both general and amenable to mechanization in dependently-typed functional programming languages. Crucial to our metatheory is 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
TopicsLogic, programming, and type systems · Formal Methods in Verification · Security and Verification in Computing
