# 为什么不稳定分支不能证明定理而主分支能够呢？Why the unstable branch is not able to prove a theorem but the master branch is able?

`````` (declare-sort S)
(declare-fun identity () S)
(declare-fun product (S S S) Bool)
(declare-fun inverse (S) S)
(declare-fun multiply (S S) S)

(assert (forall ((X S)) (product identity X X) ))
(assert (forall ((X S)) (product X identity X) ))
(assert (forall ((X S)) (product (inverse X) X identity) ))
(assert (forall ((X S)) (product X (inverse X) identity) ))
(assert (forall ((X S) (Y S)) (product X Y (multiply X Y)) ))
;;(assert (forall ((X S) (Y S) (Z S) (W S)) (or (not (product X Y Z))
;;                                              (not (product X Y W))
;;                                              (= Z W))))

(assert (forall ((X S) (Y S) (Z S) (U S) (V S) (W S)) (or (not (product X Y U))
(not (product Y Z V))
(not (product U Z W) )
(product X V W))))

(assert (forall ((X S) (Y S) (Z S) (U S) (V S) (W S)) (or (not (product X Y U))
(not (product Y Z V))
(not (product X V W) )
(product U Z W))))

(check-sat)

(push)
;; File     : GRP001-1 : TPTP v6.0.0. Released v1.0.0.
;; Domain   : Group Theory
;; Problem  : X^2 = identity => commutativity
;; Version  : [MOW76] axioms.
;; English  : If the square of every element is the identity, the system
;;            is commutative.
(declare-fun a () S)
(declare-fun b () S)
(declare-fun c () S)
(assert (forall ((X S)) (product X X identity) ))
(assert (product a b c))
(assert (not (product b a c)))
(check-sat)
(pop)
``````

## 本文未有回复，本站智能推荐：

1回复

1回复

2回复

1回复

1回复

1回复

1回复

1回复

1回复

1回复

### 如何使用Z3 SMT-LIB证明D3组的定理

D3组的产品表是： 使用以下Z3 SMT-LIB代码可以获得表示形式： 在此代码中，函数f给出乘积，函数g给出反函数。 相应的输出是： 使用此表示法可以证明以下定理： 证明是： 与输出 在此处运行完整代码 问题是：有可能获得关于该定理的更优