Skip to content

PhaseII verified: Temporal logic and state machines - #213

Merged
rikosellic merged 80 commits into
asterinas:phaseII/verifiedfrom
rikosellic:mutexspec
Dec 5, 2025
Merged

PhaseII verified: Temporal logic and state machines#213
rikosellic merged 80 commits into
asterinas:phaseII/verifiedfrom
rikosellic:mutexspec

Conversation

@rikosellic

Copy link
Copy Markdown
Collaborator

No description provided.

@rikosellic rikosellic changed the title PhaseII verified: sync/mutex PhaseII verified: Temporal logic and state machines Nov 10, 2025
@rikosellic

rikosellic commented Nov 10, 2025

Copy link
Copy Markdown
Collaborator Author

This is the first step of the effort to verify data structures in sync. VerusSync shows several limitations, so a new framework is required. Currently, I'm migrating temporal logic and state machine definitions from Anvil to see to what extent we can formally verify liveness properties of our TLA state machines. Connecting the state machine to Rust code is the next step.

This is orthogonal to the verification in mm.

@rikosellic
rikosellic marked this pull request as ready for review December 5, 2025 03:29
@rikosellic

Copy link
Copy Markdown
Collaborator Author

I managed to prove the dead_and_alive_lock_free property of the abstract_lock defined in TLA+, which shows this approach is promising. I think it can be merged now. The later verification work of sync will be split into two parts. One starts from the spec and focuses on more liveness proofs, and the other starts from the executable code and focuses on the minimal safety requirement of exclusiveness. Let's see where they can be merged in the future.

@rikosellic
rikosellic merged commit ec299db into asterinas:phaseII/verified Dec 5, 2025
1 check passed
@rikosellic
rikosellic deleted the mutexspec branch December 5, 2025 07:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI-assist AI-aided proof or generation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants