TSTP Solution File: HWV022-1 by Drodi---3.5.1

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Drodi---3.5.1
% Problem  : HWV022-1 : TPTP v8.1.2. Released v2.5.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : drodi -learnfrom(drodi.lrn) -timeout(%d) %s

% Computer : n025.cluster.edu
% Model    : x86_64 x86_64
% CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory   : 8042.1875MB
% OS       : Linux 3.10.0-693.el7.x86_64
% CPULimit : 300s
% WCLimit  : 300s
% DateTime : Wed May 31 12:12:59 EDT 2023

% Result   : Unsatisfiable 0.11s 0.35s
% Output   : CNFRefutation 0.11s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :    7
%            Number of leaves      :   34
% Syntax   : Number of formulae    :  121 (  32 unt;   0 def)
%            Number of atoms       :  255 (  62 equ)
%            Maximal formula atoms :    6 (   2 avg)
%            Number of connectives :  239 ( 105   ~; 119   |;   0   &)
%                                         (  15 <=>;   0  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    7 (   3 avg)
%            Maximal term depth    :    4 (   1 avg)
%            Number of predicates  :   22 (  20 usr;  16 prp; 0-2 aty)
%            Number of functors    :    9 (   9 usr;   4 con; 0-2 aty)
%            Number of variables   :   58 (;  58   !;   0   ?)

% Comments : 
%------------------------------------------------------------------------------
fof(f1,axiom,
    ! [X_0] : plus(X_0,n1) != n0,
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f2,axiom,
    ! [X_1] : gt(plus(X_1,n1),n0),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f3,axiom,
    ! [X_2] :
      ( ~ gt(X_2,n0)
      | gt(X_2,minus(X_2,n1)) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f5,axiom,
    ! [X_3,Y_4,Z_5] :
      ( minus(X_3,Y_4) = Z_5
      | plus(Z_5,Y_4) != X_3
      | def_10(Y_4,X_3) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f6,axiom,
    ! [Y_4,X_3] :
      ( ~ def_10(Y_4,X_3)
      | ~ gt(X_3,Y_4) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f8,axiom,
    ! [Y_12,X_11] :
      ( ~ gt(Y_12,X_11)
      | gt(plus(Y_12,n1),plus(X_11,n1)) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f13,axiom,
    ! [Z_21,Y_20,X_19] :
      ( ~ gt(Z_21,Y_20)
      | gt(Z_21,X_19)
      | ~ gt(Y_20,X_19) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f15,axiom,
    ! [X_25] :
      ( X_25 = n0
      | gt(X_25,n0) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f16,axiom,
    ! [X_26] :
      ( X_26 = n0
      | X_26 = plus(y_27(X_26),n1) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f17,axiom,
    ! [X_28] : ~ gt(X_28,X_28),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f18,axiom,
    ! [X_29,Y_30] :
      ( plus(X_29,n1) != plus(Y_30,n1)
      | X_29 = Y_30 ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f19,axiom,
    ! [X_31] : plus(n0,X_31) = X_31,
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f21,axiom,
    ! [X_t_32] : level(X_t_32) = int_level(X_t_32),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f35,axiom,
    ! [X_t_42] :
      ( p_Reset(X_t_42)
      | ~ p_Wr(X_t_42)
      | p_Rd(X_t_42)
      | ~ gt(fifo_length,int_level(X_t_42))
      | int_level(plus(X_t_42,n1)) = plus(int_level(X_t_42),n1) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f91,negated_conjecture,
    plus(level(t_139),n1) = fifo_length,
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f92,negated_conjecture,
    ~ p_Rd(t_139),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f93,negated_conjecture,
    p_Wr(t_139),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f94,negated_conjecture,
    ~ p_Reset(t_139),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f95,negated_conjecture,
    level(plus(t_139,n1)) != fifo_length,
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).

fof(f96,plain,
    ! [X0] : plus(X0,n1) != n0,
    inference(cnf_transformation,[status(esa)],[f1]) ).

fof(f97,plain,
    ! [X0] : gt(plus(X0,n1),n0),
    inference(cnf_transformation,[status(esa)],[f2]) ).

fof(f98,plain,
    ! [X0] :
      ( ~ gt(X0,n0)
      | gt(X0,minus(X0,n1)) ),
    inference(cnf_transformation,[status(esa)],[f3]) ).

fof(f101,plain,
    ! [X_3,Y_4] :
      ( ! [Z_5] :
          ( minus(X_3,Y_4) = Z_5
          | plus(Z_5,Y_4) != X_3 )
      | def_10(Y_4,X_3) ),
    inference(miniscoping,[status(esa)],[f5]) ).

fof(f102,plain,
    ! [X0,X1,X2] :
      ( minus(X0,X1) = X2
      | plus(X2,X1) != X0
      | def_10(X1,X0) ),
    inference(cnf_transformation,[status(esa)],[f101]) ).

fof(f103,plain,
    ! [X0,X1] :
      ( ~ def_10(X0,X1)
      | ~ gt(X1,X0) ),
    inference(cnf_transformation,[status(esa)],[f6]) ).

fof(f105,plain,
    ! [X0,X1] :
      ( ~ gt(X0,X1)
      | gt(plus(X0,n1),plus(X1,n1)) ),
    inference(cnf_transformation,[status(esa)],[f8]) ).

fof(f110,plain,
    ! [Y_20,X_19] :
      ( ! [Z_21] :
          ( ~ gt(Z_21,Y_20)
          | gt(Z_21,X_19) )
      | ~ gt(Y_20,X_19) ),
    inference(miniscoping,[status(esa)],[f13]) ).

fof(f111,plain,
    ! [X0,X1,X2] :
      ( ~ gt(X0,X1)
      | gt(X0,X2)
      | ~ gt(X1,X2) ),
    inference(cnf_transformation,[status(esa)],[f110]) ).

fof(f113,plain,
    ! [X0] :
      ( X0 = n0
      | gt(X0,n0) ),
    inference(cnf_transformation,[status(esa)],[f15]) ).

fof(f114,plain,
    ! [X0] :
      ( X0 = n0
      | X0 = plus(y_27(X0),n1) ),
    inference(cnf_transformation,[status(esa)],[f16]) ).

fof(f115,plain,
    ! [X0] : ~ gt(X0,X0),
    inference(cnf_transformation,[status(esa)],[f17]) ).

fof(f116,plain,
    ! [X0,X1] :
      ( plus(X0,n1) != plus(X1,n1)
      | X0 = X1 ),
    inference(cnf_transformation,[status(esa)],[f18]) ).

fof(f117,plain,
    ! [X0] : plus(n0,X0) = X0,
    inference(cnf_transformation,[status(esa)],[f19]) ).

fof(f119,plain,
    ! [X0] : level(X0) = int_level(X0),
    inference(cnf_transformation,[status(esa)],[f21]) ).

fof(f135,plain,
    ! [X0] :
      ( p_Reset(X0)
      | ~ p_Wr(X0)
      | p_Rd(X0)
      | ~ gt(fifo_length,int_level(X0))
      | int_level(plus(X0,n1)) = plus(int_level(X0),n1) ),
    inference(cnf_transformation,[status(esa)],[f35]) ).

fof(f191,plain,
    plus(level(t_139),n1) = fifo_length,
    inference(cnf_transformation,[status(esa)],[f91]) ).

fof(f192,plain,
    ~ p_Rd(t_139),
    inference(cnf_transformation,[status(esa)],[f92]) ).

fof(f193,plain,
    p_Wr(t_139),
    inference(cnf_transformation,[status(esa)],[f93]) ).

fof(f194,plain,
    ~ p_Reset(t_139),
    inference(cnf_transformation,[status(esa)],[f94]) ).

fof(f195,plain,
    level(plus(t_139,n1)) != fifo_length,
    inference(cnf_transformation,[status(esa)],[f95]) ).

fof(f197,plain,
    ! [X0,X1] :
      ( minus(plus(X0,X1),X1) = X0
      | def_10(X1,plus(X0,X1)) ),
    inference(destructive_equality_resolution,[status(esa)],[f102]) ).

fof(f199,plain,
    ! [X0] :
      ( fifo_length != plus(X0,n1)
      | level(t_139) = X0 ),
    inference(paramodulation,[status(thm)],[f191,f116]) ).

fof(f213,plain,
    ( spl0_2
  <=> p_Reset(t_139) ),
    introduced(split_symbol_definition) ).

fof(f214,plain,
    ( p_Reset(t_139)
    | ~ spl0_2 ),
    inference(component_clause,[status(thm)],[f213]) ).

fof(f216,plain,
    ( spl0_3
  <=> p_Wr(t_139) ),
    introduced(split_symbol_definition) ).

fof(f218,plain,
    ( ~ p_Wr(t_139)
    | spl0_3 ),
    inference(component_clause,[status(thm)],[f216]) ).

fof(f228,plain,
    ! [X0] :
      ( p_Reset(X0)
      | ~ p_Wr(X0)
      | p_Rd(X0)
      | ~ gt(fifo_length,level(X0))
      | int_level(plus(X0,n1)) = plus(int_level(X0),n1) ),
    inference(forward_demodulation,[status(thm)],[f119,f135]) ).

fof(f229,plain,
    ! [X0] :
      ( p_Reset(X0)
      | ~ p_Wr(X0)
      | p_Rd(X0)
      | ~ gt(fifo_length,level(X0))
      | level(plus(X0,n1)) = plus(int_level(X0),n1) ),
    inference(forward_demodulation,[status(thm)],[f119,f228]) ).

fof(f230,plain,
    ! [X0] :
      ( p_Reset(X0)
      | ~ p_Wr(X0)
      | p_Rd(X0)
      | ~ gt(fifo_length,level(X0))
      | level(plus(X0,n1)) = plus(level(X0),n1) ),
    inference(forward_demodulation,[status(thm)],[f119,f229]) ).

fof(f235,plain,
    ( spl0_5
  <=> p_Rd(t_139) ),
    introduced(split_symbol_definition) ).

fof(f236,plain,
    ( p_Rd(t_139)
    | ~ spl0_5 ),
    inference(component_clause,[status(thm)],[f235]) ).

fof(f238,plain,
    ( spl0_6
  <=> gt(fifo_length,level(t_139)) ),
    introduced(split_symbol_definition) ).

fof(f239,plain,
    ( gt(fifo_length,level(t_139))
    | ~ spl0_6 ),
    inference(component_clause,[status(thm)],[f238]) ).

fof(f246,plain,
    ( $false
    | ~ spl0_2 ),
    inference(forward_subsumption_resolution,[status(thm)],[f214,f194]) ).

fof(f247,plain,
    ~ spl0_2,
    inference(contradiction_clause,[status(thm)],[f246]) ).

fof(f249,plain,
    ( spl0_8
  <=> level(plus(t_139,n1)) = plus(level(t_139),n1) ),
    introduced(split_symbol_definition) ).

fof(f250,plain,
    ( level(plus(t_139,n1)) = plus(level(t_139),n1)
    | ~ spl0_8 ),
    inference(component_clause,[status(thm)],[f249]) ).

fof(f254,plain,
    ( level(plus(t_139,n1)) = fifo_length
    | ~ spl0_8 ),
    inference(forward_demodulation,[status(thm)],[f191,f250]) ).

fof(f255,plain,
    ( $false
    | ~ spl0_8 ),
    inference(forward_subsumption_resolution,[status(thm)],[f254,f195]) ).

fof(f256,plain,
    ~ spl0_8,
    inference(contradiction_clause,[status(thm)],[f255]) ).

fof(f258,plain,
    fifo_length != n0,
    inference(paramodulation,[status(thm)],[f191,f96]) ).

fof(f263,plain,
    ( spl0_10
  <=> level(t_139) = n0 ),
    introduced(split_symbol_definition) ).

fof(f264,plain,
    ( level(t_139) = n0
    | ~ spl0_10 ),
    inference(component_clause,[status(thm)],[f263]) ).

fof(f265,plain,
    ( level(t_139) != n0
    | spl0_10 ),
    inference(component_clause,[status(thm)],[f263]) ).

fof(f274,plain,
    gt(n1,n0),
    inference(paramodulation,[status(thm)],[f117,f97]) ).

fof(f275,plain,
    gt(fifo_length,n0),
    inference(paramodulation,[status(thm)],[f191,f97]) ).

fof(f284,plain,
    ( spl0_11
  <=> minus(plus(level(t_139),n1),n1) = level(t_139) ),
    introduced(split_symbol_definition) ).

fof(f285,plain,
    ( minus(plus(level(t_139),n1),n1) = level(t_139)
    | ~ spl0_11 ),
    inference(component_clause,[status(thm)],[f284]) ).

fof(f287,plain,
    ( spl0_12
  <=> def_10(n1,fifo_length) ),
    introduced(split_symbol_definition) ).

fof(f288,plain,
    ( def_10(n1,fifo_length)
    | ~ spl0_12 ),
    inference(component_clause,[status(thm)],[f287]) ).

fof(f290,plain,
    ( minus(plus(level(t_139),n1),n1) = level(t_139)
    | def_10(n1,fifo_length) ),
    inference(paramodulation,[status(thm)],[f191,f197]) ).

fof(f291,plain,
    ( spl0_11
    | spl0_12 ),
    inference(split_clause,[status(thm)],[f290,f284,f287]) ).

fof(f292,plain,
    ( minus(fifo_length,n1) = level(t_139)
    | ~ spl0_11 ),
    inference(forward_demodulation,[status(thm)],[f191,f285]) ).

fof(f298,plain,
    ( spl0_13
  <=> gt(fifo_length,n0) ),
    introduced(split_symbol_definition) ).

fof(f300,plain,
    ( ~ gt(fifo_length,n0)
    | spl0_13 ),
    inference(component_clause,[status(thm)],[f298]) ).

fof(f301,plain,
    ( p_Reset(t_139)
    | ~ p_Wr(t_139)
    | p_Rd(t_139)
    | ~ gt(fifo_length,n0)
    | level(plus(t_139,n1)) = plus(level(t_139),n1)
    | ~ spl0_10 ),
    inference(paramodulation,[status(thm)],[f264,f230]) ).

fof(f302,plain,
    ( spl0_2
    | ~ spl0_3
    | spl0_5
    | ~ spl0_13
    | spl0_8
    | ~ spl0_10 ),
    inference(split_clause,[status(thm)],[f301,f213,f216,f235,f298,f249,f263]) ).

fof(f305,plain,
    ( $false
    | ~ spl0_5 ),
    inference(forward_subsumption_resolution,[status(thm)],[f236,f192]) ).

fof(f306,plain,
    ~ spl0_5,
    inference(contradiction_clause,[status(thm)],[f305]) ).

fof(f308,plain,
    ( $false
    | spl0_3 ),
    inference(forward_subsumption_resolution,[status(thm)],[f218,f193]) ).

fof(f309,plain,
    spl0_3,
    inference(contradiction_clause,[status(thm)],[f308]) ).

fof(f310,plain,
    ( p_Reset(t_139)
    | ~ p_Wr(t_139)
    | p_Rd(t_139)
    | level(plus(t_139,n1)) = plus(level(t_139),n1)
    | ~ spl0_6 ),
    inference(resolution,[status(thm)],[f239,f230]) ).

fof(f311,plain,
    ( spl0_2
    | ~ spl0_3
    | spl0_5
    | spl0_8
    | ~ spl0_6 ),
    inference(split_clause,[status(thm)],[f310,f213,f216,f235,f249,f238]) ).

fof(f344,plain,
    ( ~ gt(fifo_length,n0)
    | gt(fifo_length,level(t_139))
    | ~ spl0_11 ),
    inference(paramodulation,[status(thm)],[f292,f98]) ).

fof(f345,plain,
    ( ~ spl0_13
    | spl0_6
    | ~ spl0_11 ),
    inference(split_clause,[status(thm)],[f344,f298,f238,f284]) ).

fof(f346,plain,
    ( $false
    | spl0_13 ),
    inference(forward_subsumption_resolution,[status(thm)],[f300,f275]) ).

fof(f347,plain,
    spl0_13,
    inference(contradiction_clause,[status(thm)],[f346]) ).

fof(f348,plain,
    ( ~ gt(fifo_length,n1)
    | ~ spl0_12 ),
    inference(resolution,[status(thm)],[f288,f103]) ).

fof(f372,plain,
    ( spl0_23
  <=> n0 = n0 ),
    introduced(split_symbol_definition) ).

fof(f390,plain,
    ( spl0_26
  <=> fifo_length = n0 ),
    introduced(split_symbol_definition) ).

fof(f391,plain,
    ( fifo_length = n0
    | ~ spl0_26 ),
    inference(component_clause,[status(thm)],[f390]) ).

fof(f393,plain,
    ( spl0_27
  <=> level(t_139) = y_27(fifo_length) ),
    introduced(split_symbol_definition) ).

fof(f394,plain,
    ( level(t_139) = y_27(fifo_length)
    | ~ spl0_27 ),
    inference(component_clause,[status(thm)],[f393]) ).

fof(f396,plain,
    ( fifo_length = n0
    | level(t_139) = y_27(fifo_length) ),
    inference(resolution,[status(thm)],[f114,f199]) ).

fof(f397,plain,
    ( spl0_26
    | spl0_27 ),
    inference(split_clause,[status(thm)],[f396,f390,f393]) ).

fof(f426,plain,
    ( $false
    | ~ spl0_26 ),
    inference(forward_subsumption_resolution,[status(thm)],[f391,f258]) ).

fof(f427,plain,
    ~ spl0_26,
    inference(contradiction_clause,[status(thm)],[f426]) ).

fof(f435,plain,
    ( plus(y_27(fifo_length),n1) = fifo_length
    | ~ spl0_27 ),
    inference(backward_demodulation,[status(thm)],[f394,f191]) ).

fof(f436,plain,
    ( y_27(fifo_length) != n0
    | ~ spl0_27
    | spl0_10 ),
    inference(backward_demodulation,[status(thm)],[f394,f265]) ).

fof(f458,plain,
    ( spl0_33
  <=> y_27(fifo_length) = n0 ),
    introduced(split_symbol_definition) ).

fof(f459,plain,
    ( y_27(fifo_length) = n0
    | ~ spl0_33 ),
    inference(component_clause,[status(thm)],[f458]) ).

fof(f475,plain,
    ! [X0,X1] :
      ( ~ gt(X0,X1)
      | ~ gt(X1,X0) ),
    inference(resolution,[status(thm)],[f111,f115]) ).

fof(f488,plain,
    ! [X0] :
      ( ~ gt(n0,X0)
      | X0 = n0 ),
    inference(resolution,[status(thm)],[f475,f113]) ).

fof(f600,plain,
    ( n0 = n0
    | n0 = n0 ),
    inference(resolution,[status(thm)],[f488,f113]) ).

fof(f601,plain,
    spl0_23,
    inference(split_clause,[status(thm)],[f600,f372]) ).

fof(f685,plain,
    ( spl0_52
  <=> def_10(n0,n1) ),
    introduced(split_symbol_definition) ).

fof(f686,plain,
    ( def_10(n0,n1)
    | ~ spl0_52 ),
    inference(component_clause,[status(thm)],[f685]) ).

fof(f705,plain,
    ! [X0] :
      ( ~ gt(y_27(fifo_length),X0)
      | gt(fifo_length,plus(X0,n1))
      | ~ spl0_27 ),
    inference(paramodulation,[status(thm)],[f435,f105]) ).

fof(f860,plain,
    ( $false
    | ~ spl0_27
    | spl0_10
    | ~ spl0_33 ),
    inference(forward_subsumption_resolution,[status(thm)],[f459,f436]) ).

fof(f861,plain,
    ( ~ spl0_27
    | spl0_10
    | ~ spl0_33 ),
    inference(contradiction_clause,[status(thm)],[f860]) ).

fof(f864,plain,
    ( ~ gt(n1,n0)
    | ~ spl0_52 ),
    inference(resolution,[status(thm)],[f686,f103]) ).

fof(f865,plain,
    ( $false
    | ~ spl0_52 ),
    inference(forward_subsumption_resolution,[status(thm)],[f864,f274]) ).

fof(f866,plain,
    ~ spl0_52,
    inference(contradiction_clause,[status(thm)],[f865]) ).

fof(f878,plain,
    ( spl0_68
  <=> gt(fifo_length,plus(n0,n1)) ),
    introduced(split_symbol_definition) ).

fof(f879,plain,
    ( gt(fifo_length,plus(n0,n1))
    | ~ spl0_68 ),
    inference(component_clause,[status(thm)],[f878]) ).

fof(f881,plain,
    ( gt(fifo_length,plus(n0,n1))
    | y_27(fifo_length) = n0
    | ~ spl0_27 ),
    inference(resolution,[status(thm)],[f705,f113]) ).

fof(f882,plain,
    ( spl0_68
    | spl0_33
    | ~ spl0_27 ),
    inference(split_clause,[status(thm)],[f881,f878,f458,f393]) ).

fof(f893,plain,
    ( gt(fifo_length,n1)
    | ~ spl0_68 ),
    inference(forward_demodulation,[status(thm)],[f117,f879]) ).

fof(f894,plain,
    ( $false
    | ~ spl0_12
    | ~ spl0_68 ),
    inference(forward_subsumption_resolution,[status(thm)],[f893,f348]) ).

fof(f895,plain,
    ( ~ spl0_12
    | ~ spl0_68 ),
    inference(contradiction_clause,[status(thm)],[f894]) ).

fof(f896,plain,
    $false,
    inference(sat_refutation,[status(thm)],[f247,f256,f291,f302,f306,f309,f311,f345,f347,f397,f427,f601,f861,f866,f882,f895]) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.10  % Problem  : HWV022-1 : TPTP v8.1.2. Released v2.5.0.
% 0.11/0.11  % Command  : drodi -learnfrom(drodi.lrn) -timeout(%d) %s
% 0.11/0.31  % Computer : n025.cluster.edu
% 0.11/0.31  % Model    : x86_64 x86_64
% 0.11/0.31  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.11/0.31  % Memory   : 8042.1875MB
% 0.11/0.31  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.11/0.31  % CPULimit : 300
% 0.11/0.31  % WCLimit  : 300
% 0.11/0.31  % DateTime : Tue May 30 12:03:14 EDT 2023
% 0.11/0.32  % CPUTime  : 
% 0.11/0.33  % Drodi V3.5.1
% 0.11/0.35  % Refutation found
% 0.11/0.35  % SZS status Unsatisfiable for theBenchmark: Theory is unsatisfiable
% 0.11/0.35  % SZS output start CNFRefutation for theBenchmark
% See solution above
% 0.11/0.37  % Elapsed time: 0.048921 seconds
% 0.11/0.37  % CPU time: 0.214024 seconds
% 0.11/0.37  % Memory used: 22.893 MB
%------------------------------------------------------------------------------