Math Z3Py:从方程组生成抽象公式 我的例子:方程组 伪代码约束库 解决方案 我想要的信息

Math Z3Py:从方程组生成抽象公式 我的例子:方程组 伪代码约束库 解决方案 我想要的信息,math,constraints,z3,proof,theorem-proving,Math,Constraints,Z3,Proof,Theorem Proving,在方程组中,我想获得以下知识: 抽象公式,我可以使用它从给定值(在约束库中)计算变量值(解决方案) (就像在高中,老师不仅想让学生看到结果,还想让学生看到这样一个经过改造的抽象公式。) 公式,如… 我的问题 如何使用Z3Py从Z3约束方程组检索此信息 谢谢如果有什么不清楚的地方,请评论错误。Z3不是提取此类信息的理想工具。 在内部,它有一些模块(例如高斯消去法),这些模块对于在特定情况下实现此类功能可能很有用,但它们没有在Z3API中公开。 你所描述的问题很有趣,但也很重要。一般来说,输入不仅

在方程组中,我想获得以下知识:

抽象公式,我可以使用它从给定值(在约束库中)计算变量值(解决方案)

(就像在高中,老师不仅想让学生看到结果,还想让学生看到这样一个经过改造的抽象公式。)

公式,如… 我的问题 如何使用Z3Py从Z3约束方程组检索此信息


谢谢如果有什么不清楚的地方,请评论错误。

Z3不是提取此类信息的理想工具。 在内部,它有一些模块(例如高斯消去法),这些模块对于在特定情况下实现此类功能可能很有用,但它们没有在Z3API中公开。

你所描述的问题很有趣,但也很重要。一般来说,输入不仅仅是一组方程。此外,即使我们只有方程,但它们是非线性的,那么也不可能得到像你问题中描述的那样的“已解”形式。在非线性的情况下,我们可以把方程放在三角形的形式,但就是这样。另一个问题是,即使解的数量是有限的,它也不像线性情况下那样是唯一的。
此外,一般来说,非线性方程组的解不能用根来表示。在内部,Z3用于表示解决方案

Z3不是提取此类信息的理想工具。 在内部,它有一些模块(例如高斯消去法),这些模块对于在特定情况下实现此类功能可能很有用,但它们没有在Z3API中公开。

你所描述的问题很有趣,但也很重要。一般来说,输入不仅仅是一组方程。此外,即使我们只有方程,但它们是非线性的,那么也不可能得到像你问题中描述的那样的“已解”形式。在非线性的情况下,我们可以把方程放在三角形的形式,但就是这样。另一个问题是,即使解的数量是有限的,它也不像线性情况下那样是唯一的。 此外,一般来说,非线性方程组的解不能用根来表示。在内部,Z3用于表示解决方案

  a = b+c
∧ e = a*c

∧ a = +2     ; some replaceable concrete values
∧ c = +18
  b = -16
∧ e = -32
  b = a-c     ; is an equivalent transformation from `a = b+c`
∧ e = (a-c)*c ; is an term replacement `b → a-c` of `e = a*c`