34 lines
1.3 KiB
Text
34 lines
1.3 KiB
Text
def UInt32.ofNatCore' (n : Nat) (h : Less n UInt32.size) : UInt32 := {
|
|
val := { val := n, isLt := h }
|
|
}
|
|
|
|
#eval UInt32.ofNatCore' 10 decide!
|
|
|
|
def UInt64.ofNatCore' (n : Nat) (h : Less n UInt64.size) : UInt64 := {
|
|
val := { val := n, isLt := h }
|
|
}
|
|
|
|
#eval UInt64.ofNatCore' 3 decide!
|
|
|
|
#eval toString $ { val := { val := 3, isLt := decide! } : UInt8 }
|
|
#eval (3 : UInt8).val
|
|
#eval toString $ { val := { val := 3, isLt := decide! } : UInt16 }
|
|
#eval (3 : UInt16).val
|
|
#eval toString $ { val := { val := 3, isLt := decide! } : UInt32 }
|
|
#eval (3 : UInt32).val
|
|
#eval toString $ { val := { val := 3, isLt := decide! } : UInt64 }
|
|
#eval (3 : UInt64).val
|
|
#eval toString $ { val := { val := 3, isLt := (match USize.size, usizeSzEq with | _, Or.inl rfl => decide! | _, Or.inr rfl => decide!) } : USize }
|
|
#eval (3 : USize).val
|
|
|
|
|
|
#eval toString $ { val := { val := 4, isLt := decide! } : UInt8 }
|
|
#eval (4 : UInt8).val
|
|
#eval toString $ { val := { val := 4, isLt := decide! } : UInt16 }
|
|
#eval (4 : UInt16).val
|
|
#eval toString $ { val := { val := 4, isLt := decide! } : UInt32 }
|
|
#eval (4 : UInt32).val
|
|
#eval toString $ { val := { val := 4, isLt := decide! } : UInt64 }
|
|
#eval (4 : UInt64).val
|
|
#eval toString $ { val := { val := 4, isLt := (match USize.size, usizeSzEq with | _, Or.inl rfl => decide! | _, Or.inr rfl => decide!) } : USize }
|
|
#eval (4 : USize).val
|