src/HOL/Real/Rational.thy
changeset 25965 05df64f786a4
parent 25885 6fbc3f54f819
child 26513 6f306c8c2c54
equal deleted inserted replaced
25964:080f89d89990 25965:05df64f786a4
   497 
   497 
   498 instantiation rat :: number_ring
   498 instantiation rat :: number_ring
   499 begin
   499 begin
   500 
   500 
   501 definition
   501 definition
   502   rat_number_of_def: "number_of w = (of_int w \<Colon> rat)"
   502   rat_number_of_def [code func del]: "number_of w = (of_int w \<Colon> rat)"
   503 
   503 
   504 instance
   504 instance
   505   by default (simp add: rat_number_of_def)
   505   by default (simp add: rat_number_of_def)
   506 
   506 
   507 end 
   507 end 
   638 lemma Rational_lit [simp]: "Rational i\<^sub>N = rat_of_int i"
   638 lemma Rational_lit [simp]: "Rational i\<^sub>N = rat_of_int i"
   639   by (simp add: Rational_simp)
   639   by (simp add: Rational_simp)
   640 
   640 
   641 lemma zero_rat_code [code, code unfold]:
   641 lemma zero_rat_code [code, code unfold]:
   642   "0 = Rational 0\<^sub>N" by simp
   642   "0 = Rational 0\<^sub>N" by simp
   643 
   643 declare zero_rat_code [symmetric, code post]
   644 lemma zero_rat_code [code, code unfold]:
   644 
       
   645 lemma one_rat_code [code, code unfold]:
   645   "1 = Rational 1\<^sub>N" by simp
   646   "1 = Rational 1\<^sub>N" by simp
   646 
   647 declare one_rat_code [symmetric, code post]
   647 lemma [code, code unfold]:
   648 
       
   649 lemma [code unfold, symmetric, code post]:
   648   "number_of k = rat_of_int (number_of k)"
   650   "number_of k = rat_of_int (number_of k)"
   649   by (simp add: number_of_is_id rat_number_of_def)
   651   by (simp add: number_of_is_id rat_number_of_def)
   650 
   652 
   651 definition
   653 definition
   652   [code func del]: "Fract' (b\<Colon>bool) k l = Fract k l"
   654   [code func del]: "Fract' (b\<Colon>bool) k l = Fract k l"