# HG changeset patch # User nipkow # Date 1527172704 -7200 # Node ID d231238bd977ca830aa52079200b7ce44c2acdf2 # Parent 035c78bb0a6675e8b5e9c5b42daa6410b353c1a0 tuned diff -r 035c78bb0a66 -r d231238bd977 src/HOL/Wellfounded.thy --- a/src/HOL/Wellfounded.thy Thu May 24 14:42:47 2018 +0200 +++ b/src/HOL/Wellfounded.thy Thu May 24 16:38:24 2018 +0200 @@ -258,18 +258,18 @@ and inj: "\ a a'. a \ Domain r \ a' \ Range r \ f a = f a' \ a = a'" shows "wf (map_prod f f ` r)" proof (unfold wf_eq_minimal, clarify) - fix Q::"'b set" and b::"'b" - assume b: "b \ Q" - define Q' where "Q' \ f -` Q \ Domain r" - show "\z\Q. \y. (y, z) \ map_prod f f ` r \ y \ Q" - proof (cases "Q' = {}") + fix B :: "'b set" and b::"'b" + assume "b \ B" + define A where "A = f -` B \ Domain r" + show "\z\B. \y. (y, z) \ map_prod f f ` r \ y \ B" + proof (cases "A = {}") case False - then obtain b0 where "b0\Q'" and "\b. (b, b0) \ r \ b \ Q'" + then obtain a0 where "a0 \ A" and "\a. (a, a0) \ r \ a \ A" using wfE_min[OF wf_r] by auto thus ?thesis - using inj unfolding Q'_def - by (intro bexI[of _ "f b0"]) auto - qed(insert b, unfold Q'_def, auto) + using inj unfolding A_def + by (intro bexI[of _ "f a0"]) auto + qed (insert \b \ B\, unfold A_def, auto) qed lemma wf_map_prod_image: "wf r \ inj f \ wf (map_prod f f ` r)"