reserve M,N for non empty multMagma,
  f for Function of M, N;
reserve M for multMagma;
reserve N,K for multSubmagma of M;
reserve M,N for non empty multMagma,
  A for Subset of M,
  f,g for Function of M,N,
  X for stable Subset of M,
  Y for stable Subset of N;
reserve X for set;
reserve x,y,Y for set;
reserve n,m,p for Nat;

theorem Th24:
  X = {} iff free_magma_carrier X = {}
proof
  hereby
    assume A1: X = {};
    defpred P[Nat] means (free_magma_seq X).$1 = {};
    A2: for k being Nat st for n being Nat st n < k holds P[n] holds P[k]
    proof
      let k be Nat;
      assume A3: for n being Nat st n < k holds P[n];
      k = 0 or k + 1 > 0+1 by XREAL_1:6; then
      k = 0 or k >= 1 by NAT_1:13; then
      k = 0 or k = 1 or k > 1 by XXREAL_0:1; then
      A4: k = 0 or k = 1 or k + 1 > 1+1 by XREAL_1:6;
      per cases by A4,NAT_1:13;
      suppose k=0; hence P[k] by Def13; end;
      suppose k=1; hence P[k] by A1,Def13; end;
      suppose k>=2; then
        consider fs be FinSequence such that
        A5: len fs = k-1 & (for p being Nat st p>=1 & p<=k-1 holds
        fs.p = [: (free_magma_seq X).p, (free_magma_seq X).(k-p) :] ) &
        (free_magma_seq X).k = Union disjoin fs by Def13;
        for y being set st y in rng disjoin fs holds y c= {}
        proof
          let y be set;
          assume y in rng disjoin fs; then
          consider p be object such that
          A6: p in dom disjoin fs & y = (disjoin fs).p by FUNCT_1:def 3;
          A7: p in dom fs by A6,CARD_3:def 3; then
          A8: p in Seg len fs by FINSEQ_1:def 3;
          reconsider p as Nat by A7;
          A9: p >= 1 & p <= k-1 by A5,A8,FINSEQ_1:1; then
          p+1 <= k-1+1 by XREAL_1:7; then
          p < k by NAT_1:13; then
          A10: (free_magma_seq X).p = {} by A3;
          A11: fs.p = [:(free_magma_seq X).p,(free_magma_seq X).(k-p):]
          by A5,A9
          .= {} by A10;
          (disjoin fs).p = [:fs.p,{p}:] by A7,CARD_3:def 3
          .= {} by A11;
          hence y c= {} by A6;
        end; then
        union rng disjoin fs c= {} by ZFMISC_1:76;
        hence P[k] by A5,CARD_3:def 4;
      end;
    end;
    A12: for n being Nat holds P[n] from NAT_1:sch 4(A2);
    for Y being set st Y in rng disjoin((free_magma_seq X)|NATPLUS)
    holds Y c= {}
    proof
      let Y be set;
      assume Y in rng disjoin((free_magma_seq X)|NATPLUS); then
      consider n be object such that
      A13: n in dom disjoin((free_magma_seq X)|NATPLUS) &
      Y = (disjoin((free_magma_seq X)|NATPLUS)).n by FUNCT_1:def 3;
      A14: n in dom((free_magma_seq X)|NATPLUS) by A13,CARD_3:def 3; then
      reconsider n as Nat;
      A15: n in dom ((free_magma_seq X)|NATPLUS) by A13,CARD_3:def 3;
      (disjoin((free_magma_seq X)|NATPLUS)).n
      = [:((free_magma_seq X)|NATPLUS).n,{n}:] by A14,CARD_3:def 3
      .= [:(free_magma_seq X).n,{n}:] by A15,FUNCT_1:47
      .= [:{},{n}:] by A12 .= {};
      hence Y c= {} by A13;
    end; then
    union rng disjoin((free_magma_seq X)|NATPLUS) c= {} by ZFMISC_1:76;
    hence free_magma_carrier X = {} by CARD_3:def 4;
  end;
  assume A16: free_magma_carrier X = {};
  [:free_magma(X,1),{1}:] c= free_magma_carrier X by Lm1;
  hence X = {} by A16;
end;
