You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Dec 13, 2022. It is now read-only.
All the primitive operations effectively have such implicit preconditions and should be closed under this precondition (given inputs satisfy the correct bounds, output from a primitive should satisfy the correct bounds). e.g. BinBitVecAddUBinBitVecSubUUnBitVecShiftLeft are all defined _ mod [relevant bound].
An alternative could be to use coqutil's word or similar, but it would be a big change at this point.
Might be hard to read here because it's in terms of bitwise operations, but N.land x (N.ones n) is exactly the same as x mod 2 ^ n; both input bit-vectors are truncated to the expected size. You can easily rewrite this as the identity if you can prove in your context that x < 2 ^ n.
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
I need the following information about the representation of BitVec.
Axiom denote_bv_max : forall (n : N) (m : denote_type (BitVec (N.to_nat n))), m < 2 ^ n.
I need this axiom to prove the
land_shiftr
lemma, which I use in the proof ofstep_tlul_adapter_reg
in CavaIncrementDevice.v.The text was updated successfully, but these errors were encountered: