Skip to main content

Advertisement

Log in

A Library for Formalization of Linear Error-Correcting Codes

  • Published:
Journal of Automated Reasoning Aims and scope Submit manuscript

Abstract

Error-correcting codes add redundancy to transmitted data to ensure reliable communication over noisy channels. Since they form the foundations of digital communication, their correctness is a matter of concern. To enable trustful verification of linear error-correcting codes, we have been carrying out a systematic formalization in the Coq proof-assistant. This formalization includes the material that one can expect of a university class on the topic: the formalization of well-known codes (Hamming, Reed–Solomon, Bose–Chaudhuri–Hocquenghem) and also a glimpse at modern coding theory. We demonstrate the usefulness of our formalization by extracting a verified decoder for low-density parity-check codes based on the sum-product algorithm. To achieve this formalization, we needed to develop a number of libraries on top of Coq’s Mathematical Components. Special care was taken to make them as reusable as possible so as to help implementers and researchers dealing with error-correcting codes in the future.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

Explore related subjects

Discover the latest articles, news and stories from top researchers in related subjects.

Notes

  1. The input and output alphabets are not the same for example in the case of the binary erasure channel that replaces some bits with an erasure.

  2. The MathComp library provides the same notation for sums, it is generic but cannot be used directly with the reals from the Coq standard library. One first needs to show that they satisfy the basic properties of appropriate algebraic structures and declare the latter as Canonical. We have chosen not to do that because it makes automatic tactics for reals such as field and lra inoperative. Our notation is therefore just a specialization of the generic notation provided by MathComp.

  3. This definition is specialized to communication over a noisy channel and is sufficient for our purpose in this paper. It can also be recast in a more general setting with conditional probabilities using an appropriate joint distribution [4].

  4. The evaluator polynomial is also denoted by \(\eta \) in the literature.

  5. Indeed, \(\sigma \) and \(\omega \) are coprime (see Sect. 5.1.2).

References

  1. Affeldt, R., Garrigue, J.: Formalization of error-correcting codes: from Hamming to modern coding theory. In: 6th Conference on Interactive Theorem Proving (ITP 2015), Lecture Notes in Computer Science, vol. 9236, pp. 17–33. Springer, Nanjing, China, August 24–27 (2015)

  2. Affeldt, R., Hagiwara, M., Sénizergues, J.: Formalization of Shannon’s theorems. J. Autom. Reason. 53(1), 63–103 (2014)

    Article  MathSciNet  Google Scholar 

  3. Affeldt, R., Garrigue, J., Saikawa, T.: Formalization of Reed–Solomon codes and progress report on formalization of LDPC codes. In: International Symposium on Information Theory and its Applications (ISITA 2016), pp. 537–541. IEICE, IEEE Xplore, Monterey, California, USA, October 30–November 2 (2016)

  4. Affeldt, R., Garrigue, J., Saikawa, T.: Reasoning with conditional probabilities and joint distributions in Coq. In: 21st Workshop on Programming and Programming Languages (PPL2019). Japan Society for Software Science and Technology, Iwate-ken, Hanamaki-shi, March 6–8 (2019)

  5. Asai, T.: The SSReflect extension of the Coq proof-assistant and its application. Master’s thesis, Graduate School of Mathematics, Nagoya University (2014). (in Japanese)

  6. Ballarin, C., Paulson, L.C.: A pragmatic approach to extending provers by computer algebra—with applications to coding theory. Fundam. Inform. 39(1–2), 1–20 (1999)

    Article  MathSciNet  Google Scholar 

  7. Bose, R.C., Ray-Chaudhuri, D.K.: On a class of error correcting binary group codes. Inf. Control 3(1), 68–79 (1960)

    Article  MathSciNet  Google Scholar 

  8. Di, C., Proietti, D., Telatar, I.E., Richardson, T.J., Urbanke, R.L.: Finite-length analysis of low-density parity-check codes on the binary erasure channel. IEEE Trans. Inf. Theory 48(6), 1570–1579 (2002)

    Article  MathSciNet  Google Scholar 

  9. Etzion, T., Trachtenberg, A., Vardy, A.: Which codes have cycle-free Tanner graphs? IEEE Trans. Inf. Theory 45(6), 2173–2181 (1999)

    Article  MathSciNet  Google Scholar 

  10. Gallager, R.G.: Low-density parity-check codes. IRE Trans. Inf. Theory 8(1), 21–28 (1962)

    Article  MathSciNet  Google Scholar 

  11. Gonthier, G., Asperti, A., Avigad, J., Bertot, Y., Cohen, C., Garillot, F., Roux, S.L., Mahboubi, A., O’Connor, R., Biha, S.O., Pasca, I., Rideau, L., Solovyev, A., Tassi, E., Théry, L.: A machine-checked proof of the odd order theorem. In: 4th International Conference on Interactive Theorem Proving (ITP 2013), pp. 163–179, Rennes, France, July 22–26 (2013)

  12. Gowers, T. (ed.): The Princeton Companion to Mathematics. Princeton University Press, Princeton (2008)

    MATH  Google Scholar 

  13. Hagiwara, M.: Coding Theory: Mathematics for Digital Communication. Nippon Hyoron Sha, Toshima (2012). (in Japanese)

    Google Scholar 

  14. Hagiwara, M., Nakano, K., Kong, J.: Formalization of coding theory using lean. In: International Symposium on Information Theory and Its Applications (ISITA 2016), pp. 527–531. IEICE , IEEE Xplore, Monterey, California, USA, October 30–November 2 (2016)

  15. Hamming, R.W.: Error detecting and error correcting codes. Bell Syst. Tech. J. XXVI(2), 147–160 (1950)

    Article  MathSciNet  Google Scholar 

  16. Hocquenghem, A.: Codes correcteurs d’erreurs. Chiffres (Paris) 2, 147–156 (1959)

    MathSciNet  MATH  Google Scholar 

  17. Infotheo.: A Coq formalization of information theory and linear error-correcting codes. https://github.com/affeldt-aist/infotheo/, Coq scripts, version 0.0.2 (2019)

  18. Kong, J., Webb, D.J., Hagiwara, M.: Formalization of insertion/deletion codes and the Levenshtein metric in lean. In: International Symposium on Information Theory and Its Applications (ISITA 2018), pp .11–15. IEICE, IEEE Xplore, Singapore, October 18–31 (2018)

  19. Kschischang, F.R., Frey, B.J., Loeliger, H.: Factor graphs and the sum-product algorithm. IEEE Trans. Inf. Theory 47(2), 498–519 (2001)

    Article  MathSciNet  Google Scholar 

  20. MacWilliams, F.J., Sloane, N.J.A.: The Theory of Error-Correcting Codes. Elsevier, New York (1977). (seventh impression 1992)

    MATH  Google Scholar 

  21. Mahboubi, A., Tassi, E.: Mathematical components. Available at: https://math-comp.github.io/mcb/, with contributions by Yves Bertot and Georges Gonthier (2016) Accessed 11 August 2011

  22. McEliece, R.J.: The Theory of Information and Coding, Encyclopedia of Mathematics and its Applications, vol. 86. Cambridge University Press, Cambridge (2002)

    Book  Google Scholar 

  23. Obata, N.: Formalization of theorems about stopping sets and the decoding performance of LDPC codes. Department of Communications and Computer Engineering, Graduate School of Science and Engineering, Tokyo Institute of Technology, Master’s thesis (2015). (in Japanese)

  24. Reed, I.S., Solomon, G.: Polynomial codes over certain finite fields. J. Soc. Ind. Appl. Math. (SIAM) 8(2), 300–304 (1960)

    Article  MathSciNet  Google Scholar 

  25. Richardson, T., Urbanke, R.: Modern Coding Theory. Cambridge University Press, Cambridge (2008)

    Book  Google Scholar 

  26. Richardson, T.J., Urbanke, R.L.: The capacity of low-density parity-check codes under message-passing decoding. IEEE Trans. Inf. Theory 47(2), 599–618 (2001)

    Article  MathSciNet  Google Scholar 

  27. Sugiyama, Y., Kasahara, M., Hirasawa, S., Namekawa, T.: A method for solving key equation for decoding Goppa codes. Inf. Control 27(1), 87–99 (1975)

    Article  MathSciNet  Google Scholar 

  28. The Coq Development Team.: The Coq proof assistant reference manual. INRIA, version 8.9.0 (2018)

Download references

Acknowledgements

T. Asai, N. Obata, K. Sakaguchi, and Y. Takahashi contributed to the formalization. The formalization of modern coding theory was a collaboration with M. Hagiwara, K. Kasai, S. Kuzuoka, and R. Obi. The authors are grateful to M. Hagiwara for his help. We acknowledge the support of the JSPS KAKENHI Grant Number 18H03204.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Reynald Affeldt.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Affeldt, R., Garrigue, J. & Saikawa, T. A Library for Formalization of Linear Error-Correcting Codes. J Autom Reasoning 64, 1123–1164 (2020). https://doi.org/10.1007/s10817-019-09538-8

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10817-019-09538-8

Keywords

Navigation