↑ Up

Drodi---4.1.1.THM-CRf.s

View TPTP
Problem
Process solution in
SystemOnTSTP
Download .tgz
%------------------------------------------------------------------------------
% File     : Drodi---4.1.1
% Problem  : SEU227+3 : TPTP v9.3.1. Released v3.2.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : drodi -timeout(300) /export/starexec/sandbox/benchmark/theBenchmark.p

% Computer : n009.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 02:19:47 PM UTC 2026

% Result   : Theorem 0.10s 0.46s
% Output   : CNFRefutation 0.10s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   17
%            Number of leaves      :    5
% Syntax   : Number of formulae    :   52 (   5 unt;   0 def)
%            Number of atoms       :  265 (  27 equ)
%            Maximal formula atoms :   15 (   5 avg)
%            Number of connectives :  337 ( 124   ~; 136   |;  55   &)
%                                         (  14 <=>;   8  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   13 (   7 avg)
%            Maximal term depth    :    4 (   1 avg)
%            Number of predicates  :    5 (   3 usr;   1 prp; 0-2 aty)
%            Number of functors    :   16 (  16 usr;   2 con; 0-4 aty)
%            Number of variables   :  193 ( 163   !;  30   ?)

% Comments : 
%------------------------------------------------------------------------------
fof(f6,axiom,
    ! [A] :
      ( relation(A)
     => ! [B,C] :
          ( C = relation_image(A,B)
        <=> ! [D] :
              ( in(D,C)
            <=> ? [E] :
                  ( in(E,B)
                  & in(ordered_pair(E,D),A) ) ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f7,axiom,
    ! [A] :
      ( relation(A)
     => ! [B,C] :
          ( C = relation_inverse_image(A,B)
        <=> ! [D] :
              ( in(D,C)
            <=> ? [E] :
                  ( in(E,B)
                  & in(ordered_pair(D,E),A) ) ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f8,axiom,
    ! [A,B] :
      ( subset(A,B)
    <=> ! [C] :
          ( in(C,A)
         => in(C,B) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f9,axiom,
    ! [A] :
      ( relation(A)
     => ! [B] :
          ( B = relation_dom(A)
        <=> ! [C] :
              ( in(C,B)
            <=> ? [D] : in(ordered_pair(C,D),A) ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f32,conjecture,
    ! [A,B] :
      ( relation(B)
     => ( subset(A,relation_dom(B))
       => subset(A,relation_inverse_image(B,relation_image(B,A))) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p') ).

fof(f33,negated_conjecture,
    ~ ! [A,B] :
        ( relation(B)
       => ( subset(A,relation_dom(B))
         => subset(A,relation_inverse_image(B,relation_image(B,A))) ) ),
    inference(negated_conjecture,[status(cth)],[f32]) ).

fof(f53,plain,
    ! [A] :
      ( ! [B,C] :
          ( C = relation_image(A,B)
        <=> ! [D] :
              ( in(D,C)
            <=> ? [E] :
                  ( in(E,B)
                  & in(ordered_pair(E,D),A) ) ) )
      | ~ relation(A) ),
    inference(pre_NNF_transformation,[status(thm)],[f6]) ).

fof(f54,plain,
    ! [A] :
      ( ! [B,C] :
          ( ( ? [D] :
                ( ( ? [E] :
                      ( in(E,B)
                      & in(ordered_pair(E,D),A) )
                  | in(D,C) )
                & ( ! [E] :
                      ( ~ in(E,B)
                      | ~ in(ordered_pair(E,D),A) )
                  | ~ in(D,C) ) )
            | C = relation_image(A,B) )
          & ( ! [D] :
                ( ( ! [E] :
                      ( ~ in(E,B)
                      | ~ in(ordered_pair(E,D),A) )
                  | in(D,C) )
                & ( ? [E] :
                      ( in(E,B)
                      & in(ordered_pair(E,D),A) )
                  | ~ in(D,C) ) )
            | C != relation_image(A,B) ) )
      | ~ relation(A) ),
    inference(NNF_transformation,[status(thm)],[f53]) ).

fof(f55,plain,
    ! [A] :
      ( ( ! [B,C] :
            ( ? [D] :
                ( ( ? [E] :
                      ( in(E,B)
                      & in(ordered_pair(E,D),A) )
                  | in(D,C) )
                & ( ! [E] :
                      ( ~ in(E,B)
                      | ~ in(ordered_pair(E,D),A) )
                  | ~ in(D,C) ) )
            | C = relation_image(A,B) )
        & ! [B,C] :
            ( ( ! [D] :
                  ( ! [E] :
                      ( ~ in(E,B)
                      | ~ in(ordered_pair(E,D),A) )
                  | in(D,C) )
              & ! [D] :
                  ( ? [E] :
                      ( in(E,B)
                      & in(ordered_pair(E,D),A) )
                  | ~ in(D,C) ) )
            | C != relation_image(A,B) ) )
      | ~ relation(A) ),
    inference(miniscoping,[status(thm)],[f54]) ).

fof(f56,plain,
    ! [A] :
      ( ( ! [B,C] :
            ( ( ( ( in(sK2_skl(C,B,A),B)
                  & in(ordered_pair(sK2_skl(C,B,A),sK1_skl(C,B,A)),A) )
                | in(sK1_skl(C,B,A),C) )
              & ( ! [E] :
                    ( ~ in(E,B)
                    | ~ in(ordered_pair(E,sK1_skl(C,B,A)),A) )
                | ~ in(sK1_skl(C,B,A),C) ) )
            | C = relation_image(A,B) )
        & ! [B,C] :
            ( ( ! [D] :
                  ( ! [E] :
                      ( ~ in(E,B)
                      | ~ in(ordered_pair(E,D),A) )
                  | in(D,C) )
              & ! [D] :
                  ( ( in(sK0_skl(D,C,B,A),B)
                    & in(ordered_pair(sK0_skl(D,C,B,A),D),A) )
                  | ~ in(D,C) ) )
            | C != relation_image(A,B) ) )
      | ~ relation(A) ),
    inference(skolemize,[status(esa),new_symbols(skolem,[sK0_skl,sK1_skl,sK2_skl]),skolemize(E,sK0_skl(D,C,B,A)),skolemize(D,sK1_skl(C,B,A)),skolemize(E,sK2_skl(C,B,A))],[f55]) ).

fof(f59,plain,
    ! [X0,X1,X2,X3,X4] :
      ( ~ in(X4,X2)
      | ~ in(ordered_pair(X4,X3),X0)
      | in(X3,X1)
      | X1 != relation_image(X0,X2)
      | ~ relation(X0) ),
    inference(cnf_transformation,[status(thm)],[f56]) ).

fof(f63,plain,
    ! [A] :
      ( ! [B,C] :
          ( C = relation_inverse_image(A,B)
        <=> ! [D] :
              ( in(D,C)
            <=> ? [E] :
                  ( in(E,B)
                  & in(ordered_pair(D,E),A) ) ) )
      | ~ relation(A) ),
    inference(pre_NNF_transformation,[status(thm)],[f7]) ).

fof(f64,plain,
    ! [A] :
      ( ! [B,C] :
          ( ( ? [D] :
                ( ( ? [E] :
                      ( in(E,B)
                      & in(ordered_pair(D,E),A) )
                  | in(D,C) )
                & ( ! [E] :
                      ( ~ in(E,B)
                      | ~ in(ordered_pair(D,E),A) )
                  | ~ in(D,C) ) )
            | C = relation_inverse_image(A,B) )
          & ( ! [D] :
                ( ( ! [E] :
                      ( ~ in(E,B)
                      | ~ in(ordered_pair(D,E),A) )
                  | in(D,C) )
                & ( ? [E] :
                      ( in(E,B)
                      & in(ordered_pair(D,E),A) )
                  | ~ in(D,C) ) )
            | C != relation_inverse_image(A,B) ) )
      | ~ relation(A) ),
    inference(NNF_transformation,[status(thm)],[f63]) ).

fof(f65,plain,
    ! [A] :
      ( ( ! [B,C] :
            ( ? [D] :
                ( ( ? [E] :
                      ( in(E,B)
                      & in(ordered_pair(D,E),A) )
                  | in(D,C) )
                & ( ! [E] :
                      ( ~ in(E,B)
                      | ~ in(ordered_pair(D,E),A) )
                  | ~ in(D,C) ) )
            | C = relation_inverse_image(A,B) )
        & ! [B,C] :
            ( ( ! [D] :
                  ( ! [E] :
                      ( ~ in(E,B)
                      | ~ in(ordered_pair(D,E),A) )
                  | in(D,C) )
              & ! [D] :
                  ( ? [E] :
                      ( in(E,B)
                      & in(ordered_pair(D,E),A) )
                  | ~ in(D,C) ) )
            | C != relation_inverse_image(A,B) ) )
      | ~ relation(A) ),
    inference(miniscoping,[status(thm)],[f64]) ).

fof(f66,plain,
    ! [A] :
      ( ( ! [B,C] :
            ( ( ( ( in(sK5_skl(C,B,A),B)
                  & in(ordered_pair(sK4_skl(C,B,A),sK5_skl(C,B,A)),A) )
                | in(sK4_skl(C,B,A),C) )
              & ( ! [E] :
                    ( ~ in(E,B)
                    | ~ in(ordered_pair(sK4_skl(C,B,A),E),A) )
                | ~ in(sK4_skl(C,B,A),C) ) )
            | C = relation_inverse_image(A,B) )
        & ! [B,C] :
            ( ( ! [D] :
                  ( ! [E] :
                      ( ~ in(E,B)
                      | ~ in(ordered_pair(D,E),A) )
                  | in(D,C) )
              & ! [D] :
                  ( ( in(sK3_skl(D,C,B,A),B)
                    & in(ordered_pair(D,sK3_skl(D,C,B,A)),A) )
                  | ~ in(D,C) ) )
            | C != relation_inverse_image(A,B) ) )
      | ~ relation(A) ),
    inference(skolemize,[status(esa),new_symbols(skolem,[sK3_skl,sK4_skl,sK5_skl]),skolemize(E,sK3_skl(D,C,B,A)),skolemize(D,sK4_skl(C,B,A)),skolemize(E,sK5_skl(C,B,A))],[f65]) ).

fof(f69,plain,
    ! [X0,X1,X2,X3,X4] :
      ( ~ in(X4,X2)
      | ~ in(ordered_pair(X3,X4),X0)
      | in(X3,X1)
      | X1 != relation_inverse_image(X0,X2)
      | ~ relation(X0) ),
    inference(cnf_transformation,[status(thm)],[f66]) ).

fof(f73,plain,
    ! [A,B] :
      ( subset(A,B)
    <=> ! [C] :
          ( in(C,B)
          | ~ in(C,A) ) ),
    inference(pre_NNF_transformation,[status(thm)],[f8]) ).

fof(f74,plain,
    ! [A,B] :
      ( ( ? [C] :
            ( ~ in(C,B)
            & in(C,A) )
        | subset(A,B) )
      & ( ! [C] :
            ( in(C,B)
            | ~ in(C,A) )
        | ~ subset(A,B) ) ),
    inference(NNF_transformation,[status(thm)],[f73]) ).

fof(f75,plain,
    ( ! [A,B] :
        ( ? [C] :
            ( ~ in(C,B)
            & in(C,A) )
        | subset(A,B) )
    & ! [A,B] :
        ( ! [C] :
            ( in(C,B)
            | ~ in(C,A) )
        | ~ subset(A,B) ) ),
    inference(miniscoping,[status(thm)],[f74]) ).

fof(f76,plain,
    ( ! [A,B] :
        ( ( ~ in(sK6_skl(B,A),B)
          & in(sK6_skl(B,A),A) )
        | subset(A,B) )
    & ! [A,B] :
        ( ! [C] :
            ( in(C,B)
            | ~ in(C,A) )
        | ~ subset(A,B) ) ),
    inference(skolemize,[status(esa),new_symbols(skolem,[sK6_skl]),skolemize(C,sK6_skl(B,A))],[f75]) ).

fof(f77,plain,
    ! [X0,X1,X2] :
      ( in(X2,X1)
      | ~ in(X2,X0)
      | ~ subset(X0,X1) ),
    inference(cnf_transformation,[status(thm)],[f76]) ).

fof(f78,plain,
    ! [X0,X1] :
      ( in(sK6_skl(X1,X0),X0)
      | subset(X0,X1) ),
    inference(cnf_transformation,[status(thm)],[f76]) ).

fof(f79,plain,
    ! [X0,X1] :
      ( ~ in(sK6_skl(X1,X0),X1)
      | subset(X0,X1) ),
    inference(cnf_transformation,[status(thm)],[f76]) ).

fof(f80,plain,
    ! [A] :
      ( ! [B] :
          ( B = relation_dom(A)
        <=> ! [C] :
              ( in(C,B)
            <=> ? [D] : in(ordered_pair(C,D),A) ) )
      | ~ relation(A) ),
    inference(pre_NNF_transformation,[status(thm)],[f9]) ).

fof(f81,plain,
    ! [A] :
      ( ! [B] :
          ( ( ? [C] :
                ( ( ? [D] : in(ordered_pair(C,D),A)
                  | in(C,B) )
                & ( ! [D] : ~ in(ordered_pair(C,D),A)
                  | ~ in(C,B) ) )
            | B = relation_dom(A) )
          & ( ! [C] :
                ( ( ! [D] : ~ in(ordered_pair(C,D),A)
                  | in(C,B) )
                & ( ? [D] : in(ordered_pair(C,D),A)
                  | ~ in(C,B) ) )
            | B != relation_dom(A) ) )
      | ~ relation(A) ),
    inference(NNF_transformation,[status(thm)],[f80]) ).

fof(f82,plain,
    ! [A] :
      ( ( ! [B] :
            ( ? [C] :
                ( ( ? [D] : in(ordered_pair(C,D),A)
                  | in(C,B) )
                & ( ! [D] : ~ in(ordered_pair(C,D),A)
                  | ~ in(C,B) ) )
            | B = relation_dom(A) )
        & ! [B] :
            ( ( ! [C] :
                  ( ! [D] : ~ in(ordered_pair(C,D),A)
                  | in(C,B) )
              & ! [C] :
                  ( ? [D] : in(ordered_pair(C,D),A)
                  | ~ in(C,B) ) )
            | B != relation_dom(A) ) )
      | ~ relation(A) ),
    inference(miniscoping,[status(thm)],[f81]) ).

fof(f83,plain,
    ! [A] :
      ( ( ! [B] :
            ( ( ( in(ordered_pair(sK8_skl(B,A),sK9_skl(B,A)),A)
                | in(sK8_skl(B,A),B) )
              & ( ! [D] : ~ in(ordered_pair(sK8_skl(B,A),D),A)
                | ~ in(sK8_skl(B,A),B) ) )
            | B = relation_dom(A) )
        & ! [B] :
            ( ( ! [C] :
                  ( ! [D] : ~ in(ordered_pair(C,D),A)
                  | in(C,B) )
              & ! [C] :
                  ( in(ordered_pair(C,sK7_skl(C,B,A)),A)
                  | ~ in(C,B) ) )
            | B != relation_dom(A) ) )
      | ~ relation(A) ),
    inference(skolemize,[status(esa),new_symbols(skolem,[sK7_skl,sK8_skl,sK9_skl]),skolemize(D,sK7_skl(C,B,A)),skolemize(C,sK8_skl(B,A)),skolemize(D,sK9_skl(B,A))],[f82]) ).

fof(f84,plain,
    ! [X0,X1,X2] :
      ( in(ordered_pair(X2,sK7_skl(X2,X1,X0)),X0)
      | ~ in(X2,X1)
      | X1 != relation_dom(X0)
      | ~ relation(X0) ),
    inference(cnf_transformation,[status(thm)],[f83]) ).

fof(f139,plain,
    ? [A,B] :
      ( ~ subset(A,relation_inverse_image(B,relation_image(B,A)))
      & subset(A,relation_dom(B))
      & relation(B) ),
    inference(pre_NNF_transformation,[status(thm)],[f33]) ).

fof(f140,plain,
    ? [B] :
      ( ? [A] :
          ( ~ subset(A,relation_inverse_image(B,relation_image(B,A)))
          & subset(A,relation_dom(B)) )
      & relation(B) ),
    inference(miniscoping,[status(thm)],[f139]) ).

fof(f141,plain,
    ( ~ subset(sK22_skl,relation_inverse_image(sK21_skl,relation_image(sK21_skl,sK22_skl)))
    & subset(sK22_skl,relation_dom(sK21_skl))
    & relation(sK21_skl) ),
    inference(skolemize,[status(esa),new_symbols(skolem,[sK21_skl,sK22_skl]),skolemize(B,sK21_skl),skolemize(A,sK22_skl)],[f140]) ).

fof(f142,plain,
    relation(sK21_skl),
    inference(cnf_transformation,[status(thm)],[f141]) ).

fof(f143,plain,
    subset(sK22_skl,relation_dom(sK21_skl)),
    inference(cnf_transformation,[status(thm)],[f141]) ).

fof(f144,plain,
    ~ subset(sK22_skl,relation_inverse_image(sK21_skl,relation_image(sK21_skl,sK22_skl))),
    inference(cnf_transformation,[status(thm)],[f141]) ).

fof(f169,plain,
    ! [X0,X1,X2,X3] :
      ( ~ in(X3,X2)
      | ~ in(ordered_pair(X3,X1),X0)
      | in(X1,relation_image(X0,X2))
      | ~ relation(X0) ),
    inference(destructive_equality_resolution,[status(thm)],[f59]) ).

fof(f172,plain,
    ! [X0,X1,X2,X3] :
      ( ~ in(X3,X2)
      | ~ in(ordered_pair(X1,X3),X0)
      | in(X1,relation_inverse_image(X0,X2))
      | ~ relation(X0) ),
    inference(destructive_equality_resolution,[status(thm)],[f69]) ).

fof(f173,plain,
    ! [X0,X1] :
      ( in(ordered_pair(X1,sK7_skl(X1,relation_dom(X0),X0)),X0)
      | ~ in(X1,relation_dom(X0))
      | ~ relation(X0) ),
    inference(destructive_equality_resolution,[status(thm)],[f84]) ).

fof(f251,plain,
    ! [X0,X1,X2] :
      ( in(sK6_skl(X1,X0),X2)
      | ~ subset(X0,X2)
      | subset(X0,X1) ),
    inference(resolution,[status(thm)],[f78,f77]) ).

fof(f296,plain,
    ! [X0] :
      ( in(ordered_pair(X0,sK7_skl(X0,relation_dom(sK21_skl),sK21_skl)),sK21_skl)
      | ~ in(X0,relation_dom(sK21_skl)) ),
    inference(resolution,[status(thm)],[f173,f142]) ).

fof(f307,plain,
    ! [X0,X1] :
      ( ~ in(sK7_skl(X0,relation_dom(sK21_skl),sK21_skl),X1)
      | in(X0,relation_inverse_image(sK21_skl,X1))
      | ~ relation(sK21_skl)
      | ~ in(X0,relation_dom(sK21_skl)) ),
    inference(resolution,[status(thm)],[f296,f172]) ).

fof(f308,plain,
    ! [X0,X1] :
      ( ~ in(X0,X1)
      | in(sK7_skl(X0,relation_dom(sK21_skl),sK21_skl),relation_image(sK21_skl,X1))
      | ~ relation(sK21_skl)
      | ~ in(X0,relation_dom(sK21_skl)) ),
    inference(resolution,[status(thm)],[f296,f169]) ).

fof(f311,plain,
    ! [X0,X1] :
      ( ~ in(sK7_skl(X0,relation_dom(sK21_skl),sK21_skl),X1)
      | in(X0,relation_inverse_image(sK21_skl,X1))
      | ~ in(X0,relation_dom(sK21_skl)) ),
    inference(forward_subsumption_resolution,[status(thm)],[f307,f142]) ).

fof(f312,plain,
    ! [X0,X1] :
      ( ~ in(X0,X1)
      | in(sK7_skl(X0,relation_dom(sK21_skl),sK21_skl),relation_image(sK21_skl,X1))
      | ~ in(X0,relation_dom(sK21_skl)) ),
    inference(forward_subsumption_resolution,[status(thm)],[f308,f142]) ).

fof(f348,plain,
    ! [X0,X1] :
      ( in(X0,relation_inverse_image(sK21_skl,relation_image(sK21_skl,X1)))
      | ~ in(X0,relation_dom(sK21_skl))
      | ~ in(X0,X1)
      | ~ in(X0,relation_dom(sK21_skl)) ),
    inference(resolution,[status(thm)],[f312,f311]) ).

fof(f353,plain,
    ! [X0,X1] :
      ( in(X0,relation_inverse_image(sK21_skl,relation_image(sK21_skl,X1)))
      | ~ in(X0,X1)
      | ~ in(X0,relation_dom(sK21_skl)) ),
    inference(duplicate_literals_removal,[status(thm)],[f348]) ).

fof(f373,plain,
    ! [X0] :
      ( in(sK6_skl(X0,sK22_skl),relation_dom(sK21_skl))
      | subset(sK22_skl,X0) ),
    inference(resolution,[status(thm)],[f251,f143]) ).

fof(f407,plain,
    ! [X0,X1] :
      ( in(sK6_skl(X0,sK22_skl),relation_inverse_image(sK21_skl,relation_image(sK21_skl,X1)))
      | ~ in(sK6_skl(X0,sK22_skl),X1)
      | subset(sK22_skl,X0) ),
    inference(resolution,[status(thm)],[f373,f353]) ).

fof(f677,plain,
    ! [X0] :
      ( subset(sK22_skl,X0)
      | in(sK6_skl(X0,sK22_skl),relation_inverse_image(sK21_skl,relation_image(sK21_skl,sK22_skl)))
      | subset(sK22_skl,X0) ),
    inference(resolution,[status(thm)],[f407,f78]) ).

fof(f681,plain,
    ! [X0] :
      ( in(sK6_skl(X0,sK22_skl),relation_inverse_image(sK21_skl,relation_image(sK21_skl,sK22_skl)))
      | subset(sK22_skl,X0) ),
    inference(duplicate_literals_removal,[status(thm)],[f677]) ).

fof(f684,plain,
    ( subset(sK22_skl,relation_inverse_image(sK21_skl,relation_image(sK21_skl,sK22_skl)))
    | subset(sK22_skl,relation_inverse_image(sK21_skl,relation_image(sK21_skl,sK22_skl))) ),
    inference(resolution,[status(thm)],[f681,f79]) ).

fof(f690,plain,
    subset(sK22_skl,relation_inverse_image(sK21_skl,relation_image(sK21_skl,sK22_skl))),
    inference(duplicate_literals_removal,[status(thm)],[f684]) ).

fof(f691,plain,
    $false,
    inference(forward_subsumption_resolution,[status(thm)],[f690,f144]) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03  % Problem  : SEU227+3 : TPTP v9.3.1. Released v3.2.0.
% 0.00/0.04  % Command  : drodi -timeout(300) /export/starexec/sandbox/benchmark/theBenchmark.p
% 0.10/0.36  % Computer : n009.cluster.edu
% 0.10/0.36  % Model    : x86_64 x86_64
% 0.10/0.36  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.10/0.36  % Memory   : 8046.5625MB
% 0.10/0.36  % OS       : Linux 6.8.0-71-generic
% 0.10/0.36  % CPULimit : 300
% 0.10/0.36  % WCLimit  : 300
% 0.10/0.36  % DateTime : Mon Sep 21 06:00:13 UTC 2026
% 0.10/0.37  % CPUTime  : 
% 0.10/0.38  % Drodi V4.1.1
% 0.10/0.46  % Refutation found
% 0.10/0.46  % SZS status Theorem for theBenchmark: Theorem is valid
% 0.10/0.46  % SZS output start CNFRefutation for theBenchmark
% See solution above
% 0.19/0.50  % Elapsed time: 0.120265 seconds
% 0.19/0.50  % CPU time: 0.584509 seconds
% 0.19/0.50  % Total memory used: 109.901 MB
% 0.19/0.50  % Net memory used: 108.797 MB
%------------------------------------------------------------------------------