TSTP Solution File: SYN573-1 by Zipperpin---2.1.9999
View Problem
- Process Solution
%------------------------------------------------------------------------------
% File : Zipperpin---2.1.9999
% Problem : SYN573-1 : TPTP v8.1.2. Released v2.5.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.vUzJzCZNiC true
% Computer : n010.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 04:04:39 EDT 2023
% Result : Unsatisfiable 1.08s 0.85s
% Output : Refutation 1.08s
% Verified :
% SZS Type : -
% Comments :
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.13 % Problem : SYN573-1 : TPTP v8.1.2. Released v2.5.0.
% 0.00/0.14 % Command : python3 /export/starexec/sandbox2/solver/bin/portfolio.lams.parallel.py %s %d /export/starexec/sandbox2/tmp/tmp.vUzJzCZNiC true
% 0.13/0.35 % Computer : n010.cluster.edu
% 0.13/0.35 % Model : x86_64 x86_64
% 0.13/0.35 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.13/0.35 % Memory : 8042.1875MB
% 0.13/0.35 % OS : Linux 3.10.0-693.el7.x86_64
% 0.13/0.35 % CPULimit : 300
% 0.13/0.35 % WCLimit : 300
% 0.13/0.35 % DateTime : Sat Aug 26 20:04:35 EDT 2023
% 0.13/0.35 % CPUTime :
% 0.13/0.35 % Running portfolio for 300 s
% 0.13/0.35 % File : /export/starexec/sandbox2/benchmark/theBenchmark.p
% 0.13/0.35 % Number of cores: 8
% 0.13/0.36 % Python version: Python 3.6.8
% 0.13/0.36 % Running in FO mode
% 0.21/0.63 % Total configuration time : 435
% 0.21/0.63 % Estimated wc time : 1092
% 0.21/0.63 % Estimated cpu time (7 cpus) : 156.0
% 0.21/0.71 % /export/starexec/sandbox2/solver/bin/fo/fo3_bce.sh running for 75s
% 0.21/0.71 % /export/starexec/sandbox2/solver/bin/fo/fo6_bce.sh running for 75s
% 0.21/0.74 % /export/starexec/sandbox2/solver/bin/fo/fo1_av.sh running for 75s
% 0.21/0.75 % /export/starexec/sandbox2/solver/bin/fo/fo7.sh running for 63s
% 0.21/0.78 % /export/starexec/sandbox2/solver/bin/fo/fo5.sh running for 50s
% 1.08/0.79 % /export/starexec/sandbox2/solver/bin/fo/fo4.sh running for 50s
% 1.08/0.79 % /export/starexec/sandbox2/solver/bin/fo/fo13.sh running for 50s
% 1.08/0.85 % Solved by fo/fo13.sh.
% 1.08/0.85 % done 72 iterations in 0.041s
% 1.08/0.85 % SZS status Theorem for '/export/starexec/sandbox2/benchmark/theBenchmark.p'
% 1.08/0.85 % SZS output start Refutation
% 1.08/0.85 thf(c14_type, type, c14: $i).
% 1.08/0.85 thf(c15_type, type, c15: $i).
% 1.08/0.85 thf(f10_type, type, f10: $i > $i).
% 1.08/0.85 thf(c17_type, type, c17: $i).
% 1.08/0.85 thf(f3_type, type, f3: $i > $i > $i).
% 1.08/0.85 thf(p12_type, type, p12: $i > $o).
% 1.08/0.85 thf(f9_type, type, f9: $i > $i).
% 1.08/0.85 thf(f6_type, type, f6: $i > $i).
% 1.08/0.85 thf(f8_type, type, f8: $i > $i).
% 1.08/0.85 thf(c16_type, type, c16: $i).
% 1.08/0.85 thf(p11_type, type, p11: $i > $i > $o).
% 1.08/0.85 thf(f5_type, type, f5: $i > $i).
% 1.08/0.85 thf(p2_type, type, p2: $i > $i > $o).
% 1.08/0.85 thf(f7_type, type, f7: $i > $i).
% 1.08/0.85 thf(p2_4, conjecture,
% 1.08/0.85 (~( ( ~( p12 @ X16 ) ) | ( p2 @ X16 @ ( f9 @ ( f10 @ X16 ) ) ) ))).
% 1.08/0.85 thf(zf_stmt_0, negated_conjecture,
% 1.08/0.85 (( ~( p12 @ X16 ) ) | ( p2 @ X16 @ ( f9 @ ( f10 @ X16 ) ) )),
% 1.08/0.85 inference('cnf.neg', [status(esa)], [p2_4])).
% 1.08/0.85 thf(zip_derived_cl3, plain,
% 1.08/0.85 (![X0 : $i]: (~ (p12 @ X0) | (p2 @ X0 @ (f9 @ (f10 @ X0))))),
% 1.08/0.85 inference('cnf', [status(esa)], [zf_stmt_0])).
% 1.08/0.85 thf(p2_3, conjecture, (~( p2 @ X17 @ X17 ))).
% 1.08/0.85 thf(zf_stmt_1, negated_conjecture, (p2 @ X17 @ X17),
% 1.08/0.85 inference('cnf.neg', [status(esa)], [p2_3])).
% 1.08/0.85 thf(zip_derived_cl2, plain, (![X0 : $i]: (p2 @ X0 @ X0)),
% 1.08/0.85 inference('cnf', [status(esa)], [zf_stmt_1])).
% 1.08/0.85 thf(p2_13, conjecture,
% 1.08/0.85 (~( ( ~( p2 @ X17 @ X19 ) ) | ( ~( p2 @ X17 @ X18 ) ) | ( p2 @ X18 @ X19 ) ))).
% 1.08/0.85 thf(zf_stmt_2, negated_conjecture,
% 1.08/0.85 (( ~( p2 @ X17 @ X19 ) ) | ( ~( p2 @ X17 @ X18 ) ) | ( p2 @ X18 @ X19 )),
% 1.08/0.85 inference('cnf.neg', [status(esa)], [p2_13])).
% 1.08/0.85 thf(zip_derived_cl12, plain,
% 1.08/0.85 (![X0 : $i, X1 : $i, X2 : $i]:
% 1.08/0.85 (~ (p2 @ X0 @ X1) | ~ (p2 @ X0 @ X2) | (p2 @ X2 @ X1))),
% 1.08/0.85 inference('cnf', [status(esa)], [zf_stmt_2])).
% 1.08/0.85 thf(zip_derived_cl28, plain,
% 1.08/0.85 (![X0 : $i, X1 : $i]: (~ (p2 @ X0 @ X1) | (p2 @ X1 @ X0))),
% 1.08/0.85 inference('s_sup-', [status(thm)], [zip_derived_cl2, zip_derived_cl12])).
% 1.08/0.85 thf(zip_derived_cl32, plain,
% 1.08/0.85 (![X0 : $i]: (~ (p12 @ X0) | (p2 @ (f9 @ (f10 @ X0)) @ X0))),
% 1.08/0.85 inference('s_sup-', [status(thm)], [zip_derived_cl3, zip_derived_cl28])).
% 1.08/0.85 thf(not_p11_19, conjecture,
% 1.08/0.85 (p11 @
% 1.08/0.85 c15 @
% 1.08/0.85 ( f3 @
% 1.08/0.85 ( f8 @ c16 ) @
% 1.08/0.85 ( f3 @ ( f8 @ ( f9 @ c17 ) ) @ ( f5 @ ( f6 @ ( f7 @ c14 ) ) ) ) ))).
% 1.08/0.85 thf(zf_stmt_3, negated_conjecture,
% 1.08/0.85 (~( p11 @
% 1.08/0.85 c15 @
% 1.08/0.85 ( f3 @
% 1.08/0.85 ( f8 @ c16 ) @
% 1.08/0.85 ( f3 @ ( f8 @ ( f9 @ c17 ) ) @ ( f5 @ ( f6 @ ( f7 @ c14 ) ) ) ) ) )),
% 1.08/0.85 inference('cnf.neg', [status(esa)], [not_p11_19])).
% 1.08/0.85 thf(zip_derived_cl18, plain,
% 1.08/0.85 (~ (p11 @ c15 @
% 1.08/0.85 (f3 @ (f8 @ c16) @
% 1.08/0.85 (f3 @ (f8 @ (f9 @ c17)) @ (f5 @ (f6 @ (f7 @ c14))))))),
% 1.08/0.85 inference('cnf', [status(esa)], [zf_stmt_3])).
% 1.08/0.85 thf(p11_17, conjecture,
% 1.08/0.85 (~( ( ~( p11 @ X2 @ X3 ) ) | ( ~( p2 @ X3 @ X1 ) ) |
% 1.08/0.85 ( ~( p2 @ X2 @ X0 ) ) | ( p11 @ X0 @ X1 ) ))).
% 1.08/0.85 thf(zf_stmt_4, negated_conjecture,
% 1.08/0.85 (( ~( p11 @ X2 @ X3 ) ) | ( ~( p2 @ X3 @ X1 ) ) | ( ~( p2 @ X2 @ X0 ) ) |
% 1.08/0.85 ( p11 @ X0 @ X1 )),
% 1.08/0.85 inference('cnf.neg', [status(esa)], [p11_17])).
% 1.08/0.85 thf(zip_derived_cl16, plain,
% 1.08/0.85 (![X0 : $i, X1 : $i, X2 : $i, X3 : $i]:
% 1.08/0.85 (~ (p11 @ X0 @ X1)
% 1.08/0.85 | ~ (p2 @ X1 @ X2)
% 1.08/0.85 | ~ (p2 @ X0 @ X3)
% 1.08/0.85 | (p11 @ X3 @ X2))),
% 1.08/0.85 inference('cnf', [status(esa)], [zf_stmt_4])).
% 1.08/0.85 thf(zip_derived_cl52, plain,
% 1.08/0.85 (![X0 : $i, X1 : $i]:
% 1.08/0.85 (~ (p11 @ X1 @ X0)
% 1.08/0.85 | ~ (p2 @ X0 @
% 1.08/0.85 (f3 @ (f8 @ c16) @
% 1.08/0.85 (f3 @ (f8 @ (f9 @ c17)) @ (f5 @ (f6 @ (f7 @ c14))))))
% 1.08/0.85 | ~ (p2 @ X1 @ c15))),
% 1.08/0.85 inference('s_sup+', [status(thm)], [zip_derived_cl18, zip_derived_cl16])).
% 1.08/0.85 thf(zip_derived_cl54, plain,
% 1.08/0.85 (![X0 : $i]:
% 1.08/0.85 (~ (p12 @ c15)
% 1.08/0.85 | ~ (p11 @ (f9 @ (f10 @ c15)) @ X0)
% 1.08/0.85 | ~ (p2 @ X0 @
% 1.08/0.85 (f3 @ (f8 @ c16) @
% 1.08/0.85 (f3 @ (f8 @ (f9 @ c17)) @ (f5 @ (f6 @ (f7 @ c14)))))))),
% 1.08/0.85 inference('s_sup-', [status(thm)], [zip_derived_cl32, zip_derived_cl52])).
% 1.08/0.85 thf(c15_is_p12_1, conjecture, (~( p12 @ c15 ))).
% 1.08/0.85 thf(zf_stmt_5, negated_conjecture, (p12 @ c15),
% 1.08/0.85 inference('cnf.neg', [status(esa)], [c15_is_p12_1])).
% 1.08/0.85 thf(zip_derived_cl0, plain, ( (p12 @ c15)),
% 1.08/0.85 inference('cnf', [status(esa)], [zf_stmt_5])).
% 1.08/0.85 thf(zip_derived_cl56, plain,
% 1.08/0.85 (![X0 : $i]:
% 1.08/0.85 (~ (p11 @ (f9 @ (f10 @ c15)) @ X0)
% 1.08/0.85 | ~ (p2 @ X0 @
% 1.08/0.85 (f3 @ (f8 @ c16) @
% 1.08/0.85 (f3 @ (f8 @ (f9 @ c17)) @ (f5 @ (f6 @ (f7 @ c14)))))))),
% 1.08/0.85 inference('demod', [status(thm)], [zip_derived_cl54, zip_derived_cl0])).
% 1.08/0.85 thf(zip_derived_cl2, plain, (![X0 : $i]: (p2 @ X0 @ X0)),
% 1.08/0.85 inference('cnf', [status(esa)], [zf_stmt_1])).
% 1.08/0.85 thf(zip_derived_cl58, plain,
% 1.08/0.85 (~ (p11 @ (f9 @ (f10 @ c15)) @
% 1.08/0.85 (f3 @ (f8 @ c16) @
% 1.08/0.85 (f3 @ (f8 @ (f9 @ c17)) @ (f5 @ (f6 @ (f7 @ c14))))))),
% 1.08/0.85 inference('s_sup+', [status(thm)], [zip_derived_cl56, zip_derived_cl2])).
% 1.08/0.85 thf(p11_21, conjecture,
% 1.08/0.85 (~( ( ~( p11 @ X4 @ X5 ) ) |
% 1.08/0.85 ( p11 @
% 1.08/0.85 X4 @
% 1.08/0.85 ( f3 @
% 1.08/0.85 ( f8 @ X5 ) @ ( f3 @ ( f8 @ X6 ) @ ( f5 @ ( f6 @ ( f7 @ c14 ) ) ) ) ) ) ))).
% 1.08/0.85 thf(zf_stmt_6, negated_conjecture,
% 1.08/0.85 (( ~( p11 @ X4 @ X5 ) ) |
% 1.08/0.85 ( p11 @
% 1.08/0.85 X4 @
% 1.08/0.85 ( f3 @
% 1.08/0.85 ( f8 @ X5 ) @ ( f3 @ ( f8 @ X6 ) @ ( f5 @ ( f6 @ ( f7 @ c14 ) ) ) ) ) )),
% 1.08/0.85 inference('cnf.neg', [status(esa)], [p11_21])).
% 1.08/0.85 thf(zip_derived_cl20, plain,
% 1.08/0.85 (![X0 : $i, X1 : $i, X2 : $i]:
% 1.08/0.85 (~ (p11 @ X0 @ X1)
% 1.08/0.85 | (p11 @ X0 @
% 1.08/0.85 (f3 @ (f8 @ X1) @ (f3 @ (f8 @ X2) @ (f5 @ (f6 @ (f7 @ c14)))))))),
% 1.08/0.85 inference('cnf', [status(esa)], [zf_stmt_6])).
% 1.08/0.85 thf(zip_derived_cl178, plain, (~ (p11 @ (f9 @ (f10 @ c15)) @ c16)),
% 1.08/0.85 inference('s_sup+', [status(thm)], [zip_derived_cl58, zip_derived_cl20])).
% 1.08/0.85 thf(p11_14, conjecture,
% 1.08/0.85 (~( ( ~( p12 @ X9 ) ) | ( p2 @ X9 @ ( f9 @ c17 ) ) | ( p11 @ X9 @ c16 ) ))).
% 1.08/0.85 thf(zf_stmt_7, negated_conjecture,
% 1.08/0.85 (( ~( p12 @ X9 ) ) | ( p2 @ X9 @ ( f9 @ c17 ) ) | ( p11 @ X9 @ c16 )),
% 1.08/0.85 inference('cnf.neg', [status(esa)], [p11_14])).
% 1.08/0.85 thf(zip_derived_cl13, plain,
% 1.08/0.85 (![X0 : $i]: (~ (p12 @ X0) | (p2 @ X0 @ (f9 @ c17)) | (p11 @ X0 @ c16))),
% 1.08/0.85 inference('cnf', [status(esa)], [zf_stmt_7])).
% 1.08/0.85 thf(zip_derived_cl58, plain,
% 1.08/0.85 (~ (p11 @ (f9 @ (f10 @ c15)) @
% 1.08/0.85 (f3 @ (f8 @ c16) @
% 1.08/0.85 (f3 @ (f8 @ (f9 @ c17)) @ (f5 @ (f6 @ (f7 @ c14))))))),
% 1.08/0.85 inference('s_sup+', [status(thm)], [zip_derived_cl56, zip_derived_cl2])).
% 1.08/0.85 thf(zip_derived_cl2, plain, (![X0 : $i]: (p2 @ X0 @ X0)),
% 1.08/0.85 inference('cnf', [status(esa)], [zf_stmt_1])).
% 1.08/0.85 thf(zip_derived_cl16, plain,
% 1.08/0.85 (![X0 : $i, X1 : $i, X2 : $i, X3 : $i]:
% 1.08/0.85 (~ (p11 @ X0 @ X1)
% 1.08/0.85 | ~ (p2 @ X1 @ X2)
% 1.08/0.85 | ~ (p2 @ X0 @ X3)
% 1.08/0.85 | (p11 @ X3 @ X2))),
% 1.08/0.85 inference('cnf', [status(esa)], [zf_stmt_4])).
% 1.08/0.85 thf(zip_derived_cl47, plain,
% 1.08/0.85 (![X0 : $i, X1 : $i, X2 : $i]:
% 1.08/0.85 (~ (p11 @ X1 @ X0) | ~ (p2 @ X1 @ X2) | (p11 @ X2 @ X0))),
% 1.08/0.85 inference('s_sup-', [status(thm)], [zip_derived_cl2, zip_derived_cl16])).
% 1.08/0.85 thf(zip_derived_cl74, plain,
% 1.08/0.85 (![X0 : $i]:
% 1.08/0.85 (~ (p11 @ X0 @
% 1.08/0.85 (f3 @ (f8 @ c16) @
% 1.08/0.85 (f3 @ (f8 @ (f9 @ c17)) @ (f5 @ (f6 @ (f7 @ c14))))))
% 1.08/0.85 | ~ (p2 @ X0 @ (f9 @ (f10 @ c15))))),
% 1.08/0.85 inference('s_sup+', [status(thm)], [zip_derived_cl58, zip_derived_cl47])).
% 1.08/0.85 thf(p11_16, conjecture,
% 1.08/0.85 (~( p11 @
% 1.08/0.85 X7 @
% 1.08/0.85 ( f3 @
% 1.08/0.85 ( f8 @ X8 ) @ ( f3 @ ( f8 @ X7 ) @ ( f5 @ ( f6 @ ( f7 @ c14 ) ) ) ) ) ))).
% 1.08/0.85 thf(zf_stmt_8, negated_conjecture,
% 1.08/0.85 (p11 @
% 1.08/0.85 X7 @
% 1.08/0.85 ( f3 @ ( f8 @ X8 ) @ ( f3 @ ( f8 @ X7 ) @ ( f5 @ ( f6 @ ( f7 @ c14 ) ) ) ) )),
% 1.08/0.85 inference('cnf.neg', [status(esa)], [p11_16])).
% 1.08/0.85 thf(zip_derived_cl15, plain,
% 1.08/0.85 (![X0 : $i, X1 : $i]:
% 1.08/0.85 (p11 @ X0 @
% 1.08/0.85 (f3 @ (f8 @ X1) @ (f3 @ (f8 @ X0) @ (f5 @ (f6 @ (f7 @ c14))))))),
% 1.08/0.85 inference('cnf', [status(esa)], [zf_stmt_8])).
% 1.08/0.85 thf(zip_derived_cl137, plain, (~ (p2 @ (f9 @ c17) @ (f9 @ (f10 @ c15)))),
% 1.08/0.85 inference('s_sup+', [status(thm)], [zip_derived_cl74, zip_derived_cl15])).
% 1.08/0.85 thf(zip_derived_cl3, plain,
% 1.08/0.85 (![X0 : $i]: (~ (p12 @ X0) | (p2 @ X0 @ (f9 @ (f10 @ X0))))),
% 1.08/0.85 inference('cnf', [status(esa)], [zf_stmt_0])).
% 1.08/0.85 thf(zip_derived_cl12, plain,
% 1.08/0.85 (![X0 : $i, X1 : $i, X2 : $i]:
% 1.08/0.85 (~ (p2 @ X0 @ X1) | ~ (p2 @ X0 @ X2) | (p2 @ X2 @ X1))),
% 1.08/0.85 inference('cnf', [status(esa)], [zf_stmt_2])).
% 1.08/0.85 thf(zip_derived_cl29, plain,
% 1.08/0.85 (![X0 : $i, X1 : $i]:
% 1.08/0.85 (~ (p12 @ X0) | ~ (p2 @ X0 @ X1) | (p2 @ X1 @ (f9 @ (f10 @ X0))))),
% 1.08/0.85 inference('s_sup-', [status(thm)], [zip_derived_cl3, zip_derived_cl12])).
% 1.08/0.85 thf(zip_derived_cl153, plain, ((~ (p12 @ c15) | ~ (p2 @ c15 @ (f9 @ c17)))),
% 1.08/0.85 inference('s_sup+', [status(thm)], [zip_derived_cl137, zip_derived_cl29])).
% 1.08/0.85 thf(zip_derived_cl0, plain, ( (p12 @ c15)),
% 1.08/0.85 inference('cnf', [status(esa)], [zf_stmt_5])).
% 1.08/0.85 thf(zip_derived_cl157, plain, (~ (p2 @ c15 @ (f9 @ c17))),
% 1.08/0.85 inference('demod', [status(thm)], [zip_derived_cl153, zip_derived_cl0])).
% 1.08/0.85 thf(zip_derived_cl158, plain, (( (p11 @ c15 @ c16) | ~ (p12 @ c15))),
% 1.08/0.85 inference('s_sup-', [status(thm)], [zip_derived_cl13, zip_derived_cl157])).
% 1.08/0.85 thf(zip_derived_cl0, plain, ( (p12 @ c15)),
% 1.08/0.85 inference('cnf', [status(esa)], [zf_stmt_5])).
% 1.08/0.85 thf(zip_derived_cl159, plain, ( (p11 @ c15 @ c16)),
% 1.08/0.85 inference('demod', [status(thm)], [zip_derived_cl158, zip_derived_cl0])).
% 1.08/0.85 thf(zip_derived_cl3, plain,
% 1.08/0.85 (![X0 : $i]: (~ (p12 @ X0) | (p2 @ X0 @ (f9 @ (f10 @ X0))))),
% 1.08/0.85 inference('cnf', [status(esa)], [zf_stmt_0])).
% 1.08/0.85 thf(zip_derived_cl47, plain,
% 1.08/0.85 (![X0 : $i, X1 : $i, X2 : $i]:
% 1.08/0.85 (~ (p11 @ X1 @ X0) | ~ (p2 @ X1 @ X2) | (p11 @ X2 @ X0))),
% 1.08/0.85 inference('s_sup-', [status(thm)], [zip_derived_cl2, zip_derived_cl16])).
% 1.08/0.85 thf(zip_derived_cl70, plain,
% 1.08/0.85 (![X0 : $i, X1 : $i]:
% 1.08/0.85 (~ (p12 @ X0) | ~ (p11 @ X0 @ X1) | (p11 @ (f9 @ (f10 @ X0)) @ X1))),
% 1.08/0.85 inference('s_sup-', [status(thm)], [zip_derived_cl3, zip_derived_cl47])).
% 1.08/0.85 thf(zip_derived_cl160, plain,
% 1.08/0.85 ((~ (p12 @ c15) | (p11 @ (f9 @ (f10 @ c15)) @ c16))),
% 1.08/0.85 inference('s_sup-', [status(thm)], [zip_derived_cl159, zip_derived_cl70])).
% 1.08/0.85 thf(zip_derived_cl0, plain, ( (p12 @ c15)),
% 1.08/0.85 inference('cnf', [status(esa)], [zf_stmt_5])).
% 1.08/0.85 thf(zip_derived_cl162, plain, ( (p11 @ (f9 @ (f10 @ c15)) @ c16)),
% 1.08/0.85 inference('demod', [status(thm)], [zip_derived_cl160, zip_derived_cl0])).
% 1.08/0.85 thf(zip_derived_cl179, plain, ($false),
% 1.08/0.85 inference('demod', [status(thm)], [zip_derived_cl178, zip_derived_cl162])).
% 1.08/0.85
% 1.08/0.85 % SZS output end Refutation
% 1.08/0.85
% 1.08/0.85
% 1.08/0.85 % Terminating...
% 1.44/0.97 % Runner terminated.
% 1.44/0.98 % Zipperpin 1.5 exiting
%------------------------------------------------------------------------------