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 Th25:
  F is having_a_unity implies F"**"(i|->the_unity_wrt F) = the_unity_wrt F
proof
  set e = the_unity_wrt F;
  defpred X[Nat] means F"**"($1|->e) = e;
  assume
A1: F is having_a_unity;
A2: for i st X[i] holds X[i+1]
  proof
    let i;
    assume
A3: F"**"(i|->e) = e;
    thus F"**"((i+1)|->e) = F"**"((i|->e)^<*e*>) by FINSEQ_2:60
      .= F.(F"**"(i|->e),e) by A1,FINSOP_1:4
      .= e by A1,A3,SETWISEO:15;
  end;
  F"**"(0|->e) = F"**" <*>D .= e by A1,FINSOP_1:10;
  then
A4: X[0];
  for i holds X[i] from NAT_1:sch 2(A4,A2);
  hence thesis;
end;
