为什么这段代码不适用于agda?

时间:2015-12-29 14:30:58

标签: agda

我试图在乘法运算中证明交换性质超过自然数。

b + a * b ≡ b * suc a

当我检查目标时,我发现它是lemma*-swap : ∀ a b → a + a * b ≡ a * suc b 。所以我证明了这一点。

*comm : ∀ a b → (a * b) ≡ (b * a)
*comm zero b = sym (rightId* b)
*comm (suc a) b = lemma*-swap b a

现在我尝试了:

.setResultTransformer(new AliasToBeanTransformer<Employee>(Employee.class));

这应该有效,因为它满足了目标,但为什么这不起作用?请建议我在哪里错。

1 个答案:

答案 0 :(得分:4)

b + a * b(目标中的表达式)和a + a * blemma*-swap中的表达式)是截然不同的,因此应用lemma*-swap 不会满足目标。

您需要rewrite归纳假设*comm a ba * b转换为目标中的b * a,以便表达式lemma*-swap b a可以用来释放目标