为什么赢得以下类型检查:
minusReduces : (n : Nat) -> n `minus` Z = n
minusReduces n = Refl
然而,这将很好地解决问题:
plusReduces : (n : Nat) -> Z `plus` n = n
plusReduces n = Refl
答案 0 :(得分:6)
minus n
没有减少,因为minus
是defined,第一个参数上有模式匹配:
total minus : Nat -> Nat -> Nat
minus Z right = Z
minus left Z = left
minus (S left) (S right) = minus left right
因此,您还需要分割Z
和S n
个案例:
minusReduces : (n : Nat) -> n `minus` Z = n
minusReduces Z = Refl
minusReduces (S k) = Refl