Score: 0

The nature of loops in programming

Published: April 10, 2025 | arXiv ID: 2504.08126v1

By: Bertrand Meyer

Potential Business Impact:

Simplifies proving computer programs work correctly.

Business Areas:
Natural Language Processing Artificial Intelligence, Data and Analytics, Software

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.

Country of Origin
🇨🇭 Switzerland

Page Count
15 pages

Category
Computer Science:
Programming Languages