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 Th38:
  F is commutative associative & F is having_a_unity & e =
the_unity_wrt F & G is_distributive_wrt F & G.(d,e) = e implies G.(d,F"**"p) =
  F "**"(G[;](d,p))
proof
  assume that
A1: F is commutative & F is associative & F is having_a_unity & e =
  the_unity_wrt F and
A2: G is_distributive_wrt F and
A3: G.(d,e) = e;
A4: len p = len(G[;](d,p)) & Seg len p = dom p by FINSEQ_1:def 3,FINSEQ_2:78;
A5: Seg len(G[;](d,p)) = dom(G[;](d,p)) by FINSEQ_1:def 3;
  thus G.(d,F"**"p) = G.(d,F$$(findom p,[#](p,e))) by A1,Def2
    .= F $$(findom p,G[;](d,[#](p,e))) by A1,A2,A3,Th12
    .= F $$(findom p,[#](G[;](d,p),e)) by A3,Lm6
    .= F "**"(G[;](d,p)) by A1,A4,A5,Def2;
end;
