2014
DOI: 10.1145/2506375
|View full text |Cite
|
Sign up to set email alerts
|

Loop invariants

Abstract: Software verification has emerged as a key concern for ensuring the continued progress of information technology. Full verification generally requires, as a crucial step, equipping each loop with a "loop invariant." Beyond their role in verification, loop invariants help program understanding by providing fundamental insights into the nature of algorithms. In practice, finding sound and useful invariants remains a challenge. Fortunately, many invariants seem intuitively to exhibit a common flavor. Understandin… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
5
0
2

Year Published

2014
2014
2023
2023

Publication Types

Select...
5
4

Relationship

1
8

Authors

Journals

citations
Cited by 39 publications
(9 citation statements)
references
References 51 publications
0
5
0
2
Order By: Relevance
“…In this subsection, we prove the correctness of the proposed merging algorithms of the nested-loop join by applying the loop invariant technique [42] again. The loop invariant technique consists of three parts: (1) initialization, (2) maintenance, and (3) termination.…”
Section: ) Correctness Of the Nested-loop Join Approachmentioning
confidence: 97%
See 1 more Smart Citation
“…In this subsection, we prove the correctness of the proposed merging algorithms of the nested-loop join by applying the loop invariant technique [42] again. The loop invariant technique consists of three parts: (1) initialization, (2) maintenance, and (3) termination.…”
Section: ) Correctness Of the Nested-loop Join Approachmentioning
confidence: 97%
“…To prove the correctness of Algorithm 1, we use the loop invariant technique [42]. This approach examines the correctness of the algorithm in three loop stages: (1) initialization, (2) maintenance, and (3) termination.…”
mentioning
confidence: 99%
“…In fact, lessons from the verification practice suggest that providing loop invariants is much harder compared to other specification elements such as method pre/post-conditions. However, many researchers have recently explored techniques for inferring loop invariants automatically or with little human help [47], which might be of interest for the symbolic execution community for a more efficient handling of loops. These approaches normally target inductive predicates, which are closed under the state transition relation (i.e., they make no reference to past behavior).…”
Section: Invariantsmentioning
confidence: 99%
“…-P and Q are assertions, conditions on the program variables used in C. They will be written using standard mathematical notation together with logical operators. We can use functions and predicates to express high-level properties based on a domain theory [39] covering specifics of the application area.…”
Section: Correctnessmentioning
confidence: 99%