let f be non constant standard special_circular_sequence; :: thesis: for g being FinSequence of (TOP-REAL 2)
for i1, i2 being Element of NAT st g is_a_part<_of f,i1,i2 holds
Rev g is_a_part>_of f,i2,i1
let g be FinSequence of (TOP-REAL 2); :: thesis: for i1, i2 being Element of NAT st g is_a_part<_of f,i1,i2 holds
Rev g is_a_part>_of f,i2,i1
let i1, i2 be Element of NAT ; :: thesis: ( g is_a_part<_of f,i1,i2 implies Rev g is_a_part>_of f,i2,i1 )
assume A1:
g is_a_part<_of f,i1,i2
; :: thesis: Rev g is_a_part>_of f,i2,i1
then A2:
( 1 <= i1 & i1 + 1 <= len f & 1 <= i2 & i2 + 1 <= len f & g . (len g) = f . i2 & 1 <= len g & len g < len f & ( for i being Element of NAT st 1 <= i & i <= len g holds
g . i = f . (S_Drop (((len f) + i1) -' i),f) ) )
by Def3;
then A3:
1 < len f
by XXREAL_0:2;
A4:
i2 < len f
by A2, NAT_1:13;
A5:
len g = len (Rev g)
by FINSEQ_5:def 3;
A6: (Rev g) . (len (Rev g)) =
(Rev g) . (len g)
by FINSEQ_5:def 3
.=
g . (((len g) - (len g)) + 1)
by A2, JORDAN3:24
.=
f . (S_Drop (((len f) + i1) -' 1),f)
by A2
.=
f . (S_Drop (((len f) -' 1) + i1),f)
by A3, NAT_D:38
;
(i1 + 1) - 1 <= (len f) - 1
by A2, XREAL_1:11;
then A7:
i1 <= (len f) -' 1
by A3, XREAL_1:235;
A8:
S_Drop (((len f) -' 1) + i1),f = S_Drop i1,f
by Th35;
for i being Nat st 1 <= i & i <= len (Rev g) holds
(Rev g) . i = f . (S_Drop ((i2 + i) -' 1),f)
proof
let i be
Nat;
:: thesis: ( 1 <= i & i <= len (Rev g) implies (Rev g) . i = f . (S_Drop ((i2 + i) -' 1),f) )
assume A13:
( 1
<= i &
i <= len (Rev g) )
;
:: thesis: (Rev g) . i = f . (S_Drop ((i2 + i) -' 1),f)
A14:
i in NAT
by ORDINAL1:def 13;
len g <= (len g) + (i -' 1)
by NAT_1:11;
then
len g <= (len g) + (i - 1)
by A13, XREAL_1:235;
then
(len g) - (i - 1) <= ((len g) + (i - 1)) - (i - 1)
by XREAL_1:11;
then
((len g) - i) + 1
<= len g
;
then A15:
( 1
<= ((len g) -' i) + 1 &
((len g) -' i) + 1
<= len g )
by A5, A13, NAT_1:11, XREAL_1:235;
A16:
(Rev g) . i =
g . (((len g) - i) + 1)
by A5, A13, A14, JORDAN3:24
.=
g . (((len g) -' i) + 1)
by A5, A13, XREAL_1:235
.=
f . (S_Drop (((len f) + i1) -' (((len g) -' i) + 1)),f)
by A1, A15, Def3
;
A17:
(len g) + 1
<= len f
by A2, NAT_1:13;
(len g) + 1
<= ((len g) + 1) + i
by NAT_1:11;
then
((len g) + 1) - i <= (((len g) + 1) + i) - i
by XREAL_1:11;
then
((len g) - i) + 1
<= (len g) + 1
;
then A18:
((len g) -' i) + 1
<= (len g) + 1
by A5, A13, XREAL_1:235;
now per cases
( i1 < i2 or i1 >= i2 )
;
case
i1 < i2
;
:: thesis: (Rev g) . i = f . (S_Drop ((i2 + i) -' 1),f)then
len g = ((len f) + i1) -' i2
by A1, Th40;
then A19:
len g = ((len f) + i1) - i2
by A4, NAT_D:37;
len f = ((len f) -' 1) + 1
by A3, XREAL_1:237;
then
((- (len f)) + i2) + i = ((i2 + i) - 1) - ((len f) -' 1)
;
then
i1 - ((len g) - i) = ((i2 + i) -' 1) - ((len f) -' 1)
by A2, A19, NAT_D:37;
then
i1 - ((len g) -' i) = ((i2 + i) -' 1) - ((len f) -' 1)
by A5, A13, XREAL_1:235;
then
((((len f) -' 1) + 1) + i1) - (((len g) -' i) + 1) = (((len f) -' 1) + ((i2 + i) -' 1)) - ((len f) -' 1)
;
then
((len f) + i1) - (((len g) -' i) + 1) = (((len f) -' 1) + ((i2 + i) -' 1)) - ((len f) -' 1)
by A3, XREAL_1:237;
hence
(Rev g) . i = f . (S_Drop ((i2 + i) -' 1),f)
by A16, A17, A18, NAT_D:37, XXREAL_0:2;
:: thesis: verum end; case A20:
i1 >= i2
;
:: thesis: (Rev g) . i = f . (S_Drop ((i2 + i) -' 1),f)then
len g = (i1 -' i2) + 1
by A1, Th39;
then
len g = (i1 - i2) + 1
by A20, XREAL_1:235;
then
i1 - ((len g) - i) = (i2 + i) - 1
;
then
i1 - ((len g) - i) = (i2 + i) -' 1
by A13, NAT_D:37;
then
i1 - ((len g) -' i) = (i2 + i) -' 1
by A5, A13, XREAL_1:235;
then
((len f) - 1) + (i1 - ((len g) -' i)) = ((i2 + i) -' 1) + ((len f) -' 1)
by A3, XREAL_1:235;
then
((len f) + i1) - (((len g) -' i) + 1) = ((i2 + i) -' 1) + ((len f) -' 1)
;
then (Rev g) . i =
f . (S_Drop (((i2 + i) -' 1) + ((len f) -' 1)),f)
by A16, A17, A18, NAT_D:37, XXREAL_0:2
.=
f . (S_Drop ((i2 + i) -' 1),f)
by Th35
;
hence
(Rev g) . i = f . (S_Drop ((i2 + i) -' 1),f)
;
:: thesis: verum end; end; end;
hence
(Rev g) . i = f . (S_Drop ((i2 + i) -' 1),f)
;
:: thesis: verum
end;
hence
Rev g is_a_part>_of f,i2,i1
by A2, A5, A9, Def2; :: thesis: verum