diff --git a/2024-sosp-tutorial/exercises/advanced-rust-topics/exercise_01_memoize.rs b/2024-sosp-tutorial/exercises/advanced-rust-topics/exercise_01_memoize.rs index a9e25cc..6db45ba 100644 --- a/2024-sosp-tutorial/exercises/advanced-rust-topics/exercise_01_memoize.rs +++ b/2024-sosp-tutorial/exercises/advanced-rust-topics/exercise_01_memoize.rs @@ -109,7 +109,7 @@ fn todo() -> A // // 1. Make `Memoizer` generic over Args, Output, and the computation. // -// 2. The current locking scheme is very coarse-grained. Come up with (and implement) and more -// fine-grained scheme. +// 2. The current locking scheme is very coarse-grained. Come up with (and implement) a more +// fine-grained locking scheme to reduce thread contention. } diff --git a/2024-sosp-tutorial/exercises/advanced-rust-topics/solutions/solution_counting_to_2.rs b/2024-sosp-tutorial/exercises/advanced-rust-topics/solutions/solution_counting_to_2.rs index fcf2e89..e4ec206 100644 --- a/2024-sosp-tutorial/exercises/advanced-rust-topics/solutions/solution_counting_to_2.rs +++ b/2024-sosp-tutorial/exercises/advanced-rust-topics/solutions/solution_counting_to_2.rs @@ -137,17 +137,17 @@ tokenized_state_machine!( #[inductive(tr_inc_a)] fn tr_inc_a_preserves_the_invariant(pre: Self, post: Self) { - /* proof here */ + /* You can leave this empty */ } #[inductive(tr_inc_b)] fn tr_inc_b_preserves_the_invariant(pre: Self, post: Self) { - /* proof here */ + /* You can leave this empty */ } #[inductive(initialize)] fn initial_state_satisfies_inv(post: Self) { - /* proof here */ + /* You can leave this empty */ } } ); diff --git a/2024-sosp-tutorial/exercises/advanced-rust-topics/solutions/solution_memoize.rs b/2024-sosp-tutorial/exercises/advanced-rust-topics/solutions/solution_memoize.rs index 9be520a..60ecdcf 100644 --- a/2024-sosp-tutorial/exercises/advanced-rust-topics/solutions/solution_memoize.rs +++ b/2024-sosp-tutorial/exercises/advanced-rust-topics/solutions/solution_memoize.rs @@ -11,6 +11,7 @@ use vstd::rwlock::{RwLock, RwLockPredicate}; use vstd::hash_map::HashMapWithView; use std::sync::Arc; +#[path = "../memoization_exercise_internals.rs"] mod memoization_exercise_internals; verus!{ @@ -123,7 +124,7 @@ fn todo() -> A // // 1. Make `Memoizer` generic over Args, Output, and the computation. // -// 2. The current locking scheme is very coarse-grained. Come up with (and implement) and more -// fine-grained scheme. +// 2. The current locking scheme is very coarse-grained. Come up with (and implement) a more +// fine-grained locking scheme to reduce thread contention. }