TSTP Solution File: SWV879-1 by Zipperpin---2.1.9999

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Zipperpin---2.1.9999
% Problem  : SWV879-1 : TPTP v8.1.2. Released v4.1.0.
% Transfm  : NO INFORMATION
% Format   : NO INFORMATION
% Command  : python3 /export/starexec/sandbox2/solver/bin/portfolio.lams.parallel.py %s %d /export/starexec/sandbox2/tmp/tmp.EPasJxR5yw true

% Computer : n023.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 : Fri Sep  1 00:12:23 EDT 2023

% Result   : Unsatisfiable 7.94s 1.71s
% Output   : Refutation 7.94s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.10/0.12  % Problem  : SWV879-1 : TPTP v8.1.2. Released v4.1.0.
% 0.10/0.13  % Command  : python3 /export/starexec/sandbox2/solver/bin/portfolio.lams.parallel.py %s %d /export/starexec/sandbox2/tmp/tmp.EPasJxR5yw true
% 0.12/0.34  % Computer : n023.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  : 300
% 0.12/0.34  % DateTime : Tue Aug 29 05:20:40 EDT 2023
% 0.12/0.34  % CPUTime  : 
% 0.12/0.34  % Running portfolio for 300 s
% 0.12/0.34  % File         : /export/starexec/sandbox2/benchmark/theBenchmark.p
% 0.12/0.34  % Number of cores: 8
% 0.12/0.34  % Python version: Python 3.6.8
% 0.12/0.34  % Running in FO mode
% 0.53/0.65  % Total configuration time : 435
% 0.53/0.65  % Estimated wc time : 1092
% 0.53/0.65  % Estimated cpu time (7 cpus) : 156.0
% 0.53/0.68  % /export/starexec/sandbox2/solver/bin/fo/fo6_bce.sh running for 75s
% 0.53/0.71  % /export/starexec/sandbox2/solver/bin/fo/fo3_bce.sh running for 75s
% 0.53/0.72  % /export/starexec/sandbox2/solver/bin/fo/fo1_av.sh running for 75s
% 0.53/0.74  % /export/starexec/sandbox2/solver/bin/fo/fo7.sh running for 63s
% 0.53/0.74  % /export/starexec/sandbox2/solver/bin/fo/fo13.sh running for 50s
% 0.53/0.74  % /export/starexec/sandbox2/solver/bin/fo/fo5.sh running for 50s
% 0.53/0.75  % /export/starexec/sandbox2/solver/bin/fo/fo4.sh running for 50s
% 7.94/1.71  % Solved by fo/fo4.sh.
% 7.94/1.71  % done 1336 iterations in 0.937s
% 7.94/1.71  % SZS status Theorem for '/export/starexec/sandbox2/benchmark/theBenchmark.p'
% 7.94/1.71  % SZS output start Refutation
% 7.94/1.71  thf(c_Orderings_Obot__class_Obot_type, type, c_Orderings_Obot__class_Obot: 
% 7.94/1.71      $i > $i).
% 7.94/1.71  thf(c_Set_Oinsert_type, type, c_Set_Oinsert: $i > $i > $i > $i).
% 7.94/1.71  thf(v_G_type, type, v_G: $i).
% 7.94/1.71  thf(t_a_type, type, t_a: $i).
% 7.94/1.71  thf(c_lessequals_type, type, c_lessequals: $i > $i > $i > $o).
% 7.94/1.71  thf(hBOOL_type, type, hBOOL: $i > $o).
% 7.94/1.71  thf(tc_bool_type, type, tc_bool: $i).
% 7.94/1.71  thf(v_mgt__call_type, type, v_mgt__call: $i).
% 7.94/1.71  thf(v_P_type, type, v_P: $i).
% 7.94/1.71  thf(c_Set_Oimage_type, type, c_Set_Oimage: $i > $i > $i > $i > $i).
% 7.94/1.71  thf(v_x_type, type, v_x: $i).
% 7.94/1.71  thf(tc_fun_type, type, tc_fun: $i > $i > $i).
% 7.94/1.71  thf(hAPP_type, type, hAPP: $i > $i > $i).
% 7.94/1.71  thf(c_in_type, type, c_in: $i > $i > $i > $i).
% 7.94/1.71  thf(v_U_type, type, v_U: $i).
% 7.94/1.71  thf(tc_Com_Opname_type, type, tc_Com_Opname: $i).
% 7.94/1.71  thf(cls_insert__subset_2, axiom,
% 7.94/1.71    (( c_lessequals @
% 7.94/1.71       ( c_Set_Oinsert @ V_x @ V_A @ T_a ) @ V_B @ ( tc_fun @ T_a @ tc_bool ) ) | 
% 7.94/1.71     ( ~( c_lessequals @ V_A @ V_B @ ( tc_fun @ T_a @ tc_bool ) ) ) | 
% 7.94/1.71     ( ~( hBOOL @ ( c_in @ V_x @ V_B @ T_a ) ) ))).
% 7.94/1.71  thf(zip_derived_cl83, plain,
% 7.94/1.71      (![X0 : $i, X1 : $i, X2 : $i, X3 : $i]:
% 7.94/1.71         ( (c_lessequals @ (c_Set_Oinsert @ X0 @ X1 @ X2) @ X3 @ 
% 7.94/1.71            (tc_fun @ X2 @ tc_bool))
% 7.94/1.71          | ~ (c_lessequals @ X1 @ X3 @ (tc_fun @ X2 @ tc_bool))
% 7.94/1.71          | ~ (hBOOL @ (c_in @ X0 @ X3 @ X2)))),
% 7.94/1.71      inference('cnf', [status(esa)], [cls_insert__subset_2])).
% 7.94/1.71  thf(cls_assms_I1_J_0, axiom,
% 7.94/1.71    (( hBOOL @ ( hAPP @ ( hAPP @ v_P @ V_G ) @ V_ts ) ) | 
% 7.94/1.71     ( ~( c_lessequals @ V_ts @ V_G @ ( tc_fun @ t_a @ tc_bool ) ) ))).
% 7.94/1.71  thf(zip_derived_cl79, plain,
% 7.94/1.71      (![X0 : $i, X1 : $i]:
% 7.94/1.71         ( (hBOOL @ (hAPP @ (hAPP @ v_P @ X0) @ X1))
% 7.94/1.71          | ~ (c_lessequals @ X1 @ X0 @ (tc_fun @ t_a @ tc_bool)))),
% 7.94/1.71      inference('cnf', [status(esa)], [cls_assms_I1_J_0])).
% 7.94/1.71  thf(cls_conjecture_3, conjecture,
% 7.94/1.71    (hBOOL @
% 7.94/1.71     ( hAPP @
% 7.94/1.71       ( hAPP @
% 7.94/1.71         v_P @ ( c_Set_Oimage @ v_mgt__call @ v_U @ tc_Com_Opname @ t_a ) ) @ 
% 7.94/1.71       ( c_Set_Oinsert @
% 7.94/1.71         ( hAPP @ v_mgt__call @ v_x ) @ 
% 7.94/1.71         ( c_Orderings_Obot__class_Obot @ ( tc_fun @ t_a @ tc_bool ) ) @ t_a ) ))).
% 7.94/1.71  thf(zf_stmt_0, negated_conjecture,
% 7.94/1.71    (~( hBOOL @
% 7.94/1.71        ( hAPP @
% 7.94/1.71          ( hAPP @
% 7.94/1.71            v_P @ ( c_Set_Oimage @ v_mgt__call @ v_U @ tc_Com_Opname @ t_a ) ) @ 
% 7.94/1.71          ( c_Set_Oinsert @
% 7.94/1.71            ( hAPP @ v_mgt__call @ v_x ) @ 
% 7.94/1.71            ( c_Orderings_Obot__class_Obot @ ( tc_fun @ t_a @ tc_bool ) ) @ t_a ) ) )),
% 7.94/1.71    inference('cnf.neg', [status(esa)], [cls_conjecture_3])).
% 7.94/1.71  thf(zip_derived_cl170, plain,
% 7.94/1.71      (~ (hBOOL @ 
% 7.94/1.71          (hAPP @ 
% 7.94/1.71           (hAPP @ v_P @ 
% 7.94/1.71            (c_Set_Oimage @ v_mgt__call @ v_U @ tc_Com_Opname @ t_a)) @ 
% 7.94/1.71           (c_Set_Oinsert @ (hAPP @ v_mgt__call @ v_x) @ 
% 7.94/1.71            (c_Orderings_Obot__class_Obot @ (tc_fun @ t_a @ tc_bool)) @ t_a)))),
% 7.94/1.71      inference('cnf', [status(esa)], [zf_stmt_0])).
% 7.94/1.71  thf(cls_conjecture_1, conjecture,
% 7.94/1.71    (( v_G ) != ( c_Set_Oimage @ v_mgt__call @ v_U @ tc_Com_Opname @ t_a ))).
% 7.94/1.71  thf(zf_stmt_1, negated_conjecture,
% 7.94/1.71    (( v_G ) = ( c_Set_Oimage @ v_mgt__call @ v_U @ tc_Com_Opname @ t_a )),
% 7.94/1.71    inference('cnf.neg', [status(esa)], [cls_conjecture_1])).
% 7.94/1.71  thf(zip_derived_cl172, plain,
% 7.94/1.71      (((v_G) = (c_Set_Oimage @ v_mgt__call @ v_U @ tc_Com_Opname @ t_a))),
% 7.94/1.71      inference('cnf', [status(esa)], [zf_stmt_1])).
% 7.94/1.71  thf(zip_derived_cl175, plain,
% 7.94/1.71      (~ (hBOOL @ 
% 7.94/1.71          (hAPP @ (hAPP @ v_P @ v_G) @ 
% 7.94/1.71           (c_Set_Oinsert @ (hAPP @ v_mgt__call @ v_x) @ 
% 7.94/1.71            (c_Orderings_Obot__class_Obot @ (tc_fun @ t_a @ tc_bool)) @ t_a)))),
% 7.94/1.71      inference('demod', [status(thm)], [zip_derived_cl170, zip_derived_cl172])).
% 7.94/1.71  thf(zip_derived_cl204, plain,
% 7.94/1.71      (~ (c_lessequals @ 
% 7.94/1.71          (c_Set_Oinsert @ (hAPP @ v_mgt__call @ v_x) @ 
% 7.94/1.71           (c_Orderings_Obot__class_Obot @ (tc_fun @ t_a @ tc_bool)) @ t_a) @ 
% 7.94/1.71          v_G @ (tc_fun @ t_a @ tc_bool))),
% 7.94/1.71      inference('sup-', [status(thm)], [zip_derived_cl79, zip_derived_cl175])).
% 7.94/1.71  thf(zip_derived_cl4163, plain,
% 7.94/1.71      ((~ (hBOOL @ (c_in @ (hAPP @ v_mgt__call @ v_x) @ v_G @ t_a))
% 7.94/1.71        | ~ (c_lessequals @ 
% 7.94/1.71             (c_Orderings_Obot__class_Obot @ (tc_fun @ t_a @ tc_bool)) @ v_G @ 
% 7.94/1.71             (tc_fun @ t_a @ tc_bool)))),
% 7.94/1.71      inference('sup-', [status(thm)], [zip_derived_cl83, zip_derived_cl204])).
% 7.94/1.71  thf(zip_derived_cl172, plain,
% 7.94/1.71      (((v_G) = (c_Set_Oimage @ v_mgt__call @ v_U @ tc_Com_Opname @ t_a))),
% 7.94/1.71      inference('cnf', [status(esa)], [zf_stmt_1])).
% 7.94/1.71  thf(cls_image__subset__iff_0, axiom,
% 7.94/1.71    (( hBOOL @ ( c_in @ ( hAPP @ V_f @ V_x ) @ V_B @ T_a ) ) | 
% 7.94/1.71     ( ~( hBOOL @ ( c_in @ V_x @ V_A @ T_b ) ) ) | 
% 7.94/1.71     ( ~( c_lessequals @
% 7.94/1.71          ( c_Set_Oimage @ V_f @ V_A @ T_b @ T_a ) @ V_B @ 
% 7.94/1.71          ( tc_fun @ T_a @ tc_bool ) ) ))).
% 7.94/1.71  thf(zip_derived_cl105, plain,
% 7.94/1.71      (![X0 : $i, X1 : $i, X2 : $i, X3 : $i, X4 : $i, X5 : $i]:
% 7.94/1.71         ( (hBOOL @ (c_in @ (hAPP @ X0 @ X1) @ X2 @ X3))
% 7.94/1.71          | ~ (hBOOL @ (c_in @ X1 @ X4 @ X5))
% 7.94/1.71          | ~ (c_lessequals @ (c_Set_Oimage @ X0 @ X4 @ X5 @ X3) @ X2 @ 
% 7.94/1.71               (tc_fun @ X3 @ tc_bool)))),
% 7.94/1.71      inference('cnf', [status(esa)], [cls_image__subset__iff_0])).
% 7.94/1.71  thf(zip_derived_cl535, plain,
% 7.94/1.71      (![X0 : $i, X1 : $i]:
% 7.94/1.71         (~ (c_lessequals @ v_G @ X0 @ (tc_fun @ t_a @ tc_bool))
% 7.94/1.71          | ~ (hBOOL @ (c_in @ X1 @ v_U @ tc_Com_Opname))
% 7.94/1.71          |  (hBOOL @ (c_in @ (hAPP @ v_mgt__call @ X1) @ X0 @ t_a)))),
% 7.94/1.71      inference('sup-', [status(thm)], [zip_derived_cl172, zip_derived_cl105])).
% 7.94/1.71  thf(cls_mem__def_0, axiom,
% 7.94/1.71    (( hBOOL @ ( hAPP @ V_S @ V_x ) ) | 
% 7.94/1.71     ( ~( hBOOL @ ( c_in @ V_x @ V_S @ T_a ) ) ))).
% 7.94/1.71  thf(zip_derived_cl155, plain,
% 7.94/1.71      (![X0 : $i, X1 : $i, X2 : $i]:
% 7.94/1.71         ( (hBOOL @ (hAPP @ X0 @ X1)) | ~ (hBOOL @ (c_in @ X1 @ X0 @ X2)))),
% 7.94/1.71      inference('cnf', [status(esa)], [cls_mem__def_0])).
% 7.94/1.71  thf(zip_derived_cl570, plain,
% 7.94/1.71      (![X0 : $i, X1 : $i]:
% 7.94/1.71         (~ (hBOOL @ (c_in @ X1 @ v_U @ tc_Com_Opname))
% 7.94/1.71          | ~ (c_lessequals @ v_G @ X0 @ (tc_fun @ t_a @ tc_bool))
% 7.94/1.71          |  (hBOOL @ (hAPP @ X0 @ (hAPP @ v_mgt__call @ X1))))),
% 7.94/1.71      inference('sup-', [status(thm)], [zip_derived_cl535, zip_derived_cl155])).
% 7.94/1.71  thf(cls_equalityE_0, axiom,
% 7.94/1.71    (c_lessequals @ V_x @ V_x @ ( tc_fun @ T_a @ tc_bool ))).
% 7.94/1.71  thf(zip_derived_cl99, plain,
% 7.94/1.71      (![X0 : $i, X1 : $i]:  (c_lessequals @ X0 @ X0 @ (tc_fun @ X1 @ tc_bool))),
% 7.94/1.71      inference('cnf', [status(esa)], [cls_equalityE_0])).
% 7.94/1.71  thf(zip_derived_cl1852, plain,
% 7.94/1.71      (![X0 : $i]:
% 7.94/1.71         ( (hBOOL @ (hAPP @ v_G @ (hAPP @ v_mgt__call @ X0)))
% 7.94/1.71          | ~ (hBOOL @ (c_in @ X0 @ v_U @ tc_Com_Opname)))),
% 7.94/1.71      inference('sup+', [status(thm)], [zip_derived_cl570, zip_derived_cl99])).
% 7.94/1.71  thf(cls_insert__absorb_0, axiom,
% 7.94/1.71    (( ( c_Set_Oinsert @ V_a @ V_A @ T_a ) = ( V_A ) ) | 
% 7.94/1.71     ( ~( hBOOL @ ( c_in @ V_a @ V_A @ T_a ) ) ))).
% 7.94/1.71  thf(zip_derived_cl164, plain,
% 7.94/1.71      (![X0 : $i, X1 : $i, X2 : $i]:
% 7.94/1.71         (((c_Set_Oinsert @ X1 @ X0 @ X2) = (X0))
% 7.94/1.71          | ~ (hBOOL @ (c_in @ X1 @ X0 @ X2)))),
% 7.94/1.71      inference('cnf', [status(esa)], [cls_insert__absorb_0])).
% 7.94/1.71  thf(cls_mem__def_1, axiom,
% 7.94/1.71    (( hBOOL @ ( c_in @ V_x @ V_S @ T_a ) ) | 
% 7.94/1.71     ( ~( hBOOL @ ( hAPP @ V_S @ V_x ) ) ))).
% 7.94/1.71  thf(zip_derived_cl154, plain,
% 7.94/1.71      (![X0 : $i, X1 : $i, X2 : $i]:
% 7.94/1.71         ( (hBOOL @ (c_in @ X0 @ X1 @ X2)) | ~ (hBOOL @ (hAPP @ X1 @ X0)))),
% 7.94/1.71      inference('cnf', [status(esa)], [cls_mem__def_1])).
% 7.94/1.71  thf(zip_derived_cl183, plain,
% 7.94/1.71      (![X0 : $i, X1 : $i, X2 : $i]:
% 7.94/1.71         (((c_Set_Oinsert @ X2 @ X1 @ X0) = (X1))
% 7.94/1.71          | ~ (hBOOL @ (hAPP @ X1 @ X2)))),
% 7.94/1.71      inference('sup+', [status(thm)], [zip_derived_cl164, zip_derived_cl154])).
% 7.94/1.71  thf(zip_derived_cl1882, plain,
% 7.94/1.71      (![X0 : $i, X1 : $i]:
% 7.94/1.71         (~ (hBOOL @ (c_in @ X0 @ v_U @ tc_Com_Opname))
% 7.94/1.71          | ((c_Set_Oinsert @ (hAPP @ v_mgt__call @ X0) @ v_G @ X1) = (v_G)))),
% 7.94/1.71      inference('sup-', [status(thm)], [zip_derived_cl1852, zip_derived_cl183])).
% 7.94/1.71  thf(zip_derived_cl183, plain,
% 7.94/1.71      (![X0 : $i, X1 : $i, X2 : $i]:
% 7.94/1.71         (((c_Set_Oinsert @ X2 @ X1 @ X0) = (X1))
% 7.94/1.71          | ~ (hBOOL @ (hAPP @ X1 @ X2)))),
% 7.94/1.71      inference('sup+', [status(thm)], [zip_derived_cl164, zip_derived_cl154])).
% 7.94/1.71  thf(cls_conjecture_2, conjecture,
% 7.94/1.71    (~( hBOOL @ ( c_in @ v_x @ v_U @ tc_Com_Opname ) ))).
% 7.94/1.71  thf(zf_stmt_2, negated_conjecture,
% 7.94/1.71    (hBOOL @ ( c_in @ v_x @ v_U @ tc_Com_Opname )),
% 7.94/1.71    inference('cnf.neg', [status(esa)], [cls_conjecture_2])).
% 7.94/1.71  thf(zip_derived_cl171, plain,
% 7.94/1.71      ( (hBOOL @ (c_in @ v_x @ v_U @ tc_Com_Opname))),
% 7.94/1.71      inference('cnf', [status(esa)], [zf_stmt_2])).
% 7.94/1.71  thf(zip_derived_cl155, plain,
% 7.94/1.71      (![X0 : $i, X1 : $i, X2 : $i]:
% 7.94/1.71         ( (hBOOL @ (hAPP @ X0 @ X1)) | ~ (hBOOL @ (c_in @ X1 @ X0 @ X2)))),
% 7.94/1.71      inference('cnf', [status(esa)], [cls_mem__def_0])).
% 7.94/1.71  thf(zip_derived_cl176, plain, ( (hBOOL @ (hAPP @ v_U @ v_x))),
% 7.94/1.71      inference('sup-', [status(thm)], [zip_derived_cl171, zip_derived_cl155])).
% 7.94/1.71  thf(zip_derived_cl214, plain,
% 7.94/1.71      (![X0 : $i]: ((c_Set_Oinsert @ v_x @ v_U @ X0) = (v_U))),
% 7.94/1.71      inference('sup+', [status(thm)], [zip_derived_cl183, zip_derived_cl176])).
% 7.94/1.71  thf(cls_insert__iff_1, axiom,
% 7.94/1.71    (hBOOL @ ( c_in @ V_x @ ( c_Set_Oinsert @ V_x @ V_A @ T_a ) @ T_a ))).
% 7.94/1.71  thf(zip_derived_cl150, plain,
% 7.94/1.71      (![X0 : $i, X1 : $i, X2 : $i]:
% 7.94/1.71          (hBOOL @ (c_in @ X0 @ (c_Set_Oinsert @ X0 @ X1 @ X2) @ X2))),
% 7.94/1.71      inference('cnf', [status(esa)], [cls_insert__iff_1])).
% 7.94/1.71  thf(zip_derived_cl253, plain,
% 7.94/1.71      (![X0 : $i]:  (hBOOL @ (c_in @ v_x @ v_U @ X0))),
% 7.94/1.71      inference('sup+', [status(thm)], [zip_derived_cl214, zip_derived_cl150])).
% 7.94/1.71  thf(zip_derived_cl1975, plain,
% 7.94/1.71      (![X0 : $i]:
% 7.94/1.71         ((c_Set_Oinsert @ (hAPP @ v_mgt__call @ v_x) @ v_G @ X0) = (v_G))),
% 7.94/1.71      inference('sup+', [status(thm)], [zip_derived_cl1882, zip_derived_cl253])).
% 7.94/1.71  thf(zip_derived_cl150, plain,
% 7.94/1.71      (![X0 : $i, X1 : $i, X2 : $i]:
% 7.94/1.71          (hBOOL @ (c_in @ X0 @ (c_Set_Oinsert @ X0 @ X1 @ X2) @ X2))),
% 7.94/1.71      inference('cnf', [status(esa)], [cls_insert__iff_1])).
% 7.94/1.71  thf(zip_derived_cl2045, plain,
% 7.94/1.71      (![X0 : $i]:  (hBOOL @ (c_in @ (hAPP @ v_mgt__call @ v_x) @ v_G @ X0))),
% 7.94/1.71      inference('sup+', [status(thm)], [zip_derived_cl1975, zip_derived_cl150])).
% 7.94/1.71  thf(cls_empty__subsetI_0, axiom,
% 7.94/1.71    (c_lessequals @
% 7.94/1.71     ( c_Orderings_Obot__class_Obot @ ( tc_fun @ T_a @ tc_bool ) ) @ V_A @ 
% 7.94/1.71     ( tc_fun @ T_a @ tc_bool ))).
% 7.94/1.71  thf(zip_derived_cl64, plain,
% 7.94/1.71      (![X0 : $i, X1 : $i]:
% 7.94/1.71          (c_lessequals @ 
% 7.94/1.71           (c_Orderings_Obot__class_Obot @ (tc_fun @ X0 @ tc_bool)) @ X1 @ 
% 7.94/1.71           (tc_fun @ X0 @ tc_bool))),
% 7.94/1.71      inference('cnf', [status(esa)], [cls_empty__subsetI_0])).
% 7.94/1.71  thf(zip_derived_cl4192, plain, ($false),
% 7.94/1.71      inference('demod', [status(thm)],
% 7.94/1.71                [zip_derived_cl4163, zip_derived_cl2045, zip_derived_cl64])).
% 7.94/1.71  
% 7.94/1.71  % SZS output end Refutation
% 7.94/1.71  
% 7.94/1.71  
% 7.94/1.71  % Terminating...
% 7.94/1.75  % Runner terminated.
% 7.94/1.77  % Zipperpin 1.5 exiting
%------------------------------------------------------------------------------