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 Th28:
  F is having_a_unity & H is having_a_unity & h.the_unity_wrt F =
the_unity_wrt H & (for d1,d2 holds h.(F.(d1,d2)) = H.(h.d1,h.d2)) implies h.(F
  "**"p) = H "**"(h*p)
proof
  assume that
A1: F is having_a_unity and
A2: H is having_a_unity and
A3: h.the_unity_wrt F = the_unity_wrt H and
A4: for d1,d2 holds h.(F.(d1,d2)) = H.(h.d1,h.d2);
  defpred X[FinSequence of D] means h.(F"**"$1) = H "**"(h*$1);
A5: for q,d st X[q] holds X[q^<*d*>]
  proof
    let q,d such that
A6: h.(F"**"q) = H "**"(h*q);
    thus h.(F"**"(q^<*d*>)) = h.(F.(F"**"q,d)) by A1,FINSOP_1:4
      .= H.(H "**"(h*q),h.d) by A4,A6
      .= H "**" ((h*q)^<*h.d*>) by A2,FINSOP_1:4
      .= H "**"(h*(q^<*d*>)) by FINSEQOP:8;
  end;
  h.(F"**"<*>D) = h.(the_unity_wrt F) by A1,FINSOP_1:10
    .= H "**"(<*>E) by A2,A3,FINSOP_1:10
    .= H "**"(h*<*>D);
  then
A7: X[<*>D];
  X[q] from FINSEQ_2:sch 2(A7,A5);
  hence thesis;
end;
