Title: Tool Support for proof Engineering
1Tool Support for proof Engineering
Anne Mulhern
Charles Fischer
Ben Liblit
Anne Mulhern Computer Sciences Department Universi
ty of Wisconsin-Madison Madison, WI
USA mulhern_at_cs.wisc.edu www.cs.wisc.edu/mulhern
2Size of Proofs
- Certified C compiler in Coq Leroy et al
- Compiler proof that compiler preserves
semantics - Back-end
- One man-year
- 35,000 lines of Coq scripts, definitions, and
tactics - Front-end
- 3/4 man-year
- 6,000 lines of Coq scripts, definitions, and
tactics
3Proof Material/Definitions
Formal Certification of a Compiler Back-end or
Programming a Compiler with a Proof Assistant
Xavier Leroy, POPL 2006
4Proof Objects/Proof Scripts
- Proof objects can be an order of magnitude larger
than proof scripts - Factors
- Down
- Good modularization
- Up
- Powerful tactics
- Good use of hints
5Size of Linux Kernel
- 1991 - 10,000 lines
- 1996 - 800,000 lines
- 2001 - 3 million lines
- 2006 - 7 million lines
6Integrated Proof Environment
- Abbreviated as IPE
- Similar to an IDE (Integrated Development
Environment) - Uncommon
7This is a position paper
tools and techniques from IDEs can be transferred
to IPEs
tools and techniques from IDEs should be
transferred to IPEs
8Outline
- Motivation
- Tools and Techniques
- Mechanisms
9Outline
- Motivation
- Tools and Techniques
- Mechanisms
10Motivation
- Programming languages are my specialty
- Formal proofs of programming language properties
- The POPLmark challenge
- Generation of certified programs by extraction
- Formal Certification of a Compiler Back-end or
Programming a Compiler with a Proof Assistant
Xavier Leroy, POPL 2006
11PL Proofs are different
- Proofs should be easy to modify and reuse
- For certified programs structure of the
generated proof matters - Proofs frequently proceed by induction
- Inductive theorems are particularly challenging
- On Strategies for Inductive Theorem Proving
Bernhard Gramlich, Strategies 2004 Invited Talk
12Proofs are Programs
- Theory
- Curry-Howard isomorphism
- Practice
- Extend
- Refactor
- Debug
- We can tackle similar problems with similar
techniques
13PhoX
Minlog
HOL
ACL2
Mizar
Coq
B method
IMPS
Alfa/Agda
Theorema
PVS
Isabelle/Isar
Otter/Ivy
Metamath
Lego
Nuprl
Omega
The Seventeen Provers of the World Wiedjik
14Outline
- Motivation
- Tools and Techniques
- Mechanisms
15Tools and Techniques
- Common Conveniences
- Proof Visualization in the Large
- Navigation by Derivation
16Common Conveniences in IDEs
- Multiple Views for understanding and navigation
- Collapsed and expanded text
- Outline Views
- And so forth
- Automatic Refactoring
- Rewriting while preserving meaning or behavior
17(No Transcript)
18(No Transcript)
19(No Transcript)
20Common Conveniences in IPEs
21Make Variable Implicit
- Variables whose value can be inferred from the
type of other variables may be made implicit - If a variable is implicit its value must not be
given - To make a variable implicit
- Make implicit in definition
- Change all uses of definition
22Tools and Techniques
- Common Conveniences
- Proof Visualization in the Large
- Navigation by Derivation
23Software Visualization in the Large
- Ball and Eick, 1996
- Unary properties
- Color
- Large projects
- Multiple files
24Software Visualization in the Large Ball and
Eick, 1996
25Proof Visualization in the Large
- Lemma hot spots
- Revision information
- Proportion of proofs to definitions
- Goal depth
26Goal depth
?
?
?
?
?
27Tools and Techniques
- Common Conveniences
- Proof Visualization in the Large
- Navigation by Derivation
28(No Transcript)
29Navigation by Derivation
- No obvious analog currently in IDEs but
- Numerous instances where original line numbering
is preserved - Parsers map to grammar file line numbers
- gcc maps to source file line numbers
- Source/assembly navigation tool desirable
30Outline
- Motivation
- Tools and Techniques
- Mechanisms
31Mechanisms
- Textual Analysis on proofs or scripts
- Multiple Views
- Compiler/Debugger techniques
- Navigation by derivation
- Both
- Refactoring
- Proof visualization in the large
32Summary
- IPEs non-existent
- Proofs must be managed
- Technology already exists
- Considerable theoretical possibilities
33Tool Support for proof Engineering
Anne Mulhern
Charles Fischer
Ben Liblit
Anne Mulhern Computer Sciences Department Universi
ty of Wisconsin-Madison Madison, WI
USA mulhern_at_cs.wisc.edu www.cs.wisc.edu/mulhern