reserve i for object, I for set,
  f for Function,
  x, x1, x2, y, A, B, X, Y, Z for ManySortedSet of I;

theorem     :: ZFMISC_1:127
  x1 (/\) x2 = EmptyMS I or A (/\) B = EmptyMS I
  implies [|x1,A|] (/\) [|x2,B|] = EmptyMS I
proof
  assume
A1: x1 (/\) x2 = EmptyMS I or A (/\) B= EmptyMS I;
  per cases by A1;
  suppose
A2: x1 (/\) x2 = EmptyMS I;
    now
      let i be object;
      assume
A3:   i in I;
      then x1.i /\ x2.i = (x1 (/\) x2).i by PBOOLE:def 5
        .= {} by A2,PBOOLE:5;
      then x1.i misses x2.i by XBOOLE_0:def 7;
      then
A4:   [:x1.i,A.i:] misses [:x2.i,B.i:] by ZFMISC_1:104;
      thus ([|x1,A|] (/\) [|x2,B|]).i = [|x1,A|].i /\ [|x2,B|].i
      by A3,PBOOLE:def 5
        .= [:x1.i,A.i:] /\ [|x2,B|].i by A3,PBOOLE:def 16
        .= [:x1.i,A.i:] /\ [:x2.i,B.i:] by A3,PBOOLE:def 16
        .= {} by A4,XBOOLE_0:def 7
        .= EmptyMS I.i by PBOOLE:5;
    end;
    hence thesis;
  end;
  suppose
A5: A (/\) B = EmptyMS I;
    now
      let i be object;
      assume
A6:   i in I;
      then A.i /\ B.i = (A (/\) B).i by PBOOLE:def 5
        .= {} by A5,PBOOLE:5;
      then A.i misses B.i by XBOOLE_0:def 7;
      then
A7:   [:x1.i,A.i:] misses [:x2.i,B.i:] by ZFMISC_1:104;
      thus ([|x1,A|] (/\) [|x2,B|]).i = [|x1,A|].i /\ [|x2,B|].i
      by A6,PBOOLE:def 5
        .= [:x1.i,A.i:] /\ [|x2,B|].i by A6,PBOOLE:def 16
        .= [:x1.i,A.i:] /\ [:x2.i,B.i:] by A6,PBOOLE:def 16
        .= {} by A7,XBOOLE_0:def 7
        .= EmptyMS I.i by PBOOLE:5;
    end;
    hence thesis;
  end;
end;
