TSTP Solution File: NUM926+2 by SNARK---20120808r022
View Problem
- Process Solution
%------------------------------------------------------------------------------
% File : SNARK---20120808r022
% Problem : NUM926+2 : TPTP v8.1.0. Released v5.3.0.
% Transfm : none
% Format : tptp:raw
% Command : run-snark %s %d
% Computer : n024.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 : 600s
% DateTime : Mon Jul 18 14:15:21 EDT 2022
% Result : Theorem 3.11s 3.27s
% Output : Refutation 3.11s
% Verified :
% SZS Type : Refutation
% Derivation depth : 5
% Number of leaves : 13
% Syntax : Number of clauses : 20 ( 17 unt; 1 nHn; 12 RR)
% Number of literals : 26 ( 16 equ; 9 neg)
% Maximal clause size : 5 ( 1 avg)
% Maximal term depth : 7 ( 2 avg)
% Number of predicates : 5 ( 3 usr; 1 prp; 0-2 aty)
% Number of functors : 15 ( 15 usr; 8 con; 0-2 aty)
% Number of variables : 15 ( 4 sgn)
% Comments :
%------------------------------------------------------------------------------
cnf(2,hypothesis,
is_int(one_one_int),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',gsy_c_Groups_Oone__class_Oone_000tc__Int__Oint) ).
cnf(18,axiom,
is_int(t),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',gsy_v_t____) ).
cnf(19,axiom,
ord_less_eq_int(one_one_int,t),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',fact_0_tpos) ).
cnf(22,axiom,
( t != one_one_int
| plus_plus_int(power_power_int('SKOLEMAAAU1',number_number_of_nat(bit0(bit1(pls)))),power_power_int('SKOLEMAAAU2',number_number_of_nat(bit0(bit1(pls))))) = plus_plus_int(times_times_int(number_number_of_int(bit0(bit0(bit1(pls)))),m),one_one_int) ),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',fact_1__096t_A_061_A1_A_061_061_062_AEX_Ax_Ay_O_Ax_A_094_A2_A_L_Ay_A_094_A2_A_06) ).
cnf(25,axiom,
( ~ ord_less_int(one_one_int,t)
| plus_plus_int(power_power_int('SKOLEMAAAU3',number_number_of_nat(bit0(bit1(pls)))),power_power_int('SKOLEMAAAU4',number_number_of_nat(bit0(bit1(pls))))) = plus_plus_int(times_times_int(number_number_of_int(bit0(bit0(bit1(pls)))),m),one_one_int) ),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',fact_2__0961_A_060_At_A_061_061_062_AEX_Ax_Ay_O_Ax_A_094_A2_A_L_Ay_A_094_A2_A_06) ).
cnf(78,axiom,
( ~ is_int(X)
| ~ is_int(Y)
| ord_less_int(X,Y)
| ~ ord_less_eq_int(X,Y)
| X = Y ),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',fact_37_zless__le) ).
cnf(213,axiom,
times_times_int(bit0(X),Y) = bit0(times_times_int(X,Y)),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',fact_200_mult__Bit0) ).
cnf(218,axiom,
bit0(X) = plus_plus_int(X,X),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',fact_204_Bit0__def) ).
cnf(235,axiom,
plus_plus_int(X,X) = times_times_int(plus_plus_int(one_one_int,one_one_int),X),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',fact_232_comm__semiring__1__class_Onormalizing__semiring__rules_I4_J) ).
cnf(236,plain,
bit0(X) = bit0(times_times_int(X,one_one_int)),
inference('REWRITE',[status(thm)],[235,213,218,theory(equality)]) ).
cnf(247,axiom,
bit1(X) = plus_plus_int(one_one_int,plus_plus_int(X,X)),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',fact_251_Bit1__def) ).
cnf(248,plain,
bit1(X) = plus_plus_int(one_one_int,bit0(X)),
inference('REWRITE',[status(thm)],[247,218,theory(equality)]) ).
cnf(258,axiom,
number_number_of_int(bit1(pls)) = one_one_int,
file('/export/starexec/sandbox/benchmark/theBenchmark.p',fact_260_semiring__numeral__1__eq__1) ).
cnf(261,axiom,
times_times_int(plus_plus_int(one_one_int,one_one_int),number_number_of_int(X)) = number_number_of_int(bit0(X)),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',fact_268_double__number__of__Bit0) ).
cnf(262,plain,
bit0(number_number_of_int(X)) = number_number_of_int(bit0(X)),
inference('REWRITE',[status(thm)],[261,236,213,218,theory(equality)]) ).
cnf(875,negated_conjecture,
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))))) != plus_plus_int(times_times_int(number_number_of_int(bit0(bit0(bit1(pls)))),m),one_one_int),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',conj_0) ).
cnf(876,plain,
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))))) != bit1(bit0(m)),
inference('REWRITE',[status(thm)],[875,248,236,213,258,262,theory(equality)]) ).
cnf(896,plain,
t != one_one_int,
inference('REWRITE',[status(thm)],[22,876,248,236,213,258,262,theory(equality)]) ).
cnf(897,plain,
~ ord_less_int(one_one_int,t),
inference('REWRITE',[status(thm)],[25,876,248,236,213,258,262,theory(equality)]) ).
cnf(3747,plain,
$false,
inference('UR-RESOLVE',[status(thm)],[78,2,18,897,19,896]) ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.03/0.12 % Problem : NUM926+2 : TPTP v8.1.0. Released v5.3.0.
% 0.03/0.13 % Command : run-snark %s %d
% 0.12/0.34 % Computer : n024.cluster.edu
% 0.12/0.34 % Model : x86_64 x86_64
% 0.12/0.34 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.12/0.34 % Memory : 8042.1875MB
% 0.12/0.34 % OS : Linux 3.10.0-693.el7.x86_64
% 0.12/0.34 % CPULimit : 300
% 0.12/0.34 % WCLimit : 600
% 0.12/0.34 % DateTime : Tue Jul 5 10:12:59 EDT 2022
% 0.12/0.34 % CPUTime :
% 0.21/0.46 /export/starexec/sandbox/benchmark/theBenchmark.p
% 0.21/0.47 *
% 0.21/0.47 *
% 0.21/0.48 #<PACKAGE "SNARK-USER">
% 0.21/0.48 *
% 0.21/0.48 SNARK-TPTP-OPTIONS
% 0.21/0.48 *
% 0.21/0.48 ((AGENDA-LENGTH-LIMIT NIL) (AGENDA-LENGTH-BEFORE-SIMPLIFICATION-LIMIT NIL)
% 0.21/0.48 (USE-HYPERRESOLUTION T) (USE-UR-RESOLUTION T) (USE-PARAMODULATION T)
% 0.21/0.48 (USE-FACTORING :POS)
% 0.21/0.48 (USE-LITERAL-ORDERING-WITH-HYPERRESOLUTION 'LITERAL-ORDERING-P)
% 0.21/0.48 (USE-LITERAL-ORDERING-WITH-PARAMODULATION 'LITERAL-ORDERING-P)
% 0.21/0.48 (ORDERING-FUNCTIONS>CONSTANTS T) (ASSERT-CONTEXT :CURRENT)
% 0.21/0.48 (RUN-TIME-LIMIT 300) (LISTEN-FOR-COMMANDS NIL)
% 0.21/0.48 (USE-CLOSURE-WHEN-SATISFIABLE T) (PRINT-ROWS-WHEN-GIVEN NIL)
% 0.21/0.48 (PRINT-ROWS-WHEN-DERIVED NIL) (PRINT-UNORIENTABLE-ROWS NIL)
% 0.21/0.48 (PRINT-ROW-WFFS-PRETTILY NIL) (PRINT-FINAL-ROWS :TPTP)
% 0.21/0.48 (PRINT-OPTIONS-WHEN-STARTING NIL) (USE-VARIABLE-NAME-SORTS NIL)
% 0.21/0.48 (USE-PURITY-TEST T) (USE-RELEVANCE-TEST T) (DECLARE-TPTP-SYMBOLS1)
% 0.21/0.48 (DECLARE-TPTP-SYMBOLS2))
% 0.21/0.48 *
% 0.21/0.48 "."
% 0.21/0.48 *
% 0.21/0.48 ; Begin refute-file /export/starexec/sandbox/benchmark/theBenchmark.p 2022-07-05T10:12:59
% 0.21/0.48 ; Running SNARK from /davis/home/graph/tptp/Systems/SNARK---20120808r022/Source/snark-system.lisp in SBCL 1.0.12 on n024.cluster.edu at 2022-07-05T10:12:59
% 0.42/0.61
% 0.42/0.61 ; Recognized right identity assertion (= (|power_power_nat| ?X |one_one_nat|) ?X).
% 0.42/0.61 ; Recognized right identity assertion (= (|power_power_real| ?X |one_one_nat|) ?X).
% 0.42/0.61 ; Recognized associativity assertion (= (|times_times_real| (|times_times_real| ?X ?Y) ?Z) (|times_times_real| ?X (|times_times_real| ?Y ?Z))).
% 0.42/0.61 ; Recognized associativity assertion (= (|times_times_nat| (|times_times_nat| ?X ?Y) ?Z) (|times_times_nat| ?X (|times_times_nat| ?Y ?Z))).
% 0.42/0.61 ; Recognized associativity assertion (= (|times_times_int| (|times_times_int| ?X ?Y) ?Z) (|times_times_int| ?X (|times_times_int| ?Y ?Z))).
% 0.42/0.61 ; Recognized associativity assertion (= (|times_times_real| ?X (|times_times_real| ?Y ?Z)) (|times_times_real| (|times_times_real| ?X ?Y) ?Z)).
% 0.42/0.61 ; Recognized associativity assertion (= (|times_times_nat| ?X (|times_times_nat| ?Y ?Z)) (|times_times_nat| (|times_times_nat| ?X ?Y) ?Z)).
% 0.42/0.61 ; Recognized associativity assertion (= (|times_times_int| ?X (|times_times_int| ?Y ?Z)) (|times_times_int| (|times_times_int| ?X ?Y) ?Z)).
% 0.42/0.61 ; Recognized commutativity assertion (= (|times_times_real| ?X ?Y) (|times_times_real| ?Y ?X)).
% 0.42/0.61 ; Recognized commutativity assertion (= (|times_times_nat| ?X ?Y) (|times_times_nat| ?Y ?X)).
% 0.42/0.61 ; Recognized commutativity assertion (= (|times_times_int| ?X ?Y) (|times_times_int| ?Y ?X)).
% 0.42/0.61 ; Recognized associativity assertion (= (|plus_plus_real| (|plus_plus_real| ?X ?Y) ?Z) (|plus_plus_real| ?X (|plus_plus_real| ?Y ?Z))).
% 0.42/0.61 ; Recognized associativity assertion (= (|plus_plus_nat| (|plus_plus_nat| ?X ?Y) ?Z) (|plus_plus_nat| ?X (|plus_plus_nat| ?Y ?Z))).
% 0.42/0.61 ; Recognized associativity assertion (= (|plus_plus_int| (|plus_plus_int| ?X ?Y) ?Z) (|plus_plus_int| ?X (|plus_plus_int| ?Y ?Z))).
% 0.42/0.61 ; Recognized associativity assertion (= (|plus_plus_real| ?X (|plus_plus_real| ?Y ?Z)) (|plus_plus_real| (|plus_plus_real| ?X ?Y) ?Z)).
% 0.42/0.61 ; Recognized associativity assertion (= (|plus_plus_nat| ?X (|plus_plus_nat| ?Y ?Z)) (|plus_plus_nat| (|plus_plus_nat| ?X ?Y) ?Z)).
% 0.42/0.61 ; Recognized associativity assertion (= (|plus_plus_int| ?X (|plus_plus_int| ?Y ?Z)) (|plus_plus_int| (|plus_plus_int| ?X ?Y) ?Z)).
% 0.42/0.61 ; Recognized commutativity assertion (= (|plus_plus_real| ?X ?Y) (|plus_plus_real| ?Y ?X)).
% 0.42/0.61 ; Recognized commutativity assertion (= (|plus_plus_nat| ?X ?Y) (|plus_plus_nat| ?Y ?X)).
% 0.42/0.61 ; Recognized commutativity assertion (= (|plus_plus_int| ?X ?Y) (|plus_plus_int| ?Y ?X)).
% 0.42/0.61 ; Recognized associativity assertion (= (|times_times_int| (|times_times_int| ?X ?Y) ?Z) (|times_times_int| ?X (|times_times_int| ?Y ?Z))).
% 0.42/0.61 ; Recognized commutativity assertion (= (|times_times_int| ?X ?Y) (|times_times_int| ?Y ?X)).
% 0.42/0.61 ; Recognized associativity assertion (= (|plus_plus_int| (|plus_plus_int| ?X ?Y) ?Z) (|plus_plus_int| ?X (|plus_plus_int| ?Y ?Z))).
% 0.42/0.61 ; Recognized commutativity assertion (= (|plus_plus_int| ?X ?Y) (|plus_plus_int| ?Y ?X)).
% 0.42/0.61 ; Recognized right identity assertion (= (|times_times_real| ?X |one_one_real|) ?X).
% 0.42/0.61 ; Recognized right identity assertion (= (|times_times_nat| ?X |one_one_nat|) ?X).
% 0.42/0.61 ; Recognized left identity assertion (= (|times_times_real| |one_one_real| ?X) ?X).
% 0.42/0.61 ; Recognized left identity assertion (= (|times_times_nat| |one_one_nat| ?X) ?X).
% 0.42/0.61 ; Recognized left identity assertion (= (|plus_plus_real| |zero_zero_real| ?X) ?X).
% 0.42/0.61 ; Recognized left identity assertion (= (|plus_plus_nat| |zero_zero_nat| ?X) ?X).
% 0.42/0.61 ; Recognized right identity assertion (= (|plus_plus_real| ?X |zero_zero_real|) ?X).
% 0.42/0.62 ; Recognized right identity assertion (= (|plus_plus_nat| ?X |zero_zero_nat|) ?X).
% 0.42/0.62 ; Recognized right identity assertion (= (|power_power_nat| ?X |one_one_nat|) ?X).
% 0.42/0.62 ; Recognized right identity assertion (= (|power_power_real| ?X |one_one_nat|) ?X).
% 0.42/0.62 ; Recognized commutativity assertion (OR (NOT (|zcong| ?X ?Y ?Z)) (|zcong| ?Y ?X ?Z)).
% 0.42/0.62 ; Recognized commutativity assertion (OR (|zcong| ?X ?Y ?Z) (NOT (|zcong| ?Y ?X ?Z))).
% 0.42/0.62 ; Recognized possible right identity assertion (|zcong| ?X |zero_zero_int| ?X).
% 0.42/0.62 ; Recognized left identity assertion (= (|times_times_real| |one_one_real| ?X) ?X).
% 0.42/0.62 ; Recognized commutativity assertion (= (|times_times_real| ?X ?Y) (|times_times_real| ?Y ?X)).
% 0.42/0.62 ; Recognized associativity assertion (= (|times_times_real| (|times_times_real| ?X ?Y) ?Z) (|times_times_real| ?X (|times_times_real| ?Y ?Z))).
% 0.42/0.62 ; Declaring plus_plus_int to be commutative.
% 0.42/0.62 ; Declaring plus_plus_int to be associative-commutative.
% 0.42/0.62 ; Declaring times_times_int to be commutative.
% 0.42/0.62 ; Declaring times_times_int to be associative-commutative.
% 0.42/0.62 ; Declaring plus_plus_real to be commutative.
% 0.42/0.62 ; Declaring plus_plus_real to be associative-commutative.
% 0.42/0.62 ; Declaring times_times_real to be commutative.
% 0.42/0.62 ; Declaring times_times_real to be associative-commutative.
% 0.42/0.62 ; Declaring plus_plus_nat to be commutative.
% 0.42/0.62 ; Declaring plus_plus_nat to be associative-commutative.
% 0.42/0.62 ; Declaring times_times_nat to be commutative.
% 0.42/0.62 ; Declaring times_times_nat to be associative-commutative.
% 3.11/3.27 ; Declaring zcong to be commutative.
% 3.11/3.27
% 3.11/3.27 #||
% 3.11/3.27 % SZS status Theorem for /export/starexec/sandbox/benchmark/theBenchmark.p
% 3.11/3.27 % SZS output start Refutation
% See solution above
% 3.11/3.28 ||#
% 3.11/3.28
% 3.11/3.28 ; Summary of computation:
% 3.11/3.28 ; 15031 formulas have been input or derived (from 497 formulas).
% 3.11/3.28 ; 3747 (25%) were retained. Of these,
% 3.11/3.28 ; 630 (17%) were simplified or subsumed later,
% 3.11/3.28 ; 3117 (83%) are still being kept.
% 3.11/3.28 ;
% 3.11/3.28 ; Run time in seconds excluding printing time:
% 3.11/3.28 ; 0.119 4% Read assertion file (1 call)
% 3.11/3.28 ; 0.014 1% Assert (717 calls)
% 3.11/3.28 ; 0.224 8% Process new row (13,714 calls)
% 3.11/3.28 ; 0.356 13% Resolution (992 calls)
% 3.11/3.28 ; 0.086 3% Paramodulation (496 calls)
% 3.11/3.28 ; 0.002 0% Factoring (12 calls)
% 3.11/3.28 ; 0.001 0% Embedding (233 calls)
% 3.11/3.28 ; 0.227 8% Condensing (3,047 calls)
% 3.11/3.28 ; 0.097 3% Forward subsumption (3,047 calls)
% 3.11/3.28 ; 0.034 1% Backward subsumption (1,589 calls)
% 3.11/3.28 ; 0.100 4% Clause clause subsumption (5,077 calls)
% 3.11/3.28 ; 0.999 36% Forward simplification (13,484 calls)
% 3.11/3.28 ; 0.040 1% Backward simplification (3,341 calls)
% 3.11/3.28 ; 0.083 3% Ordering (15,417 calls)
% 3.11/3.28 ; 0.346 12% Ordering ac (8,245 calls)
% 3.11/3.28 ; 0.000 0% Sortal reasoning (32 calls)
% 3.11/3.28 ; 0.001 0% Purity testing (1 call)
% 3.11/3.28 ; 0.067 2% Other
% 3.11/3.28 ; 2.796 Total
% 3.11/3.28 ; 2.806 Real time
% 3.11/3.28 ;
% 3.11/3.28 ; Term-hash-array has 6,999 terms in all.
% 3.11/3.28 ; Feature-vector-row-index has 1,449 entries (1,449 at peak, 1,589 added, 140 deleted).
% 3.11/3.28 ; Feature-vector-row-index has 6,719 nodes (6,719 at peak, 7,827 added, 1,108 deleted).
% 3.11/3.28 ; Retrieved 7,060 possibly forward subsuming rows in 3,047 calls.
% 3.11/3.28 ; Retrieved 546 possibly backward subsumed rows in 1,589 calls.
% 3.11/3.28 ; Path-index has 6,236 entries (6,236 at peak, 7,141 added, 905 deleted).
% 3.11/3.28 ; Path-index has 6,269 nodes (6,269 at peak, 7,074 added, 805 deleted).
% 3.11/3.28 ; Trie-index has 6,236 entries (6,236 at peak, 7,141 added, 905 deleted).
% 3.11/3.28 ; Trie-index has 6,293 nodes (6,293 at peak, 7,727 added, 1,434 deleted).
% 3.11/3.28 ; Retrieved 1,212,837 generalization terms in 105,177 calls.
% 3.11/3.28 ; Retrieved 3,612 instance terms in 1,981 calls.
% 3.11/3.28 ; Retrieved 748,408 unifiable terms in 16,885 calls.
% 3.11/3.28 ;
% 3.11/3.28 ; The agenda of rows to process has 186 entries:
% 3.11/3.28 ; 2 with value 4 110 with value 13 44 with value 19
% 3.11/3.28 ; 8 with value 5 2 with value 15 3 with value 22
% 3.11/3.28 ; 17 with value 9
% 3.11/3.28 ; The agenda of input rows to give has 143 entries:
% 3.11/3.28 ; 22 with value 18 2 with value 27 2 with value 35
% 3.11/3.28 ; 6 with value 19 6 with value 28 1 with value 36
% 3.11/3.28 ; 15 with value 20 2 with value 29 2 with value 37
% 3.11/3.28 ; 27 with value 21 4 with value 30 1 with value 38
% 3.11/3.28 ; 12 with value 22 4 with value 31 2 with value 43
% 3.11/3.28 ; 6 with value 23 8 with value 32 2 with value 44
% 3.11/3.28 ; 5 with value 25 1 with value 33 2 with value 60
% 3.11/3.28 ; 9 with value 26 1 with value 34 1 with value 63
% 3.11/3.28 ; The agenda of rows to give has 2483 entries:
% 3.11/3.28 ; 1 with value (4 4) 39 with value (4 23) 25 with value (4 42)
% 3.11/3.28 ; 42 with value (4 5) 70 with value (4 24) 5 with value (4 43)
% 3.11/3.28 ; 22 with value (4 6) 27 with value (4 25) 11 with value (4 44)
% 3.11/3.28 ; 358 with value (4 7) 57 with value (4 26) 7 with value (4 45)
% 3.11/3.28 ; 153 with value (4 8) 36 with value (4 27) 21 with value (4 46)
% 3.11/3.28 ; 171 with value (4 9) 33 with value (4 28) 9 with value (4 47)
% 3.11/3.28 ; 44 with value (4 10) 34 with value (4 29) 5 with value (4 48)
% 3.11/3.28 ; 113 with value (4 11) 25 with value (4 30) 2 with value (4 49)
% 3.11/3.28 ; 111 with value (4 12) 26 with value (4 31) 13 with value (4 52)
% 3.11/3.28 ; 59 with value (4 13) 21 with value (4 32) 9 with value (4 53)
% 3.11/3.28 ; 81 with value (4 14) 25 with value (4 33) 6 with value (4 54)
% 3.11/3.28 ; 113 with value (4 15) 14 with value (4 34) 1 with value (4 55)
% 3.11/3.28 ; 115 with value (4 16) 34 with value (4 35) 2 with value (4 56)
% 3.11/3.28 ; 59 with value (4 17) 19 with value (4 36) 7 with value (4 57)
% 3.11/3.28 ; 80 with value (4 18) 35 with value (4 37) 7 with value (4 59)
% 3.11/3.28 ; 78 with value (4 19) 12 with value (4 38) 7 with value (4 63)
% 3.11/3.28 ; 76 with value (4 20) 22 with value (4 39) 4 with value (4 64)
% 3.11/3.28 ; 43 with value (4 21) 9 with value (4 40) 1 with value (4 65)
% 3.11/3.28 ; 71 with value (4 22) 13 with value (4 41)
% 3.11/3.28 Evaluation took:
% 3.11/3.28 2.807 seconds of real time
% 3.11/3.28 2.675585 seconds of user run time
% 3.11/3.28 0.13133 seconds of system run time
% 3.11/3.28 [Run times include 0.167 seconds GC run time.]
% 3.11/3.28 0 calls to %EVAL
% 3.11/3.28 0 page faults and
% 3.11/3.28 227,304,160 bytes consed.
% 3.11/3.28 :PROOF-FOUND
% 3.11/3.28 ; End refute-file /export/starexec/sandbox/benchmark/theBenchmark.p 2022-07-05T10:13:02
% 3.11/3.28 :PROOF-FOUND
% 3.11/3.28 *
%------------------------------------------------------------------------------