src/HOL/Tools/numeral_syntax.ML
changeset 42290 b1f544c84040
parent 42248 04bffad68aa4
child 46236 ae79f2978a67
equal deleted inserted replaced
42289:dafae095d733 42290:b1f544c84040
    20   let
    20   let
    21     fun bit b bs = HOLogic.mk_bit b $ bs;
    21     fun bit b bs = HOLogic.mk_bit b $ bs;
    22     fun mk 0 = Syntax.const @{const_name Int.Pls}
    22     fun mk 0 = Syntax.const @{const_name Int.Pls}
    23       | mk ~1 = Syntax.const @{const_name Int.Min}
    23       | mk ~1 = Syntax.const @{const_name Int.Min}
    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 (Syntax.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 (*"_Numeral"*) [t as Const (num, _)] =
    30       Syntax.const @{const_syntax Int.number_of} $ mk_bin num
    30       Syntax.const @{const_syntax Int.number_of} $ mk_bin num