如何证明Agda中有理数的交换性?

时间:2015-11-26 02:36:24

标签: agda

我试图证明agda的交换属性。我试图探索标准库,但有很多复杂的东西我无法理解。 我试过这种方式 -

comm : (a b : Q) -> (a + b) === (b + a)

这里的问题是+没有在库中用Q定义。我们不能在没有定义+ over Q的情况下证明这一点。 请指导我。

2 个答案:

答案 0 :(得分:1)

如果没有先定义 + ,就无法证明这一点。

如果你在探索标准库时感到困惑,我建议你先尝试更容易地证明一些事情,以便在解决这个问题之前更加熟悉Agda。

答案 1 :(得分:0)

当然,你无法证明未定义函数_+_的交换性;作为一个愚蠢的反例,你希望能够证明(a - b) == (b - a)吗?如果没有,为什么不呢?此时_-__+_一样具有未定义的功能;它只是有一个不同的名字......

请注意,您可以使用小学数学定义的附加内容:

n ÷ p + m ÷ q = (n * q + m * p) ÷ (p * q)

通过将n * q + m * pp * q与GCD分开来简化它。我已在this answer中解释了最后一步的细节。