Formal proofs of two algorithms for strongly connected components in graphs - Laboratoire Preuves, Programmes et Systèmes
Pré-Publication, Document De Travail Année : 2016

Formal proofs of two algorithms for strongly connected components in graphs

Résumé

We present formal proofs for the two classical Tarjan-1972 and Kosaraju-1978 algorithms for finding strongly connected components in directed graphs. We describe the two algorithms in a functional programming style with abstract values for vertices in graphs, with functions between vertices and their successors, and with data types such that lists (for representing immutable stacks) and sets. We use the Why3 system and the Why3-logic to express these proofs and fully check them by computer. The Why3-logic is a simple multi-sorted first-order logic augmented by inductively defined predicates. Furthermore it provides useful libraries for lists and sets. The Why3 system allows description of programs in a Why3-ML programming language (a first-order programming language with ML syntax) and provides interfaces to various state-of-the-art automatic provers and to manual interactive proof-checkers (we use mainly Coq). One important point of our article is that our proofs are intuitive and human readable.
Fichier principal
Vignette du fichier
16sccs.pdf (378.33 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-01422216 , version 1 (24-12-2016)

Identifiants

  • HAL Id : hal-01422216 , version 1

Citer

Ran Chen, Jean-Jacques Levy. Formal proofs of two algorithms for strongly connected components in graphs. 2016. ⟨hal-01422216⟩
647 Consultations
146 Téléchargements

Partager

More