TSTP Solution File: GRP665+1 by Twee---2.4.2
View Problem
- Process Solution
%------------------------------------------------------------------------------
% File : Twee---2.4.2
% Problem : GRP665+1 : TPTP v8.1.2. Released v4.0.0.
% Transfm : none
% Format : tptp:raw
% Command : parallel-twee %s --tstp --conditional-encoding if --smaller --drop-non-horn --give-up-on-saturation --explain-encoding --formal-proof
% Computer : n023.cluster.edu
% Model : x86_64 x86_64
% CPU : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory : 8042.1875MB
% OS : Linux 3.10.0-693.el7.x86_64
% CPULimit : 300s
% WCLimit : 300s
% DateTime : Thu Aug 31 01:19:34 EDT 2023
% Result : Theorem 0.20s 0.38s
% Output : Proof 0.20s
% Verified :
% SZS Type : -
% Comments :
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.03/0.11 % Problem : GRP665+1 : TPTP v8.1.2. Released v4.0.0.
% 0.03/0.12 % Command : parallel-twee %s --tstp --conditional-encoding if --smaller --drop-non-horn --give-up-on-saturation --explain-encoding --formal-proof
% 0.13/0.33 % Computer : n023.cluster.edu
% 0.13/0.33 % Model : x86_64 x86_64
% 0.13/0.33 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.13/0.33 % Memory : 8042.1875MB
% 0.13/0.33 % OS : Linux 3.10.0-693.el7.x86_64
% 0.13/0.33 % CPULimit : 300
% 0.13/0.33 % WCLimit : 300
% 0.13/0.33 % DateTime : Tue Aug 29 00:08:55 EDT 2023
% 0.13/0.33 % CPUTime :
% 0.20/0.38 Command-line arguments: --no-flatten-goal
% 0.20/0.38
% 0.20/0.38 % SZS status Theorem
% 0.20/0.38
% 0.20/0.39 % SZS output start Proof
% 0.20/0.39 Take the following subset of the input axioms:
% 0.20/0.39 fof(f02, axiom, ![B, A]: ld(A, mult(A, B))=B).
% 0.20/0.39 fof(f04, axiom, ![A2, B2]: rd(mult(A2, B2), B2)=A2).
% 0.20/0.39 fof(f07, axiom, ![C, A2, B2]: mult(A2, mult(B2, C))=mult(rd(mult(A2, B2), A2), mult(A2, C))).
% 0.20/0.39 fof(f08, axiom, ![A2, B2, C2]: mult(mult(A2, B2), C2)=mult(mult(A2, C2), ld(C2, mult(B2, C2)))).
% 0.20/0.39 fof(f09, axiom, ![A2]: mult(op_c, A2)=mult(A2, op_c)).
% 0.20/0.39 fof(goals, conjecture, ![X0, X1]: (mult(op_c, mult(X0, X1))=mult(mult(op_c, X0), X1) & (mult(mult(X0, op_c), X1)=mult(X0, mult(op_c, X1)) & mult(mult(X0, X1), op_c)=mult(X0, mult(X1, op_c))))).
% 0.20/0.39
% 0.20/0.39 Now clausify the problem and encode Horn clauses using encoding 3 of
% 0.20/0.39 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf.
% 0.20/0.39 We repeatedly replace C & s=t => u=v by the two clauses:
% 0.20/0.39 fresh(y, y, x1...xn) = u
% 0.20/0.39 C => fresh(s, t, x1...xn) = v
% 0.20/0.39 where fresh is a fresh function symbol and x1..xn are the free
% 0.20/0.39 variables of u and v.
% 0.20/0.39 A predicate p(X) is encoded as p(X)=true (this is sound, because the
% 0.20/0.39 input problem has no model of domain size 1).
% 0.20/0.39
% 0.20/0.39 The encoding turns the above axioms into the following unit equations and goals:
% 0.20/0.39
% 0.20/0.39 Axiom 1 (f09): mult(op_c, X) = mult(X, op_c).
% 0.20/0.39 Axiom 2 (f02): ld(X, mult(X, Y)) = Y.
% 0.20/0.39 Axiom 3 (f04): rd(mult(X, Y), Y) = X.
% 0.20/0.39 Axiom 4 (f08): mult(mult(X, Y), Z) = mult(mult(X, Z), ld(Z, mult(Y, Z))).
% 0.20/0.39 Axiom 5 (f07): mult(X, mult(Y, Z)) = mult(rd(mult(X, Y), X), mult(X, Z)).
% 0.20/0.39
% 0.20/0.39 Lemma 6: mult(op_c, mult(X, Y)) = mult(X, mult(Y, op_c)).
% 0.20/0.39 Proof:
% 0.20/0.39 mult(op_c, mult(X, Y))
% 0.20/0.39 = { by axiom 5 (f07) }
% 0.20/0.39 mult(rd(mult(op_c, X), op_c), mult(op_c, Y))
% 0.20/0.39 = { by axiom 1 (f09) }
% 0.20/0.39 mult(rd(mult(X, op_c), op_c), mult(op_c, Y))
% 0.20/0.39 = { by axiom 3 (f04) }
% 0.20/0.39 mult(X, mult(op_c, Y))
% 0.20/0.39 = { by axiom 1 (f09) }
% 0.20/0.39 mult(X, mult(Y, op_c))
% 0.20/0.39
% 0.20/0.39 Lemma 7: mult(mult(X, op_c), Y) = mult(op_c, mult(X, Y)).
% 0.20/0.39 Proof:
% 0.20/0.39 mult(mult(X, op_c), Y)
% 0.20/0.39 = { by axiom 4 (f08) }
% 0.20/0.39 mult(mult(X, Y), ld(Y, mult(op_c, Y)))
% 0.20/0.39 = { by axiom 1 (f09) }
% 0.20/0.39 mult(mult(X, Y), ld(Y, mult(Y, op_c)))
% 0.20/0.39 = { by axiom 2 (f02) }
% 0.20/0.39 mult(mult(X, Y), op_c)
% 0.20/0.39 = { by axiom 1 (f09) R->L }
% 0.20/0.39 mult(op_c, mult(X, Y))
% 0.20/0.39
% 0.20/0.39 Goal 1 (goals): tuple(mult(op_c, mult(x0_3, x1_3)), mult(mult(x0_2, op_c), x1_2), mult(mult(x0, x1), op_c)) = tuple(mult(mult(op_c, x0_3), x1_3), mult(x0_2, mult(op_c, x1_2)), mult(x0, mult(x1, op_c))).
% 0.20/0.39 Proof:
% 0.20/0.39 tuple(mult(op_c, mult(x0_3, x1_3)), mult(mult(x0_2, op_c), x1_2), mult(mult(x0, x1), op_c))
% 0.20/0.39 = { by axiom 1 (f09) R->L }
% 0.20/0.39 tuple(mult(op_c, mult(x0_3, x1_3)), mult(mult(x0_2, op_c), x1_2), mult(op_c, mult(x0, x1)))
% 0.20/0.39 = { by lemma 7 }
% 0.20/0.39 tuple(mult(op_c, mult(x0_3, x1_3)), mult(op_c, mult(x0_2, x1_2)), mult(op_c, mult(x0, x1)))
% 0.20/0.39 = { by lemma 6 }
% 0.20/0.39 tuple(mult(x0_3, mult(x1_3, op_c)), mult(op_c, mult(x0_2, x1_2)), mult(op_c, mult(x0, x1)))
% 0.20/0.39 = { by lemma 6 }
% 0.20/0.39 tuple(mult(x0_3, mult(x1_3, op_c)), mult(x0_2, mult(x1_2, op_c)), mult(op_c, mult(x0, x1)))
% 0.20/0.39 = { by lemma 6 }
% 0.20/0.39 tuple(mult(x0_3, mult(x1_3, op_c)), mult(x0_2, mult(x1_2, op_c)), mult(x0, mult(x1, op_c)))
% 0.20/0.39 = { by lemma 6 R->L }
% 0.20/0.39 tuple(mult(op_c, mult(x0_3, x1_3)), mult(x0_2, mult(x1_2, op_c)), mult(x0, mult(x1, op_c)))
% 0.20/0.39 = { by lemma 7 R->L }
% 0.20/0.39 tuple(mult(mult(x0_3, op_c), x1_3), mult(x0_2, mult(x1_2, op_c)), mult(x0, mult(x1, op_c)))
% 0.20/0.39 = { by axiom 1 (f09) R->L }
% 0.20/0.39 tuple(mult(mult(x0_3, op_c), x1_3), mult(x0_2, mult(op_c, x1_2)), mult(x0, mult(x1, op_c)))
% 0.20/0.39 = { by axiom 1 (f09) R->L }
% 0.20/0.39 tuple(mult(mult(op_c, x0_3), x1_3), mult(x0_2, mult(op_c, x1_2)), mult(x0, mult(x1, op_c)))
% 0.20/0.39 % SZS output end Proof
% 0.20/0.39
% 0.20/0.39 RESULT: Theorem (the conjecture is true).
%------------------------------------------------------------------------------