Learn More
For twenty years the Nuprl (" new pearl ") system has been used to develop software systems and formal theories of computational mathematics. It has also been used to explore and implement computational type theory (CTT) – a formal theory of computation closely related to Martin-Löf's intuitionistic type theory (ITT) and to the calculus of inductive(More)
The paper presents and evaluates Nysiad, 1 a system that implements a new technique for transforming a scalable distributed system or network protocol tolerant only of crash failures into one that tolerates arbitrary failures, including such failures as freeloading and malicious attacks. The technique assigns to each host a certain number of guard hosts,(More)
Working in a higher-order, abstract logic of events, we define event classes, a generalization of interfaces, and propagation rules that specify information flow between event classes. We propose a general definition of a component as a scheme, parameterized by a set of input classes, that defines a set of output classes and propagation rules. The(More)
As we see a growing variety of network and application behaviors, it becomes more important that protocols adapt to their surroundings. Building adaptive protocols is complicated, and therefore we have considered building hybrid protocols that switch between specialized protocols. In this paper, we show for which communication properties this is a correct(More)
We describe a generic switching protocol for the construction of hybrid protocols and prove it correct with the Nuprl proof development system. For this purpose we introduce the concept of meta-properties and use them to formally characterize communication properties that can be preserved by switching. We also identify switching in-variants that an(More)
—Fault-tolerant distributed systems often contain complex error handling code. Such code is hard to test or model-check because there are often too many possible failure scenarios to consider. As we will demonstrate in this paper, formal methods have evolved to a state in which it is possible to generate this code along with correctness guarantees. This(More)
This paper has two goals. The first is to present a formalization in Nuprl type theory of a very general methodology for system description, specification and verification. The method is especially suitable for describing distributed systems, and is based on a modification of the I/O automata of Lynch & Tuttle. By using infinite extendible records as the(More)