--- a/src/Pure/Isar/code.ML Wed Sep 29 11:55:08 2010 +0200
+++ b/src/Pure/Isar/code.ML Wed Sep 29 15:28:29 2010 +0200
@@ -1049,8 +1049,8 @@
val c = const_eqn thy thm;
fun update_subsume thy (thm, proper) eqns =
let
- val args_of = snd o strip_comb o map_types Type.strip_sorts
- o fst o Logic.dest_equals o Thm.plain_prop_of;
+ val args_of = dropwhile is_Var o rev o snd o strip_comb
+ o map_types Type.strip_sorts o fst o Logic.dest_equals o Thm.plain_prop_of;
val args = args_of thm;
val incr_idx = Logic.incr_indexes ([], Thm.maxidx_of thm + 1);
fun matches_args args' = length args <= length args' andalso