reserve x,y,z for object, X for set, I for non empty set, i,j for Element of I,
    M0 for multMagma-yielding Function,
    M for non empty multMagma-yielding Function,
    M1, M2, M3 for non empty multMagma,
    G for Group-like multMagma-Family of I,
    H for Group-like associative multMagma-Family of I;

theorem
  for N0 being multMagma-yielding Function st M0 tolerates N0
  holds FreeAtoms(M0 +* N0) = FreeAtoms(M0) \/ FreeAtoms(N0)
proof
  let N0 be multMagma-yielding Function;
  A1: Carrier(M0+*N0) = Carrier M0 +* Carrier N0 by PRALG_1:13;
  A2: FreeAtoms(M0 +* N0) c= FreeAtoms(M0) \/ FreeAtoms(N0) by Th19;
  assume A3: M0 tolerates N0;
  now
    let i,x be object;
    assume [i,x] in FreeAtoms(M0) \/ FreeAtoms(N0);
    then per cases by XBOOLE_0:def 3;
    suppose [i,x] in FreeAtoms(M0);
      then A4: i in dom M0 & x in (Carrier M0).i by Th7;
      then i in dom M0 \/ dom N0 by XBOOLE_0:def 3;
      then A5: i in dom(M0+*N0) by FUNCT_4:def 1;
      i in dom Carrier M0 by A4, PRALG_1:def 14;
      then (Carrier(M0+*N0)).i = (Carrier M0).i
        by A1, A3, PRALG_1:12, FUNCT_4:15;
      hence [i,x] in FreeAtoms(M0 +* N0) by A4, A5, Th7;
    end;
    suppose [i,x] in FreeAtoms(N0);
      then A6: i in dom N0 & x in (Carrier N0).i by Th7;
      then i in dom M0 \/ dom N0 by XBOOLE_0:def 3;
      then A7: i in dom(M0+*N0) by FUNCT_4:def 1;
      i in dom Carrier N0 by A6, PRALG_1:def 14;
      then x in (Carrier(M0+*N0)).i by A1, A6, FUNCT_4:13;
      hence [i,x] in FreeAtoms(M0 +* N0) by A7, Th7;
    end;
  end;
  then FreeAtoms(M0) \/ FreeAtoms(N0) c= FreeAtoms(M0 +* N0) by RELAT_1:def 3;
  hence thesis by A2, XBOOLE_0:def 10;
end;
