Abstract syntax: \kwN elem-of Nml = binary numerals
.ta \nwu
	I elem-of Int = binary integers
	F elem-of Frac = binary fractions

    N ::= I . F
    I ::= 0 | 1 | I 0 | I 1
    F ::= 0 | 1 | 0 F | 1 F

Semantic domain: Z = real numbers

Semantic functions: \kwNm: Nml -> Z
.ta \nwu
	NIm: Int -> Z
	NFm: Frac -> Z

    Nm[[I . F]] = NIm[[I]] + NFm[[F]]
    NIm[[I 1]] = 2*NIm[[I]] + 1
    NIm[[I 0]] = 2*NIm[[I]]
    NIm[[1]] = 1
    NIm[[0]] = 0
    NFm[[1 F]] = 1/2 + NFm[[B]]/2
    NFm[[0 F]] = NFm[[B]]/2
    NFm[[1]] = 1/2
    NFm[[0]] = 0

Test case: 1101.01
    Nm[[1101.01]] \kw= NIm[[1101]] + NFm[[01]]
.ta \nwu
	= (2*NIm[[110]] + 1) + (NFm[[1]]/2)
	= (2*(2*NIm[[11]]) + 1) + (NFm[[1]]/2)
	= (2*(2*(2*NIm[[1]] + 1)) + 1) + (NFm[[1]]/2)
	= (2*(2*(2*1 + 1)) + 1) + ((1/2)/2)