%------------------------------------------------------------------------------
% File : ConnectPP---0.7.2
% Problem : SEU189+1 : TPTP v9.3.1. Released v3.3.0.
% Transfm : none
% Format : tptp:raw
% Command : /export/starexec/sandbox/solver/bin/connect++ --verbosity 1 --no-colour --tptp-proof --schedule default --timeout 300 /export/starexec/sandbox/benchmark/theBenchmark.p
% Computer : n004.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 08:58:24 AM UTC 2026
% Result : Theorem 0.13s 5.49s
% Output : Proof 0.13s
% Verified :
% SZS Type : ERROR: Analysing output (MakeTreeStats fails)
% Comments :
%------------------------------------------------------------------------------
fof(existence_m1_subset_1,axiom,
! [A] :
? [B] : element(B,A),
file('theBenchmark.p',existence_m1_subset_1) ).
fof(dt_m1_subset_1,axiom,
$true,
file('theBenchmark.p',dt_m1_subset_1) ).
fof(t2_subset,axiom,
! [A,B] :
( element(A,B)
=> ( in(A,B)
| empty(B) ) ),
file('theBenchmark.p',t2_subset) ).
fof(antisymmetry_r2_hidden,axiom,
! [A,B] :
( in(A,B)
=> ~ in(B,A) ),
file('theBenchmark.p',antisymmetry_r2_hidden) ).
fof(t1_subset,axiom,
! [A,B] :
( in(A,B)
=> element(A,B) ),
file('theBenchmark.p',t1_subset) ).
fof(rc1_relat_1,axiom,
? [A] :
( relation(A)
& empty(A) ),
file('theBenchmark.p',rc1_relat_1) ).
fof(cc1_relat_1,axiom,
! [A] :
( empty(A)
=> relation(A) ),
file('theBenchmark.p',cc1_relat_1) ).
fof(rc2_relat_1,axiom,
? [A] :
( relation(A)
& ~ empty(A) ),
file('theBenchmark.p',rc2_relat_1) ).
fof(fc5_relat_1,axiom,
! [A] :
( ( relation(A)
& ~ empty(A) )
=> ~ empty(relation_dom(A)) ),
file('theBenchmark.p',fc5_relat_1) ).
fof(fc6_relat_1,axiom,
! [A] :
( ( relation(A)
& ~ empty(A) )
=> ~ empty(relation_rng(A)) ),
file('theBenchmark.p',fc6_relat_1) ).
fof(fc7_relat_1,axiom,
! [A] :
( empty(A)
=> ( relation(relation_dom(A))
& empty(relation_dom(A)) ) ),
file('theBenchmark.p',fc7_relat_1) ).
fof(fc8_relat_1,axiom,
! [A] :
( empty(A)
=> ( relation(relation_rng(A))
& empty(relation_rng(A)) ) ),
file('theBenchmark.p',fc8_relat_1) ).
fof(rc1_xboole_0,axiom,
? [A] : empty(A),
file('theBenchmark.p',rc1_xboole_0) ).
fof(rc2_xboole_0,axiom,
? [A] : ~ empty(A),
file('theBenchmark.p',rc2_xboole_0) ).
fof(t7_boole,axiom,
! [A,B] :
~ ( empty(B)
& in(A,B) ),
file('theBenchmark.p',t7_boole) ).
fof(t8_boole,axiom,
! [A,B] :
~ ( empty(B)
& A != B
& empty(A) ),
file('theBenchmark.p',t8_boole) ).
fof(dt_k1_relat_1,axiom,
$true,
file('theBenchmark.p',dt_k1_relat_1) ).
fof(dt_k1_xboole_0,axiom,
$true,
file('theBenchmark.p',dt_k1_xboole_0) ).
fof(dt_k2_relat_1,axiom,
$true,
file('theBenchmark.p',dt_k2_relat_1) ).
fof(fc4_relat_1,axiom,
( relation(empty_set)
& empty(empty_set) ),
file('theBenchmark.p',fc4_relat_1) ).
fof(fc1_xboole_0,axiom,
empty(empty_set),
file('theBenchmark.p',fc1_xboole_0) ).
fof(t6_boole,axiom,
! [A] :
( empty(A)
=> A = empty_set ),
file('theBenchmark.p',t6_boole) ).
fof(t65_relat_1,conjecture,
! [A] :
( relation(A)
=> ( relation_dom(A) = empty_set
<=> relation_rng(A) = empty_set ) ),
file('theBenchmark.p',t65_relat_1) ).
fof(t60_relat_1,axiom,
( relation_rng(empty_set) = empty_set
& relation_dom(empty_set) = empty_set ),
file('theBenchmark.p',t60_relat_1) ).
fof(t64_relat_1,axiom,
! [A] :
( relation(A)
=> ( ( relation_rng(A) = empty_set
| relation_dom(A) = empty_set )
=> A = empty_set ) ),
file('theBenchmark.p',t64_relat_1) ).
fof(f_1_1,plain,
! [A] :
? [B] : element(B,A),
inference(fof_nnf,[status(thm)],[existence_m1_subset_1]) ).
fof(f_1_2,plain,
! [U_1] :
? [U_0] : element(U_0,U_1),
inference(variable_rename,[status(thm)],[f_1_1]) ).
fof(f_1_3,plain,
! [U_1] : element(sK1(U_1),U_1),
inference(skolemize,[status(esa),new_symbols(skolem,[sK1]),skolemize(U_0,sK1(U_1))],[f_1_2]) ).
cnf(f_1_4,plain,
element(sK1(U_1),U_1),
inference(clausify,[status(thm)],[f_1_3]) ).
fof(f_2_1,plain,
$true,
inference(fof_nnf,[status(thm)],[dt_m1_subset_1]) ).
cnf(f_2_2,plain,
$true,
inference(clausify,[status(thm)],[f_2_1]) ).
fof(f_3_1,plain,
! [A,B] :
( in(A,B)
| empty(B)
| ~ element(A,B) ),
inference(fof_nnf,[status(thm)],[t2_subset]) ).
fof(f_3_2,plain,
! [U_3,U_2] :
( in(U_3,U_2)
| empty(U_2)
| ~ element(U_3,U_2) ),
inference(variable_rename,[status(thm)],[f_3_1]) ).
cnf(f_3_3,plain,
( in(U_3,U_2)
| empty(U_2)
| ~ element(U_3,U_2) ),
inference(clausify,[status(thm)],[f_3_2]) ).
fof(f_4_1,plain,
! [A,B] :
( ~ in(B,A)
| ~ in(A,B) ),
inference(fof_nnf,[status(thm)],[antisymmetry_r2_hidden]) ).
fof(f_4_2,plain,
! [U_5,U_4] :
( ~ in(U_4,U_5)
| ~ in(U_5,U_4) ),
inference(variable_rename,[status(thm)],[f_4_1]) ).
cnf(f_4_3,plain,
( ~ in(U_4,U_5)
| ~ in(U_5,U_4) ),
inference(clausify,[status(thm)],[f_4_2]) ).
fof(f_5_1,plain,
! [A,B] :
( element(A,B)
| ~ in(A,B) ),
inference(fof_nnf,[status(thm)],[t1_subset]) ).
fof(f_5_2,plain,
! [U_7,U_6] :
( element(U_7,U_6)
| ~ in(U_7,U_6) ),
inference(variable_rename,[status(thm)],[f_5_1]) ).
cnf(f_5_3,plain,
( element(U_7,U_6)
| ~ in(U_7,U_6) ),
inference(clausify,[status(thm)],[f_5_2]) ).
fof(f_6_1,plain,
? [A] :
( relation(A)
& empty(A) ),
inference(fof_nnf,[status(thm)],[rc1_relat_1]) ).
fof(f_6_2,plain,
? [U_8] :
( relation(U_8)
& empty(U_8) ),
inference(variable_rename,[status(thm)],[f_6_1]) ).
fof(f_6_3,plain,
( relation(sK2)
& empty(sK2) ),
inference(skolemize,[status(esa),new_symbols(skolem,[sK2]),skolemize(U_8,sK2)],[f_6_2]) ).
cnf(f_6_4,plain,
empty(sK2),
inference(clausify,[status(thm)],[f_6_3]) ).
cnf(f_6_5,plain,
relation(sK2),
inference(clausify,[status(thm)],[f_6_3]) ).
fof(f_7_1,plain,
! [A] :
( relation(A)
| ~ empty(A) ),
inference(fof_nnf,[status(thm)],[cc1_relat_1]) ).
fof(f_7_2,plain,
! [U_9] :
( relation(U_9)
| ~ empty(U_9) ),
inference(variable_rename,[status(thm)],[f_7_1]) ).
cnf(f_7_3,plain,
( relation(U_9)
| ~ empty(U_9) ),
inference(clausify,[status(thm)],[f_7_2]) ).
fof(f_8_1,plain,
? [A] :
( relation(A)
& ~ empty(A) ),
inference(fof_nnf,[status(thm)],[rc2_relat_1]) ).
fof(f_8_2,plain,
? [U_10] :
( relation(U_10)
& ~ empty(U_10) ),
inference(variable_rename,[status(thm)],[f_8_1]) ).
fof(f_8_3,plain,
( relation(sK3)
& ~ empty(sK3) ),
inference(skolemize,[status(esa),new_symbols(skolem,[sK3]),skolemize(U_10,sK3)],[f_8_2]) ).
cnf(f_8_4,plain,
~ empty(sK3),
inference(clausify,[status(thm)],[f_8_3]) ).
cnf(f_8_5,plain,
relation(sK3),
inference(clausify,[status(thm)],[f_8_3]) ).
fof(f_9_1,plain,
! [A] :
( ~ empty(relation_dom(A))
| ~ relation(A)
| empty(A) ),
inference(fof_nnf,[status(thm)],[fc5_relat_1]) ).
fof(f_9_2,plain,
! [U_11] :
( ~ empty(relation_dom(U_11))
| ~ relation(U_11)
| empty(U_11) ),
inference(variable_rename,[status(thm)],[f_9_1]) ).
cnf(f_9_3,plain,
( ~ empty(relation_dom(U_11))
| ~ relation(U_11)
| empty(U_11) ),
inference(clausify,[status(thm)],[f_9_2]) ).
fof(f_10_1,plain,
! [A] :
( ~ empty(relation_rng(A))
| ~ relation(A)
| empty(A) ),
inference(fof_nnf,[status(thm)],[fc6_relat_1]) ).
fof(f_10_2,plain,
! [U_12] :
( ~ empty(relation_rng(U_12))
| ~ relation(U_12)
| empty(U_12) ),
inference(variable_rename,[status(thm)],[f_10_1]) ).
cnf(f_10_3,plain,
( ~ empty(relation_rng(U_12))
| ~ relation(U_12)
| empty(U_12) ),
inference(clausify,[status(thm)],[f_10_2]) ).
fof(f_11_1,plain,
! [A] :
( ( relation(relation_dom(A))
& empty(relation_dom(A)) )
| ~ empty(A) ),
inference(fof_nnf,[status(thm)],[fc7_relat_1]) ).
fof(f_11_2,plain,
! [U_13] :
( ( relation(relation_dom(U_13))
& empty(relation_dom(U_13)) )
| ~ empty(U_13) ),
inference(variable_rename,[status(thm)],[f_11_1]) ).
cnf(f_11_3,plain,
( empty(relation_dom(U_13))
| ~ empty(U_13) ),
inference(clausify,[status(thm)],[f_11_2]) ).
cnf(f_11_4,plain,
( relation(relation_dom(U_13))
| ~ empty(U_13) ),
inference(clausify,[status(thm)],[f_11_2]) ).
fof(f_12_1,plain,
! [A] :
( ( relation(relation_rng(A))
& empty(relation_rng(A)) )
| ~ empty(A) ),
inference(fof_nnf,[status(thm)],[fc8_relat_1]) ).
fof(f_12_2,plain,
! [U_14] :
( ( relation(relation_rng(U_14))
& empty(relation_rng(U_14)) )
| ~ empty(U_14) ),
inference(variable_rename,[status(thm)],[f_12_1]) ).
cnf(f_12_3,plain,
( empty(relation_rng(U_14))
| ~ empty(U_14) ),
inference(clausify,[status(thm)],[f_12_2]) ).
cnf(f_12_4,plain,
( relation(relation_rng(U_14))
| ~ empty(U_14) ),
inference(clausify,[status(thm)],[f_12_2]) ).
fof(f_13_1,plain,
? [A] : empty(A),
inference(fof_nnf,[status(thm)],[rc1_xboole_0]) ).
fof(f_13_2,plain,
? [U_15] : empty(U_15),
inference(variable_rename,[status(thm)],[f_13_1]) ).
fof(f_13_3,plain,
empty(sK4),
inference(skolemize,[status(esa),new_symbols(skolem,[sK4]),skolemize(U_15,sK4)],[f_13_2]) ).
cnf(f_13_4,plain,
empty(sK4),
inference(clausify,[status(thm)],[f_13_3]) ).
fof(f_14_1,plain,
? [A] : ~ empty(A),
inference(fof_nnf,[status(thm)],[rc2_xboole_0]) ).
fof(f_14_2,plain,
? [U_16] : ~ empty(U_16),
inference(variable_rename,[status(thm)],[f_14_1]) ).
fof(f_14_3,plain,
~ empty(sK5),
inference(skolemize,[status(esa),new_symbols(skolem,[sK5]),skolemize(U_16,sK5)],[f_14_2]) ).
cnf(f_14_4,plain,
~ empty(sK5),
inference(clausify,[status(thm)],[f_14_3]) ).
fof(f_15_1,plain,
! [A,B] :
( ~ empty(B)
| ~ in(A,B) ),
inference(fof_nnf,[status(thm)],[t7_boole]) ).
fof(f_15_2,plain,
! [U_18,U_17] :
( ~ empty(U_17)
| ~ in(U_18,U_17) ),
inference(variable_rename,[status(thm)],[f_15_1]) ).
cnf(f_15_3,plain,
( ~ empty(U_17)
| ~ in(U_18,U_17) ),
inference(clausify,[status(thm)],[f_15_2]) ).
fof(f_16_1,plain,
! [A,B] :
( ~ empty(B)
| A = B
| ~ empty(A) ),
inference(fof_nnf,[status(thm)],[t8_boole]) ).
fof(f_16_2,plain,
! [U_20,U_19] :
( ~ empty(U_19)
| U_20 = U_19
| ~ empty(U_20) ),
inference(variable_rename,[status(thm)],[f_16_1]) ).
fof(f_16_3,plain,
! [U_20] :
( ! [U_19] :
( ~ empty(U_19)
| U_20 = U_19 )
| ~ empty(U_20) ),
inference(miniscope,[status(thm)],[f_16_2]) ).
cnf(f_16_4,plain,
( ~ empty(U_19)
| U_20 = U_19
| ~ empty(U_20) ),
inference(clausify,[status(thm)],[f_16_3]) ).
fof(f_17_1,plain,
$true,
inference(fof_nnf,[status(thm)],[dt_k1_relat_1]) ).
cnf(f_17_2,plain,
$true,
inference(clausify,[status(thm)],[f_17_1]) ).
fof(f_18_1,plain,
$true,
inference(fof_nnf,[status(thm)],[dt_k1_xboole_0]) ).
cnf(f_18_2,plain,
$true,
inference(clausify,[status(thm)],[f_18_1]) ).
fof(f_19_1,plain,
$true,
inference(fof_nnf,[status(thm)],[dt_k2_relat_1]) ).
cnf(f_19_2,plain,
$true,
inference(clausify,[status(thm)],[f_19_1]) ).
fof(f_20_1,plain,
( relation(empty_set)
& empty(empty_set) ),
inference(fof_nnf,[status(thm)],[fc4_relat_1]) ).
cnf(f_20_2,plain,
empty(empty_set),
inference(clausify,[status(thm)],[f_20_1]) ).
cnf(f_20_3,plain,
relation(empty_set),
inference(clausify,[status(thm)],[f_20_1]) ).
fof(f_21_1,plain,
empty(empty_set),
inference(fof_nnf,[status(thm)],[fc1_xboole_0]) ).
cnf(f_21_2,plain,
empty(empty_set),
inference(clausify,[status(thm)],[f_21_1]) ).
fof(f_22_1,plain,
! [A] :
( A = empty_set
| ~ empty(A) ),
inference(fof_nnf,[status(thm)],[t6_boole]) ).
fof(f_22_2,plain,
! [U_21] :
( U_21 = empty_set
| ~ empty(U_21) ),
inference(variable_rename,[status(thm)],[f_22_1]) ).
cnf(f_22_3,plain,
( U_21 = empty_set
| ~ empty(U_21) ),
inference(clausify,[status(thm)],[f_22_2]) ).
fof(f_23_1,negated_conjecture,
~ ! [A] :
( relation(A)
=> ( relation_dom(A) = empty_set
<=> relation_rng(A) = empty_set ) ),
inference(negate,[status(cth)],[t65_relat_1]) ).
fof(f_23_2,negated_conjecture,
? [A] :
( ( ( relation_dom(A) != empty_set
& relation_rng(A) = empty_set )
| ( relation_rng(A) != empty_set
& relation_dom(A) = empty_set ) )
& relation(A) ),
inference(fof_nnf,[status(thm)],[f_23_1]) ).
fof(f_23_3,negated_conjecture,
? [U_22] :
( ( ( relation_dom(U_22) != empty_set
& relation_rng(U_22) = empty_set )
| ( relation_rng(U_22) != empty_set
& relation_dom(U_22) = empty_set ) )
& relation(U_22) ),
inference(variable_rename,[status(thm)],[f_23_2]) ).
fof(f_23_4,negated_conjecture,
( ( ( relation_dom(sK6) != empty_set
& relation_rng(sK6) = empty_set )
| ( relation_rng(sK6) != empty_set
& relation_dom(sK6) = empty_set ) )
& relation(sK6) ),
inference(skolemize,[status(esa),new_symbols(skolem,[sK6]),skolemize(U_22,sK6)],[f_23_3]) ).
fof(f_23_5,negated_conjecture,
( ( relation_dom(sK6) != empty_set
| ~ sP1 )
& ( relation_rng(sK6) = empty_set
| ~ sP1 )
& ( relation_rng(sK6) != empty_set
| ~ sP0 )
& ( relation_dom(sK6) = empty_set
| ~ sP0 )
& ( sP1
| sP0 )
& relation(sK6) ),
inference(definitional_conversion,[status(esa),new_symbols(definitional,[sP0,sP1])],[f_23_4]) ).
cnf(f_23_6,negated_conjecture,
relation(sK6),
inference(clausify,[status(thm)],[f_23_5]) ).
cnf(f_23_7,negated_conjecture,
( sP1
| sP0 ),
inference(clausify,[status(thm)],[f_23_5]) ).
cnf(f_23_8,negated_conjecture,
( relation_dom(sK6) = empty_set
| ~ sP0 ),
inference(clausify,[status(thm)],[f_23_5]) ).
cnf(f_23_9,negated_conjecture,
( relation_rng(sK6) != empty_set
| ~ sP0 ),
inference(clausify,[status(thm)],[f_23_5]) ).
cnf(f_23_10,negated_conjecture,
( relation_rng(sK6) = empty_set
| ~ sP1 ),
inference(clausify,[status(thm)],[f_23_5]) ).
cnf(f_23_11,negated_conjecture,
( relation_dom(sK6) != empty_set
| ~ sP1 ),
inference(clausify,[status(thm)],[f_23_5]) ).
fof(f_24_1,plain,
( relation_rng(empty_set) = empty_set
& relation_dom(empty_set) = empty_set ),
inference(fof_nnf,[status(thm)],[t60_relat_1]) ).
cnf(f_24_2,plain,
relation_dom(empty_set) = empty_set,
inference(clausify,[status(thm)],[f_24_1]) ).
cnf(f_24_3,plain,
relation_rng(empty_set) = empty_set,
inference(clausify,[status(thm)],[f_24_1]) ).
fof(f_25_1,plain,
! [A] :
( A = empty_set
| ( relation_rng(A) != empty_set
& relation_dom(A) != empty_set )
| ~ relation(A) ),
inference(fof_nnf,[status(thm)],[t64_relat_1]) ).
fof(f_25_2,plain,
! [U_23] :
( U_23 = empty_set
| ( relation_rng(U_23) != empty_set
& relation_dom(U_23) != empty_set )
| ~ relation(U_23) ),
inference(variable_rename,[status(thm)],[f_25_1]) ).
cnf(f_25_3,plain,
( relation_dom(U_23) != empty_set
| U_23 = empty_set
| ~ relation(U_23) ),
inference(clausify,[status(thm)],[f_25_2]) ).
cnf(f_25_4,plain,
( relation_rng(U_23) != empty_set
| U_23 = empty_set
| ~ relation(U_23) ),
inference(clausify,[status(thm)],[f_25_2]) ).
cnf(f_2_2_true,plain,
$true,
inference(clause_is_true,[status(thm)],[f_2_2]) ).
cnf(f_17_2_true,plain,
$true,
inference(clause_is_true,[status(thm)],[f_17_2]) ).
cnf(f_18_2_true,plain,
$true,
inference(clause_is_true,[status(thm)],[f_18_2]) ).
cnf(f_19_2_true,plain,
$true,
inference(clause_is_true,[status(thm)],[f_19_2]) ).
cnf(equality_1,axiom,
Eq_x_0 = Eq_x_0,
theory(equality,[reflexivity]) ).
cnf(equality_2,axiom,
( Eq_x_1 = Eq_x_0
| Eq_x_0 != Eq_x_1 ),
theory(equality,[symmetry]) ).
cnf(equality_3,axiom,
( Eq_x_0 = Eq_x_2
| Eq_x_1 != Eq_x_2
| Eq_x_0 != Eq_x_1 ),
theory(equality,[transitivity]) ).
cnf(equality_4,axiom,
( relation_dom(Eq_x_0) = relation_dom(Eq_y_0)
| Eq_x_0 != Eq_y_0 ),
theory(equality,[substitution_functions]) ).
cnf(equality_5,axiom,
( relation_rng(Eq_x_0) = relation_rng(Eq_y_0)
| Eq_x_0 != Eq_y_0 ),
theory(equality,[substitution_functions]) ).
cnf(equality_6,axiom,
( sK1(Eq_x_0) = sK1(Eq_y_0)
| Eq_x_0 != Eq_y_0 ),
theory(equality,[substitution_functions]) ).
cnf(equality_7,axiom,
( element(Eq_y_0,Eq_y_1)
| ~ element(Eq_x_0,Eq_x_1)
| Eq_x_1 != Eq_y_1
| Eq_x_0 != Eq_y_0 ),
theory(equality,[substitution_predicates]) ).
cnf(equality_8,axiom,
( empty(Eq_y_0)
| ~ empty(Eq_x_0)
| Eq_x_0 != Eq_y_0 ),
theory(equality,[substitution_predicates]) ).
cnf(equality_9,axiom,
( in(Eq_y_0,Eq_y_1)
| ~ in(Eq_x_0,Eq_x_1)
| Eq_x_1 != Eq_y_1
| Eq_x_0 != Eq_y_0 ),
theory(equality,[substitution_predicates]) ).
cnf(equality_10,axiom,
( relation(Eq_y_0)
| ~ relation(Eq_x_0)
| Eq_x_0 != Eq_y_0 ),
theory(equality,[substitution_predicates]) ).
cnf(sat_proved,plain,
$false,
inference(cadical,[status(thm)],[]) ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.02 % Problem : SEU189+1 : TPTP v9.3.1. Released v3.3.0.
% 0.00/0.03 This is a FOF_THM_RFO_SEQ problem
% 0.00/0.03 % Command : /export/starexec/sandbox/solver/bin/connect++ --verbosity 1 --no-colour --tptp-proof --schedule default --timeout 300 /export/starexec/sandbox/benchmark/theBenchmark.p
% 0.09/5.36 % Computer : n004.cluster.edu
% 0.09/5.36 % Model : x86_64 x86_64
% 0.09/5.36 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.09/5.36 % Memory : 8046.5625MB
% 0.09/5.36 % OS : Linux 6.8.0-71-generic
% 0.09/5.36 % CPULimit : 300
% 0.09/5.36 % WCLimit : 300
% 0.09/5.36 % DateTime : Sat Sep 19 23:28:13 UTC 2026
% 0.09/5.36 % CPUTime :
% 0.13/5.49 % SZS status Theorem for theBenchmark
% 0.13/5.49 % SZS output start Proof for theBenchmark
% See solution above
%------------------------------------------------------------------------------