Implementing mathematics with the Nuprl proof development system
Implementing mathematics with the Nuprl proof development system
Architectural considerations for a new generation of protocols
SIGCOMM '90 Proceedings of the ACM symposium on Communications architectures & protocols
Synthesis: an efficient implementation of fundamental operating system services
Synthesis: an efficient implementation of fundamental operating system services
Introduction to HOL: a theorem proving environment for higher order logic
Introduction to HOL: a theorem proving environment for higher order logic
Increasing network throughput by integrating protocol layers
IEEE/ACM Transactions on Networking (TON)
A structured TCP in standard ML.
SIGCOMM '94 Proceedings of the conference on Communications architectures, protocols and applications
A formally verified algorithm for clock synchronization under a hybrid fault model
PODC '94 Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing
Temporal verification of reactive systems: safety
Temporal verification of reactive systems: safety
Optimistic incremental specialization: streamlining a commercial operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Horus: a flexible group communication system
Communications of the ACM
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
DPF: fast, flexible message demultiplexing using dynamic code generation
Conference proceedings on Applications, technologies, architectures, and protocols for computer communications
Generating efficient protocol code from an abstract specification
Conference proceedings on Applications, technologies, architectures, and protocols for computer communications
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Building adaptive systems using ensemble
Software—Practice & Experience - Special issue on multiprocessor operating systems
Building reliable, high-performance communication systems from components
Proceedings of the seventeenth ACM symposium on Operating systems principles
Inductive analysis of the Internet protocol TLS
ACM Transactions on Information and System Security (TISSEC)
Systematic Formal Verification for Fault-Tolerant Time-Triggered Algorithms
IEEE Transactions on Software Engineering
Formal Methods in System Design - Special issue on The First Federated Logic Conference (FLOC'96), part II
Model checking
The inductive approach to verifying cryptographic protocols
Journal of Computer Security
Distributed Algorithms
Symbolic Model Checking
Computer-Aided Reasoning: An Approach
Computer-Aided Reasoning: An Approach
Reliable Distributed Computing with the ISIS Toolkit
Reliable Distributed Computing with the ISIS Toolkit
A Logic for the Java Modeling Language JML
FASE '01 Proceedings of the 4th International Conference on Fundamental Approaches to Software Engineering
A Type-Theoretic Memory Model for Verification of Sequential Java Programs
WADT '99 Selected papers from the 14th International Workshop on Recent Trends in Algebraic Development Techniques
The LOOP Compiler for Java and JML
TACAS 2001 Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Verifying a Logic Synthesis Tool in Nuprl: A Case Study in Software Verification
CAV '92 Proceedings of the Fourth International Workshop on Computer Aided Verification
The Murphi Verification System
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
PVS: Combining Specification, Proof Checking, and Model Checking
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
Specware: Formal Support for Composing Software
MPC '95 Mathematics of Program Construction
Exploring Abstract Algebra in Constructive Type Theory
CADE-12 Proceedings of the 12th International Conference on Automated Deduction
A Proof Environment for the Development of Group Communication Systems
CADE-15 Proceedings of the 15th International Conference on Automated Deduction: Automated Deduction
The Nuprl Open Logical Environment
CADE-17 Proceedings of the 17th International Conference on Automated Deduction
JProver: Integrating Connection-Based Theorem Proving into Interactive Proof Assistants
IJCAR '01 Proceedings of the First International Joint Conference on Automated Reasoning
Importing Mathematics from HOL into Nuprl
TPHOLs '96 Proceedings of the 9th International Conference on Theorem Proving in Higher Order Logics
Planware ¾ Domain-Specific Synthesis of High-Performance Schedulers
ASE '98 Proceedings of the 13th IEEE international conference on Automated software engineering
Synthesis of schedulers for planned shutdowns of power plants
KBSE '96 Proceedings of The 11th Knowledge-Based Software Engineering Conference
Formal Reasoning about Communication Systems I: Embedding ML into Type Theory.
Formal Reasoning about Communication Systems I: Embedding ML into Type Theory.
Dependent Intersection: A New Way of Defining Records in Type Theory
Dependent Intersection: A New Way of Defining Records in Type Theory
Formally Verifying Hybrid Protocols with the Nuprl Logical Programming Environment
Formally Verifying Hybrid Protocols with the Nuprl Logical Programming Environment
Protocol Switching: Exploiting Meta-Properties
ICDCSW '01 Proceedings of the 21st International Conference on Distributed Computing Systems
The machine-assisted proof of programming language properties
The machine-assisted proof of programming language properties
The ensemble system
Formalizing reference types in nuprl
Formalizing reference types in nuprl
The metaprl logical programming environment
The metaprl logical programming environment
Verification of non-functional programs using interpretations in type theory
Journal of Functional Programming
Synthesis of efficient constraint-satisfaction programs
The Knowledge Engineering Review
Predicate transformers for infinite-state automata in NuPRL type theory
IW-FM'99 Proceedings of the 3rd Irish conference on Formal Methods
Proceedings of the 2005 conference on Applications, technologies, architectures, and protocols for computer communications
Verifying haskell programs using constructive type theory
Proceedings of the 2005 ACM SIGPLAN workshop on Haskell
Constructive Membership Predicates as Index Types
Electronic Notes in Theoretical Computer Science (ENTCS)
Adapting functional programs to higher order logic
Higher-Order and Symbolic Computation
Nuprl as logical framework for automating proofs in category theory
Logic and Program Semantics
LICS '12 Proceedings of the 2012 27th Annual IEEE/ACM Symposium on Logic in Computer Science
Hi-index | 0.00 |
Proof systems for expressive type theories provide a foundation for the verification and synthesis of programs. But despite their successful application to numerous programming problems there remains an issue with scalability. Are proof environments capable of reasoning about large software systems? Can the support they offer be useful in practice? In this article we answer this question by showing how the NUPRL proof development system and its rich type theory have contributed to the design of reliable, high-performance networks by synthesizing optimized code for application configurations of the ENSEMBLE group communication toolkit. We present a type-theoretical semantics of OCAML, the implementation language of ENSEMBLE, and tools for automatically importing system code into the NUPRL system. We describe reasoning strategies for generating verifiably correct fast-path optimizations of application configurations that substantially reduce end-to-end latency in ENSEMBLE. We also discuss briefly how to use NUPRL for checking configurations against specifications and for the design of reliable adaptive network protocols.