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 Th84:
  for E be Enumeration of F st
    (B is having_a_unity or len f >= 1) & B is associative &
     not 1+len f in union F & not 2+len f in union F
  holds
    B "**"(SignGenOp(f^<*d1*>^<*d2*>,B,F)*E) =
      B"**"(SignGenOp(f^<*B.(d1,d2)*>,B,F)*E)
proof
  let E be Enumeration of F such that
A1: (B is having_a_unity or len f >= 1) and
A2: B is associative and
A3: not 1+len f in union F & not 2+len f in union F;
A4: len (f^<*d1*>) = 1+len f by FINSEQ_2:16;
  then not 1+len (f^<*d1*>) in union F by A3;
  hence B "**" (SignGenOp(f^<*d1*>^<*d2*>,B,F)*E)
    = B[:](B "**" SignGenOp(f^<*d1*>,B,F)*E,d2) by NAT_1:11,Th82,A4
   .= B[:](B[:](B "**" SignGenOp(f,B,F)*E,d1),d2) by A1,Th82,A3
   .= B[:](B "**" SignGenOp(f,B,F)*E,B.(d1,d2)) by A2,FUNCOP_1:63
   .= B"**" (SignGenOp(f^<*B.(d1,d2)*>,B,F)*E) by A1,Th82,A3;
end;
