1
- Proving Total Corectness All-Path Reachability Claims
1
+ Proving Total Correctness All-Path Reachability Claims
2
2
=====================================================
3
3
4
- This document details Total Corectness All-Path Reachability.
4
+ This document details Total Correctness All-Path Reachability.
5
5
6
- _ Prepared by Traian Șerbănuță, based on [ proving All-Path Reachability
7
- claims] ( 2019-03-28-All-Path-Reachability-Proofs.md ) _
6
+ _ Prepared by Traian Șerbănuță and Virgil Șerbănuță,
7
+ based on [ proving All-Path Reachability claims] ( 2019-03-28-All-Path-Reachability-Proofs.md ) _
8
8
9
9
Definitions
10
10
-----------
@@ -188,7 +188,7 @@ Nevertheless, before continuing, let
188
188
us give an example of a system and property for which the above construction is
189
189
not a fixpoint.
190
190
191
- #### Counterexample for `⟦AF ϕ⟧ = ⋁ₙGⁿ(∅)`
191
+ ### Counterexample for `⟦AF ϕ⟧ = ⋁ₙGⁿ(∅)`
192
192
193
193
Consider the following K theory
194
194
@@ -205,10 +205,10 @@ It is easy to see that any trace originating in `x` will reach `0` in a finite
205
205
number of steps. However, there is no bound on the number of steps needed for `x`
206
206
to reach `0`.
207
207
208
- ### Total corectness all-path reachability claims
208
+ ### Total correctness all-path reachability claims
209
209
210
- Given this definition of all-path finally, a total correctness all-path
211
- reachability claim is of the form
210
+ Given the definition of all-path finally discussed in the section above,
211
+ a total correctness all-path reachability claim is of the form
212
212
```
213
213
∀x.φ(x) → AF ∃z.ψ(x,z)
214
214
```
@@ -230,19 +230,19 @@ Given a set of reachability claims, of the form `∀x.φ(x) → AF ∃z.ψ(x,z)`
230
230
we are trying to prove all of them together, by well-founded induction on a
231
231
given `measure` defined on the quantified variables `x`.
232
232
233
- The well-founded induction argument requiring the `measure` to decrease before
234
- applying a claim as an induction hypothesis replaces the coinductive argument
235
- requiring that progress is made before applying a circularity.
233
+ The well-founded induction argument, which requires the `measure` to decrease before
234
+ applying a claim as an induction hypothesis, will replace the coinductive argument,
235
+ which requires that progress is made before applying a circularity.
236
236
237
237
## Proposal of syntax changes
238
238
239
239
- claims need to mention the other claims (including themselves) which are
240
240
needed to complete their proof; this induces a dependency relation
241
241
- claims which are part of a dependency cycle (including self-dependencies)
242
242
would need to be specified together as a "claim group"
243
- - a claim group would need to provide a metric on their input variables, which
244
- would be used as part of the decreasingness guard whenever one tries to apply
245
- a claim from the group during the proof of one the claims in the group
243
+ - a claim group would need to provide a metric on their input variables;
244
+ this metric must decrease whenever one tries to apply a claim from the group
245
+ while proving a claim from the same group
246
246
247
247
A claim group would be something like
248
248
```
@@ -267,12 +267,13 @@ variables would need to be implemented.
267
267
268
268
## Approach
269
269
270
- For the algorithms derived by the present approach, please see next section.
270
+ For the algorithms derived from the present approach, please check the next section.
271
271
272
272
Assume we want to prove a group of claims defined over the same set of variables
273
- `x`. Further assume that all claims not in group on which these claims depend
274
- have already been proven. Assume also a given integer pattern `measure(x)`,
275
- over the same variables as the claims in the group.
273
+ `x`. Further assume that all other claims (which are not in the current group)
274
+ on which these claims depend have already been proven.
275
+ Assume also a given integer pattern `measure(x)`, over the same variables as
276
+ the claims in the group.
276
277
277
278
Since we're proving all claims together, we can gather them in a single goal,
278
279
`P(x) ::= (φ₁(x) → AF ∃z.ψ₁(x,z)) ∧ ... ∧ (φₙ(x) → AF ∃z.ψₙ(x,z))`.
@@ -322,7 +323,8 @@ allows their term part `t` to be undefined.
322
323
323
324
_Extended constructor patterns_ will be those extended function-like patterns
324
325
for which `t` is a functional term, composed out of constructor-like symbols
325
- and variables.
326
+ and variables. This definition can be extended to include AC constructors, e.g.
327
+ map concatenation
326
328
327
329
328
330
__Note:__
0 commit comments