let actions_to_range_step kf ki st1 trans =
let map = Data_for_aorai.get_action_bindings kf ki st1 trans.start in
let treat_one_action acc =
function
| Counter_init lv ->
let t = tlval lv in
(t,(Cil.lzero(), Fixed 1)) :: acc
| Counter_incr lv ->
let t = tlval lv in
(try
(let bindings = Cil_datatype.Term.Map.find t map in
let abs =
try
let r = Cil_datatype.Term.Map.find (Cil.lzero()) bindings in
let r = add_one ~is_absolute:true r in
(t, (Cil.lzero(), r)) :: acc
with Not_found -> acc
in
try
let r = Cil_datatype.Term.Map.find t bindings in
let r = add_one ~is_absolute:false r in
(t, (t,r)) :: acc
with Not_found -> abs)
with Not_found ->
(t, (Cil.lzero(), Data_for_aorai.absolute_range t 1))::acc)
| Pebble_init(_,_,c) ->
let t = Logic_const.tvar c in
(t,(t,Fixed 1)) :: acc
| Pebble_move _ -> acc
| Copy_value (lv,t) ->
let loc = tlval lv in
(loc,(t,Fixed 0)) :: acc
in List.fold_left treat_one_action [] (snd trans.cross)