Implementing mathematics with the Nuprl proof development system
Implementing mathematics with the Nuprl proof development system
Partial objects in type theory
Partial objects in type theory
Equality in lazy computation systems
Proceedings of the Fourth Annual Symposium on Logic in computer science
Computational foundations of basic recursive function theory
Theoretical Computer Science - A collection of contributions in honour of Corrado Bo¨hm on the occasion of his 70th birthday
Proving congruence of bisimulation in functional programming languages
Information and Computation
ACM Transactions on Computer Systems (TOCS)
Recursive functions of symbolic expressions and their computation by machine, Part I
Communications of the ACM
TYPES '00 Selected papers from the International Workshop on Types for Proofs and Programs
Dependent Intersection: A New Way of Defining Records in Type Theory
LICS '03 Proceedings of the 18th Annual IEEE Symposium on Logic in Computer Science
A non-type-theoretic semantics for type-theoretic language
A non-type-theoretic semantics for type-theoretic language
Inductive definition in type theory
Inductive definition in type theory
Type-theoretic methodology for practical programming languages
Type-theoretic methodology for practical programming languages
The metaprl logical programming environment
The metaprl logical programming environment
Compiler verification: a bibliography
ACM SIGSOFT Software Engineering Notes
Interactive Theorem Proving and Program Development
Interactive Theorem Proving and Program Development
Type theoretical foundations for data structures, classes, and objects
Type theoretical foundations for data structures, classes, and objects
Formal certification of a compiler back-end or: programming a compiler with a proof assistant
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Implementing reflection in nuprl
Implementing reflection in nuprl
Electronic Notes in Theoretical Computer Science (ENTCS)
Component Specification Using Event Classes
CBSE '09 Proceedings of the 12th International Symposium on Component-Based Software Engineering
A verified compiler for an impure functional language
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Program extraction in simply-typed higher order logic
TYPES'02 Proceedings of the 2002 international conference on Types for proofs and programs
Formal verification of programs and their transformations
Formal verification of programs and their transformations
ShadowDB: a replicated database on a synthesized consensus core
HotDep'12 Proceedings of the Eighth USENIX conference on Hot Topics in System Dependability
A diversified and correct-by-construction broadcast service
ICNP '12 Proceedings of the 2012 20th IEEE International Conference on Network Protocols (ICNP)
Hi-index | 0.00 |
This paper extends the proof methods used by the Nuprl proof assistant to reason about the computational behavior of its untyped programs. We have implemented new methods to prove non-trivial bisimulations between programs and have successfully applied these methods to formally optimize distributed programs such as our synthesized and verified version of Paxos, a widely used protocol to achieve software based replication. We prove new results about the basic computational equality relation on terms, and we extend the theory of partial types as the basis for stating internal results about the computation system that were previously treated only in the meta theory of Nuprl. All the lemmas presented in this paper have been formally proved in Nuprl.