diff options
| author | Christopher Pulte | 2016-09-21 10:42:09 +0100 |
|---|---|---|
| committer | Christopher Pulte | 2016-09-21 10:42:09 +0100 |
| commit | b73a7daa6d2b661659ecf066d25d146cadaec1e8 (patch) | |
| tree | 47748211890234c43e13eec2611c97ed68d9e45d /src/gen_lib/sail_values.lem | |
| parent | ea2d92c84d879719f44b3f4bf3c9dfabd8d8ea29 (diff) | |
fixes
Diffstat (limited to 'src/gen_lib/sail_values.lem')
| -rw-r--r-- | src/gen_lib/sail_values.lem | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/gen_lib/sail_values.lem b/src/gen_lib/sail_values.lem index 0f6aa5ee..3914bdef 100644 --- a/src/gen_lib/sail_values.lem +++ b/src/gen_lib/sail_values.lem @@ -23,6 +23,8 @@ let bitwise_not_bit = function end let (~) = bitwise_not_bit + +val pow : integer -> integer -> integer let pow m n = m ** (natFromInteger n) @@ -496,3 +498,29 @@ let bitwise_not_range_bit n = bitwise_not (to_vec defaultDir n) let mask (n,Vector bits start dir) = let current_size = List.length bits in Vector (drop (current_size - (natFromInteger n)) bits) (if dir then 0 else (n-1)) dir + + + + +(* this is for a temporary workaround int/nat/integer/natural issues*) + +class (subInteger 'a) + val toInteger : 'a -> integer +end + + +instance (subInteger integer) + let toInteger = id +end + +instance (subInteger int) + let toInteger = integerFromInt +end + +instance (subInteger nat) + let toInteger = integerFromNat +end + +instance (subInteger natural) + let toInteger = integerFromNatural +end |
