# [isabelle] Simpler theorem statements, and proofs for them [Re: Started auction theory toolbox; announcement, next steps, and questions]

• To: Lawrence Paulson <lp15 at cam.ac.uk>
• Subject: [isabelle] Simpler theorem statements, and proofs for them [Re: Started auction theory toolbox; announcement, next steps, and questions]
• From: Christoph LANGE <c.lange at cs.bham.ac.uk>
• Date: Thu, 01 Nov 2012 01:20:19 +0000
• Cc: isabelle-users at cl.cam.ac.uk
• Organization: University of Birmingham
• References: <50916DB3.4030707@cs.bham.ac.uk> <B342CF2B-EEC3-4932-A98D-193702F57A14@cam.ac.uk>
• User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121029 Thunderbird/16.0.1

```2012-10-31 20:09 Lawrence Paulson:
```
```On 31 Oct 2012, at 18:28, Christoph LANGE <c.lange at cs.bham.ac.uk> wrote:
```
```* In statements such as "!x. p x --> q x" it is tedious (and always the same) to break their structure down to a level where the actually interesting work starts.
```
```
It is almost never necessary or helpful to state a theorem in that format.
```
```

```
```I suggest

lemma "p x ==> q x"

for a straightforward proof, or

lemma assumes "p x" shows "q x"

for a more complicated structured proof.
```
```
```
… such a structure doesn't always work; I think the proofs will also need some adaptation.
```
```
The following lemma (reduced to the structural outline) has a (anti-)pattern that is typical for my formalisation:
```
lemma skip_index_keeps_non_negativity :
fixes n::nat and v::real_vector
assumes non_empty: "n > 0"
and non_negative: "non_negative_real_vector n v"
```
shows "\<forall>i::nat . in_range n i \<longrightarrow> non_negative_real_vector (n-(1::nat)) (skip_index v i)"
```proof
fix i::nat
```
show "in_range n i \<longrightarrow> non_negative_real_vector (n-(1::nat)) (skip_index v i)"
```  proof
assume "in_range n i"
...
show "non_negative_real_vector (n-(1::nat)) (skip_index v i)" sorry
qed
qed

```
How would I have to adapt the proof when rephrasing the statement as shows "in_range n i \<Longrightarrow> ..." ?
```
```
(I'll be happy to accept "RTFM" as an answer, if you could give me a pointer.)
```
Cheers, and thanks,

Christoph

--
Christoph Lange, School of Computer Science, University of Birmingham
http://cs.bham.ac.uk/~langec, Skype duke4701

→ Enabling Domain Experts to use Formalised Reasoning @ AISB 2013
2–5 April 2013, Exeter, UK.  Deadlines 10 Dec (stage 1), 14 Jan (st. 2)
http://cs.bham.ac.uk/research/projects/formare/events/aisb2013/

```

• Follow-Ups:

This archive was generated by a fusion of Pipermail (Mailman edition) and MHonArc.