  Array-intensive programs are often amenable to parallelization across many
cores on a single machine as well as scaling across multiple machines and hence
are well explored, especially in the domain of high-performance computing.
These programs typically undergo loop transformations and arithmetic
transformations in addition to parallelizing transformations. Although a lot of
effort has been invested in improving parallelizing compilers, experienced
programmers still resort to hand-optimized transformations which is typically
followed by careful tuning of the transformed program to finally obtain the
optimized program. Therefore, it is critical to verify that the functional
correctness of an original sequential program is not sacrificed during the
process of optimization. In this paper, we cover important literature on
functional verification of array-intensive programs which we believe can be a
good starting point for one interested in this field.
