theorem
  A + (B \/ C) = (A + B) \/ (A + C)
proof
  thus A + (B \/ C) c= (A + B) \/ (A + C)
  proof
    let x be object;
    assume x in A + (B \/ C);
    then consider g1,g2 such that
A1: x = g1 + g2 & g1 in A and
A2: g2 in B \/ C;
    g2 in B or g2 in C by A2,XBOOLE_0:def 3;
    then x in A + B or x in A + C by A1;
    hence thesis by XBOOLE_0:def 3;
  end;
  let x be object;
  assume
A3: x in (A + B) \/ (A + C);
  now
    per cases by A3,XBOOLE_0:def 3;
    suppose
      x in A + B;
      then consider g1,g2 such that
A4:   x = g1 + g2 & g1 in A and
A5:   g2 in B;
      g2 in B \/ C by A5,XBOOLE_0:def 3;
      hence thesis by A4;
    end;
    suppose
      x in A + C;
      then consider g1,g2 such that
A6:   x = g1 + g2 & g1 in A and
A7:   g2 in C;
      g2 in B \/ C by A7,XBOOLE_0:def 3;
      hence thesis by A6;
    end;
  end;
  hence thesis;
end;
