set n = (len W) + 1;
defpred S1[ Nat, set , set ] means ( ( W is Walk of G & ex Wn being Walk of G st
( Wn = W & c3 = Wn .remove ((Wn .find ((2 * G) + 1)),(Wn .rfind ((2 * G) + 1))) ) ) or ( W is not Walk of G & c3 = W ) );
A1:
now for n being Nat
for x being set ex y being set st S1[n,x,y]let n be
Nat;
for x being set ex y being set st S1[n,x,y]let x be
set ;
ex y being set st S1[n,x,y]now ex y being set st S1[n,x,y]end; hence
ex
y being
set st
S1[
n,
x,
y]
;
verum end;
consider f being Function such that
A2:
( dom f = NAT & f . 0 = W & ( for n being Nat holds S1[n,f . n,f . (n + 1)] ) )
from RECDEF_1:sch 1(A1);
defpred S2[ Nat] means ex Wn being Subwalk of W st
( Wn = f . G & len Wn <= len W & ( for m being odd Element of NAT st m < (2 * G) + 1 & m <= len Wn holds
Wn .rfind m = m ) );
now for n being Nat st S2[n] holds
ex Wn1 being Subwalk of W st
( f . (n + 1) = Wn1 & len Wn1 <= len W & ( for m being odd Element of NAT st m < (2 * (n + 1)) + 1 & m <= len Wn1 holds
Wn1 .rfind m = m ) )let n be
Nat;
( S2[n] implies ex Wn1 being Subwalk of W st
( f . (n + 1) = Wn1 & len Wn1 <= len W & ( for m being odd Element of NAT st m < (2 * (n + 1)) + 1 & m <= len Wn1 holds
Wn1 .rfind m = m ) ) )assume
S2[
n]
;
ex Wn1 being Subwalk of W st
( f . (n + 1) = Wn1 & len Wn1 <= len W & ( for m being odd Element of NAT st m < (2 * (n + 1)) + 1 & m <= len Wn1 holds
Wn1 .rfind m = m ) )then consider Wn being
Subwalk of
W such that A3:
Wn = f . n
and A4:
len Wn <= len W
and A5:
for
m being
odd Element of
NAT st
m < (2 * n) + 1 &
m <= len Wn holds
Wn .rfind m = m
;
set a =
Wn .find ((2 * n) + 1);
set b =
Wn .rfind ((2 * n) + 1);
set Wn1 =
Wn .remove (
(Wn .find ((2 * n) + 1)),
(Wn .rfind ((2 * n) + 1)));
reconsider Wn1 =
Wn .remove (
(Wn .find ((2 * n) + 1)),
(Wn .rfind ((2 * n) + 1))) as
Subwalk of
W by Lm71;
take Wn1 =
Wn1;
( f . (n + 1) = Wn1 & len Wn1 <= len W & ( for m being odd Element of NAT st m < (2 * (n + 1)) + 1 & m <= len Wn1 holds
Wn1 .rfind m = m ) )
S1[
n,
f . n,
f . (n + 1)]
by A2;
hence
f . (n + 1) = Wn1
by A3;
( len Wn1 <= len W & ( for m being odd Element of NAT st m < (2 * (n + 1)) + 1 & m <= len Wn1 holds
Wn1 .rfind m = m ) )
len Wn1 <= len Wn
by Lm26;
hence
len Wn1 <= len W
by A4, XXREAL_0:2;
for m being odd Element of NAT st m < (2 * (n + 1)) + 1 & m <= len Wn1 holds
Wn1 .rfind m = mlet m be
odd Element of
NAT ;
( m < (2 * (n + 1)) + 1 & m <= len Wn1 implies Wn1 .rfind m = m )assume that A6:
m < (2 * (n + 1)) + 1
and A7:
m <= len Wn1
;
Wn1 .rfind m = mset W1 =
Wn .cut (1,
(Wn .find ((2 * n) + 1)));
set W2 =
Wn .cut (
(Wn .rfind ((2 * n) + 1)),
(len Wn));
A8:
len Wn1 <= len Wn
by Lm26;
then A9:
m <= len Wn
by A7, XXREAL_0:2;
m <= 2
* (n + 1)
by A6, NAT_1:13;
then
m < ((2 * n) + 1) + 1
by XXREAL_0:1;
then A10:
m <= (2 * n) + 1
by NAT_1:13;
now Wn1 .rfind m = mper cases
( (2 * n) + 1 <= len Wn or len Wn < (2 * n) + 1 )
;
suppose A11:
(2 * n) + 1
<= len Wn
;
Wn1 .rfind m = mthen A12:
Wn .find ((2 * n) + 1) <= (2 * n) + 1
by Lm49;
A13:
Wn . (Wn .find ((2 * n) + 1)) = Wn . ((2 * n) + 1)
by A11, Def20;
A14:
Wn .find ((2 * n) + 1) <= len Wn
by A11, Def20;
then A17:
Wn .find ((2 * n) + 1) = (2 * n) + 1
by A12, XXREAL_0:1;
A18:
Wn . (Wn .rfind ((2 * n) + 1)) = Wn . ((2 * n) + 1)
by A11, Def22;
set m9 =
Wn1 .rfind m;
A19:
1
<= m
by ABIAN:12;
A20:
Wn1 . (Wn1 .rfind m) = Wn1 . m
by A7, Def22;
A21:
Wn1 .rfind m >= m
by A7, Lm50;
A22:
Wn .rfind ((2 * n) + 1) <= len Wn
by A11, Def22;
1
<= Wn .find ((2 * n) + 1)
by ABIAN:12;
then A23:
(Wn .cut (1,(Wn .find ((2 * n) + 1)))) .last() =
Wn . ((2 * n) + 1)
by A14, A13, Lm16, JORDAN12:2
.=
(Wn .cut ((Wn .rfind ((2 * n) + 1)),(len Wn))) .first()
by A22, A18, Lm16
;
(2 * n) + 1
<= Wn .rfind ((2 * n) + 1)
by A11, Lm50;
then A24:
Wn .find ((2 * n) + 1) <= Wn .rfind ((2 * n) + 1)
by A12, XXREAL_0:2;
then A25:
Wn1 = (Wn .cut (1,(Wn .find ((2 * n) + 1)))) .append (Wn .cut ((Wn .rfind ((2 * n) + 1)),(len Wn)))
by A13, A22, A18, Def12;
A26:
Wn1 .rfind m <= len Wn1
by A7, Def22;
then A27:
Wn1 .rfind m <= len Wn
by A8, XXREAL_0:2;
now Wn1 .rfind m = mper cases
( m < (2 * n) + 1 or m = (2 * n) + 1 )
by A10, XXREAL_0:1;
suppose A28:
m < (2 * n) + 1
;
Wn1 .rfind m = mthen
m < len (Wn .cut (1,(Wn .find ((2 * n) + 1))))
by A11, A17, Lm22;
then A29:
Wn1 .cut (1,
m) =
(Wn .cut (1,(Wn .find ((2 * n) + 1)))) .cut (1,
m)
by A25, A19, A23, Lm21, JORDAN12:2
.=
Wn .cut (1,
m)
by A10, A17, Lm20
;
reconsider maa1 =
m - 1 as
Element of
NAT by ABIAN:12, INT_1:5;
A30:
maa1 + 1
= m
;
A31:
maa1 < m - 0
by XREAL_1:15;
then A32:
maa1 < len (Wn .cut (1,m))
by A7, A8, Lm22, XXREAL_0:2;
maa1 < len (Wn1 .cut (1,m))
by A7, A31, Lm22;
then
Wn1 . m = (Wn .cut (1,m)) . m
by A7, A19, A29, A30, Lm15, JORDAN12:2;
then A33:
Wn1 . m = Wn . m
by A9, A19, A30, A32, Lm15, JORDAN12:2;
A34:
Wn .rfind m = m
by A5, A9, A28;
now Wn1 .rfind m = mper cases
( Wn1 .rfind m < Wn .find ((2 * n) + 1) or Wn .find ((2 * n) + 1) <= Wn1 .rfind m )
;
suppose A35:
Wn1 .rfind m < Wn .find ((2 * n) + 1)
;
Wn1 .rfind m = mreconsider m9aa1 =
(Wn1 .rfind m) - 1 as
Element of
NAT by ABIAN:12, INT_1:5;
A36:
1
<= Wn1 .rfind m
by ABIAN:12;
A37:
m9aa1 < (Wn1 .rfind m) - 0
by XREAL_1:15;
then A38:
m9aa1 < len (Wn1 .cut (1,(Wn1 .rfind m)))
by A26, Lm22;
A39:
m9aa1 < len (Wn .cut (1,(Wn1 .rfind m)))
by A8, A26, A37, Lm22, XXREAL_0:2;
Wn1 .rfind m < len (Wn .cut (1,(Wn .find ((2 * n) + 1))))
by A14, A35, Lm22;
then Wn1 .cut (1,
(Wn1 .rfind m)) =
(Wn .cut (1,(Wn .find ((2 * n) + 1)))) .cut (1,
(Wn1 .rfind m))
by A25, A23, A36, Lm21, JORDAN12:2
.=
Wn .cut (1,
(Wn1 .rfind m))
by A35, Lm20
;
then
Wn1 . (Wn1 .rfind m) = (Wn .cut (1,(Wn1 .rfind m))) . (m9aa1 + 1)
by A26, A36, A38, Lm15, JORDAN12:2;
then
Wn . (Wn1 .rfind m) = Wn . m
by A20, A27, A33, A36, A39, Lm15, JORDAN12:2;
then
Wn1 .rfind m <= m
by A9, A27, A34, Def22;
hence
Wn1 .rfind m = m
by A21, XXREAL_0:1;
verum end; suppose A40:
Wn .find ((2 * n) + 1) <= Wn1 .rfind m
;
Wn1 .rfind m = mset x =
((Wn1 .rfind m) - (Wn .find ((2 * n) + 1))) + (Wn .rfind ((2 * n) + 1));
A41:
Wn1 . (Wn1 .rfind m) = Wn . (((Wn1 .rfind m) - (Wn .find ((2 * n) + 1))) + (Wn .rfind ((2 * n) + 1)))
by A13, A22, A18, A24, A26, A40, Lm30;
A42:
((Wn1 .rfind m) - (Wn .find ((2 * n) + 1))) + (Wn .rfind ((2 * n) + 1)) <= len Wn
by A13, A22, A18, A24, A26, A40, Lm30;
(Wn1 .rfind m) + (Wn .find ((2 * n) + 1)) <= (Wn1 .rfind m) + (Wn .rfind ((2 * n) + 1))
by A24, XREAL_1:7;
then A43:
((Wn1 .rfind m) + (Wn .find ((2 * n) + 1))) - (Wn .find ((2 * n) + 1)) <= ((Wn1 .rfind m) + (Wn .rfind ((2 * n) + 1))) - (Wn .find ((2 * n) + 1))
by XREAL_1:13;
reconsider x =
((Wn1 .rfind m) - (Wn .find ((2 * n) + 1))) + (Wn .rfind ((2 * n) + 1)) as
Element of
NAT by A13, A22, A18, A24, A26, A40, Lm30;
x <= m
by A9, A20, A34, A33, A41, A42, Def22;
then
Wn1 .rfind m <= m
by A43, XXREAL_0:2;
hence
Wn1 .rfind m = m
by A21, XXREAL_0:1;
verum end; end; end; hence
Wn1 .rfind m = m
;
verum end; suppose A44:
m = (2 * n) + 1
;
Wn1 .rfind m = mthen
m <= len (Wn .cut (1,(Wn .find ((2 * n) + 1))))
by A11, A17, Lm22;
then A45:
Wn1 .cut (1,
m) =
(Wn .cut (1,(Wn .find ((2 * n) + 1)))) .cut (1,
m)
by A25, A19, A23, Lm21, JORDAN12:2
.=
Wn .cut (1,
m)
by A10, A17, Lm20
;
reconsider maa1 =
m - 1 as
Element of
NAT by ABIAN:12, INT_1:5;
A46:
maa1 + 1
= m
;
A47:
maa1 < m - 0
by XREAL_1:15;
then A48:
maa1 < len (Wn .cut (1,m))
by A7, A8, Lm22, XXREAL_0:2;
maa1 < len (Wn1 .cut (1,m))
by A7, A47, Lm22;
then
Wn1 . m = (Wn .cut (1,m)) . m
by A7, A19, A45, A46, Lm15, JORDAN12:2;
then A49:
Wn1 . m = Wn . m
by A9, A19, A46, A48, Lm15, JORDAN12:2;
now not m < Wn1 .rfind mset x =
((Wn1 .rfind m) - (Wn .find ((2 * n) + 1))) + (Wn .rfind ((2 * n) + 1));
assume A50:
m < Wn1 .rfind m
;
contradictionthen A51:
Wn .find ((2 * n) + 1) < Wn1 .rfind m
by A12, A15, A44, XXREAL_0:1;
then A52:
((Wn1 .rfind m) - (Wn .find ((2 * n) + 1))) + (Wn .rfind ((2 * n) + 1)) is
Element of
NAT
by A13, A22, A18, A24, A26, Lm30;
A53:
((Wn1 .rfind m) - (Wn .find ((2 * n) + 1))) + (Wn .rfind ((2 * n) + 1)) <= len Wn
by A13, A22, A18, A24, A26, A51, Lm30;
Wn1 . (Wn1 .rfind m) = Wn . (((Wn1 .rfind m) - (Wn .find ((2 * n) + 1))) + (Wn .rfind ((2 * n) + 1)))
by A13, A22, A18, A24, A26, A51, Lm30;
then
((Wn1 .rfind m) - (Wn .find ((2 * n) + 1))) + (Wn .rfind ((2 * n) + 1)) <= Wn .rfind ((2 * n) + 1)
by A11, A20, A44, A49, A52, A53, Def22;
then
(((Wn1 .rfind m) - (Wn .find ((2 * n) + 1))) + (Wn .rfind ((2 * n) + 1))) - (Wn .rfind ((2 * n) + 1)) <= (Wn .rfind ((2 * n) + 1)) - (Wn .rfind ((2 * n) + 1))
by XREAL_1:13;
then
((Wn1 .rfind m) - (Wn .find ((2 * n) + 1))) + (Wn .find ((2 * n) + 1)) <= 0 + (Wn .find ((2 * n) + 1))
by XREAL_1:7;
hence
contradiction
by A12, A15, A44, A50, XXREAL_0:1;
verum end; hence
Wn1 .rfind m = m
by A21, XXREAL_0:1;
verum end; end; end; hence
Wn1 .rfind m = m
;
verum end; end; end; hence
Wn1 .rfind m = m
;
verum end;
then A57:
for n being Nat st S2[n] holds
S2[n + 1]
;
reconsider W0 = f . 0 as Subwalk of W by A2, Lm70;
for m being odd Element of NAT st m < (2 * 0) + 1 & m <= len W0 holds
W0 .rfind m = m
by ABIAN:12;
then A58:
S2[ 0 ]
by A2;
for n being Nat holds S2[n]
from NAT_1:sch 2(A58, A57);
then consider P being Subwalk of W such that
P = f . ((len W) + 1)
and
A59:
len P <= len W
and
A60:
for m being odd Element of NAT st m < (2 * ((len W) + 1)) + 1 & m <= len P holds
P .rfind m = m
;
take
P
; ( P is Trail-like & P is Path-like )
then
P is Path-like
by Lm67;
hence
( P is Trail-like & P is Path-like )
; verum