let rec fol_offset_update expr base v off =
match off with
| NoOffset -> v
| Field (f, next) ->
let v = fol_offset_update expr (fol_field_access base f) v next in
fol_field_update base f v
| Index (t,next) ->
let idx = expr t in
let v = fol_offset_update expr (Why_ops.array_access base idx) v next in
Why_ops.array_update base idx v