reserve x,y for object,X for set,
  f for Function,
  R,S for Relation;
reserve e1,e2 for ExtReal;
reserve s,s1,s2,s3 for sequence of X;
reserve XX for non empty set,
        ss,ss1,ss2,ss3 for sequence of XX;
reserve X,Y for non empty set,
  Z for set;
reserve s,s1 for sequence of X,
  h,h1 for PartFunc of X,Y,
  h2 for PartFunc of Y ,Z,
  x for Element of X,
  N for increasing sequence of NAT;
reserve i,j for Nat;
reserve n for Nat;

theorem Th30:
  rng s c= dom h implies h.:(rng s) = rng (h/*s)
proof
  assume
A1: rng s c= dom h;
  now
    let r be Element of Y;
    thus r in h.:(rng s) implies r in rng (h/*s)
    proof
      assume r in h.:(rng s);
      then consider p being Element of X such that
      p in dom h and
A2:   p in rng s and
A3:   r=h.p by PARTFUN2:59;
      consider n being Element of NAT such that
A4:   p=s.n by A2,FUNCT_2:113;
      r = (h/*s).n by A1,A3,A4,FUNCT_2:108;
      hence thesis by Th28;
    end;
    assume r in rng (h/*s);
    then consider n being Element of NAT such that
A5: (h/*s).n=r by FUNCT_2:113;
A6: s.n in rng s by Th28;
    r = h.(s.n) by A1,A5,FUNCT_2:108;
    hence r in h.:(rng s) by A1,A6,FUNCT_1:def 6;
  end;
  hence thesis by SUBSET_1:3;
end;
