@@ -93,24 +93,31 @@ pub open spec fn exchanges_nondeterministic<K, V, P: Protocol<K, V>>(
9393 #![ all_triggers]
9494 P :: rel( P :: op( p1, q) , t1) ==> exists|p2: P , s2: IMap <K , V >, t2: IMap <K , V >|
9595 #![ all_triggers]
96- new_values. contains( ( p2, s2) ) && P :: rel( P :: op( p2, q) , t2) && t1. dom( ) . disjoint( s1. dom( ) )
97- && t2. dom( ) . disjoint( s2. dom( ) ) && t1. union_prefer_right( s1)
98- =~= t2. union_prefer_right( s2)
96+ {
97+ &&& new_values. contains( ( p2, s2) )
98+ &&& P :: rel( P :: op( p2, q) , t2)
99+ &&& t1. dom( ) . disjoint( s1. dom( ) )
100+ &&& t2. dom( ) . disjoint( s2. dom( ) )
101+ &&& t1. union_prefer_right( s1) =~= t2. union_prefer_right( s2)
102+ }
99103}
100104
101105pub open spec fn deposits<K , V , P : Protocol <K , V >>( p1: P , b1: IMap <K , V >, p2: P ) -> bool {
102106 forall|q: P , t1: IMap <K , V >|
103107 #![ all_triggers]
104- P :: rel( P :: op( p1, q) , t1) ==> P :: rel( P :: op( p2, q) , t1. union_prefer_right( b1) )
105- && t1. dom( ) . disjoint( b1. dom( ) )
108+ P :: rel( P :: op( p1, q) , t1) ==> {
109+ &&& P :: rel( P :: op( p2, q) , t1. union_prefer_right( b1) )
110+ &&& t1. dom( ) . disjoint( b1. dom( ) )
111+ }
106112}
107113
108114pub open spec fn withdraws<K , V , P : Protocol <K , V >>( p1: P , p2: P , b2: IMap <K , V >) -> bool {
109115 forall|q: P , t1: IMap <K , V >|
110116 #![ all_triggers]
111- P :: rel( P :: op( p1, q) , t1) ==> P :: rel( P :: op( p2, q) , t1. remove_keys( b2. dom( ) ) ) && b2. submap_of(
112- t1,
113- )
117+ P :: rel( P :: op( p1, q) , t1) ==> {
118+ &&& P :: rel( P :: op( p2, q) , t1. remove_keys( b2. dom( ) ) )
119+ &&& b2. submap_of( t1)
120+ }
114121}
115122
116123pub open spec fn updates<K , V , P : Protocol <K , V >>( p1: P , p2: P ) -> bool {
0 commit comments