TSTP Solution File: GRP001^5 by Lash---1.13

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Lash---1.13
% Problem  : GRP001^5 : TPTP v8.1.2. Released v4.0.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : lash -P picomus -M modes -p tstp -t %d %s

% Computer : n003.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 01:04:58 EDT 2023

% Result   : Theorem 37.75s 37.72s
% Output   : Proof 37.75s
% Verified : 
% SZS Type : ERROR: Analysing output (MakeTreeStats fails)

% Comments : 
%------------------------------------------------------------------------------
thf(ty_e,type,
    e: $i ).

thf(ty_eigen__0,type,
    eigen__0: $i ).

thf(ty_cP,type,
    cP: $i > $i > $i ).

thf(ty_eigen__1,type,
    eigen__1: $i ).

thf(sP1,plain,
    ( sP1
  <=> ! [X1: $i,X2: $i,X3: $i] :
        ( ( cP @ ( cP @ X1 @ X2 ) @ X3 )
        = ( cP @ X1 @ ( cP @ X2 @ X3 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP1])]) ).

thf(sP2,plain,
    ( sP2
  <=> ! [X1: $i] :
        ( ( cP @ ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ eigen__0 ) @ X1 )
        = ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ ( cP @ eigen__0 @ X1 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP2])]) ).

thf(sP3,plain,
    ( sP3
  <=> ( ( cP @ eigen__1 @ ( cP @ eigen__0 @ eigen__0 ) )
      = eigen__1 ) ),
    introduced(definition,[new_symbols(definition,[sP3])]) ).

thf(sP4,plain,
    ( sP4
  <=> ! [X1: $i] :
        ( ( cP @ ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ ( cP @ eigen__0 @ eigen__1 ) ) @ X1 )
        = ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ ( cP @ ( cP @ eigen__0 @ eigen__1 ) @ X1 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP4])]) ).

thf(sP5,plain,
    ( sP5
  <=> ! [X1: $i] :
        ( ( cP @ e @ X1 )
        = X1 ) ),
    introduced(definition,[new_symbols(definition,[sP5])]) ).

thf(sP6,plain,
    ( sP6
  <=> ( e
      = ( cP @ ( cP @ eigen__0 @ eigen__1 ) @ ( cP @ eigen__0 @ eigen__1 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP6])]) ).

thf(sP7,plain,
    ( sP7
  <=> $false ),
    introduced(definition,[new_symbols(definition,[sP7])]) ).

thf(sP8,plain,
    ( sP8
  <=> ( ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ ( cP @ ( cP @ eigen__0 @ eigen__1 ) @ ( cP @ eigen__0 @ eigen__1 ) ) )
      = ( cP @ eigen__1 @ eigen__0 ) ) ),
    introduced(definition,[new_symbols(definition,[sP8])]) ).

thf(sP9,plain,
    ( sP9
  <=> ( ( cP @ ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ eigen__0 ) @ eigen__1 )
      = ( cP @ ( cP @ eigen__0 @ eigen__1 ) @ ( cP @ eigen__0 @ eigen__1 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP9])]) ).

thf(sP10,plain,
    ( sP10
  <=> ( ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ e )
      = ( cP @ eigen__1 @ eigen__0 ) ) ),
    introduced(definition,[new_symbols(definition,[sP10])]) ).

thf(sP11,plain,
    ( sP11
  <=> ( ( cP @ ( cP @ eigen__0 @ eigen__1 ) @ ( cP @ eigen__0 @ eigen__1 ) )
      = ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ ( cP @ eigen__0 @ eigen__1 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP11])]) ).

thf(sP12,plain,
    ( sP12
  <=> ( ( cP @ ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ eigen__0 ) @ eigen__1 )
      = ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ ( cP @ eigen__0 @ eigen__1 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP12])]) ).

thf(sP13,plain,
    ( sP13
  <=> ( ( cP @ ( cP @ ( cP @ eigen__0 @ eigen__1 ) @ ( cP @ eigen__0 @ eigen__1 ) ) @ e )
      = ( cP @ ( cP @ eigen__0 @ eigen__1 ) @ ( cP @ eigen__0 @ eigen__1 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP13])]) ).

thf(sP14,plain,
    ( sP14
  <=> ( ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ ( cP @ eigen__0 @ eigen__1 ) )
      = ( cP @ ( cP @ eigen__0 @ eigen__1 ) @ ( cP @ eigen__0 @ eigen__1 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP14])]) ).

thf(sP15,plain,
    ( sP15
  <=> ! [X1: $i] :
        ( ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ X1 )
        = ( cP @ eigen__1 @ ( cP @ eigen__0 @ X1 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP15])]) ).

thf(sP16,plain,
    ( sP16
  <=> ( ( cP @ e @ e )
      = e ) ),
    introduced(definition,[new_symbols(definition,[sP16])]) ).

thf(sP17,plain,
    ( sP17
  <=> ( ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ eigen__0 )
      = eigen__1 ) ),
    introduced(definition,[new_symbols(definition,[sP17])]) ).

thf(sP18,plain,
    ( sP18
  <=> ( ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ e )
      = ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ ( cP @ ( cP @ eigen__0 @ eigen__1 ) @ ( cP @ eigen__0 @ eigen__1 ) ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP18])]) ).

thf(sP19,plain,
    ( sP19
  <=> ( ( cP @ ( cP @ eigen__0 @ eigen__1 ) @ ( cP @ eigen__0 @ eigen__1 ) )
      = e ) ),
    introduced(definition,[new_symbols(definition,[sP19])]) ).

thf(sP20,plain,
    ( sP20
  <=> ( ( cP @ eigen__1 @ eigen__1 )
      = ( cP @ ( cP @ eigen__0 @ eigen__1 ) @ ( cP @ eigen__0 @ eigen__1 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP20])]) ).

thf(sP21,plain,
    ( sP21
  <=> ! [X1: $i,X2: $i] :
        ( ( cP @ ( cP @ eigen__1 @ X1 ) @ X2 )
        = ( cP @ eigen__1 @ ( cP @ X1 @ X2 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP21])]) ).

thf(sP22,plain,
    ( sP22
  <=> ( ( cP @ e @ ( cP @ eigen__0 @ eigen__1 ) )
      = ( cP @ eigen__1 @ eigen__0 ) ) ),
    introduced(definition,[new_symbols(definition,[sP22])]) ).

thf(sP23,plain,
    ( sP23
  <=> ( ( cP @ eigen__1 @ eigen__1 )
      = ( cP @ ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ eigen__0 ) @ eigen__1 ) ) ),
    introduced(definition,[new_symbols(definition,[sP23])]) ).

thf(sP24,plain,
    ( sP24
  <=> ( ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ ( cP @ ( cP @ eigen__0 @ eigen__1 ) @ ( cP @ eigen__0 @ eigen__1 ) ) )
      = ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ e ) ) ),
    introduced(definition,[new_symbols(definition,[sP24])]) ).

thf(sP25,plain,
    ( sP25
  <=> ( ( cP @ eigen__1 @ e )
      = eigen__1 ) ),
    introduced(definition,[new_symbols(definition,[sP25])]) ).

thf(sP26,plain,
    ( sP26
  <=> ! [X1: $i] :
        ( ( cP @ X1 @ X1 )
        = e ) ),
    introduced(definition,[new_symbols(definition,[sP26])]) ).

thf(sP27,plain,
    ( sP27
  <=> ( ( cP @ e @ ( cP @ eigen__0 @ eigen__1 ) )
      = ( cP @ eigen__0 @ eigen__1 ) ) ),
    introduced(definition,[new_symbols(definition,[sP27])]) ).

thf(sP28,plain,
    ( sP28
  <=> ( ( cP @ eigen__0 @ eigen__1 )
      = ( cP @ eigen__1 @ eigen__0 ) ) ),
    introduced(definition,[new_symbols(definition,[sP28])]) ).

thf(sP29,plain,
    ( sP29
  <=> ( ( cP @ ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ ( cP @ eigen__0 @ eigen__1 ) ) @ ( cP @ eigen__0 @ eigen__1 ) )
      = ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ ( cP @ ( cP @ eigen__0 @ eigen__1 ) @ ( cP @ eigen__0 @ eigen__1 ) ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP29])]) ).

thf(sP30,plain,
    ( sP30
  <=> ( ( cP @ eigen__1 @ ( cP @ eigen__0 @ eigen__0 ) )
      = ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ eigen__0 ) ) ),
    introduced(definition,[new_symbols(definition,[sP30])]) ).

thf(sP31,plain,
    ( sP31
  <=> ( ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ e )
      = ( cP @ eigen__1 @ ( cP @ eigen__0 @ e ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP31])]) ).

thf(sP32,plain,
    ( sP32
  <=> ( ( cP @ ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ eigen__0 ) @ eigen__1 )
      = ( cP @ eigen__1 @ eigen__1 ) ) ),
    introduced(definition,[new_symbols(definition,[sP32])]) ).

thf(sP33,plain,
    ( sP33
  <=> ! [X1: $i,X2: $i] :
        ( ( cP @ ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ X1 ) @ X2 )
        = ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ ( cP @ X1 @ X2 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP33])]) ).

thf(sP34,plain,
    ( sP34
  <=> ( ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ eigen__0 )
      = ( cP @ eigen__1 @ ( cP @ eigen__0 @ eigen__0 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP34])]) ).

thf(sP35,plain,
    ( sP35
  <=> ( ( cP @ eigen__1 @ e )
      = ( cP @ eigen__1 @ ( cP @ eigen__0 @ eigen__0 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP35])]) ).

thf(sP36,plain,
    ( sP36
  <=> ( ( cP @ eigen__1 @ eigen__1 )
      = e ) ),
    introduced(definition,[new_symbols(definition,[sP36])]) ).

thf(sP37,plain,
    ( sP37
  <=> ( ( cP @ eigen__0 @ eigen__0 )
      = e ) ),
    introduced(definition,[new_symbols(definition,[sP37])]) ).

thf(sP38,plain,
    ( sP38
  <=> ( ( cP @ ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ ( cP @ eigen__0 @ eigen__1 ) ) @ ( cP @ eigen__0 @ eigen__1 ) )
      = ( cP @ e @ ( cP @ eigen__0 @ eigen__1 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP38])]) ).

thf(sP39,plain,
    ( sP39
  <=> ! [X1: $i] :
        ( ( cP @ X1 @ e )
        = X1 ) ),
    introduced(definition,[new_symbols(definition,[sP39])]) ).

thf(sP40,plain,
    ( sP40
  <=> ( e
      = ( cP @ eigen__1 @ eigen__1 ) ) ),
    introduced(definition,[new_symbols(definition,[sP40])]) ).

thf(sP41,plain,
    ( sP41
  <=> ( ( cP @ ( cP @ eigen__1 @ eigen__0 ) @ ( cP @ eigen__0 @ eigen__1 ) )
      = e ) ),
    introduced(definition,[new_symbols(definition,[sP41])]) ).

thf(sP42,plain,
    ( sP42
  <=> ( ( cP @ eigen__1 @ ( cP @ eigen__0 @ eigen__0 ) )
      = ( cP @ eigen__1 @ e ) ) ),
    introduced(definition,[new_symbols(definition,[sP42])]) ).

thf(cGRP_COMM2,conjecture,
    ( ~ ( ~ ( ~ ( sP5
               => ~ sP39 )
           => ~ sP26 )
       => ~ sP1 )
   => ! [X1: $i,X2: $i] :
        ( ( cP @ X1 @ X2 )
        = ( cP @ X2 @ X1 ) ) ) ).

thf(h0,negated_conjecture,
    ~ ( ~ ( ~ ( ~ ( sP5
                 => ~ sP39 )
             => ~ sP26 )
         => ~ sP1 )
     => ! [X1: $i,X2: $i] :
          ( ( cP @ X1 @ X2 )
          = ( cP @ X2 @ X1 ) ) ),
    inference(assume_negation,[status(cth)],[cGRP_COMM2]) ).

thf(h1,assumption,
    ~ ( ~ ( ~ ( sP5
             => ~ sP39 )
         => ~ sP26 )
     => ~ sP1 ),
    introduced(assumption,[]) ).

thf(h2,assumption,
    ~ ! [X1: $i,X2: $i] :
        ( ( cP @ X1 @ X2 )
        = ( cP @ X2 @ X1 ) ),
    introduced(assumption,[]) ).

thf(h3,assumption,
    ~ ( ~ ( sP5
         => ~ sP39 )
     => ~ sP26 ),
    introduced(assumption,[]) ).

thf(h4,assumption,
    sP1,
    introduced(assumption,[]) ).

thf(h5,assumption,
    ~ ( sP5
     => ~ sP39 ),
    introduced(assumption,[]) ).

thf(h6,assumption,
    sP26,
    introduced(assumption,[]) ).

thf(h7,assumption,
    sP5,
    introduced(assumption,[]) ).

thf(h8,assumption,
    sP39,
    introduced(assumption,[]) ).

thf(h9,assumption,
    ~ ! [X1: $i] :
        ( ( cP @ eigen__0 @ X1 )
        = ( cP @ X1 @ eigen__0 ) ),
    introduced(assumption,[]) ).

thf(h10,assumption,
    ~ sP28,
    introduced(assumption,[]) ).

thf(1,plain,
    ( ~ sP13
    | sP41
    | ~ sP11
    | ~ sP19 ),
    inference(confrontation_rule,[status(thm)],]) ).

thf(2,plain,
    ( ~ sP16
    | sP20
    | ~ sP40
    | ~ sP6 ),
    inference(confrontation_rule,[status(thm)],]) ).

thf(3,plain,
    ( ~ sP12
    | sP14
    | sP7
    | ~ sP9 ),
    inference(confrontation_rule,[status(thm)],]) ).

thf(4,plain,
    ( ~ sP36
    | sP9
    | ~ sP23
    | ~ sP20 ),
    inference(confrontation_rule,[status(thm)],]) ).

thf(5,plain,
    ( ~ sP31
    | sP8
    | ~ sP18
    | ~ sP10 ),
    inference(confrontation_rule,[status(thm)],]) ).

thf(6,plain,
    ( ~ sP25
    | sP3
    | ~ sP35
    | sP7 ),
    inference(confrontation_rule,[status(thm)],]) ).

thf(7,plain,
    ( ~ sP34
    | sP17
    | ~ sP30
    | ~ sP3 ),
    inference(confrontation_rule,[status(thm)],]) ).

thf(8,plain,
    ( sP38
    | sP7
    | ~ sP41 ),
    inference(prop_rule,[status(thm)],]) ).

thf(9,plain,
    ( sP24
    | ~ sP19
    | sP7 ),
    inference(prop_rule,[status(thm)],]) ).

thf(10,plain,
    ( ~ sP24
    | sP18 ),
    inference(symeq,[status(thm)],]) ).

thf(11,plain,
    ( sP42
    | ~ sP37
    | sP7 ),
    inference(prop_rule,[status(thm)],]) ).

thf(12,plain,
    ( ~ sP42
    | sP35 ),
    inference(symeq,[status(thm)],]) ).

thf(13,plain,
    ( sP32
    | sP7
    | ~ sP17 ),
    inference(prop_rule,[status(thm)],]) ).

thf(14,plain,
    ( ~ sP32
    | sP23 ),
    inference(symeq,[status(thm)],]) ).

thf(15,plain,
    ( ~ sP14
    | sP11 ),
    inference(symeq,[status(thm)],]) ).

thf(16,plain,
    ( ~ sP29
    | sP22
    | ~ sP38
    | ~ sP8 ),
    inference(confrontation_rule,[status(thm)],]) ).

thf(17,plain,
    ( ~ sP39
    | sP13 ),
    inference(all_rule,[status(thm)],]) ).

thf(18,plain,
    ~ sP7,
    inference(prop_rule,[status(thm)],]) ).

thf(19,plain,
    ( ~ sP34
    | sP30 ),
    inference(symeq,[status(thm)],]) ).

thf(20,plain,
    ( ~ sP27
    | sP28
    | ~ sP27
    | ~ sP22 ),
    inference(confrontation_rule,[status(thm)],]) ).

thf(21,plain,
    ( ~ sP2
    | sP12 ),
    inference(all_rule,[status(thm)],]) ).

thf(22,plain,
    ( ~ sP4
    | sP29 ),
    inference(all_rule,[status(thm)],]) ).

thf(23,plain,
    ( ~ sP15
    | sP31 ),
    inference(all_rule,[status(thm)],]) ).

thf(24,plain,
    ( ~ sP15
    | sP34 ),
    inference(all_rule,[status(thm)],]) ).

thf(25,plain,
    ( ~ sP36
    | sP40 ),
    inference(symeq,[status(thm)],]) ).

thf(26,plain,
    ( ~ sP19
    | sP6 ),
    inference(symeq,[status(thm)],]) ).

thf(27,plain,
    ( ~ sP33
    | sP2 ),
    inference(all_rule,[status(thm)],]) ).

thf(28,plain,
    ( ~ sP33
    | sP4 ),
    inference(all_rule,[status(thm)],]) ).

thf(29,plain,
    ( ~ sP21
    | sP15 ),
    inference(all_rule,[status(thm)],]) ).

thf(30,plain,
    ( ~ sP5
    | sP16 ),
    inference(all_rule,[status(thm)],]) ).

thf(31,plain,
    ( ~ sP5
    | sP27 ),
    inference(all_rule,[status(thm)],]) ).

thf(32,plain,
    ( ~ sP39
    | sP10 ),
    inference(all_rule,[status(thm)],]) ).

thf(33,plain,
    ( ~ sP39
    | sP25 ),
    inference(all_rule,[status(thm)],]) ).

thf(34,plain,
    ( ~ sP26
    | sP36 ),
    inference(all_rule,[status(thm)],]) ).

thf(35,plain,
    ( ~ sP26
    | sP37 ),
    inference(all_rule,[status(thm)],]) ).

thf(36,plain,
    ( ~ sP26
    | sP19 ),
    inference(all_rule,[status(thm)],]) ).

thf(37,plain,
    ( ~ sP1
    | sP33 ),
    inference(all_rule,[status(thm)],]) ).

thf(38,plain,
    ( ~ sP1
    | sP21 ),
    inference(all_rule,[status(thm)],]) ).

thf(39,plain,
    $false,
    inference(prop_unsat,[status(thm),assumptions([h10,h9,h7,h8,h5,h6,h3,h4,h1,h2,h0])],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,h7,h8,h6,h4,h10]) ).

thf(40,plain,
    $false,
    inference(tab_negall,[status(thm),assumptions([h9,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negall(discharge,[h10]),tab_negall(eigenvar,eigen__1)],[h9,39,h10]) ).

thf(41,plain,
    $false,
    inference(tab_negall,[status(thm),assumptions([h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negall(discharge,[h9]),tab_negall(eigenvar,eigen__0)],[h2,40,h9]) ).

thf(42,plain,
    $false,
    inference(tab_negimp,[status(thm),assumptions([h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h7,h8])],[h5,41,h7,h8]) ).

thf(43,plain,
    $false,
    inference(tab_negimp,[status(thm),assumptions([h3,h4,h1,h2,h0]),tab_negimp(discharge,[h5,h6])],[h3,42,h5,h6]) ).

thf(44,plain,
    $false,
    inference(tab_negimp,[status(thm),assumptions([h1,h2,h0]),tab_negimp(discharge,[h3,h4])],[h1,43,h3,h4]) ).

thf(45,plain,
    $false,
    inference(tab_negimp,[status(thm),assumptions([h0]),tab_negimp(discharge,[h1,h2])],[h0,44,h1,h2]) ).

thf(0,theorem,
    ( ~ ( ~ ( ~ ( sP5
               => ~ sP39 )
           => ~ sP26 )
       => ~ sP1 )
   => ! [X1: $i,X2: $i] :
        ( ( cP @ X1 @ X2 )
        = ( cP @ X2 @ X1 ) ) ),
    inference(contra,[status(thm),contra(discharge,[h0])],[45,h0]) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.12/0.12  % Problem  : GRP001^5 : TPTP v8.1.2. Released v4.0.0.
% 0.12/0.12  % Command  : lash -P picomus -M modes -p tstp -t %d %s
% 0.12/0.33  % Computer : n003.cluster.edu
% 0.12/0.33  % Model    : x86_64 x86_64
% 0.12/0.33  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.12/0.33  % Memory   : 8042.1875MB
% 0.12/0.33  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.12/0.33  % CPULimit : 300
% 0.12/0.33  % WCLimit  : 300
% 0.12/0.33  % DateTime : Tue Aug 29 01:14:55 EDT 2023
% 0.12/0.34  % CPUTime  : 
% 37.75/37.72  % SZS status Theorem
% 37.75/37.72  % Mode: cade22grackle2x798d
% 37.75/37.72  % Steps: 37149
% 37.75/37.72  % SZS output start Proof
% See solution above
%------------------------------------------------------------------------------