reserve U0,U1,U2,U3 for Universal_Algebra,
  n for Nat,
  x,y for set;
reserve A for non empty Subset of U0,
  o for operation of U0,
  x1,y1 for FinSequence of A;

theorem
  for U0 be strict Universal_Algebra holds GenUnivAlg([#](the carrier of
  U0)) = U0
proof
  let U0 be strict Universal_Algebra;
  set W = GenUnivAlg([#](the carrier of U0));
  reconsider B = the carrier of W as non empty Subset of U0 by Def7;
  (the carrier of W) is Subset of U0 & the carrier of U0 c= the carrier of
  W by Def7,Def12;
  then
A1: the carrier of U0 = the carrier of W;
A2: dom the charact of(U0) = dom Opers(U0,B) by Def6;
A3: for n being Nat st n in dom the charact of(U0) holds (the charact of(U0)
  ).n = (Opers(U0,B)).n
  proof
    let n be Nat;
    assume
A4: n in dom the charact of(U0);
    then reconsider o =(the charact of(U0)).n as operation of U0 by
FUNCT_1:def 3;
    (Opers(U0,B)).n = o/.B by A2,A4,Def6;
    hence thesis by A1,Th4;
  end;
  the charact of(W) = Opers(U0,B) by Def7;
  hence thesis by A1,A2,A3,FINSEQ_1:13;
end;
