let rec is_interp a =
  is_expt a || is_mult a
  
and is_expt = function
  | App(Pp(Expt(_)), [x]) -> is_var x
  | _ -> false

and is_mult = function
  | App(Pp(Mult), xl) ->
      (List.for_all (fun x -> is_expt x || is_var x) xl)
  | _ -> false