Skip to content

Commit e52ae50

Browse files
committed
Added some guidance on how to read the proof.
1 parent 1eb83cd commit e52ae50

File tree

1 file changed

+10
-0
lines changed
  • Test/VeriFast/tasks/vTaskSwitchContext

1 file changed

+10
-0
lines changed

Test/VeriFast/tasks/vTaskSwitchContext/README.md

+10
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,16 @@ Both scripts expect the command line arguments explained below.
198198
- \<FONT_SIZE\> is an optional argument specifying the IDE's font size.
199199

200200

201+
# Reading the Proof
202+
The most important parts that we have to understand in order to understand what the proof are the following, in this order:
203+
- The locking discipline, cf. `proof/port_locking_contracts.h`
204+
- The lock invariants, cf. `proof/lock_predicates.h`. The invariants use the ready list and task predicates defined in `proof/ready_list_predicates.h` and `task_predicates.h`.
205+
- The contracts for the functions we verified, i.e., `vTaskSwitchContext` and `prvSelectHighestPriorityTask`, cf. `src/tasks.c`.
206+
We propose to first skim the files mentioned above, in the provided order to get an overview of how the proof is structured.
207+
208+
209+
210+
201211
# Maintaining the Proof
202212
This directory contains annotated copies of FreeRTOS source and header files.
203213
The annotations in these files tell VeriFast which functions it should verify and what the proof looks like.

0 commit comments

Comments
 (0)