equal
deleted
inserted
replaced
16 |
16 |
17 local |
17 local |
18 |
18 |
19 fun mk_number i = |
19 fun mk_number i = |
20 let |
20 let |
21 fun mk 0 = Syntax.const @{const_syntax Int.Pls} |
21 fun mk 1 = Syntax.const @{const_syntax Num.One} |
22 | mk ~1 = Syntax.const @{const_syntax Int.Min} |
|
23 | mk i = |
22 | mk i = |
24 let val (q, r) = Integer.div_mod i 2 |
23 let val (q, r) = Integer.div_mod i 2 |
25 in HOLogic.mk_bit r $ (mk q) end; |
24 in HOLogic.mk_bit r $ (mk q) end; |
26 in Syntax.const @{const_syntax Int.number_of} $ mk i end; |
25 in |
|
26 if i = 0 then Syntax.const @{const_syntax Groups.zero} |
|
27 else if i > 0 then Syntax.const @{const_syntax Num.numeral} $ mk i |
|
28 else Syntax.const @{const_syntax Num.neg_numeral} $ mk (~i) |
|
29 end; |
27 |
30 |
28 fun mk_frac str = |
31 fun mk_frac str = |
29 let |
32 let |
30 val {mant = i, exp = n} = Lexicon.read_float str; |
33 val {mant = i, exp = n} = Lexicon.read_float str; |
31 val exp = Syntax.const @{const_syntax Power.power}; |
34 val exp = Syntax.const @{const_syntax Power.power}; |