是否有可能用z3证明包括阶乘的数学陈述?

时间:2017-01-23 16:11:49

标签: z3 maxima theorem-proving wolframalpha

我想证明以下

enter image description here

wolfram alpha似乎能够辨别它确实是true,虽然它没有提供证据,而且最大值无法决定(没有意外):

declare(n, integer) $
assume(n > 0) $
is(equals(2^n - n - 1 - sum(binomial(n,k), k, 2, n), 0));
=> unknown

现在我想我会带出大枪并尝试Z3(即使我只完成了教程),但我仍然试图告诉它关于阶乘。这些证据是否高于Z3的薪资水平?

编辑:特定问题并不重要。我只是想研究可以解决这一系列问题的工具。

EDIT2:修正了wolfram alpha链接。

3 个答案:

答案 0 :(得分:1)

这远远超出了Z3的目标范围。 对于阶乘,二项式没有内在的理解。 它对指数的推理非常有限。

答案 1 :(得分:1)

Maxima有一个名为simplify_sum的软件包,它可以应用大量身份并将许多摘要减少到其他表达式。

(%i65) load (simplify_sum);
(%o65) /usr/share/maxima/5.39.0/share/solve_rec/simplify_sum.mac
(%i66) simplify_sum (sum(binomial(n,k), k, 2, n));
                     n
(%o66)              2  - n - 1

答案 2 :(得分:0)

Maxima似乎也能够辨别出它是真的。尝试

sum(binomial(n,k),k,2,n),simpsum;