Documentation
Init
.
Data
.
Range
.
Polymorphic
.
BitVec
Search
return to top
source
Imports
Init.Omega
Init.Data.UInt
Init.Data.Order.Lemmas
Init.Data.Range.Polymorphic.Instances
Imported by
BitVec
.
instUpwardEnumerable
BitVec
.
succ?_eq_none
BitVec
.
succ?_eq_some
BitVec
.
instLawfulUpwardEnumerable
BitVec
.
instLawfulUpwardEnumerableLE
BitVec
.
instLawfulUpwardEnumerableLT
BitVec
.
instRxcHasSize
BitVec
.
instRxcLawfulHasSize
BitVec
.
instRxcIsAlwaysFinite
BitVec
.
instRxoHasSize
BitVec
.
instRxoLawfulHasSize
BitVec
.
instRxoIsAlwaysFinite
BitVec
.
instRxiHasSize
BitVec
.
instRxiLawfulHasSize
BitVec
.
instRxiIsAlwaysFinite
source
instance
BitVec
.
instUpwardEnumerable
{
n
:
Nat
}
:
Std.PRange.UpwardEnumerable
(
BitVec
n
)
Equations
One or more equations did not get rendered due to their size.
source
theorem
BitVec
.
succ?_eq_none
{
n
:
Nat
}
{
x
:
BitVec
n
}
:
Std.PRange.succ?
x
=
none
↔
x
.
toNat
=
2
^
n
-
1
source
theorem
BitVec
.
succ?_eq_some
{
n
:
Nat
}
{
x
y
:
BitVec
n
}
:
Std.PRange.succ?
x
=
some
y
↔
x
.
toNat
<
2
^
n
-
1
∧
y
.
toNat
=
x
.
toNat
+
1
source
instance
BitVec
.
instLawfulUpwardEnumerable
{
n
:
Nat
}
:
Std.PRange.LawfulUpwardEnumerable
(
BitVec
n
)
source
instance
BitVec
.
instLawfulUpwardEnumerableLE
{
n
:
Nat
}
:
Std.PRange.LawfulUpwardEnumerableLE
(
BitVec
n
)
source
instance
BitVec
.
instLawfulUpwardEnumerableLT
{
n
:
Nat
}
:
Std.PRange.LawfulUpwardEnumerableLT
(
BitVec
n
)
source
instance
BitVec
.
instRxcHasSize
{
n
:
Nat
}
:
Std.Rxc.HasSize
(
BitVec
n
)
Equations
BitVec.instRxcHasSize
=
{
size
:=
fun (
lo
hi
:
BitVec
n
) =>
hi
.
toNat
+
1
-
lo
.
toNat
}
source
instance
BitVec
.
instRxcLawfulHasSize
{
n
:
Nat
}
:
Std.Rxc.LawfulHasSize
(
BitVec
n
)
source
instance
BitVec
.
instRxcIsAlwaysFinite
{
n
:
Nat
}
:
Std.Rxc.IsAlwaysFinite
(
BitVec
n
)
source
instance
BitVec
.
instRxoHasSize
{
n
:
Nat
}
:
Std.Rxo.HasSize
(
BitVec
n
)
Equations
BitVec.instRxoHasSize
=
Std.Rxo.HasSize.ofClosed
source
instance
BitVec
.
instRxoLawfulHasSize
{
n
:
Nat
}
:
Std.Rxo.LawfulHasSize
(
BitVec
n
)
source
instance
BitVec
.
instRxoIsAlwaysFinite
{
n
:
Nat
}
:
Std.Rxo.IsAlwaysFinite
(
BitVec
n
)
source
instance
BitVec
.
instRxiHasSize
{
n
:
Nat
}
:
Std.Rxi.HasSize
(
BitVec
n
)
Equations
BitVec.instRxiHasSize
=
{
size
:=
fun (
lo
:
BitVec
n
) =>
2
^
n
-
lo
.
toNat
}
source
instance
BitVec
.
instRxiLawfulHasSize
{
n
:
Nat
}
:
Std.Rxi.LawfulHasSize
(
BitVec
n
)
source
instance
BitVec
.
instRxiIsAlwaysFinite
{
n
:
Nat
}
:
Std.Rxi.IsAlwaysFinite
(
BitVec
n
)