Another lambda example theorem proved. Seems it starts working properly.
authorCezary Kaliszyk <kaliszyk@in.tum.de>
Tue, 08 Dec 2009 13:01:23 +0100
changeset 625 5d6a2b5fb222
parent 624 c4299ce27e46
child 626 28e9c770a082
Another lambda example theorem proved. Seems it starts working properly.
Quot/Examples/IntEx.thy
--- a/Quot/Examples/IntEx.thy	Tue Dec 08 13:00:36 2009 +0100
+++ b/Quot/Examples/IntEx.thy	Tue Dec 08 13:01:23 2009 +0100
@@ -313,7 +313,7 @@
 apply(rule lam_tst3a_reg)
 apply(tactic {* all_inj_repabs_tac @{context} 1*})
 apply(tactic {* clean_tac  @{context} 1 *})
-apply(simp add: babs_prs[OF Quotient_my_int Quotient_my_int])
+apply(simp only: babs_prs[OF Quotient_my_int Quotient_my_int])
 done
 
 lemma lam_tst3b: "(\<lambda>(y :: nat \<times> nat \<Rightarrow> nat \<times> nat). y) = (\<lambda>(x :: nat \<times> nat \<Rightarrow> nat \<times> nat). x)"
@@ -333,6 +333,26 @@
 apply(tactic {* quotient_tac @{context} 1 *})
 apply(tactic {* quotient_tac @{context} 1 *})
 apply(rule refl)
+done
 
+term map
+
+lemma lam_tst4: "map (\<lambda>x. my_plus x (0,0)) l = l"
+apply (induct l)
+apply simp
+apply (case_tac a)
+apply simp
+done
+
+lemma "map (\<lambda>x. PLUS x ZERO) l = l"
+apply(tactic {* procedure_tac @{context} @{thm lam_tst4} 1 *})
+apply(tactic {* regularize_tac @{context} 1 *})
+apply(tactic {* all_inj_repabs_tac @{context} 1*})
+apply(tactic {* clean_tac @{context} 1*})
+apply(simp only: babs_prs[OF Quotient_my_int Quotient_my_int])
+apply(simp only: map_prs[OF Quotient_my_int Quotient_my_int])
+apply(tactic {* lambda_prs_tac @{context} 1 *})
+apply(rule refl)
+done
 
 end