reserve f for Function;
reserve p,q for FinSequence;
reserve A,B,C for set,x,x1,x2,y,z for object;
reserve k,l,m,n for Nat;
reserve a for Nat;
reserve D for non empty set;
reserve d,d1,d2,d3 for Element of D;
reserve L,M for Element of NAT;

theorem
  x in rng p & p is FinSequence of D implies p |-- x is FinSequence of D
proof
  assume that
A1: x in rng p and
A2: p is FinSequence of D;
  rng(p |-- x) c= D
  proof
A3: len(p |-- x) = len p - x..p by A1,Def6;
    let y be object;
    assume y in rng(p |-- x);
    then consider z being object such that
A4: z in dom(p |-- x) and
A5: (p |-- x).z = y by FUNCT_1:def 3;
    reconsider z as Element of NAT by A4;
    dom(p |-- x) = Seg(len(p |-- x)) by FINSEQ_1:def 3;
    then z <= len(p |-- x) by A4,FINSEQ_1:1;
    then
A6: z + x..p <= len p by A3,XREAL_1:19;
    1 <= z + x..p by A1,Th21,NAT_1:12;
    then z + x..p in Seg(len p) by A6;
    then
A7: z + x..p in dom p by FINSEQ_1:def 3;
    y = p.(z + x..p) by A1,A4,A5,Def6;
    then
A8: y in rng p by A7,FUNCT_1:def 3;
    rng p c= D by A2,FINSEQ_1:def 4;
    hence thesis by A8;
  end;
  hence thesis by FINSEQ_1:def 4;
end;
