Decidable quantifiers #
instance
BitVec.instDecidableForallBitVecSucc
{n : Nat}
(P : BitVec (n + 1) → Prop)
[DecidablePred P]
[Decidable (∀ (x : Bool) (v : BitVec n), P (cons x v))]
:
Equations
- BitVec.instDecidableForallBitVecSucc P = decidable_of_iff' (∀ (x : Bool) (v : BitVec n), P (BitVec.cons x v)) ⋯
instance
BitVec.instDecidableExistsBitVecSucc
{n : Nat}
(P : BitVec (n + 1) → Prop)
[DecidablePred P]
[Decidable (∀ (x : Bool) (v : BitVec n), ¬P (cons x v))]
:
Equations
- BitVec.instDecidableExistsBitVecSucc P = decidable_of_iff (¬∀ (v : BitVec (n + 1)), ¬P v) ⋯
For small numerals this isn't necessary (as typeclass search can use the above two instances),
but for large numerals this provides a shortcut.
Note, however, that for large numerals the decision procedure may be very slow,
and you should use bv_decide
if possible.
Equations
For small numerals this isn't necessary (as typeclass search can use the above two instances), but for large numerals this provides a shortcut. Note, however, that for large numerals the decision procedure may be very slow.