Thanks for your work on array_view. I've been using a similar homemade class and I'm glad this concept is on its way to STL.
There's one thing I don't understand. Using the const-qualifier on the template parameter (array_view<const T>) is an intuitive way to indicate immutable elements. But the tradition (standard?) seems to be that the value_type is a decay type:
std::vector<T>::const_iterator::value_type is T, not const T
Should not array_view<T>::value_type be decay_t<T> for the same reason?