File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -177,6 +177,23 @@ test_verify_one_file! {
177177 } => Err ( err) => assert_vir_error_msg( err, "index for &mut not supported" )
178178}
179179
180+ test_verify_one_file ! {
181+ #[ test] unsigned_wrapping_mul verus_code! {
182+ use vstd:: * ;
183+
184+ fn test( ) {
185+ let i = 255u16 . wrapping_mul( 253 ) ;
186+ assert( i == 64515 ) ;
187+
188+ let i = 256u16 . wrapping_mul( 256 ) ;
189+ assert( i == 0 ) ;
190+
191+ let i = 257u16 . wrapping_mul( 259 ) ;
192+ assert( i == 1027 ) ;
193+ }
194+ } => Ok ( ( ) )
195+ }
196+
180197test_verify_one_file ! {
181198 #[ test] signed_wrapping_mul verus_code! {
182199 use vstd:: * ;
Original file line number Diff line number Diff line change @@ -107,6 +107,10 @@ macro_rules! num_specs {
107107 }
108108 ) ;
109109
110+ #[ verifier:: allow_in_spec]
111+ pub assume_specification[ <$uN>:: wrapping_mul] ( x: $uN, y: $uN) -> $uN
112+ returns ( ( x as nat * y as nat) % $range as nat) as $uN;
113+
110114 #[ verifier:: allow_in_spec]
111115 pub assume_specification[ <$uN>:: checked_add] ( x: $uN, y: $uN) -> Option <$uN>
112116 returns (
You can’t perform that action at this time.
0 commit comments