src/HOL/Code_Numeral.thy
changeset 71185 8a0e25d93a95
parent 71182 410935efbf5c
child 71195 d50a718ccf35
equal deleted inserted replaced
71184:d62fdaafdafc 71185:8a0e25d93a95
   297   is \<open>drop_bit\<close> .
   297   is \<open>drop_bit\<close> .
   298 
   298 
   299 instance by (standard; transfer)
   299 instance by (standard; transfer)
   300   (fact bit_eq_rec bit_induct push_bit_eq_mult drop_bit_eq_div
   300   (fact bit_eq_rec bit_induct push_bit_eq_mult drop_bit_eq_div
   301     bits_div_0 bits_div_by_1 bit_mod_div_trivial even_succ_div_2
   301     bits_div_0 bits_div_by_1 bit_mod_div_trivial even_succ_div_2
   302     div_exp_eq mod_exp_eq mult_exp_mod_exp_eq div_exp_mod_exp_eq)+
   302     exp_div_exp_eq div_exp_eq mod_exp_eq mult_exp_mod_exp_eq div_exp_mod_exp_eq)+
   303 
   303 
   304 end
   304 end
   305 
   305 
   306 lemma [transfer_rule]:
   306 lemma [transfer_rule]:
   307   "rel_fun (=) (rel_fun pcr_integer pcr_integer) (take_bit :: _ \<Rightarrow> _ \<Rightarrow> int) (take_bit :: _ \<Rightarrow> _ \<Rightarrow> integer)"
   307   "rel_fun (=) (rel_fun pcr_integer pcr_integer) (take_bit :: _ \<Rightarrow> _ \<Rightarrow> int) (take_bit :: _ \<Rightarrow> _ \<Rightarrow> integer)"
   993   is \<open>drop_bit\<close> .
   993   is \<open>drop_bit\<close> .
   994 
   994 
   995 instance by (standard; transfer)
   995 instance by (standard; transfer)
   996   (fact bit_eq_rec bit_induct push_bit_eq_mult drop_bit_eq_div
   996   (fact bit_eq_rec bit_induct push_bit_eq_mult drop_bit_eq_div
   997     bits_div_0 bits_div_by_1 bit_mod_div_trivial even_succ_div_2
   997     bits_div_0 bits_div_by_1 bit_mod_div_trivial even_succ_div_2
   998     div_exp_eq mod_exp_eq mult_exp_mod_exp_eq div_exp_mod_exp_eq)+
   998     exp_div_exp_eq div_exp_eq mod_exp_eq mult_exp_mod_exp_eq div_exp_mod_exp_eq)+
   999 
   999 
  1000 end
  1000 end
  1001 
  1001 
  1002 lemma [transfer_rule]:
  1002 lemma [transfer_rule]:
  1003   "rel_fun (=) (rel_fun pcr_natural pcr_natural) (take_bit :: _ \<Rightarrow> _ \<Rightarrow> nat) (take_bit :: _ \<Rightarrow> _ \<Rightarrow> natural)"
  1003   "rel_fun (=) (rel_fun pcr_natural pcr_natural) (take_bit :: _ \<Rightarrow> _ \<Rightarrow> nat) (take_bit :: _ \<Rightarrow> _ \<Rightarrow> natural)"