reserve D for non empty set,
  i,j,k for Nat,
  n,m for Nat,
  r for Real,
  e for real-valued FinSequence;

theorem Th6:
  for r1,r2 being Real, k being Nat, seq1 being Real_Sequence holds
ex seq being Real_Sequence st seq.0=r1 & for n holds (n<>0 & n <= k implies seq
  .n=seq1.n) & (n > k implies seq.n=r2)
proof
  let r1,r2 be Real, k be Nat, seq1 be Real_Sequence;
  ex seq being Real_Sequence st for n holds (n=0 implies seq.n=r1) & (n<>0
  & n <= k implies seq.n=seq1.n) & (n<>0 & n > k implies seq.n=r2)
  proof
    defpred P[object,object] means ex n be Nat st (n=$1 & (n = 0 implies
$2=r1) & (n <> 0 & n <= k implies $2=seq1.n) & (n <> 0 & n > k implies $2=r2));
A1: for x being object st x in NAT ex y being object st P[x,y]
    proof
      let x be object;
      assume x in NAT;
      then reconsider n=x as Nat;
      now
        per cases;
        case
          n=0;
          hence P[x,r1];
        end;
        case
          n <> 0 & n <= k;
          hence P[x,seq1.n];
        end;
        case
          n <> 0 & not n <= k;
          hence P[x,r2];
        end;
      end;
      hence thesis;
    end;
    consider f1 being Function such that
A2: dom f1=NAT & for x being object st x in NAT holds P[x,f1.x] from
    CLASSES1:sch 1(A1);
    now
      let x be object;
      assume x in NAT;
      then
      ex n be Nat st n=x & (n = 0 implies f1.x=r1) & (n <> 0 &
      n <= k implies f1.x=seq1.n) & (n <> 0 & n > k implies f1.x=r2) by A2;
      hence f1.x is real;
    end;
    then reconsider f1 as Real_Sequence by A2,SEQ_1:1;
    take seq=f1;
    let n be Nat;
    reconsider n as Element of NAT by ORDINAL1:def 12;
    ex k1 being Nat st k1=n & (k1=0 implies seq.n=r1) & (k1<>0
    & k1 <= k implies seq.n=seq1.k1) & (k1<>0 & k1 > k implies seq.n=r2) by A2;
    hence thesis;
  end;
  then consider seq being Real_Sequence such that
A3: for n holds (n=0 implies seq.n=r1) & (n<>0 & n <= k implies seq.n=
  seq1.n) & (n<>0 & n > k implies seq.n=r2);
  take seq;
  thus thesis by A3;
end;
