Results 1 -
6 of
6
Certifying machine code safety: Shallow versus deep embedding
- In TPHOLs, number 3223 in LNCS
, 2004
"... Abstract. We formalise a simple assembly language with procedures and a safety policy for arithmetic overflow in Isabelle/HOL. To verify individual programs we use a safety logic. Such a logic can be realised in Isabelle/HOL either as shallow or deep embedding. In a shallow embedding logical formula ..."
Abstract
-
Cited by 17 (3 self)
- Add to MetaCart
Abstract. We formalise a simple assembly language with procedures and a safety policy for arithmetic overflow in Isabelle/HOL. To verify individual programs we use a safety logic. Such a logic can be realised in Isabelle/HOL either as shallow or deep embedding. In a shallow embedding logical formulas are written as HOL predicates, whereas a deep embedding models formulas as a datatype. This paper presents and discusses both variants pointing out their specific strengths and weaknesses. 1
Prototyping Proof Carrying Code
- Exploring New Frontiers of Theoretical Informatics
, 2004
"... We introduce a generic framework for proof carrying code, developed and mechanically verified in Isabelle/HOL. The framework defines and proves sound a verification condition generator with minimal assumptions on the underlying programming language, safety policy, and safety logic. We demonstrate it ..."
Abstract
-
Cited by 8 (2 self)
- Add to MetaCart
We introduce a generic framework for proof carrying code, developed and mechanically verified in Isabelle/HOL. The framework defines and proves sound a verification condition generator with minimal assumptions on the underlying programming language, safety policy, and safety logic. We demonstrate its usability for prototyping proof carrying code systems by instantiating it to a simple assembly language with procedures and a safety policy for arithmetic overflow.
Knowledge-based synthesis of distributed systems using event structures
- In Proc. 11th Int. Conf. on Logic for Programming, Artificial Intelligence, and Reasoning (LPAR 2004), Lecture Notes in Computer Science
, 2005
"... To produce a program guaranteed to satisfy a given specification one can synthesize it from a formal constructive proof that a computation satisfying that specification exists. This process is particularly effective if the specifications are written in a high-level language that makes it easy for de ..."
Abstract
-
Cited by 4 (3 self)
- Add to MetaCart
To produce a program guaranteed to satisfy a given specification one can synthesize it from a formal constructive proof that a computation satisfying that specification exists. This process is particularly effective if the specifications are written in a high-level language that makes it easy for designers to specify their goals. We consider a high-level specification language that results from adding knowledge to a fragment of Nuprl specifically tailored for specifying distributed protocols, called event theory. We then show how high-level knowledge-based programs can be synthesized from the knowledge-based specifications using a proof development system such as Nuprl. Methods of Halpern and Zuck [1992] then apply to convert these knowledge-based protocols to ordinary protocols. These methods can be expressed as heuristic transformation tactics in Nuprl. 1
Four approaches to automated reasoning with differential algebraic structures
- AISC 2004, LNAI
, 2004
"... Abstract. While implementing a proof for the Basic Perturbation Lemma (a central result in Homological Algebra) in the theorem prover Isabelle one faces problems such as the implementation of algebraic structures, partial functions in a logic of total functions, or the level of abstraction in formal ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Abstract. While implementing a proof for the Basic Perturbation Lemma (a central result in Homological Algebra) in the theorem prover Isabelle one faces problems such as the implementation of algebraic structures, partial functions in a logic of total functions, or the level of abstraction in formal proofs. Different approaches aiming at solving these problems will be evaluated and classified according to features such as the degree of mechanization obtained or the direct correspondence to the mathematical proofs. From this study, an environment for further developments in Homological Algebra will be proposed. 1
Extracting a normalization algorithm in Isabelle/HOL
- TYPES FOR PROOFS AND PROGRAMS, INTERNATIONAL WORKSHOP, TYPES 2004, JOUY-EN-JOSAS
, 2004
"... We present a formalization of a constructive proof of weak normalization for the simply-typed λ-calculus in the theorem prover Isabelle/HOL, and show how a program can be extracted from it. Unlike many other proofs of weak normalization based on Tait’s strong computability predicates, which require ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
We present a formalization of a constructive proof of weak normalization for the simply-typed λ-calculus in the theorem prover Isabelle/HOL, and show how a program can be extracted from it. Unlike many other proofs of weak normalization based on Tait’s strong computability predicates, which require a logic supporting strong eliminations and can give rise to dependent types in the extracted program, our formalization requires only relatively simple proof principles. Thus, the program obtained from this proof is typable in simply-typed higher-order logic as implemented in Isabelle/HOL, and a proof of its correctness can automatically be derived within the system.
A constructive proof of Higman’s lemma
- SME Conference Proceedings Bethlelem
, 1984
"... Abstract. Higman’s lemma, a specific instance of Kruskal’s theorem, is an interesting result from the area of combinatorics, which has often been used as a test case for theorem provers. We present a constructive proof of Higman’s lemma in the theorem prover Isabelle, based on a paper proof by Coqua ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract. Higman’s lemma, a specific instance of Kruskal’s theorem, is an interesting result from the area of combinatorics, which has often been used as a test case for theorem provers. We present a constructive proof of Higman’s lemma in the theorem prover Isabelle, based on a paper proof by Coquand and Fridlender. Making use of Isabelle’s newly-introduced infrastructure for program extraction, we show how a program can automatically be extracted from this proof, and analyze its computational behaviour. 1

