
theorem
  for a, b being Ordinal holds
    (omega -exponent((CantorNF(a(+)b)).0)
        in rng(omega -exponent CantorNF a) \ rng(omega -exponent CantorNF b)
      implies (CantorNF(a(+)b)).0 = (CantorNF a).0) &
    (omega -exponent((CantorNF(a(+)b)).0)
        in rng(omega -exponent CantorNF b) \ rng(omega -exponent CantorNF a)
      implies (CantorNF(a(+)b)).0 = (CantorNF b).0) &
    (omega -exponent((CantorNF(a(+)b)).0)
        in rng(omega -exponent CantorNF a) /\ rng(omega -exponent CantorNF b)
      implies (CantorNF(a(+)b)).0 = (CantorNF a).0 +^ (CantorNF b).0)
proof
  let a, b be Ordinal;
  set E1 = omega -exponent CantorNF a, E2 = omega -exponent CantorNF b;
  set L1 = omega -leading_coeff CantorNF a;
  set L2 = omega -leading_coeff CantorNF b;
  set C0 = CantorNF(a (+) b);
  per cases;
  suppose A1: a (+) b <> {};
    then 0 c< dom C0 by XBOOLE_1:2, XBOOLE_0:def 8;
    then A2: 0 in dom C0 by ORDINAL1:11;
    consider C being Cantor-normal-form Ordinal-Sequence such that
      A3: a (+) b = Sum^ C & rng(omega -exponent C) = rng E1 \/ rng E2 and
      A4: for d being object st d in dom C holds
        (omega -exponent(C.d) in rng E1 \ rng E2 implies
          omega -leading_coeff(C.d) = L1.(E1".(omega -exponent(C.d)))) &
        (omega -exponent(C.d) in rng E2 \ rng E1 implies
          omega -leading_coeff(C.d) = L2.(E2".(omega -exponent(C.d)))) &
        (omega -exponent(C.d) in rng E1 /\ rng E2 implies
          omega -leading_coeff(C.d) = L1.(E1".(omega -exponent(C.d))) +
            L2.(E2".(omega -exponent(C.d)))) by Def5;
    C <> {} by A1, A3, ORDINAL5:52;
    then 0 c< dom C by XBOOLE_1:2, XBOOLE_0:def 8;
    then A5: 0 in dom C by ORDINAL1:11;
    hereby
      assume A6: omega -exponent(C0.0) in rng E1 \ rng E2;
      then E1 <> {};
      then 0 c< dom E1 by XBOOLE_1:2, XBOOLE_0:def 8;
      then A7: 0 in dom E1 by ORDINAL1:11;
      A8: omega -leading_coeff(C.0)
         = L1.(E1".(omega -exponent(C.0))) by A3, A4, A5, A6
        .= L1.(E1".(E1.0)) by A3, A6, Th95
        .= L1.0 by A7, FUNCT_1:34;
      A9: 0 in dom CantorNF a by A7, Def1;
      thus C0.0 = (omega-leading_coeff(C0.0))*^exp(omega, omega-exponent(C0.0))
          by A2, Th64
        .= L1.0 *^ exp(omega, E1.0) by A3, A6, A8, Th95
        .= (CantorNF a).0 by A9, Th65;
    end;
    hereby
      assume A10: omega -exponent(C0.0) in rng E2 \ rng E1;
      then E2 <> {};
      then 0 c< dom E2 by XBOOLE_1:2, XBOOLE_0:def 8;
      then A11: 0 in dom E2 by ORDINAL1:11;
      A12: omega -leading_coeff(C.0)
         = L2.(E2".(omega -exponent(C.0))) by A3, A4, A5, A10
        .= L2.(E2".(E2.0)) by A3, A10, Th95
        .= L2.0 by A11, FUNCT_1:34;
      A13: 0 in dom CantorNF b by A11, Def1;
      thus C0.0 = (omega-leading_coeff(C0.0))*^exp(omega, omega-exponent(C0.0))
          by A2, Th64
        .= L2.0 *^ exp(omega, E2.0) by A3, A10, A12, Th95
        .= (CantorNF b).0 by A13, Th65;
    end;
    assume A14: omega -exponent(C0.0) in rng E1 /\ rng E2;
    then A15: omega -exponent(C0.0) in rng E1 &
      omega -exponent(C0.0) in rng E2 by XBOOLE_0:def 4;
    then E1 <> {} & E2 <> {};
    then 0 c< dom E1 & 0 c< dom E2 by XBOOLE_1:2, XBOOLE_0:def 8;
    then A16: 0 in dom E1 & 0 in dom E2 by ORDINAL1:11;
    A17: omega -leading_coeff(C.0) = L1.(E1".(omega -exponent(C.0)))
        + L2.(E2".(omega -exponent(C.0))) by A3, A4, A5, A14
      .= L1.(E1".(E1.0)) + L2.(E2".(omega -exponent(C0.0))) by A3, A15, Th95
      .= L1.(E1".(E1.0)) + L2.(E2".(E2.0)) by A15, Th95
      .= L1.0 + L2.(E2".(E2.0)) by A16, FUNCT_1:34
      .= L1.0 + L2.0 by A16, FUNCT_1:34;
    A18: 0 in dom CantorNF a & 0 in dom CantorNF b by A16, Def1;
    thus C0.0 = (omega -leading_coeff(C0.0))*^exp(omega, omega -exponent(C0.0))
        by A2, Th64
      .= (L1.0 +^ L2.0) *^ exp(omega, omega -exponent(C0.0))
        by A3, A17, CARD_2:36
      .= L1.0 *^ exp(omega, omega -exponent(C0.0))
        +^ L2.0 *^ exp(omega, omega -exponent(C0.0)) by ORDINAL3:46
      .= L1.0 *^ exp(omega, E1.0)
        +^ L2.0 *^ exp(omega, omega -exponent(C0.0)) by A15, Th95
      .= L1.0 *^ exp(omega, E1.0) +^ L2.0 *^ exp(omega, E2.0) by A15, Th95
      .= (CantorNF a).0 +^ L2.0 *^ exp(omega, E2.0) by A18, Th65
      .= (CantorNF a).0 +^ (CantorNF b).0 by A18, Th65;
  end;
  suppose a (+) b = {};
    then a = {} & b = {};
    hence thesis;
  end;
end;
