TSTP Solution File: PLA054_4 by Zipperpin---2.1.9999
View Problem
- Process Solution
%------------------------------------------------------------------------------
% File : Zipperpin---2.1.9999
% Problem : PLA054_4 : TPTP v8.2.0. Released v8.2.0.
% Transfm : NO INFORMATION
% Format : NO INFORMATION
% Command : python3 /export/starexec/sandbox/solver/bin/portfolio.lams.parallel.py %s %d /export/starexec/sandbox/tmp/tmp.9J4ToBPD7l true
% Computer : n018.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 : Thu Aug 31 13:05:27 EDT 2023
% Result : Theorem 0.69s 0.77s
% Output : Refutation 0.69s
% Verified :
% SZS Type : -
% Comments :
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.13 % Problem : PLA054_4 : TPTP v8.2.0. Released v8.2.0.
% 0.00/0.14 % Command : python3 /export/starexec/sandbox/solver/bin/portfolio.lams.parallel.py %s %d /export/starexec/sandbox/tmp/tmp.9J4ToBPD7l true
% 0.14/0.35 % Computer : n018.cluster.edu
% 0.14/0.35 % Model : x86_64 x86_64
% 0.14/0.35 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.14/0.35 % Memory : 8042.1875MB
% 0.14/0.35 % OS : Linux 3.10.0-693.el7.x86_64
% 0.14/0.35 % CPULimit : 300
% 0.14/0.35 % WCLimit : 300
% 0.14/0.35 % DateTime : Sun Aug 27 06:17:45 EDT 2023
% 0.14/0.35 % CPUTime :
% 0.14/0.35 % Running portfolio for 300 s
% 0.14/0.35 % File : /export/starexec/sandbox/benchmark/theBenchmark.p
% 0.14/0.36 % Number of cores: 8
% 0.14/0.36 % Python version: Python 3.6.8
% 0.14/0.36 % Running in FO mode
% 0.22/0.66 % Total configuration time : 435
% 0.22/0.66 % Estimated wc time : 1092
% 0.22/0.66 % Estimated cpu time (7 cpus) : 156.0
% 0.22/0.73 % /export/starexec/sandbox/solver/bin/fo/fo6_bce.sh running for 75s
% 0.22/0.75 % /export/starexec/sandbox/solver/bin/fo/fo3_bce.sh running for 75s
% 0.69/0.75 % /export/starexec/sandbox/solver/bin/fo/fo1_av.sh running for 75s
% 0.69/0.76 % /export/starexec/sandbox/solver/bin/fo/fo7.sh running for 63s
% 0.69/0.77 % /export/starexec/sandbox/solver/bin/fo/fo13.sh running for 50s
% 0.69/0.77 % /export/starexec/sandbox/solver/bin/fo/fo5.sh running for 50s
% 0.69/0.77 % /export/starexec/sandbox/solver/bin/fo/fo4.sh running for 50s
% 0.69/0.77 % Solved by fo/fo6_bce.sh.
% 0.69/0.77 % BCE start: 17
% 0.69/0.77 % BCE eliminated: 0
% 0.69/0.77 % PE start: 17
% 0.69/0.77 logic: neq
% 0.69/0.77 % PE eliminated: 2
% 0.69/0.77 % done 22 iterations in 0.019s
% 0.69/0.77 % SZS status Theorem for '/export/starexec/sandbox/benchmark/theBenchmark.p'
% 0.69/0.77 % SZS output start Refutation
% 0.69/0.77 thf('$ki_world_type', type, '$ki_world': $tType).
% 0.69/0.77 thf(open_type, type, open: '$ki_world' > $i > $o).
% 0.69/0.77 thf(closed_type, type, closed: '$ki_world' > $i > $o).
% 0.69/0.77 thf('$ki_accessible_type', type, '$ki_accessible': '$ki_world' > '$ki_world' > $o).
% 0.69/0.77 thf(o_type, type, o: $i).
% 0.69/0.77 thf(d_type, type, d: $i).
% 0.69/0.77 thf(sk__1_type, type, sk__1: $i > $i > '$ki_world' > $i).
% 0.69/0.77 thf(sk__3_type, type, sk__3: '$ki_world').
% 0.69/0.77 thf(h_type, type, h: '$ki_world' > $i > $o).
% 0.69/0.77 thf(sk__4_type, type, sk__4: '$ki_world').
% 0.69/0.77 thf('$ki_local_world_type', type, '$ki_local_world': '$ki_world').
% 0.69/0.77 thf(combo_type, type, combo: '$ki_world' > $i > $i > $o).
% 0.69/0.77 thf('$ki_exists_in_world_$i_type', type, '$ki_exists_in_world_$i': '$ki_world' >
% 0.69/0.77 $i > $o).
% 0.69/0.77 thf(ax2, axiom,
% 0.69/0.77 (![W:'$ki_world']:
% 0.69/0.77 ( ( '$ki_accessible' @ '$ki_local_world' @ W ) => ( closed @ W @ d ) ))).
% 0.69/0.77 thf(zip_derived_cl7, plain,
% 0.69/0.77 (![X0 : '$ki_world']:
% 0.69/0.77 ( (closed @ X0 @ d) | ~ ('$ki_accessible' @ '$ki_local_world' @ X0))),
% 0.69/0.77 inference('cnf', [status(esa)], [ax2])).
% 0.69/0.77 thf(mrel_reflexive, axiom, (![W:'$ki_world']: ( '$ki_accessible' @ W @ W ))).
% 0.69/0.77 thf(zip_derived_cl0, plain,
% 0.69/0.77 (![X0 : '$ki_world']: ('$ki_accessible' @ X0 @ X0)),
% 0.69/0.77 inference('cnf', [status(esa)], [mrel_reflexive])).
% 0.69/0.77 thf(verify, conjecture,
% 0.69/0.77 (![W:'$ki_world']:
% 0.69/0.77 ( ( '$ki_accessible' @ '$ki_local_world' @ W ) =>
% 0.69/0.77 ( ?[V:$i]:
% 0.69/0.77 ( ( ?[O:$i]:
% 0.69/0.77 ( ( ( ![W0:'$ki_world']:
% 0.69/0.77 ( ( '$ki_accessible' @ W @ W0 ) =>
% 0.69/0.77 ( ( combo @ W0 @ d @ V ) & ( h @ W0 @ O ) ) ) ) =>
% 0.69/0.77 ( ![W0:'$ki_world']:
% 0.69/0.77 ( ( '$ki_accessible' @ W @ W0 ) => ( open @ W0 @ d ) ) ) ) &
% 0.69/0.77 ( '$ki_exists_in_world_$i' @ W @ O ) ) ) &
% 0.69/0.77 ( '$ki_exists_in_world_$i' @ W @ V ) ) ) ))).
% 0.69/0.77 thf(zf_stmt_0, negated_conjecture,
% 0.69/0.77 (~( ![W:'$ki_world']:
% 0.69/0.77 ( ( '$ki_accessible' @ '$ki_local_world' @ W ) =>
% 0.69/0.77 ( ?[V:$i]:
% 0.69/0.77 ( ( ?[O:$i]:
% 0.69/0.77 ( ( ( ![W0:'$ki_world']:
% 0.69/0.77 ( ( '$ki_accessible' @ W @ W0 ) =>
% 0.69/0.77 ( ( combo @ W0 @ d @ V ) & ( h @ W0 @ O ) ) ) ) =>
% 0.69/0.77 ( ![W0:'$ki_world']:
% 0.69/0.77 ( ( '$ki_accessible' @ W @ W0 ) => ( open @ W0 @ d ) ) ) ) &
% 0.69/0.77 ( '$ki_exists_in_world_$i' @ W @ O ) ) ) &
% 0.69/0.77 ( '$ki_exists_in_world_$i' @ W @ V ) ) ) ) )),
% 0.69/0.77 inference('cnf.neg', [status(esa)], [verify])).
% 0.69/0.77 thf(zip_derived_cl12, plain,
% 0.69/0.77 ( ('$ki_accessible' @ '$ki_local_world' @ sk__3)),
% 0.69/0.77 inference('cnf', [status(esa)], [zf_stmt_0])).
% 0.69/0.77 thf(zip_derived_cl14, plain,
% 0.69/0.77 (![X0 : $i, X1 : '$ki_world', X2 : $i]:
% 0.69/0.77 (~ ('$ki_exists_in_world_$i' @ sk__3 @ X0)
% 0.69/0.77 | ~ ('$ki_accessible' @ sk__3 @ X1)
% 0.69/0.77 | (h @ X1 @ X0)
% 0.69/0.77 | ~ ('$ki_exists_in_world_$i' @ sk__3 @ X2))),
% 0.69/0.77 inference('cnf', [status(esa)], [zf_stmt_0])).
% 0.69/0.77 thf(ax1, axiom,
% 0.69/0.77 (![W:'$ki_world']:
% 0.69/0.77 ( ( '$ki_accessible' @ '$ki_local_world' @ W ) =>
% 0.69/0.77 ( ![S:$i]:
% 0.69/0.77 ( ( '$ki_exists_in_world_$i' @ W @ S ) =>
% 0.69/0.77 ( ![V:$i]:
% 0.69/0.77 ( ( '$ki_exists_in_world_$i' @ W @ V ) =>
% 0.69/0.77 ( ?[O:$i]:
% 0.69/0.77 ( ( ![W0:'$ki_world']:
% 0.69/0.77 ( ( '$ki_accessible' @ W @ W0 ) =>
% 0.69/0.77 ( ( ( closed @ W0 @ S ) & ( ~( combo @ W0 @ S @ V ) ) &
% 0.69/0.77 ( h @ W0 @ o ) ) =>
% 0.69/0.77 ( ![W1:'$ki_world']:
% 0.69/0.77 ( ( '$ki_accessible' @ W0 @ W1 ) =>
% 0.69/0.77 ( closed @ W1 @ S ) ) ) ) ) ) &
% 0.69/0.77 ( ![W0:'$ki_world']:
% 0.69/0.77 ( ( '$ki_accessible' @ W @ W0 ) =>
% 0.69/0.77 ( ( ( closed @ W0 @ S ) & ( combo @ W0 @ S @ V ) &
% 0.69/0.77 ( h @ W0 @ O ) ) =>
% 0.69/0.77 ( ![W1:'$ki_world']:
% 0.69/0.77 ( ( '$ki_accessible' @ W0 @ W1 ) =>
% 0.69/0.77 ( open @ W1 @ S ) ) ) ) ) ) &
% 0.69/0.77 ( '$ki_exists_in_world_$i' @ W @ O ) ) ) ) ) ) ) ))).
% 0.69/0.77 thf(zip_derived_cl4, plain,
% 0.69/0.77 (![X0 : '$ki_world', X1 : $i, X2 : '$ki_world', X3 : '$ki_world', X4 : $i]:
% 0.69/0.77 (~ ('$ki_exists_in_world_$i' @ X0 @ X1)
% 0.69/0.77 | ~ ('$ki_accessible' @ X0 @ X2)
% 0.69/0.77 | (open @ X3 @ X1)
% 0.69/0.77 | ~ ('$ki_accessible' @ X2 @ X3)
% 0.69/0.77 | ~ (h @ X2 @ (sk__1 @ X4 @ X1 @ X0))
% 0.69/0.77 | ~ (combo @ X2 @ X1 @ X4)
% 0.69/0.77 | ~ (closed @ X2 @ X1)
% 0.69/0.77 | ~ ('$ki_exists_in_world_$i' @ X0 @ X4)
% 0.69/0.77 | ~ ('$ki_accessible' @ '$ki_local_world' @ X0))),
% 0.69/0.77 inference('cnf', [status(esa)], [ax1])).
% 0.69/0.77 thf(zip_derived_cl15, plain,
% 0.69/0.77 (![X0 : $i, X2 : $i]:
% 0.69/0.77 (~ ('$ki_exists_in_world_$i' @ sk__3 @ X0)
% 0.69/0.77 | ~ (open @ sk__4 @ d)
% 0.69/0.77 | ~ ('$ki_exists_in_world_$i' @ sk__3 @ X2))),
% 0.69/0.77 inference('cnf', [status(esa)], [zf_stmt_0])).
% 0.69/0.77 thf(zip_derived_cl18, plain,
% 0.69/0.77 (![X0 : $i, X1 : $i, X2 : '$ki_world', X3 : $i, X4 : '$ki_world']:
% 0.69/0.77 (~ ('$ki_accessible' @ '$ki_local_world' @ X2)
% 0.69/0.77 | ~ ('$ki_exists_in_world_$i' @ X2 @ X3)
% 0.69/0.77 | ~ (closed @ X4 @ d)
% 0.69/0.77 | ~ (combo @ X4 @ d @ X3)
% 0.69/0.77 | ~ (h @ X4 @ (sk__1 @ X3 @ d @ X2))
% 0.69/0.77 | ~ ('$ki_accessible' @ X4 @ sk__4)
% 0.69/0.77 | ~ ('$ki_accessible' @ X2 @ X4)
% 0.69/0.77 | ~ ('$ki_exists_in_world_$i' @ X2 @ d)
% 0.69/0.77 | ~ ('$ki_exists_in_world_$i' @ sk__3 @ X0)
% 0.69/0.77 | ~ ('$ki_exists_in_world_$i' @ sk__3 @ X1))),
% 0.69/0.77 inference('dp-resolution', [status(thm)],
% 0.69/0.77 [zip_derived_cl4, zip_derived_cl15])).
% 0.69/0.77 thf(zip_derived_cl21, plain,
% 0.69/0.77 (![X0 : $i, X1 : $i, X2 : '$ki_world', X3 : '$ki_world', X4 : $i, X5 : $i]:
% 0.69/0.77 (~ ('$ki_exists_in_world_$i' @ sk__3 @ X5)
% 0.69/0.77 | ~ ('$ki_accessible' @ sk__3 @ X3)
% 0.69/0.77 | ~ ('$ki_exists_in_world_$i' @ sk__3 @ (sk__1 @ X4 @ d @ X2))
% 0.69/0.77 | ~ ('$ki_exists_in_world_$i' @ sk__3 @ X0)
% 0.69/0.77 | ~ ('$ki_exists_in_world_$i' @ sk__3 @ X1)
% 0.69/0.77 | ~ ('$ki_exists_in_world_$i' @ X2 @ d)
% 0.69/0.77 | ~ ('$ki_accessible' @ X2 @ X3)
% 0.69/0.77 | ~ ('$ki_accessible' @ X3 @ sk__4)
% 0.69/0.77 | ~ (combo @ X3 @ d @ X4)
% 0.69/0.77 | ~ (closed @ X3 @ d)
% 0.69/0.77 | ~ ('$ki_exists_in_world_$i' @ X2 @ X4)
% 0.69/0.77 | ~ ('$ki_accessible' @ '$ki_local_world' @ X2))),
% 0.69/0.77 inference('dp-resolution', [status(thm)],
% 0.69/0.77 [zip_derived_cl14, zip_derived_cl18])).
% 0.69/0.77 thf('$ki_exists_in_world_$i_const', axiom,
% 0.69/0.77 (![W:'$ki_world',X:$i]: ( '$ki_exists_in_world_$i' @ W @ X ))).
% 0.69/0.77 thf(zip_derived_cl2, plain,
% 0.69/0.77 (![X0 : '$ki_world', X1 : $i]: ('$ki_exists_in_world_$i' @ X0 @ X1)),
% 0.69/0.77 inference('cnf', [status(esa)], [$ki_exists_in_world_$i_const])).
% 0.69/0.77 thf(zip_derived_cl2, plain,
% 0.69/0.77 (![X0 : '$ki_world', X1 : $i]: ('$ki_exists_in_world_$i' @ X0 @ X1)),
% 0.69/0.77 inference('cnf', [status(esa)], [$ki_exists_in_world_$i_const])).
% 0.69/0.77 thf(zip_derived_cl2, plain,
% 0.69/0.77 (![X0 : '$ki_world', X1 : $i]: ('$ki_exists_in_world_$i' @ X0 @ X1)),
% 0.69/0.77 inference('cnf', [status(esa)], [$ki_exists_in_world_$i_const])).
% 0.69/0.77 thf(zip_derived_cl2, plain,
% 0.69/0.77 (![X0 : '$ki_world', X1 : $i]: ('$ki_exists_in_world_$i' @ X0 @ X1)),
% 0.69/0.77 inference('cnf', [status(esa)], [$ki_exists_in_world_$i_const])).
% 0.69/0.77 thf(zip_derived_cl2, plain,
% 0.69/0.77 (![X0 : '$ki_world', X1 : $i]: ('$ki_exists_in_world_$i' @ X0 @ X1)),
% 0.69/0.77 inference('cnf', [status(esa)], [$ki_exists_in_world_$i_const])).
% 0.69/0.77 thf(zip_derived_cl2, plain,
% 0.69/0.77 (![X0 : '$ki_world', X1 : $i]: ('$ki_exists_in_world_$i' @ X0 @ X1)),
% 0.69/0.77 inference('cnf', [status(esa)], [$ki_exists_in_world_$i_const])).
% 0.69/0.77 thf(zip_derived_cl42, plain,
% 0.69/0.77 (![X2 : '$ki_world', X3 : '$ki_world', X4 : $i]:
% 0.69/0.77 (~ ('$ki_accessible' @ sk__3 @ X3)
% 0.69/0.77 | ~ ('$ki_accessible' @ X2 @ X3)
% 0.69/0.77 | ~ ('$ki_accessible' @ X3 @ sk__4)
% 0.69/0.77 | ~ (combo @ X3 @ d @ X4)
% 0.69/0.77 | ~ (closed @ X3 @ d)
% 0.69/0.77 | ~ ('$ki_accessible' @ '$ki_local_world' @ X2))),
% 0.69/0.77 inference('demod', [status(thm)],
% 0.69/0.77 [zip_derived_cl21, zip_derived_cl2, zip_derived_cl2,
% 0.69/0.77 zip_derived_cl2, zip_derived_cl2, zip_derived_cl2,
% 0.69/0.77 zip_derived_cl2])).
% 0.69/0.77 thf(zip_derived_cl13, plain,
% 0.69/0.77 (![X0 : $i, X1 : '$ki_world', X2 : $i]:
% 0.69/0.77 (~ ('$ki_exists_in_world_$i' @ sk__3 @ X0)
% 0.69/0.77 | ~ ('$ki_accessible' @ sk__3 @ X1)
% 0.69/0.77 | (combo @ X1 @ d @ X2)
% 0.69/0.77 | ~ ('$ki_exists_in_world_$i' @ sk__3 @ X2))),
% 0.69/0.77 inference('cnf', [status(esa)], [zf_stmt_0])).
% 0.69/0.77 thf(zip_derived_cl2, plain,
% 0.69/0.77 (![X0 : '$ki_world', X1 : $i]: ('$ki_exists_in_world_$i' @ X0 @ X1)),
% 0.69/0.77 inference('cnf', [status(esa)], [$ki_exists_in_world_$i_const])).
% 0.69/0.77 thf(zip_derived_cl2, plain,
% 0.69/0.77 (![X0 : '$ki_world', X1 : $i]: ('$ki_exists_in_world_$i' @ X0 @ X1)),
% 0.69/0.77 inference('cnf', [status(esa)], [$ki_exists_in_world_$i_const])).
% 0.69/0.77 thf(zip_derived_cl41, plain,
% 0.69/0.77 (![X1 : '$ki_world', X2 : $i]:
% 0.69/0.77 (~ ('$ki_accessible' @ sk__3 @ X1) | (combo @ X1 @ d @ X2))),
% 0.69/0.77 inference('demod', [status(thm)],
% 0.69/0.77 [zip_derived_cl13, zip_derived_cl2, zip_derived_cl2])).
% 0.69/0.77 thf(zip_derived_cl43, plain,
% 0.69/0.77 (![X2 : '$ki_world', X3 : '$ki_world']:
% 0.69/0.77 (~ ('$ki_accessible' @ '$ki_local_world' @ X2)
% 0.69/0.77 | ~ (closed @ X3 @ d)
% 0.69/0.77 | ~ ('$ki_accessible' @ X3 @ sk__4)
% 0.69/0.77 | ~ ('$ki_accessible' @ X2 @ X3)
% 0.69/0.77 | ~ ('$ki_accessible' @ sk__3 @ X3))),
% 0.69/0.77 inference('clc', [status(thm)], [zip_derived_cl42, zip_derived_cl41])).
% 0.69/0.77 thf(zip_derived_cl45, plain,
% 0.69/0.77 (![X0 : '$ki_world']:
% 0.69/0.77 (~ (closed @ X0 @ d)
% 0.69/0.77 | ~ ('$ki_accessible' @ X0 @ sk__4)
% 0.69/0.77 | ~ ('$ki_accessible' @ sk__3 @ X0)
% 0.69/0.77 | ~ ('$ki_accessible' @ sk__3 @ X0))),
% 0.69/0.77 inference('s_sup-', [status(thm)], [zip_derived_cl12, zip_derived_cl43])).
% 0.69/0.77 thf(zip_derived_cl47, plain,
% 0.69/0.77 (![X0 : '$ki_world']:
% 0.69/0.77 (~ ('$ki_accessible' @ sk__3 @ X0)
% 0.69/0.77 | ~ ('$ki_accessible' @ X0 @ sk__4)
% 0.69/0.77 | ~ (closed @ X0 @ d))),
% 0.69/0.77 inference('simplify', [status(thm)], [zip_derived_cl45])).
% 0.69/0.77 thf(zip_derived_cl48, plain,
% 0.69/0.77 ((~ ('$ki_accessible' @ sk__3 @ sk__4) | ~ (closed @ sk__3 @ d))),
% 0.69/0.77 inference('s_sup-', [status(thm)], [zip_derived_cl0, zip_derived_cl47])).
% 0.69/0.77 thf(zip_derived_cl16, plain,
% 0.69/0.77 (![X0 : $i, X2 : $i]:
% 0.69/0.77 (~ ('$ki_exists_in_world_$i' @ sk__3 @ X0)
% 0.69/0.77 | ('$ki_accessible' @ sk__3 @ sk__4)
% 0.69/0.77 | ~ ('$ki_exists_in_world_$i' @ sk__3 @ X2))),
% 0.69/0.77 inference('cnf', [status(esa)], [zf_stmt_0])).
% 0.69/0.77 thf(zip_derived_cl2, plain,
% 0.69/0.77 (![X0 : '$ki_world', X1 : $i]: ('$ki_exists_in_world_$i' @ X0 @ X1)),
% 0.69/0.77 inference('cnf', [status(esa)], [$ki_exists_in_world_$i_const])).
% 0.69/0.77 thf(zip_derived_cl2, plain,
% 0.69/0.77 (![X0 : '$ki_world', X1 : $i]: ('$ki_exists_in_world_$i' @ X0 @ X1)),
% 0.69/0.77 inference('cnf', [status(esa)], [$ki_exists_in_world_$i_const])).
% 0.69/0.77 thf(zip_derived_cl33, plain, ( ('$ki_accessible' @ sk__3 @ sk__4)),
% 0.69/0.77 inference('demod', [status(thm)],
% 0.69/0.77 [zip_derived_cl16, zip_derived_cl2, zip_derived_cl2])).
% 0.69/0.77 thf(zip_derived_cl50, plain, (~ (closed @ sk__3 @ d)),
% 0.69/0.77 inference('demod', [status(thm)], [zip_derived_cl48, zip_derived_cl33])).
% 0.69/0.77 thf(zip_derived_cl55, plain,
% 0.69/0.77 (~ ('$ki_accessible' @ '$ki_local_world' @ sk__3)),
% 0.69/0.77 inference('s_sup-', [status(thm)], [zip_derived_cl7, zip_derived_cl50])).
% 0.69/0.77 thf(zip_derived_cl12, plain,
% 0.69/0.77 ( ('$ki_accessible' @ '$ki_local_world' @ sk__3)),
% 0.69/0.77 inference('cnf', [status(esa)], [zf_stmt_0])).
% 0.69/0.77 thf(zip_derived_cl56, plain, ($false),
% 0.69/0.77 inference('demod', [status(thm)], [zip_derived_cl55, zip_derived_cl12])).
% 0.69/0.77
% 0.69/0.77 % SZS output end Refutation
% 0.69/0.77
% 0.69/0.77
% 0.69/0.77 % Terminating...
% 1.19/0.87 % Runner terminated.
% 1.19/0.88 % Zipperpin 1.5 exiting
%------------------------------------------------------------------------------