TSTP Solution File: ALG210+1 by Twee---2.4.2

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Twee---2.4.2
% Problem  : ALG210+1 : TPTP v8.1.2. Released v3.1.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 : n025.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 : Wed Aug 30 16:42:30 EDT 2023

% Result   : Theorem 0.14s 0.50s
% Output   : Proof 0.14s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.05/0.21  % Problem  : ALG210+1 : TPTP v8.1.2. Released v3.1.0.
% 0.05/0.22  % Command  : parallel-twee %s --tstp --conditional-encoding if --smaller --drop-non-horn --give-up-on-saturation --explain-encoding --formal-proof
% 0.09/0.43  % Computer : n025.cluster.edu
% 0.09/0.43  % Model    : x86_64 x86_64
% 0.09/0.43  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.09/0.43  % Memory   : 8042.1875MB
% 0.09/0.43  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.09/0.43  % CPULimit : 300
% 0.09/0.43  % WCLimit  : 300
% 0.09/0.43  % DateTime : Mon Aug 28 04:48:54 EDT 2023
% 0.09/0.43  % CPUTime  : 
% 0.14/0.50  Command-line arguments: --lhs-weight 1 --flip-ordering --normalise-queue-percent 10 --cp-renormalise-threshold 10
% 0.14/0.50  
% 0.14/0.50  % SZS status Theorem
% 0.14/0.52  
% 0.14/0.54  % SZS output start Proof
% 0.14/0.54  Take the following subset of the input axioms:
% 0.14/0.54    fof(axiom_1, axiom, ![A, B, C]: times(times(A, B), C)=times(B, times(C, A))).
% 0.14/0.54    fof(axiom_2, axiom, ![B2]: (element(B2) <=> ?[C2]: (times(B2, C2)=B2 & times(B2, B2)=C2))).
% 0.14/0.54    fof(conjecture_1, conjecture, ![A2, B2]: ((element(A2) & element(B2)) => element(times(A2, B2)))).
% 0.14/0.54  
% 0.14/0.54  Now clausify the problem and encode Horn clauses using encoding 3 of
% 0.14/0.54  http://www.cse.chalmers.se/~nicsma/papers/horn.pdf.
% 0.14/0.54  We repeatedly replace C & s=t => u=v by the two clauses:
% 0.14/0.54    fresh(y, y, x1...xn) = u
% 0.14/0.54    C => fresh(s, t, x1...xn) = v
% 0.14/0.54  where fresh is a fresh function symbol and x1..xn are the free
% 0.14/0.54  variables of u and v.
% 0.14/0.54  A predicate p(X) is encoded as p(X)=true (this is sound, because the
% 0.14/0.54  input problem has no model of domain size 1).
% 0.14/0.54  
% 0.14/0.54  The encoding turns the above axioms into the following unit equations and goals:
% 0.14/0.54  
% 0.14/0.54  Axiom 1 (conjecture_1): element(b) = true.
% 0.14/0.54  Axiom 2 (conjecture_1_1): element(a) = true.
% 0.14/0.54  Axiom 3 (axiom_2_1): fresh(X, X, Y) = Y.
% 0.14/0.54  Axiom 4 (axiom_2): fresh4(X, X, Y) = true.
% 0.14/0.54  Axiom 5 (axiom_2_2): fresh2(X, X, Y) = c(Y).
% 0.14/0.54  Axiom 6 (axiom_1): times(times(X, Y), Z) = times(Y, times(Z, X)).
% 0.14/0.54  Axiom 7 (axiom_2_1): fresh(element(X), true, X) = times(X, c(X)).
% 0.14/0.54  Axiom 8 (axiom_2): fresh3(X, X, Y, Z) = element(Y).
% 0.14/0.54  Axiom 9 (axiom_2_2): fresh2(element(X), true, X) = times(X, X).
% 0.14/0.54  Axiom 10 (axiom_2): fresh3(times(X, X), Y, X, Y) = fresh4(times(X, Y), X, X).
% 0.14/0.54  
% 0.14/0.54  Lemma 11: times(b, b) = c(b).
% 0.14/0.54  Proof:
% 0.14/0.54    times(b, b)
% 0.14/0.54  = { by axiom 9 (axiom_2_2) R->L }
% 0.14/0.54    fresh2(element(b), true, b)
% 0.14/0.54  = { by axiom 1 (conjecture_1) }
% 0.14/0.54    fresh2(true, true, b)
% 0.14/0.54  = { by axiom 5 (axiom_2_2) }
% 0.14/0.54    c(b)
% 0.14/0.54  
% 0.14/0.54  Lemma 12: times(a, a) = c(a).
% 0.14/0.54  Proof:
% 0.14/0.54    times(a, a)
% 0.14/0.54  = { by axiom 9 (axiom_2_2) R->L }
% 0.14/0.54    fresh2(element(a), true, a)
% 0.14/0.54  = { by axiom 2 (conjecture_1_1) }
% 0.14/0.54    fresh2(true, true, a)
% 0.14/0.54  = { by axiom 5 (axiom_2_2) }
% 0.14/0.54    c(a)
% 0.14/0.54  
% 0.14/0.54  Lemma 13: times(b, c(b)) = b.
% 0.14/0.54  Proof:
% 0.14/0.54    times(b, c(b))
% 0.14/0.54  = { by axiom 7 (axiom_2_1) R->L }
% 0.14/0.54    fresh(element(b), true, b)
% 0.14/0.54  = { by axiom 1 (conjecture_1) }
% 0.14/0.54    fresh(true, true, b)
% 0.14/0.54  = { by axiom 3 (axiom_2_1) }
% 0.14/0.54    b
% 0.14/0.54  
% 0.14/0.54  Lemma 14: times(a, times(X, a)) = times(c(a), X).
% 0.14/0.54  Proof:
% 0.14/0.54    times(a, times(X, a))
% 0.14/0.54  = { by axiom 6 (axiom_1) R->L }
% 0.14/0.54    times(times(a, a), X)
% 0.14/0.54  = { by lemma 12 }
% 0.14/0.54    times(c(a), X)
% 0.14/0.54  
% 0.14/0.54  Lemma 15: times(times(a, X), a) = times(X, c(a)).
% 0.14/0.54  Proof:
% 0.14/0.54    times(times(a, X), a)
% 0.14/0.54  = { by axiom 6 (axiom_1) }
% 0.14/0.54    times(X, times(a, a))
% 0.14/0.54  = { by lemma 12 }
% 0.14/0.54    times(X, c(a))
% 0.14/0.54  
% 0.14/0.54  Lemma 16: times(X, times(Y, times(Z, W))) = times(Z, times(W, times(X, Y))).
% 0.14/0.54  Proof:
% 0.14/0.54    times(X, times(Y, times(Z, W)))
% 0.14/0.54  = { by axiom 6 (axiom_1) R->L }
% 0.14/0.54    times(times(times(Z, W), X), Y)
% 0.14/0.54  = { by axiom 6 (axiom_1) }
% 0.14/0.54    times(times(W, times(X, Z)), Y)
% 0.14/0.54  = { by axiom 6 (axiom_1) }
% 0.14/0.54    times(times(X, Z), times(Y, W))
% 0.14/0.54  = { by axiom 6 (axiom_1) }
% 0.14/0.54    times(Z, times(times(Y, W), X))
% 0.14/0.54  = { by axiom 6 (axiom_1) }
% 0.14/0.54    times(Z, times(W, times(X, Y)))
% 0.14/0.54  
% 0.14/0.54  Lemma 17: times(b, times(c(b), times(X, Y))) = times(X, times(Y, b)).
% 0.14/0.54  Proof:
% 0.14/0.54    times(b, times(c(b), times(X, Y)))
% 0.14/0.54  = { by lemma 16 R->L }
% 0.14/0.54    times(X, times(Y, times(b, c(b))))
% 0.14/0.54  = { by lemma 13 }
% 0.14/0.54    times(X, times(Y, b))
% 0.14/0.54  
% 0.14/0.54  Goal 1 (conjecture_1_2): element(times(a, b)) = true.
% 0.14/0.54  Proof:
% 0.14/0.54    element(times(a, b))
% 0.14/0.54  = { by axiom 8 (axiom_2) R->L }
% 0.14/0.54    fresh3(times(times(a, b), times(a, b)), times(times(a, b), times(a, b)), times(a, b), times(times(a, b), times(a, b)))
% 0.14/0.54  = { by axiom 10 (axiom_2) }
% 0.14/0.54    fresh4(times(times(a, b), times(times(a, b), times(a, b))), times(a, b), times(a, b))
% 0.14/0.54  = { by lemma 16 }
% 0.14/0.54    fresh4(times(a, times(b, times(times(a, b), times(a, b)))), times(a, b), times(a, b))
% 0.14/0.54  = { by lemma 17 R->L }
% 0.14/0.54    fresh4(times(a, times(b, times(b, times(c(b), times(times(a, b), a))))), times(a, b), times(a, b))
% 0.14/0.54  = { by lemma 15 }
% 0.14/0.54    fresh4(times(a, times(b, times(b, times(c(b), times(b, c(a)))))), times(a, b), times(a, b))
% 0.14/0.54  = { by lemma 17 }
% 0.14/0.54    fresh4(times(a, times(b, times(b, times(c(a), b)))), times(a, b), times(a, b))
% 0.14/0.54  = { by axiom 6 (axiom_1) R->L }
% 0.14/0.54    fresh4(times(a, times(b, times(times(b, b), c(a)))), times(a, b), times(a, b))
% 0.14/0.54  = { by lemma 11 }
% 0.14/0.54    fresh4(times(a, times(b, times(c(b), c(a)))), times(a, b), times(a, b))
% 0.14/0.54  = { by lemma 12 R->L }
% 0.14/0.54    fresh4(times(a, times(b, times(c(b), times(a, a)))), times(a, b), times(a, b))
% 0.14/0.54  = { by lemma 17 }
% 0.14/0.54    fresh4(times(a, times(a, times(a, b))), times(a, b), times(a, b))
% 0.14/0.54  = { by lemma 16 }
% 0.14/0.54    fresh4(times(a, times(b, times(a, a))), times(a, b), times(a, b))
% 0.14/0.54  = { by lemma 12 }
% 0.14/0.54    fresh4(times(a, times(b, c(a))), times(a, b), times(a, b))
% 0.14/0.54  = { by lemma 15 R->L }
% 0.14/0.54    fresh4(times(a, times(times(a, b), a)), times(a, b), times(a, b))
% 0.14/0.54  = { by lemma 14 }
% 0.14/0.54    fresh4(times(c(a), times(a, b)), times(a, b), times(a, b))
% 0.14/0.54  = { by lemma 17 R->L }
% 0.14/0.54    fresh4(times(b, times(c(b), times(c(a), a))), times(a, b), times(a, b))
% 0.14/0.54  = { by lemma 14 R->L }
% 0.14/0.54    fresh4(times(b, times(c(b), times(a, times(a, a)))), times(a, b), times(a, b))
% 0.14/0.54  = { by lemma 12 }
% 0.14/0.54    fresh4(times(b, times(c(b), times(a, c(a)))), times(a, b), times(a, b))
% 0.14/0.54  = { by axiom 7 (axiom_2_1) R->L }
% 0.14/0.54    fresh4(times(b, times(c(b), fresh(element(a), true, a))), times(a, b), times(a, b))
% 0.14/0.54  = { by axiom 2 (conjecture_1_1) }
% 0.14/0.54    fresh4(times(b, times(c(b), fresh(true, true, a))), times(a, b), times(a, b))
% 0.14/0.54  = { by axiom 3 (axiom_2_1) }
% 0.14/0.54    fresh4(times(b, times(c(b), a)), times(a, b), times(a, b))
% 0.14/0.54  = { by axiom 6 (axiom_1) R->L }
% 0.14/0.54    fresh4(times(times(a, b), c(b)), times(a, b), times(a, b))
% 0.14/0.54  = { by lemma 11 R->L }
% 0.14/0.54    fresh4(times(times(a, b), times(b, b)), times(a, b), times(a, b))
% 0.14/0.54  = { by axiom 6 (axiom_1) }
% 0.14/0.54    fresh4(times(b, times(times(b, b), a)), times(a, b), times(a, b))
% 0.14/0.54  = { by axiom 6 (axiom_1) }
% 0.14/0.54    fresh4(times(b, times(b, times(a, b))), times(a, b), times(a, b))
% 0.14/0.55  = { by lemma 16 }
% 0.14/0.55    fresh4(times(a, times(b, times(b, b))), times(a, b), times(a, b))
% 0.14/0.55  = { by lemma 11 }
% 0.14/0.55    fresh4(times(a, times(b, c(b))), times(a, b), times(a, b))
% 0.14/0.55  = { by lemma 13 }
% 0.14/0.55    fresh4(times(a, b), times(a, b), times(a, b))
% 0.14/0.55  = { by axiom 4 (axiom_2) }
% 0.14/0.55    true
% 0.14/0.55  % SZS output end Proof
% 0.14/0.55  
% 0.14/0.55  RESULT: Theorem (the conjecture is true).
%------------------------------------------------------------------------------