Advertisement

Certifying the Fast Fourier Transform with Coq

  • Venanzio Capretta
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2152)

Abstract

We program the Fast Fourier Transform in type theory, using the tool Coq. We prove its correctness and the correctness of the Inverse Fourier Transform. A type of trees representing vectors with interleaved elements is defined to facilitate the definition of the transform by structural recursion. We define several operations and proof tools for this data structure, leading to a simple proof of correctness of the algorithm. The inverse transform, on the other hand, is implemented on a different representation of the data, that makes reasoning about summations easier. The link between the two data types is given by an isomorphism. This work is an illustration of the two-level approach to proof development and of the principle of adapting the data representation to the specific algorithm under study. CtCoq, a graphical user interface of Coq, helped in the development. We discuss the characteristics and usefulness of this tool.

Keywords

Fast Fourier Transform Discrete Fourier Transform Commutative Ring Type Theory Inverse Fourier Transform 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Antonia Balaa and Yves Bertot. Fix-point equations for well-founded recursion in type theory. In J. Harrison and M. Aagaard, editors, Theorem Proving in Higher Order Logics: 13th International Conference, TPHOLs 2000, volume 1869 of Lecture Notes in Computer Science, pages 1–16. Springer-Verlag, 2000.CrossRefGoogle Scholar
  2. 2.
    Bruno Barras, Samuel Boutin, Cristina Cornes, Judicaël Courant, Yann Coscoy, David Delahaye, Daniel de Rauglaudre, Jean-Christophe Filliâtre, Eduardo Giménez, Hugo Herbelin, Gérard Huet, Henri Laulhère, César Muñoz, Chetan Murthy, Catherine Parent-Vigouroux, Patrick Loiseleur, Christine Paulin-Mohring, Amokrane Saïbi, and Benjanin Werner. The Coq Proof Assistant Reference Manual. Version 6.3. INRIA, 1999.Google Scholar
  3. 3.
    G. Barthe, M. Ruys, and H. P. Barendregt. A two-level approach towards lean proof-checking. In S. Berardi and M. Coppo, editors, Types for Proofs and Programs (TYPES’95), volume 1158 of LNCS, pages 16–35. Springer, 1995.Google Scholar
  4. 4.
    Yves Bertot. The CtCoq system: Design and architecture. Formal aspects of Computing, 11:225–243, 1999.CrossRefGoogle Scholar
  5. 5.
    Yves Bertot, Gilles Kahn, and Laurent Théry. Proof by pointing. In Symposium on Theoretical Aspects Computer Software (STACS), Sendai (Japan), volume 789 of LNCS. Springer, April 1994.Google Scholar
  6. 6.
    Samuel Boutin. Using reflection to build efficient and certified decision procedures. In Martín Abadi and Takayasu Ito, editors, Theoretical Aspects of Computer Software. Third International Symposium, TACS’97, volume 1281 of LNCS, pages 515–529. Springer, 1997.Google Scholar
  7. 7.
    Ana Bove and Venanzio Capretta. Nested general recursion and partiality in type theory. http://www.cs.kun.nl/venanzio/publications/nested.ps.gz, 2001.
  8. 8.
    James W. Cooley and John W. Tukey. An algorithm for the machine calculation of complex Fourier series. Mathematics of Computation, 19(90):297–301, April 1965.Google Scholar
  9. 9.
    Paul de Mast, Jan-Marten Jansen, Dick Bruin, Jeroen Fokker, Pieter Koopman, Sjaak Smetsers, Marko van Eekelen, and Rinus Plasmeijer. Functional Programming in Clean. Computing Science Institute, University of Nijmegen.Google Scholar
  10. 10.
    Ruben A. Gamboa. The correctness of the Fast Fourier Transform: a structured proof in ACL2. Formal Methods in System Design, Special Issue on UNITY, 2001. in print.Google Scholar
  11. 11.
    Jayadev Misra. Powerlist: a structure for parallel recursion. TOPLAS, 16(6):1737–1767, November 1994.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Venanzio Capretta
    • 1
  1. 1.Computing Science InstituteUniversity of NijmegenNijmegenThe Netherlands

Personalised recommendations