TSTP Solution File: SET027+3 by Bliksem---1.12
View Problem
- Process Solution
%------------------------------------------------------------------------------
% File : Bliksem---1.12
% Problem : SET027+3 : TPTP v8.1.0. Released v2.2.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 : Mon Jul 18 22:45:44 EDT 2022
% Result : Theorem 0.72s 1.10s
% Output : Refutation 0.72s
% Verified :
% SZS Type : -
% Comments :
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.03/0.13 % Problem : SET027+3 : TPTP v8.1.0. Released v2.2.0.
% 0.13/0.14 % Command : bliksem %s
% 0.14/0.35 % Computer : n021.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 % DateTime : Sun Jul 10 04:38:52 EDT 2022
% 0.14/0.35 % CPUTime :
% 0.72/1.10 *** allocated 10000 integers for termspace/termends
% 0.72/1.10 *** allocated 10000 integers for clauses
% 0.72/1.10 *** allocated 10000 integers for justifications
% 0.72/1.10 Bliksem 1.12
% 0.72/1.10
% 0.72/1.10
% 0.72/1.10 Automatic Strategy Selection
% 0.72/1.10
% 0.72/1.10
% 0.72/1.10 Clauses:
% 0.72/1.10
% 0.72/1.10 { ! subset( X, Y ), ! member( Z, X ), member( Z, Y ) }.
% 0.72/1.10 { ! member( skol1( Z, Y ), Y ), subset( X, Y ) }.
% 0.72/1.10 { member( skol1( X, Y ), X ), subset( X, Y ) }.
% 0.72/1.10 { subset( X, X ) }.
% 0.72/1.10 { subset( skol2, skol4 ) }.
% 0.72/1.10 { subset( skol4, skol3 ) }.
% 0.72/1.10 { ! subset( skol2, skol3 ) }.
% 0.72/1.10
% 0.72/1.10 percentage equality = 0.000000, percentage horn = 0.857143
% 0.72/1.10 This a non-horn, non-equality problem
% 0.72/1.10
% 0.72/1.10
% 0.72/1.10 Options Used:
% 0.72/1.10
% 0.72/1.10 useres = 1
% 0.72/1.10 useparamod = 0
% 0.72/1.10 useeqrefl = 0
% 0.72/1.10 useeqfact = 0
% 0.72/1.10 usefactor = 1
% 0.72/1.10 usesimpsplitting = 0
% 0.72/1.10 usesimpdemod = 0
% 0.72/1.10 usesimpres = 3
% 0.72/1.10
% 0.72/1.10 resimpinuse = 1000
% 0.72/1.10 resimpclauses = 20000
% 0.72/1.10 substype = standard
% 0.72/1.10 backwardsubs = 1
% 0.72/1.10 selectoldest = 5
% 0.72/1.10
% 0.72/1.10 litorderings [0] = split
% 0.72/1.10 litorderings [1] = liftord
% 0.72/1.10
% 0.72/1.10 termordering = none
% 0.72/1.10
% 0.72/1.10 litapriori = 1
% 0.72/1.10 termapriori = 0
% 0.72/1.10 litaposteriori = 0
% 0.72/1.10 termaposteriori = 0
% 0.72/1.10 demodaposteriori = 0
% 0.72/1.10 ordereqreflfact = 0
% 0.72/1.10
% 0.72/1.10 litselect = none
% 0.72/1.10
% 0.72/1.10 maxweight = 15
% 0.72/1.10 maxdepth = 30000
% 0.72/1.10 maxlength = 115
% 0.72/1.10 maxnrvars = 195
% 0.72/1.10 excuselevel = 1
% 0.72/1.10 increasemaxweight = 1
% 0.72/1.10
% 0.72/1.10 maxselected = 10000000
% 0.72/1.10 maxnrclauses = 10000000
% 0.72/1.10
% 0.72/1.10 showgenerated = 0
% 0.72/1.10 showkept = 0
% 0.72/1.10 showselected = 0
% 0.72/1.10 showdeleted = 0
% 0.72/1.10 showresimp = 1
% 0.72/1.10 showstatus = 2000
% 0.72/1.10
% 0.72/1.10 prologoutput = 0
% 0.72/1.10 nrgoals = 5000000
% 0.72/1.10 totalproof = 1
% 0.72/1.10
% 0.72/1.10 Symbols occurring in the translation:
% 0.72/1.10
% 0.72/1.10 {} [0, 0] (w:1, o:2, a:1, s:1, b:0),
% 0.72/1.10 . [1, 2] (w:1, o:17, a:1, s:1, b:0),
% 0.72/1.10 ! [4, 1] (w:0, o:12, a:1, s:1, b:0),
% 0.72/1.10 = [13, 2] (w:1, o:0, a:0, s:1, b:0),
% 0.72/1.10 ==> [14, 2] (w:1, o:0, a:0, s:1, b:0),
% 0.72/1.10 subset [37, 2] (w:1, o:41, a:1, s:1, b:0),
% 0.72/1.10 member [39, 2] (w:1, o:42, a:1, s:1, b:0),
% 0.72/1.10 skol1 [40, 2] (w:1, o:43, a:1, s:1, b:0),
% 0.72/1.10 skol2 [41, 0] (w:1, o:9, a:1, s:1, b:0),
% 0.72/1.10 skol3 [42, 0] (w:1, o:10, a:1, s:1, b:0),
% 0.72/1.10 skol4 [43, 0] (w:1, o:11, a:1, s:1, b:0).
% 0.72/1.10
% 0.72/1.10
% 0.72/1.10 Starting Search:
% 0.72/1.10
% 0.72/1.10
% 0.72/1.10 Bliksems!, er is een bewijs:
% 0.72/1.10 % SZS status Theorem
% 0.72/1.10 % SZS output start Refutation
% 0.72/1.10
% 0.72/1.10 (0) {G0,W9,D2,L3,V3,M2} I { ! subset( X, Y ), member( Z, Y ), ! member( Z,
% 0.72/1.10 X ) }.
% 0.72/1.10 (1) {G0,W8,D3,L2,V3,M1} I { subset( X, Y ), ! member( skol1( Z, Y ), Y )
% 0.72/1.10 }.
% 0.72/1.10 (2) {G0,W8,D3,L2,V2,M1} I { subset( X, Y ), member( skol1( X, Y ), X ) }.
% 0.72/1.10 (4) {G0,W3,D2,L1,V0,M1} I { subset( skol2, skol4 ) }.
% 0.72/1.10 (5) {G0,W3,D2,L1,V0,M1} I { subset( skol4, skol3 ) }.
% 0.72/1.10 (6) {G0,W3,D2,L1,V0,M1} I { ! subset( skol2, skol3 ) }.
% 0.72/1.10 (8) {G1,W11,D3,L3,V4,M1} R(0,1) { ! subset( X, Y ), subset( T, Y ), !
% 0.72/1.10 member( skol1( Z, Y ), X ) }.
% 0.72/1.10 (9) {G1,W11,D3,L3,V3,M1} R(2,0) { subset( X, Y ), ! subset( X, Z ), member
% 0.72/1.10 ( skol1( X, Y ), Z ) }.
% 0.72/1.10 (11) {G2,W12,D2,L4,V4,M4} R(9,8) { ! subset( X, Z ), ! subset( Z, Y ),
% 0.72/1.10 subset( T, Y ), subset( X, Y ) }.
% 0.72/1.10 (13) {G3,W9,D2,L3,V3,M3} F(11) { ! subset( Y, Z ), subset( X, Z ), ! subset
% 0.72/1.10 ( X, Y ) }.
% 0.72/1.10 (16) {G4,W6,D2,L2,V1,M1} R(13,4) { subset( skol2, X ), ! subset( skol4, X )
% 0.72/1.10 }.
% 0.72/1.10 (24) {G5,W0,D0,L0,V0,M0} R(16,5);r(6) { }.
% 0.72/1.10
% 0.72/1.10
% 0.72/1.10 % SZS output end Refutation
% 0.72/1.10 found a proof!
% 0.72/1.10
% 0.72/1.10
% 0.72/1.10 Unprocessed initial clauses:
% 0.72/1.10
% 0.72/1.10 (26) {G0,W9,D2,L3,V3,M3} { ! subset( X, Y ), ! member( Z, X ), member( Z,
% 0.72/1.10 Y ) }.
% 0.72/1.10 (27) {G0,W8,D3,L2,V3,M2} { ! member( skol1( Z, Y ), Y ), subset( X, Y )
% 0.72/1.10 }.
% 0.72/1.10 (28) {G0,W8,D3,L2,V2,M2} { member( skol1( X, Y ), X ), subset( X, Y ) }.
% 0.72/1.10 (29) {G0,W3,D2,L1,V1,M1} { subset( X, X ) }.
% 0.72/1.10 (30) {G0,W3,D2,L1,V0,M1} { subset( skol2, skol4 ) }.
% 0.72/1.10 (31) {G0,W3,D2,L1,V0,M1} { subset( skol4, skol3 ) }.
% 0.72/1.10 (32) {G0,W3,D2,L1,V0,M1} { ! subset( skol2, skol3 ) }.
% 0.72/1.10
% 0.72/1.10
% 0.72/1.10 Total Proof:
% 0.72/1.10
% 0.72/1.10 subsumption: (0) {G0,W9,D2,L3,V3,M2} I { ! subset( X, Y ), member( Z, Y ),
% 0.72/1.10 ! member( Z, X ) }.
% 0.72/1.10 parent0: (26) {G0,W9,D2,L3,V3,M3} { ! subset( X, Y ), ! member( Z, X ),
% 0.72/1.10 member( Z, Y ) }.
% 0.72/1.10 substitution0:
% 0.72/1.10 X := X
% 0.72/1.10 Y := Y
% 0.72/1.10 Z := Z
% 0.72/1.10 end
% 0.72/1.10 permutation0:
% 0.72/1.10 0 ==> 0
% 0.72/1.10 1 ==> 2
% 0.72/1.10 2 ==> 1
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 subsumption: (1) {G0,W8,D3,L2,V3,M1} I { subset( X, Y ), ! member( skol1( Z
% 0.72/1.10 , Y ), Y ) }.
% 0.72/1.10 parent0: (27) {G0,W8,D3,L2,V3,M2} { ! member( skol1( Z, Y ), Y ), subset(
% 0.72/1.10 X, Y ) }.
% 0.72/1.10 substitution0:
% 0.72/1.10 X := X
% 0.72/1.10 Y := Y
% 0.72/1.10 Z := Z
% 0.72/1.10 end
% 0.72/1.10 permutation0:
% 0.72/1.10 0 ==> 1
% 0.72/1.10 1 ==> 0
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 subsumption: (2) {G0,W8,D3,L2,V2,M1} I { subset( X, Y ), member( skol1( X,
% 0.72/1.10 Y ), X ) }.
% 0.72/1.10 parent0: (28) {G0,W8,D3,L2,V2,M2} { member( skol1( X, Y ), X ), subset( X
% 0.72/1.10 , Y ) }.
% 0.72/1.10 substitution0:
% 0.72/1.10 X := X
% 0.72/1.10 Y := Y
% 0.72/1.10 end
% 0.72/1.10 permutation0:
% 0.72/1.10 0 ==> 1
% 0.72/1.10 1 ==> 0
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 subsumption: (4) {G0,W3,D2,L1,V0,M1} I { subset( skol2, skol4 ) }.
% 0.72/1.10 parent0: (30) {G0,W3,D2,L1,V0,M1} { subset( skol2, skol4 ) }.
% 0.72/1.10 substitution0:
% 0.72/1.10 end
% 0.72/1.10 permutation0:
% 0.72/1.10 0 ==> 0
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 subsumption: (5) {G0,W3,D2,L1,V0,M1} I { subset( skol4, skol3 ) }.
% 0.72/1.10 parent0: (31) {G0,W3,D2,L1,V0,M1} { subset( skol4, skol3 ) }.
% 0.72/1.10 substitution0:
% 0.72/1.10 end
% 0.72/1.10 permutation0:
% 0.72/1.10 0 ==> 0
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 subsumption: (6) {G0,W3,D2,L1,V0,M1} I { ! subset( skol2, skol3 ) }.
% 0.72/1.10 parent0: (32) {G0,W3,D2,L1,V0,M1} { ! subset( skol2, skol3 ) }.
% 0.72/1.10 substitution0:
% 0.72/1.10 end
% 0.72/1.10 permutation0:
% 0.72/1.10 0 ==> 0
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 resolution: (35) {G1,W11,D3,L3,V4,M3} { subset( X, Y ), ! subset( T, Y ),
% 0.72/1.10 ! member( skol1( Z, Y ), T ) }.
% 0.72/1.10 parent0[1]: (1) {G0,W8,D3,L2,V3,M1} I { subset( X, Y ), ! member( skol1( Z
% 0.72/1.10 , Y ), Y ) }.
% 0.72/1.10 parent1[1]: (0) {G0,W9,D2,L3,V3,M2} I { ! subset( X, Y ), member( Z, Y ), !
% 0.72/1.10 member( Z, X ) }.
% 0.72/1.10 substitution0:
% 0.72/1.10 X := X
% 0.72/1.10 Y := Y
% 0.72/1.10 Z := Z
% 0.72/1.10 end
% 0.72/1.10 substitution1:
% 0.72/1.10 X := T
% 0.72/1.10 Y := Y
% 0.72/1.10 Z := skol1( Z, Y )
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 subsumption: (8) {G1,W11,D3,L3,V4,M1} R(0,1) { ! subset( X, Y ), subset( T
% 0.72/1.10 , Y ), ! member( skol1( Z, Y ), X ) }.
% 0.72/1.10 parent0: (35) {G1,W11,D3,L3,V4,M3} { subset( X, Y ), ! subset( T, Y ), !
% 0.72/1.10 member( skol1( Z, Y ), T ) }.
% 0.72/1.10 substitution0:
% 0.72/1.10 X := T
% 0.72/1.10 Y := Y
% 0.72/1.10 Z := Z
% 0.72/1.10 T := X
% 0.72/1.10 end
% 0.72/1.10 permutation0:
% 0.72/1.10 0 ==> 1
% 0.72/1.10 1 ==> 0
% 0.72/1.10 2 ==> 2
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 resolution: (37) {G1,W11,D3,L3,V3,M3} { ! subset( X, Y ), member( skol1( X
% 0.72/1.10 , Z ), Y ), subset( X, Z ) }.
% 0.72/1.10 parent0[2]: (0) {G0,W9,D2,L3,V3,M2} I { ! subset( X, Y ), member( Z, Y ), !
% 0.72/1.10 member( Z, X ) }.
% 0.72/1.10 parent1[1]: (2) {G0,W8,D3,L2,V2,M1} I { subset( X, Y ), member( skol1( X, Y
% 0.72/1.10 ), X ) }.
% 0.72/1.10 substitution0:
% 0.72/1.10 X := X
% 0.72/1.10 Y := Y
% 0.72/1.10 Z := skol1( X, Z )
% 0.72/1.10 end
% 0.72/1.10 substitution1:
% 0.72/1.10 X := X
% 0.72/1.10 Y := Z
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 subsumption: (9) {G1,W11,D3,L3,V3,M1} R(2,0) { subset( X, Y ), ! subset( X
% 0.72/1.10 , Z ), member( skol1( X, Y ), Z ) }.
% 0.72/1.10 parent0: (37) {G1,W11,D3,L3,V3,M3} { ! subset( X, Y ), member( skol1( X, Z
% 0.72/1.10 ), Y ), subset( X, Z ) }.
% 0.72/1.10 substitution0:
% 0.72/1.10 X := X
% 0.72/1.10 Y := Z
% 0.72/1.10 Z := Y
% 0.72/1.10 end
% 0.72/1.10 permutation0:
% 0.72/1.10 0 ==> 1
% 0.72/1.10 1 ==> 2
% 0.72/1.10 2 ==> 0
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 resolution: (41) {G2,W12,D2,L4,V4,M4} { ! subset( X, Y ), subset( Z, Y ),
% 0.72/1.10 subset( T, Y ), ! subset( T, X ) }.
% 0.72/1.10 parent0[2]: (8) {G1,W11,D3,L3,V4,M1} R(0,1) { ! subset( X, Y ), subset( T,
% 0.72/1.10 Y ), ! member( skol1( Z, Y ), X ) }.
% 0.72/1.10 parent1[2]: (9) {G1,W11,D3,L3,V3,M1} R(2,0) { subset( X, Y ), ! subset( X,
% 0.72/1.10 Z ), member( skol1( X, Y ), Z ) }.
% 0.72/1.10 substitution0:
% 0.72/1.10 X := X
% 0.72/1.10 Y := Y
% 0.72/1.10 Z := T
% 0.72/1.10 T := Z
% 0.72/1.10 end
% 0.72/1.10 substitution1:
% 0.72/1.10 X := T
% 0.72/1.10 Y := Y
% 0.72/1.10 Z := X
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 subsumption: (11) {G2,W12,D2,L4,V4,M4} R(9,8) { ! subset( X, Z ), ! subset
% 0.72/1.10 ( Z, Y ), subset( T, Y ), subset( X, Y ) }.
% 0.72/1.10 parent0: (41) {G2,W12,D2,L4,V4,M4} { ! subset( X, Y ), subset( Z, Y ),
% 0.72/1.10 subset( T, Y ), ! subset( T, X ) }.
% 0.72/1.10 substitution0:
% 0.72/1.10 X := Z
% 0.72/1.10 Y := Y
% 0.72/1.10 Z := T
% 0.72/1.10 T := X
% 0.72/1.10 end
% 0.72/1.10 permutation0:
% 0.72/1.10 0 ==> 1
% 0.72/1.10 1 ==> 2
% 0.72/1.10 2 ==> 3
% 0.72/1.10 3 ==> 0
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 factor: (46) {G2,W9,D2,L3,V3,M3} { ! subset( X, Y ), ! subset( Y, Z ),
% 0.72/1.10 subset( X, Z ) }.
% 0.72/1.10 parent0[2, 3]: (11) {G2,W12,D2,L4,V4,M4} R(9,8) { ! subset( X, Z ), !
% 0.72/1.10 subset( Z, Y ), subset( T, Y ), subset( X, Y ) }.
% 0.72/1.10 substitution0:
% 0.72/1.10 X := X
% 0.72/1.10 Y := Z
% 0.72/1.10 Z := Y
% 0.72/1.10 T := X
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 subsumption: (13) {G3,W9,D2,L3,V3,M3} F(11) { ! subset( Y, Z ), subset( X,
% 0.72/1.10 Z ), ! subset( X, Y ) }.
% 0.72/1.10 parent0: (46) {G2,W9,D2,L3,V3,M3} { ! subset( X, Y ), ! subset( Y, Z ),
% 0.72/1.10 subset( X, Z ) }.
% 0.72/1.10 substitution0:
% 0.72/1.10 X := X
% 0.72/1.10 Y := Y
% 0.72/1.10 Z := Z
% 0.72/1.10 end
% 0.72/1.10 permutation0:
% 0.72/1.10 0 ==> 2
% 0.72/1.10 1 ==> 0
% 0.72/1.10 2 ==> 1
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 resolution: (49) {G1,W6,D2,L2,V1,M2} { ! subset( skol4, X ), subset( skol2
% 0.72/1.10 , X ) }.
% 0.72/1.10 parent0[2]: (13) {G3,W9,D2,L3,V3,M3} F(11) { ! subset( Y, Z ), subset( X, Z
% 0.72/1.10 ), ! subset( X, Y ) }.
% 0.72/1.10 parent1[0]: (4) {G0,W3,D2,L1,V0,M1} I { subset( skol2, skol4 ) }.
% 0.72/1.10 substitution0:
% 0.72/1.10 X := skol2
% 0.72/1.10 Y := skol4
% 0.72/1.10 Z := X
% 0.72/1.10 end
% 0.72/1.10 substitution1:
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 subsumption: (16) {G4,W6,D2,L2,V1,M1} R(13,4) { subset( skol2, X ), !
% 0.72/1.10 subset( skol4, X ) }.
% 0.72/1.10 parent0: (49) {G1,W6,D2,L2,V1,M2} { ! subset( skol4, X ), subset( skol2, X
% 0.72/1.10 ) }.
% 0.72/1.10 substitution0:
% 0.72/1.10 X := X
% 0.72/1.10 end
% 0.72/1.10 permutation0:
% 0.72/1.10 0 ==> 1
% 0.72/1.10 1 ==> 0
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 resolution: (50) {G1,W3,D2,L1,V0,M1} { subset( skol2, skol3 ) }.
% 0.72/1.10 parent0[1]: (16) {G4,W6,D2,L2,V1,M1} R(13,4) { subset( skol2, X ), ! subset
% 0.72/1.10 ( skol4, X ) }.
% 0.72/1.10 parent1[0]: (5) {G0,W3,D2,L1,V0,M1} I { subset( skol4, skol3 ) }.
% 0.72/1.10 substitution0:
% 0.72/1.10 X := skol3
% 0.72/1.10 end
% 0.72/1.10 substitution1:
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 resolution: (51) {G1,W0,D0,L0,V0,M0} { }.
% 0.72/1.10 parent0[0]: (6) {G0,W3,D2,L1,V0,M1} I { ! subset( skol2, skol3 ) }.
% 0.72/1.10 parent1[0]: (50) {G1,W3,D2,L1,V0,M1} { subset( skol2, skol3 ) }.
% 0.72/1.10 substitution0:
% 0.72/1.10 end
% 0.72/1.10 substitution1:
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 subsumption: (24) {G5,W0,D0,L0,V0,M0} R(16,5);r(6) { }.
% 0.72/1.10 parent0: (51) {G1,W0,D0,L0,V0,M0} { }.
% 0.72/1.10 substitution0:
% 0.72/1.10 end
% 0.72/1.10 permutation0:
% 0.72/1.10 end
% 0.72/1.10
% 0.72/1.10 Proof check complete!
% 0.72/1.10
% 0.72/1.10 Memory use:
% 0.72/1.10
% 0.72/1.10 space for terms: 342
% 0.72/1.10 space for clauses: 1134
% 0.72/1.10
% 0.72/1.10
% 0.72/1.10 clauses generated: 55
% 0.72/1.10 clauses kept: 25
% 0.72/1.10 clauses selected: 13
% 0.72/1.10 clauses deleted: 0
% 0.72/1.10 clauses inuse deleted: 0
% 0.72/1.10
% 0.72/1.10 subsentry: 107
% 0.72/1.10 literals s-matched: 70
% 0.72/1.10 literals matched: 68
% 0.72/1.10 full subsumption: 56
% 0.72/1.10
% 0.72/1.10 checksum: 142610873
% 0.72/1.10
% 0.72/1.10
% 0.72/1.10 Bliksem ended
%------------------------------------------------------------------------------