diff -r f459a0cc3241 -r 9f9b9b14cc7a doc-src/Codegen/Thy/Program.thy --- a/doc-src/Codegen/Thy/Program.thy Wed Apr 21 12:10:52 2010 +0200 +++ b/doc-src/Codegen/Thy/Program.thy Wed Apr 21 12:10:52 2010 +0200 @@ -571,21 +571,20 @@ code_pred %quote lexord (*<*) proof - - fix r a1 - assume lexord: "lexord r a1" - assume 1: "\ xs ys a v. a1 = (xs, ys) \ append xs (a # v) ys \ thesis" - assume 2: "\ xs ys u a v b w. a1 = (xs, ys) \ append u (a # v) xs \ append u (b # w) ys \ r (a, b) \ thesis" - obtain xs ys where a1: "a1 = (xs, ys)" by fastsimp + fix r xs ys + assume lexord: "lexord r (xs, ys)" + assume 1: "\ r' xs' ys' a v. r = r' \ (xs, ys) = (xs', ys') \ append xs' (a # v) ys' \ thesis" + assume 2: "\ r' xs' ys' u a v b w. r = r' \ (xs, ys) = (xs', ys') \ append u (a # v) xs' \ append u (b # w) ys' \ r' (a, b) \ thesis" { assume "\a v. ys = xs @ a # v" - from this 1 a1 have thesis + from this 1 have thesis by (fastsimp simp add: append) } moreover { assume "\u a b v w. (a, b) \ r \ xs = u @ a # v \ ys = u @ b # w" - from this 2 a1 have thesis by (fastsimp simp add: append mem_def) + from this 2 have thesis by (fastsimp simp add: append mem_def) } moreover - note lexord[simplified a1] + note lexord ultimately show thesis unfolding lexord_def by (fastsimp simp add: Collect_def)