 reserve x,y,z,t for object,X,Y,Z,W for set;
 reserve R,S,T for Relation;

theorem Th6:
  (R \/ S) * T = (R * T) \/ (S * T)
proof
  thus (R \/ S) * T = (R * T) \/ (S * T)
  proof
    let x,y be object;
    thus [x,y] in (R \/ S) * T implies [x,y] in (R * T) \/ (S * T)
    proof
      assume [x,y] in (R \/ S) * T;
      then consider z being object such that
A1:   [x,z] in R \/ S & [z,y] in T by RELAT_1:def 8;
      [x,z] in R & [z,y] in T or [x,z] in S & [z,y] in T by A1,XBOOLE_0:def 3;
      then [x,y] in R * T or [x,y] in S *T by RELAT_1:def 8;
      hence thesis by XBOOLE_0:def 3;
    end;
    assume A2: [x,y] in (R * T) \/ (S * T);
    per cases by A2,XBOOLE_0:def 3;
    suppose
      [x,y] in S * T;
      then consider z being object such that
A3:   [x,z] in S and
A4:   [z,y] in T by RELAT_1:def 8;
      [x,z] in R \/ S by A3,XBOOLE_0:def 3;
      hence thesis by A4,RELAT_1:def 8;
    end;
    suppose [x,y] in R * T;
      then consider z being object such that
A5:   [x,z] in R and
A6:   [z,y] in T by RELAT_1:def 8;
      [x,z] in R \/ S by A5,XBOOLE_0:def 3;
      hence thesis by A6,RELAT_1:def 8;
    end;
  end;
end;
