@@ -38,6 +38,29 @@ let impl_i64__BITS: u32 = mk_int 64
38
38
let impl_i128__BITS : u32 = mk_int 128
39
39
40
40
41
+
42
+ let impl_u8__wrapping_add : u8 -> u8 -> u8 = add_mod
43
+ let impl_u16__wrapping_add : u16 -> u16 -> u16 = add_mod
44
+ let impl_u32__wrapping_add : u32 -> u32 -> u32 = add_mod
45
+ let impl_u64__wrapping_add : u64 -> u64 -> u64 = add_mod
46
+ let impl_u128__wrapping_add : u128 -> u128 -> u128 = add_mod
47
+ let impl_i8__wrapping_add : i8 -> i8 -> i8 = add_mod
48
+ let impl_i16__wrapping_add : i16 -> i16 -> i16 = add_mod
49
+ let impl_i32__wrapping_add : i32 -> i32 -> i32 = add_mod
50
+ let impl_i64__wrapping_add : i64 -> i64 -> i64 = add_mod
51
+ let impl_i128__wrapping_add : i128 -> i128 -> i128 = add_mod
52
+
53
+ let impl_u8__wrapping_sub : u8 -> u8 -> u8 = sub_mod
54
+ let impl_u16__wrapping_sub : u16 -> u16 -> u16 = sub_mod
55
+ let impl_u32__wrapping_sub : u32 -> u32 -> u32 = sub_mod
56
+ let impl_u64__wrapping_sub : u64 -> u64 -> u64 = sub_mod
57
+ let impl_u128__wrapping_sub : u128 -> u128 -> u128 = sub_mod
58
+ let impl_i8__wrapping_sub : i8 -> i8 -> i8 = sub_mod
59
+ let impl_i16__wrapping_sub : i16 -> i16 -> i16 = sub_mod
60
+ let impl_i32__wrapping_sub : i32 -> i32 -> i32 = sub_mod
61
+ let impl_i64__wrapping_sub : i64 -> i64 -> i64 = sub_mod
62
+ let impl_i128__wrapping_sub : i128 -> i128 -> i128 = sub_mod
63
+
41
64
let impl_u8__rem_euclid ( x : u8 ) ( y : u8 { v y <> 0 }): u8 = x %! y
42
65
let impl_u16__rem_euclid ( x : u16 ) ( y : u16 { v y <> 0 }): u16 = x %! y
43
66
let impl_u32__rem_euclid ( x : u32 ) ( y : u32 { v y <> 0 }): u32 = x %! y
@@ -51,23 +74,31 @@ let impl_i64__rem_euclid (x: i64) (y: i64 {v y <> 0}): i64 = x %! y
51
74
let impl_i128__rem_euclid ( x : i128 ) ( y : i128 { v y <> 0 }): i128 = x %! y
52
75
let impl_isize__rem_euclid ( x : isize ) ( y : isize { v y <> 0 }): isize = x %! y
53
76
54
- let impl_u8__wrapping_add : u8 -> u8 -> u8 = add_mod
55
- let impl_u8__wrapping_sub : u8 -> u8 -> u8 = sub_mod
56
- let impl_u16__wrapping_add : u16 -> u16 -> u16 = add_mod
77
+
78
+
79
+ let impl_u8__overflowing_mul : u8 -> u8 -> u8 * bool = mul_overflow
80
+ let impl_u16__overflowing_mul : u16 -> u16 -> u16 * bool = mul_overflow
81
+ let impl_u32__overflowing_mul : u32 -> u32 -> u32 * bool = mul_overflow
82
+ let impl_u64__overflowing_mul : u64 -> u64 -> u64 * bool = mul_overflow
83
+ let impl_u128__overflowing_mul : u128 -> u128 -> u128 * bool = mul_overflow
84
+ let impl_i8__overflowing_mul : i8 -> i8 -> i8 * bool = mul_overflow
85
+ let impl_i16__overflowing_mul : i16 -> i16 -> i16 * bool = mul_overflow
86
+ let impl_i32__overflowing_mul : i32 -> i32 -> i32 * bool = mul_overflow
87
+ let impl_i64__overflowing_mul : i64 -> i64 -> i64 * bool = mul_overflow
88
+ let impl_i128__overflowing_mul : i128 -> i128 -> i128 * bool = mul_overflow
89
+
57
90
val impl_u16__to_be_bytes : u16 -> t_Array u8 ( sz 2 )
58
91
val impl_u16__from_be_bytes : t_Array u8 ( sz 2 ) -> u16
59
92
60
- let impl_i32__wrapping_add : i32 -> i32 -> i32 = add_mod
61
- let impl_i32__wrapping_sub : i32 -> i32 -> i32 = sub_mod
93
+
94
+
62
95
let impl_i32__abs ( a : i32 { minint i32_inttype < v a }) : i32 = abs_int a
63
- val impl_i32__overflowing_mul : i32 -> i32 -> i32 * bool
64
96
65
- let impl_i16__wrapping_add : i16 -> i16 -> i16 = add_mod
66
- let impl_i16__wrapping_sub : i16 -> i16 -> i16 = sub_mod
97
+
98
+
67
99
let impl_i16__wrapping_mul : i16 -> i16 -> i16 = mul_mod
68
- val impl_i16__overflowing_mul : i16 -> i16 -> i16 * bool
69
100
70
- let impl_u32__wrapping_add : u32 -> u32 -> u32 = add_mod
101
+
71
102
val impl_u32__rotate_left : u32 -> u32 -> u32
72
103
val impl_u32__from_le_bytes : t_Array u8 ( sz 4 ) -> u32
73
104
val impl_u32__from_be_bytes : t_Array u8 ( sz 4 ) -> u32
@@ -76,7 +107,6 @@ val impl_u32__to_be_bytes: u32 -> t_Array u8 (sz 4)
76
107
val impl_u32__rotate_right : u32 -> u32 -> u32
77
108
78
109
79
- let impl_u64__wrapping_add : u64 -> u64 -> u64 = add_mod
80
110
val impl_u64__rotate_left : u32 -> u32 -> u32
81
111
val impl_u64__from_le_bytes : t_Array u8 ( sz 8 ) -> u64
82
112
val impl_u64__from_be_bytes : t_Array u8 ( sz 8 ) -> u64
@@ -89,12 +119,8 @@ let impl_u64__overflowing_sub (x y: u64): u64 * bool
89
119
let out = if borrow then pow2 64 + sub else sub in
90
120
( mk_u64 out , borrow )
91
121
92
- let impl_i64__wrapping_add : i64 -> i64 -> i64 = add_mod
93
- let impl_i64__wrapping_sub : i64 -> i64 -> i64 = sub_mod
94
122
let impl_i64__wrapping_mul : i64 -> i64 -> i64 = mul_mod
95
123
96
- let impl_u128__wrapping_add : u128 -> u128 -> u128 = add_mod
97
- let impl_u128__wrapping_sub : u128 -> u128 -> u128 = sub_mod
98
124
val impl_u128__rotate_left : u128 -> u128 -> u128
99
125
val impl_u128__from_le_bytes : t_Array u8 ( sz 16 ) -> u128
100
126
val impl_u128__from_be_bytes : t_Array u8 ( sz 16 ) -> u128
@@ -110,8 +136,6 @@ val impl_u128__pow: u128 -> u32 -> u128
110
136
val impl_i16__pow ( base : i16 ) ( exponent : u32 ): result : i16 { v base == 2 /\ v exponent < 15 ==> ( Math.Lemmas. pow2_lt_compat 15 ( v exponent ); result == mk_i16 ( pow2 ( v exponent )))}
111
137
val impl_i32__pow ( base : i32 ) ( exponent : u32 ): result : i32 { v base == 2 /\ v exponent <= 16 ==> result == mk_i32 ( pow2 ( v exponent ))}
112
138
113
- let impl_i128__wrapping_add : i128 -> i128 -> i128 = add_mod
114
- let impl_i128__wrapping_sub : i128 -> i128 -> i128 = sub_mod
115
139
116
140
val impl_u8__count_ones : u8 -> r : u32 { v r <= 8 }
117
141
val impl_i32__count_ones : i32 -> r : u32 { v r <= 32 }
0 commit comments