reserve i,j,n,k,m for Nat,
     a,b,x,y,z for object,
     F,G for FinSequence-yielding FinSequence,
     f,g,p,q for FinSequence,
     X,Y for set,
     D for non empty set;

theorem Th50:
  (len f=len F or len g = len G) & f^g in doms (F^G) implies
    f in doms F & g in doms G
proof
  set fg=f^g,FG=F^G;
  assume
A1: (len f=len F or len g = len G) & fg in doms FG;
A2: len fg = len f + len g & len FG = len F + len G & len FG = len fg
    by A1,Th47,FINSEQ_1:22;
A3: dom f= dom F & dom g = dom G by A2,A1,FINSEQ_3:29;
  for i st i in dom f holds f.i in dom (F.i)
  proof
    let i;
    assume i in dom f;
    then i in dom fg & f.i = fg.i & F.i = FG.i
      by A3,TARSKI:def 3,FINSEQ_1:26,def 7;
    hence thesis by A1,Th47;
  end;
  hence f in doms F by A2,A1,Th47;
  for i st i in dom g holds g.i in dom (G.i)
  proof
    let i;
    assume
A4:   i in dom g;
    then
A5:  (len f)+i in dom fg by FINSEQ_1:28;
    g.i = fg.((len f)+i) & G.i = FG.((len F)+i) by A4,A3,FINSEQ_1:def 7;
    hence thesis by A5,A1,A2,Th47;
  end;
  hence g in doms G by A2,A1,Th47;
end;
