New class "order" and accompanying changes.
--- a/src/HOL/Lex/AutoChopper.ML Wed Feb 12 18:53:59 1997 +0100
+++ b/src/HOL/Lex/AutoChopper.ML Wed Feb 12 18:54:39 1997 +0100
@@ -51,7 +51,7 @@
goal AutoChopper.thy
"! r erk l rst st ys yss zs::'a list. \
\ acc xs st erk r (l,rst) A = (ys#yss, zs) --> \
-\ ys@flat(yss)@zs = (if acc_prefix A st xs then r@xs else erk@flat(l)@rst)";
+\ ys@concat(yss)@zs = (if acc_prefix A st xs then r@xs else erk@concat(l)@rst)";
by (list.induct_tac "xs" 1);
by (simp_tac (!simpset addcongs [conj_cong] setloop (split_tac [expand_if])) 1);
by (asm_simp_tac (!simpset setloop (split_tac [expand_if])) 1);
@@ -133,7 +133,7 @@
"! st erk r l rest ys yss zs. \
\ acc xs st erk r (l,rest) A = (ys#yss, zs) --> \
\ (if acc_prefix A st xs \
-\ then acc(flat(yss)@zs)(start A) [] [] ([],flat(yss)@zs) A = (yss,zs) \
+\ then acc(concat(yss)@zs)(start A) [] [] ([],concat(yss)@zs) A = (yss,zs) \
\ else (erk~=[] & (l,rest)=(yss,zs)) | (erk=[] & (l, rest)=(ys#yss,zs)))";
by (simp_tac (!simpset setloop (split_tac [expand_if])) 1);
by (list.induct_tac "xs" 1);
@@ -151,7 +151,7 @@
by (subgoal_tac "r@[a] ~= []" 2);
by (Fast_tac 2);
by (Simp_tac 2);
-by (subgoal_tac "flat(yss) @ zs = list" 1);
+by (subgoal_tac "concat(yss) @ zs = list" 1);
by (hyp_subst_tac 1);
by (atac 1);
by (case_tac "yss = []" 1);
--- a/src/HOL/Lex/Chopper.thy Wed Feb 12 18:53:59 1997 +0100
+++ b/src/HOL/Lex/Chopper.thy Wed Feb 12 18:54:39 1997 +0100
@@ -25,8 +25,8 @@
(!zs. chopper(xs) = ([],zs) -->
zs=xs & (!ys. ys ~= [] & ys <= xs --> ~L(ys))) &
(!ys yss zs. chopper(xs) = (ys#yss,zs) -->
- ys ~= [] & L(ys) & xs=ys@flat(yss)@zs &
- chopper(flat(yss)@zs) = (yss,zs) &
+ ys ~= [] & L(ys) & xs=ys@concat(yss)@zs &
+ chopper(concat(yss)@zs) = (yss,zs) &
(!as. as <= xs & ys <= as & ys ~= as --> ~L(as)))"
end
--- a/src/HOL/ex/Puzzle.ML Wed Feb 12 18:53:59 1997 +0100
+++ b/src/HOL/ex/Puzzle.ML Wed Feb 12 18:54:39 1997 +0100
@@ -23,7 +23,7 @@
by (subgoal_tac "f(na) <= f(f(na))" 1);
by (fast_tac (!claset addIs [Puzzle.f_ax]) 2);
by (rtac lessD 1);
-by (best_tac (!claset delrules [le_refl]
+by (fast_tac (!claset delrules [order_refl]
addIs [Puzzle.f_ax, le_less_trans]) 1);
val lemma = result() RS spec RS mp;