union UInt
fun div2(b:UInt)
fun fromNat(Nat) -> UInt
fun log(b:UInt) {
cnt_dubs(pred(b))
}
fun max(x:UInt, y:UInt) {
if x < y then
y
else
x
}
fun min(x:UInt, y:UInt) {
if x < y then
x
else
y
}
fun operator *(UInt,UInt) -> UInt
fun operator +(UInt,UInt) -> UInt
fun operator <(UInt,UInt) -> bool
fun operator >(x:UInt, y:UInt) {
y < x
}
fun operator ^(a:UInt, b:UInt)
fun operator ∸(UInt,UInt) -> UInt
fun operator ≤(x:UInt, y:UInt) {
(x < y or x = y)
}
fun operator ≥(x:UInt, y:UInt) {
y ≤ x
}
fun sqr(a:UInt) {
a * a
}
fun toNat(UInt) -> Nat