这是我想要证明的定理。
prob4 : ∀(w x y z : ℕ) → w * (x + y + z) ≡ z * w + x * w + w * y
prob 4 = {!!}
这就是我写的
open import Data.Nat
open import Data.Nat.Properties.Simple
open import Relation.Binary.PropositionalEquality
prob4a : ∀ (w x y z : ℕ) → w * (x + y + z) ≡ w * x + w * y + w * z
prob4a 0 x y z = refl
prob4a (suc w) x y z rewrite prob4a w x y z
| +-assoc (x + y + z) (w * x) (w * y) (w * z) = ?
我创建了一个新的定理prob4a,以便按正确的顺序排列输出。并且它能够使用nat.thms.agda中的定理来证明它。
,错误是
那是什么意思?我怎样才能纠正它以使证明有效?
x + y + z + w * x + w * y ≡ x + y + z + (w * x + w * y)
应该是 功能类型,但事实并非如此 当检查(w * z)
是函数的有效参数时 输入x + y + z + w * x + w * y ≡ x + y + z + (w * x + w * y)
答案 0 :(得分:2)
+-assoc
只需要3个参数,但你已经传递了4个参数。
Agda抱怨而不是相等类型不是函数类型,因为应用于3个参数的+-assoc
的结果是相等类型,但是传递第4个参数意味着你希望它是一个函数。