Synthesis of sorting algorithms using multisets in Theorema

Using multisets, we develop novel techniques for mechanizing the proofs of the synthesis conjectures for list–sorting algorithms, and we demonstrate them in the Theorema system. We use the classical principle of extracting the algorithm as a set of rewrite rules based on the witnesses found in the p...

Full description

Saved in:
Bibliographic Details
Published inJournal of logical and algebraic methods in programming Vol. 119; p. 100635
Main Authors Drămnesc, Isabela, Jebelean, Tudor
Format Journal Article
LanguageEnglish
Published Elsevier Inc 01.02.2021
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:Using multisets, we develop novel techniques for mechanizing the proofs of the synthesis conjectures for list–sorting algorithms, and we demonstrate them in the Theorema system. We use the classical principle of extracting the algorithm as a set of rewrite rules based on the witnesses found in the proof of the synthesis conjecture produced from the specification of the desired function (input and output conditions). The proofs are in natural style, using standard rules, but most importantly domain specific inference rules and strategies. In particular the use of multisets allows us to develop powerful strategies for the synthesis of arbitrarily structured recursive algorithms by general Noetherian induction, as well as for the automatic generation of the specifications of all necessary auxiliary functions (insert, merge, split), whose synthesis is performed using the same method. The proof techniques are implemented in the Theorema system and generate 8 sorting algorithms and 19 auxiliary functions.
ISSN:2352-2208
DOI:10.1016/j.jlamp.2020.100635