Validating Mathematical Theorems and Algorithms with RISCAL
RISCAL is a language for describing mathematical algorithms and formally specifying their behavior with respect to user-defined theories in first-order logic. This language is based on a type system that constrains the size of all types by formal parameters; thus a RISCAL specification denotes an infinite class of models of which every instance has finite size. This allows the RISCAL software to fully automatically check in small instances the validity of theorems and the correctness of algorithms. Our goal is to quickly detect errors respectively inadequacies in the formalization by falsification in small model instances before attempting actual correctness proofs for the whole model class.
KeywordsFormal specification Falsification Model checking
- 3.RISCAL: The RISC Algorithm Language (RISCAL), March 2017. https://www.risc.jku.at/research/formal/software/RISCAL
- 4.Runciman, C., Naylor, M., Lindblad, F.: Smallcheck and lazy smallcheck: automatic exhaustive testing for small values. In: First ACM SIGPLAN Symposium on Haskell, Haskell 2008, pp. 37–48. ACM, New York (2008). https://doi.org/10.1145/1411286.1411292
- 5.Schreiner, W.: The RISC Algorithm Language (RISCAL) – Tutorial and Reference Manual (Version 1.0). Technical report, RISC, Johannes Kepler University, Linz, Austria, March 2017. download from Google Scholar
- 6.Schreiner, W., Brunhuemer, A., Fürst, C.: Teaching the formalization of mathematical theories and algorithms via the automatic checking of finite models. In: Post-Proceedings ThEdu’17, Theorem proving components for Educational software. EPTCS, vol. 267, pp. 120–139 (2018). https://doi.org/10.4204/EPTCS.267.8CrossRefGoogle Scholar