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 Th21:
  n >= 2 & x in free_magma(X,n) implies ex p,m st x`2 = p & 1<=p & p<=n-1 &
    x`1`1 in free_magma(X,p) & x`1`2 in free_magma(X,m) & n = p + m &
    x in [:[:free_magma(X,p),free_magma(X,m):],{p}:]
proof
  assume A1: n>=2;
  assume A2: x in free_magma(X,n);
  consider fs be FinSequence such that
  A3: len fs = n-1 and
  A4: (for p st p>=1 & p<=n-1 holds
      fs.p = [:(free_magma_seq X).p,(free_magma_seq X).(n-p) :] ) and
  A5: (free_magma_seq X).n = Union disjoin fs by A1,Def13;
  x in union rng disjoin fs by A2,A5,CARD_3:def 4; then
  consider Y be set such that
  A6: x in Y & Y in rng disjoin fs by TARSKI:def 4;
  consider p be object such that
  A7: p in dom disjoin fs & Y = (disjoin fs).p by A6,FUNCT_1:def 3;
  A8: p in dom fs by A7,CARD_3:def 3; then
  reconsider p as Nat;
  A9: p in Seg len fs by A8,FINSEQ_1:def 3; then
  A10: 1 <= p & p <= len fs by FINSEQ_1:1; then
  A11: fs.p = [:(free_magma_seq X).p,(free_magma_seq X).(n-p):] by A3,A4;
  then x in [:[:(free_magma_seq X).p,(free_magma_seq X).(n-p):],{p}:]
  by A6,A7,A8,CARD_3:def 3; then
  A12: x`1 in [:(free_magma_seq X).p,(free_magma_seq X).(n-p):] &
  x`2 in {p} by MCART_1:10;
  -p >= -(n-1) by A10,A3,XREAL_1:24; then
  -p+n >= -(n-1)+n by XREAL_1:7; then
  n-p in NAT by INT_1:3; then
  reconsider m = n-p as Nat;
  take p,m;
  thus thesis by A3,A9,A6,A11,A7,A8,A12,CARD_3:def 3,FINSEQ_1:1,MCART_1:10
,TARSKI:def 1;
end;
