module Bv: sig end
Operation on function symbols of the
bitvector theory
Th.bv
.
- Constructors
mk_const b
, mk_conc n m
, mk_sub n i j
for representing Const(b)
, Conc(n, m)
, and Sub(n, i, j)
, respectively.
get f
returns the function symbol in Th.bv
represented by f
,
or raises Not_found
.
- The test
is_const f
(is_conc f
, is_sub f
) succeeds iff f
represents some Const(b)
(Conc(n, m)
, Sub(n, i, j)
).
d_conc f
(d_const f
, d_sub f
) yields b
((n, m)
, (n, i, j)
)
if f
represents Const(b)
(Conc(n, m)
, Sub(n, i, j)
); otherwise
Not_found
is raised.
pp p fmt (op, al)
pretty-prints the appliation of op
to the
argument list al
depending on the value of Pretty.flag
. See
also Pretty.apply
. It assumes applications to Const(.)
to be
nullary, applications to Conc(.,.)
are binary, and Sub(.,.,.)
is unary.
- The width associated with each bitvector function symbol
op
is
returned by width op
. For constant bitvector symbols, this width
is defined by the length of the associated bitvector of type Bitv.t
,
the width of Conc(n, m)
is n + m
, and the width of Sub(n, i, j)
is j - i + 1
, namely the width of the extracted sub-bitvector.
val get : Sym.t -> Sym.bv
val mk_const : Bitv.t -> Sym.t
val mk_conc : int -> int -> Sym.t
val mk_sub : int -> int -> int -> Sym.t
val is : Sym.t -> bool
val is_const : Sym.t -> bool
val is_conc : Sym.t -> bool
val is_sub : Sym.t -> bool
val d_const : Sym.t -> Bitv.t
val d_conc : Sym.t -> int * int
val d_sub : Sym.t -> int * int * int
val width : Sym.bv -> int
val pp : 'a Pretty.printer -> (Sym.bv * 'a list) Pretty.printer