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 Th100:
  for E1 be Enumeration of F1 st union F1 c= dom f
    for g be Permutation of dom f
       for gE1 be Enumeration of .:g.:F1 st gE1 = (.:g)*E1
for fg be FinSequence of D st fg = f*g"
  for S1 be Element of Fin dom App (SignGenOp(f,A,F1) * E1)
holds
  {g*s where s is FinSequence of NAT: s in S1} is
      Element of Fin dom App (SignGenOp(fg,A,.:g.:F1) * gE1)
proof
  let E1 be Enumeration of F1 such that
A1: union F1 c= dom f;
  let g be Permutation of dom f;
  let gE1 be Enumeration of .:g.:F1 such that
A2:gE1 = (.:g)*E1;
  let fg be FinSequence of D such that
A3:fg = f*g";
  let S1 be Element of Fin dom App (SignGenOp(f,A,F1) * E1);
A4: union F1 c= dom g by A1,FUNCT_2:52;
A5: g|union F1 is one-to-one by FUNCT_1:52;
  dom (g") = dom f = rng (g") by FUNCT_2:52,def 3;
  then
A6:dom (f*g") = dom f by RELAT_1:27;
A7: g.:dom f c= dom fg by A6,A3;
  {g*s where s is FinSequence of NAT: s in S1}
     c= dom App (SignGenOp(fg,A,.:g.:F1) * gE1)
  proof
    let y be object such that
A8: y in {g*s where s is FinSequence of NAT: s in S1};
    consider s be FinSequence of NAT such that
A9:  y=g*s & s in S1 by A8;
    S1 c= dom App (SignGenOp(f,A,F1) * E1) by FINSUB_1:def 5;
    then
A10: s in dom App (SignGenOp(f,A,F1) * E1) by A9;
    rng s c= dom g
    proof
      let y such that
A11:y in rng s;
      consider x such that
A12:x in dom s & s.x=y by A11,FUNCT_1:def 3;
      reconsider x as Nat by A12;
A13:  s.x in dom ((SignGenOp(f,A,F1) * E1).x) by A12,A10,Th47;
      (SignGenOp(f,A,F1) * E1).x<>{} by A12,A10,Th47;
      then x in dom (SignGenOp(f,A,F1) * E1) by FUNCT_1:def 2;
      then (SignGenOp(f,A,F1) * E1).x = SignGen(f,A,E1.x) by Th80;
      then dom ((SignGenOp(f,A,F1) * E1).x) = dom f by Def11;
      hence thesis by FUNCT_2:52,A13,A12;
    end;
    then g*s in doms (SignGenOp(fg,A,.:g.:F1) * gE1) by Th98,A2,A4,A7,A5,A10;
    hence thesis by A9,Def9;
  end;
  hence thesis by FINSUB_1:def 5;
end;
