method vfunc f =
if not (Data_for_aorai.isIgnoredFunction f.svar.vname) then begin
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
List.iter (
fun tr ->
if (pre_tr.(tr.Promelaast.numt)) &&
((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
List.iter (
fun tr ->
if (post_tr.(tr.Promelaast.numt)) &&
(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