let delta_array_term = function 
  | TBinOp(IndexPI,{term_node = TLval (TVar lvar,off)},_) 
  | Tat
      ({term_node = TBinOp(IndexPI,{term_node = TLval (TVar lvar,off)},_) 
       },_)
  | TLval (TMem 
             {term_node =
                 TBinOp(IndexPI,{term_node = TLval (TVar lvar,off)},_)}
             , _)
   | TLval (TMem 
             {term_node = Tat
      ({term_node = TBinOp(IndexPI,{term_node = TLval (TVar lvar,off)},_) 
       },_)},_)   
   | TBinOp(IndexPI,
            {term_node = 
                Tat({term_node = TLval (TVar lvar,off)},_)},_)
     -> Some (lvar, stars_lv_typ (Cil.typeOfTermLval (TVar lvar,off)))
   | t -> 
       debug "[delta_array_term] calls delta_ptr_term"; delta_ptr_term t