Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Bitvectors.
val error : t
the error term.
Denotes an ill-typed term. The parsing is immediately stopped.
extract m hi lo x
is extract (bits m) (bitv hi) (bitv lo) (bitv x)
.
load_word m d s a
is loadw (bits m) (bool d) (mem s) (bitv a)
.
val var : string -> int -> t
var s m
is var (ctxt s) (bits m)
val unknown : int -> t
unknown m
is unk (bits m)
let_bit s x y
is scoped @@ fun v -> (bool x) (bitv [y|s->v])
.
Note, the let_bit
rule is not mapped to the let_
term, but instead a scoped fresh variable v
is created and s
is substituted with v
in y
.
let_reg s x y
is scoped @@ fun v -> (bitv x) (bitv [y|s->v])
.
Note, the let_reg
rule is not mapped to the let_
term, but instead a scoped fresh variable v
is created and s
is substituted with v
in y
.
let_mem s x y
is scoped @@ fun v -> (mem x) (bitv [y|s->v])
.
Note, the let_mem
rule is not mapped to the let_
term, but instead a scoped fresh variable v
is created and s
is substituted with v
in y
.
let_float s x y
is scoped @@ fun v -> (float x) (bitv [y|s->v])
.
Note, the let_float
rule is not mapped to the let_
term, but instead a scoped fresh variable v
is created and s
is substituted with v
in y
.
append x y
is append s (bitv x) (bitv y)
, where
s
is bits (size (sort (bitv x)) + size (sort (bitv x)))
.
concat xs
is concat (bits (size s * n)) xs
,
where s
is the sort of the xs
element, and n
is the total number of elements in xs
.