equal
deleted
inserted
replaced
2940 fun char_type_tr' ctxt [Const (\<^const_syntax>\<open>Pure.type\<close>, Type (_, [T]))] = |
2940 fun char_type_tr' ctxt [Const (\<^const_syntax>\<open>Pure.type\<close>, Type (_, [T]))] = |
2941 Syntax.const \<^syntax_const>\<open>_type_char\<close> $ Syntax_Phases.term_of_typ ctxt T |
2941 Syntax.const \<^syntax_const>\<open>_type_char\<close> $ Syntax_Phases.term_of_typ ctxt T |
2942 in [(\<^const_syntax>\<open>semiring_char\<close>, char_type_tr')] end |
2942 in [(\<^const_syntax>\<open>semiring_char\<close>, char_type_tr')] end |
2943 \<close> |
2943 \<close> |
2944 |
2944 |
|
2945 |
|
2946 lemma CHAR_not_1 [simp]: "CHAR('a :: {semiring_1, zero_neq_one}) \<noteq> Suc 0" |
|
2947 by (metis One_nat_def of_nat_1 of_nat_CHAR zero_neq_one) |
|
2948 |
|
2949 lemma (in idom) CHAR_not_1' [simp]: "CHAR('a) \<noteq> Suc 0" |
|
2950 using local.of_nat_CHAR by fastforce |
|
2951 |
2945 end |
2952 end |