diff -r 0035be079bee -r ead82c82da9e src/HOL/Extraction/Higman.thy --- a/src/HOL/Extraction/Higman.thy Wed Jun 13 16:43:02 2007 +0200 +++ b/src/HOL/Extraction/Higman.thy Wed Jun 13 18:30:11 2007 +0200 @@ -146,16 +146,18 @@ assumes ab: "a \ b" and bar: "bar xs" shows "\ys zs. bar ys \ T a xs zs \ T b ys zs \ bar zs" using bar proof induct - fix xs zs assume "good xs" and "T a xs zs" - show "bar zs" by (rule bar1) (rule lemma3) + fix xs zs assume "T a xs zs" and "good xs" + hence "good zs" by (rule lemma3) + then show "bar zs" by (rule bar1) next fix xs ys assume I: "\w ys zs. bar ys \ T a (w # xs) zs \ T b ys zs \ bar zs" assume "bar ys" thus "\zs. T a xs zs \ T b ys zs \ bar zs" proof induct - fix ys zs assume "good ys" and "T b ys zs" - show "bar zs" by (rule bar1) (rule lemma3) + fix ys zs assume "T b ys zs" and "good ys" + then have "good zs" by (rule lemma3) + then show "bar zs" by (rule bar1) next fix ys zs assume I': "\w zs. T a xs zs \ T b (w # ys) zs \ bar zs" and ys: "\w. bar (w # ys)" and Ta: "T a xs zs" and Tb: "T b ys zs" @@ -189,8 +191,9 @@ shows "\zs. xs \ [] \ R a xs zs \ bar zs" using bar proof induct fix xs zs - assume "good xs" and "R a xs zs" - show "bar zs" by (rule bar1) (rule lemma2) + assume "R a xs zs" and "good xs" + then have "good zs" by (rule lemma2) + then show "bar zs" by (rule bar1) next fix xs zs assume I: "\w zs. w # xs \ [] \ R a (w # xs) zs \ bar zs" @@ -299,7 +302,7 @@ thus ?case by iprover next case (bar2 ws) - have "is_prefix (f (length ws) # ws) f" by simp + from bar2.prems have "is_prefix (f (length ws) # ws) f" by simp thus ?case by (iprover intro: bar2) qed