R and S are two tables with Head(R)=A1…An and Head(S)=B1…Bm.
The product of the tables R and S is a table T whose heading is Head(T)=R.A1…R.An S.B1…S.Bm.
We say t is a row in T if and only if there are two rows u in R and v in S such that t is the concatenation of u with v, u∥v.
   
  | 
  
  | 
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
R×R would have the heading R.A1…R.An R.A1…R.An, use the alias to solve the problem, that is, S:=R, then S×R.
 | 
          
     I feel bad for the homeless guy,      but I feel really bad for the homeless guy’s dog, because he must be thinking “Man, this is the longest walk ever.”  |