equal
deleted
inserted
replaced
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, _)] = |