Results 1 
7 of
7
Formal Verification of Probabilistic Algorithms
, 2002
"... This thesis shows how probabilistic algorithms can be formally verified using a mechanical theorem prover. We begin with an extensive foundational development of probability, creating a higherorder logic formalization of mathematical measure theory. This allows the definition of the probability spac ..."
Abstract

Cited by 37 (3 self)
 Add to MetaCart
This thesis shows how probabilistic algorithms can be formally verified using a mechanical theorem prover. We begin with an extensive foundational development of probability, creating a higherorder logic formalization of mathematical measure theory. This allows the definition of the probability space we use to model a random bit generator, which informally is a stream of coinflips, or technically an infinite sequence of IID Bernoulli ( 1) random variables. 2 Probabilistic programs are modelled using the statetransformer monad familiar from functional programming, where the random bit generator is passed around in the computation. Functions remove random bits from the generator to perform their calculation, and then pass back the changed random bit generator with the result. Our probability space modelling the random bit generator allows us to give precise probabilistic specifications of such programs, and then verify them in the theorem prover. We also develop technical support designed to expedite verification: probabilistic quantifiers; a compositional property subsuming measurability and independence; a probabilistic while loop together with a formal concept of termination with probability 1. We also introduce a technique for reducing properties of a probabilistic while loop to properties of programs that are guaranteed to terminate: these can then be established using induction and standard methods of program correctness. We demonstrate the formal framework with some example probabilistic programs: sampling algorithms for four probability distributions; some optimal procedures for generating dice rolls from coin flips; the symmetric simple random walk. In addition, we verify the MillerRabin primality test, a wellknown and commercially used probabilistic algorithm. Our fundamental perspective allows us to define a version with strong properties, which we can execute in the logic to prove compositeness of numbers. 3 4
Finding Unity in Computational Logic
"... While logic was once developed to serve philosophers and mathematicians, it is increasingly serving the varied needs of computer scientists. In fact, recent decades have witnessed the creation of the new discipline of Computational Logic. While Computation Logic can claim involvement in many, divers ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
While logic was once developed to serve philosophers and mathematicians, it is increasingly serving the varied needs of computer scientists. In fact, recent decades have witnessed the creation of the new discipline of Computational Logic. While Computation Logic can claim involvement in many, diverse areas of computing, little has been done to systematize the foundations of this new discipline. Here, we envision a unity for Computational Logic organized around recent developments in the theory of sequent calculus proofs. We outline how new tools and methodologies can be developed around a boarder approach to computational logic. Computational logic, unity of logic, proof theory 1. SOFTWARE AND HARDWARE CORRECTNESS IS CRITICALLY IMPORTANT Computer systems are everywhere in our societies and their integration with all parts of our lives is constantly increasing. There are a host of computer systems—such as those in cars, airplanes, missiles, hospital equipment—where correctness of software is
Proof Tactics for a Theory of State Machines in a Graphical Environment
 In Proc. 14th Intenational Conference on Automated Deduction (CADE14), Lecture Notes in Artificial Intelligence
, 1997
"... . The state machine paradigm is a popular and convenient means for expressing designs of critical systems. State machines can be readily represented by transition graphs, thus enhancing human understanding of even quite complex problems. In the case of state machines, tracing a path through the ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
. The state machine paradigm is a popular and convenient means for expressing designs of critical systems. State machines can be readily represented by transition graphs, thus enhancing human understanding of even quite complex problems. In the case of state machines, tracing a path through the transition graph can represent a critical sequence in the execution of a machine. State machine notations are also amenable to formal treatment. A highlevel of assurance can be gained by a combination of both these aspects: a machinechecked, formal proof together with a higherlevel argument that can be understood by humans. This paper describes proof tactics that support reasoning about state machines at the level of diagrams and paths, and the construction of a corresponding formal proof. A tool, called Veracity [3], has been developed, which links these powerful proof tactics to a graphical userinterface. The proof tactics are implemented in Isabelle, and the paper discusses s...
Towards a Browsable Record of HOL Proofs
, 1996
"... This paper presents the motivations for and current stage of development of a tool for recording HOL proofs in a browsable format. The proofs recorded are window inference proofs produced using the TkWinHOL interface to the HOL window Library. The ultimate aim of the work is to help resolve the conf ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
This paper presents the motivations for and current stage of development of a tool for recording HOL proofs in a browsable format. The proofs recorded are window inference proofs produced using the TkWinHOL interface to the HOL window Library. The ultimate aim of the work is to help resolve the conflicting requirements for formality and readability in proof. 1 Introduction It is possible to discern two attitudes toward proofs in the computer science community. Some regard a proof as a formal mathematical object, while the others view proof as a social process  a proof is an argument that convinces its reader. These views have been largely incompatible. Complete and formal proofs, such as the ones recorded by Wai Wong's extension of the HOL system [10], are too long and detailed to be understood by, and therefore convince, a human reader. On the other hand, many researchers place more faith in proofs like these than in less formal, but more readable, proofs because of the number o...
A New Approach to Predicative Set Theory
"... We suggest a new basic framework for the WeylFeferman predicativist program by constructing a formal predicative set theory PZF which resembles ZF. The basic idea is that the predicatively acceptable instances of the comprehension schema are those which determine the collections they define in an a ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
We suggest a new basic framework for the WeylFeferman predicativist program by constructing a formal predicative set theory PZF which resembles ZF. The basic idea is that the predicatively acceptable instances of the comprehension schema are those which determine the collections they define in an absolute way, independent of the extension of the “surrounding universe”. This idea is implemented using syntactic safety relations between formulas and sets of variables. These safety relations generalize both the notion of domainindependence from database theory, and Godel notion of absoluteness from set theory. The language of PZF is typefree, and it reflects real mathematical practice in making an extensive use of statically defined abstract set terms. Another important feature of PZF is that its underlying logic is ancestral logic (i.e. the extension of FOL with a transitive closure operation). 1
1. SOFTWARE AND HARDWARE CORRECTNESS
, 2013
"... While logic was once developed to serve philosophers and mathematicians, it is increasingly serving the varied needs of computer scientists. In fact, recent decades have witnessed the creation of the new discipline of Computational Logic. While Computation Logic can claim involvement in diverse area ..."
Abstract
 Add to MetaCart
While logic was once developed to serve philosophers and mathematicians, it is increasingly serving the varied needs of computer scientists. In fact, recent decades have witnessed the creation of the new discipline of Computational Logic. While Computation Logic can claim involvement in diverse areas of computing, little has been done to systematize the foundations of this new discipline. Here, we envision a unity for Computational Logic organized around the proof theory of the sequent calculus: recent results in the area of focused proof systems will play a central role in developing this unity.