let bitwise_op_positive_big_int op x y =
  assert (Big_int.ge_big_int x Big_int.zero_big_int);
  assert (Big_int.ge_big_int y Big_int.zero_big_int);
  let g =
    let f u v = assert(Big_int.is_int_big_int u) ;
      assert(Big_int.is_int_big_int v) ;
      let r = op (Big_int.int_of_big_int u) (Big_int.int_of_big_int v)
      in Big_int.big_int_of_int (r)
    in map2_base base16bits f 
  in let r = map2_base base g x y
  in assert (Big_int.ge_big_int r Big_int.zero_big_int);
    r