我正在尝试使用以下Z3 SMT-LIB代码证明群论中的一个定理

 (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)

请在此处在线运行此代码。

主分支Z3可以证明这样的定理,但不稳定分支不能。 请让我知道为什么。 非常感谢。

  ask by Juan Ospina translate from so

本文未有回复,本站智能推荐: