Abstract
In this paper, we present our ongoing work and initial results on the formal specification and verification of MiniMaple (a substantial subset of Maple with slight extensions) programs. The main goal of our work is to find behavioral errors in such programs w.r.t. their specifications by static analysis. This task is more complex for widely used computer algebra languages like Maple as these are fundamentally different from classical languages: they support non-standard types of objects such as symbols, unevaluated expressions and polynomials and require abstract computer algebraic concepts and objects such as rings and orderings etc. As a starting point we have defined and formalized a syntax, semantics, type system and specification language for MiniMaple.
The research was funded by the Austrian Science Fund (FWF): W1214-N15, project DK10.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Barnett, M., Leino, K.R.M., Schulte, W.: The Spec# Programming System: An Overview. In: Barthe, G., Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (eds.) CASSIS 2004. LNCS, vol. 3362, pp. 49–69. Springer, Heidelberg (2005)
Baudin, P., Filliâtre, J.C., Hubert, T., Marché, C., Monate, B., Moy, Y., Prevosto, V.: ACSL: ANSI C Specification Language (preliminary design V1.2), preliminary edn. (May 2008)
Bobot, F., Filliâtre, J.-C., Marché, C., Paskevich, A.: Why3: Shepherd your herd of provers. In: Boogie 2011: First International Workshop on Intermediate Verification Languages, Wrocław, Poland (August 2011)
Cardelli, L.: Type Systems. In: Tucker, A.B. (ed.) The Computer Science and Engineering Handbook, pp. 2208–2236. CRC Press (1997)
Carette, J., Forrest, S.: Mining Maple Code for Contracts. In: Ranise, S., Bigatti, A. (eds.) Calculemus. Electronic Notes in Theoretical Computer Science. Elsevier (2006)
Carette, J., Kucera, M.: Partial Evaluation of Maple. In: Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, PEPM 2007, pp. 41–50. ACM Press (2007)
Dönch, C.: Bivariate Difference-Differential Dimension Polynomials and Their Computation in Maple. Technical report, Research Institute for Symbolic Computation, Johannes Kepler University, Linz (2009)
D’Silva, V., Kroening, D., Weissenbacher, G.: A Survey of Automated Techniques for Formal Software Verification. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 27(7), 1165–1178 (2008)
Dunstan, M., Kelsey, T., Linton, S., Martin, U.: Lightweight Formal Methods For Computer Algebra Systems. In: International Symposium on Symbolic and Algebraic Computation, ISSAC 1998, pp. 80–87. ACM Press (1998)
Leavens, G.T., Cheon, Y.: Design by Contract with JML. A Tutorial (2006), ftp://ftp.cs.iastate.edu/pub/leavens/JML/jmldbc.pdf
Guttag, J.V., Horning, J.J., Garl, W.J., Jones, K.D., Modet, A., Wing, J.M.: Larch: Languages and Tools for Formal Specification. Texts and Monographs in Computer Science. Springer (1993)
Hudak, P.: The Haskell School of Expression: Learning Functional Programming through Multimedia. Cambridge University Press (June 2000)
Foster, J.S., Furr, M., An, J.-H., Hicks, M.: Static Type Inference for Ruby. In: Proceedings of the 24th Annual ACM Symposium on Applied Computing, OOPS Track, Honolulu, HI (2009)
Khan, M.T.: A Type Checker for MiniMaple. RISC Technical Report 11-05, also DK Technical Report 2011-05, Research Institute for Symbolic Computation, Johannes Kepler University, Linz (2011)
Khan, M.T.: Formal Semantics of MiniMaple. DK Technical Report 2012-01, Research Institute for Symbolic Computation, Johannes Kepler University, Linz (January 2012)
Khan, M.T., Schreiner, W.: On Formal Specification of Maple Programs. In: Conferences on Intelligent Computer Mathematics, Systems and Projects Track (submitted, 2012)
Monagan, M.B.: Gauss: A Parameterized Domain of Computation System with Support for Signature Functions. In: Miola, A. (ed.) DISCO 1993. LNCS, vol. 722, pp. 81–94. Springer, Heidelberg (1993)
Schmidt, D.A.: Denotational Semantics: a methodology for language development. William C. Brown Publishers, Dubuque (1986)
Schreiner, W.: A Program Calculus. Technical report, Research Institute for Symbolic Computation (RISC), Johannes Kepler University, Linz, Austria (September 2008)
Boulmé, S., Hardin, T., Hirschkoff, D., Ménissier-Morain, V., Rioboo, R.: On the Way to Certify Computer Algebra Systems. In: Proceedings of the Calculemus Workshop of FLOC 1999 (Federated Logic Conference, Trento, Italie). ENTCS, vol. 23, pp. 370–385. Elsevier (1999)
Lambert, T., Lindsay, P., Robinson, K.: Using Miranda as a First Programming Language. Journal of Functional Programming 3(1), 5–34 (1993)
Zhou, M., Winkler, F.: Computing Difference-Differential Dimension Polynomials by Relative Gröbner Bases in Difference-Differential Modules. Journal of Symbolic Computation 43(10), 726–745 (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Khan, M.T., Schreiner, W. (2012). Towards the Formal Specification and Verification of Maple Programs. In: Jeuring, J., et al. Intelligent Computer Mathematics. CICM 2012. Lecture Notes in Computer Science(), vol 7362. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-31374-5_16
Download citation
DOI: https://doi.org/10.1007/978-3-642-31374-5_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-31373-8
Online ISBN: 978-3-642-31374-5
eBook Packages: Computer ScienceComputer Science (R0)