Publication | Open Access
Equivalence checking of static affine programs using widening to handle recurrences
56
Citations
30
References
2012
Year
Mathematical ProgrammingProgram CheckingEngineeringVerificationComputer-aided VerificationComputational ComplexityModel CheckingDependence Graph AbstractionSoftware AnalysisFormal VerificationStatic Affine ProgramsEquivalence CheckingStatic CheckingEquivalence ProofsComputer EngineeringComputer ScienceProgram AnalysisAutomated ReasoningFormal MethodsProgram SynthesisParallel Programming
Designers often apply manual or semi-automatic loop and data transformations on array- and loop-intensive programs to improve performance. It is crucial that such transformations preserve the functionality of the program. This article presents an automatic method for constructing equivalence proofs for the class of static affine programs. The equivalence checking is performed on a dependence graph abstraction and uses a new approach based on widening to find the proper induction hypotheses for reasoning about recurrences. Unlike transitive-closure-based approaches, this widening approach can also handle nonuniform recurrences. The implementation is publicly available and is the first of its kind to fully support commutative operations.
| Year | Citations | |
|---|---|---|
Page 1
Page 1