let D be non empty set ; :: thesis: for f being FinSequence of D
for k1, k2 being Element of NAT st 1 <= k1 & k1 <= len f & 1 <= k2 & k2 <= len f holds
Rev (mid f,k1,k2) = mid (Rev f),(((len f) -' k2) + 1),(((len f) -' k1) + 1)
let f be FinSequence of D; :: thesis: for k1, k2 being Element of NAT st 1 <= k1 & k1 <= len f & 1 <= k2 & k2 <= len f holds
Rev (mid f,k1,k2) = mid (Rev f),(((len f) -' k2) + 1),(((len f) -' k1) + 1)
let k1, k2 be Element of NAT ; :: thesis: ( 1 <= k1 & k1 <= len f & 1 <= k2 & k2 <= len f implies Rev (mid f,k1,k2) = mid (Rev f),(((len f) -' k2) + 1),(((len f) -' k1) + 1) )
assume A1:
( 1 <= k1 & k1 <= len f & 1 <= k2 & k2 <= len f )
; :: thesis: Rev (mid f,k1,k2) = mid (Rev f),(((len f) -' k2) + 1),(((len f) -' k1) + 1)
per cases
( k1 <= k2 or k1 > k2 )
;
suppose A2:
k1 <= k2
;
:: thesis: Rev (mid f,k1,k2) = mid (Rev f),(((len f) -' k2) + 1),(((len f) -' k1) + 1)A3:
(len f) -' k1 = (len f) - k1
by A1, XREAL_1:235;
A4:
(len f) -' k2 = (len f) - k2
by A1, XREAL_1:235;
A5:
((len f) -' (k1 -' 1)) + (k1 -' 1) =
((len f) - (k1 -' 1)) + (k1 -' 1)
by A1, NAT_D:50, XREAL_1:235
.=
len f
;
A6:
(len f) -' (k1 -' 1) =
(len f) - (k1 -' 1)
by A1, NAT_D:50, XREAL_1:235
.=
(len f) - (k1 - 1)
by A1, XREAL_1:235
.=
((len f) - k1) + 1
.=
((len f) -' k1) + 1
by A1, XREAL_1:235
;
(len f) -' k1 >= (len f) -' k2
by A2, NAT_D:41;
then A7:
((len f) -' k1) + 1
>= ((len f) -' k2) + 1
by XREAL_1:8;
k2 - k1 <= (len f) - k1
by A1, XREAL_1:11;
then
k2 -' k1 <= (len f) - k1
by A2, XREAL_1:235;
then
k2 -' k1 <= (len f) -' k1
by A1, XREAL_1:235;
then
(k2 -' k1) + 1
<= ((len f) -' k1) + 1
by XREAL_1:8;
then A8:
((len f) -' (k1 -' 1)) -' ((k2 -' k1) + 1) =
(((len f) -' k1) + 1) - ((k2 -' k1) + 1)
by A6, XREAL_1:235
.=
(((len f) - k1) + 1) - ((k2 - k1) + 1)
by A2, A3, XREAL_1:235
.=
(((len f) + 1) - 1) - k2
.=
(len f) -' k2
by A1, XREAL_1:235
;
A9:
(len f) -' k1 >= (len f) -' k2
by A2, NAT_D:41;
(len f) -' k1 <= ((len f) -' k1) + 1
by NAT_1:11;
then A10:
((len f) -' (k1 -' 1)) -' ((len f) -' k2) =
(((len f) -' k1) + 1) - ((len f) -' k2)
by A6, A9, XREAL_1:235, XXREAL_0:2
.=
(((len f) - k1) + 1) - ((len f) - k2)
by A1, A3, XREAL_1:235
.=
(k2 - k1) + 1
.=
(k2 -' k1) + 1
by A2, XREAL_1:235
;
A11:
((len (f /^ (k1 -' 1))) -' ((k2 -' k1) + 1)) + ((k2 -' k1) + 1) =
((len f) -' k2) + ((k2 -' k1) + 1)
by A8, RFINSEQ:42
.=
((len f) - k2) + ((k2 - k1) + 1)
by A2, A4, XREAL_1:235
.=
(len f) - (k1 - 1)
.=
(len f) - (k1 -' 1)
by A1, XREAL_1:235
.=
(len f) -' (k1 -' 1)
by A1, NAT_D:50, XREAL_1:235
.=
len (f /^ (k1 -' 1))
by RFINSEQ:42
;
A12:
((((len f) -' k1) + 1) -' (((len f) -' k2) + 1)) + 1 =
((((len f) -' k1) + 1) - (((len f) -' k2) + 1)) + 1
by A7, XREAL_1:235
.=
((((len f) - k1) + 1) - (((len f) - k2) + 1)) + 1
by A1, A3, XREAL_1:235
.=
(k2 - k1) + 1
.=
(k2 -' k1) + 1
by A2, XREAL_1:235
;
(len f) -' k1 >= (len f) -' k2
by A2, NAT_D:41;
then
((len f) -' k1) + 1
>= ((len f) -' k2) + 1
by XREAL_1:8;
then mid (Rev f),
(((len f) -' k2) + 1),
(((len f) -' k1) + 1) =
((Rev f) /^ ((((len f) -' k2) + 1) -' 1)) | ((k2 -' k1) + 1)
by A12, Def1
.=
((Rev f) /^ ((len f) -' k2)) | (((len f) -' (k1 -' 1)) -' ((len f) -' k2))
by A10, NAT_D:34
.=
((Rev f) | ((len f) -' (k1 -' 1))) /^ ((len f) -' k2)
by FINSEQ_5:83
.=
((Rev f) | ((len f) -' (k1 -' 1))) /^ ((len (f /^ (k1 -' 1))) -' ((k2 -' k1) + 1))
by A8, RFINSEQ:42
.=
(Rev (f /^ (k1 -' 1))) /^ ((len (f /^ (k1 -' 1))) -' ((k2 -' k1) + 1))
by A5, FINSEQ_6:90
.=
Rev ((f /^ (k1 -' 1)) | ((k2 -' k1) + 1))
by A11, FINSEQ_6:91
.=
Rev (mid f,k1,k2)
by A2, Def1
;
hence
Rev (mid f,k1,k2) = mid (Rev f),
(((len f) -' k2) + 1),
(((len f) -' k1) + 1)
;
:: thesis: verum end; suppose A13:
k1 > k2
;
:: thesis: Rev (mid f,k1,k2) = mid (Rev f),(((len f) -' k2) + 1),(((len f) -' k1) + 1)A14:
(len f) -' k2 = (len f) - k2
by A1, XREAL_1:235;
A15:
(len f) -' k1 = (len f) - k1
by A1, XREAL_1:235;
A16:
((len f) -' (k2 -' 1)) + (k2 -' 1) =
((len f) - (k2 -' 1)) + (k2 -' 1)
by A1, NAT_D:50, XREAL_1:235
.=
len f
;
A17:
(len f) -' (k2 -' 1) =
(len f) - (k2 -' 1)
by A1, NAT_D:50, XREAL_1:235
.=
(len f) - (k2 - 1)
by A1, XREAL_1:235
.=
((len f) - k2) + 1
.=
((len f) -' k2) + 1
by A1, XREAL_1:235
;
(len f) -' k2 >= (len f) -' k1
by A13, NAT_D:41;
then A18:
((len f) -' k2) + 1
>= ((len f) -' k1) + 1
by XREAL_1:8;
k1 - k2 <= (len f) - k2
by A1, XREAL_1:11;
then
k1 -' k2 <= (len f) - k2
by A13, XREAL_1:235;
then
k1 -' k2 <= (len f) -' k2
by A1, XREAL_1:235;
then
(k1 -' k2) + 1
<= ((len f) -' k2) + 1
by XREAL_1:8;
then A19:
((len f) -' (k2 -' 1)) -' ((k1 -' k2) + 1) =
(((len f) -' k2) + 1) - ((k1 -' k2) + 1)
by A17, XREAL_1:235
.=
(((len f) - k2) + 1) - ((k1 - k2) + 1)
by A13, A14, XREAL_1:235
.=
(((len f) + 1) - 1) - k1
.=
(len f) -' k1
by A1, XREAL_1:235
;
A20:
(len f) -' k2 >= (len f) -' k1
by A13, NAT_D:41;
(len f) -' k2 <= ((len f) -' k2) + 1
by NAT_1:11;
then A21:
((len f) -' (k2 -' 1)) -' ((len f) -' k1) =
(((len f) -' k2) + 1) - ((len f) -' k1)
by A17, A20, XREAL_1:235, XXREAL_0:2
.=
(((len f) - k2) + 1) - ((len f) - k1)
by A1, A14, XREAL_1:235
.=
(k1 - k2) + 1
.=
(k1 -' k2) + 1
by A13, XREAL_1:235
;
A22:
((len (f /^ (k2 -' 1))) -' ((k1 -' k2) + 1)) + ((k1 -' k2) + 1) =
((len f) -' k1) + ((k1 -' k2) + 1)
by A19, RFINSEQ:42
.=
((len f) - k1) + ((k1 - k2) + 1)
by A13, A15, XREAL_1:235
.=
(len f) - (k2 - 1)
.=
(len f) - (k2 -' 1)
by A1, XREAL_1:235
.=
(len f) -' (k2 -' 1)
by A1, NAT_D:50, XREAL_1:235
.=
len (f /^ (k2 -' 1))
by RFINSEQ:42
;
A23:
((((len f) -' k2) + 1) -' (((len f) -' k1) + 1)) + 1 =
((((len f) -' k2) + 1) - (((len f) -' k1) + 1)) + 1
by A18, XREAL_1:235
.=
((((len f) - k2) + 1) - (((len f) - k1) + 1)) + 1
by A1, A14, XREAL_1:235
.=
(k1 - k2) + 1
.=
(k1 -' k2) + 1
by A13, XREAL_1:235
;
(len f) - k2 > (len f) - k1
by A13, XREAL_1:12;
then
((len f) -' k2) + 1
> ((len f) -' k1) + 1
by A14, A15, XREAL_1:8;
then mid (Rev f),
(((len f) -' k2) + 1),
(((len f) -' k1) + 1) =
Rev (((Rev f) /^ ((((len f) -' k1) + 1) -' 1)) | ((k1 -' k2) + 1))
by A23, Def1
.=
Rev (((Rev f) /^ ((len f) -' k1)) | (((len f) -' (k2 -' 1)) -' ((len f) -' k1)))
by A21, NAT_D:34
.=
Rev (((Rev f) | ((len f) -' (k2 -' 1))) /^ ((len f) -' k1))
by FINSEQ_5:83
.=
Rev (((Rev f) | ((len f) -' (k2 -' 1))) /^ ((len (f /^ (k2 -' 1))) -' ((k1 -' k2) + 1)))
by A19, RFINSEQ:42
.=
Rev ((Rev (f /^ (k2 -' 1))) /^ ((len (f /^ (k2 -' 1))) -' ((k1 -' k2) + 1)))
by A16, FINSEQ_6:90
.=
Rev (Rev ((f /^ (k2 -' 1)) | ((k1 -' k2) + 1)))
by A22, FINSEQ_6:91
.=
Rev (mid f,k1,k2)
by A13, Def1
;
hence
Rev (mid f,k1,k2) = mid (Rev f),
(((len f) -' k2) + 1),
(((len f) -' k1) + 1)
;
:: thesis: verum end; end;