Logical Properties of CPS Transforms Deepak Garg Fall, 2004 Introduction • CPS = Continuation Passing Style • Studied to simulate cbv with cbn • We look at CPS transforms as prooftransformations • CPS transforms embed classical logic into intuitionistic logic Simply Typed -calculus • Terms: • Types (Logical Propositions): Evaluation and Typing Rules • Standard Typing Rules • Small step, call by value evaluation Abort (A) Operator What we have so far … • We have INTUITIONISTIC logic with ? Control (C) Operator What we have now … • We have CLASSICAL logic! • Why? Rule of double negation elimination. Summary -calculus + A $ Intuitionistic logic with ? -calculus + A + C $ Classical logic CPS Transforms CPS Transform: History • [1975] Plotkin. CPS studied formally. • [1986] Felleisen et al. Extended to control operators (call/cc, C and A). • [1993] Griffin. Typed CPS transforms. • [2003] Wadler. Duality with CPS transforms. CPS Transform: Properties • Translate terms, types and proofs • On terms: – No control (C) operator in transformed terms • On types: – No double negation elimination in transformed proofs – Translates classical into intuitionistic logic! CPS: Term Translation • -calculus • CPS translation • Each translated term expects a continuation CPS: Operational Interpretation • Explicitly formalize evaluation in terms of continuations To evaluate (M N) in the continuation k, evaluate M in the continuation that binds its input to m and evaluates N in the continuation that binds its input to n and evaluates (m n) in the continuation k. CPS: Type Translation • Types: • Translation for types: CPS: Logical Interpretation CPS: A-Operator • k is thrown away like E[ ] Soundness: A-Operator CPS: C-Operator • d is thrown away like E’[ ]. Soundness: C-Operator CPS: Logical Interpretation Summary of CPS CPS as an Embedding CPS as an Embedding CPS as an Embedding CPS as an Embedding Two more theorems (unrelated to proofterms): Doing it all in Twelf Representing Terms • Use HOAS Classical and Intuitionistic Terms • The previous definition is not enough. • We have to distinguish classical and intuitionistic logic • Introduce two types of terms: – Classical: termc – Intuitionistic: termi Classical and Intuitionistic Terms Representing the CPS Transform • Create a judgment: • • • Terms represented with HOAS No direct representation for variables How do we represent the following? More Trouble … The solution • We make the translation a hypothetical judgment • Recall: • We get: The solution Soundness Theorem Problems: Soundness Theorem Input Coverage Problem: Problem: Soundness Theorem Output External From worlds (soundnessblock) Make this an output? Can’t be changed (Needed for Induction) Soundness Theorem Solution • New Theorem: Soundness Theorem? • What have we shown? • What we need … Soundness Theorem? • • • • Are these theorems the same? To us they are Why? We know that given A, there is exactly one A’ such that A* = A’. • We never told Twelf this fact • So, in Twelf these are different theorems! Telling Twelf about Uniqueness • Can we tell Twelf that A* is unique? • Not directly! There is no uniqueness check • We can make an equality judgment Telling Twelf about Uniqueness • Now we prove a theorem A Typing-soundness Theorem • We also need the following theorem True Soundness • Using all our previous theorems, we can now prove the soundness with correct modes. Extensions • Can be extended to include conjunction and disjunction. • We can also use a call-by-name transform – Gives a translation from classical to minimal logic – Very similar to Kolmogrov’s double negation translation
© Copyright 2026 Paperzz