%------------------------------------------------------------------------------
% File : LisaST---0.9
% Problem : SEU449+1 : TPTP v9.3.1. Released v3.4.0.
% Transfm : none
% Format : tptp:raw
% Command : casc-portfolio.sh -t 300 /export/starexec/sandbox2/benchmark/theBenchmark.p
% Computer : n016.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 : Sun Sep 27 08:42:06 AM UTC 2026
% Result : Theorem 84.30s 13.44s
% Output : CNFRefutation 84.30s
% Verified :
% SZS Type : Refutation
% Derivation depth : 21
% Number of leaves : 10
% Syntax : Number of formulae : 57 ( 12 unt; 0 def)
% Number of atoms : 141 ( 8 equ)
% Maximal formula atoms : 5 ( 2 avg)
% Number of connectives : 164 ( 80 ~; 63 |; 4 &)
% ( 3 <=>; 14 =>; 0 <=; 0 <~>)
% Maximal formula depth : 11 ( 4 avg)
% Maximal term depth : 4 ( 1 avg)
% Number of predicates : 6 ( 4 usr; 1 prp; 0-3 aty)
% Number of functors : 11 ( 11 usr; 5 con; 0-4 aty)
% Number of variables : 92 ( 1 sgn 39 !; 0 ?)
% Comments :
%------------------------------------------------------------------------------
fof(reflexivity_r1_tarski,axiom,
! [X0,X1] : 'r1$utarski'(X0,X0) ).
fof(redefinition_k6_relset_1,axiom,
! [X0,X1,X2] :
( 'm1$urelset$u1'(X2,X0,X1)
=> 'k6$urelset$u1'(X0,X1,X2) = 'k4$urelat$u1'(X2) ) ).
fof(redefinition_k8_relset_2,axiom,
! [X0,X1,X2,X3] :
( ( 'm1$usubset$u1'(X3,'k1$uzfmisc$u1'('k2$uzfmisc$u1'(X0,X1)))
& 'm1$usubset$u1'(X2,'k1$uzfmisc$u1'(X0)) )
=> 'k8$urelset$u2'(X0,X1,X2,X3) = 'k7$urelset$u2'(X0,X1,X2,X3) ) ).
fof(redefinition_m2_relset_1,axiom,
! [X0,X1,X2] :
( 'm2$urelset$u1'(X2,X0,X1)
<=> 'm1$urelset$u1'(X2,X0,X1) ) ).
fof(dt_k6_relset_1,axiom,
! [X0,X1,X2] :
( 'm1$urelset$u1'(X2,X0,X1)
=> 'm2$urelset$u1'('k6$urelset$u1'(X0,X1,X2),X1,X0) ) ).
fof(dt_k8_relset_2,axiom,
! [X0,X1,X2,X3] :
( ( 'm1$usubset$u1'(X3,'k1$uzfmisc$u1'('k2$uzfmisc$u1'(X0,X1)))
& 'm1$usubset$u1'(X2,'k1$uzfmisc$u1'(X0)) )
=> 'm1$usubset$u1'('k8$urelset$u2'(X0,X1,X2,X3),'k1$uzfmisc$u1'(X1)) ) ).
fof(dt_m2_relset_1,axiom,
! [X0,X1,X2] :
( 'm2$urelset$u1'(X2,X0,X1)
=> 'm1$usubset$u1'(X2,'k1$uzfmisc$u1'('k2$uzfmisc$u1'(X0,X1))) ) ).
fof(t3_subset,axiom,
! [X0,X1] :
( 'm1$usubset$u1'(X0,'k1$uzfmisc$u1'(X1))
<=> 'r1$utarski'(X0,X1) ) ).
fof(t61_relset_2,axiom,
! [X0,X1,X2] :
( 'm1$usubset$u1'(X2,'k1$uzfmisc$u1'(X0))
=> ! [X3] :
( 'm1$usubset$u1'(X3,'k1$uzfmisc$u1'(X1))
=> ! [X4] :
( 'm2$urelset$u1'(X4,X0,X1)
=> ( 'r1$utarski'(X2,'k8$urelset$u2'(X1,X0,X3,'k6$urelset$u1'(X0,X1,X4)))
<=> 'r1$utarski'(X3,'k8$urelset$u2'(X0,X1,X2,X4)) ) ) ) ) ).
fof(t63_relset_2,conjecture,
! [X0,X1,X2] :
( 'm1$usubset$u1'(X2,'k1$uzfmisc$u1'(X0))
=> ! [X3] :
( 'm1$usubset$u1'(X3,'k1$uzfmisc$u1'(X1))
=> ! [X4] :
( 'm2$urelset$u1'(X4,X0,X1)
=> ( 'r1$utarski'(X3,'k8$urelset$u2'(X0,X1,'k8$urelset$u2'(X1,X0,X3,'k6$urelset$u1'(X0,X1,X4)),X4))
& 'r1$utarski'(X2,'k8$urelset$u2'(X1,X0,'k8$urelset$u2'(X0,X1,X2,X4),'k6$urelset$u1'(X0,X1,X4))) ) ) ) ) ).
fof(negated_conjecture,negated_conjecture,
~ ! [X0,X1,X2] :
( 'm1$usubset$u1'(X2,'k1$uzfmisc$u1'(X0))
=> ! [X3] :
( 'm1$usubset$u1'(X3,'k1$uzfmisc$u1'(X1))
=> ! [X4] :
( 'm2$urelset$u1'(X4,X0,X1)
=> ( 'r1$utarski'(X3,'k8$urelset$u2'(X0,X1,'k8$urelset$u2'(X1,X0,X3,'k6$urelset$u1'(X0,X1,X4)),X4))
& 'r1$utarski'(X2,'k8$urelset$u2'(X1,X0,'k8$urelset$u2'(X0,X1,X2,X4),'k6$urelset$u1'(X0,X1,X4))) ) ) ) ),
inference(negate_conjecture,[status(cth)],[t63_relset_2]) ).
cnf(c49,plain,
'r1$utarski'(X0,X0),
inference(clausification,[status(esa)],[reflexivity_r1_tarski]) ).
cnf(c52,plain,
( 'k4$urelat$u1'(X0) = 'k6$urelset$u1'(X1,X2,X0)
| ~ 'm1$urelset$u1'(X0,X1,X2) ),
inference(clausification,[status(esa)],[redefinition_k6_relset_1]) ).
cnf(c53,plain,
( 'k7$urelset$u2'(X1,X2,X3,X0) = 'k8$urelset$u2'(X1,X2,X3,X0)
| ~ 'm1$usubset$u1'(X3,'k1$uzfmisc$u1'(X1))
| ~ 'm1$usubset$u1'(X0,'k1$uzfmisc$u1'('k2$uzfmisc$u1'(X1,X2))) ),
inference(clausification,[status(esa)],[redefinition_k8_relset_2]) ).
cnf(c54,plain,
( 'm1$urelset$u1'(X0,X1,X2)
| ~ 'm2$urelset$u1'(X0,X1,X2) ),
inference(clausification,[status(esa)],[redefinition_m2_relset_1]) ).
cnf(c56,plain,
( 'm2$urelset$u1'('k6$urelset$u1'(X1,X2,X0),X2,X1)
| ~ 'm1$urelset$u1'(X0,X1,X2) ),
inference(clausification,[status(esa)],[dt_k6_relset_1]) ).
cnf(c57,plain,
( 'm1$usubset$u1'('k8$urelset$u2'(X1,X2,X3,X0),'k1$uzfmisc$u1'(X2))
| ~ 'm1$usubset$u1'(X3,'k1$uzfmisc$u1'(X1))
| ~ 'm1$usubset$u1'(X0,'k1$uzfmisc$u1'('k2$uzfmisc$u1'(X1,X2))) ),
inference(clausification,[status(esa)],[dt_k8_relset_2]) ).
cnf(c58,plain,
( 'm1$usubset$u1'(X0,'k1$uzfmisc$u1'('k2$uzfmisc$u1'(X1,X2)))
| ~ 'm2$urelset$u1'(X0,X1,X2) ),
inference(clausification,[status(esa)],[dt_m2_relset_1]) ).
cnf(c60,plain,
( 'r1$utarski'(X0,X1)
| ~ 'm1$usubset$u1'(X0,'k1$uzfmisc$u1'(X1)) ),
inference(clausification,[status(esa)],[t3_subset]) ).
cnf(c61,plain,
( ~ 'r1$utarski'(X0,X1)
| 'm1$usubset$u1'(X0,'k1$uzfmisc$u1'(X1)) ),
inference(clausification,[status(esa)],[t3_subset]) ).
cnf(c62,plain,
( 'r1$utarski'(X3,'k8$urelset$u2'(X1,X2,X4,X0))
| ~ 'r1$utarski'(X4,'k8$urelset$u2'(X2,X1,X3,'k6$urelset$u1'(X1,X2,X0)))
| ~ 'm1$usubset$u1'(X4,'k1$uzfmisc$u1'(X1))
| ~ 'm1$usubset$u1'(X3,'k1$uzfmisc$u1'(X2))
| ~ 'm2$urelset$u1'(X0,X1,X2) ),
inference(clausification,[status(esa)],[t61_relset_2]) ).
cnf(c63,plain,
( ~ 'm1$usubset$u1'(X4,'k1$uzfmisc$u1'(X1))
| ~ 'r1$utarski'(X3,'k8$urelset$u2'(X1,X2,X4,X0))
| 'r1$utarski'(X4,'k8$urelset$u2'(X2,X1,X3,'k6$urelset$u1'(X1,X2,X0)))
| ~ 'm1$usubset$u1'(X3,'k1$uzfmisc$u1'(X2))
| ~ 'm2$urelset$u1'(X0,X1,X2) ),
inference(clausification,[status(esa)],[t61_relset_2]) ).
cnf(c64,plain,
'm1$usubset$u1'(sK108,'k1$uzfmisc$u1'(sK106)),
inference(clausification,[status(esa)],[negated_conjecture]) ).
cnf(c65,plain,
'm1$usubset$u1'(sK109,'k1$uzfmisc$u1'(sK107)),
inference(clausification,[status(esa)],[negated_conjecture]) ).
cnf(c66,plain,
'm2$urelset$u1'(sK110,sK106,sK107),
inference(clausification,[status(esa)],[negated_conjecture]) ).
cnf(c67,plain,
( ~ 'r1$utarski'(sK109,'k8$urelset$u2'(sK106,sK107,'k8$urelset$u2'(sK107,sK106,sK109,'k6$urelset$u1'(sK106,sK107,sK110)),sK110))
| ~ 'r1$utarski'(sK108,'k8$urelset$u2'(sK107,sK106,'k8$urelset$u2'(sK106,sK107,sK108,sK110),'k6$urelset$u1'(sK106,sK107,sK110))) ),
inference(clausification,[status(esa)],[negated_conjecture]) ).
cnf(d0,plain,
( 'r1$utarski'('k8$urelset$u2'(X1,X2,X3,X0),X2)
| ~ 'm1$usubset$u1'(X3,'k1$uzfmisc$u1'(X1))
| ~ 'm1$usubset$u1'(X0,'k1$uzfmisc$u1'('k2$uzfmisc$u1'(X1,X2))) ),
inference(resolution,[status(thm)],[c57,c60]) ).
cnf(d1,plain,
( ~ 'm1$usubset$u1'(X3,'k1$uzfmisc$u1'(X1))
| 'k7$urelset$u2'(X1,X2,X3,X0) = 'k8$urelset$u2'(X1,X2,X3,X0)
| ~ 'm2$urelset$u1'(X0,X1,X2) ),
inference(resolution,[status(thm)],[c58,c53]) ).
cnf(d2,plain,
( ~ 'm1$usubset$u1'(X0,'k1$uzfmisc$u1'(sK106))
| 'k7$urelset$u2'(sK106,sK107,X0,sK110) = 'k8$urelset$u2'(sK106,sK107,X0,sK110) ),
inference(resolution,[status(thm)],[d1,c66]) ).
cnf(d3,plain,
'k7$urelset$u2'(sK106,sK107,sK108,sK110) = 'k8$urelset$u2'(sK106,sK107,sK108,sK110),
inference(resolution,[status(thm)],[d2,c64]) ).
cnf(d4,plain,
( ~ 'm1$usubset$u1'(sK110,'k1$uzfmisc$u1'('k2$uzfmisc$u1'(sK106,sK107)))
| ~ 'm1$usubset$u1'(sK108,'k1$uzfmisc$u1'(sK106))
| 'r1$utarski'('k7$urelset$u2'(sK106,sK107,sK108,sK110),sK107) ),
inference(superposition,[status(thm)],[d3,d0]) ).
cnf(d5,plain,
( 'r1$utarski'('k7$urelset$u2'(sK106,sK107,sK108,sK110),sK107)
| ~ 'm1$usubset$u1'(sK110,'k1$uzfmisc$u1'('k2$uzfmisc$u1'(sK106,sK107))) ),
inference(resolution,[status(thm)],[c64,d4]) ).
cnf(d6,plain,
'm1$urelset$u1'(sK110,sK106,sK107),
inference(resolution,[status(thm)],[c54,c66]) ).
cnf(d7,plain,
'k4$urelat$u1'(sK110) = 'k6$urelset$u1'(sK106,sK107,sK110),
inference(resolution,[status(thm)],[d6,c52]) ).
cnf(d8,plain,
( ~ 'r1$utarski'(sK109,'k8$urelset$u2'(sK106,sK107,'k8$urelset$u2'(sK107,sK106,sK109,'k6$urelset$u1'(sK106,sK107,sK110)),sK110))
| ~ 'r1$utarski'(sK108,'k8$urelset$u2'(sK107,sK106,'k8$urelset$u2'(sK106,sK107,sK108,sK110),'k4$urelat$u1'(sK110))) ),
inference(demodulation,[status(thm)],[c67,d7]) ).
cnf(d9,plain,
( ~ 'r1$utarski'(sK109,'k8$urelset$u2'(sK106,sK107,'k8$urelset$u2'(sK107,sK106,sK109,'k4$urelat$u1'(sK110)),sK110))
| ~ 'r1$utarski'(sK108,'k8$urelset$u2'(sK107,sK106,'k8$urelset$u2'(sK106,sK107,sK108,sK110),'k4$urelat$u1'(sK110))) ),
inference(demodulation,[status(thm)],[d8,d7]) ).
cnf(d10,plain,
( 'r1$utarski'(X1,'k8$urelset$u2'(sK106,sK107,X0,sK110))
| ~ 'm2$urelset$u1'(sK110,sK106,sK107)
| ~ 'm1$usubset$u1'(X0,'k1$uzfmisc$u1'(sK106))
| ~ 'm1$usubset$u1'(X1,'k1$uzfmisc$u1'(sK107))
| ~ 'r1$utarski'(X0,'k8$urelset$u2'(sK107,sK106,X1,'k4$urelat$u1'(sK110))) ),
inference(superposition,[status(thm)],[d7,c62]) ).
cnf(d11,plain,
( ~ 'r1$utarski'(X1,'k8$urelset$u2'(sK107,sK106,X0,'k4$urelat$u1'(sK110)))
| 'r1$utarski'(X0,'k8$urelset$u2'(sK106,sK107,X1,sK110))
| ~ 'm1$usubset$u1'(X1,'k1$uzfmisc$u1'(sK106))
| ~ 'm1$usubset$u1'(X0,'k1$uzfmisc$u1'(sK107)) ),
inference(resolution,[status(thm)],[c66,d10]) ).
cnf(d12,plain,
( 'r1$utarski'(X0,'k8$urelset$u2'(sK106,sK107,'k8$urelset$u2'(sK107,sK106,X0,'k4$urelat$u1'(sK110)),sK110))
| ~ 'm1$usubset$u1'(X0,'k1$uzfmisc$u1'(sK107))
| ~ 'm1$usubset$u1'('k8$urelset$u2'(sK107,sK106,X0,'k4$urelat$u1'(sK110)),'k1$uzfmisc$u1'(sK106)) ),
inference(resolution,[status(thm)],[d11,c49]) ).
cnf(d13,plain,
( ~ 'r1$utarski'(sK108,'k8$urelset$u2'(sK107,sK106,'k8$urelset$u2'(sK106,sK107,sK108,sK110),'k4$urelat$u1'(sK110)))
| ~ 'm1$usubset$u1'('k8$urelset$u2'(sK107,sK106,sK109,'k4$urelat$u1'(sK110)),'k1$uzfmisc$u1'(sK106))
| ~ 'm1$usubset$u1'(sK109,'k1$uzfmisc$u1'(sK107)) ),
inference(resolution,[status(thm)],[d12,d9]) ).
cnf(d14,plain,
( ~ 'r1$utarski'(sK108,'k8$urelset$u2'(sK107,sK106,'k8$urelset$u2'(sK106,sK107,sK108,sK110),'k4$urelat$u1'(sK110)))
| ~ 'm1$usubset$u1'('k8$urelset$u2'(sK107,sK106,sK109,'k4$urelat$u1'(sK110)),'k1$uzfmisc$u1'(sK106)) ),
inference(resolution,[status(thm)],[c65,d13]) ).
cnf(d15,plain,
( ~ 'r1$utarski'(X1,'k8$urelset$u2'(sK106,sK107,X0,sK110))
| ~ 'm2$urelset$u1'(sK110,sK106,sK107)
| ~ 'm1$usubset$u1'(X0,'k1$uzfmisc$u1'(sK106))
| ~ 'm1$usubset$u1'(X1,'k1$uzfmisc$u1'(sK107))
| 'r1$utarski'(X0,'k8$urelset$u2'(sK107,sK106,X1,'k4$urelat$u1'(sK110))) ),
inference(superposition,[status(thm)],[d7,c63]) ).
cnf(d16,plain,
( 'r1$utarski'(X1,'k8$urelset$u2'(sK107,sK106,X0,'k4$urelat$u1'(sK110)))
| ~ 'r1$utarski'(X0,'k8$urelset$u2'(sK106,sK107,X1,sK110))
| ~ 'm1$usubset$u1'(X1,'k1$uzfmisc$u1'(sK106))
| ~ 'm1$usubset$u1'(X0,'k1$uzfmisc$u1'(sK107)) ),
inference(resolution,[status(thm)],[c66,d15]) ).
cnf(d17,plain,
( ~ 'm1$usubset$u1'('k8$urelset$u2'(sK107,sK106,sK109,'k4$urelat$u1'(sK110)),'k1$uzfmisc$u1'(sK106))
| ~ 'r1$utarski'('k8$urelset$u2'(sK106,sK107,sK108,sK110),'k8$urelset$u2'(sK106,sK107,sK108,sK110))
| ~ 'm1$usubset$u1'('k8$urelset$u2'(sK106,sK107,sK108,sK110),'k1$uzfmisc$u1'(sK107))
| ~ 'm1$usubset$u1'(sK108,'k1$uzfmisc$u1'(sK106)) ),
inference(resolution,[status(thm)],[d16,d14]) ).
cnf(d18,plain,
( ~ 'r1$utarski'('k8$urelset$u2'(sK106,sK107,sK108,sK110),'k8$urelset$u2'(sK106,sK107,sK108,sK110))
| ~ 'm1$usubset$u1'('k8$urelset$u2'(sK107,sK106,sK109,'k4$urelat$u1'(sK110)),'k1$uzfmisc$u1'(sK106))
| ~ 'm1$usubset$u1'('k8$urelset$u2'(sK106,sK107,sK108,sK110),'k1$uzfmisc$u1'(sK107)) ),
inference(resolution,[status(thm)],[c64,d17]) ).
cnf(d19,plain,
( ~ 'm1$usubset$u1'('k8$urelset$u2'(sK107,sK106,sK109,'k4$urelat$u1'(sK110)),'k1$uzfmisc$u1'(sK106))
| ~ 'm1$usubset$u1'('k8$urelset$u2'(sK106,sK107,sK108,sK110),'k1$uzfmisc$u1'(sK107)) ),
inference(resolution,[status(thm)],[c49,d18]) ).
cnf(d20,plain,
( ~ 'm1$usubset$u1'(sK109,'k1$uzfmisc$u1'(sK107))
| ~ 'm1$usubset$u1'('k4$urelat$u1'(sK110),'k1$uzfmisc$u1'('k2$uzfmisc$u1'(sK107,sK106)))
| ~ 'm1$usubset$u1'('k8$urelset$u2'(sK106,sK107,sK108,sK110),'k1$uzfmisc$u1'(sK107)) ),
inference(resolution,[status(thm)],[d19,c57]) ).
cnf(d21,plain,
( ~ 'm1$usubset$u1'(sK109,'k1$uzfmisc$u1'(sK107))
| ~ 'm1$usubset$u1'('k7$urelset$u2'(sK106,sK107,sK108,sK110),'k1$uzfmisc$u1'(sK107))
| ~ 'm1$usubset$u1'('k4$urelat$u1'(sK110),'k1$uzfmisc$u1'('k2$uzfmisc$u1'(sK107,sK106))) ),
inference(demodulation,[status(thm)],[d20,d3]) ).
cnf(d22,plain,
( ~ 'm1$usubset$u1'('k7$urelset$u2'(sK106,sK107,sK108,sK110),'k1$uzfmisc$u1'(sK107))
| ~ 'm1$usubset$u1'('k4$urelat$u1'(sK110),'k1$uzfmisc$u1'('k2$uzfmisc$u1'(sK107,sK106))) ),
inference(resolution,[status(thm)],[c65,d21]) ).
cnf(d23,plain,
( ~ 'r1$utarski'('k7$urelset$u2'(sK106,sK107,sK108,sK110),sK107)
| ~ 'm1$usubset$u1'('k4$urelat$u1'(sK110),'k1$uzfmisc$u1'('k2$uzfmisc$u1'(sK107,sK106))) ),
inference(resolution,[status(thm)],[d22,c61]) ).
cnf(d24,plain,
( ~ 'm1$usubset$u1'(sK110,'k1$uzfmisc$u1'('k2$uzfmisc$u1'(sK106,sK107)))
| ~ 'm1$usubset$u1'('k4$urelat$u1'(sK110),'k1$uzfmisc$u1'('k2$uzfmisc$u1'(sK107,sK106))) ),
inference(resolution,[status(thm)],[d23,d5]) ).
cnf(d25,plain,
( ~ 'm2$urelset$u1'('k4$urelat$u1'(sK110),sK107,sK106)
| ~ 'm1$usubset$u1'(sK110,'k1$uzfmisc$u1'('k2$uzfmisc$u1'(sK106,sK107))) ),
inference(resolution,[status(thm)],[d24,c58]) ).
cnf(d26,plain,
( ~ 'm1$urelset$u1'(sK110,sK106,sK107)
| 'm2$urelset$u1'('k4$urelat$u1'(sK110),sK107,sK106) ),
inference(superposition,[status(thm)],[d7,c56]) ).
cnf(d27,plain,
'm2$urelset$u1'('k4$urelat$u1'(sK110),sK107,sK106),
inference(resolution,[status(thm)],[d6,d26]) ).
cnf(d28,plain,
~ 'm1$usubset$u1'(sK110,'k1$uzfmisc$u1'('k2$uzfmisc$u1'(sK106,sK107))),
inference(resolution,[status(thm)],[d27,d25]) ).
cnf(d29,plain,
~ 'm2$urelset$u1'(sK110,sK106,sK107),
inference(resolution,[status(thm)],[d28,c58]) ).
cnf(d30,plain,
$false,
inference(resolution,[status(thm)],[c66,d29]) ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03 % Problem : SEU449+1 : TPTP v9.3.1. Released v3.4.0.
% 0.00/0.04 % Command : casc-portfolio.sh -t 300 /export/starexec/sandbox2/benchmark/theBenchmark.p
% 0.08/0.35 % Computer : n016.cluster.edu
% 0.08/0.35 % Model : x86_64 x86_64
% 0.08/0.35 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.08/0.35 % Memory : 8046.5625MB
% 0.08/0.35 % OS : Linux 6.8.0-71-generic
% 0.08/0.35 % CPULimit : 300
% 0.08/0.35 % WCLimit : 300
% 0.08/0.35 % DateTime : Sat Sep 26 10:05:45 UTC 2026
% 0.08/0.35 % CPUTime :
% 0.08/0.35 Running casc-portfolio.sh -t 300 /export/starexec/sandbox2/benchmark/theBenchmark.p
% 84.30/13.44 % SZS status Theorem for theBenchmark.p
% 84.30/13.44 % SZS output start CNFRefutation for theBenchmark.p
% See solution above
%------------------------------------------------------------------------------