reserve r,r1,r2,g,g1,g2,x0 for Real;
reserve f1,f2 for PartFunc of REAL,REAL;

theorem
  f1 is convergent_in+infty & f2 is_right_divergent_to-infty_in
  lim_in+infty f1 & (for r ex g st r<g & g in dom(f2*f1)) & (ex r st for g st g
  in dom f1 /\ right_open_halfline(r) holds lim_in+infty f1<f1.g) implies f2*f1
  is divergent_in+infty_to-infty
proof
  assume that
A1: f1 is convergent_in+infty and
A2: f2 is_right_divergent_to-infty_in lim_in+infty f1 and
A3: for r ex g st r<g & g in dom(f2*f1);
  given r such that
A4: for g st g in dom f1/\right_open_halfline(r) holds lim_in+infty f1< f1.g;
  now
    let s be Real_Sequence;
    assume that
A5: s is divergent_to+infty and
A6: rng s c=dom(f2*f1);
    consider k be Nat such that
A7: for n be Nat st k<=n holds r<s.n by A5;
A8: rng(f1/*s)c=dom f2 by A6,Lm2;
    set q=s^\k;
A9: q is divergent_to+infty by A5,LIMFUNC1:26;
A10: rng s c=dom f1 by A6,Lm2;
A11: rng q c=rng s by VALUED_0:21;
A12: rng(f1/*q)c=dom f2/\right_open_halfline(lim_in+infty f1)
    proof
      let x be object;
      assume x in rng(f1/*q);
      then consider n be Element of NAT such that
A13:  (f1/*q).n=x by FUNCT_2:113;
A14:  x=f1.(q.n) by A10,A11,A13,FUNCT_2:108,XBOOLE_1:1
        .=f1.(s.(n+k)) by NAT_1:def 3;
      r<s.(n+k) by A7,NAT_1:12;
      then s.(n+k) in {r2: r<r2};
      then
A15:  s.(n+k) in right_open_halfline(r) by XXREAL_1:230;
      s.(n+k) in rng s by VALUED_0:28;
      then s.(n+k) in dom f1/\right_open_halfline(r) by A10,A15,XBOOLE_0:def 4;
      then lim_in+infty f1<f1.(s.(n+k)) by A4;
      then x in {g1: lim_in+infty f1<g1} by A14;
      then
A16:  x in right_open_halfline(lim_in+infty f1) by XXREAL_1:230;
A17:   n+k in NAT by ORDINAL1:def 12;
      (f1/*s).(n+k) in rng(f1/*s) by VALUED_0:28;
      then (f1/*s).(n+k) in dom f2 by A8;
      then x in dom f2 by A10,A14,FUNCT_2:108,A17;
      hence thesis by A16,XBOOLE_0:def 4;
    end;
    rng q c=dom f1 by A10,A11;
    then f1/*q is convergent & lim(f1/*q)=lim_in+infty f1 by A1,A9,
LIMFUNC1:def 12;
    then
A18: f2/*(f1/*q) is divergent_to-infty by A2,A12,LIMFUNC2:def 6;
    f2/*(f1/*q)=f2/*((f1/*s)^\k) by A10,VALUED_0:27
      .=(f2/*(f1/*s))^\k by A8,VALUED_0:27
      .=((f2*f1)/*s)^\k by A6,VALUED_0:31;
    hence (f2*f1)/*s is divergent_to-infty by A18,LIMFUNC1:7;
  end;
  hence thesis by A3;
end;
