reserve x,y,z for set;
reserve f,f1,f2,f3 for FinSequence,
  p,p1,p2,p3 for set,
  i,k for Nat;

theorem Th7:
  p in rng f2 \ rng f1 implies p..(f1^f2) = len f1 + p..f2
proof
  assume
A1: p in rng f2 \ rng f1;
  then
A2: p..f2 in dom f2 by FINSEQ_4:20;
  f2.(p..f2) = p by A1,FINSEQ_4:19;
  then
A3: (f1^f2).(len f1 + p..f2) = p by A2,FINSEQ_1:def 7;
A4: now
    let i such that
A5: 1 <= i and
A6: i < len f1 + p..f2;
    per cases;
    suppose
      i <= len f1;
      then
A7:   i in dom f1 by A5,FINSEQ_3:25;
      assume (f1^f2).i = (f1^f2).(len f1 + p..f2);
      then f1.i = p by A3,A7,FINSEQ_1:def 7;
      then p in rng f1 by A7,FUNCT_1:def 3;
      hence contradiction by A1,XBOOLE_0:def 5;
    end;
    suppose
A8:   i > len f1;
      then reconsider j = i - len f1 as Element of NAT by INT_1:5;
      j > 0 by A8,XREAL_1:50;
      then
A9:   1 <= j by NAT_1:14;
A10:  i = j + len f1;
      then
A11:  j < p..f2 by A6,XREAL_1:6;
A12:  (f1^f2).(len f1 + p..f2) = f2.(p..f2) by A2,FINSEQ_1:def 7;
A13:  p..f2 <= len f2 by A1,FINSEQ_4:21;
      j <= p..f2 by A6,A10,XREAL_1:6;
      then j <= len f2 by A13,XXREAL_0:2;
      then
A14:  j in dom f2 by A9,FINSEQ_3:25;
      then (f1^f2).i = f2.j by A10,FINSEQ_1:def 7;
      hence (f1^f2).i <> (f1^f2).(len f1 + p..f2) by A1,A11,A14,A12,FINSEQ_4:19
,24;
    end;
  end;
  len f1 + p..f2 in dom(f1^f2) by A2,FINSEQ_1:28;
  hence thesis by A3,A4,Th2;
end;
