Repository navigation
Conversation
CI summary (Details)Active Repos
|
| Repo | Job Branch | Job Commit |
|---|---|---|
| ./ | main | db1581e |
| fmdeps/BRiCk/ | main | e819c36 |
| fmdeps/auto/ | main | bc4c71e |
| fmdeps/auto-docs/ | main | 6490c5f |
| bluerock/NOVA/ | skylabs-proof | f3533d2 |
| bluerock/bhv/ | skylabs-main | e37df58 |
| fmdeps/ci/ | main | e1ec839 |
| vendored/elpi/ | skylabs-master | c0b9653 |
| vendored/flocq/ | skylabs-master | cf9cc84 |
| vendored/rocq/ | skylabs-master | bef7df5 |
| fmdeps/rocq-agent-toolkit/ | main | 227bb83 |
| vendored/rocq-elpi/ | skylabs-master | 7dee592 |
| vendored/rocq-equations/ | skylabs-main | 9cf8471 |
| vendored/rocq-iris/ | skylabs-master | a7af9f7 |
| vendored/rocq-lsp/ | skylabs-main | 64ef78a |
| vendored/rocq-stdlib/ | skylabs-master | 00897b3 |
| vendored/rocq-stdpp/ | skylabs-master | 0c5e505 |
| fmdeps/skylabs-fm/ | main | 5c3d0ab |
| vendored/vsrocq/ | skylabs-main | ee79e7a |
Changes in Warnings or Errors
| Before | New | Fixed | After | |
|---|---|---|---|---|
| Errors | 0 | 0 | 7 | |
| Warnings | 91 | 91 |
Performance
| Relative | Master | MR | Change | Filename |
|---|---|---|---|---|
| +0.96% | 198198.0 | 200098.2 | +1900.2 | total |
| -0.52% | 1048.1 | - | -1048.1 | ├ disappeared files (13) |
| +1.46% | - | 2936.7 | +2936.7 | ├ newly appeared files (10) |
| +0.01% | 197149.8 | 197161.5 | +11.7 | └ common files |
| -0.00% | 53108.6 | 53108.4 | -0.2 | ├ translation units |
| +0.01% | 144041.3 | 144053.2 | +11.9 | └ proofs and tests |
Full Results
| Relative | Master | MR | Change | Filename |
|---|---|---|---|---|
| +41.01% | 31.2 | 44.0 | +12.8 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/spec/mutex.v |
| +0.96% | 198198.0 | 200098.2 | +1900.2 | total |
| -0.52% | 1048.1 | - | -1048.1 | ├ disappeared files (13) |
| +1.46% | - | 2936.7 | +2936.7 | ├ newly appeared files (10) |
| +0.01% | 197149.8 | 197161.5 | +11.7 | └ common files |
| -0.00% | 53108.6 | 53108.4 | -0.2 | ├ translation units |
| +0.01% | 144041.3 | 144053.2 | +11.9 | └ proofs and tests |
e4cbb0f to
250308e
Compare
| (mp : ptr * mutex.gname * Qp * Qp) (q : cQp.t) (P : mpred) : Rep := | ||
| structR "std::lock_guard<std::mutex>" q ** | ||
| let '(mp, g, q') := mp in | ||
| let '(mp, g, q', _) := mp in |
There was a problem hiding this comment.
Why are we adding a fraction that we're throwing away.
There was a problem hiding this comment.
It is a mistake and I'll delete it.
CI summary (Details)Active Repos
|
| Repo | Job Branch | Job Commit |
|---|---|---|
| ./ | main | db1581e |
| fmdeps/BRiCk/ | main | e819c36 |
| fmdeps/auto/ | main | 0d2d68d |
| fmdeps/auto-docs/ | main | 6490c5f |
| bluerock/NOVA/ | skylabs-proof | f3533d2 |
| bluerock/bhv/ | skylabs-main | e37df58 |
| fmdeps/ci/ | main | e1ec839 |
| vendored/elpi/ | skylabs-master | c0b9653 |
| vendored/flocq/ | skylabs-master | cf9cc84 |
| vendored/rocq/ | skylabs-master | bef7df5 |
| fmdeps/rocq-agent-toolkit/ | main | 227bb83 |
| vendored/rocq-elpi/ | skylabs-master | 7dee592 |
| vendored/rocq-equations/ | skylabs-main | 9cf8471 |
| vendored/rocq-iris/ | skylabs-master | a7af9f7 |
| vendored/rocq-lsp/ | skylabs-main | 64ef78a |
| vendored/rocq-stdlib/ | skylabs-master | 00897b3 |
| vendored/rocq-stdpp/ | skylabs-master | 0c5e505 |
| fmdeps/skylabs-fm/ | main | 5c3d0ab |
| vendored/vsrocq/ | skylabs-main | ee79e7a |
Changes in Warnings or Errors
| Before | New | Fixed | After | |
|---|---|---|---|---|
| Errors | 0 | 0 | 7 | |
| Warnings | 91 | 91 |
Performance
| Relative | Master | MR | Change | Filename |
|---|---|---|---|---|
| +0.96% | 198220.5 | 200120.6 | +1900.1 | total |
| -0.52% | 1048.2 | - | -1048.2 | ├ disappeared files (13) |
| +1.46% | - | 2936.7 | +2936.7 | ├ newly appeared files (10) |
| +0.01% | 197172.3 | 197183.9 | +11.7 | └ common files |
| -0.00% | 53108.6 | 53108.4 | -0.2 | ├ translation units |
| +0.01% | 144063.7 | 144075.6 | +11.9 | └ proofs and tests |
Full Results
| Relative | Master | MR | Change | Filename |
|---|---|---|---|---|
| -1.95% | 51.3 | 50.3 | -1.0 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/proof/unique_lock_recursive_mutex.v |
| +41.01% | 31.2 | 44.0 | +12.8 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/spec/mutex.v |
| +0.96% | 198220.5 | 200120.6 | +1900.1 | total |
| -0.52% | 1048.2 | - | -1048.2 | ├ disappeared files (13) |
| +1.46% | - | 2936.7 | +2936.7 | ├ newly appeared files (10) |
| +0.01% | 197172.3 | 197183.9 | +11.7 | └ common files |
| -0.00% | 53108.6 | 53108.4 | -0.2 | ├ translation units |
| +0.01% | 144063.7 | 144075.6 | +11.9 | └ proofs and tests |
| (** Specialize the reusable specs to the standard mutex representation and | ||
| bind them to their C++ names. *) | ||
| Module StdMutex (Preds : MUTEX_PREDS with Definition cpp_ty := "std::mutex"%cpp_type). | ||
| Include Preds. |
There was a problem hiding this comment.
Worth a closer look.
There was a problem hiding this comment.
The idea with MUTEX_PREDS is that, since multiple mutex specs depend on the same locked/not_locked etc, by wrapping them up in a module, we enforce the specs use the same locked .
So the mutex_spec module plus the MUTEX_PREDS module type is the complete mutex interface, and programs that use mutexes only need to import them (specs in mutex_spec and rules in MUTEX_PREDS).
A mutex implementation (i.e., custom_mutex_hpp_proof.v) is then a proof that the program meets specs in mutex_spec, with a specific MUTEX_PREDS instance.
| Include Preds. | ||
| #[global] Hint Opaque token not_locked locked R : sl_opacity. | ||
|
|
||
| Module Spec := mutex_spec Preds. |
There was a problem hiding this comment.
Worth a closer look.
| try_lock_lockable cpp_ty (fun q gP => R gP.1 q gP.2). | ||
|
|
||
| Lemma try_lock_spec_equiv_try_lock_spec_alt | ||
| (Htry_lock : requirements.do_try_lock cpp_ty = do_try_lock) this xs K : |
There was a problem hiding this comment.
Htry_lock seems odd — this should just be unfolding mutex_lockable?
| #[global] Declare Instance wp_fptr_objective (f : ptr) (Q : mpred) | ||
| `{!WeaklyObjective Q} : | ||
| ObjectiveWith threadTI | ||
| (wp_fptr (σ.(genv_tu).(types)) entry_type f [] (fun _ => Q)). |
| Definition entry_type : type := Tfunction (FunctionType Tvoid []). | ||
|
|
||
| #[global] Declare Instance wp_fptr_objective (f : ptr) (Q : mpred) | ||
| `{!WeaklyObjective Q} : |
There was a problem hiding this comment.
I'd guess nothing consumes this, or I'm curious where.
Also figure out the mix of WeaklyObjective and ObjectiveWith.
| \pre{Q : mpred} [| WeaklyObjective Q |] | ||
| \pre | ||
| (∀ child, | ||
| (MutexSets.my_mutexes γ child (coPset.CoPset ⊤) -* |
There was a problem hiding this comment.
Here we bundle a specific ghost update, but we agreed we could abstract over a fancy update of the right shape instead.
|
|
||
| *) | ||
| (** FIXME don't need StdAtomicSpecs *) | ||
| Module StdAtomicSpecs := RecursiveMutexAtomicSpecs StdRecursiveMutexName. |
There was a problem hiding this comment.
Nit: StdAtomicSpecs should be the name for std::atomic specs
|
Updated recursive_mutex specs to use my_mutexes as well. brick-libcpp/rocq-brick-libstdcpp/proof/mutex/spec/recursive_mutex.v Lines 101 to 128 in 150e85a
The specs are now: brick-libcpp/rocq-brick-libstdcpp/proof/mutex/spec/recursive_mutex.v Lines 171 to 195 in 150e85a |
|
Added a client of mutexes and its proof which is supposed to show that Similar to the recursive mutex, the register rule brick-libcpp/rocq-brick-libstdcpp/test/mutex/transfer_with_mutex_cpp_proof.v Lines 121 to 124 in 150e85a allows a thread to turn a fraction of the data structure rep accountR and its my_mutexes to some user handle account_acquireableR, which can then be used with C::call(). (see spec)
|
…d transfer_with_mutex.cpp
… an instance mutex_set_G, following the invariant_name pattern in wsat.v in iris
…proof; require mutex namespace to not be [nroot]
…ow use the same ghost state to track the owner thread and how much [token] it deposits
25cd4f6 to
19ace83
Compare
CI summary (Details)Active Repos
|
| Repo | Job Branch | Job Commit |
|---|---|---|
| ./ | main | 9537067 |
| fmdeps/BRiCk/ | main | 072037a |
| fmdeps/auto/ | main | a2ac8f7 |
| fmdeps/auto-docs/ | main | 918aa33 |
| bluerock/NOVA/ | skylabs-proof | 02f6828 |
| bluerock/bhv/ | skylabs-main | b5a9d07 |
| fmdeps/brick-libgtest/ | main | 495b855 |
| fmdeps/ci/ | main | b480641 |
| vendored/elpi/ | skylabs-master | c0b9653 |
| vendored/flocq/ | skylabs-master | cf9cc84 |
| vendored/rocq/ | skylabs-master | 7c6eef8 |
| fmdeps/rocq-agent-toolkit/ | main | 53fde9a |
| vendored/rocq-elpi/ | skylabs-master | 7dee592 |
| vendored/rocq-equations/ | skylabs-main | 9cf8471 |
| vendored/rocq-iris/ | skylabs-master | 285745a |
| vendored/rocq-stdlib/ | skylabs-master | 00897b3 |
| vendored/rocq-stdpp/ | skylabs-master | ba29dba |
| fmdeps/skylabs-fm/ | main | d2bc589 |
| vendored/vsrocq/ | skylabs-main | 03db19e |
Changes in Warnings or Errors
| Before | New | Fixed | After | |
|---|---|---|---|---|
| Errors | 0 | 0 | 4 | |
| Warnings | 75 | 74 |
Performance
| Relative | Master | MR | Change | Filename |
|---|---|---|---|---|
| +0.49% | 198895.8 | 199868.9 | +973.2 | total |
| -0.60% | 1202.7 | - | -1202.7 | ├ disappeared files (10) |
| +1.08% | - | 2161.8 | +2161.8 | ├ newly appeared files (10) |
| +0.01% | 197693.0 | 197707.1 | +14.1 | └ common files |
| +0.01% | 49587.4 | 49590.0 | +2.6 | ├ translation units |
| +0.01% | 148105.6 | 148117.1 | +11.5 | └ proofs and tests |
Full Results
| Relative | Master | MR | Change | Filename |
|---|---|---|---|---|
| -15.18% | 16.9 | 14.3 | -2.6 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/spec/scoped_lock.v |
| -14.72% | 26.4 | 22.5 | -3.9 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/spec/lock_guard.v |
| -0.22% | 601.2 | 599.9 | -1.3 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/test/mutex/custom_recursive_mutex_hpp.v |
| +1.80% | 169.2 | 172.2 | +3.0 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/inc_hpp.v |
| +1.86% | 143.5 | 146.1 | +2.7 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/inc_hpp_templates.v |
| +2.27% | 48.2 | 49.3 | +1.1 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/proof/unique_lock.v |
| +8.48% | 31.2 | 33.9 | +2.6 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/shared_mutex/shared_mutex.v |
| +15.16% | 29.0 | 33.4 | +4.4 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/spec/mutex.v |
| +30.98% | 22.5 | 29.5 | +7.0 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/test/shared_mutex/test_cpp_proof.v |
| +0.49% | 198895.8 | 199868.9 | +973.2 | total |
| -0.60% | 1202.7 | - | -1202.7 | ├ disappeared files (10) |
| +1.08% | - | 2161.8 | +2161.8 | ├ newly appeared files (10) |
| +0.01% | 197693.0 | 197707.1 | +14.1 | └ common files |
| +0.01% | 49587.4 | 49590.0 | +2.6 | ├ translation units |
| +0.01% | 148105.6 | 148117.1 | +11.5 | └ proofs and tests |
19ace83 to
6f962c9
Compare
CI summary (Details)Active Repos
|
| Repo | Job Branch | Job Commit |
|---|---|---|
| ./ | main | 9537067 |
| fmdeps/BRiCk/ | main | 072037a |
| fmdeps/auto/ | main | a2ac8f7 |
| fmdeps/auto-docs/ | main | 918aa33 |
| bluerock/NOVA/ | skylabs-proof | 02f6828 |
| bluerock/bhv/ | skylabs-main | b5a9d07 |
| fmdeps/brick-libgtest/ | main | 495b855 |
| fmdeps/ci/ | main | b480641 |
| vendored/elpi/ | skylabs-master | c0b9653 |
| vendored/flocq/ | skylabs-master | cf9cc84 |
| vendored/rocq/ | skylabs-master | 7c6eef8 |
| fmdeps/rocq-agent-toolkit/ | main | 53fde9a |
| vendored/rocq-elpi/ | skylabs-master | 7dee592 |
| vendored/rocq-equations/ | skylabs-main | 9cf8471 |
| vendored/rocq-iris/ | skylabs-master | 285745a |
| vendored/rocq-stdlib/ | skylabs-master | 00897b3 |
| vendored/rocq-stdpp/ | skylabs-master | ba29dba |
| fmdeps/skylabs-fm/ | main | d2bc589 |
| vendored/vsrocq/ | skylabs-main | 03db19e |
Changes in Warnings or Errors
| Before | New | Fixed | After | |
|---|---|---|---|---|
| Errors | 0 | 0 | 0 | 0 |
| Warnings | 75 | 79 |
Performance
| Relative | Master | MR | Change | Filename |
|---|---|---|---|---|
| +1.54% | 198895.7 | 201963.4 | +3067.7 | total |
| +1.35% | - | 2733.8 | +2733.8 | ├ newly appeared files (14) |
| +0.17% | 198895.7 | 199229.6 | +333.9 | └ common files |
| +0.01% | 49587.4 | 49590.0 | +2.6 | ├ translation units |
| +0.22% | 149308.3 | 149639.6 | +331.3 | └ proofs and tests |
Full Results
| Relative | Master | MR | Change | Filename |
|---|---|---|---|---|
| -49.42% | 64.0 | 32.4 | -31.6 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/spec/recursive_mutex.v |
| -15.18% | 16.9 | 14.3 | -2.6 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/spec/scoped_lock.v |
| -14.72% | 26.4 | 22.5 | -3.9 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/spec/lock_guard.v |
| -0.22% | 601.2 | 599.9 | -1.3 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/test/mutex/custom_recursive_mutex_hpp.v |
| +1.80% | 169.2 | 172.2 | +3.0 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/inc_hpp.v |
| +1.86% | 143.5 | 146.1 | +2.7 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/inc_hpp_templates.v |
| +2.27% | 48.2 | 49.3 | +1.1 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/proof/unique_lock.v |
| +3.05% | 62.4 | 64.3 | +1.9 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/demo_cpp_proof.v |
| +7.63% | 145.9 | 157.0 | +11.1 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/test/mutex/test_cpp_proof.v |
| +8.48% | 31.2 | 33.9 | +2.6 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/shared_mutex/shared_mutex.v |
| +15.16% | 29.0 | 33.4 | +4.4 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/spec/mutex.v |
| +30.98% | 22.5 | 29.5 | +7.0 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/test/shared_mutex/test_cpp_proof.v |
| +690.41% | 23.7 | 187.7 | +163.9 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/proof/lock_guard.v |
| +1464.79% | 11.9 | 185.5 | +173.7 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/test/mutex/custom_recursive_mutex_hpp_proof.v |
| +1.54% | 198895.7 | 201963.4 | +3067.7 | total |
| +1.35% | - | 2733.8 | +2733.8 | ├ newly appeared files (14) |
| +0.17% | 198895.7 | 199229.6 | +333.9 | └ common files |
| +0.01% | 49587.4 | 49590.0 | +2.6 | ├ translation units |
| +0.22% | 149308.3 | 149639.6 | +331.3 | └ proofs and tests |
Written by Codex. Add prominent per-file adaptation notices while preserving the upstream LLVM license headers and source provenance.
Written by Codex. Make id_hash a C++17 inline variable and guard the entire header. Add a Dune runtest regression that includes the header twice, links two translation units, checks the shared sentinel address, and exercises recursive locking.
Written by Codex. Document that the standard Hash requirements allow collisions and that owner discrimination requires a target-specific injectivity argument, including the default thread ID, or a collision-free identity.
Written by Codex. Check the existing generic constructor contract with distinct lock and try_lock effects, and specialize its false-flag premises to the incorrect both-true postcondition. Add a native libstdc++ CountingMutex witness under Dune runtest and document the diagnostic scope and unresolved contract issue.
CI summary (Details)Active Repos
|
| Repo | Job Branch | Job Commit |
|---|---|---|
| ./ | main | 9537067 |
| fmdeps/BRiCk/ | main | f98bd89 |
| fmdeps/auto/ | main | c46a785 |
| fmdeps/auto-docs/ | main | 918aa33 |
| bluerock/NOVA/ | skylabs-proof | b6f875a |
| bluerock/bhv/ | skylabs-main | 8c30fef |
| fmdeps/brick-libgtest/ | main | 495b855 |
| fmdeps/ci/ | main | b480641 |
| vendored/elpi/ | skylabs-master | c0b9653 |
| vendored/flocq/ | skylabs-master | cf9cc84 |
| vendored/rocq/ | skylabs-master | 7c6eef8 |
| fmdeps/rocq-agent-toolkit/ | main | 53fde9a |
| vendored/rocq-elpi/ | skylabs-master | 7dee592 |
| vendored/rocq-equations/ | skylabs-main | 9cf8471 |
| vendored/rocq-iris/ | skylabs-master | 285745a |
| vendored/rocq-stdlib/ | skylabs-master | 00897b3 |
| vendored/rocq-stdpp/ | skylabs-master | ba29dba |
| fmdeps/skylabs-fm/ | main | d2bc589 |
| vendored/vsrocq/ | skylabs-main | 03db19e |
Changes in Warnings or Errors
| Before | New | Fixed | After | |
|---|---|---|---|---|
| Errors | 0 | 0 | 0 | 0 |
| Warnings | 75 | 79 |
Performance
| Relative | Master | MR | Change | Filename |
|---|---|---|---|---|
| +1.56% | 198049.8 | 201134.7 | +3085.0 | total |
| +1.37% | - | 2758.0 | +2758.0 | ├ newly appeared files (15) |
| +0.17% | 198049.8 | 198376.7 | +326.9 | └ common files |
| +0.01% | 49585.7 | 49588.6 | +2.8 | ├ translation units |
| +0.22% | 148464.0 | 148788.1 | +324.1 | └ proofs and tests |
Full Results
| Relative | Master | MR | Change | Filename |
|---|---|---|---|---|
| -49.07% | 63.3 | 32.2 | -31.1 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/spec/recursive_mutex.v |
| -14.49% | 16.7 | 14.3 | -2.4 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/spec/scoped_lock.v |
| -12.45% | 25.7 | 22.5 | -3.2 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/spec/lock_guard.v |
| -0.21% | 601.1 | 599.9 | -1.3 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/test/mutex/custom_recursive_mutex_hpp.v |
| +0.17% | 591.1 | 592.1 | +1.0 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/test/mutex/custom_mutex_hpp.v |
| +1.82% | 169.1 | 172.2 | +3.1 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/inc_hpp.v |
| +1.88% | 143.4 | 146.1 | +2.7 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/inc_hpp_templates.v |
| +2.19% | 47.5 | 48.5 | +1.0 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/proof/unique_lock.v |
| +3.12% | 62.0 | 63.9 | +1.9 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/demo_cpp_proof.v |
| +7.64% | 145.8 | 157.0 | +11.1 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/test/mutex/test_cpp_proof.v |
| +9.58% | 30.6 | 33.5 | +2.9 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/shared_mutex/shared_mutex.v |
| +16.38% | 28.3 | 32.9 | +4.6 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/spec/mutex.v |
| +31.01% | 22.5 | 29.5 | +7.0 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/test/shared_mutex/test_cpp_proof.v |
| +653.51% | 23.7 | 178.9 | +155.2 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/proof/mutex/proof/lock_guard.v |
| +1460.82% | 11.9 | 185.1 | +173.2 | fmdeps/brick-libcpp/rocq-brick-libstdcpp/test/mutex/custom_recursive_mutex_hpp_proof.v |
| +1.56% | 198049.8 | 201134.7 | +3085.0 | total |
| +1.37% | - | 2758.0 | +2758.0 | ├ newly appeared files (15) |
| +0.17% | 198049.8 | 198376.7 | +326.9 | └ common files |
| +0.01% | 49585.7 | 49588.6 | +2.8 | ├ translation units |
| +0.22% | 148464.0 | 148788.1 | +324.1 | └ proofs and tests |
Conflicts with #167; maybe easiest to cherry pick from #167 and then close #167 at this point.
Currently, only rocq-brick-libstdcpp/proof/mutex/spec/mutex.v and rocq-brick-libstdcpp/test/mutex/custom_mutex_hpp_proof.v compile.
There are so many commits, and it might be easier to review the diff of the two branches instead of reading the commits.
The changes mostly include these aspects:
not_lockedincludes points-to ofm_owner, and it needs to be exposed during verification.lock_ghost2.v, see comments in the file for how these modules work):my_mutexesfor making sure a thread only gets resource once from a mutex invariant before itunlocks.--
Fix #153, #174, #154.