[isabelle-dev] NEWS: structured Isar goal statements

Johannes Hölzl hoelzl at in.tum.de
Mon Jun 15 22:36:39 CEST 2015


Am Montag, den 15.06.2015, 20:30 +0200 schrieb Makarius:
> On Mon, 15 Jun 2015, Lars Noschinski wrote:
>    * What is the meaning of this anyway?
> 
>        assume "B x" if "A x" for x
> 
>      Is it:
> 
>        assume "!!x. A x ==> B x"
> 
>      or is it:
> 
>        fix x assume "A x" assume "B x"
> 
>      Since if/for in have/show is explicit notation for the eigen-context,
>      the second one is conceptually more obvious, but probably not to the
>      user.

Hm, maybe with parenthesis:
  assume ("integrable (M i) (f i)" if "i : I" for i)
But yeah, this does not look very canonical...

>    * What are convicing applications where spelling out !! and ==>
>      connectives in assumptions, or extra fix/assume context elements is
>      too awkward?

At least if premises share sub-premises, for example:

lemma nn_integral_setsum:
  assumes "finite I"
  assumes ("!!x. 0 <= f i x" and "f i : borel_measurable M"
             if "i : I" for i)
  show "(INT x. SUM i : I. f i x d M) = (SUM i : I. INT x. f i x d M)"
...

E.g. in measure theory I often have the case to assume that for a
indexed-familiy all elements are non-negative & measurable or similar.

>    * Implementation complexity: if/for for assume and presume would demand
>      the same for "theorem fixes / assumes / shows / obtains", probably
>      also for 'obtain' and 'consider' etc.
> 
> 
>  	Makarius
> 
> _______________________________________________
> isabelle-dev mailing list
> isabelle-dev at in.tum.de
> https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev





More information about the isabelle-dev mailing list