added a few lemmas by Andreas Lochbihler
authornipkow
Sat, 26 Feb 2011 20:40:45 +0100
changeset 41855 c3b6e69da386
parent 41854 b2b5b965b59c
child 41856 7244589c8ccc
child 41863 e5104b436ea1
child 41866 8e68d92f40ae
added a few lemmas by Andreas Lochbihler
src/HOL/HOLCF/FOCUS/Fstreams.thy
src/HOL/Library/Nat_Infinity.thy
--- a/src/HOL/HOLCF/FOCUS/Fstreams.thy	Sat Feb 26 20:16:44 2011 +0100
+++ b/src/HOL/HOLCF/FOCUS/Fstreams.thy	Sat Feb 26 20:40:45 2011 +0100
@@ -83,11 +83,11 @@
 lemma jth_n[simp]: "Fin n = #s ==> jth n (s ooo <a>) = a"
 apply (simp add: jth_def, auto)
 apply (simp add: i_th_def rt_sconc1)
-by (simp add: inat_defs split: inat_splits)
+by (simp add: inat_defs split: inat.splits)
 
 lemma last_sconc[simp]: "Fin n = #s ==> last (s ooo <a>) = a"
 apply (simp add: last_def)
-apply (simp add: inat_defs split:inat_splits)
+apply (simp add: inat_defs split:inat.splits)
 by (drule sym, auto)
 
 lemma last_fsingleton[simp]: "last (<a>) = a"
@@ -103,7 +103,7 @@
 by (simp add: last_def)
 
 lemma jth_slen_lemma1:"n <= k & Fin n = #s ==> jth k s = undefined"
-by (simp add: jth_def inat_defs split:inat_splits, auto)
+by (simp add: jth_def inat_defs split:inat.splits, auto)
 
 lemma jth_UU[simp]:"jth n UU = undefined" 
 by (simp add: jth_def)
--- a/src/HOL/Library/Nat_Infinity.thy	Sat Feb 26 20:16:44 2011 +0100
+++ b/src/HOL/Library/Nat_Infinity.thy	Sat Feb 26 20:40:45 2011 +0100
@@ -32,6 +32,10 @@
 by (cases x) auto
 
 
+primrec the_Fin :: "inat \<Rightarrow> nat"
+where "the_Fin (Fin n) = n"
+
+
 subsection {* Constructors and numbers *}
 
 instantiation inat :: "{zero, one, number}"
@@ -283,6 +287,12 @@
 lemma idiff_self[simp]: "n \<noteq> \<infinity> \<Longrightarrow> (n::inat) - n = 0"
 by(auto simp: zero_inat_def)
 
+lemma iSuc_minus_iSuc [simp]: "iSuc n - iSuc m = n - m"
+by(simp add: iSuc_def split: inat.split)
+
+lemma iSuc_minus_1 [simp]: "iSuc n - 1 = n"
+by(simp add: one_inat_def iSuc_Fin[symmetric] zero_inat_def[symmetric])
+
 (*lemmas idiff_self_eq_0_Fin = idiff_self_eq_0[unfolded zero_inat_def]*)
 
 
@@ -488,6 +498,4 @@
 lemmas inat_defs = zero_inat_def one_inat_def number_of_inat_def iSuc_def
   plus_inat_def less_eq_inat_def less_inat_def
 
-lemmas inat_splits = inat.splits
-
 end