Abstract
Polynomials are a central concept to many branches in mathematics and computer science. In particular, manipulation of polynomial expressions can be used to model a wide variety of computation. In this paper, we consider a simple recursive construction of multivariate polynomials over a base ring such as the integers or a (finite) field. We show that this construction allows inductive implementation of polynomial operations such as arithmetic, evaluation, substitution, etc. Furthermore, we can transform a polynomial expression into in a sequence of arithmetic expressions in the base ring and prove the correctness of this transformation in Agda. Combined with our recursive construction, this allows for compiling polynomial expressions over a tower of extension fields into scalar expressions over the ground field, for example. Such a technique is not only interesting in its own right but also finds plentiful application in research areas such as cryptography.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
We use Haskell convention that infix data constructors start with a colon and, for concise typesetting, write \(\mathsf {({:\!\!+})}\) instead of the Agda notation \(\_\) \({:\!\!+}\)\(\_\). In the rest of the paper we also occasionally use Haskell syntax for brevity.
References
Bird, R.S., de Moor, O.: Algebra of Programming. Prentice Hall International Series in Computer Science. Prentice Hall, Upper Saddle River (1997)
Carette, J., Kiselyov, O., Shan, C.-C.: Finally tagless, partially evaluated: tagless staged interpreters for simpler typed languages. J. Funct. Program. 19(5), 509–543 (2009)
Chen, A.I.-T., Chen, C.-H.O., Chen, M.-S., Cheng, C.-M., Yang, B.-Y.: Practical-sized instances of multivariate PKCs: rainbow, TTS, and \(\ell \)IC-derivatives. In: Buchmann, J., Ding, J. (eds.) PQCrypto 2008. LNCS, vol. 5299, pp. 95–108. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-88403-3_7
Crockett, E., Peikert, C.: \(\varLambda {o}\lambda \): functional lattice cryptography. In: Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, Vienna, Austria, October 24–28, pp. 993–1005. ACM (2016)
Danielsson, N.A.: Ring Solver, the Agda standard library. https://github.com/agda/agda-stdlib/blob/master/src/Algebra/RingSolver.agda
Hungerford, T.: Algebra. Graduate Texts in Mathematics. Springer, New York (2003). https://doi.org/10.1007/978-1-4612-6101-8
Lyubashevsky, V., Peikert, C., Regev, O.: On ideal lattices and learning with errors over rings. IACR Cryptology ePrint Archive 2012:230 (2012)
Miller, V.S.: Use of elliptic curves in cryptography. In: Williams, H.C. (ed.) CRYPTO 1985. LNCS, vol. 218, pp. 417–426. Springer, Heidelberg (1986). https://doi.org/10.1007/3-540-39799-X_31
Norell, U.: Towards a practical programming language based on dependent type theory. Ph.D. thesis, Chalmers University of Technology (2007)
Acknowledgements
The authors would like to thank the members of IFIP Working Group 2.1 for their valuable comments on the first presentation of this work.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this paper
Cite this paper
Cheng, CM., Hsu, RL., Mu, SC. (2018). Functional Pearl: Folding Polynomials of Polynomials. In: Gallagher, J., Sulzmann, M. (eds) Functional and Logic Programming. FLOPS 2018. Lecture Notes in Computer Science(), vol 10818. Springer, Cham. https://doi.org/10.1007/978-3-319-90686-7_5
Download citation
DOI: https://doi.org/10.1007/978-3-319-90686-7_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-90685-0
Online ISBN: 978-3-319-90686-7
eBook Packages: Computer ScienceComputer Science (R0)