Advertisement

Towards the Formal Specification and Verification of Maple Programs

  • Muhammad Taimoor Khan
  • Wolfgang Schreiner
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7362)

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.

Keywords

Type System Computer Algebra Type Information Boolean Expression Typing Rule 
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.
    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)CrossRefGoogle Scholar
  2. 2.
    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)Google Scholar
  3. 3.
    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)Google Scholar
  4. 4.
    Cardelli, L.: Type Systems. In: Tucker, A.B. (ed.) The Computer Science and Engineering Handbook, pp. 2208–2236. CRC Press (1997)Google Scholar
  5. 5.
    Carette, J., Forrest, S.: Mining Maple Code for Contracts. In: Ranise, S., Bigatti, A. (eds.) Calculemus. Electronic Notes in Theoretical Computer Science. Elsevier (2006)Google Scholar
  6. 6.
    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)Google Scholar
  7. 7.
    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)Google Scholar
  8. 8.
    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)CrossRefGoogle Scholar
  9. 9.
    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)Google Scholar
  10. 10.
    Leavens, G.T., Cheon, Y.: Design by Contract with JML. A Tutorial (2006), ftp://ftp.cs.iastate.edu/pub/leavens/JML/jmldbc.pdf
  11. 11.
    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)Google Scholar
  12. 12.
    Hudak, P.: The Haskell School of Expression: Learning Functional Programming through Multimedia. Cambridge University Press (June 2000)Google Scholar
  13. 13.
    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)Google Scholar
  14. 14.
    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)Google Scholar
  15. 15.
    Khan, M.T.: Formal Semantics of MiniMaple. DK Technical Report 2012-01, Research Institute for Symbolic Computation, Johannes Kepler University, Linz (January 2012)Google Scholar
  16. 16.
    Khan, M.T., Schreiner, W.: On Formal Specification of Maple Programs. In: Conferences on Intelligent Computer Mathematics, Systems and Projects Track (submitted, 2012)Google Scholar
  17. 17.
    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)CrossRefGoogle Scholar
  18. 18.
    Schmidt, D.A.: Denotational Semantics: a methodology for language development. William C. Brown Publishers, Dubuque (1986)Google Scholar
  19. 19.
    Schreiner, W.: A Program Calculus. Technical report, Research Institute for Symbolic Computation (RISC), Johannes Kepler University, Linz, Austria (September 2008)Google Scholar
  20. 20.
    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)Google Scholar
  21. 21.
    Lambert, T., Lindsay, P., Robinson, K.: Using Miranda as a First Programming Language. Journal of Functional Programming 3(1), 5–34 (1993)CrossRefGoogle Scholar
  22. 22.
    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)MathSciNetzbMATHCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Muhammad Taimoor Khan
    • 1
  • Wolfgang Schreiner
    • 2
  1. 1.Doktoratskolleg Computational MathematicsJohannes Kepler UniversityLinzAustria
  2. 2.Research Institute for Symbolic ComputationJohannes Kepler UniversityLinzAustria

Personalised recommendations