optimized xs[i:=x]!j lemmas.
authornipkow
Wed, 26 Jan 2000 11:04:38 +0100
changeset 8144 c4b5cbfb90dd
parent 8143 b0e44ab73631
child 8145 cdd5386eb6fe
optimized xs[i:=x]!j lemmas.
src/HOL/List.ML
--- a/src/HOL/List.ML	Tue Jan 25 22:31:53 2000 +0100
+++ b/src/HOL/List.ML	Wed Jan 26 11:04:38 2000 +0100
@@ -705,6 +705,18 @@
 by (auto_tac (claset(), simpset() addsimps [nth_Cons] addsplits [nat.split]));
 qed_spec_mp "nth_list_update";
 
+Goal "i < length xs  ==> (xs[i:=x])!i = x";
+by (asm_simp_tac (simpset() addsimps [nth_list_update]) 1);
+qed "nth_list_update_eq";
+Addsimps [nth_list_update_eq];
+
+Goal "!i j. i ~= j --> xs[i:=x]!j = xs!j";
+by (induct_tac "xs" 1);
+ by (Simp_tac 1);
+by (auto_tac (claset(), simpset() addsimps [nth_Cons] addsplits [nat.split]));
+qed_spec_mp "nth_list_update_neq";
+Addsimps [nth_list_update_neq];
+
 Goal "!i. i < size xs --> xs[i:=x, i:=y] = xs[i:=y]";
 by (induct_tac "xs" 1);
  by (Simp_tac 1);