The nature of loops in programming

Fuente: arXiv
Salvato in:
Dettagli Bibliografici
Autore principale: Meyer, Bertrand
Natura: Preprint
Pubblicazione: 2025
Soggetti:
Accesso online:
Tags: Aggiungi Tag
Nessun Tag, puoi essere il primo ad aggiungerne!!
_version_ 1866917982441046016
author Meyer, Bertrand
author_facet Meyer, Bertrand
contents In program semantics and verification, reasoning about loops is complicated by the need to produce two separate mathematical arguments: an invariant, for functional properties (ignoring termination); and a variant, for termination (ignoring functional properties). A single and simple definition is possible, removing this split. A loop is just the limit (a variant of the reflexive transitive closure) of a Noetherian (well-founded) relation. To prove the loop correct there is no need to devise an invariant and a variant; it suffices to identify the relation, yielding both partial correctness and termination. The present note develops the (small) theory and applies it to standard loop examples and proofs of their correctness.
format Preprint
id arxiv_https___arxiv_org_abs_2504_08126
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle The nature of loops in programming
Meyer, Bertrand
Programming Languages
Software Engineering
In program semantics and verification, reasoning about loops is complicated by the need to produce two separate mathematical arguments: an invariant, for functional properties (ignoring termination); and a variant, for termination (ignoring functional properties). A single and simple definition is possible, removing this split. A loop is just the limit (a variant of the reflexive transitive closure) of a Noetherian (well-founded) relation. To prove the loop correct there is no need to devise an invariant and a variant; it suffices to identify the relation, yielding both partial correctness and termination. The present note develops the (small) theory and applies it to standard loop examples and proofs of their correctness.
title The nature of loops in programming
topic Programming Languages
Software Engineering
url https://arxiv.org/abs/2504.08126