src/HOL/Tools/numeral_syntax.ML
changeset 21789 c4f6bb392030
parent 21780 ec264b9daf94
child 21821 7fa19d17f488
equal deleted inserted replaced
21788:d460465a9f97 21789:c4f6bb392030
    22   let
    22   let
    23     val {leading_zeros = z, value, ...} = Syntax.read_xnum num;
    23     val {leading_zeros = z, value, ...} = Syntax.read_xnum num;
    24     fun bit b bs = Syntax.const "\\<^const>Numeral.Bit" $ bs $ HOLogic.mk_bit b;
    24     fun bit b bs = Syntax.const "\\<^const>Numeral.Bit" $ bs $ HOLogic.mk_bit b;
    25     fun mk 0 = (* FIXME funpow z (bit 0) *) (Syntax.const "\\<^const>Numeral.Pls")
    25     fun mk 0 = (* FIXME funpow z (bit 0) *) (Syntax.const "\\<^const>Numeral.Pls")
    26       | mk ~1 = (* FIXME funpow z (bit 1) *) (Syntax.const "\\<^const>Numeral.Min")
    26       | mk ~1 = (* FIXME funpow z (bit 1) *) (Syntax.const "\\<^const>Numeral.Min")
    27       | mk i = let val (q, r) = IntInf.divMod (i, 2) in bit r (mk q) end;
    27       | mk i = let val (q, r) = IntInf.divMod (i, 2) in bit (IntInf.toInt r) (mk q) end;
    28   in mk value end;
    28   in mk value end;
    29 
    29 
    30 in
    30 in
    31 
    31 
    32 fun numeral_tr (*"_Numeral"*) [t as Const (num, _)] =
    32 fun numeral_tr (*"_Numeral"*) [t as Const (num, _)] =