↑ Up

Prover9---2026-6A.THM-CRf.s

View TPTP
Problem
Process solution in
SystemOnTSTP
Download .tgz
%------------------------------------------------------------------------------
% File     : Prover9---2026-6A
% Problem  : KLE068+1 : TPTP v9.3.1. Released v4.0.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : prover9 -casc 300 -f /export/starexec/sandbox2/benchmark/theBenchmark.p

% Computer : n005.cluster.edu
% Model    : x86_64 x86_64
% CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory   : 8046.5625MB
% OS       : Linux 6.8.0-71-generic
% CPULimit : 300s
% WCLimit  : 300s
% DateTime : Sun Sep 27 07:44:15 AM UTC 2026

% Result   : Theorem 11.45s 1.93s
% Output   : CNFRefutation 11.45s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   27
%            Number of leaves      :   12
% Syntax   : Number of formulae    :  110 ( 110 unt;   0 def)
%            Number of atoms       :  110 ( 109 equ)
%            Maximal formula atoms :    1 (   1 avg)
%            Number of connectives :    7 (   7   ~;   0   |;   0   &)
%                                         (   0 <=>;   0  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    4 (   1 avg)
%            Maximal term depth    :    6 (   2 avg)
%            Number of predicates  :    2 (   0 usr;   1 prp; 0-2 aty)
%            Number of functors    :    6 (   6 usr;   3 con; 0-2 aty)
%            Number of variables   :  216 (  31 sgn  26   !;   2   ?)

% Comments : 
%------------------------------------------------------------------------------
fof(additive_commutativity,axiom,
    ! [A,B] : addition(A,B) = addition(B,A),
    file('theBenchmark.p',additive_commutativity) ).

fof(additive_associativity,axiom,
    ! [C,B,A] : addition(A,addition(B,C)) = addition(addition(A,B),C),
    file('theBenchmark.p',additive_associativity) ).

fof(multiplicative_associativity,axiom,
    ! [A,B,C] : multiplication(A,multiplication(B,C)) = multiplication(multiplication(A,B),C),
    file('theBenchmark.p',multiplicative_associativity) ).

fof(multiplicative_right_identity,axiom,
    ! [A] : multiplication(A,one) = A,
    file('theBenchmark.p',multiplicative_right_identity) ).

fof(multiplicative_left_identity,axiom,
    ! [A] : multiplication(one,A) = A,
    file('theBenchmark.p',multiplicative_left_identity) ).

fof(right_distributivity,axiom,
    ! [A,B,C] : multiplication(A,addition(B,C)) = addition(multiplication(A,B),multiplication(A,C)),
    file('theBenchmark.p',right_distributivity) ).

fof(left_distributivity,axiom,
    ! [A,B,C] : multiplication(addition(A,B),C) = addition(multiplication(A,C),multiplication(B,C)),
    file('theBenchmark.p',left_distributivity) ).

fof(domain1,axiom,
    ! [X0] : addition(X0,multiplication(domain(X0),X0)) = multiplication(domain(X0),X0),
    file('theBenchmark.p',domain1) ).

fof(domain2,axiom,
    ! [X0,X1] : domain(multiplication(X0,X1)) = domain(multiplication(X0,domain(X1))),
    file('theBenchmark.p',domain2) ).

fof(domain3,axiom,
    ! [X0] : addition(domain(X0),one) = one,
    file('theBenchmark.p',domain3) ).

fof(domain5,axiom,
    ! [X0,X1] : domain(addition(X0,X1)) = addition(domain(X0),domain(X1)),
    file('theBenchmark.p',domain5) ).

fof(goals,conjecture,
    ! [X0,X1] : domain(multiplication(domain(X0),domain(X1))) = multiplication(domain(X0),domain(X1)),
    file('theBenchmark.p',goals) ).

fof(goals_neg,negated_conjecture,
    ~ ! [X0,X1] : domain(multiplication(domain(X0),domain(X1))) = multiplication(domain(X0),domain(X1)),
    inference(assume_negation,[status(cth)],[goals]) ).

fof(nnf_17,plain,
    ? [X0,X1] : domain(multiplication(domain(X0),domain(X1))) != multiplication(domain(X0),domain(X1)),
    inference(fof_nnf,[status(thm)],[goals_neg]) ).

fof(sk_goals_neg,plain,
    domain(multiplication(domain(sK0),domain(sK1))) != multiplication(domain(sK0),domain(sK1)),
    inference(skolemize,[status(esa),new_symbols(skolem,[sK0,sK1]),skolemize(X0,sK0),skolemize(X1,sK1)],[nnf_17]) ).

cnf(c_20,negated_conjecture,
    domain(multiplication(domain(sK0),domain(sK1))) != multiplication(domain(sK0),domain(sK1)),
    inference(split_conjunct,[status(thm)],[sk_goals_neg]) ).

cnf(c_21,plain,
    domain(addition(A,B)) = addition(domain(A),domain(B)),
    inference(clausify,[status(thm)],[domain5]) ).

cnf(c_23,plain,
    addition(domain(A),one) = one,
    inference(clausify,[status(thm)],[domain3]) ).

cnf(c_24,plain,
    domain(multiplication(A,domain(B))) = domain(multiplication(A,B)),
    inference(clausify,[status(thm)],[domain2]) ).

cnf(c_25,plain,
    multiplication(domain(A),A) = addition(A,multiplication(domain(A),A)),
    inference(clausify,[status(thm)],[domain1]) ).

cnf(c_26,plain,
    addition(A,multiplication(domain(A),A)) = multiplication(domain(A),A),
    inference(copy,[status(thm)],[c_25]) ).

cnf(c_29,plain,
    multiplication(addition(A,B),C) = addition(multiplication(A,C),multiplication(B,C)),
    inference(clausify,[status(thm)],[left_distributivity]) ).

cnf(c_30,plain,
    addition(multiplication(A,B),multiplication(C,B)) = multiplication(addition(A,C),B),
    inference(copy,[status(thm)],[c_29]) ).

cnf(c_31,plain,
    multiplication(A,addition(B,C)) = addition(multiplication(A,B),multiplication(A,C)),
    inference(clausify,[status(thm)],[right_distributivity]) ).

cnf(c_32,plain,
    addition(multiplication(A,B),multiplication(A,C)) = multiplication(A,addition(B,C)),
    inference(copy,[status(thm)],[c_31]) ).

cnf(c_33,plain,
    multiplication(one,A) = A,
    inference(clausify,[status(thm)],[multiplicative_left_identity]) ).

cnf(c_34,plain,
    multiplication(A,one) = A,
    inference(clausify,[status(thm)],[multiplicative_right_identity]) ).

cnf(c_35,plain,
    multiplication(multiplication(A,B),C) = multiplication(A,multiplication(B,C)),
    inference(clausify,[status(thm)],[multiplicative_associativity]) ).

cnf(c_38,plain,
    addition(addition(A,B),C) = addition(A,addition(B,C)),
    inference(clausify,[status(thm)],[additive_associativity]) ).

cnf(c_39,plain,
    addition(A,B) = addition(B,A),
    inference(clausify,[status(thm)],[additive_commutativity]) ).

cnf(c_40,negated_conjecture,
    domain(multiplication(domain(sK0),sK1)) != multiplication(domain(sK0),domain(sK1)),
    inference(paramod,[status(thm)],[c_24,c_20]) ).

cnf(c_41,plain,
    addition(one,domain(A)) = one,
    inference(paramod,[status(thm)],[c_39,c_23]) ).

cnf(c_48,plain,
    domain(multiplication(addition(A,B),C)) = addition(domain(multiplication(A,C)),domain(multiplication(B,C))),
    inference(paramod,[status(thm)],[c_30,c_21]) ).

cnf(c_2026,plain,
    addition(multiplication(A,B),multiplication(multiplication(domain(A),A),B)) = multiplication(multiplication(domain(A),A),B),
    inference(paramod,[status(thm)],[c_26,c_30]) ).

cnf(c_2027,plain,
    addition(multiplication(A,B),multiplication(domain(A),multiplication(A,B))) = multiplication(multiplication(domain(A),A),B),
    inference(paramod,[status(thm)],[c_35,c_2026]) ).

cnf(c_49,plain,
    addition(multiplication(A,B),multiplication(domain(A),multiplication(A,B))) = multiplication(domain(A),multiplication(A,B)),
    inference(paramod,[status(thm)],[c_35,c_2027]) ).

cnf(c_2028,plain,
    domain(domain(A)) = domain(multiplication(one,A)),
    inference(paramod,[status(thm)],[c_33,c_24]) ).

cnf(c_55,plain,
    domain(domain(A)) = domain(A),
    inference(paramod,[status(thm)],[c_33,c_2028]) ).

cnf(c_2029,plain,
    addition(A,multiplication(B,A)) = multiplication(addition(one,B),A),
    inference(paramod,[status(thm)],[c_33,c_30]) ).

cnf(c_56,plain,
    multiplication(addition(one,A),B) = addition(B,multiplication(A,B)),
    inference(copy,[status(thm)],[c_2029]) ).

cnf(c_2030,plain,
    multiplication(addition(one,domain(A)),multiplication(A,B)) = multiplication(domain(A),multiplication(A,B)),
    inference(paramod,[status(thm)],[c_56,c_49]) ).

cnf(c_2031,plain,
    multiplication(one,multiplication(A,B)) = multiplication(domain(A),multiplication(A,B)),
    inference(paramod,[status(thm)],[c_41,c_2030]) ).

cnf(c_2032,plain,
    multiplication(A,B) = multiplication(domain(A),multiplication(A,B)),
    inference(paramod,[status(thm)],[c_33,c_2031]) ).

cnf(c_58,plain,
    multiplication(domain(A),multiplication(A,B)) = multiplication(A,B),
    inference(copy,[status(thm)],[c_2032]) ).

cnf(c_2033,plain,
    addition(A,multiplication(A,B)) = multiplication(A,addition(one,B)),
    inference(paramod,[status(thm)],[c_34,c_32]) ).

cnf(c_61,plain,
    multiplication(A,addition(one,B)) = addition(A,multiplication(A,B)),
    inference(copy,[status(thm)],[c_2033]) ).

cnf(c_2034,plain,
    addition(addition(A,B),C) = addition(B,addition(A,C)),
    inference(paramod,[status(thm)],[c_39,c_38]) ).

cnf(c_74,plain,
    addition(A,addition(B,C)) = addition(B,addition(A,C)),
    inference(paramod,[status(thm)],[c_38,c_2034]) ).

cnf(c_2035,plain,
    addition(multiplication(one,A),multiplication(domain(B),A)) = multiplication(one,A),
    inference(paramod,[status(thm)],[c_41,c_30]) ).

cnf(c_2036,plain,
    addition(A,multiplication(domain(B),A)) = multiplication(one,A),
    inference(paramod,[status(thm)],[c_33,c_2035]) ).

cnf(c_76,plain,
    addition(A,multiplication(domain(B),A)) = A,
    inference(paramod,[status(thm)],[c_33,c_2036]) ).

cnf(c_2037,plain,
    addition(multiplication(A,one),multiplication(A,domain(B))) = multiplication(A,one),
    inference(paramod,[status(thm)],[c_41,c_32]) ).

cnf(c_2038,plain,
    addition(A,multiplication(A,domain(B))) = multiplication(A,one),
    inference(paramod,[status(thm)],[c_34,c_2037]) ).

cnf(c_77,plain,
    addition(A,multiplication(A,domain(B))) = A,
    inference(paramod,[status(thm)],[c_34,c_2038]) ).

cnf(c_2039,plain,
    addition(one,A) = addition(one,addition(domain(B),A)),
    inference(paramod,[status(thm)],[c_41,c_38]) ).

cnf(c_78,plain,
    addition(one,addition(domain(A),B)) = addition(one,B),
    inference(copy,[status(thm)],[c_2039]) ).

cnf(c_2040,plain,
    A = multiplication(domain(A),A),
    inference(paramod,[status(thm)],[c_76,c_26]) ).

cnf(c_79,plain,
    multiplication(domain(A),A) = A,
    inference(copy,[status(thm)],[c_2040]) ).

cnf(c_2041,plain,
    addition(multiplication(A,B),B) = multiplication(addition(A,domain(B)),B),
    inference(paramod,[status(thm)],[c_79,c_30]) ).

cnf(c_2042,plain,
    addition(B,multiplication(A,B)) = multiplication(addition(A,domain(B)),B),
    inference(paramod,[status(thm)],[c_39,c_2041]) ).

cnf(c_85,plain,
    multiplication(addition(A,domain(B)),B) = addition(B,multiplication(A,B)),
    inference(copy,[status(thm)],[c_2042]) ).

cnf(c_89,plain,
    multiplication(domain(A),domain(A)) = domain(A),
    inference(paramod,[status(thm)],[c_55,c_79]) ).

cnf(c_2043,plain,
    domain(multiplication(one,A)) = addition(domain(multiplication(one,A)),domain(multiplication(domain(B),A))),
    inference(paramod,[status(thm)],[c_41,c_48]) ).

cnf(c_2044,plain,
    domain(A) = addition(domain(multiplication(one,A)),domain(multiplication(domain(B),A))),
    inference(paramod,[status(thm)],[c_33,c_2043]) ).

cnf(c_2045,plain,
    domain(A) = addition(domain(A),domain(multiplication(domain(B),A))),
    inference(paramod,[status(thm)],[c_33,c_2044]) ).

cnf(c_91,plain,
    addition(domain(A),domain(multiplication(domain(B),A))) = domain(A),
    inference(copy,[status(thm)],[c_2045]) ).

cnf(c_2046,plain,
    domain(A) = addition(domain(A),domain(multiplication(A,domain(B)))),
    inference(paramod,[status(thm)],[c_77,c_21]) ).

cnf(c_2047,plain,
    domain(A) = addition(domain(A),domain(multiplication(A,B))),
    inference(paramod,[status(thm)],[c_24,c_2046]) ).

cnf(c_96,plain,
    addition(domain(A),domain(multiplication(A,B))) = domain(A),
    inference(copy,[status(thm)],[c_2047]) ).

cnf(c_2048,plain,
    addition(domain(A),multiplication(domain(A),B)) = multiplication(domain(A),addition(domain(A),B)),
    inference(paramod,[status(thm)],[c_89,c_32]) ).

cnf(c_2049,plain,
    multiplication(domain(A),addition(one,B)) = multiplication(domain(A),addition(domain(A),B)),
    inference(paramod,[status(thm)],[c_61,c_2048]) ).

cnf(c_104,plain,
    multiplication(domain(A),addition(domain(A),B)) = multiplication(domain(A),addition(one,B)),
    inference(copy,[status(thm)],[c_2049]) ).

cnf(c_2050,plain,
    multiplication(domain(multiplication(A,B)),multiplication(multiplication(A,domain(B)),C)) = multiplication(multiplication(A,domain(B)),C),
    inference(paramod,[status(thm)],[c_24,c_58]) ).

cnf(c_2051,plain,
    multiplication(domain(multiplication(A,B)),multiplication(A,multiplication(domain(B),C))) = multiplication(multiplication(A,domain(B)),C),
    inference(paramod,[status(thm)],[c_35,c_2050]) ).

cnf(c_116,plain,
    multiplication(domain(multiplication(A,B)),multiplication(A,multiplication(domain(B),C))) = multiplication(A,multiplication(domain(B),C)),
    inference(paramod,[status(thm)],[c_35,c_2051]) ).

cnf(c_2052,plain,
    addition(one,domain(A)) = addition(one,multiplication(domain(B),domain(A))),
    inference(paramod,[status(thm)],[c_76,c_78]) ).

cnf(c_2053,plain,
    one = addition(one,multiplication(domain(B),domain(A))),
    inference(paramod,[status(thm)],[c_41,c_2052]) ).

cnf(c_129,plain,
    addition(one,multiplication(domain(A),domain(B))) = one,
    inference(copy,[status(thm)],[c_2053]) ).

cnf(c_2054,plain,
    addition(domain(A),domain(multiplication(domain(A),B))) = domain(domain(A)),
    inference(paramod,[status(thm)],[c_55,c_96]) ).

cnf(c_154,plain,
    addition(domain(A),domain(multiplication(domain(A),B))) = domain(A),
    inference(paramod,[status(thm)],[c_55,c_2054]) ).

cnf(c_2055,plain,
    addition(A,B) = addition(B,addition(A,multiplication(domain(C),B))),
    inference(paramod,[status(thm)],[c_76,c_74]) ).

cnf(c_217,plain,
    addition(A,addition(B,multiplication(domain(C),A))) = addition(B,A),
    inference(copy,[status(thm)],[c_2055]) ).

cnf(c_2056,plain,
    addition(A,one) = addition(one,addition(A,multiplication(domain(B),domain(C)))),
    inference(paramod,[status(thm)],[c_129,c_74]) ).

cnf(c_219,plain,
    addition(one,addition(A,multiplication(domain(B),domain(C)))) = addition(A,one),
    inference(copy,[status(thm)],[c_2056]) ).

cnf(c_2057,plain,
    multiplication(domain(A),multiplication(domain(B),A)) = addition(multiplication(domain(B),A),multiplication(domain(A),multiplication(domain(B),A))),
    inference(paramod,[status(thm)],[c_91,c_85]) ).

cnf(c_350,plain,
    multiplication(domain(A),multiplication(domain(B),A)) = multiplication(domain(B),A),
    inference(paramod,[status(thm)],[c_76,c_2057]) ).

cnf(c_533,plain,
    multiplication(domain(A),multiplication(domain(B),domain(A))) = multiplication(domain(B),domain(A)),
    inference(paramod,[status(thm)],[c_55,c_350]) ).

cnf(c_2058,plain,
    multiplication(domain(A),addition(B,domain(A))) = multiplication(domain(A),addition(one,addition(B,multiplication(domain(C),domain(A))))),
    inference(paramod,[status(thm)],[c_217,c_104]) ).

cnf(c_999,plain,
    multiplication(domain(A),addition(B,domain(A))) = multiplication(domain(A),addition(B,one)),
    inference(paramod,[status(thm)],[c_219,c_2058]) ).

cnf(c_2059,plain,
    multiplication(domain(multiplication(domain(A),B)),multiplication(domain(B),domain(A))) = multiplication(domain(A),multiplication(domain(B),domain(A))),
    inference(paramod,[status(thm)],[c_533,c_116]) ).

cnf(c_1693,plain,
    multiplication(domain(multiplication(domain(A),B)),multiplication(domain(B),domain(A))) = multiplication(domain(B),domain(A)),
    inference(paramod,[status(thm)],[c_533,c_2059]) ).

cnf(c_2060,plain,
    multiplication(domain(multiplication(domain(A),B)),domain(B)) = multiplication(domain(multiplication(domain(A),B)),addition(domain(B),one)),
    inference(paramod,[status(thm)],[c_91,c_999]) ).

cnf(c_2061,plain,
    multiplication(domain(multiplication(domain(A),B)),domain(B)) = multiplication(domain(multiplication(domain(A),B)),addition(one,domain(B))),
    inference(paramod,[status(thm)],[c_39,c_2060]) ).

cnf(c_2062,plain,
    multiplication(domain(multiplication(domain(A),B)),domain(B)) = multiplication(domain(multiplication(domain(A),B)),one),
    inference(paramod,[status(thm)],[c_41,c_2061]) ).

cnf(c_1750,plain,
    multiplication(domain(multiplication(domain(A),B)),domain(B)) = domain(multiplication(domain(A),B)),
    inference(paramod,[status(thm)],[c_34,c_2062]) ).

cnf(c_2063,plain,
    multiplication(domain(multiplication(domain(A),B)),domain(A)) = multiplication(domain(multiplication(domain(A),B)),addition(domain(A),one)),
    inference(paramod,[status(thm)],[c_154,c_999]) ).

cnf(c_2064,plain,
    multiplication(domain(multiplication(domain(A),B)),domain(A)) = multiplication(domain(multiplication(domain(A),B)),addition(one,domain(A))),
    inference(paramod,[status(thm)],[c_39,c_2063]) ).

cnf(c_2065,plain,
    multiplication(domain(multiplication(domain(A),B)),domain(A)) = multiplication(domain(multiplication(domain(A),B)),one),
    inference(paramod,[status(thm)],[c_41,c_2064]) ).

cnf(c_1753,plain,
    multiplication(domain(multiplication(domain(A),B)),domain(A)) = domain(multiplication(domain(A),B)),
    inference(paramod,[status(thm)],[c_34,c_2065]) ).

cnf(c_2066,plain,
    multiplication(domain(multiplication(domain(A),B)),C) = multiplication(domain(multiplication(domain(A),B)),multiplication(domain(B),C)),
    inference(paramod,[status(thm)],[c_1750,c_35]) ).

cnf(c_1929,plain,
    multiplication(domain(multiplication(domain(A),B)),multiplication(domain(B),C)) = multiplication(domain(multiplication(domain(A),B)),C),
    inference(copy,[status(thm)],[c_2066]) ).

cnf(c_2067,plain,
    multiplication(domain(multiplication(domain(A),B)),domain(A)) = multiplication(domain(B),domain(A)),
    inference(paramod,[status(thm)],[c_1929,c_1693]) ).

cnf(c_1938,plain,
    domain(multiplication(domain(A),B)) = multiplication(domain(B),domain(A)),
    inference(paramod,[status(thm)],[c_1753,c_2067]) ).

cnf(c_2068,plain,
    multiplication(multiplication(domain(B),domain(A)),domain(B)) = domain(multiplication(domain(A),B)),
    inference(paramod,[status(thm)],[c_1938,c_1750]) ).

cnf(c_2069,plain,
    multiplication(domain(B),multiplication(domain(A),domain(B))) = domain(multiplication(domain(A),B)),
    inference(paramod,[status(thm)],[c_35,c_2068]) ).

cnf(c_2070,plain,
    multiplication(domain(A),domain(B)) = domain(multiplication(domain(A),B)),
    inference(paramod,[status(thm)],[c_533,c_2069]) ).

cnf(c_1991,plain,
    multiplication(domain(A),domain(B)) = multiplication(domain(B),domain(A)),
    inference(paramod,[status(thm)],[c_1938,c_2070]) ).

cnf(c_2071,negated_conjecture,
    multiplication(domain(sK1),domain(sK0)) != multiplication(domain(sK0),domain(sK1)),
    inference(paramod,[status(thm)],[c_1938,c_40]) ).

cnf(c_2072,negated_conjecture,
    multiplication(domain(sK0),domain(sK1)) != multiplication(domain(sK0),domain(sK1)),
    inference(paramod,[status(thm)],[c_1991,c_2071]) ).

cnf(c_2025,negated_conjecture,
    $false,
    inference(copy,[status(thm)],[c_2072]) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.05  % Problem  : KLE068+1 : TPTP v9.3.1. Released v4.0.0.
% 0.00/0.06  % Command  : prover9 -casc 300 -f /export/starexec/sandbox2/benchmark/theBenchmark.p
% 0.17/0.44  % Computer : n005.cluster.edu
% 0.17/0.44  % Model    : x86_64 x86_64
% 0.17/0.44  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.17/0.44  % Memory   : 8046.5625MB
% 0.17/0.44  % OS       : Linux 6.8.0-71-generic
% 0.17/0.44  % CPULimit : 300
% 0.17/0.44  % WCLimit  : 300
% 0.17/0.44  % DateTime : Fri Sep 25 19:19:17 UTC 2026
% 0.17/0.44  % CPUTime  : 
% 0.17/0.44  % Prover9 (64) version 2026-6A, July 2026, CASC-J13.
% 0.17/0.44  % Process 4139337 was started by sandbox2 on n005,
% 0.17/0.44  % Fri Sep 25 19:19:17 2026
% 0.17/0.44  % The command was "/export/starexec/sandbox2/solver/bin/prover9 -casc 300 -f /export/starexec/sandbox2/benchmark/theBenchmark.p".
% 0.17/0.45  
% 0.17/0.45  % From the command line: assign(max_seconds, 300).
% 11.45/1.93  
% 11.45/1.93  % SZS status Theorem for theBenchmark
% 11.45/1.93  
% 11.45/1.93  % Proof 1 at 1.13 (+ 0.31) seconds.
% 11.45/1.93  % Length of proof is 60.
% 11.45/1.93  % Level of proof is 12.
% 11.45/1.93  % Maximum clause weight is 18.000.
% 11.45/1.93  % Given clauses 145.
% 11.45/1.93  
% 11.45/1.93  % SZS output start CNFRefutation for theBenchmark
% See solution above
%------------------------------------------------------------------------------