let G be Group; :: thesis: for f being FinSequence of G holds Product (((Rev f) " ) ^ f) = 1_ G
let f be FinSequence of G; :: thesis: Product (((Rev f) " ) ^ f) = 1_ G
A1: len f = len (Rev f) by FINSEQ_5:def 3;
A2: len (Rev f) = len ((Rev f) " ) by Def4;
then A3: dom (Rev f) = dom ((Rev f) " ) by FINSEQ_3:31;
A4: len ((Rev f) " ) = len (Rev ((Rev f) " )) by FINSEQ_5:def 3;
A5: len (Rev ((Rev f) " )) = len ((Rev ((Rev f) " )) " ) by Def4;
then A6: dom (Rev ((Rev f) " )) = dom ((Rev ((Rev f) " )) " ) by FINSEQ_3:31;
for i being Nat st 1 <= i & i <= len f holds
f . i = ((Rev ((Rev f) " )) " ) . i
proof
let i be Nat; :: thesis: ( 1 <= i & i <= len f implies f . i = ((Rev ((Rev f) " )) " ) . i )
A7: i in NAT by ORDINAL1:def 13;
assume A8: ( 1 <= i & i <= len f ) ; :: thesis: f . i = ((Rev ((Rev f) " )) " ) . i
then A9: i in Seg (len f) by A7;
then A10: i in dom f by FINSEQ_1:def 3;
A11: i in dom ((Rev ((Rev f) " )) " ) by A1, A2, A4, A5, A9, FINSEQ_1:def 3;
A12: (len f) - i = (len f) -' i by A8, XREAL_1:235;
((len f) - i) + 1 = ((len f) -' i) + 1 by A8, XREAL_1:235;
then reconsider j = ((len f) - i) + 1 as Element of NAT ;
A13: ((len f) - i) + 1 >= 0 + 1 by A12, XREAL_1:8;
i - 1 >= 0 by A8, XREAL_1:50;
then (len f) + 0 <= (len f) + (i - 1) by XREAL_1:9;
then (len f) - (i - 1) <= ((len f) + (i - 1)) - (i - 1) by XREAL_1:15;
then j in Seg (len f) by A13;
then A14: j in dom ((Rev f) " ) by A1, A2, FINSEQ_1:def 3;
A15: i + j = (len f) + 1 ;
A16: j + i = (len f) + 1 ;
f . i = f /. i by A10, PARTFUN1:def 8
.= (Rev f) /. j by A10, A15, FINSEQ_5:69
.= (((Rev f) /. j) " ) "
.= (((Rev f) " ) /. j) " by A3, A14, Def4
.= ((Rev ((Rev f) " )) /. i) " by A1, A2, A14, A16, FINSEQ_5:69
.= ((Rev ((Rev f) " )) " ) /. i by A6, A11, Def4
.= ((Rev ((Rev f) " )) " ) . i by A11, PARTFUN1:def 8 ;
hence f . i = ((Rev ((Rev f) " )) " ) . i ; :: thesis: verum
end;
then (Rev ((Rev f) " )) " = f by A1, A2, A4, A5, FINSEQ_1:18;
hence Product (((Rev f) " ) ^ f) = 1_ G by Th24; :: thesis: verum