Deductive synthesis of sorting algorithms on lists and on binary trees in Theorema
Isabela Drămnesc
West University of Timisoara, Timişoara, Romania
Abstract:
I will describe the principles and the implementation of AlCons (Algorithm Constructor),
a system for the automatic proof--based synthesis of sorting algorithms on lists and on
binary trees, in the frame of the Theorema system. The core of the system is a dedicated prover
based on specific inference rules and strategies for constructive proofs over the domains of
lists and of binary trees, aimed at the automatic synthesis of sorting algorithms and their
auxiliary functions from logical specifications. The specific distinctive feature of this
approach is the use of multisets for expressing the fact that two lists (trees) have
the same elements. This allows a more natural expression of the properties related to sorting,
compared to the classical approach using the permutation relation (a list is a permutation of
another).
Moreover, the use of multisets leads to special inference rules and strategies which
make the proofs more efficient, as for instance: expand/compress multiset terms and solve
meta-variables using multiset equalities. Additionally, the use of a Noetherian induction
strategy based on the relation induced by the strict inclusion of multisets,
facilitates the synthesis of arbitrary recursion structures, without having to indicate
the recursion schemes in advance. The necessary auxiliary algorithms (like, e.g.,
for insertion and merging) are generated by the same principles from the synthesis
conjectures that are automatically produced during the main proof, using a "cascading" method,
which in fact contributes to the automation of theory exploration. The prover is implemented
in the frame of the Theorem system and works in natural style, while the generated algorithms
can be immediately tested in the same system.