ML programs can be considered as the terms of a constructive type theory such as Nuprl, and the rules of the theory become a programming logic for ML. We are using such an embedding of ML to support the Ensemble fault-tolerant group communication system with the Nuprl prover. The Ensemble system is a successor to the widely used Isis system built by Ken Birman's group at Cornell and now sold by Stratus Corporation. It was first written in C, under the name Horns, and re-coded in ML as part of an effort to make it more modular and reliable by building a “reference” implementation. The ML version consists of many small protocols that can be configured into stacks for processing messages. The reference version performed so well that it has become the production system.
This talk will discuss the ML embedding into Nuprl and the type theoretic semantics this provides. It will also discuss tactic support for programming in this logical environment and how tactics are being used to support the Ensemble work. Plans to use Nuprl-Light, a light weight version of the system as a partner to Ensemble will be mentioned as well.