## Proof Weaving

Citations: | 4 - 1 self |

### BibTeX

@MISC{Mulhern_proofweaving,

author = {Anne Mulhern},

title = {Proof Weaving},

year = {}

}

### OpenURL

### Abstract

Automated proof assistants provide few facilities for incremental development. Generally, if the underlying structures on which a proof is based are modified, the developer must redo much of the proof. Yet incremental development is really the most natural approach for proofs of programming language properties [5, 12]. We propose “proof weaving”, a technique that allows a proof developer to combine small proofs into larger ones by merging proof objects. We automate much of the merging process and thus ease incremental proof development for programming language properties. To make the discussion concrete we take as an example the problem of proving typesoundness by proving progress and preservation [17] in Coq [3, 7]. However we believe that the methods can be generalized to other proof assistants which generate proof objects, and most directly to those proof assistants which exploit the Curry-Howard isomorphism in representing proof terms as λ-terms [16], e.g. Isabelle and Minlog. We rely on the proof developer to initially prove type-soundness for “tiny ” languages. Each of these languages encapsulates a single well-defined programming feature. For example, a tiny language of booleans can be restricted to the terms True, False, and If and their

### Citations

760 |
Types and Programming Languages
- Pierce
- 2002
(Show Context)
Citation Context ...ctures on which a proof is based are modified, the developer must redo much of the proof. Yet incremental development is really the most natural approach for proofs of programming language properties =-=[5, 12]-=-. We propose “proof weaving”, a technique that allows a proof developer to combine small proofs into larger ones by merging proof objects. We automate much of the merging process and thus ease increme... |

576 | A syntactic approach to type soundness
- Wright, Felleisen
- 1994
(Show Context)
Citation Context ...ease incremental proof development for programming language properties. To make the discussion concrete we take as an example the problem of proving typesoundness by proving progress and preservation =-=[17]-=- in Coq [3, 7]. However we believe that the methods can be generalized to other proof assistants which generate proof objects, and most directly to those proof assistants which exploit the Curry-Howar... |

515 |
Interactive Theorem Proving and Program Development. Coq’Art: The Calculus of Inductive Constructions. Texts in Theoretical Computer Science. An EATCS series
- Bertot, Castéran
- 2004
(Show Context)
Citation Context ...ntal proof development for programming language properties. To make the discussion concrete we take as an example the problem of proving typesoundness by proving progress and preservation [17] in Coq =-=[3, 7]-=-. However we believe that the methods can be generalized to other proof assistants which generate proof objects, and most directly to those proof assistants which exploit the Curry-Howard isomorphism ... |

145 | Mechanized Metatheory for the Masses: The PoplMark Challenge
- Aydemir, Bohannon, et al.
- 2005
(Show Context)
Citation Context ...roughout a proof. Properties which present no difficulty in an informal proof may be quite difficult to formalize in a tractable way. For example, a number of solutions for representing binders exist =-=[1]-=- but each one has some drawback which makes its use difficult in a formal proof. Languages are assembled according to certain organizing principles. TinkerType [10] exploits these relationships to aut... |

36 |
Foundations of Object-Oriented Languages: Types and Semantics
- Bruce
- 2002
(Show Context)
Citation Context ...ctures on which a proof is based are modified, the developer must redo much of the proof. Yet incremental development is really the most natural approach for proofs of programming language properties =-=[5, 12]-=-. We propose “proof weaving”, a technique that allows a proof developer to combine small proofs into larger ones by merging proof objects. We automate much of the merging process and thus ease increme... |

24 | TinkerType: a language for playing with formal systems
- Levin, Pierce
(Show Context)
Citation Context ...tions for representing binders exist [1] but each one has some drawback which makes its use difficult in a formal proof. Languages are assembled according to certain organizing principles. TinkerType =-=[10]-=- exploits these relationships to automatically generate interpreters for various λ-calculi. In the TinkerType system, typing and evaluation rules are clauses, these clauses are associated with feature... |

15 | The Seventeen Provers of the World
- Wiedijk
- 2006
(Show Context)
Citation Context ...an be generalized to other proof assistants which generate proof objects, and most directly to those proof assistants which exploit the Curry-Howard isomorphism in representing proof terms as λ-terms =-=[16]-=-, e.g. Isabelle and Minlog. We rely on the proof developer to initially prove type-soundness for “tiny” languages. Each of these languages encapsulates a single well-defined programming feature. For e... |

12 | Generalization and reuse of tactic proofs
- Felty, Howe
- 1994
(Show Context)
Citation Context ...ntly similar to the subgoals that need to be proved and the proof weaver will supply the necessary subproof. 7sRelated Work Mulhern Reuse of proofs and theorems has been an active area for many years =-=[2, 4, 6, 8, 9, 11, 13, 14]-=-. Proof abstraction [8, 9, 13] is concerned with generalizing a proof that works in a specific case to one that works in a more general case. For example, a proof that multiplication on the natural nu... |

11 | Type isomorphisms and proof reuse in dependent type theory
- Barthes, Pons
- 2001
(Show Context)
Citation Context ...ntly similar to the subgoals that need to be proved and the proof weaver will supply the necessary subproof. 7sRelated Work Mulhern Reuse of proofs and theorems has been an active area for many years =-=[2, 4, 6, 8, 9, 11, 13, 14]-=-. Proof abstraction [8, 9, 13] is concerned with generalizing a proof that works in a specific case to one that works in a more general case. For example, a proof that multiplication on the natural nu... |

8 | Theorem reuse by proof term transformation
- Johnsen, Lüth
- 2004
(Show Context)
Citation Context ...ntly similar to the subgoals that need to be proved and the proof weaver will supply the necessary subproof. 7sRelated Work Mulhern Reuse of proofs and theorems has been an active area for many years =-=[2, 4, 6, 8, 9, 11, 13, 14]-=-. Proof abstraction [8, 9, 13] is concerned with generalizing a proof that works in a specific case to one that works in a more general case. For example, a proof that multiplication on the natural nu... |

8 | A pragmatic approach to reuse in tactical theorem proving
- Schairer, Autexier, et al.
(Show Context)
Citation Context |

4 |
Proof reuse with extended inductive types
- Boite
- 2004
(Show Context)
Citation Context ...ion on the structure of typing derivations [12], but it is necessary to perform induction on the structure of terms in order to determine which typing rules are applicable. 3 A transparent dependency =-=[4]-=- between a proof term T and an inductive type I occurs when T has a dependency with an induction principle of I or if a case analysis on type I is performed in T . 2sDiscussion Motivation Mulhern Prog... |

4 | A logical framework for software proof reuse
- Caplan, Harandi
- 1995
(Show Context)
Citation Context |

4 | Developing reuse technology in proof engineering
- Luo
- 1995
(Show Context)
Citation Context |

3 | Proof generalization and proof reuse
- Pons
- 2000
(Show Context)
Citation Context |