%------------------------------------------------------------------------------
% File : Bliksem---1.12
% Problem : SEU146+1 : TPTP v8.1.0. Released v3.3.0.
% Transfm : none
% Format : tptp:raw
% Command : bliksem %s
% Computer : n021.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 : 0s
% DateTime : Tue Jul 19 07:10:54 EDT 2022
% Result : Theorem 0.89s 1.25s
% Output : Refutation 0.89s
% Verified :
% SZS Type : -
% Comments :
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.10/0.12 % Problem : SEU146+1 : TPTP v8.1.0. Released v3.3.0.
% 0.10/0.13 % Command : bliksem %s
% 0.13/0.34 % Computer : n021.cluster.edu
% 0.13/0.34 % Model : x86_64 x86_64
% 0.13/0.34 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.13/0.34 % Memory : 8042.1875MB
% 0.13/0.34 % OS : Linux 3.10.0-693.el7.x86_64
% 0.13/0.34 % CPULimit : 300
% 0.13/0.34 % DateTime : Sat Jun 18 22:41:17 EDT 2022
% 0.13/0.34 % CPUTime :
% 0.89/1.25 *** allocated 10000 integers for termspace/termends
% 0.89/1.25 *** allocated 10000 integers for clauses
% 0.89/1.25 *** allocated 10000 integers for justifications
% 0.89/1.25 Bliksem 1.12
% 0.89/1.25
% 0.89/1.25
% 0.89/1.25 Automatic Strategy Selection
% 0.89/1.25
% 0.89/1.25
% 0.89/1.25 Clauses:
% 0.89/1.25
% 0.89/1.25 { ! in( X, Y ), ! in( Y, X ) }.
% 0.89/1.25 { ! X = Y, subset( X, Y ) }.
% 0.89/1.25 { ! X = Y, subset( Y, X ) }.
% 0.89/1.25 { ! subset( X, Y ), ! subset( Y, X ), X = Y }.
% 0.89/1.25 { && }.
% 0.89/1.25 { && }.
% 0.89/1.25 { && }.
% 0.89/1.25 { empty( empty_set ) }.
% 0.89/1.25 { ! subset( singleton( X ), Y ), in( X, Y ) }.
% 0.89/1.25 { ! in( X, Y ), subset( singleton( X ), Y ) }.
% 0.89/1.25 { ! subset( X, Y ), in( Z, X ), subset( X, set_difference( Y, singleton( Z
% 0.89/1.25 ) ) ) }.
% 0.89/1.25 { alpha1( skol1, skol4 ), skol1 = empty_set, skol1 = singleton( skol4 ) }.
% 0.89/1.25 { alpha1( skol1, skol4 ), ! subset( skol1, singleton( skol4 ) ) }.
% 0.89/1.25 { ! alpha1( X, Y ), subset( X, singleton( Y ) ) }.
% 0.89/1.25 { ! alpha1( X, Y ), ! X = empty_set }.
% 0.89/1.25 { ! alpha1( X, Y ), ! X = singleton( Y ) }.
% 0.89/1.25 { ! subset( X, singleton( Y ) ), X = empty_set, X = singleton( Y ), alpha1
% 0.89/1.25 ( X, Y ) }.
% 0.89/1.25 { empty( skol2 ) }.
% 0.89/1.25 { ! empty( skol3 ) }.
% 0.89/1.25 { subset( X, X ) }.
% 0.89/1.25 { subset( empty_set, X ) }.
% 0.89/1.25 { ! set_difference( X, Y ) = empty_set, subset( X, Y ) }.
% 0.89/1.25 { ! subset( X, Y ), set_difference( X, Y ) = empty_set }.
% 0.89/1.25 { ! subset( X, empty_set ), X = empty_set }.
% 0.89/1.25
% 0.89/1.25 percentage equality = 0.279070, percentage horn = 0.863636
% 0.89/1.25 This is a problem with some equality
% 0.89/1.25
% 0.89/1.25
% 0.89/1.25
% 0.89/1.25 Options Used:
% 0.89/1.25
% 0.89/1.25 useres = 1
% 0.89/1.25 useparamod = 1
% 0.89/1.25 useeqrefl = 1
% 0.89/1.25 useeqfact = 1
% 0.89/1.25 usefactor = 1
% 0.89/1.25 usesimpsplitting = 0
% 0.89/1.25 usesimpdemod = 5
% 0.89/1.25 usesimpres = 3
% 0.89/1.25
% 0.89/1.25 resimpinuse = 1000
% 0.89/1.25 resimpclauses = 20000
% 0.89/1.25 substype = eqrewr
% 0.89/1.25 backwardsubs = 1
% 0.89/1.25 selectoldest = 5
% 0.89/1.25
% 0.89/1.25 litorderings [0] = split
% 0.89/1.25 litorderings [1] = extend the termordering, first sorting on arguments
% 0.89/1.25
% 0.89/1.25 termordering = kbo
% 0.89/1.25
% 0.89/1.25 litapriori = 0
% 0.89/1.25 termapriori = 1
% 0.89/1.25 litaposteriori = 0
% 0.89/1.25 termaposteriori = 0
% 0.89/1.25 demodaposteriori = 0
% 0.89/1.25 ordereqreflfact = 0
% 0.89/1.25
% 0.89/1.25 litselect = negord
% 0.89/1.25
% 0.89/1.25 maxweight = 15
% 0.89/1.25 maxdepth = 30000
% 0.89/1.25 maxlength = 115
% 0.89/1.25 maxnrvars = 195
% 0.89/1.25 excuselevel = 1
% 0.89/1.25 increasemaxweight = 1
% 0.89/1.25
% 0.89/1.25 maxselected = 10000000
% 0.89/1.25 maxnrclauses = 10000000
% 0.89/1.25
% 0.89/1.25 showgenerated = 0
% 0.89/1.25 showkept = 0
% 0.89/1.25 showselected = 0
% 0.89/1.25 showdeleted = 0
% 0.89/1.25 showresimp = 1
% 0.89/1.25 showstatus = 2000
% 0.89/1.25
% 0.89/1.25 prologoutput = 0
% 0.89/1.25 nrgoals = 5000000
% 0.89/1.25 totalproof = 1
% 0.89/1.25
% 0.89/1.25 Symbols occurring in the translation:
% 0.89/1.25
% 0.89/1.25 {} [0, 0] (w:1, o:2, a:1, s:1, b:0),
% 0.89/1.25 . [1, 2] (w:1, o:21, a:1, s:1, b:0),
% 0.89/1.25 && [3, 0] (w:1, o:4, a:1, s:1, b:0),
% 0.89/1.25 ! [4, 1] (w:0, o:14, a:1, s:1, b:0),
% 0.89/1.25 = [13, 2] (w:1, o:0, a:0, s:1, b:0),
% 0.89/1.25 ==> [14, 2] (w:1, o:0, a:0, s:1, b:0),
% 0.89/1.25 in [37, 2] (w:1, o:45, a:1, s:1, b:0),
% 0.89/1.25 subset [38, 2] (w:1, o:46, a:1, s:1, b:0),
% 0.89/1.25 empty_set [39, 0] (w:1, o:8, a:1, s:1, b:0),
% 0.89/1.25 empty [40, 1] (w:1, o:19, a:1, s:1, b:0),
% 0.89/1.25 singleton [41, 1] (w:1, o:20, a:1, s:1, b:0),
% 0.89/1.25 set_difference [43, 2] (w:1, o:47, a:1, s:1, b:0),
% 0.89/1.25 alpha1 [44, 2] (w:1, o:48, a:1, s:1, b:1),
% 0.89/1.25 skol1 [45, 0] (w:1, o:10, a:1, s:1, b:1),
% 0.89/1.25 skol2 [46, 0] (w:1, o:11, a:1, s:1, b:1),
% 0.89/1.25 skol3 [47, 0] (w:1, o:12, a:1, s:1, b:1),
% 0.89/1.25 skol4 [48, 0] (w:1, o:13, a:1, s:1, b:1).
% 0.89/1.25
% 0.89/1.25
% 0.89/1.25 Starting Search:
% 0.89/1.25
% 0.89/1.25 *** allocated 15000 integers for clauses
% 0.89/1.25 *** allocated 22500 integers for clauses
% 0.89/1.25 *** allocated 33750 integers for clauses
% 0.89/1.25 *** allocated 50625 integers for clauses
% 0.89/1.25 *** allocated 15000 integers for termspace/termends
% 0.89/1.25 Resimplifying inuse:
% 0.89/1.25 Done
% 0.89/1.25
% 0.89/1.25 *** allocated 22500 integers for termspace/termends
% 0.89/1.25 *** allocated 75937 integers for clauses
% 0.89/1.25 *** allocated 33750 integers for termspace/termends
% 0.89/1.25
% 0.89/1.25 Bliksems!, er is een bewijs:
% 0.89/1.25 % SZS status Theorem
% 0.89/1.25 % SZS output start Refutation
% 0.89/1.25
% 0.89/1.25 (0) {G0,W6,D2,L2,V2,M2} I { ! in( X, Y ), ! in( Y, X ) }.
% 0.89/1.25 (1) {G0,W6,D2,L2,V2,M2} I { ! X = Y, subset( X, Y ) }.
% 0.89/1.25 (2) {G0,W9,D2,L3,V2,M3} I { ! subset( X, Y ), ! subset( Y, X ), X = Y }.
% 0.89/1.25 (5) {G0,W7,D3,L2,V2,M2} I { ! subset( singleton( X ), Y ), in( X, Y ) }.
% 0.89/1.25 (6) {G0,W7,D3,L2,V2,M2} I { ! in( X, Y ), subset( singleton( X ), Y ) }.
% 0.89/1.25 (7) {G0,W12,D4,L3,V3,M3} I { ! subset( X, Y ), in( Z, X ), subset( X,
% 0.89/1.25 set_difference( Y, singleton( Z ) ) ) }.
% 0.89/1.25 (8) {G0,W10,D3,L3,V0,M3} I { alpha1( skol1, skol4 ), skol1 ==> empty_set,
% 0.89/1.25 singleton( skol4 ) ==> skol1 }.
% 0.89/1.25 (9) {G0,W7,D3,L2,V0,M2} I { alpha1( skol1, skol4 ), ! subset( skol1,
% 0.89/1.25 singleton( skol4 ) ) }.
% 0.89/1.25 (10) {G0,W7,D3,L2,V2,M2} I { ! alpha1( X, Y ), subset( X, singleton( Y ) )
% 0.89/1.25 }.
% 0.89/1.25 (11) {G0,W6,D2,L2,V2,M2} I { ! alpha1( X, Y ), ! X = empty_set }.
% 0.89/1.25 (12) {G0,W7,D3,L2,V2,M2} I { ! alpha1( X, Y ), ! X = singleton( Y ) }.
% 0.89/1.25 (16) {G0,W3,D2,L1,V1,M1} I { subset( X, X ) }.
% 0.89/1.25 (17) {G0,W3,D2,L1,V1,M1} I { subset( empty_set, X ) }.
% 0.89/1.25 (19) {G0,W8,D3,L2,V2,M2} I { ! subset( X, Y ), set_difference( X, Y ) ==>
% 0.89/1.25 empty_set }.
% 0.89/1.25 (20) {G0,W6,D2,L2,V1,M2} I { ! subset( X, empty_set ), X = empty_set }.
% 0.89/1.25 (21) {G1,W3,D2,L1,V1,M1} F(0) { ! in( X, X ) }.
% 0.89/1.25 (26) {G1,W6,D2,L2,V2,M2} R(20,11) { ! subset( X, empty_set ), ! alpha1( X,
% 0.89/1.25 Y ) }.
% 0.89/1.25 (29) {G1,W6,D2,L2,V2,M2} P(20,17) { subset( X, Y ), ! subset( X, empty_set
% 0.89/1.25 ) }.
% 0.89/1.25 (34) {G1,W6,D2,L2,V2,M2} R(2,1);r(1) { X = Y, ! Y = X }.
% 0.89/1.25 (55) {G2,W4,D3,L1,V1,M1} R(5,21) { ! subset( singleton( X ), X ) }.
% 0.89/1.25 (67) {G3,W4,D3,L1,V1,M1} P(20,55);r(17) { ! subset( singleton( X ),
% 0.89/1.25 empty_set ) }.
% 0.89/1.25 (75) {G1,W11,D3,L3,V2,M3} R(6,2) { ! in( X, Y ), ! subset( Y, singleton( X
% 0.89/1.25 ) ), singleton( X ) = Y }.
% 0.89/1.25 (86) {G1,W14,D4,L3,V3,M3} R(7,6) { in( X, singleton( Y ) ), subset(
% 0.89/1.25 singleton( Y ), set_difference( Z, singleton( X ) ) ), ! in( Y, Z ) }.
% 0.89/1.25 (135) {G2,W3,D2,L1,V0,M1} R(9,29);r(26) { ! subset( skol1, empty_set ) }.
% 0.89/1.25 (139) {G1,W6,D2,L2,V0,M2} P(8,9);f;r(16) { alpha1( skol1, skol4 ), skol1
% 0.89/1.25 ==> empty_set }.
% 0.89/1.25 (144) {G2,W11,D3,L3,V1,M3} P(2,9);d(139);r(17) { alpha1( skol1, skol4 ), !
% 0.89/1.25 subset( singleton( skol4 ), X ), ! subset( X, singleton( skol4 ) ) }.
% 0.89/1.25 (148) {G3,W3,D2,L1,V0,M1} F(144);r(16) { alpha1( skol1, skol4 ) }.
% 0.89/1.25 (159) {G4,W4,D3,L1,V0,M1} R(10,148) { subset( skol1, singleton( skol4 ) )
% 0.89/1.25 }.
% 0.89/1.25 (164) {G1,W7,D3,L2,V2,M2} R(10,2);r(12) { ! alpha1( X, Y ), ! subset(
% 0.89/1.25 singleton( Y ), X ) }.
% 0.89/1.25 (169) {G5,W7,D3,L2,V1,M2} P(34,159) { subset( X, singleton( skol4 ) ), ! X
% 0.89/1.25 = skol1 }.
% 0.89/1.25 (318) {G5,W6,D4,L1,V0,M1} R(19,159) { set_difference( skol1, singleton(
% 0.89/1.25 skol4 ) ) ==> empty_set }.
% 0.89/1.25 (325) {G1,W5,D3,L1,V1,M1} R(19,16) { set_difference( X, X ) ==> empty_set
% 0.89/1.25 }.
% 0.89/1.25 (370) {G4,W4,D3,L1,V0,M1} R(164,148) { ! subset( singleton( skol4 ), skol1
% 0.89/1.25 ) }.
% 0.89/1.25 (376) {G5,W3,D2,L1,V0,M1} R(370,6) { ! in( skol4, skol1 ) }.
% 0.89/1.25 (1521) {G6,W7,D3,L2,V1,M2} P(318,86);r(67) { in( skol4, singleton( X ) ), !
% 0.89/1.25 in( X, skol1 ) }.
% 0.89/1.25 (1540) {G7,W13,D3,L4,V2,M4} P(75,1521) { in( skol4, Y ), ! in( X, skol1 ),
% 0.89/1.25 ! in( X, Y ), ! subset( Y, singleton( X ) ) }.
% 0.89/1.25 (1554) {G8,W7,D3,L2,V1,M2} F(1540);r(376) { ! in( X, skol1 ), ! subset(
% 0.89/1.25 skol1, singleton( X ) ) }.
% 0.89/1.25 (1645) {G9,W13,D4,L3,V2,M3} R(1554,7) { ! subset( skol1, singleton( X ) ),
% 0.89/1.25 ! subset( skol1, Y ), subset( skol1, set_difference( Y, singleton( X ) )
% 0.89/1.25 ) }.
% 0.89/1.25 (1651) {G10,W4,D3,L1,V1,M1} F(1645);d(325);r(135) { ! subset( skol1,
% 0.89/1.25 singleton( X ) ) }.
% 0.89/1.25 (1665) {G11,W0,D0,L0,V0,M0} R(1651,169);q { }.
% 0.89/1.25
% 0.89/1.25
% 0.89/1.25 % SZS output end Refutation
% 0.89/1.25 found a proof!
% 0.89/1.25
% 0.89/1.25
% 0.89/1.25 Unprocessed initial clauses:
% 0.89/1.25
% 0.89/1.25 (1667) {G0,W6,D2,L2,V2,M2} { ! in( X, Y ), ! in( Y, X ) }.
% 0.89/1.25 (1668) {G0,W6,D2,L2,V2,M2} { ! X = Y, subset( X, Y ) }.
% 0.89/1.25 (1669) {G0,W6,D2,L2,V2,M2} { ! X = Y, subset( Y, X ) }.
% 0.89/1.25 (1670) {G0,W9,D2,L3,V2,M3} { ! subset( X, Y ), ! subset( Y, X ), X = Y }.
% 0.89/1.25 (1671) {G0,W1,D1,L1,V0,M1} { && }.
% 0.89/1.25 (1672) {G0,W1,D1,L1,V0,M1} { && }.
% 0.89/1.25 (1673) {G0,W1,D1,L1,V0,M1} { && }.
% 0.89/1.25 (1674) {G0,W2,D2,L1,V0,M1} { empty( empty_set ) }.
% 0.89/1.25 (1675) {G0,W7,D3,L2,V2,M2} { ! subset( singleton( X ), Y ), in( X, Y ) }.
% 0.89/1.25 (1676) {G0,W7,D3,L2,V2,M2} { ! in( X, Y ), subset( singleton( X ), Y ) }.
% 0.89/1.25 (1677) {G0,W12,D4,L3,V3,M3} { ! subset( X, Y ), in( Z, X ), subset( X,
% 0.89/1.25 set_difference( Y, singleton( Z ) ) ) }.
% 0.89/1.25 (1678) {G0,W10,D3,L3,V0,M3} { alpha1( skol1, skol4 ), skol1 = empty_set,
% 0.89/1.25 skol1 = singleton( skol4 ) }.
% 0.89/1.25 (1679) {G0,W7,D3,L2,V0,M2} { alpha1( skol1, skol4 ), ! subset( skol1,
% 0.89/1.25 singleton( skol4 ) ) }.
% 0.89/1.25 (1680) {G0,W7,D3,L2,V2,M2} { ! alpha1( X, Y ), subset( X, singleton( Y ) )
% 0.89/1.25 }.
% 0.89/1.25 (1681) {G0,W6,D2,L2,V2,M2} { ! alpha1( X, Y ), ! X = empty_set }.
% 0.89/1.25 (1682) {G0,W7,D3,L2,V2,M2} { ! alpha1( X, Y ), ! X = singleton( Y ) }.
% 0.89/1.25 (1683) {G0,W14,D3,L4,V2,M4} { ! subset( X, singleton( Y ) ), X = empty_set
% 0.89/1.25 , X = singleton( Y ), alpha1( X, Y ) }.
% 0.89/1.25 (1684) {G0,W2,D2,L1,V0,M1} { empty( skol2 ) }.
% 0.89/1.25 (1685) {G0,W2,D2,L1,V0,M1} { ! empty( skol3 ) }.
% 0.89/1.25 (1686) {G0,W3,D2,L1,V1,M1} { subset( X, X ) }.
% 0.89/1.25 (1687) {G0,W3,D2,L1,V1,M1} { subset( empty_set, X ) }.
% 0.89/1.25 (1688) {G0,W8,D3,L2,V2,M2} { ! set_difference( X, Y ) = empty_set, subset
% 0.89/1.25 ( X, Y ) }.
% 0.89/1.25 (1689) {G0,W8,D3,L2,V2,M2} { ! subset( X, Y ), set_difference( X, Y ) =
% 0.89/1.25 empty_set }.
% 0.89/1.25 (1690) {G0,W6,D2,L2,V1,M2} { ! subset( X, empty_set ), X = empty_set }.
% 0.89/1.25
% 0.89/1.25
% 0.89/1.25 Total Proof:
% 0.89/1.25
% 0.89/1.25 subsumption: (0) {G0,W6,D2,L2,V2,M2} I { ! in( X, Y ), ! in( Y, X ) }.
% 0.89/1.25 parent0: (1667) {G0,W6,D2,L2,V2,M2} { ! in( X, Y ), ! in( Y, X ) }.
% 0.89/1.25 substitution0:
% 0.89/1.25 X := X
% 0.89/1.25 Y := Y
% 0.89/1.25 end
% 0.89/1.25 permutation0:
% 0.89/1.25 0 ==> 0
% 0.89/1.25 1 ==> 1
% 0.89/1.25 end
% 0.89/1.25
% 0.89/1.25 subsumption: (1) {G0,W6,D2,L2,V2,M2} I { ! X = Y, subset( X, Y ) }.
% 0.89/1.25 parent0: (1668) {G0,W6,D2,L2,V2,M2} { ! X = Y, subset( X, Y ) }.
% 0.89/1.25 substitution0:
% 0.89/1.25 X := X
% 0.89/1.25 Y := Y
% 0.89/1.25 end
% 0.89/1.25 permutation0:
% 0.89/1.25 0 ==> 0
% 0.89/1.25 1 ==> 1
% 0.89/1.25 end
% 0.89/1.25
% 0.89/1.25 subsumption: (2) {G0,W9,D2,L3,V2,M3} I { ! subset( X, Y ), ! subset( Y, X )
% 0.89/1.25 , X = Y }.
% 0.89/1.25 parent0: (1670) {G0,W9,D2,L3,V2,M3} { ! subset( X, Y ), ! subset( Y, X ),
% 0.89/1.25 X = Y }.
% 0.89/1.25 substitution0:
% 0.89/1.25 X := X
% 0.89/1.25 Y := Y
% 0.89/1.25 end
% 0.89/1.25 permutation0:
% 0.89/1.25 0 ==> 0
% 0.89/1.25 1 ==> 1
% 0.89/1.25 2 ==> 2
% 0.89/1.25 end
% 0.89/1.25
% 0.89/1.25 subsumption: (5) {G0,W7,D3,L2,V2,M2} I { ! subset( singleton( X ), Y ), in
% 0.89/1.25 ( X, Y ) }.
% 0.89/1.25 parent0: (1675) {G0,W7,D3,L2,V2,M2} { ! subset( singleton( X ), Y ), in( X
% 0.89/1.25 , Y ) }.
% 0.89/1.25 substitution0:
% 0.89/1.25 X := X
% 0.89/1.25 Y := Y
% 0.89/1.25 end
% 0.89/1.25 permutation0:
% 0.89/1.25 0 ==> 0
% 0.89/1.25 1 ==> 1
% 0.89/1.25 end
% 0.89/1.25
% 0.89/1.25 subsumption: (6) {G0,W7,D3,L2,V2,M2} I { ! in( X, Y ), subset( singleton( X
% 0.89/1.25 ), Y ) }.
% 0.89/1.25 parent0: (1676) {G0,W7,D3,L2,V2,M2} { ! in( X, Y ), subset( singleton( X )
% 0.89/1.25 , Y ) }.
% 0.89/1.25 substitution0:
% 0.89/1.25 X := X
% 0.89/1.25 Y := Y
% 0.89/1.25 end
% 0.89/1.25 permutation0:
% 0.89/1.25 0 ==> 0
% 0.89/1.25 1 ==> 1
% 0.89/1.25 end
% 0.89/1.25
% 0.89/1.25 subsumption: (7) {G0,W12,D4,L3,V3,M3} I { ! subset( X, Y ), in( Z, X ),
% 0.89/1.25 subset( X, set_difference( Y, singleton( Z ) ) ) }.
% 0.89/1.25 parent0: (1677) {G0,W12,D4,L3,V3,M3} { ! subset( X, Y ), in( Z, X ),
% 0.89/1.25 subset( X, set_difference( Y, singleton( Z ) ) ) }.
% 0.89/1.25 substitution0:
% 0.89/1.25 X := X
% 0.89/1.25 Y := Y
% 0.89/1.25 Z := Z
% 0.89/1.25 end
% 0.89/1.25 permutation0:
% 0.89/1.25 0 ==> 0
% 0.89/1.25 1 ==> 1
% 0.89/1.25 2 ==> 2
% 0.89/1.25 end
% 0.89/1.25
% 0.89/1.25 eqswap: (1715) {G0,W10,D3,L3,V0,M3} { singleton( skol4 ) = skol1, alpha1(
% 0.89/1.25 skol1, skol4 ), skol1 = empty_set }.
% 0.89/1.25 parent0[2]: (1678) {G0,W10,D3,L3,V0,M3} { alpha1( skol1, skol4 ), skol1 =
% 0.89/1.25 empty_set, skol1 = singleton( skol4 ) }.
% 0.89/1.25 substitution0:
% 0.89/1.25 end
% 0.89/1.25
% 0.89/1.25 subsumption: (8) {G0,W10,D3,L3,V0,M3} I { alpha1( skol1, skol4 ), skol1 ==>
% 0.89/1.25 empty_set, singleton( skol4 ) ==> skol1 }.
% 0.89/1.25 parent0: (1715) {G0,W10,D3,L3,V0,M3} { singleton( skol4 ) = skol1, alpha1
% 0.89/1.25 ( skol1, skol4 ), skol1 = empty_set }.
% 0.89/1.25 substitution0:
% 0.89/1.25 end
% 0.89/1.25 permutation0:
% 0.89/1.25 0 ==> 2
% 0.89/1.25 1 ==> 0
% 0.89/1.25 2 ==> 1
% 0.89/1.25 end
% 0.89/1.25
% 0.89/1.25 subsumption: (9) {G0,W7,D3,L2,V0,M2} I { alpha1( skol1, skol4 ), ! subset(
% 0.89/1.25 skol1, singleton( skol4 ) ) }.
% 0.89/1.25 parent0: (1679) {G0,W7,D3,L2,V0,M2} { alpha1( skol1, skol4 ), ! subset(
% 0.89/1.25 skol1, singleton( skol4 ) ) }.
% 0.89/1.25 substitution0:
% 0.89/1.25 end
% 0.89/1.25 permutation0:
% 0.89/1.25 0 ==> 0
% 0.89/1.25 1 ==> 1
% 0.89/1.25 end
% 0.89/1.25
% 0.89/1.25 subsumption: (10) {G0,W7,D3,L2,V2,M2} I { ! alpha1( X, Y ), subset( X,
% 0.89/1.25 singleton( Y ) ) }.
% 0.89/1.25 parent0: (1680) {G0,W7,D3,L2,V2,M2} { ! alpha1( X, Y ), subset( X,
% 0.89/1.25 singleton( Y ) ) }.
% 0.89/1.25 substitution0:
% 0.89/1.25 X := X
% 0.89/1.25 Y := Y
% 0.89/1.25 end
% 0.89/1.25 permutation0:
% 0.89/1.25 0 ==> 0
% 0.89/1.25 1 ==> 1
% 0.89/1.25 end
% 0.89/1.25
% 0.89/1.25 subsumption: (11) {G0,W6,D2,L2,V2,M2} I { ! alpha1( X, Y ), ! X = empty_set
% 0.89/1.25 }.
% 0.89/1.25 parent0: (1681) {G0,W6,D2,L2,V2,M2} { ! alpha1( X, Y ), ! X = empty_set
% 0.89/1.25 }.
% 0.89/1.25 substitution0:
% 0.89/1.25 X := X
% 0.89/1.25 Y := Y
% 0.89/1.25 end
% 0.89/1.25 permutation0:
% 0.89/1.25 0 ==> 0
% 0.89/1.25 1 ==> 1
% 0.89/1.25 end
% 0.89/1.25
% 0.89/1.25 subsumption: (12) {G0,W7,D3,L2,V2,M2} I { ! alpha1( X, Y ), ! X = singleton
% 0.89/1.25 ( Y ) }.
% 0.89/1.25 parent0: (1682) {G0,W7,D3,L2,V2,M2} { ! alpha1( X, Y ), ! X = singleton( Y
% 0.89/1.25 ) }.
% 0.89/1.25 substitution0:
% 0.89/1.25 X := X
% 0.89/1.25 Y := Y
% 0.89/1.25 end
% 0.89/1.25 permutation0:
% 0.89/1.25 0 ==> 0
% 0.89/1.25 1 ==> 1
% 0.89/1.25 end
% 0.89/1.25
% 0.89/1.25 *** allocated 113905 integers for clauses
% 0.89/1.25 subsumption: (16) {G0,W3,D2,L1,V1,M1} I { subset( X, X ) }.
% 0.89/1.25 parent0: (1686) {G0,W3,D2,L1,V1,M1} { subset( X, X ) }.
% 0.89/1.25 substitution0:
% 0.89/1.25 X := X
% 0.89/1.25 end
% 0.89/1.25 permutation0:
% 0.89/1.25 0 ==> 0
% 0.89/1.25 end
% 0.89/1.25
% 0.89/1.25 subsumption: (17) {G0,W3,D2,L1,V1,M1} I { subset( empty_set, X ) }.
% 0.89/1.25 parent0: (1687) {G0,W3,D2,L1,V1,M1} { subset( empty_set, X ) }.
% 2.24/2.61 substitution0:
% 2.24/2.61 X := X
% 2.24/2.61 end
% 2.24/2.61 permutation0:
% 2.24/2.61 0 ==> 0
% 2.24/2.61 end
% 2.24/2.61
% 2.24/2.61 subsumption: (19) {G0,W8,D3,L2,V2,M2} I { ! subset( X, Y ), set_difference
% 2.24/2.61 ( X, Y ) ==> empty_set }.
% 2.24/2.61 parent0: (1689) {G0,W8,D3,L2,V2,M2} { ! subset( X, Y ), set_difference( X
% 2.24/2.61 , Y ) = empty_set }.
% 2.24/2.61 substitution0:
% 2.24/2.61 X := X
% 2.24/2.61 Y := Y
% 2.24/2.61 end
% 2.24/2.61 permutation0:
% 2.24/2.61 0 ==> 0
% 2.24/2.61 1 ==> 1
% 2.24/2.61 end
% 2.24/2.61
% 2.24/2.61 subsumption: (20) {G0,W6,D2,L2,V1,M2} I { ! subset( X, empty_set ), X =
% 2.24/2.61 empty_set }.
% 2.24/2.61 parent0: (1690) {G0,W6,D2,L2,V1,M2} { ! subset( X, empty_set ), X =
% 2.24/2.61 empty_set }.
% 2.24/2.61 substitution0:
% 2.24/2.61 X := X
% 2.24/2.61 end
% 2.24/2.61 permutation0:
% 2.24/2.61 0 ==> 0
% 2.24/2.61 1 ==> 1
% 2.24/2.61 end
% 2.24/2.61
% 2.24/2.61 factor: (1801) {G0,W3,D2,L1,V1,M1} { ! in( X, X ) }.
% 2.24/2.61 parent0[0, 1]: (0) {G0,W6,D2,L2,V2,M2} I { ! in( X, Y ), ! in( Y, X ) }.
% 2.24/2.61 substitution0:
% 2.24/2.61 X := X
% 2.24/2.61 Y := X
% 2.24/2.61 end
% 2.24/2.61
% 2.24/2.61 subsumption: (21) {G1,W3,D2,L1,V1,M1} F(0) { ! in( X, X ) }.
% 2.24/2.61 parent0: (1801) {G0,W3,D2,L1,V1,M1} { ! in( X, X ) }.
% 2.24/2.61 substitution0:
% 2.24/2.61 X := X
% 2.24/2.61 end
% 2.24/2.61 permutation0:
% 2.24/2.61 0 ==> 0
% 2.24/2.61 end
% 2.24/2.61
% 2.24/2.61 eqswap: (1802) {G0,W6,D2,L2,V1,M2} { empty_set = X, ! subset( X, empty_set
% 2.24/2.61 ) }.
% 2.24/2.61 parent0[1]: (20) {G0,W6,D2,L2,V1,M2} I { ! subset( X, empty_set ), X =
% 2.24/2.61 empty_set }.
% 2.24/2.61 substitution0:
% 2.24/2.61 X := X
% 2.24/2.61 end
% 2.24/2.61
% 2.24/2.61 eqswap: (1803) {G0,W6,D2,L2,V2,M2} { ! empty_set = X, ! alpha1( X, Y ) }.
% 2.24/2.61 parent0[1]: (11) {G0,W6,D2,L2,V2,M2} I { ! alpha1( X, Y ), ! X = empty_set
% 2.24/2.61 }.
% 2.24/2.61 substitution0:
% 2.24/2.61 X := X
% 2.24/2.61 Y := Y
% 2.24/2.61 end
% 2.24/2.61
% 2.24/2.61 resolution: (1804) {G1,W6,D2,L2,V2,M2} { ! alpha1( X, Y ), ! subset( X,
% 2.24/2.61 empty_set ) }.
% 2.24/2.61 parent0[0]: (1803) {G0,W6,D2,L2,V2,M2} { ! empty_set = X, ! alpha1( X, Y )
% 2.24/2.61 }.
% 2.24/2.61 parent1[0]: (1802) {G0,W6,D2,L2,V1,M2} { empty_set = X, ! subset( X,
% 2.24/2.61 empty_set ) }.
% 2.24/2.61 substitution0:
% 2.24/2.61 X := X
% 2.24/2.61 Y := Y
% 2.24/2.61 end
% 2.24/2.61 substitution1:
% 2.24/2.61 X := X
% 2.24/2.61 end
% 2.24/2.61
% 2.24/2.61 subsumption: (26) {G1,W6,D2,L2,V2,M2} R(20,11) { ! subset( X, empty_set ),
% 2.24/2.61 ! alpha1( X, Y ) }.
% 2.24/2.61 parent0: (1804) {G1,W6,D2,L2,V2,M2} { ! alpha1( X, Y ), ! subset( X,
% 2.24/2.61 empty_set ) }.
% 2.24/2.61 substitution0:
% 2.24/2.61 X := X
% 2.24/2.61 Y := Y
% 2.24/2.61 end
% 2.24/2.61 permutation0:
% 2.24/2.61 0 ==> 1
% 2.24/2.61 1 ==> 0
% 2.24/2.61 end
% 2.24/2.61
% 2.24/2.61 *** allocated 15000 integers for justifications
% 2.24/2.61 *** allocated 50625 integers for termspace/termends
% 2.24/2.61 *** allocated 22500 integers for justifications
% 2.24/2.62 eqswap: (1805) {G0,W6,D2,L2,V1,M2} { empty_set = X, ! subset( X, empty_set
% 2.24/2.62 ) }.
% 2.24/2.62 parent0[1]: (20) {G0,W6,D2,L2,V1,M2} I { ! subset( X, empty_set ), X =
% 2.24/2.62 empty_set }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := X
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 paramod: (1806) {G1,W6,D2,L2,V2,M2} { subset( Y, X ), ! subset( Y,
% 2.24/2.62 empty_set ) }.
% 2.24/2.62 parent0[0]: (1805) {G0,W6,D2,L2,V1,M2} { empty_set = X, ! subset( X,
% 2.24/2.62 empty_set ) }.
% 2.24/2.62 parent1[0; 1]: (17) {G0,W3,D2,L1,V1,M1} I { subset( empty_set, X ) }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := Y
% 2.24/2.62 end
% 2.24/2.62 substitution1:
% 2.24/2.62 X := X
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 subsumption: (29) {G1,W6,D2,L2,V2,M2} P(20,17) { subset( X, Y ), ! subset(
% 2.24/2.62 X, empty_set ) }.
% 2.24/2.62 parent0: (1806) {G1,W6,D2,L2,V2,M2} { subset( Y, X ), ! subset( Y,
% 2.24/2.62 empty_set ) }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := Y
% 2.24/2.62 Y := X
% 2.24/2.62 end
% 2.24/2.62 permutation0:
% 2.24/2.62 0 ==> 0
% 2.24/2.62 1 ==> 1
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 eqswap: (2260) {G0,W6,D2,L2,V2,M2} { ! Y = X, subset( X, Y ) }.
% 2.24/2.62 parent0[0]: (1) {G0,W6,D2,L2,V2,M2} I { ! X = Y, subset( X, Y ) }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := X
% 2.24/2.62 Y := Y
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 eqswap: (2261) {G0,W6,D2,L2,V2,M2} { ! Y = X, subset( X, Y ) }.
% 2.24/2.62 parent0[0]: (1) {G0,W6,D2,L2,V2,M2} I { ! X = Y, subset( X, Y ) }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := X
% 2.24/2.62 Y := Y
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 resolution: (2262) {G1,W9,D2,L3,V2,M3} { ! subset( Y, X ), X = Y, ! Y = X
% 2.24/2.62 }.
% 2.24/2.62 parent0[0]: (2) {G0,W9,D2,L3,V2,M3} I { ! subset( X, Y ), ! subset( Y, X )
% 2.24/2.62 , X = Y }.
% 2.24/2.62 parent1[1]: (2260) {G0,W6,D2,L2,V2,M2} { ! Y = X, subset( X, Y ) }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := X
% 2.24/2.62 Y := Y
% 2.24/2.62 end
% 2.24/2.62 substitution1:
% 2.24/2.62 X := X
% 2.24/2.62 Y := Y
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 resolution: (2264) {G1,W9,D2,L3,V2,M3} { Y = X, ! X = Y, ! Y = X }.
% 2.24/2.62 parent0[0]: (2262) {G1,W9,D2,L3,V2,M3} { ! subset( Y, X ), X = Y, ! Y = X
% 2.24/2.62 }.
% 2.24/2.62 parent1[1]: (2261) {G0,W6,D2,L2,V2,M2} { ! Y = X, subset( X, Y ) }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := Y
% 2.24/2.62 Y := X
% 2.24/2.62 end
% 2.24/2.62 substitution1:
% 2.24/2.62 X := X
% 2.24/2.62 Y := Y
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 eqswap: (2266) {G1,W9,D2,L3,V2,M3} { ! Y = X, X = Y, ! Y = X }.
% 2.24/2.62 parent0[2]: (2264) {G1,W9,D2,L3,V2,M3} { Y = X, ! X = Y, ! Y = X }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := Y
% 2.24/2.62 Y := X
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 factor: (2268) {G1,W6,D2,L2,V2,M2} { ! X = Y, Y = X }.
% 2.24/2.62 parent0[0, 2]: (2266) {G1,W9,D2,L3,V2,M3} { ! Y = X, X = Y, ! Y = X }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := Y
% 2.24/2.62 Y := X
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 subsumption: (34) {G1,W6,D2,L2,V2,M2} R(2,1);r(1) { X = Y, ! Y = X }.
% 2.24/2.62 parent0: (2268) {G1,W6,D2,L2,V2,M2} { ! X = Y, Y = X }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := Y
% 2.24/2.62 Y := X
% 2.24/2.62 end
% 2.24/2.62 permutation0:
% 2.24/2.62 0 ==> 1
% 2.24/2.62 1 ==> 0
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 resolution: (2269) {G1,W4,D3,L1,V1,M1} { ! subset( singleton( X ), X ) }.
% 2.24/2.62 parent0[0]: (21) {G1,W3,D2,L1,V1,M1} F(0) { ! in( X, X ) }.
% 2.24/2.62 parent1[1]: (5) {G0,W7,D3,L2,V2,M2} I { ! subset( singleton( X ), Y ), in(
% 2.24/2.62 X, Y ) }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := X
% 2.24/2.62 end
% 2.24/2.62 substitution1:
% 2.24/2.62 X := X
% 2.24/2.62 Y := X
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 subsumption: (55) {G2,W4,D3,L1,V1,M1} R(5,21) { ! subset( singleton( X ), X
% 2.24/2.62 ) }.
% 2.24/2.62 parent0: (2269) {G1,W4,D3,L1,V1,M1} { ! subset( singleton( X ), X ) }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := X
% 2.24/2.62 end
% 2.24/2.62 permutation0:
% 2.24/2.62 0 ==> 0
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 paramod: (2271) {G1,W7,D3,L2,V1,M2} { ! subset( empty_set, X ), ! subset(
% 2.24/2.62 singleton( X ), empty_set ) }.
% 2.24/2.62 parent0[1]: (20) {G0,W6,D2,L2,V1,M2} I { ! subset( X, empty_set ), X =
% 2.24/2.62 empty_set }.
% 2.24/2.62 parent1[0; 2]: (55) {G2,W4,D3,L1,V1,M1} R(5,21) { ! subset( singleton( X )
% 2.24/2.62 , X ) }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := singleton( X )
% 2.24/2.62 end
% 2.24/2.62 substitution1:
% 2.24/2.62 X := X
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 resolution: (2282) {G1,W4,D3,L1,V1,M1} { ! subset( singleton( X ),
% 2.24/2.62 empty_set ) }.
% 2.24/2.62 parent0[0]: (2271) {G1,W7,D3,L2,V1,M2} { ! subset( empty_set, X ), !
% 2.24/2.62 subset( singleton( X ), empty_set ) }.
% 2.24/2.62 parent1[0]: (17) {G0,W3,D2,L1,V1,M1} I { subset( empty_set, X ) }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := X
% 2.24/2.62 end
% 2.24/2.62 substitution1:
% 2.24/2.62 X := X
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 subsumption: (67) {G3,W4,D3,L1,V1,M1} P(20,55);r(17) { ! subset( singleton
% 2.24/2.62 ( X ), empty_set ) }.
% 2.24/2.62 parent0: (2282) {G1,W4,D3,L1,V1,M1} { ! subset( singleton( X ), empty_set
% 2.24/2.62 ) }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := X
% 2.24/2.62 end
% 2.24/2.62 permutation0:
% 2.24/2.62 0 ==> 0
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 resolution: (2283) {G1,W11,D3,L3,V2,M3} { ! subset( Y, singleton( X ) ),
% 2.24/2.62 singleton( X ) = Y, ! in( X, Y ) }.
% 2.24/2.62 parent0[0]: (2) {G0,W9,D2,L3,V2,M3} I { ! subset( X, Y ), ! subset( Y, X )
% 2.24/2.62 , X = Y }.
% 2.24/2.62 parent1[1]: (6) {G0,W7,D3,L2,V2,M2} I { ! in( X, Y ), subset( singleton( X
% 2.24/2.62 ), Y ) }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := singleton( X )
% 2.24/2.62 Y := Y
% 2.24/2.62 end
% 2.24/2.62 substitution1:
% 2.24/2.62 X := X
% 2.24/2.62 Y := Y
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 subsumption: (75) {G1,W11,D3,L3,V2,M3} R(6,2) { ! in( X, Y ), ! subset( Y,
% 2.24/2.62 singleton( X ) ), singleton( X ) = Y }.
% 2.24/2.62 parent0: (2283) {G1,W11,D3,L3,V2,M3} { ! subset( Y, singleton( X ) ),
% 2.24/2.62 singleton( X ) = Y, ! in( X, Y ) }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := X
% 2.24/2.62 Y := Y
% 2.24/2.62 end
% 2.24/2.62 permutation0:
% 2.24/2.62 0 ==> 1
% 2.24/2.62 1 ==> 2
% 2.24/2.62 2 ==> 0
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 resolution: (2285) {G1,W14,D4,L3,V3,M3} { in( Z, singleton( X ) ), subset
% 2.24/2.62 ( singleton( X ), set_difference( Y, singleton( Z ) ) ), ! in( X, Y ) }.
% 2.24/2.62 parent0[0]: (7) {G0,W12,D4,L3,V3,M3} I { ! subset( X, Y ), in( Z, X ),
% 2.24/2.62 subset( X, set_difference( Y, singleton( Z ) ) ) }.
% 2.24/2.62 parent1[1]: (6) {G0,W7,D3,L2,V2,M2} I { ! in( X, Y ), subset( singleton( X
% 2.24/2.62 ), Y ) }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := singleton( X )
% 2.24/2.62 Y := Y
% 2.24/2.62 Z := Z
% 2.24/2.62 end
% 2.24/2.62 substitution1:
% 2.24/2.62 X := X
% 2.24/2.62 Y := Y
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 subsumption: (86) {G1,W14,D4,L3,V3,M3} R(7,6) { in( X, singleton( Y ) ),
% 2.24/2.62 subset( singleton( Y ), set_difference( Z, singleton( X ) ) ), ! in( Y, Z
% 2.24/2.62 ) }.
% 2.24/2.62 parent0: (2285) {G1,W14,D4,L3,V3,M3} { in( Z, singleton( X ) ), subset(
% 2.24/2.62 singleton( X ), set_difference( Y, singleton( Z ) ) ), ! in( X, Y ) }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := Y
% 2.24/2.62 Y := Z
% 2.24/2.62 Z := X
% 2.24/2.62 end
% 2.24/2.62 permutation0:
% 2.24/2.62 0 ==> 0
% 2.24/2.62 1 ==> 1
% 2.24/2.62 2 ==> 2
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 resolution: (2286) {G1,W6,D2,L2,V0,M2} { alpha1( skol1, skol4 ), ! subset
% 2.24/2.62 ( skol1, empty_set ) }.
% 2.24/2.62 parent0[1]: (9) {G0,W7,D3,L2,V0,M2} I { alpha1( skol1, skol4 ), ! subset(
% 2.24/2.62 skol1, singleton( skol4 ) ) }.
% 2.24/2.62 parent1[0]: (29) {G1,W6,D2,L2,V2,M2} P(20,17) { subset( X, Y ), ! subset( X
% 2.24/2.62 , empty_set ) }.
% 2.24/2.62 substitution0:
% 2.24/2.62 end
% 2.24/2.62 substitution1:
% 2.24/2.62 X := skol1
% 2.24/2.62 Y := singleton( skol4 )
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 resolution: (2287) {G2,W6,D2,L2,V0,M2} { ! subset( skol1, empty_set ), !
% 2.24/2.62 subset( skol1, empty_set ) }.
% 2.24/2.62 parent0[1]: (26) {G1,W6,D2,L2,V2,M2} R(20,11) { ! subset( X, empty_set ), !
% 2.24/2.62 alpha1( X, Y ) }.
% 2.24/2.62 parent1[0]: (2286) {G1,W6,D2,L2,V0,M2} { alpha1( skol1, skol4 ), ! subset
% 2.24/2.62 ( skol1, empty_set ) }.
% 2.24/2.62 substitution0:
% 2.24/2.62 X := skol1
% 2.24/2.62 Y := skol4
% 2.24/2.62 end
% 2.24/2.62 substitution1:
% 2.24/2.62 end
% 2.24/2.62
% 2.24/2.62 factor: (2288) {G2,W3,D2,L1,V0,M1} { ! subset( skol1, empty_set ) }.
% 2.24/2.62 parent0Cputime limit exceeded (core dumped)
%------------------------------------------------------------------------------