Abstract
Game Logic is an excellent setting to study proofs-about-programs via the interpretation of those proofs as programs, because constructive proofs for games correspond to effective winning strategies to follow in response to the opponent’s actions. We thus develop Constructive Game Logic, which extends Parikh’s Game Logic (GL) with constructivity and with first-order programs à la Pratt’s first-order dynamic logic (DL). Our major contributions include: 1. a novel realizability semantics capturing the adversarial dynamics of games, 2. a natural deduction calculus and operational semantics describing the computational meaning of strategies via proof-terms, and 3. theoretical results including soundness of the proof calculus w.r.t. realizability semantics, progress and preservation of the operational semantics of proofs, and Existential Properties on support of the extraction of computational artifacts from game proofs. Together, these results provide the most general account of a Curry-Howard interpretation for any program logic to date, and the first at all for Game Logic.
Highlights
Two of the most essential tools in theory of programming languages are program logics, such as Hoare calculi [29] and dynamic logics [45], and the Curry-Howard correspondence [17,31], wherein propositions correspond to types, proofs to functional programs, and proof term normalization to program evaluation
We show that Constructive Game Logic (CGL) proofs have two computational interpretations: the operational semantics interpret an arbitrary proof as a functional program which reduces to a normal-form proof, while realizability semantics interpret Angel strategies as programs which defeat arbitrary Demonic opponents
We validate the operational semantics on proof terms by proving that progress and preservation hold, and the CGL proof calculus is sound as a type system for the functional programming language of CGL proof terms
Summary
Two of the most essential tools in theory of programming languages are program logics, such as Hoare calculi [29] and dynamic logics [45], and the Curry-Howard correspondence [17,31], wherein propositions correspond to types, proofs to functional programs, and proof term normalization to program evaluation. The computational content of a proof is especially clear in GL, which generalizes DL to programmatic models of zero-sum, perfect-information games between two players, traditionally named Angel and Demon. While the proof calculus of a constructive logic is often taken as ground truth, we go a step further and develop a realizability semantics for CGL as programs performing winning strategies for game proofs, prove the calculus sound against it. The proof of our Strategy Property (Theorem 2) constitutes an (on-paper) algorithm that computes a player’s (effective) strategy from a proof that they can win a game This is the key test of constructivity for CGL, which would not be possible in classical GL. We have designed CGL to extend smoothly to hybrid games, where synthesis provides the correctness demanded by safety-critical systems and the synthesis of correct monitors of the external world [36]
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.