TSTP Solution File: NUM924^1 by Zipperpin---2.1.9999

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Zipperpin---2.1.9999
% Problem  : NUM924^1 : TPTP v8.1.2. Released v5.3.0.
% Transfm  : NO INFORMATION
% Format   : NO INFORMATION
% Command  : python3 /export/starexec/sandbox/solver/bin/portfolio.lams.parallel.py %s %d /export/starexec/sandbox/tmp/tmp.XIJ5ufjvD9 true

% Computer : n009.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 : Thu Aug 31 12:44:46 EDT 2023

% Result   : Theorem 1.64s 1.07s
% Output   : Refutation 1.64s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :    8
%            Number of leaves      :   25
% Syntax   : Number of formulae    :   74 (  50 unt;  16 typ;   0 def)
%            Number of atoms       :   71 (  47 equ;   2 cnn)
%            Maximal formula atoms :    4 (   1 avg)
%            Number of connectives :  379 (   6   ~;   0   |;   0   &; 362   @)
%                                         (   0 <=>;   0  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   14 (   4 avg)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  :   12 (  12   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   18 (  14 usr;   9 con; 0-2 aty)
%                                         (  11  !!;   0  ??;   0 @@+;   0 @@-)
%            Number of variables   :   59 (  11   ^;  48   !;   0   ?;  59   :)

% Comments : 
%------------------------------------------------------------------------------
thf(int_type,type,
    int: $tType ).

thf(nat_type,type,
    nat: $tType ).

thf(pls_type,type,
    pls: int ).

thf(m_type,type,
    m: int ).

thf(plus_plus_int_type,type,
    plus_plus_int: int > int > int ).

thf(bit0_type,type,
    bit0: int > int ).

thf(zero_zero_int_type,type,
    zero_zero_int: int ).

thf(ord_less_int_type,type,
    ord_less_int: int > int > $o ).

thf(s_type,type,
    s: int ).

thf(number_number_of_nat_type,type,
    number_number_of_nat: int > nat ).

thf(one_one_int_type,type,
    one_one_int: int ).

thf(times_times_int_type,type,
    times_times_int: int > int > int ).

thf(power_power_int_type,type,
    power_power_int: int > nat > int ).

thf(t_type,type,
    t: int ).

thf(bit1_type,type,
    bit1: int > int ).

thf(number_number_of_int_type,type,
    number_number_of_int: int > int ).

thf(fact_2__096_I4_A_K_Am_A_L_A1_J_A_K_At_A_060_A_I4_A_K_Am_A_L_A1_J_A_K_A0_096,axiom,
    ord_less_int @ ( times_times_int @ ( plus_plus_int @ ( times_times_int @ ( number_number_of_int @ ( bit0 @ ( bit0 @ ( bit1 @ pls ) ) ) ) @ m ) @ one_one_int ) @ t ) @ ( times_times_int @ ( plus_plus_int @ ( times_times_int @ ( number_number_of_int @ ( bit0 @ ( bit0 @ ( bit1 @ pls ) ) ) ) @ m ) @ one_one_int ) @ zero_zero_int ) ).

thf(zip_derived_cl2,plain,
    ord_less_int @ ( times_times_int @ ( plus_plus_int @ ( times_times_int @ ( number_number_of_int @ ( bit0 @ ( bit0 @ ( bit1 @ pls ) ) ) ) @ m ) @ one_one_int ) @ t ) @ ( times_times_int @ ( plus_plus_int @ ( times_times_int @ ( number_number_of_int @ ( bit0 @ ( bit0 @ ( bit1 @ pls ) ) ) ) @ m ) @ one_one_int ) @ zero_zero_int ),
    inference(cnf,[status(esa)],[fact_2__096_I4_A_K_Am_A_L_A1_J_A_K_At_A_060_A_I4_A_K_Am_A_L_A1_J_A_K_A0_096]) ).

thf(fact_24_number__of__is__id,axiom,
    ! [K: int] :
      ( ( number_number_of_int @ K )
      = K ) ).

thf(zip_derived_cl20,plain,
    ( !!
    @ ^ [Y0: int] :
        ( ( number_number_of_int @ Y0 )
        = Y0 ) ),
    inference(cnf,[status(esa)],[fact_24_number__of__is__id]) ).

thf(zip_derived_cl88,plain,
    ! [X2: int] :
      ( ( number_number_of_int @ X2 )
      = X2 ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl20]) ).

thf(zip_derived_cl89,plain,
    ! [X2: int] :
      ( ( number_number_of_int @ X2 )
      = X2 ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl88]) ).

thf(zip_derived_cl89_001,plain,
    ! [X2: int] :
      ( ( number_number_of_int @ X2 )
      = X2 ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl88]) ).

thf(zip_derived_cl90,plain,
    ord_less_int @ ( times_times_int @ ( plus_plus_int @ ( times_times_int @ ( bit0 @ ( bit0 @ ( bit1 @ pls ) ) ) @ m ) @ one_one_int ) @ t ) @ ( times_times_int @ ( plus_plus_int @ ( times_times_int @ ( bit0 @ ( bit0 @ ( bit1 @ pls ) ) ) @ m ) @ one_one_int ) @ zero_zero_int ),
    inference(demod,[status(thm)],[zip_derived_cl2,zip_derived_cl89,zip_derived_cl89]) ).

thf(fact_25_zmult__commute,axiom,
    ! [Z: int,W: int] :
      ( ( times_times_int @ Z @ W )
      = ( times_times_int @ W @ Z ) ) ).

thf(zip_derived_cl21,plain,
    ( !!
    @ ^ [Y0: int] :
        ( !!
        @ ^ [Y1: int] :
            ( ( times_times_int @ Y0 @ Y1 )
            = ( times_times_int @ Y1 @ Y0 ) ) ) ),
    inference(cnf,[status(esa)],[fact_25_zmult__commute]) ).

thf(zip_derived_cl147,plain,
    ! [X2: int] :
      ( !!
      @ ^ [Y0: int] :
          ( ( times_times_int @ X2 @ Y0 )
          = ( times_times_int @ Y0 @ X2 ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl21]) ).

thf(zip_derived_cl148,plain,
    ! [X2: int,X4: int] :
      ( ( times_times_int @ X2 @ X4 )
      = ( times_times_int @ X4 @ X2 ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl147]) ).

thf(zip_derived_cl149,plain,
    ! [X2: int,X4: int] :
      ( ( times_times_int @ X2 @ X4 )
      = ( times_times_int @ X4 @ X2 ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl148]) ).

thf(fact_104_zadd__commute,axiom,
    ! [Z: int,W: int] :
      ( ( plus_plus_int @ Z @ W )
      = ( plus_plus_int @ W @ Z ) ) ).

thf(zip_derived_cl84,plain,
    ( !!
    @ ^ [Y0: int] :
        ( !!
        @ ^ [Y1: int] :
            ( ( plus_plus_int @ Y0 @ Y1 )
            = ( plus_plus_int @ Y1 @ Y0 ) ) ) ),
    inference(cnf,[status(esa)],[fact_104_zadd__commute]) ).

thf(zip_derived_cl154,plain,
    ! [X2: int] :
      ( !!
      @ ^ [Y0: int] :
          ( ( plus_plus_int @ X2 @ Y0 )
          = ( plus_plus_int @ Y0 @ X2 ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl84]) ).

thf(zip_derived_cl155,plain,
    ! [X2: int,X4: int] :
      ( ( plus_plus_int @ X2 @ X4 )
      = ( plus_plus_int @ X4 @ X2 ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl154]) ).

thf(zip_derived_cl156,plain,
    ! [X2: int,X4: int] :
      ( ( plus_plus_int @ X2 @ X4 )
      = ( plus_plus_int @ X4 @ X2 ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl155]) ).

thf(zip_derived_cl149_002,plain,
    ! [X2: int,X4: int] :
      ( ( times_times_int @ X2 @ X4 )
      = ( times_times_int @ X4 @ X2 ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl148]) ).

thf(fact_3_t,axiom,
    ( ( plus_plus_int @ ( power_power_int @ s @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) ) @ one_one_int )
    = ( times_times_int @ ( plus_plus_int @ ( times_times_int @ ( number_number_of_int @ ( bit0 @ ( bit0 @ ( bit1 @ pls ) ) ) ) @ m ) @ one_one_int ) @ t ) ) ).

thf(zip_derived_cl3,plain,
    ( ( plus_plus_int @ ( power_power_int @ s @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) ) @ one_one_int )
    = ( times_times_int @ ( plus_plus_int @ ( times_times_int @ ( number_number_of_int @ ( bit0 @ ( bit0 @ ( bit1 @ pls ) ) ) ) @ m ) @ one_one_int ) @ t ) ),
    inference(cnf,[status(esa)],[fact_3_t]) ).

thf(zip_derived_cl89_003,plain,
    ! [X2: int] :
      ( ( number_number_of_int @ X2 )
      = X2 ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl88]) ).

thf(zip_derived_cl110,plain,
    ( ( plus_plus_int @ ( power_power_int @ s @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) ) @ one_one_int )
    = ( times_times_int @ ( plus_plus_int @ ( times_times_int @ ( bit0 @ ( bit0 @ ( bit1 @ pls ) ) ) @ m ) @ one_one_int ) @ t ) ),
    inference(demod,[status(thm)],[zip_derived_cl3,zip_derived_cl89]) ).

thf(zip_derived_cl149_004,plain,
    ! [X2: int,X4: int] :
      ( ( times_times_int @ X2 @ X4 )
      = ( times_times_int @ X4 @ X2 ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl148]) ).

thf(zip_derived_cl149_005,plain,
    ! [X2: int,X4: int] :
      ( ( times_times_int @ X2 @ X4 )
      = ( times_times_int @ X4 @ X2 ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl148]) ).

thf(zip_derived_cl152,plain,
    ( ( plus_plus_int @ ( power_power_int @ s @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) ) @ one_one_int )
    = ( times_times_int @ t @ ( plus_plus_int @ ( times_times_int @ m @ ( bit0 @ ( bit0 @ ( bit1 @ pls ) ) ) ) @ one_one_int ) ) ),
    inference(demod,[status(thm)],[zip_derived_cl110,zip_derived_cl149,zip_derived_cl149]) ).

thf(zip_derived_cl156_006,plain,
    ! [X2: int,X4: int] :
      ( ( plus_plus_int @ X2 @ X4 )
      = ( plus_plus_int @ X4 @ X2 ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl155]) ).

thf(zip_derived_cl156_007,plain,
    ! [X2: int,X4: int] :
      ( ( plus_plus_int @ X2 @ X4 )
      = ( plus_plus_int @ X4 @ X2 ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl155]) ).

thf(zip_derived_cl181,plain,
    ( ( plus_plus_int @ one_one_int @ ( power_power_int @ s @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) ) )
    = ( times_times_int @ t @ ( plus_plus_int @ one_one_int @ ( times_times_int @ m @ ( bit0 @ ( bit0 @ ( bit1 @ pls ) ) ) ) ) ) ),
    inference(demod,[status(thm)],[zip_derived_cl152,zip_derived_cl156,zip_derived_cl156]) ).

thf(zip_derived_cl149_008,plain,
    ! [X2: int,X4: int] :
      ( ( times_times_int @ X2 @ X4 )
      = ( times_times_int @ X4 @ X2 ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl148]) ).

thf(zip_derived_cl156_009,plain,
    ! [X2: int,X4: int] :
      ( ( plus_plus_int @ X2 @ X4 )
      = ( plus_plus_int @ X4 @ X2 ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl155]) ).

thf(zip_derived_cl149_010,plain,
    ! [X2: int,X4: int] :
      ( ( times_times_int @ X2 @ X4 )
      = ( times_times_int @ X4 @ X2 ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl148]) ).

thf(zip_derived_cl259,plain,
    ord_less_int @ ( plus_plus_int @ one_one_int @ ( power_power_int @ s @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) ) ) @ ( times_times_int @ zero_zero_int @ ( plus_plus_int @ one_one_int @ ( times_times_int @ m @ ( bit0 @ ( bit0 @ ( bit1 @ pls ) ) ) ) ) ),
    inference(demod,[status(thm)],[zip_derived_cl90,zip_derived_cl149,zip_derived_cl156,zip_derived_cl149,zip_derived_cl181,zip_derived_cl149,zip_derived_cl156,zip_derived_cl149]) ).

thf(zip_derived_cl89_011,plain,
    ! [X2: int] :
      ( ( number_number_of_int @ X2 )
      = X2 ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl88]) ).

thf(fact_105_zero__is__num__zero,axiom,
    ( zero_zero_int
    = ( number_number_of_int @ pls ) ) ).

thf(zip_derived_cl85,plain,
    ( zero_zero_int
    = ( number_number_of_int @ pls ) ),
    inference(cnf,[status(esa)],[fact_105_zero__is__num__zero]) ).

thf(zip_derived_cl344,plain,
    zero_zero_int = pls,
    inference('sup+',[status(thm)],[zip_derived_cl89,zip_derived_cl85]) ).

thf(zip_derived_cl344_012,plain,
    zero_zero_int = pls,
    inference('sup+',[status(thm)],[zip_derived_cl89,zip_derived_cl85]) ).

thf(fact_66_mult__Pls,axiom,
    ! [W: int] :
      ( ( times_times_int @ pls @ W )
      = pls ) ).

thf(zip_derived_cl53,plain,
    ( !!
    @ ^ [Y0: int] :
        ( ( times_times_int @ pls @ Y0 )
        = pls ) ),
    inference(cnf,[status(esa)],[fact_66_mult__Pls]) ).

thf(zip_derived_cl91,plain,
    ! [X2: int] :
      ( ( times_times_int @ pls @ X2 )
      = pls ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl53]) ).

thf(zip_derived_cl92,plain,
    ! [X2: int] :
      ( ( times_times_int @ pls @ X2 )
      = pls ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl91]) ).

thf(zip_derived_cl344_013,plain,
    zero_zero_int = pls,
    inference('sup+',[status(thm)],[zip_derived_cl89,zip_derived_cl85]) ).

thf(zip_derived_cl344_014,plain,
    zero_zero_int = pls,
    inference('sup+',[status(thm)],[zip_derived_cl89,zip_derived_cl85]) ).

thf(zip_derived_cl348,plain,
    ! [X2: int] :
      ( ( times_times_int @ zero_zero_int @ X2 )
      = zero_zero_int ),
    inference(demod,[status(thm)],[zip_derived_cl92,zip_derived_cl344,zip_derived_cl344]) ).

thf(fact_13_one__power2,axiom,
    ( ( power_power_int @ one_one_int @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) )
    = one_one_int ) ).

thf(zip_derived_cl12,plain,
    ( ( power_power_int @ one_one_int @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) )
    = one_one_int ),
    inference(cnf,[status(esa)],[fact_13_one__power2]) ).

thf(zip_derived_cl344_015,plain,
    zero_zero_int = pls,
    inference('sup+',[status(thm)],[zip_derived_cl89,zip_derived_cl85]) ).

thf(zip_derived_cl350,plain,
    ( ( power_power_int @ one_one_int @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ zero_zero_int ) ) ) )
    = one_one_int ),
    inference(demod,[status(thm)],[zip_derived_cl12,zip_derived_cl344]) ).

thf(fact_7_not__sum__power2__lt__zero,axiom,
    ! [X: int,Y: int] :
      ~ ( ord_less_int @ ( plus_plus_int @ ( power_power_int @ X @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) ) @ ( power_power_int @ Y @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) ) ) @ zero_zero_int ) ).

thf(zip_derived_cl7,plain,
    ( !!
    @ ^ [Y0: int] :
        ( !!
        @ ^ [Y1: int] : ( (~) @ ( ord_less_int @ ( plus_plus_int @ ( power_power_int @ Y0 @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) ) @ ( power_power_int @ Y1 @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) ) ) @ zero_zero_int ) ) ) ),
    inference(cnf,[status(esa)],[fact_7_not__sum__power2__lt__zero]) ).

thf(zip_derived_cl171,plain,
    ! [X2: int] :
      ( !!
      @ ^ [Y0: int] : ( (~) @ ( ord_less_int @ ( plus_plus_int @ ( power_power_int @ X2 @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) ) @ ( power_power_int @ Y0 @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) ) ) @ zero_zero_int ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl7]) ).

thf(zip_derived_cl172,plain,
    ! [X2: int,X4: int] :
      ~ ( ord_less_int @ ( plus_plus_int @ ( power_power_int @ X2 @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) ) @ ( power_power_int @ X4 @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) ) ) @ zero_zero_int ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl171]) ).

thf(zip_derived_cl344_016,plain,
    zero_zero_int = pls,
    inference('sup+',[status(thm)],[zip_derived_cl89,zip_derived_cl85]) ).

thf(zip_derived_cl344_017,plain,
    zero_zero_int = pls,
    inference('sup+',[status(thm)],[zip_derived_cl89,zip_derived_cl85]) ).

thf(zip_derived_cl764,plain,
    ! [X2: int,X4: int] :
      ~ ( ord_less_int @ ( plus_plus_int @ ( power_power_int @ X2 @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ zero_zero_int ) ) ) ) @ ( power_power_int @ X4 @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ zero_zero_int ) ) ) ) ) @ zero_zero_int ),
    inference(demod,[status(thm)],[zip_derived_cl172,zip_derived_cl344,zip_derived_cl344]) ).

thf(zip_derived_cl766,plain,
    ! [X0: int] :
      ~ ( ord_less_int @ ( plus_plus_int @ one_one_int @ ( power_power_int @ X0 @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ zero_zero_int ) ) ) ) ) @ zero_zero_int ),
    inference('sup-',[status(thm)],[zip_derived_cl350,zip_derived_cl764]) ).

thf(zip_derived_cl1447,plain,
    $false,
    inference(demod,[status(thm)],[zip_derived_cl259,zip_derived_cl344,zip_derived_cl344,zip_derived_cl348,zip_derived_cl766]) ).


%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.12/0.12  % Problem  : NUM924^1 : TPTP v8.1.2. Released v5.3.0.
% 0.12/0.13  % Command  : python3 /export/starexec/sandbox/solver/bin/portfolio.lams.parallel.py %s %d /export/starexec/sandbox/tmp/tmp.XIJ5ufjvD9 true
% 0.14/0.34  % Computer : n009.cluster.edu
% 0.14/0.34  % Model    : x86_64 x86_64
% 0.14/0.34  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.14/0.34  % Memory   : 8042.1875MB
% 0.14/0.34  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.14/0.34  % CPULimit : 300
% 0.14/0.34  % WCLimit  : 300
% 0.14/0.34  % DateTime : Fri Aug 25 10:11:35 EDT 2023
% 0.14/0.34  % CPUTime  : 
% 0.14/0.34  % Running portfolio for 300 s
% 0.14/0.34  % File         : /export/starexec/sandbox/benchmark/theBenchmark.p
% 0.14/0.34  % Number of cores: 8
% 0.14/0.35  % Python version: Python 3.6.8
% 0.14/0.35  % Running in HO mode
% 0.21/0.66  % Total configuration time : 828
% 0.21/0.67  % Estimated wc time : 1656
% 0.21/0.67  % Estimated cpu time (8 cpus) : 207.0
% 0.59/0.70  % /export/starexec/sandbox/solver/bin/lams/40_c.s.sh running for 80s
% 0.59/0.74  % /export/starexec/sandbox/solver/bin/lams/35_full_unif4.sh running for 80s
% 0.59/0.74  % /export/starexec/sandbox/solver/bin/lams/15_e_short1.sh running for 30s
% 0.59/0.74  % /export/starexec/sandbox/solver/bin/lams/40_c_ic.sh running for 80s
% 0.59/0.74  % /export/starexec/sandbox/solver/bin/lams/40_noforms.sh running for 90s
% 0.59/0.74  % /export/starexec/sandbox/solver/bin/lams/40_b.comb.sh running for 70s
% 0.59/0.75  % /export/starexec/sandbox/solver/bin/lams/20_acsne_simpl.sh running for 40s
% 0.59/0.75  % /export/starexec/sandbox/solver/bin/lams/30_sp5.sh running for 60s
% 1.33/0.79  % /export/starexec/sandbox/solver/bin/lams/30_b.l.sh running for 90s
% 1.64/1.07  % Solved by lams/30_sp5.sh.
% 1.64/1.07  % done 301 iterations in 0.263s
% 1.64/1.07  % SZS status Theorem for '/export/starexec/sandbox/benchmark/theBenchmark.p'
% 1.64/1.07  % SZS output start Refutation
% See solution above
% 1.64/1.07  
% 1.64/1.07  
% 1.64/1.07  % Terminating...
% 2.06/1.16  % Runner terminated.
% 2.06/1.18  % Zipperpin 1.5 exiting
%------------------------------------------------------------------------------