Learn More
Theorema is a project that aims at supporting the entire process of mathematical theory exploration within one coherent logic and software system. This survey paper illustrates the style of Theorema-supported mathematical theory exploration by a case study (the automated synthesis of an algorithm for the construction of Gröbner Bases) and gives an overview(More)
The Theorema project aims at extending current computer algebra systems by facilities for supporting mathematical proving. The present early-prototype version of the The-orema software system is implemented in Mathematica 3.0. The system consists of a general higher-order predicate logic prover and a collection of special provers that call each other(More)
A generalization of the binary algorithm for operation at 'word level " by using a new concept of 'modular conjugates " computes the GCD of multiprecision integers two times faster than Lehmer–Euclid method. Most importantly, however, the new algorithm is suitable for systolic parallelization, in 'least-significant digits jirst " pipelined manner and for(More)
— We present an algorithm that generates automatically (algebraic) invariant properties of a loop with conditionals. In the proposed algorithm program analysis is performed in order to transform the code into a form for which algebraic and combinatorial techniques can be applied to obtain invariant properties. These invariants are then used for verifying(More)
We describe practical experiments of program verification in the frame of the Theorema system. This includes both imperative programs (using Hoare logic), as well as functional programs (using fixpoint theory). For a certain class of imperative programs we are able to generate automatically the loop invariants and then verification conditions, by using(More)
— We study and implement concrete methods for the verification of both imperative as well as functional programs in the frame of the Theorema system. The distinctive features of our approach consist in the automatic generation of loop invariants (by using combinatorial and algebraic techniques), and the generation of verification conditions as first–order(More)