
theorem Th83:
  for a, b being Ordinal, n being Nat st omega -exponent a c= b
  holds (n *^ exp(omega,b)) (+) a = n *^ exp(omega,b) +^ a
proof
  let a, b be Ordinal, n be Nat;
  set E1 = omega -exponent CantorNF (n *^ exp(omega, b));
  set E2 = omega -exponent CantorNF a;
  set L1 = omega -leading_coeff CantorNF (n *^ exp(omega, b));
  set L2 = omega -leading_coeff CantorNF a;
  assume omega -exponent a c= b;
  then omega -exponent Sum^ CantorNF a c= b;
  then A1: omega -exponent((CantorNF a).0) c= b by Th44;
  A2: E2.0 c= b
  proof
    per cases;
    suppose 0 in dom CantorNF a;
      hence thesis by A1, Def1;
    end;
    suppose not 0 in dom CantorNF a;
      then not 0 in dom E2 by Def1;
      then E2.0 = {} by FUNCT_1:def 2;
      hence thesis;
    end;
  end;
  consider C being Cantor-normal-form Ordinal-Sequence such that
    A3: (n *^ exp(omega, b)) (+) a = Sum^ C and
    A4: rng(omega -exponent C) = rng E1 \/ rng E2 and
    A5: 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;
  per cases;
  suppose A6: a = 0;
    hence (n *^ exp(omega, b)) (+) a = n *^ exp(omega, b) by Th82
      .= (n *^ exp(omega,b)) +^ a by A6, ORDINAL2:27;
  end;
  suppose A7: n is zero;
    hence (n *^ exp(omega, b)) (+) a = 0 (+) a by ORDINAL2:35
      .= a by Th82
      .= 0 +^ a by ORDINAL2:30
      .= n *^ exp(omega,b) +^ a by A7, ORDINAL2:35;
  end;
  suppose A8: n is non zero & a <> 0 & E2.0 = b;
    then consider a0 being Cantor-component Ordinal,
      A0 being Cantor-normal-form Ordinal-Sequence such that
      A9: CantorNF a = <% a0 %> ^ A0 by ORDINAL5:67;
    0 c< n by A8, XBOOLE_1:2, XBOOLE_0:def 8;
    then A10: 0 in n & n in omega by ORDINAL1:11, ORDINAL1:def 12;
    A11: E1 = omega -exponent <% n *^ exp(omega, b) %> by A8, Th69
      .= <% omega -exponent(n *^ exp(omega, b)) %> by Th46
      .= <% b %> by A10, ORDINAL5:58;
    then A12: rng E1 = {b} by AFINSQ_1:33;
    0 c< dom CantorNF a by A8, XBOOLE_1:2, XBOOLE_0:def 8;
    then A13: 0 in dom CantorNF a by ORDINAL1:11;
    then A14: 0 in dom E2 by Def1;
    then rng E1 c= rng E2 by A8, A12, FUNCT_1:3, ZFMISC_1:31;
    then A15: omega -exponent C = E2 by A4, Th34, XBOOLE_1:12;
    A16: dom C = card dom(omega -exponent C) by Def1
      .= len(<% a0 %> ^ A0) by A15, A9, Def1
      .= len <% a0 %> + len A0 by AFINSQ_1:17
      .= 1 + len A0 by AFINSQ_1:34
      .= len <% (n *^ exp(omega,b)) +^ a0 %> + len A0 by AFINSQ_1:34
      .= dom(<% (n *^ exp(omega,b)) +^ a0 %> ^ A0) by AFINSQ_1:17;
    for x being object st x in dom C
      holds C.x = (<% (n *^ exp(omega,b)) +^ a0 %> ^ A0).x
    proof
      let x be object;
      assume A17: x in dom C;
      A18: dom C = dom E2 by Def1, A15;
      per cases;
      suppose A19: omega -exponent(C.x) = b;
        then b = E2.x by A15, A17, Def1;
        then A20: x = 0 by A8, A14, A17, A18, FUNCT_1:def 4;
        A21: omega -exponent(C.x) in rng E2 by A8, A14, A19, FUNCT_1:3;
        omega -exponent(C.x) in rng E1 by A12, A19, TARSKI:def 1;
        then A22: omega -exponent(C.x) in rng E1 /\ rng E2
          by A21, XBOOLE_0:def 4;
        A23: E1.0 = b by A11;
        dom E1 = 1 by A11, AFINSQ_1:34;
        then A24: 0 in dom E1 by CARD_1:49, TARSKI:def 1;
        A25: omega -leading_coeff(C.x)
           = L1.(E1".(omega -exponent(C.x))) + L2.(E2".b) by A5, A17, A19, A22
          .= L1.0 + L2.(E2".b) by A19, A23, A24, FUNCT_1:34
          .= L1.0 + L2.0 by A8, A14, FUNCT_1:34
          .= L1.0 +^ L2.0 by CARD_2:36;
        A26: L1.0 = (omega -leading_coeff <% n *^ exp(omega, b) %>).0
            by A8, Th69
          .= <% omega -leading_coeff(n *^ exp(omega, b))%>.0 by Th60
          .= n by Th57, ORDINAL1:def 12;
        thus C.x = (L1.0 +^ L2.0) *^ exp(omega, omega -exponent(C.x))
            by A17, A25, Th64
          .= L1.0 *^ exp(omega, b) +^ L2.0 *^ exp(omega, E2.0)
            by A8, A19, ORDINAL3:46
          .= n *^ exp(omega, b) +^ (CantorNF a).0 by A13, A26, Th65
          .= n *^ exp(omega, b) +^ a0 by A9, AFINSQ_1:35
          .= (<% (n *^ exp(omega,b)) +^ a0 %> ^ A0).x by A20, AFINSQ_1:35;
      end;
      suppose A27: omega -exponent(C.x) <> b;
        then A28: not omega -exponent(C.x) in rng E1 by A12, TARSKI:def 1;
        x in dom(omega -exponent C) by A17, Def1;
        then (omega -exponent C).x in rng(omega -exponent C) by FUNCT_1:3;
        then omega -exponent(C.x) in rng E1 \/ rng E2 by A4, A17, Def1;
        then omega -exponent(C.x) in rng E1 or
          omega -exponent(C.x) in rng E2 by XBOOLE_0:def 3;
        then omega -exponent(C.x) in rng E2\rng E1 by A28, XBOOLE_0:def 5;
        then A29: omega -leading_coeff(C.x) = L2.(E2".(omega -exponent(C.x)))
            by A5, A17
          .= L2.(E2".((omega -exponent C).x)) by A17, Def1
          .= L2.x by A15, A17, A18, FUNCT_1:34;
        (omega -exponent C).x <> b by A17, A27, Def1;
        then not x in 1 by A8, A15, CARD_1:49, TARSKI:def 1;
        then not x in len <% (n *^ exp(omega,b)) +^ a0 %> by AFINSQ_1:34;
        then consider m be Nat such that
          A30: m in dom A0 & x = len <% (n *^ exp(omega,b)) +^ a0 %> + m
          by A16, A17, AFINSQ_1:20;
        A31: x = 1 + m by A30, AFINSQ_1:34
          .= len <% a0 %> + m by AFINSQ_1:34;
        A32: x in dom CantorNF a by A17, A18, Def1;
        thus C.x = L2.x *^ exp(omega, omega -exponent(C.x)) by A17, A29, Th64
          .= L2.x *^ exp(omega, (omega -exponent C).x) by A17, Def1
          .= (CantorNF a).x by A15, A32, Th65
          .= A0.m by A9, A30, A31, AFINSQ_1:def 3
          .= (<% (n *^ exp(omega,b)) +^ a0 %> ^ A0).x by A30, AFINSQ_1:def 3;
      end;
    end;
    then C = <% (n *^ exp(omega,b)) +^ a0 %> ^ A0 by A16, FUNCT_1:2;
    hence (n *^ exp(omega, b)) (+) a
       = (n *^ exp(omega,b) +^ a0) +^ Sum^ A0 by A3, ORDINAL5:55
      .= n *^ exp(omega,b) +^ (a0 +^ Sum^ A0) by ORDINAL3:30
      .= n *^ exp(omega,b) +^ (Sum^ (<% a0 %>^A0)) by ORDINAL5:55
      .= n *^ exp(omega,b) +^ a by A9;
  end;
  suppose A33: n is non zero & a <> 0 & E2.0 <> b;
    then A34: E2.0 in b by A2, XBOOLE_0:def 8, ORDINAL1:11;
    0 c< n by A33, XBOOLE_1:2, XBOOLE_0:def 8;
    then A35: 0 in n & n in omega by ORDINAL1:11, ORDINAL1:def 12;
    A36: E1 = omega -exponent <% n *^ exp(omega, b) %> by A33, Th69
      .= <% omega -exponent(n *^ exp(omega, b)) %> by Th46
      .= <% b %> by A35, ORDINAL5:58;
    then A37: rng E1 = {b} by AFINSQ_1:33;
    rng E1 /\ rng E2 = {}
    proof
      assume rng E1 /\ rng E2 <> {};
      then consider y being object such that
        A38: y in rng E1 /\ rng E2 by XBOOLE_0:def 1;
      A39: y in rng E1 & y in rng E2 by A38, XBOOLE_0:def 4;
      then y = b by A37, TARSKI:def 1;
      then consider x being object such that
        A40: x in dom E2 & E2.x = b by A39, FUNCT_1:def 3;
      reconsider x as Ordinal by A40;
      x <> 0 by A34, A40;
      then 0 c< x by XBOOLE_1:2, XBOOLE_0:def 8;
      then A41: 0 in x by ORDINAL1:11;
      A42: x in dom CantorNF a by A40, Def1;
      then omega -exponent((CantorNF a).x) in omega -exponent((CantorNF a).0)
        by A41, ORDINAL5:def 11;
      then b in omega -exponent((CantorNF a).0) by A40, A42, Def1;
      hence contradiction by A34, A41, A42, Def1, ORDINAL1:10;
    end;
    then A43: rng E1 misses rng E2 by XBOOLE_0:def 7;
    A44: dom C = card dom(omega -exponent C) by Def1
      .= card rng(omega -exponent C) by CARD_1:70
      .= card rng E1 +` card rng E2 by A4, A43, CARD_2:35
      .= card dom E1 +` card rng E2 by CARD_1:70
      .= dom E1 +` card dom E2 by CARD_1:70
      .= len E1 + dom CantorNF a by Def1
      .= 1 + dom CantorNF a by A36, AFINSQ_1:34
      .= len <% (n *^ exp(omega,b)) %> + len CantorNF a by AFINSQ_1:34
      .= dom(<% (n *^ exp(omega,b)) %> ^ CantorNF a) by AFINSQ_1:17;
    for x being object st x in dom C
      holds C.x = (<% (n *^ exp(omega,b)) %> ^ CantorNF a).x
    proof
      let x be object;
      assume A45: x in dom C;
      for c, d be Ordinal st c in d & d in dom(E1^E2)
        holds (E1^E2).d in (E1^E2).c
      proof
        let c, d be Ordinal;
        assume A46: c in d & d in dom(E1^E2);
        then A47: c in dom(E1^E2) by ORDINAL1:10;
        then reconsider m1 = c, m2 = d as Nat by A46;
        per cases by A47, AFINSQ_1:20;
        suppose A48: m1 in dom E1;
          then m1 in 1 by A36, AFINSQ_1:34;
          then A49: m1 = 0 by CARD_1:49, TARSKI:def 1;
          A50: (E1^E2).m1 = E1.m1 by A48, AFINSQ_1:def 3
            .= b by A36, A49;
          not m2 in dom E1
          proof
            assume m2 in dom E1;
            then m2 in 1 by A36, AFINSQ_1:34;
            hence contradiction by A46, CARD_1:49, TARSKI:def 1;
          end;
          then consider k2 being Nat such that
            A51: k2 in dom E2 & m2 = len E1 + k2 by A46, AFINSQ_1:20;
          A52: (E1^E2).m2 = E2.k2 by A51, AFINSQ_1:def 3;
          per cases;
          suppose k2 = 0;
            hence thesis by A34, A50, A52;
          end;
          suppose k2 <> 0;
            then 0 c< k2 by XBOOLE_1:2, XBOOLE_0:def 8;
            then 0 in k2 by ORDINAL1:11;
            then E2.k2 in E2.0 by A51, ORDINAL5:def 1;
            hence thesis by A34, A50, A52, ORDINAL1:10;
          end;
        end;
        suppose ex k1 being Nat st k1 in dom E2 & m1 = len E1 + k1;
          then consider k1 being Nat such that
            A53: k1 in dom E2 & m1 = len E1 + k1;
          A54: (E1^E2).m1 = E2.k1 by A53, AFINSQ_1:def 3;
          not m2 in dom E1
          proof
            assume m2 in dom E1;
            then A55: m2 in 1 by A36, AFINSQ_1:34;
            per cases;
            suppose k1 = 0;
              hence contradiction by A46, A36, A53, A55, AFINSQ_1:34;
            end;
            suppose k1 <> 0;
              then len E1 < len E1 + k1 by NAT_1:16;
              then 1 < m1 by A36, A53, AFINSQ_1:34;
              then 1 in Segm m1 by NAT_1:44;
              hence contradiction by A46, A55, ORDINAL1:10;
            end;
          end;
          then consider k2 being Nat such that
            A56: k2 in dom E2 & m2 = len E1 + k2 by A46, AFINSQ_1:20;
          A57: (E1^E2).m2 = E2.k2 by A56, AFINSQ_1:def 3;
          m1 in Segm m2 by A46;
          then len E1 + k1 - len E1 < len E1 + k2 - len E1
            by A53, A56, NAT_1:44, XREAL_1:14;
          then k1 in Segm k2 by NAT_1:44;
          hence thesis by A54, A56, A57, ORDINAL5:def 1;
        end;
      end;
      then A58: E1 ^ E2 is decreasing by ORDINAL5:def 1;
      rng(E1^E2) = rng(omega -exponent C) by A4, AFINSQ_1:26;
      then A59: omega -exponent C = E1 ^ E2 by A58, Th34;
      per cases;
      suppose A60: x = 0;
        A61: omega -exponent(C.x) = (omega -exponent C).x by A45, Def1
          .= b by A36, A59, A60, AFINSQ_1:35;
        then omega -exponent(C.x) in rng E1 by A37, TARSKI:def 1;
        then A62: omega -exponent(C.x) in rng E1 \ rng E2 by A43, XBOOLE_1:83;
        A63: E1.0 = b by A36;
        dom E1 = 1 by A36, AFINSQ_1:34;
        then A64: 0 in dom E1 by CARD_1:49, TARSKI:def 1;
        omega -leading_coeff(C.x) = L1.(E1".(omega -exponent(C.x)))
            by A5, A45, A62
          .= L1.0 by A61, A63, A64, FUNCT_1:34
          .= (omega -leading_coeff <%n *^ exp(omega,b)%>).0 by A33, Th69
          .= <% omega -leading_coeff (n *^ exp(omega,b)) %>.0 by Th60
          .= n by Th57, ORDINAL1:def 12;
        hence C.x = n *^ exp(omega, b) by A45, A61, Th64
          .= (<% (n *^ exp(omega,b)) %> ^ CantorNF a).x by A60, AFINSQ_1:35;
      end;
      suppose A66: x <> 0;
        then not x in 1 by CARD_1:49, TARSKI:def 1;
        then A67: not x in len E1 by A36, AFINSQ_1:34;
        A68: x in dom(omega -exponent C) by A45, Def1;
        then consider k being Nat such that
          A69: k in dom E2 & x = len E1 + k by A59, A67, AFINSQ_1:20;
        omega -exponent(C.x) <> b
        proof
          0 in 1 by CARD_1:49, TARSKI:def 1;
          then A70: 0 in dom E1 by A36, AFINSQ_1:34;
          assume omega -exponent(C.x) = b;
          then A71: (omega -exponent C).x = E1.0 by A36, A45, Def1
            .= (omega -exponent C).0 by A59, A70, AFINSQ_1:def 3;
          0 in dom(omega -exponent C) by A59, A70, TARSKI:def 3, AFINSQ_1:21;
          hence contradiction by A66, A68, A71, FUNCT_1:def 4;
        end;
        then A72: not omega -exponent(C.x) in rng E1 by A37, TARSKI:def 1;
        A73: k in dom CantorNF a by A69, Def1;
        A74: x = 1 + k by A36, A69, AFINSQ_1:34
          .= len <%n *^ exp(omega,b)%> + k by AFINSQ_1:34;
        x in dom(omega -exponent C) by A45, Def1;
        then (omega -exponent C).x in rng(omega -exponent C) by FUNCT_1:3;
        then omega -exponent(C.x) in rng E1 \/ rng E2 by A4, A45, Def1;
        then omega -exponent(C.x) in rng E2 by A72, XBOOLE_0:def 3;
        then omega -exponent(C.x) in rng E2 \ rng E1 by A72, XBOOLE_0:def 5;
        then omega -leading_coeff(C.x)
           = L2.(E2".(omega -exponent(C.x))) by A5, A45
          .= L2.(E2".((omega -exponent C).x)) by A45, Def1
          .= L2.(E2".(E2.k)) by A59, A69, AFINSQ_1:def 3
          .= L2.k by A69, FUNCT_1:34;
        hence C.x = L2.k *^ exp(omega, omega -exponent(C.x)) by A45, Th64
          .= L2.k *^ exp(omega, (omega -exponent C).x) by A45, Def1
          .= L2.k *^ exp(omega, E2.k) by A59, A69, AFINSQ_1:def 3
          .= (CantorNF a).k by A73, Th65
          .= (<% n *^ exp(omega,b) %> ^ CantorNF a).x
            by A73, A74, AFINSQ_1:def 3;
      end;
    end;
    hence (n *^ exp(omega, b)) (+) a
       = Sum^ (<% (n *^ exp(omega,b)) %> ^ CantorNF a) by A3, A44, FUNCT_1:2
      .= n *^ exp(omega,b) +^ Sum^ CantorNF a by ORDINAL5:55
      .= n *^ exp(omega,b) +^ a;
  end;
end;
