reserve x,y for set;
reserve C,C9,D,E for non empty set;
reserve c,c9,c1,c2,c3 for Element of C;
reserve B,B9,B1,B2 for Element of Fin C;
reserve A for Element of Fin C9;
reserve d,d1,d2,d3,d4,e for Element of D;
reserve F,G for BinOp of D;
reserve u for UnOp of D;
reserve f,f9 for Function of C,D;
reserve g for Function of C9,D;
reserve H for BinOp of E;
reserve h for Function of D,E;
reserve i,j for Nat;
reserve s for Function;
reserve p,q for FinSequence of D;
reserve T1,T2 for Element of i-tuples_on D;

theorem Th39:
  F is commutative associative & F is having_a_unity & e =
the_unity_wrt F & G is_distributive_wrt F & G.(e,d) = e implies G.(F"**"p,d) =
  F "**"(G[:](p,d))
proof
  assume that
A1: F is commutative associative & F is having_a_unity & e =
  the_unity_wrt F and
A2: G is_distributive_wrt F and
A3: G.(e,d) = e;
A4: len p = len(G[:](p,d)) & Seg len p = dom p by FINSEQ_1:def 3,FINSEQ_2:84;
A5: Seg len(G[:](p,d)) = dom(G[:](p,d)) by FINSEQ_1:def 3;
  thus G.(F"**"p,d) = G.(F$$(findom p,[#](p,e)),d) by A1,Def2
    .= F $$(findom p,G[:]([#](p,e),d)) by A1,A2,A3,Th13
    .= F $$(findom p,[#](G[:](p,d),e)) by A3,Lm5
    .= F "**"(G[:](p,d)) by A1,A4,A5,Def2;
end;
