equal
deleted
inserted
replaced
15 lemma char_of_integer_of_char [code abstype]: |
15 lemma char_of_integer_of_char [code abstype]: |
16 \<open>Chr (integer_of_char c) = c\<close> |
16 \<open>Chr (integer_of_char c) = c\<close> |
17 by (simp add: integer_of_char_def) |
17 by (simp add: integer_of_char_def) |
18 |
18 |
19 lemma char_of_integer_code [code]: |
19 lemma char_of_integer_code [code]: |
20 \<open>integer_of_char (char_of_integer k) = (if 0 \<le> k \<and> k < 256 then k else take_bit 8 k)\<close> |
20 \<open>integer_of_char (char_of_integer k) = (if 0 \<le> k \<and> k < 256 then k else k mod 256)\<close> |
21 by (simp add: integer_of_char_def char_of_integer_def take_bit_eq_mod unique_euclidean_semiring_numeral_class.mod_less) |
21 by (simp add: integer_of_char_def char_of_integer_def take_bit_eq_mod unique_euclidean_semiring_numeral_class.mod_less) |
22 |
22 |
23 lemma of_char_code [code]: |
23 lemma of_char_code [code]: |
24 \<open>of_char c = of_nat (nat_of_integer (integer_of_char c))\<close> |
24 \<open>of_char c = of_nat (nat_of_integer (integer_of_char c))\<close> |
25 proof - |
25 proof - |
47 by simp |
47 by simp |
48 |
48 |
49 lemma Char_code [code]: |
49 lemma Char_code [code]: |
50 \<open>integer_of_char (Char b0 b1 b2 b3 b4 b5 b6 b7) = byte b0 b1 b2 b3 b4 b5 b6 b7\<close> |
50 \<open>integer_of_char (Char b0 b1 b2 b3 b4 b5 b6 b7) = byte b0 b1 b2 b3 b4 b5 b6 b7\<close> |
51 by (simp add: integer_of_char_def) |
51 by (simp add: integer_of_char_def) |
52 |
52 |
53 lemma digit_0_code [code]: |
53 lemma digit_0_code [code]: |
54 \<open>digit0 c \<longleftrightarrow> bit (integer_of_char c) 0\<close> |
54 \<open>digit0 c \<longleftrightarrow> bit (integer_of_char c) 0\<close> |
55 by (cases c) (simp add: integer_of_char_def) |
55 by (cases c) (simp add: integer_of_char_def) |
56 |
56 |
57 lemma digit_1_code [code]: |
57 lemma digit_1_code [code]: |