TSTP Solution File: PUZ046-1 by E---3.1

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : E---3.1
% Problem  : PUZ046-1 : TPTP v8.1.2. Released v2.5.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : run_E %s %d THM

% Computer : n004.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 : 2400s
% WCLimit  : 300s
% DateTime : Tue Oct 10 19:11:47 EDT 2023

% Result   : Satisfiable 0.17s 0.46s
% Output   : Saturation 0.17s
% Verified : 
% SZS Type : ERROR: Analysing output (Could not find formula named b_up)

% Comments : 
%------------------------------------------------------------------------------
cnf(c_0_41,axiom,
    ( state(bb(X1,X2),X3,X4,X5,X6,X7,X8,X9,X10,X11,e1(s(s(X1)),X2),e2(s(s(X1)),s(X2)))
    | ~ state(bb(s(X1),X2),X3,X4,X5,X6,X7,X8,X9,X10,X11,e1(X1,X2),e2(X1,s(X2))) ),
    b_up,
    [final] ).

cnf(c_0_42,axiom,
    ( state(bb(X1,X2),X3,X4,X5,X6,X7,X8,X9,X10,X11,e1(X1,s(s(X2))),e2(s(X1),s(s(X2))))
    | ~ state(bb(X1,s(X2)),X3,X4,X5,X6,X7,X8,X9,X10,X11,e1(X1,X2),e2(s(X1),X2)) ),
    b_left,
    [final] ).

cnf(c_0_43,axiom,
    ( state(X1,v1(X2,X3),X4,X5,X6,X7,X8,X9,X10,X11,e1(X2,s(X3)),e2(s(X2),s(X3)))
    | ~ state(X1,v1(X2,s(X3)),X4,X5,X6,X7,X8,X9,X10,X11,e1(X2,X3),e2(s(X2),X3)) ),
    v1_left,
    [final] ).

cnf(c_0_44,axiom,
    ( state(X1,X2,v2(X3,X4),X5,X6,X7,X8,X9,X10,X11,e1(X3,s(X4)),e2(s(X3),s(X4)))
    | ~ state(X1,X2,v2(X3,s(X4)),X5,X6,X7,X8,X9,X10,X11,e1(X3,X4),e2(s(X3),X4)) ),
    v2_left,
    [final] ).

cnf(c_0_45,axiom,
    ( state(X1,X2,X3,v3(X4,X5),X6,X7,X8,X9,X10,X11,e1(X4,s(X5)),e2(s(X4),s(X5)))
    | ~ state(X1,X2,X3,v3(X4,s(X5)),X6,X7,X8,X9,X10,X11,e1(X4,X5),e2(s(X4),X5)) ),
    v3_left,
    [final] ).

cnf(c_0_46,axiom,
    ( state(bb(s(X1),X2),X3,X4,X5,X6,X7,X8,X9,X10,X11,e1(X1,X2),e2(X1,s(X2)))
    | ~ state(bb(X1,X2),X3,X4,X5,X6,X7,X8,X9,X10,X11,e1(s(s(X1)),X2),e2(s(s(X1)),s(X2))) ),
    b_down,
    [final] ).

cnf(c_0_47,axiom,
    ( state(bb(X1,s(X2)),X3,X4,X5,X6,X7,X8,X9,X10,X11,e1(X1,X2),e2(s(X1),X2))
    | ~ state(bb(X1,X2),X3,X4,X5,X6,X7,X8,X9,X10,X11,e1(X1,s(s(X2))),e2(s(X1),s(s(X2)))) ),
    b_right,
    [final] ).

cnf(c_0_48,axiom,
    ( state(X1,v1(X2,s(X3)),X4,X5,X6,X7,X8,X9,X10,X11,e1(X2,X3),e2(s(X2),X3))
    | ~ state(X1,v1(X2,X3),X4,X5,X6,X7,X8,X9,X10,X11,e1(X2,s(X3)),e2(s(X2),s(X3))) ),
    v1_right,
    [final] ).

cnf(c_0_49,axiom,
    ( state(X1,X2,v2(X3,s(X4)),X5,X6,X7,X8,X9,X10,X11,e1(X3,X4),e2(s(X3),X4))
    | ~ state(X1,X2,v2(X3,X4),X5,X6,X7,X8,X9,X10,X11,e1(X3,s(X4)),e2(s(X3),s(X4))) ),
    v2_right,
    [final] ).

cnf(c_0_50,axiom,
    ( state(X1,X2,X3,X4,v4(X5,X6),X7,X8,X9,X10,X11,e1(X5,s(X6)),e2(s(X5),s(X6)))
    | ~ state(X1,X2,X3,X4,v4(X5,s(X6)),X7,X8,X9,X10,X11,e1(X5,X6),e2(s(X5),X6)) ),
    v4_left,
    [final] ).

cnf(c_0_51,axiom,
    ( state(X1,X2,X3,X4,X5,h(X6,X7),X8,X9,X10,X11,e1(s(X6),X7),e2(s(X6),s(X7)))
    | ~ state(X1,X2,X3,X4,X5,h(s(X6),X7),X8,X9,X10,X11,e1(X6,X7),e2(X6,s(X7))) ),
    h_up,
    [final] ).

cnf(c_0_52,axiom,
    ( state(X1,X2,X3,v3(X4,s(X5)),X6,X7,X8,X9,X10,X11,e1(X4,X5),e2(s(X4),X5))
    | ~ state(X1,X2,X3,v3(X4,X5),X6,X7,X8,X9,X10,X11,e1(X4,s(X5)),e2(s(X4),s(X5))) ),
    v3_right,
    [final] ).

cnf(c_0_53,axiom,
    ( state(X1,X2,X3,X4,v4(X5,s(X6)),X7,X8,X9,X10,X11,e1(X5,X6),e2(s(X5),X6))
    | ~ state(X1,X2,X3,X4,v4(X5,X6),X7,X8,X9,X10,X11,e1(X5,s(X6)),e2(s(X5),s(X6))) ),
    v4_right,
    [final] ).

cnf(c_0_54,axiom,
    ( state(X1,X2,X3,X4,X5,h(s(X6),X7),X8,X9,X10,X11,e1(X6,X7),e2(X6,s(X7)))
    | ~ state(X1,X2,X3,X4,X5,h(X6,X7),X8,X9,X10,X11,e1(s(X6),X7),e2(s(X6),s(X7))) ),
    h_down,
    [final] ).

cnf(c_0_55,axiom,
    ( state(X1,v1(X2,X3),X4,X5,X6,X7,X8,X9,X10,X11,e1(s(s(X2)),X3),X12)
    | ~ state(X1,v1(s(X2),X3),X4,X5,X6,X7,X8,X9,X10,X11,e1(X2,X3),X12) ),
    v1_up,
    [final] ).

cnf(c_0_56,axiom,
    ( state(X1,X2,v2(X3,X4),X5,X6,X7,X8,X9,X10,X11,e1(s(s(X3)),X4),X12)
    | ~ state(X1,X2,v2(s(X3),X4),X5,X6,X7,X8,X9,X10,X11,e1(X3,X4),X12) ),
    v2_up,
    [final] ).

cnf(c_0_57,axiom,
    ( state(X1,X2,X3,v3(X4,X5),X6,X7,X8,X9,X10,X11,e1(s(s(X4)),X5),X12)
    | ~ state(X1,X2,X3,v3(s(X4),X5),X6,X7,X8,X9,X10,X11,e1(X4,X5),X12) ),
    v3_up,
    [final] ).

cnf(c_0_58,axiom,
    ( state(X1,X2,X3,X4,v4(X5,X6),X7,X8,X9,X10,X11,e1(s(s(X5)),X6),X12)
    | ~ state(X1,X2,X3,X4,v4(s(X5),X6),X7,X8,X9,X10,X11,e1(X5,X6),X12) ),
    v4_up,
    [final] ).

cnf(c_0_59,axiom,
    ( state(X1,X2,X3,X4,X5,h(X6,X7),X8,X9,X10,X11,e1(X6,s(s(X7))),X12)
    | ~ state(X1,X2,X3,X4,X5,h(X6,s(X7)),X8,X9,X10,X11,e1(X6,X7),X12) ),
    h_left,
    [final] ).

cnf(c_0_60,axiom,
    ( state(X1,X2,X3,X4,X5,X6,s1(s(X7),X8),X9,X10,X11,e1(X7,X8),X12)
    | ~ state(X1,X2,X3,X4,X5,X6,s1(X7,X8),X9,X10,X11,e1(s(X7),X8),X12) ),
    s1_down,
    [final] ).

cnf(c_0_61,axiom,
    ( state(X1,X2,X3,X4,X5,X6,s1(X7,s(X8)),X9,X10,X11,e1(X7,X8),X12)
    | ~ state(X1,X2,X3,X4,X5,X6,s1(X7,X8),X9,X10,X11,e1(X7,s(X8)),X12) ),
    s1_right,
    [final] ).

cnf(c_0_62,axiom,
    ( state(X1,X2,X3,X4,X5,X6,X7,s2(s(X8),X9),X10,X11,e1(X8,X9),X12)
    | ~ state(X1,X2,X3,X4,X5,X6,X7,s2(X8,X9),X10,X11,e1(s(X8),X9),X12) ),
    s2_down,
    [final] ).

cnf(c_0_63,axiom,
    ( state(X1,X2,X3,X4,X5,X6,X7,s2(X8,s(X9)),X10,X11,e1(X8,X9),X12)
    | ~ state(X1,X2,X3,X4,X5,X6,X7,s2(X8,X9),X10,X11,e1(X8,s(X9)),X12) ),
    s2_right,
    [final] ).

cnf(c_0_64,axiom,
    ( state(X1,X2,X3,X4,X5,X6,X7,X8,s3(s(X9),X10),X11,e1(X9,X10),X12)
    | ~ state(X1,X2,X3,X4,X5,X6,X7,X8,s3(X9,X10),X11,e1(s(X9),X10),X12) ),
    s3_down,
    [final] ).

cnf(c_0_65,axiom,
    ( state(X1,X2,X3,X4,X5,X6,X7,X8,s3(X9,s(X10)),X11,e1(X9,X10),X12)
    | ~ state(X1,X2,X3,X4,X5,X6,X7,X8,s3(X9,X10),X11,e1(X9,s(X10)),X12) ),
    s3_right,
    [final] ).

cnf(c_0_66,axiom,
    ( state(X1,v1(s(X2),X3),X4,X5,X6,X7,X8,X9,X10,X11,e1(X2,X3),X12)
    | ~ state(X1,v1(X2,X3),X4,X5,X6,X7,X8,X9,X10,X11,e1(s(s(X2)),X3),X12) ),
    v1_down,
    [final] ).

cnf(c_0_67,axiom,
    ( state(X1,X2,X3,X4,X5,X6,X7,X8,X9,s4(s(X10),X11),e1(X10,X11),X12)
    | ~ state(X1,X2,X3,X4,X5,X6,X7,X8,X9,s4(X10,X11),e1(s(X10),X11),X12) ),
    s4_down,
    [final] ).

cnf(c_0_68,axiom,
    ( state(X1,X2,v2(s(X3),X4),X5,X6,X7,X8,X9,X10,X11,e1(X3,X4),X12)
    | ~ state(X1,X2,v2(X3,X4),X5,X6,X7,X8,X9,X10,X11,e1(s(s(X3)),X4),X12) ),
    v2_down,
    [final] ).

cnf(c_0_69,axiom,
    ( state(X1,X2,X3,v3(s(X4),X5),X6,X7,X8,X9,X10,X11,e1(X4,X5),X12)
    | ~ state(X1,X2,X3,v3(X4,X5),X6,X7,X8,X9,X10,X11,e1(s(s(X4)),X5),X12) ),
    v3_down,
    [final] ).

cnf(c_0_70,axiom,
    ( state(X1,X2,X3,X4,v4(s(X5),X6),X7,X8,X9,X10,X11,e1(X5,X6),X12)
    | ~ state(X1,X2,X3,X4,v4(X5,X6),X7,X8,X9,X10,X11,e1(s(s(X5)),X6),X12) ),
    v4_down,
    [final] ).

cnf(c_0_71,axiom,
    ( state(X1,X2,X3,X4,X5,h(X6,s(X7)),X8,X9,X10,X11,e1(X6,X7),X12)
    | ~ state(X1,X2,X3,X4,X5,h(X6,X7),X8,X9,X10,X11,e1(X6,s(s(X7))),X12) ),
    h_right,
    [final] ).

cnf(c_0_72,axiom,
    ( state(X1,X2,X3,X4,X5,X6,X7,X8,X9,s4(X10,s(X11)),e1(X10,X11),X12)
    | ~ state(X1,X2,X3,X4,X5,X6,X7,X8,X9,s4(X10,X11),e1(X10,s(X11)),X12) ),
    s4_right,
    [final] ).

cnf(c_0_73,axiom,
    ( state(X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,e1(X13,X14),e2(X11,X12))
    | ~ state(X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,e1(X11,X12),e2(X13,X14)) ),
    swap_blanks,
    [final] ).

cnf(c_0_74,axiom,
    ( state(X1,X2,X3,X4,X5,X6,s1(X7,X8),X9,X10,X11,e1(s(X7),X8),X12)
    | ~ state(X1,X2,X3,X4,X5,X6,s1(s(X7),X8),X9,X10,X11,e1(X7,X8),X12) ),
    s1_up,
    [final] ).

cnf(c_0_75,axiom,
    ( state(X1,X2,X3,X4,X5,X6,s1(X7,X8),X9,X10,X11,e1(X7,s(X8)),X12)
    | ~ state(X1,X2,X3,X4,X5,X6,s1(X7,s(X8)),X9,X10,X11,e1(X7,X8),X12) ),
    s1_left,
    [final] ).

cnf(c_0_76,axiom,
    ( state(X1,X2,X3,X4,X5,X6,X7,s2(X8,X9),X10,X11,e1(s(X8),X9),X12)
    | ~ state(X1,X2,X3,X4,X5,X6,X7,s2(s(X8),X9),X10,X11,e1(X8,X9),X12) ),
    s2_up,
    [final] ).

cnf(c_0_77,axiom,
    ( state(X1,X2,X3,X4,X5,X6,X7,s2(X8,X9),X10,X11,e1(X8,s(X9)),X12)
    | ~ state(X1,X2,X3,X4,X5,X6,X7,s2(X8,s(X9)),X10,X11,e1(X8,X9),X12) ),
    s2_left,
    [final] ).

cnf(c_0_78,axiom,
    ( state(X1,X2,X3,X4,X5,X6,X7,X8,s3(X9,X10),X11,e1(s(X9),X10),X12)
    | ~ state(X1,X2,X3,X4,X5,X6,X7,X8,s3(s(X9),X10),X11,e1(X9,X10),X12) ),
    s3_up,
    [final] ).

cnf(c_0_79,axiom,
    ( state(X1,X2,X3,X4,X5,X6,X7,X8,s3(X9,X10),X11,e1(X9,s(X10)),X12)
    | ~ state(X1,X2,X3,X4,X5,X6,X7,X8,s3(X9,s(X10)),X11,e1(X9,X10),X12) ),
    s3_left,
    [final] ).

cnf(c_0_80,axiom,
    ( state(X1,X2,X3,X4,X5,X6,X7,X8,X9,s4(X10,X11),e1(s(X10),X11),X12)
    | ~ state(X1,X2,X3,X4,X5,X6,X7,X8,X9,s4(s(X10),X11),e1(X10,X11),X12) ),
    s4_up,
    [final] ).

cnf(c_0_81,axiom,
    ( state(X1,X2,X3,X4,X5,X6,X7,X8,X9,s4(X10,X11),e1(X10,s(X11)),X12)
    | ~ state(X1,X2,X3,X4,X5,X6,X7,X8,X9,s4(X10,s(X11)),e1(X10,X11),X12) ),
    s4_left,
    [final] ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.06/0.12  % Problem    : PUZ046-1 : TPTP v8.1.2. Released v2.5.0.
% 0.06/0.12  % Command    : run_E %s %d THM
% 0.11/0.33  % Computer : n004.cluster.edu
% 0.11/0.33  % Model    : x86_64 x86_64
% 0.11/0.33  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.11/0.33  % Memory   : 8042.1875MB
% 0.11/0.33  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.11/0.33  % CPULimit   : 2400
% 0.11/0.33  % WCLimit    : 300
% 0.11/0.33  % DateTime   : Mon Oct  2 18:50:45 EDT 2023
% 0.17/0.33  % CPUTime    : 
% 0.17/0.44  Running first-order theorem proving
% 0.17/0.44  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/tmp/tmp.KVXbB6XhTA/E---3.1_18804.p
% 0.17/0.46  # Version: 3.1pre001
% 0.17/0.46  # Preprocessing class: FSLSSMSSSSSNFFN.
% 0.17/0.46  # Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.17/0.46  # Starting G-E--_207_C18_F1_SE_CS_SP_PI_PS_S5PRR_S2S with 1500s (5) cores
% 0.17/0.46  # Starting new_bool_3 with 300s (1) cores
% 0.17/0.46  # Starting new_bool_1 with 300s (1) cores
% 0.17/0.46  # Starting sh5l with 300s (1) cores
% 0.17/0.46  # G-E--_207_C18_F1_SE_CS_SP_PI_PS_S5PRR_S2S with pid 18888 completed with status 1
% 0.17/0.46  # Result found by G-E--_207_C18_F1_SE_CS_SP_PI_PS_S5PRR_S2S
% 0.17/0.46  # Preprocessing class: FSLSSMSSSSSNFFN.
% 0.17/0.46  # Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.17/0.46  # Starting G-E--_207_C18_F1_SE_CS_SP_PI_PS_S5PRR_S2S with 1500s (5) cores
% 0.17/0.46  # No SInE strategy applied
% 0.17/0.46  # Search class: FHUNF-FFLF21-MFFFFFNN
% 0.17/0.46  # Scheduled 6 strats onto 5 cores with 1500 seconds (1500 total)
% 0.17/0.46  # Starting G-E--_208_C18_F1_SE_CS_SP_PS_S5PRR_S4d with 737s (1) cores
% 0.17/0.46  # Starting G-E--_207_C18_F1_SE_CS_SP_PI_PS_S5PRR_S2S with 151s (1) cores
% 0.17/0.46  # Starting new_bool_3 with 154s (1) cores
% 0.17/0.46  # Starting new_bool_1 with 154s (1) cores
% 0.17/0.46  # Starting sh5l with 154s (1) cores
% 0.17/0.46  # G-E--_208_C18_F1_SE_CS_SP_PS_S5PRR_S4d with pid 18895 completed with status 1
% 0.17/0.46  # Result found by G-E--_208_C18_F1_SE_CS_SP_PS_S5PRR_S4d
% 0.17/0.46  # Preprocessing class: FSLSSMSSSSSNFFN.
% 0.17/0.46  # Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.17/0.46  # Starting G-E--_207_C18_F1_SE_CS_SP_PI_PS_S5PRR_S2S with 1500s (5) cores
% 0.17/0.46  # No SInE strategy applied
% 0.17/0.46  # Search class: FHUNF-FFLF21-MFFFFFNN
% 0.17/0.46  # Scheduled 6 strats onto 5 cores with 1500 seconds (1500 total)
% 0.17/0.46  # Starting G-E--_208_C18_F1_SE_CS_SP_PS_S5PRR_S4d with 737s (1) cores
% 0.17/0.46  # Preprocessing time       : 0.001 s
% 0.17/0.46  # Presaturation interreduction done
% 0.17/0.46  
% 0.17/0.46  # No proof found!
% 0.17/0.46  # SZS status Satisfiable
% 0.17/0.46  # SZS output start Saturation
% See solution above
% 0.17/0.46  # Parsed axioms                        : 41
% 0.17/0.46  # Removed by relevancy pruning/SinE    : 0
% 0.17/0.46  # Initial clauses                      : 41
% 0.17/0.46  # Removed in clause preprocessing      : 0
% 0.17/0.46  # Initial clauses in saturation        : 41
% 0.17/0.46  # Processed clauses                    : 82
% 0.17/0.46  # ...of these trivial                  : 0
% 0.17/0.46  # ...subsumed                          : 0
% 0.17/0.46  # ...remaining for further processing  : 82
% 0.17/0.46  # Other redundant clauses eliminated   : 0
% 0.17/0.46  # Clauses deleted for lack of memory   : 0
% 0.17/0.46  # Backward-subsumed                    : 0
% 0.17/0.46  # Backward-rewritten                   : 0
% 0.17/0.46  # Generated clauses                    : 0
% 0.17/0.46  # ...of the previous two non-redundant : 0
% 0.17/0.46  # ...aggressively subsumed             : 0
% 0.17/0.46  # Contextual simplify-reflections      : 0
% 0.17/0.46  # Paramodulations                      : 0
% 0.17/0.46  # Factorizations                       : 0
% 0.17/0.46  # NegExts                              : 0
% 0.17/0.46  # Equation resolutions                 : 0
% 0.17/0.46  # Total rewrite steps                  : 0
% 0.17/0.46  # Propositional unsat checks           : 0
% 0.17/0.46  #    Propositional check models        : 0
% 0.17/0.46  #    Propositional check unsatisfiable : 0
% 0.17/0.46  #    Propositional clauses             : 0
% 0.17/0.46  #    Propositional clauses after purity: 0
% 0.17/0.46  #    Propositional unsat core size     : 0
% 0.17/0.46  #    Propositional preprocessing time  : 0.000
% 0.17/0.46  #    Propositional encoding time       : 0.000
% 0.17/0.46  #    Propositional solver time         : 0.000
% 0.17/0.46  #    Success case prop preproc time    : 0.000
% 0.17/0.46  #    Success case prop encoding time   : 0.000
% 0.17/0.46  #    Success case prop solver time     : 0.000
% 0.17/0.46  # Current number of processed clauses  : 41
% 0.17/0.46  #    Positive orientable unit clauses  : 0
% 0.17/0.46  #    Positive unorientable unit clauses: 0
% 0.17/0.46  #    Negative unit clauses             : 0
% 0.17/0.46  #    Non-unit-clauses                  : 41
% 0.17/0.46  # Current number of unprocessed clauses: 0
% 0.17/0.46  # ...number of literals in the above   : 0
% 0.17/0.46  # Current number of archived formulas  : 0
% 0.17/0.46  # Current number of archived clauses   : 41
% 0.17/0.46  # Clause-clause subsumption calls (NU) : 172
% 0.17/0.46  # Rec. Clause-clause subsumption calls : 172
% 0.17/0.46  # Non-unit clause-clause subsumptions  : 0
% 0.17/0.46  # Unit Clause-clause subsumption calls : 0
% 0.17/0.46  # Rewrite failures with RHS unbound    : 0
% 0.17/0.46  # BW rewrite match attempts            : 0
% 0.17/0.46  # BW rewrite match successes           : 0
% 0.17/0.46  # Condensation attempts                : 0
% 0.17/0.46  # Condensation successes               : 0
% 0.17/0.46  # Termbank termtop insertions          : 2896
% 0.17/0.46  
% 0.17/0.46  # -------------------------------------------------
% 0.17/0.46  # User time                : 0.007 s
% 0.17/0.46  # System time              : 0.002 s
% 0.17/0.46  # Total time               : 0.009 s
% 0.17/0.46  # Maximum resident set size: 1708 pages
% 0.17/0.46  
% 0.17/0.46  # -------------------------------------------------
% 0.17/0.46  # User time                : 0.038 s
% 0.17/0.46  # System time              : 0.004 s
% 0.17/0.46  # Total time               : 0.041 s
% 0.17/0.46  # Maximum resident set size: 1720 pages
% 0.17/0.46  % E---3.1 exiting
% 0.17/0.46  % E---3.1 exiting
%------------------------------------------------------------------------------