package libsail

  1. Overview
  2. Docs
val cast_unit_bv : Sail2_values.bitU -> Sail2_values.bitU list
val bv_of_bit : Nat_big_num.num -> Sail2_values.bitU -> Sail2_values.bitU list
val most_significant : 'a Sail2_values.bitvector_class -> 'a -> 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 -> 'a -> Nat_big_num.num -> 'a
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 -> 'a -> 'a
val arith_op_bv_bool : 'a Sail2_values.bitvector_class -> (Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num) -> bool -> 'a -> bool -> 'a
val arith_op_bv_bit : 'a Sail2_values.bitvector_class -> (Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num) -> bool -> 'a -> Sail2_values.bitU -> 'a 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 -> 'a -> Nat_big_num.num -> Sail2_values.bitU list
val shiftl_bv : 'a Sail2_values.bitvector_class -> 'a -> Nat_big_num.num -> Sail2_values.bitU list
val shiftr_bv : 'a Sail2_values.bitvector_class -> 'a -> Nat_big_num.num -> Sail2_values.bitU list
val arith_shiftr_bv : 'a Sail2_values.bitvector_class -> 'a -> Nat_big_num.num -> Sail2_values.bitU list
val rotl_bv : 'a Sail2_values.bitvector_class -> 'a -> Nat_big_num.num -> Sail2_values.bitU list
val rotr_bv : 'a Sail2_values.bitvector_class -> 'a -> 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_no0 : (Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num) -> Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num option
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 -> 'a -> 'a -> 'b option
val mod_bv : 'a Sail2_values.bitvector_class -> 'b Sail2_values.bitvector_class -> 'b -> 'b -> 'a option
val quot_bv : 'a Sail2_values.bitvector_class -> 'b Sail2_values.bitvector_class -> 'b -> 'b -> 'a option
val quots_bv : 'a Sail2_values.bitvector_class -> 'b Sail2_values.bitvector_class -> 'b -> 'b -> 'a 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 arith_op_bv_int_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 -> 'a -> Nat_big_num.num -> 'b option
val quot_bv_int : 'a Sail2_values.bitvector_class -> 'b Sail2_values.bitvector_class -> 'b -> Nat_big_num.num -> 'a option
val mod_bv_int : 'a Sail2_values.bitvector_class -> 'b Sail2_values.bitvector_class -> 'b -> Nat_big_num.num -> 'a option
val mod_mword_int : 'a Lem_machine_word.size_class -> (int * Nat_big_num.num) -> Nat_big_num.num -> Lem.mword
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 -> 'a -> Nat_big_num.num -> Sail2_values.bitU list
val duplicate_bit_bv : 'a Sail2_values.bitU_class -> 'a -> Nat_big_num.num -> Sail2_values.bitU list
val eq_bv : 'a Sail2_values.bitvector_class -> 'a -> 'a -> bool
val neq_bv : 'a Sail2_values.bitvector_class -> 'a -> 'a -> bool
val get_slice_int_bv : 'a Sail2_values.bitvector_class -> Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num -> 'a
val set_slice_int_bv : 'a Sail2_values.bitvector_class -> Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num -> 'a -> Nat_big_num.num
OCaml

Innovation. Community. Security.