# HG changeset patch # User huffman # Date 1228868807 28800 # Node ID 208fee4049a0de6ffeeecb409225f9004681f910 # Parent 8c8859c0d7349f8137f4054e863bdc6015574bc8 use lemma lists defined in Int.thy diff -r 8c8859c0d734 -r 208fee4049a0 src/HOL/Tools/ComputeNumeral.thy --- a/src/HOL/Tools/ComputeNumeral.thy Tue Dec 09 15:31:38 2008 -0800 +++ b/src/HOL/Tools/ComputeNumeral.thy Tue Dec 09 16:26:47 2008 -0800 @@ -29,63 +29,13 @@ lemmas bitlezero = lezero1 lezero2 lezero3 lezero4 (* equality for bit strings *) -lemma biteq1: "(Int.Pls = Int.Pls) = True" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma biteq2: "(Int.Min = Int.Min) = True" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma biteq3: "(Int.Pls = Int.Min) = False" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma biteq4: "(Int.Min = Int.Pls) = False" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma biteq5: "(Int.Bit0 x = Int.Bit0 y) = (x = y)" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma biteq6: "(Int.Bit1 x = Int.Bit1 y) = (x = y)" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma biteq7: "(Int.Bit0 x = Int.Bit1 y) = False" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma biteq8: "(Int.Bit1 x = Int.Bit0 y) = False" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma biteq9: "(Int.Pls = Int.Bit0 x) = (Int.Pls = x)" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma biteq10: "(Int.Pls = Int.Bit1 x) = False" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma biteq11: "(Int.Min = Int.Bit0 x) = False" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma biteq12: "(Int.Min = Int.Bit1 x) = (Int.Min = x)" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma biteq13: "(Int.Bit0 x = Int.Pls) = (x = Int.Pls)" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma biteq14: "(Int.Bit1 x = Int.Pls) = False" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma biteq15: "(Int.Bit0 x = Int.Min) = False" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma biteq16: "(Int.Bit1 x = Int.Min) = (x = Int.Min)" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemmas biteq = biteq1 biteq2 biteq3 biteq4 biteq5 biteq6 biteq7 biteq8 biteq9 biteq10 biteq11 biteq12 biteq13 biteq14 biteq15 biteq16 +lemmas biteq = eq_bin_simps (* x < y for bit strings *) -lemma bitless1: "(Int.Pls < Int.Min) = False" by (simp add: less_int_code) -lemma bitless2: "(Int.Pls < Int.Pls) = False" by (simp add: less_int_code) -lemma bitless3: "(Int.Min < Int.Pls) = True" by (simp add: less_int_code) -lemma bitless4: "(Int.Min < Int.Min) = False" by (simp add: less_int_code) -lemma bitless5: "(Int.Bit0 x < Int.Bit0 y) = (x < y)" by (simp add: less_int_code) -lemma bitless6: "(Int.Bit1 x < Int.Bit1 y) = (x < y)" by (simp add: less_int_code) -lemma bitless7: "(Int.Bit0 x < Int.Bit1 y) = (x \ y)" by (simp add: less_int_code) -lemma bitless8: "(Int.Bit1 x < Int.Bit0 y) = (x < y)" by (simp add: less_int_code) -lemma bitless9: "(Int.Pls < Int.Bit0 x) = (Int.Pls < x)" by (simp add: less_int_code) -lemma bitless10: "(Int.Pls < Int.Bit1 x) = (Int.Pls \ x)" by (simp add: less_int_code) -lemma bitless11: "(Int.Min < Int.Bit0 x) = (Int.Pls \ x)" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma bitless12: "(Int.Min < Int.Bit1 x) = (Int.Min < x)" by (simp add: less_int_code) -lemma bitless13: "(Int.Bit0 x < Int.Pls) = (x < Int.Pls)" by (simp add: less_int_code) -lemma bitless14: "(Int.Bit1 x < Int.Pls) = (x < Int.Pls)" by (simp add: less_int_code) -lemma bitless15: "(Int.Bit0 x < Int.Min) = (x < Int.Pls)" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma bitless16: "(Int.Bit1 x < Int.Min) = (x < Int.Min)" by (simp add: less_int_code) -lemmas bitless = bitless1 bitless2 bitless3 bitless4 bitless5 bitless6 bitless7 bitless8 - bitless9 bitless10 bitless11 bitless12 bitless13 bitless14 bitless15 bitless16 +lemmas bitless = less_bin_simps (* x \ y for bit strings *) -lemma bitle1: "(Int.Pls \ Int.Min) = False" by (simp add: less_eq_int_code) -lemma bitle2: "(Int.Pls \ Int.Pls) = True" by (simp add: less_eq_int_code) -lemma bitle3: "(Int.Min \ Int.Pls) = True" by (simp add: less_eq_int_code) -lemma bitle4: "(Int.Min \ Int.Min) = True" by (simp add: less_eq_int_code) -lemma bitle5: "(Int.Bit0 x \ Int.Bit0 y) = (x \ y)" by (simp add: less_eq_int_code) -lemma bitle6: "(Int.Bit1 x \ Int.Bit1 y) = (x \ y)" by (simp add: less_eq_int_code) -lemma bitle7: "(Int.Bit0 x \ Int.Bit1 y) = (x \ y)" by (simp add: less_eq_int_code) -lemma bitle8: "(Int.Bit1 x \ Int.Bit0 y) = (x < y)" by (simp add: less_eq_int_code) -lemma bitle9: "(Int.Pls \ Int.Bit0 x) = (Int.Pls \ x)" by (simp add: less_eq_int_code) -lemma bitle10: "(Int.Pls \ Int.Bit1 x) = (Int.Pls \ x)" by (simp add: less_eq_int_code) -lemma bitle11: "(Int.Min \ Int.Bit0 x) = (Int.Pls \ x)" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma bitle12: "(Int.Min \ Int.Bit1 x) = (Int.Min \ x)" by (simp add: less_eq_int_code) -lemma bitle13: "(Int.Bit0 x \ Int.Pls) = (x \ Int.Pls)" by (simp add: less_eq_int_code) -lemma bitle14: "(Int.Bit1 x \ Int.Pls) = (x < Int.Pls)" by (simp add: less_eq_int_code) -lemma bitle15: "(Int.Bit0 x \ Int.Min) = (x < Int.Pls)" unfolding Pls_def Min_def Bit0_def Bit1_def by presburger -lemma bitle16: "(Int.Bit1 x \ Int.Min) = (x \ Int.Min)" by (simp add: less_eq_int_code) -lemmas bitle = bitle1 bitle2 bitle3 bitle4 bitle5 bitle6 bitle7 bitle8 - bitle9 bitle10 bitle11 bitle12 bitle13 bitle14 bitle15 bitle16 +lemmas bitle = le_bin_simps (* succ for bit strings *) lemmas bitsucc = succ_bin_simps