↑ Up

ConnectPP---0.7.2.THM-Prf.s

View TPTP
Problem
Process solution in
SystemOnTSTP
Download .tgz
%------------------------------------------------------------------------------
% File     : ConnectPP---0.7.2
% Problem  : CSR113+28 : TPTP v9.3.1. Released v4.0.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : /export/starexec/sandbox2/solver/bin/connect++ --verbosity 1 --no-colour --tptp-proof --schedule default --timeout 300 /export/starexec/sandbox2/benchmark/theBenchmark.p

% Computer : n002.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 : Thu Sep 24 08:36:23 AM UTC 2026

% Result   : Theorem 6.80s 7.14s
% Output   : Proof 6.95s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :    8
%            Number of leaves      :    4
% Syntax   : Number of formulae    :   48 (  23 unt;   0 def)
%            Number of atoms       :  419 (   0 equ)
%            Maximal formula atoms :  148 (   8 avg)
%            Number of connectives :  431 (  60   ~;  51   |; 318   &)
%                                         (   0 <=>;   2  =>;   0  <=;   0 <~>)
%            Maximal formula depth :  148 (  10 avg)
%            Maximal term depth    :    2 (   1 avg)
%            Number of predicates  :   27 (  26 usr;   1 prp; 0-3 aty)
%            Number of functors    :   52 (  52 usr;  51 con; 0-2 aty)
%            Number of variables   :   60 (   1 sgn  34   !;  13   ?)

% Comments : 
%------------------------------------------------------------------------------
fof(local_function___flp,axiom,
    ! [X0,X1] :
      ( ( bei(X0,X1)
        | an(X0,X1)
        | in(X0,X1) )
     => flp(X0,X1) ),
    file('CSR004+0.ax',local_function___flp) ).

fof(loc__stehen_1_1_loc,axiom,
    ! [X0,X1] :
      ( loc(X0,X1)
     => ? [X2] :
          ( subs(X2,stehen_1_1)
          & scar(X2,X0)
          & loc(X2,X1) ) ),
    file('CSR004+0.ax',loc__stehen_1_1_loc) ).

fof(synth_qa07_003_qapn_31_a19713,conjecture,
    ? [X0,X1,X2,X3,X4] :
      ( val(X1,new_york_0)
      & subs(X3,stehen_1_1)
      & sub(X4,freiheitsstatue_1_1)
      & sub(X1,name_1_1)
      & scar(X3,X4)
      & loc(X3,X0)
      & flp(X0,X2) ),
    file('theBenchmark.p',synth_qa07_003_qapn_31_a19713) ).

fof(ave07_era5_synth_qa07_003_qapn_31_a19713,hypothesis,
    ( varia(statue_1_1,varia_c)
    & refer(statue_1_1,refer_c)
    & quant(statue_1_1,one)
    & gener(statue_1_1,ge)
    & fact(statue_1_1,real)
    & etype(statue_1_1,int0)
    & card(statue_1_1,int1)
    & sort(statue_1_1,d)
    & varia(freiheit_1_1,varia_c)
    & refer(freiheit_1_1,refer_c)
    & quant(freiheit_1_1,one)
    & gener(freiheit_1_1,ge)
    & fact(freiheit_1_1,real)
    & etype(freiheit_1_1,int0)
    & card(freiheit_1_1,int1)
    & sort(freiheit_1_1,io)
    & sort(freiheit_1_1,as)
    & sort(klein_1_1,mq)
    & sort(new_york_0,fe)
    & varia(name_1_1,varia_c)
    & refer(name_1_1,refer_c)
    & quant(name_1_1,one)
    & gener(name_1_1,ge)
    & fact(name_1_1,real)
    & etype(name_1_1,int0)
    & card(name_1_1,int1)
    & sort(name_1_1,na)
    & varia(stadt__1_1,varia_c)
    & refer(stadt__1_1,refer_c)
    & quant(stadt__1_1,one)
    & gener(stadt__1_1,ge)
    & fact(stadt__1_1,real)
    & etype(stadt__1_1,int0)
    & card(stadt__1_1,int1)
    & sort(stadt__1_1,io)
    & sort(stadt__1_1,d)
    & varia(c55,varia_c)
    & refer(c55,indet)
    & quant(c55,one)
    & gener(c55,sp)
    & fact(c55,real)
    & etype(c55,int0)
    & card(c55,int1)
    & sort(c55,na)
    & varia(c54,con)
    & refer(c54,det)
    & quant(c54,one)
    & gener(c54,sp)
    & fact(c54,real)
    & etype(c54,int0)
    & card(c54,int1)
    & sort(c54,io)
    & sort(c54,d)
    & varia(bootshafen_1_1,varia_c)
    & refer(bootshafen_1_1,refer_c)
    & quant(bootshafen_1_1,one)
    & gener(bootshafen_1_1,ge)
    & fact(bootshafen_1_1,real)
    & etype(bootshafen_1_1,int0)
    & card(bootshafen_1_1,int1)
    & sort(bootshafen_1_1,d)
    & varia(c49,con)
    & refer(c49,det)
    & quant(c49,one)
    & gener(c49,sp)
    & fact(c49,real)
    & etype(c49,int0)
    & card(c49,int1)
    & sort(c49,d)
    & varia(freiheitsstatue_1_1,varia_c)
    & refer(freiheitsstatue_1_1,refer_c)
    & quant(freiheitsstatue_1_1,one)
    & gener(freiheitsstatue_1_1,ge)
    & fact(freiheitsstatue_1_1,real)
    & etype(freiheitsstatue_1_1,int0)
    & card(freiheitsstatue_1_1,int1)
    & sort(freiheitsstatue_1_1,d)
    & varia(c58,con)
    & refer(c58,det)
    & quant(c58,one)
    & gener(c58,sp)
    & fact(c58,real)
    & etype(c58,int0)
    & card(c58,int1)
    & sort(c58,l)
    & varia(c44,con)
    & refer(c44,det)
    & quant(c44,one)
    & gener(c44,sp)
    & fact(c44,real)
    & etype(c44,int0)
    & card(c44,int1)
    & sort(c44,d)
    & varia(figur_1_1,varia_c)
    & refer(figur_1_1,refer_c)
    & quant(figur_1_1,one)
    & gener(figur_1_1,ge)
    & fact(figur_1_1,real)
    & etype(figur_1_1,int0)
    & card(figur_1_1,int1)
    & sort(figur_1_1,d)
    & gener(meter_1_1,ge)
    & sort(meter_1_1,me)
    & card(c25,int5)
    & sort(c25,nu)
    & gener(prop_0,gener_c)
    & fact(prop_0,real)
    & sort(prop_0,st)
    & varia(c39,con)
    & refer(c39,refer_c)
    & quant(c39,quant_c)
    & gener(c39,gener_c)
    & fact(c39,real)
    & etype(c39,etype_c)
    & card(c39,card_c)
    & sort(c39,m)
    & sort(c39,co)
    & sort(c56,tq)
    & varia(c4,con)
    & refer(c4,det)
    & quant(c4,one)
    & gener(c4,sp)
    & fact(c4,real)
    & etype(c4,int0)
    & card(c4,int1)
    & sort(c4,d)
    & gener(c23,sp)
    & fact(c23,real)
    & sort(c23,st)
    & sub(freiheitsstatue_1_1,statue_1_1)
    & assoc(freiheitsstatue_1_1,freiheit_1_1)
    & in(c58,c49)
    & comp(c56,klein_1_1,c44)
    & val(c55,new_york_0)
    & sub(c55,name_1_1)
    & sub(c54,stadt__1_1)
    & attr(c54,c55)
    & attch(c54,c49)
    & sub(c49,bootshafen_1_1)
    & sub(c44,freiheitsstatue_1_1)
    & loc(c44,c58)
    & sub(c4,figur_1_1)
    & prop(c4,c56)
    & quant_p3(c39,c25,meter_1_1)
    & subr(c23,prop_0)
    & assoc(c23,c39)
    & arg2(c23,c56)
    & arg1(c23,c4) ),
    file('theBenchmark.p',ave07_era5_synth_qa07_003_qapn_31_a19713) ).

fof(f_176_1,plain,
    ! [X0,X1] :
      ( flp(X0,X1)
      | ( ~ bei(X0,X1)
        & ~ an(X0,X1)
        & ~ in(X0,X1) ) ),
    inference(fof_nnf,[status(thm)],[local_function___flp]) ).

fof(f_176_2,plain,
    ! [U_456,U_455] :
      ( flp(U_456,U_455)
      | ( ~ bei(U_456,U_455)
        & ~ an(U_456,U_455)
        & ~ in(U_456,U_455) ) ),
    inference(variable_rename,[status(thm)],[f_176_1]) ).

cnf(f_176_3,plain,
    ( ~ in(U_456,U_455)
    | flp(U_456,U_455) ),
    inference(clausify,[status(thm)],[f_176_2]) ).

fof(f_180_1,plain,
    ! [X0,X1] :
      ( ? [X2] :
          ( subs(X2,stehen_1_1)
          & scar(X2,X0)
          & loc(X2,X1) )
      | ~ loc(X0,X1) ),
    inference(fof_nnf,[status(thm)],[loc__stehen_1_1_loc]) ).

fof(f_180_2,plain,
    ! [U_468,U_467] :
      ( ? [U_466] :
          ( subs(U_466,stehen_1_1)
          & scar(U_466,U_468)
          & loc(U_466,U_467) )
      | ~ loc(U_468,U_467) ),
    inference(variable_rename,[status(thm)],[f_180_1]) ).

fof(f_180_3,plain,
    ! [U_468,U_467] :
      ( ( subs(sK63(U_468,U_467),stehen_1_1)
        & scar(sK63(U_468,U_467),U_468)
        & loc(sK63(U_468,U_467),U_467) )
      | ~ loc(U_468,U_467) ),
    inference(skolemize,[status(esa),new_symbols(skolem,[sK63]),skolemize(U_466,sK63(U_468,U_467))],[f_180_2]) ).

cnf(f_180_4,plain,
    ( loc(sK63(U_468,U_467),U_467)
    | ~ loc(U_468,U_467) ),
    inference(clausify,[status(thm)],[f_180_3]) ).

cnf(f_180_5,plain,
    ( scar(sK63(U_468,U_467),U_468)
    | ~ loc(U_468,U_467) ),
    inference(clausify,[status(thm)],[f_180_3]) ).

cnf(f_180_6,plain,
    ( subs(sK63(U_468,U_467),stehen_1_1)
    | ~ loc(U_468,U_467) ),
    inference(clausify,[status(thm)],[f_180_3]) ).

fof(f_10188_1,negated_conjecture,
    ~ ? [X0,X1,X2,X3,X4] :
        ( val(X1,new_york_0)
        & subs(X3,stehen_1_1)
        & sub(X4,freiheitsstatue_1_1)
        & sub(X1,name_1_1)
        & scar(X3,X4)
        & loc(X3,X0)
        & flp(X0,X2) ),
    inference(negate,[status(cth)],[synth_qa07_003_qapn_31_a19713]) ).

fof(f_10188_2,negated_conjecture,
    ! [X0,X1,X2,X3,X4] :
      ( ~ val(X1,new_york_0)
      | ~ subs(X3,stehen_1_1)
      | ~ sub(X4,freiheitsstatue_1_1)
      | ~ sub(X1,name_1_1)
      | ~ scar(X3,X4)
      | ~ loc(X3,X0)
      | ~ flp(X0,X2) ),
    inference(fof_nnf,[status(thm)],[f_10188_1]) ).

fof(f_10188_3,negated_conjecture,
    ! [U_476,U_475,U_474,U_473,U_472] :
      ( ~ val(U_475,new_york_0)
      | ~ subs(U_473,stehen_1_1)
      | ~ sub(U_472,freiheitsstatue_1_1)
      | ~ sub(U_475,name_1_1)
      | ~ scar(U_473,U_472)
      | ~ loc(U_473,U_476)
      | ~ flp(U_476,U_474) ),
    inference(variable_rename,[status(thm)],[f_10188_2]) ).

fof(f_10188_4,negated_conjecture,
    ( ! [U_476] :
        ( ! [U_474] : ~ flp(U_476,U_474)
        | ! [U_473] :
            ( ! [U_472] :
                ( ~ sub(U_472,freiheitsstatue_1_1)
                | ~ scar(U_473,U_472) )
            | ~ subs(U_473,stehen_1_1)
            | ~ loc(U_473,U_476) ) )
    | ! [U_475] :
        ( ~ val(U_475,new_york_0)
        | ~ sub(U_475,name_1_1) ) ),
    inference(miniscope,[status(thm)],[f_10188_3]) ).

fof(f_10188_5,negated_conjecture,
    ! [U_472,U_473,U_474,U_475,U_476] :
      ( ~ flp(U_476,U_474)
      | ~ sub(U_472,freiheitsstatue_1_1)
      | ~ scar(U_473,U_472)
      | ~ subs(U_473,stehen_1_1)
      | ~ loc(U_473,U_476)
      | ~ val(U_475,new_york_0)
      | ~ sub(U_475,name_1_1) ),
    inference(definitional_conversion,[status(esa)],[f_10188_4]) ).

cnf(f_10188_6,negated_conjecture,
    ( ~ flp(U_476,U_474)
    | ~ sub(U_472,freiheitsstatue_1_1)
    | ~ scar(U_473,U_472)
    | ~ subs(U_473,stehen_1_1)
    | ~ loc(U_473,U_476)
    | ~ val(U_475,new_york_0)
    | ~ sub(U_475,name_1_1) ),
    inference(clausify,[status(thm)],[f_10188_5]) ).

fof(f_10189_1,plain,
    ( varia(statue_1_1,varia_c)
    & refer(statue_1_1,refer_c)
    & quant(statue_1_1,one)
    & gener(statue_1_1,ge)
    & fact(statue_1_1,real)
    & etype(statue_1_1,int0)
    & card(statue_1_1,int1)
    & sort(statue_1_1,d)
    & varia(freiheit_1_1,varia_c)
    & refer(freiheit_1_1,refer_c)
    & quant(freiheit_1_1,one)
    & gener(freiheit_1_1,ge)
    & fact(freiheit_1_1,real)
    & etype(freiheit_1_1,int0)
    & card(freiheit_1_1,int1)
    & sort(freiheit_1_1,io)
    & sort(freiheit_1_1,as)
    & sort(klein_1_1,mq)
    & sort(new_york_0,fe)
    & varia(name_1_1,varia_c)
    & refer(name_1_1,refer_c)
    & quant(name_1_1,one)
    & gener(name_1_1,ge)
    & fact(name_1_1,real)
    & etype(name_1_1,int0)
    & card(name_1_1,int1)
    & sort(name_1_1,na)
    & varia(stadt__1_1,varia_c)
    & refer(stadt__1_1,refer_c)
    & quant(stadt__1_1,one)
    & gener(stadt__1_1,ge)
    & fact(stadt__1_1,real)
    & etype(stadt__1_1,int0)
    & card(stadt__1_1,int1)
    & sort(stadt__1_1,io)
    & sort(stadt__1_1,d)
    & varia(c55,varia_c)
    & refer(c55,indet)
    & quant(c55,one)
    & gener(c55,sp)
    & fact(c55,real)
    & etype(c55,int0)
    & card(c55,int1)
    & sort(c55,na)
    & varia(c54,con)
    & refer(c54,det)
    & quant(c54,one)
    & gener(c54,sp)
    & fact(c54,real)
    & etype(c54,int0)
    & card(c54,int1)
    & sort(c54,io)
    & sort(c54,d)
    & varia(bootshafen_1_1,varia_c)
    & refer(bootshafen_1_1,refer_c)
    & quant(bootshafen_1_1,one)
    & gener(bootshafen_1_1,ge)
    & fact(bootshafen_1_1,real)
    & etype(bootshafen_1_1,int0)
    & card(bootshafen_1_1,int1)
    & sort(bootshafen_1_1,d)
    & varia(c49,con)
    & refer(c49,det)
    & quant(c49,one)
    & gener(c49,sp)
    & fact(c49,real)
    & etype(c49,int0)
    & card(c49,int1)
    & sort(c49,d)
    & varia(freiheitsstatue_1_1,varia_c)
    & refer(freiheitsstatue_1_1,refer_c)
    & quant(freiheitsstatue_1_1,one)
    & gener(freiheitsstatue_1_1,ge)
    & fact(freiheitsstatue_1_1,real)
    & etype(freiheitsstatue_1_1,int0)
    & card(freiheitsstatue_1_1,int1)
    & sort(freiheitsstatue_1_1,d)
    & varia(c58,con)
    & refer(c58,det)
    & quant(c58,one)
    & gener(c58,sp)
    & fact(c58,real)
    & etype(c58,int0)
    & card(c58,int1)
    & sort(c58,l)
    & varia(c44,con)
    & refer(c44,det)
    & quant(c44,one)
    & gener(c44,sp)
    & fact(c44,real)
    & etype(c44,int0)
    & card(c44,int1)
    & sort(c44,d)
    & varia(figur_1_1,varia_c)
    & refer(figur_1_1,refer_c)
    & quant(figur_1_1,one)
    & gener(figur_1_1,ge)
    & fact(figur_1_1,real)
    & etype(figur_1_1,int0)
    & card(figur_1_1,int1)
    & sort(figur_1_1,d)
    & gener(meter_1_1,ge)
    & sort(meter_1_1,me)
    & card(c25,int5)
    & sort(c25,nu)
    & gener(prop_0,gener_c)
    & fact(prop_0,real)
    & sort(prop_0,st)
    & varia(c39,con)
    & refer(c39,refer_c)
    & quant(c39,quant_c)
    & gener(c39,gener_c)
    & fact(c39,real)
    & etype(c39,etype_c)
    & card(c39,card_c)
    & sort(c39,m)
    & sort(c39,co)
    & sort(c56,tq)
    & varia(c4,con)
    & refer(c4,det)
    & quant(c4,one)
    & gener(c4,sp)
    & fact(c4,real)
    & etype(c4,int0)
    & card(c4,int1)
    & sort(c4,d)
    & gener(c23,sp)
    & fact(c23,real)
    & sort(c23,st)
    & sub(freiheitsstatue_1_1,statue_1_1)
    & assoc(freiheitsstatue_1_1,freiheit_1_1)
    & in(c58,c49)
    & comp(c56,klein_1_1,c44)
    & val(c55,new_york_0)
    & sub(c55,name_1_1)
    & sub(c54,stadt__1_1)
    & attr(c54,c55)
    & attch(c54,c49)
    & sub(c49,bootshafen_1_1)
    & sub(c44,freiheitsstatue_1_1)
    & loc(c44,c58)
    & sub(c4,figur_1_1)
    & prop(c4,c56)
    & quant_p3(c39,c25,meter_1_1)
    & subr(c23,prop_0)
    & assoc(c23,c39)
    & arg2(c23,c56)
    & arg1(c23,c4) ),
    inference(fof_nnf,[status(thm)],[ave07_era5_synth_qa07_003_qapn_31_a19713]) ).

cnf(f_10189_9,plain,
    loc(c44,c58),
    inference(clausify,[status(thm)],[f_10189_1]) ).

cnf(f_10189_10,plain,
    sub(c44,freiheitsstatue_1_1),
    inference(clausify,[status(thm)],[f_10189_1]) ).

cnf(f_10189_15,plain,
    sub(c55,name_1_1),
    inference(clausify,[status(thm)],[f_10189_1]) ).

cnf(f_10189_16,plain,
    val(c55,new_york_0),
    inference(clausify,[status(thm)],[f_10189_1]) ).

cnf(f_10189_18,plain,
    in(c58,c49),
    inference(clausify,[status(thm)],[f_10189_1]) ).

cnf(t1,plain,
    ( ~ val(c55,new_york_0)
    | ~ loc(sK63(c44,c58),c58)
    | ~ subs(sK63(c44,c58),stehen_1_1)
    | ~ scar(sK63(c44,c58),c44)
    | ~ sub(c44,freiheitsstatue_1_1)
    | ~ flp(c58,c49)
    | ~ sub(c55,name_1_1) ),
    inference(start,[status(thm),parent(0:0)],[f_10188_6]) ).

cnf(t2,plain,
    sub(c55,name_1_1),
    inference(extension,[status(thm),parent(t1:1)],[f_10189_15]) ).

cnf(t3,plain,
    $false,
    inference(connection,[status(thm),parent(t2:1)],[t2:1,t1:1]) ).

cnf(t4,plain,
    ( ~ in(c58,c49)
    | flp(c58,c49) ),
    inference(extension,[status(thm),parent(t1:2)],[f_176_3]) ).

cnf(t5,plain,
    $false,
    inference(connection,[status(thm),parent(t4:1)],[t4:1,t1:2]) ).

cnf(t6,plain,
    in(c58,c49),
    inference(extension,[status(thm),parent(t4:2)],[f_10189_18]) ).

cnf(t7,plain,
    $false,
    inference(connection,[status(thm),parent(t6:1)],[t6:1,t4:2]) ).

cnf(t8,plain,
    sub(c44,freiheitsstatue_1_1),
    inference(extension,[status(thm),parent(t1:3)],[f_10189_10]) ).

cnf(t9,plain,
    $false,
    inference(connection,[status(thm),parent(t8:1)],[t8:1,t1:3]) ).

cnf(t10,plain,
    ( ~ loc(c44,c58)
    | scar(sK63(c44,c58),c44) ),
    inference(extension,[status(thm),parent(t1:4)],[f_180_5]) ).

cnf(t11,plain,
    $false,
    inference(connection,[status(thm),parent(t10:1)],[t10:1,t1:4]) ).

cnf(t12,plain,
    loc(c44,c58),
    inference(extension,[status(thm),parent(t10:2)],[f_10189_9]) ).

cnf(t13,plain,
    $false,
    inference(connection,[status(thm),parent(t12:1)],[t12:1,t10:2]) ).

cnf(t14,plain,
    ( ~ loc(c44,c58)
    | subs(sK63(c44,c58),stehen_1_1) ),
    inference(extension,[status(thm),parent(t1:5)],[f_180_6]) ).

cnf(t15,plain,
    $false,
    inference(connection,[status(thm),parent(t14:1)],[t14:1,t1:5]) ).

cnf(t16,plain,
    loc(c44,c58),
    inference(extension,[status(thm),parent(t14:2)],[f_10189_9]) ).

cnf(t17,plain,
    $false,
    inference(connection,[status(thm),parent(t16:1)],[t16:1,t14:2]) ).

cnf(t18,plain,
    ( ~ loc(c44,c58)
    | loc(sK63(c44,c58),c58) ),
    inference(extension,[status(thm),parent(t1:6)],[f_180_4]) ).

cnf(t19,plain,
    $false,
    inference(connection,[status(thm),parent(t18:1)],[t18:1,t1:6]) ).

cnf(t20,plain,
    loc(c44,c58),
    inference(extension,[status(thm),parent(t18:2)],[f_10189_9]) ).

cnf(t21,plain,
    $false,
    inference(connection,[status(thm),parent(t20:1)],[t20:1,t18:2]) ).

cnf(t22,plain,
    val(c55,new_york_0),
    inference(extension,[status(thm),parent(t1:7)],[f_10189_16]) ).

cnf(t23,plain,
    $false,
    inference(connection,[status(thm),parent(t22:1)],[t22:1,t1:7]) ).


%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.02  % Problem  : CSR113+28 : TPTP v9.3.1. Released v4.0.0.
% 0.00/0.02  This is a FOF_THM_RFO_NEQ problem
% 0.00/0.03  % Command  : /export/starexec/sandbox2/solver/bin/connect++ --verbosity 1 --no-colour --tptp-proof --schedule default --timeout 300 /export/starexec/sandbox2/benchmark/theBenchmark.p
% 0.09/0.36  % Computer : n002.cluster.edu
% 0.09/0.36  % Model    : x86_64 x86_64
% 0.09/0.36  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.09/0.36  % Memory   : 8046.5625MB
% 0.09/0.36  % OS       : Linux 6.8.0-71-generic
% 0.09/0.36  % CPULimit : 300
% 0.09/0.36  % WCLimit  : 300
% 0.09/0.36  % DateTime : Sun Sep 20 17:11:47 UTC 2026
% 0.12/0.36  % CPUTime  : 
% 6.80/7.14  % SZS status Theorem for theBenchmark
% 6.80/7.14  % SZS output start Proof for theBenchmark
% See solution above
%------------------------------------------------------------------------------