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:121
  [|x1 (\/) x2, A (\/) B|] = [|x1,A|] (\/) [|x1,B|] (\/) [|x2,A|] (\/) [|x2,B|]
proof
  now
    let i be object;
    assume
A1: i in I;
    hence [|x1 (\/) x2, A (\/) B|].i = [:(x1 (\/) x2).i,(A (\/) B).i:]
                      by PBOOLE:def 16
      .= [:x1.i \/ x2.i, (A (\/) B).i:] by A1,PBOOLE:def 4
      .= [:x1.i \/ x2.i, A.i \/ B.i:] by A1,PBOOLE:def 4
      .= [:x1.i,A.i:] \/ [:x1.i,B.i:] \/ [:x2.i,A.i:] \/ [:x2.i,B.i:]
    by ZFMISC_1:98
      .= [|x1,A|].i \/ [:x1.i,B.i:] \/ [:x2.i,A.i:] \/ [:x2.i,B.i:]
    by A1,PBOOLE:def 16
      .= [|x1,A|].i \/ [|x1,B|].i \/ [:x2.i,A.i:] \/ [:x2.i,B.i:]
    by A1,PBOOLE:def 16
      .= [|x1,A|].i \/ [|x1,B|].i \/ [|x2,A|].i \/ [:x2.i,B.i:]
    by A1,PBOOLE:def 16
      .= [|x1,A|].i \/ [|x1,B|].i \/ [|x2,A|].i \/ [|x2,B|].i
    by A1,PBOOLE:def 16
      .= ([|x1,A|] (\/) [|x1,B|]).i \/ [|x2,A|].i \/ [|x2,B|].i
    by A1,PBOOLE:def 4
      .= ([|x1,A|] (\/) [|x1,B|] (\/) [|x2,A|]).i \/ [|x2,B|].i
    by A1,PBOOLE:def 4
      .= ([|x1,A|] (\/) [|x1,B|] (\/) [|x2,A|] (\/) [|x2,B|]).i
           by A1,PBOOLE:def 4;
  end;
  hence thesis;
end;
