TSTP Solution File: NUM925+3 by Beagle---0.9.51

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Beagle---0.9.51
% Problem  : NUM925+3 : TPTP v8.1.2. Released v5.3.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : java -Dfile.encoding=UTF-8 -Xms512M -Xmx4G -Xss10M -jar /export/starexec/sandbox2/solver/bin/beagle.jar -auto -q -proof -print tff -smtsolver /export/starexec/sandbox2/solver/bin/cvc4-1.4-x86_64-linux-opt -liasolver cooper -t %d %s

% Computer : n029.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 : Tue Aug 22 10:53:09 EDT 2023

% Result   : Theorem 30.32s 11.16s
% Output   : CNFRefutation 30.32s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :    8
%            Number of leaves      :  123
% Syntax   : Number of formulae    :  147 (  28 unt; 113 typ;   0 def)
%            Number of atoms       :   44 (  23 equ)
%            Maximal formula atoms :    4 (   1 avg)
%            Number of connectives :   23 (  13   ~;   6   |;   1   &)
%                                         (   1 <=>;   2  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    7 (   2 avg)
%            Maximal term depth    :    5 (   2 avg)
%            Number of types       :    2 (   0 usr)
%            Number of type conns  :  121 (  68   >;  53   *;   0   +;   0  <<)
%            Number of predicates  :    5 (   3 usr;   1 prp; 0-2 aty)
%            Number of functors    :  110 ( 110 usr;  45 con; 0-3 aty)
%            Number of variables   :   25 (;  25   !;   0   ?;   0   :)

% Comments : 
%------------------------------------------------------------------------------
%$ is_int > is_bool > hBOOL > if_nat > if_int > zcong > times_times_real > times_times_nat > times_times_int > plus_plus_real > plus_plus_nat > plus_plus_int > minus_minus_real > minus_minus_nat > minus_minus_int > legendre > hAPP_real_bool > hAPP_r1134773055l_bool > hAPP_nat_real > hAPP_nat_nat > hAPP_nat_int > hAPP_nat_bool > hAPP_n1699378549t_bool > hAPP_int_bool > hAPP_i1948725293t_bool > #nlpp > undefined_int > succ > quadRes > power_power_real > power_power_nat > power_power_int > number_number_of_nat > number_number_of_int > number267125858f_real > nat > bit1 > bit0 > abs_abs_real > abs_abs_int > zprime > zero_zero_real > zero_zero_nat > zero_zero_int > y > x > twoSqu1154269391sum2sq > tn > t > semiri984289939at_nat > semiri1621563631at_int > semiri132038758t_real > s1 > s > pls > ord_less_real > ord_less_nat > ord_less_int > ord_less_eq_real > ord_less_eq_nat > ord_less_eq_int > one_one_real > one_one_nat > one_one_int > n > min > m1 > m > int > fTrue > fFalse > dvd_dvd_nat > dvd_dvd_int > #skF_9 > #skF_33 > #skF_7 > #skF_38 > #skF_22 > #skF_1 > #skF_20 > #skF_2 > #skF_18 > #skF_31 > #skF_17 > #skF_25 > #skF_8 > #skF_19 > #skF_3 > #skF_39 > #skF_34 > #skF_14 > #skF_29 > #skF_26 > #skF_10 > #skF_35 > #skF_37 > #skF_21 > #skF_36 > #skF_32 > #skF_15 > #skF_40 > #skF_30 > #skF_13 > #skF_11 > #skF_24 > #skF_23 > #skF_12 > #skF_41 > #skF_27 > #skF_5 > #skF_28 > #skF_6 > #skF_4 > #skF_16

%Foreground sorts:

%Background operators:

%Foreground operators:
tff(tn,type,
    tn: $i ).

tff(power_power_int,type,
    power_power_int: $i > $i ).

tff('#skF_9',type,
    '#skF_9': $i > $i ).

tff(zcong,type,
    zcong: ( $i * $i ) > $i ).

tff(hAPP_real_bool,type,
    hAPP_real_bool: ( $i * $i ) > $i ).

tff('#skF_33',type,
    '#skF_33': $i ).

tff('#skF_7',type,
    '#skF_7': $i > $i ).

tff(ord_less_nat,type,
    ord_less_nat: $i ).

tff(m,type,
    m: $i ).

tff('#skF_38',type,
    '#skF_38': ( $i * $i * $i ) > $i ).

tff(times_times_real,type,
    times_times_real: ( $i * $i ) > $i ).

tff(one_one_int,type,
    one_one_int: $i ).

tff('#skF_22',type,
    '#skF_22': ( $i * $i ) > $i ).

tff(minus_minus_real,type,
    minus_minus_real: ( $i * $i ) > $i ).

tff(s1,type,
    s1: $i ).

tff('#skF_1',type,
    '#skF_1': ( $i * $i * $i ) > $i ).

tff('#skF_20',type,
    '#skF_20': $i ).

tff(hAPP_nat_bool,type,
    hAPP_nat_bool: ( $i * $i ) > $i ).

tff('#skF_2',type,
    '#skF_2': $i > $i ).

tff(times_times_int,type,
    times_times_int: ( $i * $i ) > $i ).

tff('#skF_18',type,
    '#skF_18': $i ).

tff(min,type,
    min: $i ).

tff(ord_less_eq_real,type,
    ord_less_eq_real: $i ).

tff(number267125858f_real,type,
    number267125858f_real: $i > $i ).

tff(t,type,
    t: $i ).

tff(pls,type,
    pls: $i ).

tff(x,type,
    x: $i ).

tff(number_number_of_nat,type,
    number_number_of_nat: $i > $i ).

tff(undefined_int,type,
    undefined_int: $i > $i ).

tff(is_bool,type,
    is_bool: $i > $o ).

tff('#skF_31',type,
    '#skF_31': $i ).

tff(power_power_nat,type,
    power_power_nat: $i > $i ).

tff(hAPP_i1948725293t_bool,type,
    hAPP_i1948725293t_bool: ( $i * $i ) > $i ).

tff('#skF_17',type,
    '#skF_17': ( $i * $i ) > $i ).

tff(if_nat,type,
    if_nat: ( $i * $i * $i ) > $i ).

tff('#skF_25',type,
    '#skF_25': $i ).

tff(semiri984289939at_nat,type,
    semiri984289939at_nat: $i ).

tff(is_int,type,
    is_int: $i > $o ).

tff(abs_abs_int,type,
    abs_abs_int: $i > $i ).

tff(bit0,type,
    bit0: $i > $i ).

tff(ord_less_eq_int,type,
    ord_less_eq_int: $i ).

tff(s,type,
    s: $i ).

tff(semiri132038758t_real,type,
    semiri132038758t_real: $i ).

tff('#skF_8',type,
    '#skF_8': $i > $i ).

tff('#skF_19',type,
    '#skF_19': $i ).

tff(hAPP_nat_int,type,
    hAPP_nat_int: ( $i * $i ) > $i ).

tff('#skF_3',type,
    '#skF_3': ( $i * $i ) > $i ).

tff('#skF_39',type,
    '#skF_39': ( $i * $i * $i ) > $i ).

tff('#skF_34',type,
    '#skF_34': ( $i * $i ) > $i ).

tff(one_one_real,type,
    one_one_real: $i ).

tff('#skF_14',type,
    '#skF_14': ( $i * $i ) > $i ).

tff(times_times_nat,type,
    times_times_nat: ( $i * $i ) > $i ).

tff(hAPP_nat_nat,type,
    hAPP_nat_nat: ( $i * $i ) > $i ).

tff('#skF_29',type,
    '#skF_29': $i > $i ).

tff('#skF_26',type,
    '#skF_26': $i ).

tff(number_number_of_int,type,
    number_number_of_int: $i > $i ).

tff(minus_minus_nat,type,
    minus_minus_nat: ( $i * $i ) > $i ).

tff(ord_less_real,type,
    ord_less_real: $i ).

tff(quadRes,type,
    quadRes: $i > $i ).

tff(y,type,
    y: $i ).

tff(abs_abs_real,type,
    abs_abs_real: $i > $i ).

tff(one_one_nat,type,
    one_one_nat: $i ).

tff('#skF_10',type,
    '#skF_10': $i > $i ).

tff(nat,type,
    nat: $i > $i ).

tff('#skF_35',type,
    '#skF_35': ( $i * $i * $i ) > $i ).

tff(zero_zero_int,type,
    zero_zero_int: $i ).

tff(ord_less_eq_nat,type,
    ord_less_eq_nat: $i ).

tff(dvd_dvd_int,type,
    dvd_dvd_int: $i ).

tff(plus_plus_real,type,
    plus_plus_real: ( $i * $i ) > $i ).

tff('#skF_37',type,
    '#skF_37': ( $i * $i * $i ) > $i ).

tff(dvd_dvd_nat,type,
    dvd_dvd_nat: $i ).

tff('#skF_21',type,
    '#skF_21': $i ).

tff(plus_plus_int,type,
    plus_plus_int: ( $i * $i ) > $i ).

tff(zprime,type,
    zprime: $i ).

tff('#skF_36',type,
    '#skF_36': ( $i * $i ) > $i ).

tff('#skF_32',type,
    '#skF_32': $i ).

tff(int,type,
    int: $i ).

tff('#skF_15',type,
    '#skF_15': ( $i * $i * $i ) > $i ).

tff('#skF_40',type,
    '#skF_40': ( $i * $i * $i ) > $i ).

tff('#skF_30',type,
    '#skF_30': $i ).

tff('#skF_13',type,
    '#skF_13': $i > $i ).

tff(n,type,
    n: $i ).

tff(fTrue,type,
    fTrue: $i ).

tff('#skF_11',type,
    '#skF_11': $i > $i ).

tff(bit1,type,
    bit1: $i > $i ).

tff(zero_zero_real,type,
    zero_zero_real: $i ).

tff(hAPP_r1134773055l_bool,type,
    hAPP_r1134773055l_bool: ( $i * $i ) > $i ).

tff(hAPP_n1699378549t_bool,type,
    hAPP_n1699378549t_bool: ( $i * $i ) > $i ).

tff(ord_less_int,type,
    ord_less_int: $i ).

tff(hBOOL,type,
    hBOOL: $i > $o ).

tff(legendre,type,
    legendre: ( $i * $i ) > $i ).

tff(power_power_real,type,
    power_power_real: $i > $i ).

tff(if_int,type,
    if_int: ( $i * $i * $i ) > $i ).

tff('#skF_24',type,
    '#skF_24': $i ).

tff('#skF_23',type,
    '#skF_23': $i ).

tff(hAPP_int_bool,type,
    hAPP_int_bool: ( $i * $i ) > $i ).

tff(hAPP_nat_real,type,
    hAPP_nat_real: ( $i * $i ) > $i ).

tff(twoSqu1154269391sum2sq,type,
    twoSqu1154269391sum2sq: $i ).

tff(plus_plus_nat,type,
    plus_plus_nat: ( $i * $i ) > $i ).

tff(semiri1621563631at_int,type,
    semiri1621563631at_int: $i ).

tff('#skF_12',type,
    '#skF_12': $i > $i ).

tff(zero_zero_nat,type,
    zero_zero_nat: $i ).

tff('#skF_41',type,
    '#skF_41': ( $i * $i * $i ) > $i ).

tff(minus_minus_int,type,
    minus_minus_int: ( $i * $i ) > $i ).

tff('#skF_27',type,
    '#skF_27': ( $i * $i ) > $i ).

tff(fFalse,type,
    fFalse: $i ).

tff(succ,type,
    succ: $i > $i ).

tff(m1,type,
    m1: $i ).

tff('#skF_5',type,
    '#skF_5': ( $i * $i ) > $i ).

tff('#skF_28',type,
    '#skF_28': ( $i * $i * $i ) > $i ).

tff('#skF_6',type,
    '#skF_6': $i > $i ).

tff('#skF_4',type,
    '#skF_4': ( $i * $i ) > $i ).

tff('#skF_16',type,
    '#skF_16': ( $i * $i * $i ) > $i ).

tff(f_449,axiom,
    pls = zero_zero_int,
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',fact_98_Pls__def) ).

tff(f_1188,axiom,
    ! [M_5] : ~ hBOOL(hAPP_int_bool(hAPP_i1948725293t_bool(ord_less_int,hAPP_nat_int(semiri1621563631at_int,M_5)),zero_zero_int)),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',fact_287_of__nat__less__0__iff) ).

tff(f_95,hypothesis,
    ! [B_1_1,B_2_1] : is_int(hAPP_nat_int(B_1_1,B_2_1)),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',gsy_c_hAPP_000tc__Nat__Onat_000tc__Int__Oint) ).

tff(f_79,axiom,
    ! [B_1_1] :
      ( is_int(B_1_1)
     => is_int(succ(B_1_1)) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',gsy_c_Int_Osucc) ).

tff(f_3616,axiom,
    ! [K_1] : ( succ(K_1) = plus_plus_int(K_1,one_one_int) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',fact_814_succ__def) ).

tff(f_1416,axiom,
    ! [A_76,C_35] : ( plus_plus_int(A_76,C_35) = plus_plus_int(C_35,A_76) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',fact_349_comm__semiring__1__class_Onormalizing__semiring__rules_I24_J) ).

tff(f_228,axiom,
    plus_plus_nat(one_one_nat,one_one_nat) = number_number_of_nat(bit0(bit1(pls))),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',fact_45_nat__1__add__1) ).

tff(f_5795,negated_conjecture,
    hAPP_nat_int(power_power_int(plus_plus_int(one_one_int,hAPP_nat_int(semiri1621563631at_int,n))),number_number_of_nat(bit0(bit1(pls)))) != zero_zero_int,
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',conj_0) ).

tff(f_1171,axiom,
    ! [A_1,Na] :
      ( is_int(A_1)
     => ( ( hAPP_nat_int(power_power_int(A_1),Na) = zero_zero_int )
      <=> ( ( A_1 = zero_zero_int )
          & ( Na != zero_zero_nat ) ) ) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',fact_284_power__eq__0__iff) ).

tff(f_1086,axiom,
    ! [A_91] : hBOOL(hAPP_int_bool(hAPP_i1948725293t_bool(ord_less_int,A_91),plus_plus_int(A_91,one_one_int))),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',fact_269_less__add__one) ).

tff(c_367,plain,
    zero_zero_int = pls,
    inference(cnfTransformation,[status(thm)],[f_449]) ).

tff(c_900,plain,
    ! [M_5_420] : ~ hBOOL(hAPP_int_bool(hAPP_i1948725293t_bool(ord_less_int,hAPP_nat_int(semiri1621563631at_int,M_5_420)),zero_zero_int)),
    inference(cnfTransformation,[status(thm)],[f_1188]) ).

tff(c_4151,plain,
    ! [M_5_420] : ~ hBOOL(hAPP_int_bool(hAPP_i1948725293t_bool(ord_less_int,hAPP_nat_int(semiri1621563631at_int,M_5_420)),pls)),
    inference(demodulation,[status(thm),theory(equality)],[c_367,c_900]) ).

tff(c_40,plain,
    ! [B_1_1_21,B_2_1_22] : is_int(hAPP_nat_int(B_1_1_21,B_2_1_22)),
    inference(cnfTransformation,[status(thm)],[f_95]) ).

tff(c_28,plain,
    ! [B_1_1_14] :
      ( is_int(succ(B_1_1_14))
      | ~ is_int(B_1_1_14) ),
    inference(cnfTransformation,[status(thm)],[f_79]) ).

tff(c_2424,plain,
    ! [K_1_1694] : ( plus_plus_int(K_1_1694,one_one_int) = succ(K_1_1694) ),
    inference(cnfTransformation,[status(thm)],[f_3616]) ).

tff(c_7121,plain,
    ! [C_35_2648,A_76_2649] : ( plus_plus_int(C_35_2648,A_76_2649) = plus_plus_int(A_76_2649,C_35_2648) ),
    inference(cnfTransformation,[status(thm)],[f_1416]) ).

tff(c_7371,plain,
    ! [K_1_1694] : ( plus_plus_int(one_one_int,K_1_1694) = succ(K_1_1694) ),
    inference(superposition,[status(thm),theory(equality)],[c_2424,c_7121]) ).

tff(c_174,plain,
    number_number_of_nat(bit0(bit1(pls))) = plus_plus_nat(one_one_nat,one_one_nat),
    inference(cnfTransformation,[status(thm)],[f_228]) ).

tff(c_3705,plain,
    hAPP_nat_int(power_power_int(plus_plus_int(one_one_int,hAPP_nat_int(semiri1621563631at_int,n))),number_number_of_nat(bit0(bit1(pls)))) = zero_zero_int,
    inference(cnfTransformation,[status(thm)],[f_5795]) ).

tff(c_4159,plain,
    hAPP_nat_int(power_power_int(plus_plus_int(one_one_int,hAPP_nat_int(semiri1621563631at_int,n))),number_number_of_nat(bit0(bit1(pls)))) = pls,
    inference(demodulation,[status(thm),theory(equality)],[c_367,c_3705]) ).

tff(c_4383,plain,
    hAPP_nat_int(power_power_int(plus_plus_int(one_one_int,hAPP_nat_int(semiri1621563631at_int,n))),plus_plus_nat(one_one_nat,one_one_nat)) = pls,
    inference(demodulation,[status(thm),theory(equality)],[c_174,c_4159]) ).

tff(c_7841,plain,
    hAPP_nat_int(power_power_int(succ(hAPP_nat_int(semiri1621563631at_int,n))),plus_plus_nat(one_one_nat,one_one_nat)) = pls,
    inference(demodulation,[status(thm),theory(equality)],[c_7371,c_4383]) ).

tff(c_886,plain,
    ! [A_1_414,Na_415] :
      ( ( zero_zero_int = A_1_414 )
      | ( hAPP_nat_int(power_power_int(A_1_414),Na_415) != zero_zero_int )
      | ~ is_int(A_1_414) ),
    inference(cnfTransformation,[status(thm)],[f_1171]) ).

tff(c_19758,plain,
    ! [A_1_2919,Na_2920] :
      ( ( pls = A_1_2919 )
      | ( hAPP_nat_int(power_power_int(A_1_2919),Na_2920) != pls )
      | ~ is_int(A_1_2919) ),
    inference(demodulation,[status(thm),theory(equality)],[c_367,c_367,c_886]) ).

tff(c_19790,plain,
    ( ( succ(hAPP_nat_int(semiri1621563631at_int,n)) = pls )
    | ~ is_int(succ(hAPP_nat_int(semiri1621563631at_int,n))) ),
    inference(superposition,[status(thm),theory(equality)],[c_7841,c_19758]) ).

tff(c_19797,plain,
    ~ is_int(succ(hAPP_nat_int(semiri1621563631at_int,n))),
    inference(splitLeft,[status(thm)],[c_19790]) ).

tff(c_19800,plain,
    ~ is_int(hAPP_nat_int(semiri1621563631at_int,n)),
    inference(resolution,[status(thm)],[c_28,c_19797]) ).

tff(c_19804,plain,
    $false,
    inference(demodulation,[status(thm),theory(equality)],[c_40,c_19800]) ).

tff(c_19805,plain,
    succ(hAPP_nat_int(semiri1621563631at_int,n)) = pls,
    inference(splitRight,[status(thm)],[c_19790]) ).

tff(c_837,plain,
    ! [A_91_375] : hBOOL(hAPP_int_bool(hAPP_i1948725293t_bool(ord_less_int,A_91_375),plus_plus_int(A_91_375,one_one_int))),
    inference(cnfTransformation,[status(thm)],[f_1086]) ).

tff(c_4033,plain,
    ! [A_91_375] : hBOOL(hAPP_int_bool(hAPP_i1948725293t_bool(ord_less_int,A_91_375),succ(A_91_375))),
    inference(demodulation,[status(thm),theory(equality)],[c_2424,c_837]) ).

tff(c_19821,plain,
    hBOOL(hAPP_int_bool(hAPP_i1948725293t_bool(ord_less_int,hAPP_nat_int(semiri1621563631at_int,n)),pls)),
    inference(superposition,[status(thm),theory(equality)],[c_19805,c_4033]) ).

tff(c_19834,plain,
    $false,
    inference(negUnitSimplification,[status(thm)],[c_4151,c_19821]) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.13  % Problem  : NUM925+3 : TPTP v8.1.2. Released v5.3.0.
% 0.00/0.13  % Command  : java -Dfile.encoding=UTF-8 -Xms512M -Xmx4G -Xss10M -jar /export/starexec/sandbox2/solver/bin/beagle.jar -auto -q -proof -print tff -smtsolver /export/starexec/sandbox2/solver/bin/cvc4-1.4-x86_64-linux-opt -liasolver cooper -t %d %s
% 0.14/0.35  % Computer : n029.cluster.edu
% 0.14/0.35  % Model    : x86_64 x86_64
% 0.14/0.35  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.14/0.35  % Memory   : 8042.1875MB
% 0.14/0.35  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.14/0.35  % CPULimit : 300
% 0.14/0.35  % WCLimit  : 300
% 0.14/0.35  % DateTime : Thu Aug  3 14:48:52 EDT 2023
% 0.14/0.35  % CPUTime  : 
% 30.32/11.16  % SZS status Theorem for /export/starexec/sandbox2/benchmark/theBenchmark.p
% 30.32/11.17  
% 30.32/11.17  % SZS output start CNFRefutation for /export/starexec/sandbox2/benchmark/theBenchmark.p
% See solution above
% 30.32/11.20  
% 30.32/11.20  Inference rules
% 30.32/11.20  ----------------------
% 30.32/11.20  #Ref     : 7
% 30.32/11.20  #Sup     : 4110
% 30.32/11.20  #Fact    : 0
% 30.32/11.20  #Define  : 0
% 30.32/11.20  #Split   : 74
% 30.32/11.20  #Chain   : 0
% 30.32/11.20  #Close   : 0
% 30.32/11.20  
% 30.32/11.20  Ordering : KBO
% 30.32/11.20  
% 30.32/11.20  Simplification rules
% 30.32/11.20  ----------------------
% 30.32/11.20  #Subsume      : 794
% 30.32/11.20  #Demod        : 3226
% 30.32/11.20  #Tautology    : 2415
% 30.32/11.20  #SimpNegUnit  : 105
% 30.32/11.20  #BackRed      : 12
% 30.32/11.20  
% 30.32/11.20  #Partial instantiations: 0
% 30.32/11.20  #Strategies tried      : 1
% 30.32/11.20  
% 30.32/11.20  Timing (in seconds)
% 30.32/11.20  ----------------------
% 30.32/11.20  Preprocessing        : 2.12
% 30.32/11.20  Parsing              : 1.16
% 30.32/11.20  CNF conversion       : 0.18
% 30.32/11.20  Main loop            : 8.03
% 30.32/11.20  Inferencing          : 1.03
% 30.32/11.20  Reduction            : 4.48
% 30.32/11.20  Demodulation         : 3.47
% 30.32/11.20  BG Simplification    : 0.22
% 30.32/11.20  Subsumption          : 1.76
% 30.32/11.20  Abstraction          : 0.11
% 30.32/11.20  MUC search           : 0.00
% 30.32/11.20  Cooper               : 0.00
% 30.32/11.20  Total                : 10.20
% 30.32/11.20  Index Insertion      : 0.00
% 30.32/11.20  Index Deletion       : 0.00
% 30.32/11.20  Index Matching       : 0.00
% 30.32/11.20  BG Taut test         : 0.00
%------------------------------------------------------------------------------