PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Logic programming in the LF logical framework
Logical frameworks
Compiling with continuations
A framework for defining logics
Journal of the ACM (JACM)
Some Lambda Calculus and Type Theory Formalized
Journal of Automated Reasoning
Journal of Automated Reasoning
Higher-Order Abstract Syntax with Induction in Coq
LPAR '94 Proceedings of the 5th International Conference on Logic Programming and Automated Reasoning
A First-Order One-Pass CPS Transformation
FoSSaCS '02 Proceedings of the 5th International Conference on Foundations of Software Science and Computation Structures
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
Mechanically verifying correctness of CPS compilation
CATS '06 Proceedings of the 12th Computing: The Australasian Theroy Symposium - Volume 51
Implementing Typeful Program Transformations
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
Mechanical verification of refactorings
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Parametric higher-order abstract syntax for mechanized semantics
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
A verified compiler for an impure functional language
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Mechanized verification of CPS transformations
LPAR'07 Proceedings of the 14th international conference on Logic for programming, artificial intelligence and reasoning
Reasoning about constants in nominal isabelle or how to formalize the second fixed point theorem
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
Implementing Typeful Program Transformations
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
Mechanically verifying correctness of CPS compilation
CATS '06 Proceedings of the Twelfth Computing: The Australasian Theory Symposium - Volume 51
Hi-index | 0.01 |
We have verified several versions of the CPS transformation in Isabelle/HOL. In our verification we adopted first-order abstract syntax with variable names so that the formalization is close to that of hand-written proofs and compilers. To simplify treatment of fresh variables introduced by the transformation, we introduced abstract syntax parameter-ized with the type of variables. We also found that the standard formalization of α-equivalence was cumbersome for theorem provers and reformulated α-equivalence as a syntax-directed deductive system. To simplify verification of the CPS transformation on the language extended with let-expressions, it was essential to impose that variables are uniquely used in a program.