我已经开始玩 Cubical Agda。我尝试做的最后一件事是构建整数类型(假设已经定义了自然数的类型),其方式类似于经典数学中的完成方式(参见wikipedia 上的整数构造)。这是
data dInt : Set where
_⊝_ : ℕ → ℕ → dInt
canc : ∀ a b c d → a + d ≡ b + c → a ⊝ b ≡ c ⊝ d
trunc : isSet (dInt)
之后,我想定义加法
_++_ : dInt → dInt → dInt
(x ⊝ z) ++ (u ⊝ v) = (x + u) ⊝ (z + v)
(x ⊝ z) ++ canc a b c d u i = canc (x + a) (z + b) (x + c) (z + d) {! !} i
...
我现在卡在两个牙套之间的部分。x + a + (z + d) ≡ z + b + (x + c)
询问类型术语。不想手动证明这一点,我想使用Cubical Agda 制造的环求解器。但我永远无法让它工作,甚至尝试将它设置为简单的环等式,如x + x + x ≡ 3 * x
.
我怎样才能使它工作?有没有一个最小的例子使它适用于自然?库中有一个文件 NatExamples.agda,但它使您必须以复杂的方式重写您的等式。