↑ Up

LisaST---0.9.UNS-CRf.s

View TPTP
Problem
Process solution in
SystemOnTSTP
Download .tgz
%------------------------------------------------------------------------------
% File     : LisaST---0.9
% Problem  : RNG008-7 : TPTP v9.3.1. Released v1.0.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : casc-portfolio.sh -t 300 /export/starexec/sandbox2/benchmark/theBenchmark.p

% Computer : n018.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 08:25:35 AM UTC 2026

% Result   : Unsatisfiable 62.32s 13.80s
% Output   : CNFRefutation 62.32s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   34
%            Number of leaves      :   11
% Syntax   : Number of clauses     :  134 ( 134 unt;   0 nHn;  31 RR)
%            Number of literals    :  134 ( 133 equ;   3 neg)
%            Maximal clause size   :    1 (   1 avg)
%            Maximal term depth    :    5 (   2 avg)
%            Number of predicates  :    2 (   0 usr;   1 prp; 0-2 aty)
%            Number of functors    :    7 (   7 usr;   4 con; 0-2 aty)
%            Number of variables   :  181 (   8 sgn)

% Comments : 
%------------------------------------------------------------------------------
cnf(boolean_ring,hypothesis,
    multiply(X0,X0) = X0 ).

cnf(a_times_b_is_c,negated_conjecture,
    multiply(a,b) = c ).

cnf(prove_commutativity,negated_conjecture,
    multiply(b,a) != c ).

cnf(left_additive_identity,axiom,
    add('additive$uidentity',X0) = X0 ).

cnf(right_additive_identity,axiom,
    add(X0,'additive$uidentity') = X0 ).

cnf(right_additive_inverse,axiom,
    add(X0,'additive$uinverse'(X0)) = 'additive$uidentity' ).

cnf(associativity_for_addition,axiom,
    add(X0,add(X1,X2)) = add(add(X0,X1),X2) ).

cnf(commutativity_for_addition,axiom,
    add(X0,X1) = add(X1,X0) ).

cnf(associativity_for_multiplication,axiom,
    multiply(X0,multiply(X1,X2)) = multiply(multiply(X0,X1),X2) ).

cnf(distribute1,axiom,
    multiply(X0,add(X1,X2)) = add(multiply(X0,X1),multiply(X0,X2)) ).

cnf(distribute2,axiom,
    multiply(add(X0,X1),X2) = add(multiply(X0,X2),multiply(X1,X2)) ).

cnf(c0,plain,
    multiply(X0,X0) = X0,
    inference(clausification,[status(esa)],[boolean_ring]) ).

cnf(c1,plain,
    multiply(a,b) = c,
    inference(clausification,[status(esa)],[a_times_b_is_c]) ).

cnf(c2,plain,
    multiply(b,a) != c,
    inference(clausification,[status(esa)],[prove_commutativity]) ).

cnf(c3,plain,
    add('additive$uidentity',X0) = X0,
    inference(clausification,[status(esa)],[left_additive_identity]) ).

cnf(c4,plain,
    add(X0,'additive$uidentity') = X0,
    inference(clausification,[status(esa)],[right_additive_identity]) ).

cnf(c6,plain,
    add(X0,'additive$uinverse'(X0)) = 'additive$uidentity',
    inference(clausification,[status(esa)],[right_additive_inverse]) ).

cnf(c7,plain,
    add(X0,add(X1,X2)) = add(add(X0,X1),X2),
    inference(clausification,[status(esa)],[associativity_for_addition]) ).

cnf(c8,plain,
    add(X0,X1) = add(X1,X0),
    inference(clausification,[status(esa)],[commutativity_for_addition]) ).

cnf(c9,plain,
    multiply(X0,multiply(X1,X2)) = multiply(multiply(X0,X1),X2),
    inference(clausification,[status(esa)],[associativity_for_multiplication]) ).

cnf(c10,plain,
    multiply(X0,add(X1,X2)) = add(multiply(X0,X1),multiply(X0,X2)),
    inference(clausification,[status(esa)],[distribute1]) ).

cnf(c11,plain,
    multiply(add(X0,X1),X2) = add(multiply(X0,X2),multiply(X1,X2)),
    inference(clausification,[status(esa)],[distribute2]) ).

cnf(d0,plain,
    add(X0,add(X1,'additive$uidentity')) = add(X0,X1),
    inference(superposition,[status(thm)],[c7,c4]) ).

cnf(d1,plain,
    add(X1,X0) = add(X1,X0),
    inference(demodulation,[status(thm)],[d0,c4]) ).

cnf(d2,plain,
    add(X0,add('additive$uinverse'(X0),X1)) = add('additive$uidentity',X1),
    inference(superposition,[status(thm)],[c6,c7]) ).

cnf(d3,plain,
    add(X1,add('additive$uinverse'(X1),X0)) = X0,
    inference(demodulation,[status(thm)],[d2,c3]) ).

cnf(d4,plain,
    X1 = add(X0,add('additive$uinverse'(X0),X1)),
    inference(superposition,[status(thm)],[d3,d1]) ).

cnf(d5,plain,
    X1 = add(X0,add(X1,'additive$uinverse'(X0))),
    inference(superposition,[status(thm)],[c8,d4]) ).

cnf(d6,plain,
    multiply(X0,add(X0,X1)) = add(X0,multiply(X0,X1)),
    inference(superposition,[status(thm)],[c0,c10]) ).

cnf(d7,plain,
    multiply(X0,X0) = add(X0,multiply(X0,'additive$uidentity')),
    inference(superposition,[status(thm)],[c4,d6]) ).

cnf(d8,plain,
    X0 = add(X0,multiply(X0,'additive$uidentity')),
    inference(demodulation,[status(thm)],[d7,c0]) ).

cnf(d9,plain,
    multiply('additive$uinverse'(X0),'additive$uidentity') = add(X0,'additive$uinverse'(X0)),
    inference(superposition,[status(thm)],[d8,d4]) ).

cnf(d10,plain,
    multiply('additive$uinverse'(X0),'additive$uidentity') = 'additive$uidentity',
    inference(demodulation,[status(thm)],[d9,c6]) ).

cnf(d11,plain,
    'additive$uidentity' = add(X0,'additive$uinverse'(X0)),
    inference(superposition,[status(thm)],[c6,d1]) ).

cnf(d12,plain,
    add(X0,'additive$uidentity') = 'additive$uinverse'('additive$uinverse'(X0)),
    inference(superposition,[status(thm)],[d11,d3]) ).

cnf(d13,plain,
    X0 = 'additive$uinverse'('additive$uinverse'(X0)),
    inference(demodulation,[status(thm)],[d12,c4]) ).

cnf(d14,plain,
    multiply(X0,'additive$uidentity') = 'additive$uidentity',
    inference(superposition,[status(thm)],[d13,d10]) ).

cnf(d15,plain,
    multiply(X0,'additive$uidentity') = add(X0,multiply(X0,'additive$uinverse'(X0))),
    inference(superposition,[status(thm)],[d11,d6]) ).

cnf(d16,plain,
    'additive$uidentity' = add(X0,multiply(X0,'additive$uinverse'(X0))),
    inference(demodulation,[status(thm)],[d15,d14]) ).

cnf(d17,plain,
    add(X0,multiply(X0,'additive$uidentity')) = X0,
    inference(superposition,[status(thm)],[d8,d1]) ).

cnf(d18,plain,
    add('additive$uinverse'(X0),'additive$uidentity') = 'additive$uinverse'(X0),
    inference(superposition,[status(thm)],[d10,d17]) ).

cnf(d19,plain,
    'additive$uinverse'(X0) = 'additive$uinverse'(X0),
    inference(demodulation,[status(thm)],[d18,c4]) ).

cnf(d20,plain,
    'additive$uinverse'('additive$uinverse'(X0)) = X0,
    inference(superposition,[status(thm)],[d13,d19]) ).

cnf(d21,plain,
    'additive$uidentity' = add('additive$uinverse'(X0),multiply('additive$uinverse'(X0),X0)),
    inference(superposition,[status(thm)],[d20,d16]) ).

cnf(d22,plain,
    multiply('additive$uinverse'(X0),X0) = add(X0,'additive$uidentity'),
    inference(superposition,[status(thm)],[d21,d4]) ).

cnf(d23,plain,
    multiply('additive$uinverse'(X0),X0) = X0,
    inference(demodulation,[status(thm)],[d22,c4]) ).

cnf(d24,plain,
    multiply(add(X0,X1),X0) = add(X0,multiply(X1,X0)),
    inference(superposition,[status(thm)],[c0,c11]) ).

cnf(d25,plain,
    multiply(X0,X0) = add(X0,multiply('additive$uidentity',X0)),
    inference(superposition,[status(thm)],[c4,d24]) ).

cnf(d26,plain,
    X0 = add(X0,multiply('additive$uidentity',X0)),
    inference(demodulation,[status(thm)],[d25,c0]) ).

cnf(d27,plain,
    multiply('additive$uidentity','additive$uinverse'(X0)) = add(X0,'additive$uinverse'(X0)),
    inference(superposition,[status(thm)],[d26,d4]) ).

cnf(d28,plain,
    multiply('additive$uidentity','additive$uinverse'(X0)) = 'additive$uidentity',
    inference(demodulation,[status(thm)],[d27,c6]) ).

cnf(d29,plain,
    multiply('additive$uidentity',X0) = 'additive$uidentity',
    inference(superposition,[status(thm)],[d20,d28]) ).

cnf(d30,plain,
    multiply('additive$uidentity',X0) = add(X0,multiply('additive$uinverse'(X0),X0)),
    inference(superposition,[status(thm)],[d11,d24]) ).

cnf(d31,plain,
    'additive$uidentity' = add(X0,multiply('additive$uinverse'(X0),X0)),
    inference(demodulation,[status(thm)],[d30,d29]) ).

cnf(d32,plain,
    'additive$uidentity' = add(X0,X0),
    inference(demodulation,[status(thm)],[d31,d23]) ).

cnf(d33,plain,
    'additive$uinverse'(X0) = add(X0,'additive$uidentity'),
    inference(superposition,[status(thm)],[d32,d5]) ).

cnf(d34,plain,
    'additive$uinverse'(X0) = X0,
    inference(demodulation,[status(thm)],[d33,c4]) ).

cnf(d35,plain,
    add(X0,add(X0,X1)) = X1,
    inference(demodulation,[status(thm)],[d3,d34]) ).

cnf(d36,plain,
    multiply(X0,add(X1,X2)) = add(multiply(X0,X2),multiply(X0,X1)),
    inference(superposition,[status(thm)],[c10,c8]) ).

cnf(d37,plain,
    multiply(X0,add(X1,X2)) = multiply(X0,add(X2,X1)),
    inference(superposition,[status(thm)],[d36,c10]) ).

cnf(d38,plain,
    multiply(X1,X0) = multiply(X1,add('additive$uidentity',X0)),
    inference(superposition,[status(thm)],[c4,d37]) ).

cnf(d39,plain,
    multiply(X1,X0) = multiply(X1,X0),
    inference(demodulation,[status(thm)],[d38,c3]) ).

cnf(d40,plain,
    multiply(multiply(X0,X1),X2) = multiply(X0,multiply(X1,X2)),
    inference(superposition,[status(thm)],[c9,d39]) ).

cnf(d41,plain,
    multiply(add(X1,X0),X0) = add(multiply(X1,X0),X0),
    inference(superposition,[status(thm)],[c0,c11]) ).

cnf(d42,plain,
    multiply(add(X0,X1),X1) = add(X1,multiply(X0,X1)),
    inference(demodulation,[status(thm)],[d41,c8]) ).

cnf(d43,plain,
    multiply(multiply(X0,X1),multiply(X2,X3)) = multiply(multiply(X0,multiply(X1,X2)),X3),
    inference(superposition,[status(thm)],[c9,c9]) ).

cnf(d44,plain,
    multiply(X0,multiply(X1,multiply(X2,X3))) = multiply(multiply(X0,multiply(X1,X2)),X3),
    inference(demodulation,[status(thm)],[d43,c9]) ).

cnf(d45,plain,
    multiply(X0,multiply(X1,multiply(X2,X3))) = multiply(X0,multiply(multiply(X1,X2),X3)),
    inference(demodulation,[status(thm)],[d44,c9]) ).

cnf(d46,plain,
    multiply(X3,multiply(X0,multiply(X1,X2))) = multiply(X3,multiply(X0,multiply(X1,X2))),
    inference(demodulation,[status(thm)],[d45,c9]) ).

cnf(d47,plain,
    multiply(X0,multiply(X1,multiply(X0,X1))) = multiply(X0,X1),
    inference(superposition,[status(thm)],[c9,c0]) ).

cnf(d48,plain,
    multiply(X0,X1) = multiply(X0,multiply(X1,multiply(X0,X1))),
    inference(superposition,[status(thm)],[d47,d46]) ).

cnf(d49,plain,
    multiply(add(X0,X2),X1) = add(multiply(X2,X1),multiply(X0,X1)),
    inference(superposition,[status(thm)],[c11,c8]) ).

cnf(d50,plain,
    multiply(add(X0,X2),X1) = multiply(add(X2,X0),X1),
    inference(superposition,[status(thm)],[d49,c11]) ).

cnf(d51,plain,
    multiply(X0,multiply(X0,X1)) = multiply(X0,X1),
    inference(superposition,[status(thm)],[c0,c9]) ).

cnf(d52,plain,
    multiply(X0,add(X2,multiply(X0,X1))) = add(multiply(X0,X2),multiply(X0,X1)),
    inference(superposition,[status(thm)],[d51,c10]) ).

cnf(d53,plain,
    multiply(X0,add(X1,multiply(X0,X2))) = multiply(X0,add(X1,X2)),
    inference(demodulation,[status(thm)],[d52,c10]) ).

cnf(d54,plain,
    multiply(a,add(b,X0)) = add(c,multiply(a,X0)),
    inference(superposition,[status(thm)],[c1,c10]) ).

cnf(d55,plain,
    multiply(a,'additive$uidentity') = add(c,multiply(a,'additive$uinverse'(b))),
    inference(superposition,[status(thm)],[d11,d54]) ).

cnf(d56,plain,
    'additive$uidentity' = add(c,multiply(a,'additive$uinverse'(b))),
    inference(demodulation,[status(thm)],[d55,d14]) ).

cnf(d57,plain,
    multiply(a,'additive$uidentity') = multiply(a,add(c,'additive$uinverse'(b))),
    inference(superposition,[status(thm)],[d56,d53]) ).

cnf(d58,plain,
    'additive$uidentity' = multiply(a,add(c,'additive$uinverse'(b))),
    inference(demodulation,[status(thm)],[d57,d14]) ).

cnf(d59,plain,
    multiply(a,multiply(add(c,'additive$uinverse'(b)),X0)) = multiply('additive$uidentity',X0),
    inference(superposition,[status(thm)],[d58,c9]) ).

cnf(d60,plain,
    multiply(a,multiply(add(c,b),X0)) = multiply('additive$uidentity',X0),
    inference(demodulation,[status(thm)],[d59,d34]) ).

cnf(d61,plain,
    multiply(a,multiply(add(b,c),X0)) = multiply('additive$uidentity',X0),
    inference(demodulation,[status(thm)],[d60,d50]) ).

cnf(d62,plain,
    multiply(a,multiply(add(b,c),X0)) = 'additive$uidentity',
    inference(demodulation,[status(thm)],[d61,d29]) ).

cnf(d63,plain,
    multiply(add(b,c),a) = multiply(add(b,c),'additive$uidentity'),
    inference(superposition,[status(thm)],[d62,d48]) ).

cnf(d64,plain,
    multiply(add(b,c),a) = 'additive$uidentity',
    inference(demodulation,[status(thm)],[d63,d14]) ).

cnf(d65,plain,
    multiply('additive$uidentity',X0) = multiply(add(b,c),multiply(a,X0)),
    inference(superposition,[status(thm)],[d64,d40]) ).

cnf(d66,plain,
    'additive$uidentity' = multiply(add(b,c),multiply(a,X0)),
    inference(demodulation,[status(thm)],[d65,d29]) ).

cnf(d67,plain,
    multiply(a,c) = multiply(a,b),
    inference(superposition,[status(thm)],[c1,d51]) ).

cnf(d68,plain,
    multiply(a,c) = c,
    inference(demodulation,[status(thm)],[d67,c1]) ).

cnf(d69,plain,
    multiply(a,multiply(c,X0)) = multiply(c,X0),
    inference(superposition,[status(thm)],[d68,c9]) ).

cnf(d70,plain,
    multiply(c,multiply(a,c)) = multiply(a,c),
    inference(superposition,[status(thm)],[d69,d47]) ).

cnf(d71,plain,
    multiply(c,c) = multiply(a,c),
    inference(demodulation,[status(thm)],[d70,d68]) ).

cnf(d72,plain,
    c = multiply(a,c),
    inference(demodulation,[status(thm)],[d71,c0]) ).

cnf(d73,plain,
    'additive$uidentity' = multiply(add(b,c),c),
    inference(superposition,[status(thm)],[d72,d66]) ).

cnf(d74,plain,
    'additive$uidentity' = add(c,multiply(b,c)),
    inference(demodulation,[status(thm)],[d73,d42]) ).

cnf(d75,plain,
    add(c,'additive$uidentity') = multiply(b,c),
    inference(superposition,[status(thm)],[d74,d35]) ).

cnf(d76,plain,
    c = multiply(b,c),
    inference(demodulation,[status(thm)],[d75,c4]) ).

cnf(d77,plain,
    multiply(c,X0) = multiply(b,multiply(c,X0)),
    inference(superposition,[status(thm)],[d76,d40]) ).

cnf(d78,plain,
    multiply(a,multiply(b,X0)) = multiply(c,X0),
    inference(superposition,[status(thm)],[c1,c9]) ).

cnf(d79,plain,
    multiply(a,multiply(c,X0)) = multiply(a,multiply(b,X0)),
    inference(superposition,[status(thm)],[d78,d51]) ).

cnf(d80,plain,
    multiply(c,X0) = multiply(a,multiply(b,X0)),
    inference(demodulation,[status(thm)],[d79,d69]) ).

cnf(d81,plain,
    multiply(b,a) = multiply(b,multiply(c,a)),
    inference(superposition,[status(thm)],[d80,d48]) ).

cnf(d82,plain,
    multiply(b,a) = multiply(c,a),
    inference(demodulation,[status(thm)],[d81,d77]) ).

cnf(d83,plain,
    multiply(a,b) = multiply(c,b),
    inference(superposition,[status(thm)],[c0,d78]) ).

cnf(d84,plain,
    c = multiply(c,b),
    inference(demodulation,[status(thm)],[d83,c1]) ).

cnf(d85,plain,
    multiply(c,add(X0,b)) = add(multiply(c,X0),c),
    inference(superposition,[status(thm)],[d84,c10]) ).

cnf(d86,plain,
    multiply(c,add(X0,b)) = add(c,multiply(c,X0)),
    inference(demodulation,[status(thm)],[d85,c8]) ).

cnf(d87,plain,
    multiply(add(multiply(X0,X1),X3),X2) = add(multiply(X0,multiply(X1,X2)),multiply(X3,X2)),
    inference(superposition,[status(thm)],[c9,c11]) ).

cnf(d88,plain,
    multiply(add(X2,X0),multiply(X0,X1)) = add(multiply(X2,multiply(X0,X1)),multiply(X0,X1)),
    inference(superposition,[status(thm)],[d51,c11]) ).

cnf(d89,plain,
    multiply(add(X0,X1),multiply(X1,X2)) = multiply(add(multiply(X0,X1),X1),X2),
    inference(demodulation,[status(thm)],[d88,d87]) ).

cnf(d90,plain,
    multiply(add(X0,X1),multiply(X1,X2)) = multiply(add(X1,multiply(X0,X1)),X2),
    inference(demodulation,[status(thm)],[d89,c8]) ).

cnf(d91,plain,
    multiply(add(X3,multiply(X0,X1)),X2) = add(multiply(X3,X2),multiply(X0,multiply(X1,X2))),
    inference(superposition,[status(thm)],[c9,c11]) ).

cnf(d92,plain,
    multiply(add(a,X1),multiply(c,X0)) = add(multiply(c,X0),multiply(X1,multiply(c,X0))),
    inference(superposition,[status(thm)],[d69,c11]) ).

cnf(d93,plain,
    multiply(add(a,X1),multiply(c,X0)) = multiply(add(c,multiply(X1,c)),X0),
    inference(demodulation,[status(thm)],[d92,d91]) ).

cnf(d94,plain,
    multiply(add(a,X0),multiply(c,X1)) = multiply(add(X0,c),multiply(c,X1)),
    inference(demodulation,[status(thm)],[d93,d90]) ).

cnf(d95,plain,
    'additive$uidentity' = multiply(add(b,c),multiply(c,X0)),
    inference(superposition,[status(thm)],[d69,d66]) ).

cnf(d96,plain,
    'additive$uidentity' = multiply(add(a,b),multiply(c,X0)),
    inference(demodulation,[status(thm)],[d95,d94]) ).

cnf(d97,plain,
    multiply(c,add(a,b)) = multiply(c,'additive$uidentity'),
    inference(superposition,[status(thm)],[d96,d48]) ).

cnf(d98,plain,
    add(c,multiply(c,a)) = multiply(c,'additive$uidentity'),
    inference(demodulation,[status(thm)],[d97,d86]) ).

cnf(d99,plain,
    add(c,multiply(b,a)) = multiply(c,'additive$uidentity'),
    inference(demodulation,[status(thm)],[d98,d82]) ).

cnf(d100,plain,
    add(c,multiply(b,a)) = 'additive$uidentity',
    inference(demodulation,[status(thm)],[d99,d14]) ).

cnf(d101,plain,
    add(c,'additive$uidentity') = multiply(b,a),
    inference(superposition,[status(thm)],[d100,d35]) ).

cnf(d102,plain,
    c = multiply(b,a),
    inference(demodulation,[status(thm)],[d101,c4]) ).

cnf(d103,plain,
    c != c,
    inference(demodulation,[status(thm)],[c2,d102]) ).

cnf(d104,plain,
    X1 = add(X0,add(X0,X1)),
    inference(demodulation,[status(thm)],[d4,d34]) ).

cnf(d105,plain,
    add(X2,add(X0,X1)) = add(X0,add(X1,X2)),
    inference(superposition,[status(thm)],[c7,c8]) ).

cnf(d106,plain,
    add(X0,'additive$uidentity') = add(c,add(multiply(a,'additive$uinverse'(b)),X0)),
    inference(superposition,[status(thm)],[d56,d105]) ).

cnf(d107,plain,
    X0 = add(c,add(multiply(a,'additive$uinverse'(b)),X0)),
    inference(demodulation,[status(thm)],[d106,c4]) ).

cnf(d108,plain,
    X0 = add(c,add(multiply(a,b),X0)),
    inference(demodulation,[status(thm)],[d107,d34]) ).

cnf(d109,plain,
    X0 = add(c,add(c,X0)),
    inference(demodulation,[status(thm)],[d108,c1]) ).

cnf(d110,plain,
    X0 = X0,
    inference(demodulation,[status(thm)],[d109,d104]) ).

cnf(d111,plain,
    $false,
    inference(resolution,[status(thm)],[d110,d103]) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.04  % Problem  : RNG008-7 : TPTP v9.3.1. Released v1.0.0.
% 0.00/0.05  % Command  : casc-portfolio.sh -t 300 /export/starexec/sandbox2/benchmark/theBenchmark.p
% 0.13/0.39  % Computer : n018.cluster.edu
% 0.13/0.39  % Model    : x86_64 x86_64
% 0.13/0.39  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.13/0.39  % Memory   : 8046.5625MB
% 0.13/0.39  % OS       : Linux 6.8.0-71-generic
% 0.13/0.39  % CPULimit : 300
% 0.13/0.39  % WCLimit  : 300
% 0.13/0.39  % DateTime : Sat Sep 26 05:47:21 UTC 2026
% 0.13/0.40  % CPUTime  : 
% 0.13/0.40  Running casc-portfolio.sh -t 300 /export/starexec/sandbox2/benchmark/theBenchmark.p
% 62.32/13.80  % SZS status Unsatisfiable for theBenchmark.p
% 62.32/13.80  % SZS output start CNFRefutation for theBenchmark.p
% See solution above
%------------------------------------------------------------------------------