reserve A,B,C,Y,x,y,z for set, U, D for non empty set,
X for non empty Subset of D, d,d1,d2 for Element of D;
reserve P,Q,R for Relation, g for Function, p,q for FinSequence;
reserve f for BinOp of D, i,m,n for Nat;
reserve X for set, f for Function;
reserve U1,U2 for non empty set;
reserve f for BinOp of D;
reserve a,a1,a2,b,b1,b2,A,B,C,X,Y,Z,x,x1,x2,y,y1,y2,z for set,
U,U1,U2,U3 for non empty set, u,u1,u2 for Element of U,
P,Q,R for Relation, f,f1,f2,g,g1,g2 for Function,
k,m,n for Nat, kk,mm,nn for Element of NAT, m1, n1 for non zero Nat,
p, p1, p2 for FinSequence, q, q1, q2 for U-valued FinSequence;

theorem (U-concatenation).:(id (1-tuples_on U)) =
the set of all <*u,u*> where u is Element of U ::#Th38
proof
set f=U-concatenation, U1=1-tuples_on U, D=id U1, U2=2-tuples_on U, A=f.:D,
B= the set of all <*u,u*> where u is Element of U;
D c= [:U1, U1:] & U1 c= U* by FINSEQ_2:142; then
[:U1, U1:] c= [:U*, U*:] by ZFMISC_1:96; then
reconsider DD=D as Subset of [:U*, U*:] by XBOOLE_1:1;
A1: U1=the set of all <*u*> where u is Element of U by FINSEQ_2:96;
A2: dom D=U1 & dom f=[:U*, U*:] by FUNCT_2:def 1; then
A3: D={[x,D.x] where x is Element of U1: x in U1} by Th20;
now
let y be object; assume y in A; then consider x being object such that
A4: x in dom f & x in D & y=f.x by FUNCT_1:def 6;
consider p being Element of U1 such that
A5: x=[p,D.p] & p in U1 by A4, A3; consider u being Element of U such that
A6: p=<*u*> by A5, A1;
reconsider pp=p as FinSequence of U;
y=f.(pp,pp) by A4, A5; then
y = <*u,u*> by Th4, A6; hence y in B;
end; then
A7: A c= B;
now
let y be object; assume y in B; then consider u being Element of U such that
A8: y=<*u,u*>; reconsider p=<*u*> as Element of
U1 by FINSEQ_2:98; reconsider pp=p as FinSequence of U;
[p,D.p]=[p,p] & p in U1; then [p,p] in D by A3; then
reconsider dd=[p,p] as Element of D;
A9: dd in DD null [:U*, U*:];  y = f.(pp,pp) by A8, Th4 .= f.dd;
hence y in f.:D by A9, A2, FUNCT_1:def 6;
end;
then B c= A; hence thesis by A7;
end;
