%------------------------------------------------------------------------------
% File : LisaST---0.9
% Problem : AGT007+2 : TPTP v9.3.1. Bugfixed v3.1.0.
% Transfm : none
% Format : tptp:raw
% Command : casc-portfolio.sh -t 300 /export/starexec/sandbox/benchmark/theBenchmark.p
% Computer : n015.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 06:45:35 AM UTC 2026
% Result : Theorem 89.67s 24.26s
% Output : CNFRefutation 89.67s
% Verified :
% SZS Type : Refutation
% Derivation depth : 13
% Number of leaves : 32
% Syntax : Number of formulae : 110 ( 67 unt; 0 def)
% Number of atoms : 194 ( 0 equ)
% Maximal formula atoms : 6 ( 1 avg)
% Number of connectives : 159 ( 75 ~; 65 |; 11 &)
% ( 2 <=>; 6 =>; 0 <=; 0 <~>)
% Maximal formula depth : 8 ( 2 avg)
% Maximal term depth : 4 ( 1 avg)
% Number of predicates : 11 ( 10 usr; 1 prp; 0-4 aty)
% Number of functors : 24 ( 24 usr; 21 con; 0-2 aty)
% Number of variables : 71 ( 4 sgn 23 !; 0 ?)
% Comments :
%------------------------------------------------------------------------------
fof(a1_1,axiom,
! [X0,X1,X2,X3] :
( 'accept$uteam'(X0,X3,X1,X2)
<=> ( 'accept$unumber'(X0,X2)
& 'accept$uleader'(X0,X3)
& 'accept$ucity'(X0,X1) ) ) ).
fof(a1_3,axiom,
! [X0,X1,X2,X3] :
( ( less(X2,X1)
& 'accept$upopulation'(X0,X3,X1) )
=> 'accept$upopulation'(X0,X3,X2) ) ).
fof(a2_11,axiom,
! [X0] :
( ( 'accept$upopulation'(X0,other,n2)
& 'accept$upopulation'(X0,native,n0)
& 'accept$upopulation'(X0,muslim,n8)
& 'accept$upopulation'(X0,christian,n20)
& 'accept$upopulation'(X0,atheist,n70) )
<=> 'accept$ucity'(X0,townb) ) ).
fof(event_204,axiom,
'accept$unumber'(countrybcivilorganization,n3) ).
fof(deduced_44,axiom,
'accept$upopulation'(countrybcivilorganization,other,n5) ).
fof(deduced_45,axiom,
'accept$upopulation'(countrybcivilorganization,muslim,n65) ).
fof(deduced_51,axiom,
'accept$upopulation'(countrybcivilorganization,christian,n20) ).
fof(deduced_52,axiom,
'accept$upopulation'(countrybcivilorganization,atheist,n78) ).
fof(deduced_292,axiom,
'accept$uleader'(countrybcivilorganization,countrybhumanitarianorganization) ).
fof(deduced_296,axiom,
'accept$upopulation'(countrybcivilorganization,native,n0) ).
fof(rdn2,axiom,
'rdn$utranslate'(n2,'rdn$upos'(rdnn(n2))) ).
fof(rdn5,axiom,
'rdn$utranslate'(n5,'rdn$upos'(rdnn(n5))) ).
fof(rdn8,axiom,
'rdn$utranslate'(n8,'rdn$upos'(rdnn(n8))) ).
fof(rdn65,axiom,
'rdn$utranslate'(n65,'rdn$upos'(rdn(rdnn(n5),rdnn(n6)))) ).
fof(rdn70,axiom,
'rdn$utranslate'(n70,'rdn$upos'(rdn(rdnn(n0),rdnn(n7)))) ).
fof(rdn78,axiom,
'rdn$utranslate'(n78,'rdn$upos'(rdn(rdnn(n8),rdnn(n7)))) ).
fof(rdn_digit6,axiom,
'rdn$unon$uzero$udigit'(rdnn(n6)) ).
fof(rdn_digit7,axiom,
'rdn$unon$uzero$udigit'(rdnn(n7)) ).
fof(rdn_positive_less01,axiom,
'rdn$upositive$uless'(rdnn(n0),rdnn(n1)) ).
fof(rdn_positive_less12,axiom,
'rdn$upositive$uless'(rdnn(n1),rdnn(n2)) ).
fof(rdn_positive_less23,axiom,
'rdn$upositive$uless'(rdnn(n2),rdnn(n3)) ).
fof(rdn_positive_less34,axiom,
'rdn$upositive$uless'(rdnn(n3),rdnn(n4)) ).
fof(rdn_positive_less45,axiom,
'rdn$upositive$uless'(rdnn(n4),rdnn(n5)) ).
fof(rdn_positive_less56,axiom,
'rdn$upositive$uless'(rdnn(n5),rdnn(n6)) ).
fof(rdn_positive_less67,axiom,
'rdn$upositive$uless'(rdnn(n6),rdnn(n7)) ).
fof(rdn_positive_less78,axiom,
'rdn$upositive$uless'(rdnn(n7),rdnn(n8)) ).
fof(rdn_positive_less_transitivity,axiom,
! [X0,X1,X2] :
( ( 'rdn$upositive$uless'(rdnn(X1),rdnn(X2))
& 'rdn$upositive$uless'(rdnn(X0),rdnn(X1)) )
=> 'rdn$upositive$uless'(rdnn(X0),rdnn(X2)) ) ).
fof(rdn_positive_less_multi_digit_low,axiom,
! [X0,X1,X2] :
( ( 'rdn$unon$uzero'(X1)
& 'rdn$upositive$uless'(rdnn(X0),rdnn(X2)) )
=> 'rdn$upositive$uless'(rdn(rdnn(X0),X1),rdn(rdnn(X2),X1)) ) ).
fof(rdn_extra_digits_positive_less,axiom,
! [X0,X1,X2] :
( 'rdn$unon$uzero'(X2)
=> 'rdn$upositive$uless'(rdnn(X0),rdn(rdnn(X1),X2)) ) ).
fof(rdn_non_zero_by_digit,axiom,
! [X0] :
( 'rdn$unon$uzero$udigit'(rdnn(X0))
=> 'rdn$unon$uzero'(rdnn(X0)) ) ).
fof(less_entry_point_pos_pos,axiom,
! [X0,X1,X2,X3] :
( ( 'rdn$upositive$uless'(X2,X3)
& 'rdn$utranslate'(X1,'rdn$upos'(X3))
& 'rdn$utranslate'(X0,'rdn$upos'(X2)) )
=> less(X0,X1) ) ).
fof(query_7,conjecture,
'accept$uteam'(countrybcivilorganization,countrybhumanitarianorganization,townb,n3) ).
fof(negated_conjecture,negated_conjecture,
~ 'accept$uteam'(countrybcivilorganization,countrybhumanitarianorganization,townb,n3),
inference(negate_conjecture,[status(cth)],[query_7]) ).
cnf(c3,plain,
( ~ 'accept$ucity'(X0,X2)
| ~ 'accept$unumber'(X0,X3)
| ~ 'accept$uleader'(X0,X1)
| 'accept$uteam'(X0,X1,X2,X3) ),
inference(clausification,[status(esa)],[a1_1]) ).
cnf(c5,plain,
( 'accept$upopulation'(X2,X3,X0)
| ~ 'accept$upopulation'(X2,X3,X1)
| ~ less(X0,X1) ),
inference(clausification,[status(esa)],[a1_3]) ).
cnf(c37,plain,
( ~ 'accept$upopulation'(X0,muslim,n8)
| ~ 'accept$upopulation'(X0,other,n2)
| 'accept$ucity'(X0,townb)
| ~ 'accept$upopulation'(X0,christian,n20)
| ~ 'accept$upopulation'(X0,native,n0)
| ~ 'accept$upopulation'(X0,atheist,n70) ),
inference(clausification,[status(esa)],[a2_11]) ).
cnf(c259,plain,
'accept$unumber'(countrybcivilorganization,n3),
inference(clausification,[status(esa)],[event_204]) ).
cnf(c347,plain,
'accept$upopulation'(countrybcivilorganization,other,n5),
inference(clausification,[status(esa)],[deduced_44]) ).
cnf(c348,plain,
'accept$upopulation'(countrybcivilorganization,muslim,n65),
inference(clausification,[status(esa)],[deduced_45]) ).
cnf(c354,plain,
'accept$upopulation'(countrybcivilorganization,christian,n20),
inference(clausification,[status(esa)],[deduced_51]) ).
cnf(c355,plain,
'accept$upopulation'(countrybcivilorganization,atheist,n78),
inference(clausification,[status(esa)],[deduced_52]) ).
cnf(c595,plain,
'accept$uleader'(countrybcivilorganization,countrybhumanitarianorganization),
inference(clausification,[status(esa)],[deduced_292]) ).
cnf(c599,plain,
'accept$upopulation'(countrybcivilorganization,native,n0),
inference(clausification,[status(esa)],[deduced_296]) ).
cnf(c673,plain,
'rdn$utranslate'(n2,'rdn$upos'(rdnn(n2))),
inference(clausification,[status(esa)],[rdn2]) ).
cnf(c676,plain,
'rdn$utranslate'(n5,'rdn$upos'(rdnn(n5))),
inference(clausification,[status(esa)],[rdn5]) ).
cnf(c679,plain,
'rdn$utranslate'(n8,'rdn$upos'(rdnn(n8))),
inference(clausification,[status(esa)],[rdn8]) ).
cnf(c688,plain,
'rdn$utranslate'(n65,'rdn$upos'(rdn(rdnn(n5),rdnn(n6)))),
inference(clausification,[status(esa)],[rdn65]) ).
cnf(c689,plain,
'rdn$utranslate'(n70,'rdn$upos'(rdn(rdnn(n0),rdnn(n7)))),
inference(clausification,[status(esa)],[rdn70]) ).
cnf(c691,plain,
'rdn$utranslate'(n78,'rdn$upos'(rdn(rdnn(n8),rdnn(n7)))),
inference(clausification,[status(esa)],[rdn78]) ).
cnf(c698,plain,
'rdn$unon$uzero$udigit'(rdnn(n6)),
inference(clausification,[status(esa)],[rdn_digit6]) ).
cnf(c699,plain,
'rdn$unon$uzero$udigit'(rdnn(n7)),
inference(clausification,[status(esa)],[rdn_digit7]) ).
cnf(c702,plain,
'rdn$upositive$uless'(rdnn(n0),rdnn(n1)),
inference(clausification,[status(esa)],[rdn_positive_less01]) ).
cnf(c703,plain,
'rdn$upositive$uless'(rdnn(n1),rdnn(n2)),
inference(clausification,[status(esa)],[rdn_positive_less12]) ).
cnf(c704,plain,
'rdn$upositive$uless'(rdnn(n2),rdnn(n3)),
inference(clausification,[status(esa)],[rdn_positive_less23]) ).
cnf(c705,plain,
'rdn$upositive$uless'(rdnn(n3),rdnn(n4)),
inference(clausification,[status(esa)],[rdn_positive_less34]) ).
cnf(c706,plain,
'rdn$upositive$uless'(rdnn(n4),rdnn(n5)),
inference(clausification,[status(esa)],[rdn_positive_less45]) ).
cnf(c707,plain,
'rdn$upositive$uless'(rdnn(n5),rdnn(n6)),
inference(clausification,[status(esa)],[rdn_positive_less56]) ).
cnf(c708,plain,
'rdn$upositive$uless'(rdnn(n6),rdnn(n7)),
inference(clausification,[status(esa)],[rdn_positive_less67]) ).
cnf(c709,plain,
'rdn$upositive$uless'(rdnn(n7),rdnn(n8)),
inference(clausification,[status(esa)],[rdn_positive_less78]) ).
cnf(c711,plain,
( 'rdn$upositive$uless'(rdnn(X2),rdnn(X1))
| ~ 'rdn$upositive$uless'(rdnn(X2),rdnn(X0))
| ~ 'rdn$upositive$uless'(rdnn(X0),rdnn(X1)) ),
inference(clausification,[status(esa)],[rdn_positive_less_transitivity]) ).
cnf(c713,plain,
( 'rdn$upositive$uless'(rdn(rdnn(X1),X0),rdn(rdnn(X2),X0))
| ~ 'rdn$upositive$uless'(rdnn(X1),rdnn(X2))
| ~ 'rdn$unon$uzero'(X0) ),
inference(clausification,[status(esa)],[rdn_positive_less_multi_digit_low]) ).
cnf(c714,plain,
( 'rdn$upositive$uless'(rdnn(X1),rdn(rdnn(X2),X0))
| ~ 'rdn$unon$uzero'(X0) ),
inference(clausification,[status(esa)],[rdn_extra_digits_positive_less]) ).
cnf(c715,plain,
( 'rdn$unon$uzero'(rdnn(X0))
| ~ 'rdn$unon$uzero$udigit'(rdnn(X0)) ),
inference(clausification,[status(esa)],[rdn_non_zero_by_digit]) ).
cnf(c717,plain,
( less(X3,X0)
| ~ 'rdn$utranslate'(X3,'rdn$upos'(X2))
| ~ 'rdn$upositive$uless'(X2,X1)
| ~ 'rdn$utranslate'(X0,'rdn$upos'(X1)) ),
inference(clausification,[status(esa)],[less_entry_point_pos_pos]) ).
cnf(c727,plain,
~ 'accept$uteam'(countrybcivilorganization,countrybhumanitarianorganization,townb,n3),
inference(clausification,[status(esa)],[negated_conjecture]) ).
cnf(d0,plain,
( 'accept$upopulation'(countrybcivilorganization,other,X0)
| ~ less(X0,n5) ),
inference(resolution,[status(thm)],[c347,c5]) ).
cnf(d1,plain,
( 'accept$upopulation'(countrybcivilorganization,muslim,X0)
| ~ less(X0,n65) ),
inference(resolution,[status(thm)],[c348,c5]) ).
cnf(d2,plain,
( 'accept$upopulation'(countrybcivilorganization,atheist,X0)
| ~ less(X0,n78) ),
inference(resolution,[status(thm)],[c355,c5]) ).
cnf(d3,plain,
( ~ 'accept$upopulation'(countrybcivilorganization,native,n0)
| ~ 'accept$upopulation'(countrybcivilorganization,muslim,n8)
| ~ 'accept$upopulation'(countrybcivilorganization,christian,n20)
| ~ 'accept$upopulation'(countrybcivilorganization,other,n2)
| 'accept$ucity'(countrybcivilorganization,townb)
| ~ less(n70,n78) ),
inference(resolution,[status(thm)],[d2,c37]) ).
cnf(d4,plain,
( ~ 'accept$upopulation'(countrybcivilorganization,native,n0)
| ~ 'accept$upopulation'(countrybcivilorganization,muslim,n8)
| ~ 'accept$upopulation'(countrybcivilorganization,other,n2)
| ~ less(n70,n78)
| 'accept$ucity'(countrybcivilorganization,townb) ),
inference(resolution,[status(thm)],[c354,d3]) ).
cnf(d5,plain,
( ~ 'accept$upopulation'(countrybcivilorganization,muslim,n8)
| ~ 'accept$upopulation'(countrybcivilorganization,other,n2)
| ~ less(n70,n78)
| 'accept$ucity'(countrybcivilorganization,townb) ),
inference(resolution,[status(thm)],[c599,d4]) ).
cnf(d6,plain,
( ~ 'accept$uleader'(countrybcivilorganization,countrybhumanitarianorganization)
| ~ 'accept$unumber'(countrybcivilorganization,n3)
| ~ 'accept$ucity'(countrybcivilorganization,townb) ),
inference(resolution,[status(thm)],[c727,c3]) ).
cnf(d7,plain,
( ~ 'accept$uleader'(countrybcivilorganization,countrybhumanitarianorganization)
| ~ 'accept$ucity'(countrybcivilorganization,townb) ),
inference(resolution,[status(thm)],[c259,d6]) ).
cnf(d8,plain,
~ 'accept$ucity'(countrybcivilorganization,townb),
inference(resolution,[status(thm)],[c595,d7]) ).
cnf(d9,plain,
( ~ 'accept$upopulation'(countrybcivilorganization,muslim,n8)
| ~ 'accept$upopulation'(countrybcivilorganization,other,n2)
| ~ less(n70,n78) ),
inference(resolution,[status(thm)],[d8,d5]) ).
cnf(d10,plain,
( ~ less(n8,n65)
| ~ 'accept$upopulation'(countrybcivilorganization,other,n2)
| ~ less(n70,n78) ),
inference(resolution,[status(thm)],[d9,d1]) ).
cnf(d11,plain,
( ~ 'rdn$upositive$uless'(X1,rdn(rdnn(n5),rdnn(n6)))
| ~ 'rdn$utranslate'(X0,'rdn$upos'(X1))
| less(X0,n65) ),
inference(resolution,[status(thm)],[c717,c688]) ).
cnf(d12,plain,
( ~ 'rdn$unon$uzero'(rdnn(n6))
| ~ 'rdn$utranslate'(X0,'rdn$upos'(rdnn(X1)))
| less(X0,n65) ),
inference(resolution,[status(thm)],[d11,c714]) ).
cnf(d13,plain,
'rdn$unon$uzero'(rdnn(n6)),
inference(resolution,[status(thm)],[c715,c698]) ).
cnf(d14,plain,
( ~ 'rdn$utranslate'(X0,'rdn$upos'(rdnn(X1)))
| less(X0,n65) ),
inference(resolution,[status(thm)],[d13,d12]) ).
cnf(d15,plain,
less(n8,n65),
inference(resolution,[status(thm)],[d14,c679]) ).
cnf(d16,plain,
( ~ 'accept$upopulation'(countrybcivilorganization,other,n2)
| ~ less(n70,n78) ),
inference(resolution,[status(thm)],[d15,d10]) ).
cnf(d17,plain,
( ~ 'rdn$upositive$uless'(X1,rdn(rdnn(n8),rdnn(n7)))
| ~ 'rdn$utranslate'(X0,'rdn$upos'(X1))
| less(X0,n78) ),
inference(resolution,[status(thm)],[c717,c691]) ).
cnf(d18,plain,
( ~ 'rdn$unon$uzero'(rdnn(n7))
| ~ 'rdn$upositive$uless'(rdnn(X1),rdnn(n8))
| ~ 'rdn$utranslate'(X0,'rdn$upos'(rdn(rdnn(X1),rdnn(n7))))
| less(X0,n78) ),
inference(resolution,[status(thm)],[d17,c713]) ).
cnf(d19,plain,
'rdn$unon$uzero'(rdnn(n7)),
inference(resolution,[status(thm)],[c715,c699]) ).
cnf(d20,plain,
( ~ 'rdn$upositive$uless'(rdnn(X1),rdnn(n8))
| ~ 'rdn$utranslate'(X0,'rdn$upos'(rdn(rdnn(X1),rdnn(n7))))
| less(X0,n78) ),
inference(resolution,[status(thm)],[d19,d18]) ).
cnf(d21,plain,
( ~ 'rdn$upositive$uless'(rdnn(n0),rdnn(n8))
| less(n70,n78) ),
inference(resolution,[status(thm)],[d20,c689]) ).
cnf(d22,plain,
( ~ 'rdn$upositive$uless'(rdnn(X0),rdnn(n7))
| 'rdn$upositive$uless'(rdnn(X0),rdnn(n8)) ),
inference(resolution,[status(thm)],[c711,c709]) ).
cnf(d23,plain,
( ~ 'rdn$upositive$uless'(rdnn(X0),rdnn(n6))
| 'rdn$upositive$uless'(rdnn(X0),rdnn(n7)) ),
inference(resolution,[status(thm)],[c711,c708]) ).
cnf(d24,plain,
( ~ 'rdn$upositive$uless'(rdnn(X0),rdnn(n5))
| 'rdn$upositive$uless'(rdnn(X0),rdnn(n6)) ),
inference(resolution,[status(thm)],[c711,c707]) ).
cnf(d25,plain,
( ~ 'rdn$upositive$uless'(rdnn(X0),rdnn(n4))
| 'rdn$upositive$uless'(rdnn(X0),rdnn(n5)) ),
inference(resolution,[status(thm)],[c711,c706]) ).
cnf(d26,plain,
( ~ 'rdn$upositive$uless'(rdnn(X0),rdnn(n3))
| 'rdn$upositive$uless'(rdnn(X0),rdnn(n4)) ),
inference(resolution,[status(thm)],[c711,c705]) ).
cnf(d27,plain,
( ~ 'rdn$upositive$uless'(rdnn(X0),rdnn(n2))
| 'rdn$upositive$uless'(rdnn(X0),rdnn(n3)) ),
inference(resolution,[status(thm)],[c711,c704]) ).
cnf(d28,plain,
( ~ 'rdn$upositive$uless'(rdnn(X0),rdnn(n1))
| 'rdn$upositive$uless'(rdnn(X0),rdnn(n2)) ),
inference(resolution,[status(thm)],[c711,c703]) ).
cnf(d29,plain,
'rdn$upositive$uless'(rdnn(n0),rdnn(n2)),
inference(resolution,[status(thm)],[d28,c702]) ).
cnf(d30,plain,
'rdn$upositive$uless'(rdnn(n0),rdnn(n3)),
inference(resolution,[status(thm)],[d29,d27]) ).
cnf(d31,plain,
'rdn$upositive$uless'(rdnn(n0),rdnn(n4)),
inference(resolution,[status(thm)],[d30,d26]) ).
cnf(d32,plain,
'rdn$upositive$uless'(rdnn(n0),rdnn(n5)),
inference(resolution,[status(thm)],[d31,d25]) ).
cnf(d33,plain,
'rdn$upositive$uless'(rdnn(n0),rdnn(n6)),
inference(resolution,[status(thm)],[d32,d24]) ).
cnf(d34,plain,
'rdn$upositive$uless'(rdnn(n0),rdnn(n7)),
inference(resolution,[status(thm)],[d33,d23]) ).
cnf(d35,plain,
'rdn$upositive$uless'(rdnn(n0),rdnn(n8)),
inference(resolution,[status(thm)],[d34,d22]) ).
cnf(d36,plain,
less(n70,n78),
inference(resolution,[status(thm)],[d35,d21]) ).
cnf(d37,plain,
~ 'accept$upopulation'(countrybcivilorganization,other,n2),
inference(resolution,[status(thm)],[d36,d16]) ).
cnf(d38,plain,
~ less(n2,n5),
inference(resolution,[status(thm)],[d37,d0]) ).
cnf(d39,plain,
( ~ 'rdn$upositive$uless'(X1,rdnn(n5))
| ~ 'rdn$utranslate'(X0,'rdn$upos'(X1))
| less(X0,n5) ),
inference(resolution,[status(thm)],[c717,c676]) ).
cnf(d40,plain,
'rdn$upositive$uless'(rdnn(n2),rdnn(n4)),
inference(resolution,[status(thm)],[d26,c704]) ).
cnf(d41,plain,
'rdn$upositive$uless'(rdnn(n2),rdnn(n5)),
inference(resolution,[status(thm)],[d40,d25]) ).
cnf(d42,plain,
( ~ 'rdn$utranslate'(X0,'rdn$upos'(rdnn(n2)))
| less(X0,n5) ),
inference(resolution,[status(thm)],[d41,d39]) ).
cnf(d43,plain,
less(n2,n5),
inference(resolution,[status(thm)],[d42,c673]) ).
cnf(d44,plain,
$false,
inference(resolution,[status(thm)],[d43,d38]) ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.02 % Problem : AGT007+2 : TPTP v9.3.1. Bugfixed v3.1.0.
% 0.00/0.03 % Command : casc-portfolio.sh -t 300 /export/starexec/sandbox/benchmark/theBenchmark.p
% 0.09/0.36 % Computer : n015.cluster.edu
% 0.09/0.36 % Model : x86_64 x86_64
% 0.09/0.36 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.09/0.36 % Memory : 8046.5625MB
% 0.09/0.36 % OS : Linux 6.8.0-71-generic
% 0.09/0.36 % CPULimit : 300
% 0.09/0.36 % WCLimit : 300
% 0.09/0.36 % DateTime : Sat Sep 26 20:55:14 UTC 2026
% 0.09/0.36 % CPUTime :
% 0.09/0.36 Running casc-portfolio.sh -t 300 /export/starexec/sandbox/benchmark/theBenchmark.p
% 89.67/24.26 % SZS status Theorem for theBenchmark.p
% 89.67/24.26 % SZS output start CNFRefutation for theBenchmark.p
% See solution above
%------------------------------------------------------------------------------