src/HOL/Tools/numeral_syntax.ML
changeset 46236 ae79f2978a67
parent 42290 b1f544c84040
equal deleted inserted replaced
46235:e4e0b5190f3d 46236:ae79f2978a67
    24       | mk i = let val (q, r) = Integer.div_mod i 2 in bit r (mk q) end;
    24       | mk i = let val (q, r) = Integer.div_mod i 2 in bit r (mk q) end;
    25   in mk (#value (Lexicon.read_xnum num)) end;
    25   in mk (#value (Lexicon.read_xnum num)) end;
    26 
    26 
    27 in
    27 in
    28 
    28 
    29 fun numeral_tr (*"_Numeral"*) [t as Const (num, _)] =
    29 fun numeral_tr [(c as Const (@{syntax_const "_constrain"}, _)) $ t $ u] = c $ numeral_tr [t] $ u
    30       Syntax.const @{const_syntax Int.number_of} $ mk_bin num
    30   | numeral_tr [t as Const (num, _)] = Syntax.const @{const_syntax Int.number_of} $ mk_bin num
    31   | numeral_tr (*"_Numeral"*) ts = raise TERM ("numeral_tr", ts);
    31   | numeral_tr ts = raise TERM ("numeral_tr", ts);
    32 
    32 
    33 end;
    33 end;
    34 
    34 
    35 
    35 
    36 (* print translation *)
    36 (* print translation *)