The foundations of program verification (2nd ed.)
The foundations of program verification (2nd ed.)
Approximate complex polynomial evaluation in near constant work per point
STOC '97 Proceedings of the twenty-ninth annual ACM symposium on Theory of computing
Model checking
The Mathematica Book
Introduction to Mathematical Theory of Computation
Introduction to Mathematical Theory of Computation
Computer-Aided Reasoning: An Approach
Computer-Aided Reasoning: An Approach
Concrete Math
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
Achievements and Prospects of Program Synthesis
Computational Logic: Logic Programming and Beyond, Essays in Honour of Robert A. Kowalski, Part I
Hauptvortrag: Quantifier elimination for real closed fields by cylindrical algebraic decomposition
Proceedings of the 2nd GI Conference on Automata Theory and Formal Languages
Interactive Theorem Proving and Program Development
Interactive Theorem Proving and Program Development
Hi-index | 0.00 |
We describe an innovative method for proving total correctness of tail recursive programs having a specific structure, namely programs in which an auxiliary tail recursive function is driven by a main nonrecursive function, and only the specification of the main function is provided. The specification of the auxiliary function is obtained almost fully automatically by solving coupled linear recursive sequences with constant coefficients. The process is carried out by means of CA (Computer Algebra) and AC (Algorithmic Combinatorics) and is implemented in the Theorema system (using Mathematica). We demonstrate this method on an example involving polynomial expressions. Furthermore, we develop a method for synthesis of recursive programs for computing polynomial expressions of a fixed degree by means of ''cheap'' operations, e.g., additions, subtractions and multiplications. For a given polynomial expression, we define its recursive program in a schemewise manner. The correctness of the synthesized programs follows from the general correctness of the synthesis method, which is proven once for all, using the verification method presented in the first part of this paper.