let f be non constant standard special_circular_sequence; for i1, i2 being Element of NAT st 1 <= i2 & i1 > i2 & i1 < len f holds
(mid f,i1,((len f) -' 1)) ^ (mid f,1,i2) is_a_part>_of f,i1,i2
let i1, i2 be Element of NAT ; ( 1 <= i2 & i1 > i2 & i1 < len f implies (mid f,i1,((len f) -' 1)) ^ (mid f,1,i2) is_a_part>_of f,i1,i2 )
assume that
A1:
1 <= i2
and
A2:
i1 > i2
and
A3:
i1 < len f
; (mid f,i1,((len f) -' 1)) ^ (mid f,1,i2) is_a_part>_of f,i1,i2
A4: len (mid f,1,i2) =
len (f | i2)
by A1, JORDAN3:25
.=
i2
by A2, A3, FINSEQ_1:80, XXREAL_0:2
;
A5:
1 <= i1
by A1, A2, XXREAL_0:2;
len f < (len f) + 1
by NAT_1:13;
then
(len f) - 1 < ((len f) + 1) - 1
by XREAL_1:11;
then A6:
(len f) -' 1 < len f
by A3, A5, XREAL_1:235, XXREAL_0:2;
A7:
i1 + 1 <= len f
by A3, NAT_1:13;
then
(i1 + 1) - 1 <= (len f) - 1
by XREAL_1:11;
then A8:
i1 <= (len f) -' 1
by A3, A5, XREAL_1:235, XXREAL_0:2;
then A9:
1 <= (len f) -' 1
by A5, XXREAL_0:2;
then len (mid f,i1,((len f) -' 1)) =
(((len f) -' 1) -' i1) + 1
by A3, A5, A8, A6, JORDAN3:27
.=
(((len f) -' 1) - i1) + 1
by A8, XREAL_1:235
.=
(((len f) - 1) - i1) + 1
by A3, A5, XREAL_1:235, XXREAL_0:2
.=
(len f) - i1
;
then A10: len ((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2)) =
((len f) - i1) + i2
by A4, FINSEQ_1:35
.=
(len f) - (i1 - i2)
;
A11:
i2 < len f
by A2, A3, XXREAL_0:2;
then A12:
i2 + 1 <= len f
by NAT_1:13;
then
(i2 + 1) - 1 <= (len f) - 1
by XREAL_1:11;
then A13:
i2 <= (len f) -' 1
by A3, A5, XREAL_1:235, XXREAL_0:2;
A14:
for i being Nat st 1 <= i & i <= len ((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2)) holds
((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2)) . i = f . (S_Drop ((i1 + i) -' 1),f)
proof
let i be
Nat;
( 1 <= i & i <= len ((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2)) implies ((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2)) . i = f . (S_Drop ((i1 + i) -' 1),f) )
assume that A15:
1
<= i
and A16:
i <= len ((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2))
;
((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2)) . i = f . (S_Drop ((i1 + i) -' 1),f)
A17:
(i1 + i) -' 1
= (i1 + i) - 1
by A15, NAT_D:37;
A18:
(len f) - i1 = (len f) -' i1
by A3, XREAL_1:235;
A19:
(((len f) -' 1) -' i1) + 1 =
(((len f) -' 1) - i1) + 1
by A8, XREAL_1:235
.=
(((len f) - 1) - i1) + 1
by A3, A5, XREAL_1:235, XXREAL_0:2
.=
(len f) - i1
;
A20:
len (mid f,i1,((len f) -' 1)) = (((len f) -' 1) -' i1) + 1
by A3, A5, A8, A9, A6, JORDAN3:27;
A21:
i in NAT
by ORDINAL1:def 13;
now per cases
( i <= len (mid f,i1,((len f) -' 1)) or i > len (mid f,i1,((len f) -' 1)) )
;
case A22:
i <= len (mid f,i1,((len f) -' 1))
;
((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2)) . i = f . (S_Drop ((i1 + i) -' 1),f)then
i1 + i <= i1 + ((((len f) -' 1) -' i1) + 1)
by A20, XREAL_1:8;
then
i1 + i <= ((((len f) -' 1) - i1) + 1) + i1
by A8, XREAL_1:235;
then
i1 + i <= ((len f) -' 1) + 1
;
then
i1 + i <= len f
by A3, A5, XREAL_1:237, XXREAL_0:2;
then
(i1 + i) -' 1
<= (len f) - 1
by A17, XREAL_1:11;
then A23:
(i1 + i) -' 1
<= (len f) -' 1
by A3, A5, XREAL_1:235, XXREAL_0:2;
0 <= i - 1
by A15, XREAL_1:50;
then A24:
1
+ 0 <= i1 + (i - 1)
by A5, XREAL_1:9;
i in dom (mid f,i1,((len f) -' 1))
by A15, A22, FINSEQ_3:27;
then A25:
((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2)) . i = (mid f,i1,((len f) -' 1)) . i
by FINSEQ_1:def 7;
(mid f,i1,((len f) -' 1)) . i = f . ((i1 + i) -' 1)
by A3, A5, A8, A9, A6, A15, A21, A22, JORDAN3:27;
hence
((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2)) . i = f . (S_Drop ((i1 + i) -' 1),f)
by A17, A25, A24, A23, Th34;
verum end; case A26:
i > len (mid f,i1,((len f) -' 1))
;
((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2)) . i = f . (S_Drop ((i1 + i) -' 1),f)then
i >= ((len f) -' i1) + 1
by A20, A19, A18, NAT_1:13;
then A27:
i - ((len f) -' i1) >= (((len f) -' i1) + 1) - ((len f) -' i1)
by XREAL_1:11;
then A28:
1
<= i -' ((len f) -' i1)
by NAT_D:39;
A29:
(len f) - i1 = (len f) -' i1
by A3, XREAL_1:235;
i - ((len f) - i1) <= (((len f) - i1) + i2) - ((len f) - i1)
by A10, A16, XREAL_1:11;
then A30:
i -' ((len f) -' i1) <= i2
by A29, A27, NAT_D:39;
then A31:
i -' ((len f) -' i1) <= (len f) -' 1
by A13, XXREAL_0:2;
((len f) -' 1) + (i -' ((len f) -' i1)) =
((len f) -' 1) + (i - ((len f) -' i1))
by A20, A19, A18, A26, XREAL_1:235
.=
(((len f) -' 1) + i) - ((len f) -' i1)
.=
(((len f) - 1) + i) - ((len f) -' i1)
by A3, A5, XREAL_1:235, XXREAL_0:2
.=
(((len f) - 1) + i) - ((len f) - i1)
by A3, XREAL_1:235
.=
(i + i1) - 1
.=
(i1 + i) -' 1
by A15, NAT_D:37
;
then A32:
S_Drop ((i1 + i) -' 1),
f =
S_Drop (i -' ((len f) -' i1)),
f
by Th35
.=
i -' ((len f) -' i1)
by A28, A31, Th34
;
((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2)) . i =
(mid f,1,i2) . (i - (len (mid f,i1,((len f) -' 1))))
by A16, A26, JORDAN3:15
.=
(mid f,1,i2) . (i -' ((len f) -' i1))
by A20, A19, A18, A26, XREAL_1:235
.=
f . (i -' ((len f) -' i1))
by A11, A28, A30, JORDAN3:32
;
hence
((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2)) . i = f . (S_Drop ((i1 + i) -' 1),f)
by A32;
verum end; end; end;
hence
((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2)) . i = f . (S_Drop ((i1 + i) -' 1),f)
;
verum
end;
i1 - i2 > 0
by A2, XREAL_1:52;
then
len f < (len f) + (i1 - i2)
by XREAL_1:31;
then A33:
(len f) - (i1 - i2) < ((len f) + (i1 - i2)) - (i1 - i2)
by XREAL_1:11;
A34:
len ((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2)) = (len (mid f,i1,((len f) -' 1))) + (len (mid f,1,i2))
by FINSEQ_1:35;
then
len (mid f,1,i2) <= len ((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2))
by NAT_1:11;
then A35:
1 <= len ((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2))
by A1, A4, XXREAL_0:2;
len (mid f,i1,((len f) -' 1)) < (len (mid f,i1,((len f) -' 1))) + (len (mid f,1,i2))
by A1, A4, XREAL_1:31;
then ((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2)) . (len ((mid f,i1,((len f) -' 1)) ^ (mid f,1,i2))) =
(mid f,1,i2) . (((len (mid f,i1,((len f) -' 1))) + (len (mid f,1,i2))) - (len (mid f,i1,((len f) -' 1))))
by A34, JORDAN3:15
.=
f . i2
by A1, A11, Th22
;
hence
(mid f,i1,((len f) -' 1)) ^ (mid f,1,i2) is_a_part>_of f,i1,i2
by A1, A5, A12, A7, A35, A10, A33, A14, Def2; verum