Formal proofs of two algorithms for strongly connected components in graphs - Laboratoire Preuves, Programmes et Systèmes Access content directly
Preprints, Working Papers, ... Year : 2016

Formal proofs of two algorithms for strongly connected components in graphs

Abstract

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
Origin : Files produced by the author(s)
Loading...

Dates and versions

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

Identifiers

  • HAL Id : hal-01422216 , version 1

Cite

Ran Chen, Jean-Jacques Levy. Formal proofs of two algorithms for strongly connected components in graphs. 2016. ⟨hal-01422216⟩
596 View
120 Download

Share

Gmail Facebook X LinkedIn More