method vfunc f =
    if not (Data_for_aorai.isIgnoredFunction f.svar.vname) then begin
(* Extraction of a first abstraction of pre/post condition of the current function *)
      let pre_st,pre_tr  = (Aorai_utils.mk_asbstract_pre  auto f.svar.vname) in
      let post_st,post_tr = (Aorai_utils.mk_asbstract_post auto f.svar.vname) in



      if f.svar.vname = root then
        begin
          (* Pre simplification for Root (only initial states) *)
          List.iter (
            fun tr ->
              if (pre_tr.(tr.Promelaast.numt)) &&
                (*if ((pre_tr.(tr.Promelaast.numt)) || pre_st.(tr.Promelaast.stop.Promelaast.nums)) &&*)
                ((tr.Promelaast.start.Promelaast.init==Bool3.False|| not (Aorai_utils.isCrossableAtInit tr root) )
              then
                begin
                  pre_tr.(tr.Promelaast.numt)<- false;
                  pre_st.(tr.Promelaast.stop.Promelaast.nums)<- false
                end
          ) ((snd auto):Promelaast.trans list);


          List.iter (
            fun tr ->
              if (pre_tr.(tr.Promelaast.numt)) then
                pre_st.(tr.Promelaast.stop.Promelaast.nums) <- true
          ) ((snd auto):Promelaast.trans list);




          if considerAcceptance then begin
            (* Post simplification for Root (Only acceptance states) *)
            List.iter (
              fun tr ->
                if (post_tr.(tr.Promelaast.numt)) &&
                  (*if ((post_tr.(tr.Promelaast.numt)) || post_st.(tr.Promelaast.stop.Promelaast.nums)) &&*)
                  (tr.Promelaast.stop.Promelaast.acceptation==Bool3.False)
                then
                  begin
                    post_tr.(tr.Promelaast.numt)<- false;
                    post_st.(tr.Promelaast.stop.Promelaast.nums)<- false
                  end
            ) ((snd auto):Promelaast.trans list);


            List.iter (
              fun tr ->
                if (post_tr.(tr.Promelaast.numt)) then
                  post_st.(tr.Promelaast.stop.Promelaast.nums) <- true
            ) ((snd auto):Promelaast.trans list)
          end
        end;

      Data_for_aorai.set_func_pre  f.svar.vname (pre_st,pre_tr) ;
      Data_for_aorai.set_func_post f.svar.vname (post_st,post_tr)
    end;
    DoChildren