↑ Up

ConnectPP---0.7.2.UNS-Prf.s

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

% Computer : n011.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:47:16 AM UTC 2026

% Result   : Unsatisfiable 2.15s 2.47s
% Output   : Proof 2.15s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   12
%            Number of leaves      :    4
% Syntax   : Number of formulae    :   63 (  25 unt;   0 def)
%            Number of atoms       :  273 (  27 equ)
%            Maximal formula atoms :   29 (   4 avg)
%            Number of connectives :  343 ( 133   ~; 125   |;  83   &)
%                                         (   1 <=>;   1  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   14 (   4 avg)
%            Maximal term depth    :    2 (   1 avg)
%            Number of predicates  :    8 (   6 usr;   1 prp; 0-3 aty)
%            Number of functors    :    6 (   6 usr;   1 con; 0-1 aty)
%            Number of variables   :  162 (  26 sgn  95   !;  30   ?)

% Comments : 
%------------------------------------------------------------------------------
fof(cc_substitution_1,axiom,
    ! [A,B] :
      ( ( cc(A)
        & A = B )
     => cc(B) ),
    file('theBenchmark.p',cc_substitution_1) ).

fof(axiom_2,axiom,
    ! [X] :
      ( cUnsatisfiable(X)
    <=> ( ? [Y] :
            ( cc(Y)
            & rr(X,Y) )
        & ~ ? [Y0,Y1] :
              ( Y0 != Y1
              & rr(X,Y1)
              & rr(X,Y0) )
        & ? [Y] :
            ( cd(Y)
            & rr(X,Y) )
        & ? [Y0] : rr(X,Y0) ) ),
    file('theBenchmark.p',axiom_2) ).

fof(axiom_4,axiom,
    cUnsatisfiable(i2003_11_14_17_20_21603),
    file('theBenchmark.p',axiom_4) ).

fof(axiom_6,axiom,
    ! [X] :
      ~ ( cc(X)
        & cd(X) ),
    file('theBenchmark.p',axiom_6) ).

fof(f_3_1,plain,
    ! [A,B] :
      ( cc(B)
      | ~ cc(A)
      | A != B ),
    inference(fof_nnf,[status(thm)],[cc_substitution_1]) ).

fof(f_3_2,plain,
    ! [U_5,U_4] :
      ( cc(U_4)
      | ~ cc(U_5)
      | U_5 != U_4 ),
    inference(variable_rename,[status(thm)],[f_3_1]) ).

fof(f_3_3,plain,
    ! [U_5,U_4] :
      ( cc(U_4)
      | ~ cc(U_5)
      | U_5 != U_4 ),
    inference(definitional_conversion,[status(esa)],[f_3_2]) ).

cnf(f_3_4,plain,
    ( cc(U_4)
    | ~ cc(U_5)
    | U_5 != U_4 ),
    inference(clausify,[status(thm)],[f_3_3]) ).

fof(f_28_1,plain,
    ! [X] :
      ( ( cUnsatisfiable(X)
        | ! [Y] :
            ( ~ cc(Y)
            | ~ rr(X,Y) )
        | ? [Y0,Y1] :
            ( Y0 != Y1
            & rr(X,Y1)
            & rr(X,Y0) )
        | ! [Y] :
            ( ~ cd(Y)
            | ~ rr(X,Y) )
        | ! [Y0] : ~ rr(X,Y0) )
      & ( ( ? [Y] :
              ( cc(Y)
              & rr(X,Y) )
          & ! [Y0,Y1] :
              ( Y0 = Y1
              | ~ rr(X,Y1)
              | ~ rr(X,Y0) )
          & ? [Y] :
              ( cd(Y)
              & rr(X,Y) )
          & ? [Y0] : rr(X,Y0) )
        | ~ cUnsatisfiable(X) ) ),
    inference(fof_nnf,[status(thm)],[axiom_2]) ).

fof(f_28_2,plain,
    ! [U_82] :
      ( ( cUnsatisfiable(U_82)
        | ! [U_81] :
            ( ~ cc(U_81)
            | ~ rr(U_82,U_81) )
        | ? [U_80,U_79] :
            ( U_80 != U_79
            & rr(U_82,U_79)
            & rr(U_82,U_80) )
        | ! [U_78] :
            ( ~ cd(U_78)
            | ~ rr(U_82,U_78) )
        | ! [U_77] : ~ rr(U_82,U_77) )
      & ( ( ? [U_76] :
              ( cc(U_76)
              & rr(U_82,U_76) )
          & ! [U_75,U_74] :
              ( U_75 = U_74
              | ~ rr(U_82,U_74)
              | ~ rr(U_82,U_75) )
          & ? [U_73] :
              ( cd(U_73)
              & rr(U_82,U_73) )
          & ? [U_72] : rr(U_82,U_72) )
        | ~ cUnsatisfiable(U_82) ) ),
    inference(variable_rename,[status(thm)],[f_28_1]) ).

fof(f_28_3,plain,
    ( ! [U_84] :
        ( cUnsatisfiable(U_84)
        | ! [U_81] :
            ( ~ cc(U_81)
            | ~ rr(U_84,U_81) )
        | ? [U_80] :
            ( ? [U_79] :
                ( U_80 != U_79
                & rr(U_84,U_79) )
            & rr(U_84,U_80) )
        | ! [U_78] :
            ( ~ cd(U_78)
            | ~ rr(U_84,U_78) )
        | ! [U_77] : ~ rr(U_84,U_77) )
    & ! [U_83] :
        ( ( ? [U_76] :
              ( cc(U_76)
              & rr(U_83,U_76) )
          & ! [U_75] :
              ( ! [U_74] :
                  ( U_75 = U_74
                  | ~ rr(U_83,U_74) )
              | ~ rr(U_83,U_75) )
          & ? [U_73] :
              ( cd(U_73)
              & rr(U_83,U_73) )
          & ? [U_72] : rr(U_83,U_72) )
        | ~ cUnsatisfiable(U_83) ) ),
    inference(miniscope,[status(thm)],[f_28_2]) ).

fof(f_28_4,plain,
    ( ! [U_84] :
        ( cUnsatisfiable(U_84)
        | ! [U_81] :
            ( ~ cc(U_81)
            | ~ rr(U_84,U_81) )
        | ? [U_80] :
            ( ? [U_79] :
                ( U_80 != U_79
                & rr(U_84,U_79) )
            & rr(U_84,U_80) )
        | ! [U_78] :
            ( ~ cd(U_78)
            | ~ rr(U_84,U_78) )
        | ! [U_77] : ~ rr(U_84,U_77) )
    & ! [U_83] :
        ( ( ? [U_76] :
              ( cc(U_76)
              & rr(U_83,U_76) )
          & ! [U_75] :
              ( ! [U_74] :
                  ( U_75 = U_74
                  | ~ rr(U_83,U_74) )
              | ~ rr(U_83,U_75) )
          & ? [U_73] :
              ( cd(U_73)
              & rr(U_83,U_73) )
          & rr(U_83,sK1(U_83)) )
        | ~ cUnsatisfiable(U_83) ) ),
    inference(skolemize,[status(esa),new_symbols(skolem,[sK1]),skolemize(U_72,sK1(U_83))],[f_28_3]) ).

fof(f_28_5,plain,
    ( ! [U_84] :
        ( cUnsatisfiable(U_84)
        | ! [U_81] :
            ( ~ cc(U_81)
            | ~ rr(U_84,U_81) )
        | ? [U_80] :
            ( ? [U_79] :
                ( U_80 != U_79
                & rr(U_84,U_79) )
            & rr(U_84,U_80) )
        | ! [U_78] :
            ( ~ cd(U_78)
            | ~ rr(U_84,U_78) )
        | ! [U_77] : ~ rr(U_84,U_77) )
    & ! [U_83] :
        ( ( ? [U_76] :
              ( cc(U_76)
              & rr(U_83,U_76) )
          & ! [U_75] :
              ( ! [U_74] :
                  ( U_75 = U_74
                  | ~ rr(U_83,U_74) )
              | ~ rr(U_83,U_75) )
          & cd(sK2(U_83))
          & rr(U_83,sK2(U_83))
          & rr(U_83,sK1(U_83)) )
        | ~ cUnsatisfiable(U_83) ) ),
    inference(skolemize,[status(esa),new_symbols(skolem,[sK2]),skolemize(U_73,sK2(U_83))],[f_28_4]) ).

fof(f_28_6,plain,
    ( ! [U_84] :
        ( cUnsatisfiable(U_84)
        | ! [U_81] :
            ( ~ cc(U_81)
            | ~ rr(U_84,U_81) )
        | ? [U_80] :
            ( ? [U_79] :
                ( U_80 != U_79
                & rr(U_84,U_79) )
            & rr(U_84,U_80) )
        | ! [U_78] :
            ( ~ cd(U_78)
            | ~ rr(U_84,U_78) )
        | ! [U_77] : ~ rr(U_84,U_77) )
    & ! [U_83] :
        ( ( cc(sK3(U_83))
          & rr(U_83,sK3(U_83))
          & ! [U_75] :
              ( ! [U_74] :
                  ( U_75 = U_74
                  | ~ rr(U_83,U_74) )
              | ~ rr(U_83,U_75) )
          & cd(sK2(U_83))
          & rr(U_83,sK2(U_83))
          & rr(U_83,sK1(U_83)) )
        | ~ cUnsatisfiable(U_83) ) ),
    inference(skolemize,[status(esa),new_symbols(skolem,[sK3]),skolemize(U_76,sK3(U_83))],[f_28_5]) ).

fof(f_28_7,plain,
    ( ! [U_84] :
        ( cUnsatisfiable(U_84)
        | ! [U_81] :
            ( ~ cc(U_81)
            | ~ rr(U_84,U_81) )
        | ( ? [U_79] :
              ( sK4(U_84) != U_79
              & rr(U_84,U_79) )
          & rr(U_84,sK4(U_84)) )
        | ! [U_78] :
            ( ~ cd(U_78)
            | ~ rr(U_84,U_78) )
        | ! [U_77] : ~ rr(U_84,U_77) )
    & ! [U_83] :
        ( ( cc(sK3(U_83))
          & rr(U_83,sK3(U_83))
          & ! [U_75] :
              ( ! [U_74] :
                  ( U_75 = U_74
                  | ~ rr(U_83,U_74) )
              | ~ rr(U_83,U_75) )
          & cd(sK2(U_83))
          & rr(U_83,sK2(U_83))
          & rr(U_83,sK1(U_83)) )
        | ~ cUnsatisfiable(U_83) ) ),
    inference(skolemize,[status(esa),new_symbols(skolem,[sK4]),skolemize(U_80,sK4(U_84))],[f_28_6]) ).

fof(f_28_8,plain,
    ( ! [U_84] :
        ( cUnsatisfiable(U_84)
        | ! [U_81] :
            ( ~ cc(U_81)
            | ~ rr(U_84,U_81) )
        | ( sK4(U_84) != sK5(U_84)
          & rr(U_84,sK5(U_84))
          & rr(U_84,sK4(U_84)) )
        | ! [U_78] :
            ( ~ cd(U_78)
            | ~ rr(U_84,U_78) )
        | ! [U_77] : ~ rr(U_84,U_77) )
    & ! [U_83] :
        ( ( cc(sK3(U_83))
          & rr(U_83,sK3(U_83))
          & ! [U_75] :
              ( ! [U_74] :
                  ( U_75 = U_74
                  | ~ rr(U_83,U_74) )
              | ~ rr(U_83,U_75) )
          & cd(sK2(U_83))
          & rr(U_83,sK2(U_83))
          & rr(U_83,sK1(U_83)) )
        | ~ cUnsatisfiable(U_83) ) ),
    inference(skolemize,[status(esa),new_symbols(skolem,[sK5]),skolemize(U_79,sK5(U_84))],[f_28_7]) ).

fof(f_28_9,plain,
    ( ! [U_84] :
        ( sK4(U_84) != sK5(U_84)
        | ~ sP1(U_84) )
    & ! [U_84] :
        ( rr(U_84,sK5(U_84))
        | ~ sP1(U_84) )
    & ! [U_84] :
        ( rr(U_84,sK4(U_84))
        | ~ sP1(U_84) )
    & ! [U_75,U_74,U_83] :
        ( cc(sK3(U_83))
        | ~ sP0(U_75,U_74,U_83) )
    & ! [U_75,U_74,U_83] :
        ( rr(U_83,sK3(U_83))
        | ~ sP0(U_75,U_74,U_83) )
    & ! [U_75,U_74,U_83] :
        ( U_75 = U_74
        | ~ rr(U_83,U_74)
        | ~ rr(U_83,U_75)
        | ~ sP0(U_75,U_74,U_83) )
    & ! [U_75,U_74,U_83] :
        ( cd(sK2(U_83))
        | ~ sP0(U_75,U_74,U_83) )
    & ! [U_75,U_74,U_83] :
        ( rr(U_83,sK2(U_83))
        | ~ sP0(U_75,U_74,U_83) )
    & ! [U_75,U_74,U_83] :
        ( rr(U_83,sK1(U_83))
        | ~ sP0(U_75,U_74,U_83) )
    & ! [U_77,U_78,U_81,U_84] :
        ( cUnsatisfiable(U_84)
        | ~ cc(U_81)
        | ~ rr(U_84,U_81)
        | sP1(U_84)
        | ~ cd(U_78)
        | ~ rr(U_84,U_78)
        | ~ rr(U_84,U_77) )
    & ! [U_75,U_74,U_83] :
        ( sP0(U_75,U_74,U_83)
        | ~ cUnsatisfiable(U_83) ) ),
    inference(definitional_conversion,[status(esa),new_symbols(definitional,[sP0,sP1])],[f_28_8]) ).

cnf(f_28_10,plain,
    ( sP0(U_75,U_74,U_83)
    | ~ cUnsatisfiable(U_83) ),
    inference(clausify,[status(thm)],[f_28_9]) ).

cnf(f_28_13,plain,
    ( rr(U_83,sK2(U_83))
    | ~ sP0(U_75,U_74,U_83) ),
    inference(clausify,[status(thm)],[f_28_9]) ).

cnf(f_28_14,plain,
    ( cd(sK2(U_83))
    | ~ sP0(U_75,U_74,U_83) ),
    inference(clausify,[status(thm)],[f_28_9]) ).

cnf(f_28_15,plain,
    ( U_75 = U_74
    | ~ rr(U_83,U_74)
    | ~ rr(U_83,U_75)
    | ~ sP0(U_75,U_74,U_83) ),
    inference(clausify,[status(thm)],[f_28_9]) ).

cnf(f_28_16,plain,
    ( rr(U_83,sK3(U_83))
    | ~ sP0(U_75,U_74,U_83) ),
    inference(clausify,[status(thm)],[f_28_9]) ).

cnf(f_28_17,plain,
    ( cc(sK3(U_83))
    | ~ sP0(U_75,U_74,U_83) ),
    inference(clausify,[status(thm)],[f_28_9]) ).

fof(f_30_1,plain,
    cUnsatisfiable(i2003_11_14_17_20_21603),
    inference(fof_nnf,[status(thm)],[axiom_4]) ).

fof(f_30_2,plain,
    cUnsatisfiable(i2003_11_14_17_20_21603),
    inference(definitional_conversion,[status(esa)],[f_30_1]) ).

cnf(f_30_3,plain,
    cUnsatisfiable(i2003_11_14_17_20_21603),
    inference(clausify,[status(thm)],[f_30_2]) ).

fof(f_32_1,plain,
    ! [X] :
      ( ~ cc(X)
      | ~ cd(X) ),
    inference(fof_nnf,[status(thm)],[axiom_6]) ).

fof(f_32_2,plain,
    ! [U_89] :
      ( ~ cc(U_89)
      | ~ cd(U_89) ),
    inference(variable_rename,[status(thm)],[f_32_1]) ).

fof(f_32_3,plain,
    ! [U_89] :
      ( ~ cc(U_89)
      | ~ cd(U_89) ),
    inference(definitional_conversion,[status(esa)],[f_32_2]) ).

cnf(f_32_4,plain,
    ( ~ cc(U_89)
    | ~ cd(U_89) ),
    inference(clausify,[status(thm)],[f_32_3]) ).

cnf(t1,plain,
    ( ~ cc(sK2(i2003_11_14_17_20_21603))
    | ~ cd(sK2(i2003_11_14_17_20_21603)) ),
    inference(start,[status(thm),parent(0:0)],[f_32_4]) ).

cnf(t2,plain,
    ( ~ sP0(U_1079,U_1080,i2003_11_14_17_20_21603)
    | cd(sK2(i2003_11_14_17_20_21603)) ),
    inference(extension,[status(thm),parent(t1:1)],[f_28_14]) ).

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

cnf(t4,plain,
    ( ~ cUnsatisfiable(i2003_11_14_17_20_21603)
    | sP0(U_1079,U_1080,i2003_11_14_17_20_21603) ),
    inference(extension,[status(thm),parent(t2:2)],[f_28_10]) ).

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

cnf(t6,plain,
    cUnsatisfiable(i2003_11_14_17_20_21603),
    inference(extension,[status(thm),parent(t4:2)],[f_30_3]) ).

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

cnf(t8,plain,
    ( ~ cc(sK3(i2003_11_14_17_20_21603))
    | sK3(i2003_11_14_17_20_21603) != sK2(i2003_11_14_17_20_21603)
    | cc(sK2(i2003_11_14_17_20_21603)) ),
    inference(extension,[status(thm),parent(t1:2)],[f_3_4]) ).

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

cnf(t10,plain,
    ( ~ rr(i2003_11_14_17_20_21603,sK3(i2003_11_14_17_20_21603))
    | ~ rr(i2003_11_14_17_20_21603,sK2(i2003_11_14_17_20_21603))
    | ~ sP0(sK3(i2003_11_14_17_20_21603),sK2(i2003_11_14_17_20_21603),i2003_11_14_17_20_21603)
    | sK3(i2003_11_14_17_20_21603) = sK2(i2003_11_14_17_20_21603) ),
    inference(extension,[status(thm),parent(t8:2)],[f_28_15]) ).

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

cnf(t12,plain,
    ( ~ cUnsatisfiable(i2003_11_14_17_20_21603)
    | sP0(sK3(i2003_11_14_17_20_21603),sK2(i2003_11_14_17_20_21603),i2003_11_14_17_20_21603) ),
    inference(extension,[status(thm),parent(t10:2)],[f_28_10]) ).

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

cnf(t14,plain,
    cUnsatisfiable(i2003_11_14_17_20_21603),
    inference(extension,[status(thm),parent(t12:2)],[f_30_3]) ).

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

cnf(t16,plain,
    ( ~ sP0(U_1093,U_1094,i2003_11_14_17_20_21603)
    | rr(i2003_11_14_17_20_21603,sK2(i2003_11_14_17_20_21603)) ),
    inference(extension,[status(thm),parent(t10:3)],[f_28_13]) ).

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

cnf(t18,plain,
    ( ~ cUnsatisfiable(i2003_11_14_17_20_21603)
    | sP0(U_1093,U_1094,i2003_11_14_17_20_21603) ),
    inference(extension,[status(thm),parent(t16:2)],[f_28_10]) ).

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

cnf(t20,plain,
    cUnsatisfiable(i2003_11_14_17_20_21603),
    inference(extension,[status(thm),parent(t18:2)],[f_30_3]) ).

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

cnf(t22,plain,
    ( ~ sP0(U_1099,U_1100,i2003_11_14_17_20_21603)
    | rr(i2003_11_14_17_20_21603,sK3(i2003_11_14_17_20_21603)) ),
    inference(extension,[status(thm),parent(t10:4)],[f_28_16]) ).

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

cnf(t24,plain,
    ( ~ cUnsatisfiable(i2003_11_14_17_20_21603)
    | sP0(U_1099,U_1100,i2003_11_14_17_20_21603) ),
    inference(extension,[status(thm),parent(t22:2)],[f_28_10]) ).

cnf(t25,plain,
    $false,
    inference(connection,[status(thm),parent(t24:1)],[t24:1,t22:2]) ).

cnf(t26,plain,
    cUnsatisfiable(i2003_11_14_17_20_21603),
    inference(extension,[status(thm),parent(t24:2)],[f_30_3]) ).

cnf(t27,plain,
    $false,
    inference(connection,[status(thm),parent(t26:1)],[t26:1,t24:2]) ).

cnf(t28,plain,
    ( ~ sP0(U_1105,U_1106,i2003_11_14_17_20_21603)
    | cc(sK3(i2003_11_14_17_20_21603)) ),
    inference(extension,[status(thm),parent(t8:3)],[f_28_17]) ).

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

cnf(t30,plain,
    ( ~ cUnsatisfiable(i2003_11_14_17_20_21603)
    | sP0(U_1105,U_1106,i2003_11_14_17_20_21603) ),
    inference(extension,[status(thm),parent(t28:2)],[f_28_10]) ).

cnf(t31,plain,
    $false,
    inference(connection,[status(thm),parent(t30:1)],[t30:1,t28:2]) ).

cnf(t32,plain,
    cUnsatisfiable(i2003_11_14_17_20_21603),
    inference(extension,[status(thm),parent(t30:2)],[f_30_3]) ).

cnf(t33,plain,
    $false,
    inference(connection,[status(thm),parent(t32:1)],[t32:1,t30:2]) ).


%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.02  % Problem  : KRS097+1 : TPTP v9.3.1. Released v3.1.0.
% 0.00/0.03  This is a FOF_UNS_RFO_SEQ problem
% 0.00/0.03  % Command  : /export/starexec/sandbox/solver/bin/connect++ --verbosity 1 --no-colour --tptp-proof --schedule default --timeout 300 /export/starexec/sandbox/benchmark/theBenchmark.p
% 0.09/0.36  % Computer : n011.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 : Sat Sep 19 12:12:10 UTC 2026
% 0.09/0.36  % CPUTime  : 
% 2.15/2.47  % SZS status Unsatisfiable for theBenchmark
% 2.15/2.47  % SZS output start Proof for theBenchmark
% See solution above
%------------------------------------------------------------------------------