↑ Up

E---3.5.1.UNS-CRf.s

View TPTP
Problem
Process solution in
SystemOnTSTP
Download .tgz
%------------------------------------------------------------------------------
% File     : E---3.5.1
% Problem  : PLA031-1.001 : TPTP v9.3.1. Released v3.5.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : run_E /export/starexec/sandbox/benchmark/theBenchmark.p 300 THM

% Computer : n011.cluster.edu
% Model    : x86_64 x86_64
% CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory   : 8046.5625MB
% OS       : Linux 6.8.0-71-generic
% CPULimit : 300s
% WCLimit  : 300s
% DateTime : Thu Sep 24 01:58:54 PM UTC 2026

% Result   : Unsatisfiable 1.96s 0.81s
% Output   : CNFRefutation 1.96s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   16
%            Number of leaves      :   21
% Syntax   : Number of clauses     :   73 (  36 unt;   0 nHn;  73 RR)
%            Number of literals    :  128 (   0 equ;  58 neg)
%            Maximal clause size   :    3 (   1 avg)
%            Maximal term depth    :    1 (   1 avg)
%            Number of predicates  :    5 (   4 usr;   1 prp; 0-6 aty)
%            Number of functors    :    7 (   7 usr;   7 con; 0-0 aty)
%            Number of variables   :  200 (   0 sgn)

% Comments : 
%------------------------------------------------------------------------------
cnf(walk1,axiom,
    ( ~ path(X3,X7)
    | ~ s(X1,X2,X3,X4,X5,X6)
    | s(X1,X2,X7,X4,X5,X6) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',walk1) ).

cnf(map7,axiom,
    path(s0,p2_0),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',map7) ).

cnf(map6,axiom,
    path(p2_0,s2),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',map6) ).

cnf(init,axiom,
    s(s2,s2,s0,s1,s0,s2),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',init) ).

cnf(load7,axiom,
    ( ~ s(X1,X2,X3,X4,X5,X2)
    | s(X1,truck2,X3,X4,X5,X2) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',load7) ).

cnf(drive2,axiom,
    ( ~ link(X5,X6)
    | ~ s(X1,X2,truck2,X3,X4,X5)
    | s(X1,X2,truck2,X3,X4,X6) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',drive2) ).

cnf(board3,axiom,
    ( ~ neq(X4,truck2)
    | ~ s(X1,X2,X3,X4,X5,X3)
    | s(X1,X2,truck2,X4,X5,X3) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',board3) ).

cnf(map18,axiom,
    link(s2,s1),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',map18) ).

cnf(neq26,axiom,
    neq(s1,truck2),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',neq26) ).

cnf(load8,axiom,
    ( ~ s(X1,truck2,X3,X4,X5,X2)
    | s(X1,X2,X3,X4,X5,X2) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',load8) ).

cnf(map14,axiom,
    link(s1,s0),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',map14) ).

cnf(board4,axiom,
    ( ~ s(X1,X2,truck2,X4,X5,X3)
    | s(X1,X2,X3,X4,X5,X3) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',board4) ).

cnf(drive1,axiom,
    ( ~ link(X4,X6)
    | ~ s(X1,X2,truck1,X3,X4,X5)
    | s(X1,X2,truck1,X3,X6,X5) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',drive1) ).

cnf(board1,axiom,
    ( ~ neq(X4,truck1)
    | ~ s(X1,X2,X3,X4,X3,X5)
    | s(X1,X2,truck1,X4,X3,X5) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',board1) ).

cnf(map15,axiom,
    link(s0,s2),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',map15) ).

cnf(neq25,axiom,
    neq(s1,truck1),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',neq25) ).

cnf(walk2,axiom,
    ( ~ path(X4,X7)
    | ~ s(X1,X2,X3,X4,X5,X6)
    | s(X1,X2,X3,X7,X5,X6) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',walk2) ).

cnf(board2,axiom,
    ( ~ s(X1,X2,truck1,X4,X3,X5)
    | s(X1,X2,X3,X4,X3,X5) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',board2) ).

cnf(map11,axiom,
    path(s1,p2_1),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',map11) ).

cnf(map10,axiom,
    path(p2_1,s2),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',map10) ).

cnf(goal,negated_conjecture,
    ~ s(s2,s1,s2,s2,s2,s0),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',goal) ).

cnf(c_0_21,plain,
    ( ~ path(X3,X7)
    | ~ s(X1,X2,X3,X4,X5,X6)
    | s(X1,X2,X7,X4,X5,X6) ),
    inference(fof_simplification,[status(thm)],[walk1]) ).

cnf(c_0_22,plain,
    ( ~ path(X3,X7)
    | ~ s(X1,X2,X3,X4,X5,X6)
    | s(X1,X2,X7,X4,X5,X6) ),
    c_0_21 ).

cnf(c_0_23,axiom,
    path(s0,p2_0),
    map7 ).

cnf(c_0_24,axiom,
    path(p2_0,s2),
    map6 ).

cnf(c_0_25,plain,
    ( ~ s(X1,X2,s0,X3,X4,X5)
    | s(X1,X2,p2_0,X3,X4,X5) ),
    inference(spm,[status(thm)],[c_0_22,c_0_23]) ).

cnf(c_0_26,axiom,
    s(s2,s2,s0,s1,s0,s2),
    init ).

cnf(c_0_27,plain,
    ( ~ s(X1,X2,X3,X4,X5,X2)
    | s(X1,truck2,X3,X4,X5,X2) ),
    inference(fof_simplification,[status(thm)],[load7]) ).

cnf(c_0_28,plain,
    ( ~ s(X1,X2,p2_0,X3,X4,X5)
    | s(X1,X2,s2,X3,X4,X5) ),
    inference(spm,[status(thm)],[c_0_22,c_0_24]) ).

cnf(c_0_29,plain,
    s(s2,s2,p2_0,s1,s0,s2),
    inference(spm,[status(thm)],[c_0_25,c_0_26]) ).

cnf(c_0_30,plain,
    ( ~ link(X5,X6)
    | ~ s(X1,X2,truck2,X3,X4,X5)
    | s(X1,X2,truck2,X3,X4,X6) ),
    inference(fof_simplification,[status(thm)],[drive2]) ).

cnf(c_0_31,plain,
    ( ~ neq(X4,truck2)
    | ~ s(X1,X2,X3,X4,X5,X3)
    | s(X1,X2,truck2,X4,X5,X3) ),
    inference(fof_simplification,[status(thm)],[board3]) ).

cnf(c_0_32,plain,
    ( ~ s(X1,X2,X3,X4,X5,X2)
    | s(X1,truck2,X3,X4,X5,X2) ),
    c_0_27 ).

cnf(c_0_33,plain,
    s(s2,s2,s2,s1,s0,s2),
    inference(spm,[status(thm)],[c_0_28,c_0_29]) ).

cnf(c_0_34,plain,
    ( ~ link(X5,X6)
    | ~ s(X1,X2,truck2,X3,X4,X5)
    | s(X1,X2,truck2,X3,X4,X6) ),
    c_0_30 ).

cnf(c_0_35,axiom,
    link(s2,s1),
    map18 ).

cnf(c_0_36,plain,
    ( ~ neq(X4,truck2)
    | ~ s(X1,X2,X3,X4,X5,X3)
    | s(X1,X2,truck2,X4,X5,X3) ),
    c_0_31 ).

cnf(c_0_37,plain,
    s(s2,truck2,s2,s1,s0,s2),
    inference(spm,[status(thm)],[c_0_32,c_0_33]) ).

cnf(c_0_38,axiom,
    neq(s1,truck2),
    neq26 ).

cnf(c_0_39,plain,
    ( ~ s(X1,truck2,X3,X4,X5,X2)
    | s(X1,X2,X3,X4,X5,X2) ),
    inference(fof_simplification,[status(thm)],[load8]) ).

cnf(c_0_40,plain,
    ( ~ s(X1,X2,truck2,X3,X4,s2)
    | s(X1,X2,truck2,X3,X4,s1) ),
    inference(spm,[status(thm)],[c_0_34,c_0_35]) ).

cnf(c_0_41,plain,
    s(s2,truck2,truck2,s1,s0,s2),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_36,c_0_37]),c_0_38])]) ).

cnf(c_0_42,axiom,
    link(s1,s0),
    map14 ).

cnf(c_0_43,plain,
    ( ~ s(X1,truck2,X3,X4,X5,X2)
    | s(X1,X2,X3,X4,X5,X2) ),
    c_0_39 ).

cnf(c_0_44,plain,
    s(s2,truck2,truck2,s1,s0,s1),
    inference(spm,[status(thm)],[c_0_40,c_0_41]) ).

cnf(c_0_45,plain,
    ( ~ s(X1,X2,truck2,X4,X5,X3)
    | s(X1,X2,X3,X4,X5,X3) ),
    inference(fof_simplification,[status(thm)],[board4]) ).

cnf(c_0_46,plain,
    ( ~ s(X1,X2,truck2,X3,X4,s1)
    | s(X1,X2,truck2,X3,X4,s0) ),
    inference(spm,[status(thm)],[c_0_34,c_0_42]) ).

cnf(c_0_47,plain,
    s(s2,s1,truck2,s1,s0,s1),
    inference(spm,[status(thm)],[c_0_43,c_0_44]) ).

cnf(c_0_48,plain,
    ( ~ link(X4,X6)
    | ~ s(X1,X2,truck1,X3,X4,X5)
    | s(X1,X2,truck1,X3,X6,X5) ),
    inference(fof_simplification,[status(thm)],[drive1]) ).

cnf(c_0_49,plain,
    ( ~ neq(X4,truck1)
    | ~ s(X1,X2,X3,X4,X3,X5)
    | s(X1,X2,truck1,X4,X3,X5) ),
    inference(fof_simplification,[status(thm)],[board1]) ).

cnf(c_0_50,plain,
    ( ~ s(X1,X2,truck2,X4,X5,X3)
    | s(X1,X2,X3,X4,X5,X3) ),
    c_0_45 ).

cnf(c_0_51,plain,
    s(s2,s1,truck2,s1,s0,s0),
    inference(spm,[status(thm)],[c_0_46,c_0_47]) ).

cnf(c_0_52,plain,
    ( ~ link(X4,X6)
    | ~ s(X1,X2,truck1,X3,X4,X5)
    | s(X1,X2,truck1,X3,X6,X5) ),
    c_0_48 ).

cnf(c_0_53,axiom,
    link(s0,s2),
    map15 ).

cnf(c_0_54,plain,
    ( ~ neq(X4,truck1)
    | ~ s(X1,X2,X3,X4,X3,X5)
    | s(X1,X2,truck1,X4,X3,X5) ),
    c_0_49 ).

cnf(c_0_55,plain,
    s(s2,s1,s0,s1,s0,s0),
    inference(spm,[status(thm)],[c_0_50,c_0_51]) ).

cnf(c_0_56,axiom,
    neq(s1,truck1),
    neq25 ).

cnf(c_0_57,plain,
    ( ~ path(X4,X7)
    | ~ s(X1,X2,X3,X4,X5,X6)
    | s(X1,X2,X3,X7,X5,X6) ),
    inference(fof_simplification,[status(thm)],[walk2]) ).

cnf(c_0_58,plain,
    ( ~ s(X1,X2,truck1,X4,X3,X5)
    | s(X1,X2,X3,X4,X3,X5) ),
    inference(fof_simplification,[status(thm)],[board2]) ).

cnf(c_0_59,plain,
    ( ~ s(X1,X2,truck1,X3,s0,X4)
    | s(X1,X2,truck1,X3,s2,X4) ),
    inference(spm,[status(thm)],[c_0_52,c_0_53]) ).

cnf(c_0_60,plain,
    s(s2,s1,truck1,s1,s0,s0),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_54,c_0_55]),c_0_56])]) ).

cnf(c_0_61,plain,
    ( ~ path(X4,X7)
    | ~ s(X1,X2,X3,X4,X5,X6)
    | s(X1,X2,X3,X7,X5,X6) ),
    c_0_57 ).

cnf(c_0_62,axiom,
    path(s1,p2_1),
    map11 ).

cnf(c_0_63,plain,
    ( ~ s(X1,X2,truck1,X4,X3,X5)
    | s(X1,X2,X3,X4,X3,X5) ),
    c_0_58 ).

cnf(c_0_64,plain,
    s(s2,s1,truck1,s1,s2,s0),
    inference(spm,[status(thm)],[c_0_59,c_0_60]) ).

cnf(c_0_65,axiom,
    path(p2_1,s2),
    map10 ).

cnf(c_0_66,plain,
    ( ~ s(X1,X2,X3,s1,X4,X5)
    | s(X1,X2,X3,p2_1,X4,X5) ),
    inference(spm,[status(thm)],[c_0_61,c_0_62]) ).

cnf(c_0_67,plain,
    s(s2,s1,s2,s1,s2,s0),
    inference(spm,[status(thm)],[c_0_63,c_0_64]) ).

cnf(c_0_68,negated_conjecture,
    ~ s(s2,s1,s2,s2,s2,s0),
    inference(fof_simplification,[status(thm)],[goal]) ).

cnf(c_0_69,plain,
    ( ~ s(X1,X2,X3,p2_1,X4,X5)
    | s(X1,X2,X3,s2,X4,X5) ),
    inference(spm,[status(thm)],[c_0_61,c_0_65]) ).

cnf(c_0_70,plain,
    s(s2,s1,s2,p2_1,s2,s0),
    inference(spm,[status(thm)],[c_0_66,c_0_67]) ).

cnf(c_0_71,negated_conjecture,
    ~ s(s2,s1,s2,s2,s2,s0),
    c_0_68 ).

cnf(c_0_72,plain,
    $false,
    inference(sr,[status(thm)],[inference(spm,[status(thm)],[c_0_69,c_0_70]),c_0_71]),
    [proof] ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03  % Problem  : PLA031-1.001 : TPTP v9.3.1. Released v3.5.0.
% 0.00/0.06  % Command  : run_E /export/starexec/sandbox/benchmark/theBenchmark.p 300 THM
% 0.14/0.40  % Computer : n011.cluster.edu
% 0.14/0.40  % Model    : x86_64 x86_64
% 0.14/0.40  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.14/0.40  % Memory   : 8046.5625MB
% 0.14/0.40  % OS       : Linux 6.8.0-71-generic
% 0.14/0.40  % CPULimit : 300
% 0.14/0.40  % WCLimit  : 300
% 0.14/0.40  % DateTime : Mon Sep 21 03:33:40 UTC 2026
% 0.14/0.41  % CPUTime  : 
% 0.14/0.41  Running run_E /export/starexec/sandbox/benchmark/theBenchmark.p 300 THM
% 0.20/0.48  Running first-order theorem proving
% 0.20/0.49  Running: /export/starexec/sandbox/solver/bin/eprover --delete-bad-limit=2000000000 --definitional-cnf=24 -s --print-statistics -R --print-version --proof-object --auto-schedule=8 --cpu-limit=300 /export/starexec/sandbox/benchmark/theBenchmark.p
% 1.96/0.81  % Version: 3.5.1
% 1.96/0.81  % Preprocessing class: FSLSSMSMSSSNFFN.
% 1.96/0.81  % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 1.96/0.81  % Starting C07_19_nc_SOS_SAT001_MinMin_p005000_rr with 1500s (5) cores
% 1.96/0.81  % Starting new_bool_3 with 300s (1) cores
% 1.96/0.81  % Starting new_bool_1 with 300s (1) cores
% 1.96/0.81  % Starting sh5l with 300s (1) cores
% 1.96/0.81  % C07_19_nc_SOS_SAT001_MinMin_p005000_rr with pid 881751 completed with status 0
% 1.96/0.81  % Result found by C07_19_nc_SOS_SAT001_MinMin_p005000_rr
% 1.96/0.81  % Preprocessing class: FSLSSMSMSSSNFFN.
% 1.96/0.81  % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 1.96/0.81  % Starting C07_19_nc_SOS_SAT001_MinMin_p005000_rr with 1500s (5) cores
% 1.96/0.81  % (lift_lambdas = 1, lambda_to_forall = 1,unroll_only_formulas = 1, sine = Auto)
% 1.96/0.81  % No SInE strategy applied
% 1.96/0.81  % Search class: FHUNF-FFMM00-SFFFFFNN
% 1.96/0.81  % Scheduled 7 strats onto 5 cores with 1500 seconds (1500 total)
% 1.96/0.81  % Starting SubtermCWHack with 136s (1) cores
% 1.96/0.81  % Starting C07_19_nc_SOS_SAT001_MinMin_p005000_rr with 151s (1) cores
% 1.96/0.81  % Starting G-E--_208_C18_F1_SE_CS_SP_PS_S5PRR_S4d with 136s (1) cores
% 1.96/0.81  % Starting new_bool_3 with 136s (1) cores
% 1.96/0.81  % Starting new_bool_1 with 136s (1) cores
% 1.96/0.81  % G-E--_208_C18_F1_SE_CS_SP_PS_S5PRR_S4d with pid 881759 completed with status 0
% 1.96/0.81  % Result found by G-E--_208_C18_F1_SE_CS_SP_PS_S5PRR_S4d
% 1.96/0.81  % Preprocessing class: FSLSSMSMSSSNFFN.
% 1.96/0.81  % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 1.96/0.81  % Starting C07_19_nc_SOS_SAT001_MinMin_p005000_rr with 1500s (5) cores
% 1.96/0.81  % (lift_lambdas = 1, lambda_to_forall = 1,unroll_only_formulas = 1, sine = Auto)
% 1.96/0.81  % No SInE strategy applied
% 1.96/0.81  % Search class: FHUNF-FFMM00-SFFFFFNN
% 1.96/0.81  % Scheduled 7 strats onto 5 cores with 1500 seconds (1500 total)
% 1.96/0.81  % Starting SubtermCWHack with 136s (1) cores
% 1.96/0.81  % Starting C07_19_nc_SOS_SAT001_MinMin_p005000_rr with 151s (1) cores
% 1.96/0.81  % Starting G-E--_208_C18_F1_SE_CS_SP_PS_S5PRR_S4d with 136s (1) cores
% 1.96/0.81  % Preprocessing time       : 0.003 s
% 1.96/0.81  % Presaturation interreduction done
% 1.96/0.81  
% 1.96/0.81  % Proof found!
% 1.96/0.81  % SZS status Unsatisfiable
% 1.96/0.81  % SZS output start CNFRefutation
% See solution above
% 1.96/0.81  % Parsed axioms                        : 106
% 1.96/0.81  % Removed by relevancy pruning/SinE    : 0
% 1.96/0.81  % Initial clauses                      : 106
% 1.96/0.81  % Removed in clause preprocessing      : 0
% 1.96/0.81  % Initial clauses in saturation        : 106
% 1.96/0.81  % Processed clauses                    : 2867
% 1.96/0.81  % ...of these trivial                  : 936
% 1.96/0.81  % ...subsumed                          : 129
% 1.96/0.81  % ...remaining for further processing  : 1802
% 1.96/0.81  % Other redundant clauses eliminated   : 0
% 1.96/0.81  % Clauses deleted for lack of memory   : 0
% 1.96/0.81  % Backward-subsumed                    : 0
% 1.96/0.81  % Backward-rewritten                   : 0
% 1.96/0.81  % Generated clauses                    : 10469
% 1.96/0.81  % ...of the previous two non-redundant : 7541
% 1.96/0.81  % ...aggressively subsumed             : 0
% 1.96/0.81  % Contextual simplify-reflections      : 0
% 1.96/0.81  % Paramodulations                      : 10469
% 1.96/0.81  % Factorizations                       : 0
% 1.96/0.81  % NegExts                              : 0
% 1.96/0.81  % Equation resolutions                 : 0
% 1.96/0.81  % Disequality decompositions           : 0
% 1.96/0.81  % Total rewrite steps                  : 5053
% 1.96/0.81  % ...of those cached                   : 3776
% 1.96/0.81  % Propositional unsat checks           : 0
% 1.96/0.81  %    Propositional check models        : 0
% 1.96/0.81  %    Propositional check unsatisfiable : 0
% 1.96/0.81  %    Propositional clauses             : 0
% 1.96/0.81  %    Propositional clauses after purity: 0
% 1.96/0.81  %    Propositional unsat core size     : 0
% 1.96/0.81  %    Propositional preprocessing time  : 0.000
% 1.96/0.81  %    Propositional encoding time       : 0.000
% 1.96/0.81  %    Propositional solver time         : 0.000
% 1.96/0.81  %    Success case prop preproc time    : 0.000
% 1.96/0.81  %    Success case prop encoding time   : 0.000
% 1.96/0.81  %    Success case prop solver time     : 0.000
% 1.96/0.81  % Current number of processed clauses  : 1696
% 1.96/0.81  %    Positive orientable unit clauses  : 1617
% 1.96/0.81  %    Positive unorientable unit clauses: 0
% 1.96/0.81  %    Negative unit clauses             : 9
% 1.96/0.81  %    Non-unit-clauses                  : 70
% 1.96/0.81  % Current number of unprocessed clauses: 4882
% 1.96/0.81  % ...number of literals in the above   : 4882
% 1.96/0.81  % Current number of archived formulas  : 0
% 1.96/0.81  % Current number of archived clauses   : 106
% 1.96/0.81  % Clause-clause subsumption calls (NU) : 1044
% 1.96/0.81  % Rec. Clause-clause subsumption calls : 1044
% 1.96/0.81  % Non-unit clause-clause subsumptions  : 0
% 1.96/0.81  % Unit Clause-clause subsumption calls : 2
% 1.96/0.81  % Rewrite failures with RHS unbound    : 0
% 1.96/0.81  % BW rewrite match attempts            : 177947
% 1.96/0.81  % BW rewrite match successes           : 0
% 1.96/0.81  % Condensation attempts                : 0
% 1.96/0.81  % Condensation successes               : 0
% 1.96/0.81  % Termbank termtop insertions          : 112117
% 1.96/0.81  % Search garbage collected termcells   : 90
% 1.96/0.81  
% 1.96/0.81  % -------------------------------------------------
% 1.96/0.81  % User time                : 0.264 s
% 1.96/0.81  % System time              : 0.016 s
% 1.96/0.81  % Total time               : 0.280 s
% 1.96/0.81  % Maximum resident set size: 3432 pages
% 1.96/0.81  
% 1.96/0.81  % -------------------------------------------------
% 1.96/0.81  % User time                : 1.283 s
% 1.96/0.81  % System time              : 0.090 s
% 1.96/0.81  % Total time               : 1.373 s
% 1.96/0.81  % Maximum resident set size: 4864 pages
% 1.96/0.81  % E exiting
%------------------------------------------------------------------------------