在以下程序中:
module Bytes
import Data.Fin
%default total
Byte : Type
Byte = Fin 256
fromNat : Nat -> Byte
fromNat n = maybe FZ (\x=>x) (natToFin n 256)
toNat : Byte -> Nat
toNat FZ = Z
toNat (FS b) = S (toNat b)
prop : (b : Byte) -> fromNat (toNat b) = b
prop FZ = ?prop_rhs_1
prop (FS x) = ?prop_rhs_2
洞?prop_rhs_1
未正确规范化。伊德里斯说它的背景是:
--------------------------------------
prop_rhs_1 : maybe (Delay FZ) (Delay (\x => x)) (natToFin _ 256) = FZ
请注意,它显示(natToFin _ 256)
而不是(natToFin Z 256)
,应该标准化为Just FZ
。