equal
deleted
inserted
replaced
134 qed "genPrefix_Cons"; |
134 qed "genPrefix_Cons"; |
135 |
135 |
136 Goal "[| reflexive r; (xs,ys) : genPrefix r |] \ |
136 Goal "[| reflexive r; (xs,ys) : genPrefix r |] \ |
137 \ ==> (xs@zs, take (length xs) ys @ zs) : genPrefix r"; |
137 \ ==> (xs@zs, take (length xs) ys @ zs) : genPrefix r"; |
138 by (etac genPrefix.induct 1); |
138 by (etac genPrefix.induct 1); |
139 by (forward_tac [genPrefix_length_le] 3); |
139 by (ftac genPrefix_length_le 3); |
140 by (ALLGOALS (asm_simp_tac (simpset() addsimps [diff_is_0_eq RS iffD2]))); |
140 by (ALLGOALS (asm_simp_tac (simpset() addsimps [diff_is_0_eq RS iffD2]))); |
141 qed "genPrefix_take_append"; |
141 qed "genPrefix_take_append"; |
142 |
142 |
143 Goal "[| reflexive r; (xs,ys) : genPrefix r; length xs = length ys |] \ |
143 Goal "[| reflexive r; (xs,ys) : genPrefix r; length xs = length ys |] \ |
144 \ ==> (xs@zs, ys @ zs) : genPrefix r"; |
144 \ ==> (xs@zs, ys @ zs) : genPrefix r"; |