FreeRTOS-Kernel/Test/VeriFast/tasks/vTaskSwitchContext/proof
2022-12-29 15:00:42 -05:00
..
single_core_proofs Removed deprecated TODOs. 2022-12-28 12:33:02 -05:00
single_core_proofs_extended Handled minor TODOs in proof headers. 2022-12-28 10:40:32 -05:00
lock_predicates.h Deleted comments. 2022-12-29 15:00:42 -05:00
port_contracts.h Handled minor TODOs in proof headers. 2022-12-28 10:40:32 -05:00
README.md Deleted comments. 2022-12-29 15:00:42 -05:00
ready_list_predicates.h Deleted comments. 2022-12-29 15:00:42 -05:00
stack_predicates.h Renamed predicate stack_p_2 into stack_p 2022-12-13 10:57:41 -05:00
task_predicates.h Added documentation of the locking discipline and renamed some predicates. 2022-12-28 13:11:55 -05:00
task_running_states.h Renamed proof headers. Removed "verifast" prefix where unnecessary. 2022-12-28 10:12:08 -05:00
verifast_lists_extended.h Deleted unnecessary list axioms. 2022-12-28 10:47:33 -05:00

This directory contains the bulk of VeriFast formalizations and proofs.

Directory Structure

├── lock_predicates.h
│   Contains the formalization of the lock invariants, i.e., the invariants
│   associated with: Masking interrupts, the task lock and the ISR lock.
│   This file also contains the lemmas to prove that the task state updates
│   in `prvSelectHighestPriorityTask` preserve the lock invariants.
│
├── port_contracts.h
│   Contains VeriFast function contracts for macros with port-specific
│   definitions, e.g., the macros to mask interrupts and to acquire AND
│   release locks. These port-specific definitions often contain contain
│   inline assembly VeriFast cannot reason about. The contracts allow us
│   to abstract the semantics of the assembly.
│
├── ready_list_predicates.h
│   Contains the predicates describing the ready lists as well as lemmas to
│   reason about ready lists.
│
├── stack_predicates.h
│   Contains the formalization of the stack layout used in the RP2040 port.
│
├── task_predicates.h
│   Contains predicates describing task control blocks.
│
├── task_running_states.h
│   `tasks.c` defines macros that are used to denote task run states.
│   The proof headers in this directory cannot refer to these macros.
│   This header contains auxiliary definitions used to expose the run state
│   macros to the proof headers.
│
├── verifast_lists_extended.h
│   Contains list axioms and lemmas that would naturally fit into VeriFast's
│   standard list library `listex.gh`.
│   
├── README.md
│
├── single_core_proofs
│   Contains the old list formalization and proofs written by
│   Aalok Thakkar and Nathan Chong in 2020 for the single-core
│   setup.
│   │
│   ├── scp_common.h
│   │   Contains auxiliary definitions and lemmas.
│   │
│   └── scp_list_predicates.h
│       Contains the formalizaton of doubly linked lists and list items.
│
└── single_core_proofs_extended
    Contains new proofs extending the single-core list
    formalization.