package libsail

  1. Overview
  2. Docs
val cast_unit_bv : Sail2_values.bitU -> Sail2_values.bitU list
val most_significant : 'a Sail2_values.bitvector_class -> 'b -> Sail2_values.bitU
val get_max_representable_in : bool -> Nat_big_num.num -> Nat_big_num.num
val get_min_representable_in : 'a -> Nat_big_num.num -> Nat_big_num.num
val arith_op_bv_int : 'a Sail2_values.bitvector_class -> (Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num) -> bool -> 'a0 -> Nat_big_num.num -> 'a1
val arith_op_int_bv : 'a Sail2_values.bitvector_class -> (Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num) -> bool -> Nat_big_num.num -> 'a0 -> 'a1
val arith_op_bv_bool : 'a Sail2_values.bitvector_class -> (Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num) -> bool -> 'a0 -> bool -> 'a1
val arith_op_bv_bit : 'a Sail2_values.bitvector_class -> (Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num) -> bool -> 'a0 -> Sail2_values.bitU -> 'a1 option
type shift =
  1. | LL_shift
  2. | RR_shift
  3. | RR_shift_arith
  4. | LL_rot
  5. | RR_rot
val invert_shift : shift -> shift
val shift_op_bv : 'a Sail2_values.bitvector_class -> shift -> 'b -> Nat_big_num.num -> Sail2_values.bitU list
val arith_shiftr_bv : 'a Sail2_values.bitvector_class -> 'a0 -> Nat_big_num.num -> Sail2_values.bitU list
val shiftl_mword : (int * Big_int_impl.BI.big_int) -> Nat_big_num.num -> Lem.mword
val shiftr_mword : (int * Big_int_impl.BI.big_int) -> Nat_big_num.num -> Lem.mword
val arith_shiftr_mword : (int * Big_int_impl.BI.big_int) -> Nat_big_num.num -> Lem.mword
val rotl_mword : (int * Big_int_impl.BI.big_int) -> Nat_big_num.num -> Lem.mword
val rotr_mword : (int * Big_int_impl.BI.big_int) -> Nat_big_num.num -> Lem.mword
val arith_op_bv_no0 : 'a Sail2_values.bitvector_class -> 'b Sail2_values.bitvector_class -> (Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num) -> bool -> Nat_big_num.num -> 'c -> 'd -> 'b0 option
val mod_bv : 'a Sail2_values.bitvector_class -> 'b Sail2_values.bitvector_class -> 'b0 -> 'b0 -> 'a0 option
val quot_bv : 'a Sail2_values.bitvector_class -> 'b Sail2_values.bitvector_class -> 'b0 -> 'b0 -> 'a0 option
val quots_bv : 'a Sail2_values.bitvector_class -> 'b Sail2_values.bitvector_class -> 'b0 -> 'b0 -> 'a0 option
val mod_mword : Lem.mword -> Lem.mword -> Lem.mword
val quot_mword : Lem.mword -> Lem.mword -> Lem.mword
val quots_mword : Lem.mword -> Lem.mword -> Lem.mword
val quot_bv_int : 'a Sail2_values.bitvector_class -> 'b Sail2_values.bitvector_class -> 'b0 -> Nat_big_num.num -> 'a0 option
val mod_bv_int : 'a Sail2_values.bitvector_class -> 'b Sail2_values.bitvector_class -> 'b0 -> Nat_big_num.num -> 'a0 option
val quot_mword_int : 'a Lem_machine_word.size_class -> (int * Nat_big_num.num) -> Nat_big_num.num -> Lem.mword
val quots_mword_int : 'a Lem_machine_word.size_class -> (int * Nat_big_num.num) -> Nat_big_num.num -> Lem.mword
val replicate_bits_bv : 'a Sail2_values.bitvector_class -> 'b -> Nat_big_num.num -> Sail2_values.bitU list
val duplicate_bit_bv : 'a Sail2_values.bitU_class -> 'b -> Nat_big_num.num -> Sail2_values.bitU list
val eq_bv : 'a Sail2_values.bitvector_class -> 'b -> 'c -> bool
val neq_bv : 'a Sail2_values.bitvector_class -> 'b -> 'c -> bool