Results 1 -
5 of
5
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 23 (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 coin-flips, or technically an infinite sequence of IID Bernoulli ( 1) random variables. 2 Probabilistic programs are modelled using the state-transformer 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 Miller-Rabin primality test, a well-known 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 (CADE-14), 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 high-level of assurance can be gained by a combination of both these aspects: a machine-checked, formal proof together with a higher-level 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...

