# HG changeset patch # User nipkow # Date 1380745970 -7200 # Node ID 83fb090dae9ecdf973ecd29bbdd3003429c2c889 # Parent c931190b8c5c35e0dbbdfad1313221b4ff7ad1d9 tuned diff -r c931190b8c5c -r 83fb090dae9e src/HOL/Library/While_Combinator.thy --- a/src/HOL/Library/While_Combinator.thy Wed Oct 02 19:49:31 2013 +0200 +++ b/src/HOL/Library/While_Combinator.thy Wed Oct 02 22:32:50 2013 +0200 @@ -1,7 +1,6 @@ (* Title: HOL/Library/While_Combinator.thy Author: Tobias Nipkow Author: Alexander Krauss - Copyright 2000 TU Muenchen *) header {* A general ``while'' combinator *} @@ -257,7 +256,7 @@ while_option (%(ws,_). ws \ [] \ p(hd ws)) ((%(ws,Z). let x = hd ws; new = filter (\y. y \ Z) (f x) - in (new @ tl ws, set new \ insert x Z))) + in (new @ tl ws, set new \ Z))) ([x],{x})" lemma rtrancl_while_Some: assumes "rtrancl_while p f x = Some(ws,Z)" @@ -268,7 +267,7 @@ let ?test = "(%(ws,_). ws \ [] \ p(hd ws))" let ?step = "(%(ws,Z). let x = hd ws; new = filter (\y. y \ Z) (f x) - in (new @ tl ws, set new \ insert x Z))" + in (new @ tl ws, set new \ Z))" let ?R = "{(x,y). y \ set(f x)}" let ?Inv = "%(ws,Z). x \ Z \ set ws \ Z \ ?R `` (Z - set ws) \ Z \ Z \ ?R^* `` {x} \ (\z\Z - set ws. p z)"