reserve i,j,n,k,m for Nat,
     a,b,x,y,z for object,
     F,G for FinSequence-yielding FinSequence,
     f,g,p,q for FinSequence,
     X,Y for set,
     D for non empty set;
reserve
  B,A,M for BinOp of D,
  F,G for D* -valued FinSequence,
  f for FinSequence of D,
  d,d1,d2 for Element of D;
reserve
  F,G for non-empty non empty FinSequence of D*,
  f for non empty FinSequence of D;
reserve f,g for FinSequence of D,
        a,b,c for set,
        F,F1,F2 for finite set;

theorem Th98:
  for E1 be Enumeration of F1
    for g be Function st
       union F1 c= dom g & g|union F1 is one-to-one
       for gE1 be Enumeration of .:g.:F1 st gE1 = (.:g)*E1
for fg be FinSequence of D st g.:dom f c= dom fg
for s be FinSequence st s in doms (SignGenOp(f,A,F1) * E1) & rng s c= dom g
   holds
  g*s in doms (SignGenOp(fg,A,.:g.:F1) * gE1)
proof
  let E1 be Enumeration of F1;
  let g be Function such that
A1: union F1 c= dom g & g|union F1 is one-to-one;
  let gE1 be Enumeration of .:g.:F1 such that
A2: gE1 = (.:g)*E1;
A3:len (SignGenOp(f,A,F1) * E1)= len E1=len gE1 =
    len (SignGenOp(f,A,.:g.:F1) * gE1) by A1,A2,Th97,CARD_1:def 7;
  let gf be FinSequence of D such that
A4: g.:dom f c= dom gf;
  let s be FinSequence such that
A5: s in doms (SignGenOp(f,A,F1) * E1)
  and
A6: rng s c= dom g;
A7: dom (g*s) = dom s = Seg len s by A6,RELAT_1:27,FINSEQ_1:def 3;
  then reconsider gs=g*s as FinSequence by FINSEQ_1:def 2;
A8: len s = len  (SignGenOp(f,A,F1) * E1) by A5,Th47;
  then
A9: dom s = dom (SignGenOp(f,A,F1) * E1) by FINSEQ_3:30;
  dom SignGenOp(gf,A,.:g.:F1) = .:g.:F1 = rng gE1 by
  FUNCT_2:def 1, RLAFFIN3:def 1;
  then
A10: dom (SignGenOp(gf,A,.:g.:F1) * gE1) = dom gE1 by RELAT_1:27;
  F1 c= bool union F1 c= bool dom g by A1,ZFMISC_1:67,ZFMISC_1:82;
  then F1 c= bool dom g;
  then F1 c= dom (.:g) by FUNCT_3:def 1;
  then rng E1 c= dom (.:g);
  then
A11: dom gE1 = dom E1 by A2,RELAT_1:27;
  len gs = len s by A7,FINSEQ_3:29;
  then
A12: len gs = len (SignGenOp(gf,A,.:g.:F1) * gE1) by A3,A8,A10,FINSEQ_3:29;
  for i st i in dom gs holds gs.i in dom ((SignGenOp(gf,A,.:g.:F1) * gE1).i)
  proof
    let i such that
A13: i in dom gs;
A14:i in dom s & s.i in dom g by A13,FUNCT_1:11;
    then
A15: s.i in dom ((SignGenOp(f,A,F1) * E1).i) by Th47,A5;
    s.i in dom SignGen(f,A,E1.i) by A15,Th80,A9,A14;
    then
A16: s.i in dom f by Def11;
    i in dom E1 by A9,A14,FUNCT_1:11;
    then
A17: (SignGenOp(gf,A,.:g.:F1) * gE1).i = SignGen(gf,A,gE1.i) by Th80,A11;
A18: dom SignGen(gf,A,gE1.i) = dom gf by Def11;
A19: gs.i = g.(s.i) & i in dom gs by A14,FUNCT_1:11,13;
    s.i in dom g by A13,FUNCT_1:11;
    then g.(s.i) in g.:dom f by A16,FUNCT_1:def 6;
    hence thesis by A17,A18,A4,A19;
  end;
  hence thesis by A12,Th47;
end;
