@@ -119,6 +119,68 @@ val impl_u16__from_be_bytes: t_Array u8 (sz 2) -> u16
119119val impl_u8__from_be_bytes : t_Array u8 ( sz 1 ) -> u8
120120val impl_usize__from_be_bytes : t_Array u8 ( sz 8 ) -> usize
121121
122+ val impl_u8__trailing_zeros : u8 -> shiftval U8 U32
123+ val impl_u16__trailing_zeros : u16 -> shiftval U16 U32
124+ val impl_u32__trailing_zeros : u32 -> shiftval U32 U32
125+ val impl_u64__trailing_zeros : u64 -> shiftval U64 U32
126+ val impl_u128__trailing_zeros : u128 -> shiftval U128 U32
127+ val impl_usize__trailing_zeros : usize -> shiftval USIZE U32
128+
129+ val shift_right_trailing_zeros_nonzero_lemma_u8 ( a : u8 ) :
130+ Lemma ( requires ( v a <> 0 ))
131+ ( ensures ( v ( shift_right a ( impl_u8__trailing_zeros a )) <> 0 ))
132+ [ SMTPat ( shift_right a ( impl_u8__trailing_zeros a ))]
133+
134+ val shift_right_trailing_zeros_nonzero_lemma_u16 ( a : u16 ) :
135+ Lemma ( requires ( v a <> 0 ))
136+ ( ensures ( v ( shift_right a ( impl_u16__trailing_zeros a )) <> 0 ))
137+ [ SMTPat ( shift_right a ( impl_u16__trailing_zeros a ))]
138+
139+ val shift_right_trailing_zeros_nonzero_lemma_u32 ( a : u32 ) :
140+ Lemma ( requires ( v a <> 0 ))
141+ ( ensures ( v ( shift_right a ( impl_u32__trailing_zeros a )) <> 0 ))
142+ [ SMTPat ( shift_right a ( impl_u32__trailing_zeros a ))]
143+
144+ val shift_right_trailing_zeros_nonzero_lemma_u64 ( a : u64 ) :
145+ Lemma ( requires ( v a <> 0 ))
146+ ( ensures ( v ( shift_right a ( impl_u64__trailing_zeros a )) <> 0 ))
147+ [ SMTPat ( shift_right a ( impl_u64__trailing_zeros a ))]
148+
149+ val shift_right_trailing_zeros_nonzero_lemma_u128 ( a : u128 ) :
150+ Lemma ( requires ( v a <> 0 ))
151+ ( ensures ( v ( shift_right a ( impl_u128__trailing_zeros a )) <> 0 ))
152+ [ SMTPat ( shift_right a ( impl_u128__trailing_zeros a ))]
153+
154+ val shift_right_trailing_zeros_nonzero_lemma_usize ( a : usize ) :
155+ Lemma ( requires ( v a <> 0 ))
156+ ( ensures ( v ( shift_right a ( impl_usize__trailing_zeros a )) <> 0 ))
157+ [ SMTPat ( shift_right a ( impl_usize__trailing_zeros a ))]
158+
159+ val shift_right_trailing_zeros_le_lemma_u8 ( a : u8 ) :
160+ Lemma ( v ( shift_right a ( impl_u8__trailing_zeros a )) <= v a )
161+ [ SMTPat ( shift_right a ( impl_u8__trailing_zeros a ))]
162+
163+ val shift_right_trailing_zeros_le_lemma_u16 ( a : u16 ) :
164+ Lemma ( v ( shift_right a ( impl_u16__trailing_zeros a )) <= v a )
165+ [ SMTPat ( shift_right a ( impl_u16__trailing_zeros a ))]
166+
167+ val shift_right_trailing_zeros_le_lemma_u32 ( a : u32 ) :
168+ Lemma ( v ( shift_right a ( impl_u32__trailing_zeros a )) <= v a )
169+ [ SMTPat ( shift_right a ( impl_u32__trailing_zeros a ))]
170+
171+ val shift_right_trailing_zeros_le_lemma_u64 ( a : u64 ) :
172+ Lemma ( v ( shift_right a ( impl_u64__trailing_zeros a )) <= v a )
173+ [ SMTPat ( shift_right a ( impl_u64__trailing_zeros a ))]
174+
175+ val shift_right_trailing_zeros_le_lemma_u128 ( a : u128 ) :
176+ Lemma ( v ( shift_right a ( impl_u128__trailing_zeros a )) <= v a )
177+ [ SMTPat ( shift_right a ( impl_u128__trailing_zeros a ))]
178+
179+ val shift_right_trailing_zeros_le_lemma_usize ( a : usize ) :
180+ Lemma ( v ( shift_right a ( impl_usize__trailing_zeros a )) <= v a )
181+ [ SMTPat ( shift_right a ( impl_usize__trailing_zeros a ))]
182+
183+
122184let impl_i8__abs ( a : i8 { minint i8_inttype < v a }) : i8 = abs_int a
123185let impl_i16__abs ( a : i16 { minint i16_inttype < v a }) : i16 = abs_int a
124186let impl_i32__abs ( a : i32 { minint i32_inttype < v a }) : i32 = abs_int a
0 commit comments