let D be non empty set ; for A being BinOp of D
for f being FinSequence of D
for F1 being finite set
for E1 being Enumeration of F1
for g being Function st union F1 c= dom g & g is one-to-one holds
for gE1 being Enumeration of (.: g) .: F1 st gE1 = (.: g) * E1 holds
for fg being FinSequence of D st fg = (f * (g ")) | (dom fg) & g .: (dom f) c= dom fg holds
for s being FinSequence st s in doms ((SignGenOp (f,A,F1)) * E1) & rng s c= dom g holds
(App ((SignGenOp (f,A,F1)) * E1)) . s = (App ((SignGenOp (fg,A,((.: g) .: F1))) * gE1)) . (g * s)
let A be BinOp of D; for f being FinSequence of D
for F1 being finite set
for E1 being Enumeration of F1
for g being Function st union F1 c= dom g & g is one-to-one holds
for gE1 being Enumeration of (.: g) .: F1 st gE1 = (.: g) * E1 holds
for fg being FinSequence of D st fg = (f * (g ")) | (dom fg) & g .: (dom f) c= dom fg holds
for s being FinSequence st s in doms ((SignGenOp (f,A,F1)) * E1) & rng s c= dom g holds
(App ((SignGenOp (f,A,F1)) * E1)) . s = (App ((SignGenOp (fg,A,((.: g) .: F1))) * gE1)) . (g * s)
let f be FinSequence of D; for F1 being finite set
for E1 being Enumeration of F1
for g being Function st union F1 c= dom g & g is one-to-one holds
for gE1 being Enumeration of (.: g) .: F1 st gE1 = (.: g) * E1 holds
for fg being FinSequence of D st fg = (f * (g ")) | (dom fg) & g .: (dom f) c= dom fg holds
for s being FinSequence st s in doms ((SignGenOp (f,A,F1)) * E1) & rng s c= dom g holds
(App ((SignGenOp (f,A,F1)) * E1)) . s = (App ((SignGenOp (fg,A,((.: g) .: F1))) * gE1)) . (g * s)
let F1 be finite set ; for E1 being Enumeration of F1
for g being Function st union F1 c= dom g & g is one-to-one holds
for gE1 being Enumeration of (.: g) .: F1 st gE1 = (.: g) * E1 holds
for fg being FinSequence of D st fg = (f * (g ")) | (dom fg) & g .: (dom f) c= dom fg holds
for s being FinSequence st s in doms ((SignGenOp (f,A,F1)) * E1) & rng s c= dom g holds
(App ((SignGenOp (f,A,F1)) * E1)) . s = (App ((SignGenOp (fg,A,((.: g) .: F1))) * gE1)) . (g * s)
let E1 be Enumeration of F1; for g being Function st union F1 c= dom g & g is one-to-one holds
for gE1 being Enumeration of (.: g) .: F1 st gE1 = (.: g) * E1 holds
for fg being FinSequence of D st fg = (f * (g ")) | (dom fg) & g .: (dom f) c= dom fg holds
for s being FinSequence st s in doms ((SignGenOp (f,A,F1)) * E1) & rng s c= dom g holds
(App ((SignGenOp (f,A,F1)) * E1)) . s = (App ((SignGenOp (fg,A,((.: g) .: F1))) * gE1)) . (g * s)
let g be Function; ( union F1 c= dom g & g is one-to-one implies for gE1 being Enumeration of (.: g) .: F1 st gE1 = (.: g) * E1 holds
for fg being FinSequence of D st fg = (f * (g ")) | (dom fg) & g .: (dom f) c= dom fg holds
for s being FinSequence st s in doms ((SignGenOp (f,A,F1)) * E1) & rng s c= dom g holds
(App ((SignGenOp (f,A,F1)) * E1)) . s = (App ((SignGenOp (fg,A,((.: g) .: F1))) * gE1)) . (g * s) )
assume A1:
( union F1 c= dom g & g is one-to-one )
; for gE1 being Enumeration of (.: g) .: F1 st gE1 = (.: g) * E1 holds
for fg being FinSequence of D st fg = (f * (g ")) | (dom fg) & g .: (dom f) c= dom fg holds
for s being FinSequence st s in doms ((SignGenOp (f,A,F1)) * E1) & rng s c= dom g holds
(App ((SignGenOp (f,A,F1)) * E1)) . s = (App ((SignGenOp (fg,A,((.: g) .: F1))) * gE1)) . (g * s)
let gE1 be Enumeration of (.: g) .: F1; ( gE1 = (.: g) * E1 implies for fg being FinSequence of D st fg = (f * (g ")) | (dom fg) & g .: (dom f) c= dom fg holds
for s being FinSequence st s in doms ((SignGenOp (f,A,F1)) * E1) & rng s c= dom g holds
(App ((SignGenOp (f,A,F1)) * E1)) . s = (App ((SignGenOp (fg,A,((.: g) .: F1))) * gE1)) . (g * s) )
assume A2:
gE1 = (.: g) * E1
; for fg being FinSequence of D st fg = (f * (g ")) | (dom fg) & g .: (dom f) c= dom fg holds
for s being FinSequence st s in doms ((SignGenOp (f,A,F1)) * E1) & rng s c= dom g holds
(App ((SignGenOp (f,A,F1)) * E1)) . s = (App ((SignGenOp (fg,A,((.: g) .: F1))) * gE1)) . (g * s)
A3:
g | (union F1) is one-to-one
by A1, FUNCT_1:52;
then A4:
( len ((SignGenOp (f,A,F1)) * E1) = len E1 & len E1 = len gE1 & len gE1 = len ((SignGenOp (f,A,((.: g) .: F1))) * gE1) )
by A1, A2, Th97, CARD_1:def 7;
let gf be FinSequence of D; ( gf = (f * (g ")) | (dom gf) & g .: (dom f) c= dom gf implies for s being FinSequence st s in doms ((SignGenOp (f,A,F1)) * E1) & rng s c= dom g holds
(App ((SignGenOp (f,A,F1)) * E1)) . s = (App ((SignGenOp (gf,A,((.: g) .: F1))) * gE1)) . (g * s) )
assume that
A5:
gf = (f * (g ")) | (dom gf)
and
A6:
g .: (dom f) c= dom gf
; for s being FinSequence st s in doms ((SignGenOp (f,A,F1)) * E1) & rng s c= dom g holds
(App ((SignGenOp (f,A,F1)) * E1)) . s = (App ((SignGenOp (gf,A,((.: g) .: F1))) * gE1)) . (g * s)
let s be FinSequence; ( s in doms ((SignGenOp (f,A,F1)) * E1) & rng s c= dom g implies (App ((SignGenOp (f,A,F1)) * E1)) . s = (App ((SignGenOp (gf,A,((.: g) .: F1))) * gE1)) . (g * s) )
assume that
A7:
s in doms ((SignGenOp (f,A,F1)) * E1)
and
A8:
rng s c= dom g
; (App ((SignGenOp (f,A,F1)) * E1)) . s = (App ((SignGenOp (gf,A,((.: g) .: F1))) * gE1)) . (g * s)
( dom (g * s) = dom s & dom s = Seg (len s) )
by A8, RELAT_1:27, FINSEQ_1:def 3;
then reconsider gs = g * s as FinSequence by FINSEQ_1:def 2;
A9:
( dom (g * s) = dom s & dom s = Seg (len s) )
by A8, RELAT_1:27, FINSEQ_1:def 3;
then reconsider gs = g * s as FinSequence by FINSEQ_1:def 2;
A10:
( len gs = len s & len s = len ((SignGenOp (f,A,((.: g) .: F1))) * gE1) )
by A9, FINSEQ_3:29, Th47, A4, A7;
A11:
gs in doms ((SignGenOp (gf,A,((.: g) .: F1))) * gE1)
by A2, A1, A3, A6, Th98, A8, A7;
len s = len ((SignGenOp (f,A,F1)) * E1)
by A7, Th47;
then A12:
dom s = dom ((SignGenOp (f,A,F1)) * E1)
by FINSEQ_3:30;
A13:
( gs = g * s & gs in doms ((SignGenOp (gf,A,((.: g) .: F1))) * gE1) )
by A2, A1, A3, A6, Th98, A8, A7;
A14:
len ((App ((SignGenOp (f,A,F1)) * E1)) . s) = len s
by Def9, A7;
for i being Nat st 1 <= i & i <= len s holds
((App ((SignGenOp (f,A,F1)) * E1)) . s) . i = ((App ((SignGenOp (gf,A,((.: g) .: F1))) * gE1)) . gs) . i
proof
let i be
Nat;
( 1 <= i & i <= len s implies ((App ((SignGenOp (f,A,F1)) * E1)) . s) . i = ((App ((SignGenOp (gf,A,((.: g) .: F1))) * gE1)) . gs) . i )
assume A15:
( 1
<= i &
i <= len s )
;
((App ((SignGenOp (f,A,F1)) * E1)) . s) . i = ((App ((SignGenOp (gf,A,((.: g) .: F1))) * gE1)) . gs) . i
A16:
i in dom s
by A15, FINSEQ_3:25;
A17:
s . i in rng s
by A16, FUNCT_1:def 3;
A18:
(
gs . i = g . (s . i) &
i in dom gs )
by A17, A8, A16, FUNCT_1:11, FUNCT_1:13;
len gs = len ((SignGenOp (gf,A,((.: g) .: F1))) * gE1)
by A13, Th47;
then A19:
dom gs = dom ((SignGenOp (gf,A,((.: g) .: F1))) * gE1)
by FINSEQ_3:30;
then A20:
((SignGenOp (gf,A,((.: g) .: F1))) * gE1) . i = SignGen (
gf,
A,
(gE1 . i))
by A17, A8, A16, FUNCT_1:11, Th80;
A21:
((SignGenOp (f,A,F1)) * E1) . i = SignGen (
f,
A,
(E1 . i))
by A15, FINSEQ_3:25, A12, Th80;
A22:
i in dom gs
by A17, A8, A16, FUNCT_1:11;
A23:
((App ((SignGenOp (f,A,F1)) * E1)) . s) . i =
(((SignGenOp (f,A,F1)) * E1) . i) . (s . i)
by A7, A16, Def9
.=
(SignGen (f,A,(E1 . i))) . (s . i)
by A15, FINSEQ_3:25, A12, Th80
;
A24:
((App ((SignGenOp (gf,A,((.: g) .: F1))) * gE1)) . gs) . i =
(((SignGenOp (gf,A,((.: g) .: F1))) * gE1) . i) . (gs . i)
by A17, A8, A16, FUNCT_1:11, Def9, A13
.=
(SignGen (gf,A,(gE1 . i))) . (gs . i)
by A19, A17, A8, A16, FUNCT_1:11, Th80
;
A25:
s . i in dom (SignGen (f,A,(E1 . i)))
by A21, A7, A16, Th47;
A26:
gs . i in dom (SignGen (gf,A,(gE1 . i)))
by A20, A22, A13, Th47;
A27:
dom (SignGen (gf,A,(gE1 . i))) = dom gf
by Def11;
A28:
i in dom E1
by A12, A16, FUNCT_1:11;
then
(
E1 . i in rng E1 &
rng E1 = F1 )
by RLAFFIN3:def 1, FUNCT_1:def 3;
then
E1 . i c= union F1
by ZFMISC_1:74;
then A29:
E1 . i c= dom g
by A1;
then
E1 . i in bool (dom g)
;
then A30:
E1 . i in dom (.: g)
by FUNCT_3:def 1;
gE1 . i = (.: g) . (E1 . i)
by A28, A2, A30, FUNCT_1:11, FUNCT_1:12;
then A31:
gE1 . i = g .: (E1 . i)
by A29, FUNCT_3:def 1;
(
gs . i in dom (f * (g ")) &
gf . (gs . i) = (f * (g ")) . (gs . i) )
by A26, A27, FUNCT_1:47, RELAT_1:57, A5;
then A32:
gf . (gs . i) =
f . ((g ") . (gs . i))
by FUNCT_1:12
.=
f . (s . i)
by A1, A17, A8, A18, FUNCT_1:34
;
per cases
( s . i in E1 . i or not s . i in E1 . i )
;
suppose A33:
s . i in E1 . i
;
((App ((SignGenOp (f,A,F1)) * E1)) . s) . i = ((App ((SignGenOp (gf,A,((.: g) .: F1))) * gE1)) . gs) . ithen A34:
(SignGen (f,A,(E1 . i))) . (s . i) = (the_inverseOp_wrt A) . (f . (s . i))
by A25, Def11;
gs . i in gE1 . i
by A31, A17, A8, A33, A18, FUNCT_1:def 6;
hence
((App ((SignGenOp (f,A,F1)) * E1)) . s) . i = ((App ((SignGenOp (gf,A,((.: g) .: F1))) * gE1)) . gs) . i
by A23, A24, A34, A32, A26, Def11;
verum end; suppose A35:
not
s . i in E1 . i
;
((App ((SignGenOp (f,A,F1)) * E1)) . s) . i = ((App ((SignGenOp (gf,A,((.: g) .: F1))) * gE1)) . gs) . ithen A36:
(SignGen (f,A,(E1 . i))) . (s . i) = f . (s . i)
by A25, Def11;
not
gs . i in gE1 . i
hence
((App ((SignGenOp (f,A,F1)) * E1)) . s) . i = ((App ((SignGenOp (gf,A,((.: g) .: F1))) * gE1)) . gs) . i
by A23, A24, A36, A32, A26, Def11;
verum end; end;
end;
hence
(App ((SignGenOp (f,A,F1)) * E1)) . s = (App ((SignGenOp (gf,A,((.: g) .: F1))) * gE1)) . (g * s)
by A10, Def9, A11, A14; verum