@@ -12,6 +12,7 @@ let impl_u64__MIN: u64 = mk_u64 (minint u64_inttype)
12
12
let impl_u128__MAX : u128 = mk_u128 ( maxint u128_inttype )
13
13
let impl_u128__MIN : u128 = mk_u128 ( minint u128_inttype )
14
14
let impl_usize__MAX : usize = mk_usize ( maxint usize_inttype )
15
+
15
16
let impl_usize__MIN : usize = mk_usize ( minint usize_inttype )
16
17
let impl_i8__MAX : i8 = mk_i8 ( maxint i8_inttype )
17
18
let impl_i8__MIN : i8 = mk_i8 ( minint i8_inttype )
@@ -26,6 +27,65 @@ let impl_i128__MIN: i128 = mk_i128 (minint i128_inttype)
26
27
let impl_isize__MAX : isize = mk_isize ( maxint isize_inttype )
27
28
let impl_isize__MIN : isize = mk_isize ( minint isize_inttype )
28
29
30
+ let impl_u8__BITS : u32 = mk_int 8
31
+ let impl_u16__BITS : u32 = mk_int 16
32
+ let impl_u32__BITS : u32 = mk_int 32
33
+ let impl_u64__BITS : u32 = mk_int 64
34
+ let impl_u128__BITS : u32 = mk_int 128
35
+ let impl_i8__BITS : u32 = mk_int 8
36
+ let impl_i16__BITS : u32 = mk_int 16
37
+ let impl_i32__BITS : u32 = mk_int 32
38
+ let impl_i64__BITS : u32 = mk_int 64
39
+ let impl_i128__BITS : u32 = mk_int 128
40
+
41
+
42
+
43
+ let impl_u8__wrapping_add : u8 -> u8 -> u8 = add_mod
44
+ let impl_u16__wrapping_add : u16 -> u16 -> u16 = add_mod
45
+ let impl_u32__wrapping_add : u32 -> u32 -> u32 = add_mod
46
+ let impl_u64__wrapping_add : u64 -> u64 -> u64 = add_mod
47
+ let impl_u128__wrapping_add : u128 -> u128 -> u128 = add_mod
48
+ let impl_i8__wrapping_add : i8 -> i8 -> i8 = add_mod
49
+ let impl_i16__wrapping_add : i16 -> i16 -> i16 = add_mod
50
+ let impl_i32__wrapping_add : i32 -> i32 -> i32 = add_mod
51
+ let impl_i64__wrapping_add : i64 -> i64 -> i64 = add_mod
52
+ let impl_i128__wrapping_add : i128 -> i128 -> i128 = add_mod
53
+
54
+ let impl_u8__saturating_add : u8 -> u8 -> u8 = add_sat
55
+ let impl_u16__saturating_add : u16 -> u16 -> u16 = add_sat
56
+ let impl_u32__saturating_add : u32 -> u32 -> u32 = add_sat
57
+ let impl_u64__saturating_add : u64 -> u64 -> u64 = add_sat
58
+ let impl_u128__saturating_add : u128 -> u128 -> u128 = add_sat
59
+ let impl_i8__saturating_add : i8 -> i8 -> i8 = add_sat
60
+ let impl_i16__saturating_add : i16 -> i16 -> i16 = add_sat
61
+ let impl_i32__saturating_add : i32 -> i32 -> i32 = add_sat
62
+ let impl_i64__saturating_add : i64 -> i64 -> i64 = add_sat
63
+ let impl_i128__saturating_add : i128 -> i128 -> i128 = add_sat
64
+
65
+
66
+ let impl_u8__wrapping_sub : u8 -> u8 -> u8 = sub_mod
67
+ let impl_u16__wrapping_sub : u16 -> u16 -> u16 = sub_mod
68
+ let impl_u32__wrapping_sub : u32 -> u32 -> u32 = sub_mod
69
+ let impl_u64__wrapping_sub : u64 -> u64 -> u64 = sub_mod
70
+ let impl_u128__wrapping_sub : u128 -> u128 -> u128 = sub_mod
71
+ let impl_i8__wrapping_sub : i8 -> i8 -> i8 = sub_mod
72
+ let impl_i16__wrapping_sub : i16 -> i16 -> i16 = sub_mod
73
+ let impl_i32__wrapping_sub : i32 -> i32 -> i32 = sub_mod
74
+ let impl_i64__wrapping_sub : i64 -> i64 -> i64 = sub_mod
75
+ let impl_i128__wrapping_sub : i128 -> i128 -> i128 = sub_mod
76
+
77
+
78
+ let impl_u8__saturating_sub : u8 -> u8 -> u8 = sub_sat
79
+ let impl_u16__saturating_sub : u16 -> u16 -> u16 = sub_sat
80
+ let impl_u32__saturating_sub : u32 -> u32 -> u32 = sub_sat
81
+ let impl_u64__saturating_sub : u64 -> u64 -> u64 = sub_sat
82
+ let impl_u128__saturating_sub : u128 -> u128 -> u128 = sub_sat
83
+ let impl_i8__saturating_sub : i8 -> i8 -> i8 = sub_sat
84
+ let impl_i16__saturating_sub : i16 -> i16 -> i16 = sub_sat
85
+ let impl_i32__saturating_sub : i32 -> i32 -> i32 = sub_sat
86
+ let impl_i64__saturating_sub : i64 -> i64 -> i64 = sub_sat
87
+ let impl_i128__saturating_sub : i128 -> i128 -> i128 = sub_sat
88
+
29
89
let impl_u8__rem_euclid ( x : u8 ) ( y : u8 { v y <> 0 }): u8 = x %! y
30
90
let impl_u16__rem_euclid ( x : u16 ) ( y : u16 { v y <> 0 }): u16 = x %! y
31
91
let impl_u32__rem_euclid ( x : u32 ) ( y : u32 { v y <> 0 }): u32 = x %! y
@@ -39,32 +99,40 @@ let impl_i64__rem_euclid (x: i64) (y: i64 {v y <> 0}): i64 = x %! y
39
99
let impl_i128__rem_euclid ( x : i128 ) ( y : i128 { v y <> 0 }): i128 = x %! y
40
100
let impl_isize__rem_euclid ( x : isize ) ( y : isize { v y <> 0 }): isize = x %! y
41
101
42
- let impl_u8__wrapping_add : u8 -> u8 -> u8 = add_mod
43
- let impl_u8__wrapping_sub : u8 -> u8 -> u8 = sub_mod
44
- let impl_u16__wrapping_add : u16 -> u16 -> u16 = add_mod
102
+
103
+
104
+ let impl_u8__overflowing_mul : u8 -> u8 -> u8 * bool = mul_overflow
105
+ let impl_u16__overflowing_mul : u16 -> u16 -> u16 * bool = mul_overflow
106
+ let impl_u32__overflowing_mul : u32 -> u32 -> u32 * bool = mul_overflow
107
+ let impl_u64__overflowing_mul : u64 -> u64 -> u64 * bool = mul_overflow
108
+ let impl_u128__overflowing_mul : u128 -> u128 -> u128 * bool = mul_overflow
109
+ let impl_i8__overflowing_mul : i8 -> i8 -> i8 * bool = mul_overflow
110
+ let impl_i16__overflowing_mul : i16 -> i16 -> i16 * bool = mul_overflow
111
+ let impl_i32__overflowing_mul : i32 -> i32 -> i32 * bool = mul_overflow
112
+ let impl_i64__overflowing_mul : i64 -> i64 -> i64 * bool = mul_overflow
113
+ let impl_i128__overflowing_mul : i128 -> i128 -> i128 * bool = mul_overflow
114
+
45
115
val impl_u16__to_be_bytes : u16 -> t_Array u8 ( sz 2 )
46
116
val impl_u16__from_be_bytes : t_Array u8 ( sz 2 ) -> u16
47
117
48
- let impl_i32__wrapping_add : i32 -> i32 -> i32 = add_mod
49
- let impl_i32__wrapping_sub : i32 -> i32 -> i32 = sub_mod
118
+ let impl_i8__abs ( a : i8 { minint i8_inttype < v a }) : i8 = abs_int a
119
+ let impl_i16__abs ( a : i16 { minint i16_inttype < v a }) : i16 = abs_int a
50
120
let impl_i32__abs ( a : i32 { minint i32_inttype < v a }) : i32 = abs_int a
51
- val impl_i32__overflowing_mul : i32 -> i32 -> i32 * bool
121
+ let impl_i64__abs ( a : i64 { minint i64_inttype < v a }) : i64 = abs_int a
122
+ let impl_i128__abs ( a : i128 { minint i128_inttype < v a }) : i128 = abs_int a
123
+
52
124
53
- let impl_i16__wrapping_add : i16 -> i16 -> i16 = add_mod
54
- let impl_i16__wrapping_sub : i16 -> i16 -> i16 = sub_mod
55
125
let impl_i16__wrapping_mul : i16 -> i16 -> i16 = mul_mod
56
- val impl_i16__overflowing_mul : i16 -> i16 -> i16 * bool
57
126
58
- let impl_u32__wrapping_add : u32 -> u32 -> u32 = add_mod
127
+
59
128
val impl_u32__rotate_left : u32 -> u32 -> u32
60
129
val impl_u32__from_le_bytes : t_Array u8 ( sz 4 ) -> u32
61
130
val impl_u32__from_be_bytes : t_Array u8 ( sz 4 ) -> u32
62
131
val impl_u32__to_le_bytes : u32 -> t_Array u8 ( sz 4 )
63
132
val impl_u32__to_be_bytes : u32 -> t_Array u8 ( sz 4 )
64
133
val impl_u32__rotate_right : u32 -> u32 -> u32
65
- let impl_u32__BITS : u32 = mk_int 32
66
134
67
- let impl_u64__wrapping_add : u64 -> u64 -> u64 = add_mod
135
+
68
136
val impl_u64__rotate_left : u32 -> u32 -> u32
69
137
val impl_u64__from_le_bytes : t_Array u8 ( sz 8 ) -> u64
70
138
val impl_u64__from_be_bytes : t_Array u8 ( sz 8 ) -> u64
@@ -77,12 +145,8 @@ let impl_u64__overflowing_sub (x y: u64): u64 * bool
77
145
let out = if borrow then pow2 64 + sub else sub in
78
146
( mk_u64 out , borrow )
79
147
80
- let impl_i64__wrapping_add : i64 -> i64 -> i64 = add_mod
81
- let impl_i64__wrapping_sub : i64 -> i64 -> i64 = sub_mod
82
148
let impl_i64__wrapping_mul : i64 -> i64 -> i64 = mul_mod
83
149
84
- let impl_u128__wrapping_add : u128 -> u128 -> u128 = add_mod
85
- let impl_u128__wrapping_sub : u128 -> u128 -> u128 = sub_mod
86
150
val impl_u128__rotate_left : u128 -> u128 -> u128
87
151
val impl_u128__from_le_bytes : t_Array u8 ( sz 16 ) -> u128
88
152
val impl_u128__from_be_bytes : t_Array u8 ( sz 16 ) -> u128
@@ -98,8 +162,6 @@ val impl_u128__pow: u128 -> u32 -> u128
98
162
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 )))}
99
163
val impl_i32__pow ( base : i32 ) ( exponent : u32 ): result : i32 { v base == 2 /\ v exponent <= 16 ==> result == mk_i32 ( pow2 ( v exponent ))}
100
164
101
- let impl_i128__wrapping_add : i128 -> i128 -> i128 = add_mod
102
- let impl_i128__wrapping_sub : i128 -> i128 -> i128 = sub_mod
103
165
104
166
val impl_u8__count_ones : u8 -> r : u32 { v r <= 8 }
105
167
val impl_i32__count_ones : i32 -> r : u32 { v r <= 32 }
0 commit comments