diff -r 70d4d9e5707b -r f8652d0534fa src/HOL/Hilbert_Choice.thy --- a/src/HOL/Hilbert_Choice.thy Fri Jul 22 08:02:37 2016 +0200 +++ b/src/HOL/Hilbert_Choice.thy Fri Jul 22 11:00:43 2016 +0200 @@ -317,14 +317,17 @@ proof - define Sseq where "Sseq = rec_nat S (\n T. T - {SOME e. e \ T})" define pick where "pick n = (SOME e. e \ Sseq n)" for n - { fix n have "Sseq n \ S" "\ finite (Sseq n)" by (induct n) (auto simp add: Sseq_def inf) } - moreover then have *: "\n. pick n \ Sseq n" + have *: "Sseq n \ S" "\ finite (Sseq n)" for n + by (induct n) (auto simp add: Sseq_def inf) + then have **: "\n. pick n \ Sseq n" unfolding pick_def by (subst (asm) finite.simps) (auto simp add: ex_in_conv intro: someI_ex) - ultimately have "range pick \ S" by auto + with * have "range pick \ S" by auto moreover - { fix n m - have "pick n \ Sseq (n + Suc m)" by (induct m) (auto simp add: Sseq_def pick_def) - with * have "pick n \ pick (n + Suc m)" by auto + { + fix n m + have "pick n \ Sseq (n + Suc m)" + by (induct m) (auto simp add: Sseq_def pick_def) + with ** have "pick n \ pick (n + Suc m)" by auto } then have "inj pick" by (intro linorder_injI) (auto simp add: less_iff_Suc_add) ultimately show ?thesis by blast