Skip to content

Commit 6a987d6

Browse files
committed
[documentation]: document seq tactic
1 parent 931c6f9 commit 6a987d6

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

doc/tactics/seq.rst

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
========================================================================
2+
Tactic: ``seq```
3+
========================================================================
4+
5+
The ``seq`` tactic applies to program-logic goals by splitting the
6+
program(s) under consideration into two consecutive parts.
7+
8+
Applying ``seq`` allows one to decompose such a goal into two separate
9+
program-logic obligations by splitting the program(s) at a chosen point.
10+
The first obligation establishes that the initial precondition ensures
11+
some intermediate assertion after execution of the first part. The second
12+
obligation then shows that, assuming this intermediate assertion, execution
13+
of the second part entails the desired postcondition.
14+
15+
The ``seq`` tactic requires the intermediate assertion to be supplied by
16+
the user, it is not inferred automatically.
17+
18+
------------------------------------------------------------------------
19+
Variant: ``seq {codepos} : {formula}`` (HL)
20+
------------------------------------------------------------------------
21+
22+
------------------------------------------------------------------------
23+
Variant: ``seq {codepos} {codepos} : {formula}`` (pRHL)
24+
------------------------------------------------------------------------
25+
26+
------------------------------------------------------------------------
27+
Variant: ``seq`` (pHL)
28+
------------------------------------------------------------------------
29+
30+
------------------------------------------------------------------------
31+
Variant: ``seq {codepos} : {formula}`` (eHL)
32+
------------------------------------------------------------------------

0 commit comments

Comments
 (0)