reserve X for non empty set,
  Y for set,
  S for SigmaField of X,
  M for sigma_Measure of S,
  f,g for PartFunc of X,COMPLEX,
  r for Real,
  k for Real,
  n for Nat,
  E for Element of S;
reserve x,A for set;

theorem Th44:
  f is_simple_func_in S implies ex F be Finite_Sep_Sequence of S,
  a be FinSequence of COMPLEX st dom f = union rng F & dom F= dom a & for n be
  Nat st n in dom F for x be set st x in F.n holds f.x = a.n
proof
  assume f is_simple_func_in S;
  then consider F be Finite_Sep_Sequence of S such that
A1: dom f = union rng F and
A2: for n being Nat,x,y being Element of X st n in dom F & x in F.n & y
  in F.n holds f.x = f.y;
  defpred P[set ,set] means for x be set st x in F.$1 holds $2 = f.x;
A3: for k be Nat st k in Seg len F ex y be Element of COMPLEX st P[k,y]
  proof
    let k be Nat;
    assume k in Seg len F;
    then
A4: k in dom F by FINSEQ_1:def 3;
    then
A5: F.k in rng F by FUNCT_1:3;
    per cases;
    suppose
A6:   F.k = {};
      0 in REAL by XREAL_0:def 1;
      then reconsider y = 0 as Element of COMPLEX by NUMBERS:11;
      take y;
      thus thesis by A6;
    end;
    suppose
      F.k <> {};
      then consider x1 be object such that
A7:   x1 in F.k by XBOOLE_0:def 1;
      x1 in dom f by A1,A5,A7,TARSKI:def 4;
      then f.x1 in rng f by FUNCT_1:3;
      then reconsider y = f.x1 as Element of COMPLEX;
      take y;
      hereby
        let x be set;
A8:     rng F c= bool X by XBOOLE_1:1;
        assume x in F.k;
        hence y = f.x by A2,A4,A5,A7,A8;
      end;
    end;
  end;
  consider a be FinSequence of COMPLEX such that
A9: dom a = Seg len F & for k be Nat st k in Seg len F holds P[k,a.k]
  from FINSEQ_1:sch 5(A3);
  take F,a;
  now
    let n be Nat;
    assume n in dom F;
    then n in Seg len F by FINSEQ_1:def 3;
    hence for x be set st x in F.n holds a.n = f.x by A9;
  end;
  hence thesis by A1,A9,FINSEQ_1:def 3;
end;
