Documentation

SSA.Projects.InstCombine.ForMathlib

@[simp]
theorem BitVec.ofFin_neg :
∀ {a : } {x : Fin (2 ^ a)}, { toFin := -x } = -{ toFin := x }
@[simp]
theorem BitVec.ofFin_natCast {w : } (n : ) :
{ toFin := n } = n
theorem BitVec.toFin_natCast {w : } (n : ) :
(↑n).toFin = n
theorem BitVec.ofFin_intCast {w : } (z : ) :
{ toFin := z } = z
theorem BitVec.toFin_intCast {w : } (z : ) :
(↑z).toFin = z
Equations
  • BitVec.instSMulNat_sSA = { smul := fun (x : ) (y : BitVec w) => { toFin := x y.toFin } }
Equations
  • BitVec.instSMulInt_sSA = { smul := fun (x : ) (y : BitVec w) => { toFin := x y.toFin } }
instance BitVec.instPowNat_sSA {w : } :
Equations
  • BitVec.instPowNat_sSA = { pow := fun (x : BitVec w) (n : ) => { toFin := x.toFin ^ n } }
theorem BitVec.toFin_nsmul {w : } (n : ) (x : BitVec w) :
(n x).toFin = n x.toFin
theorem BitVec.toFin_zsmul {w : } (z : ) (x : BitVec w) :
(z x).toFin = z x.toFin
theorem BitVec.toFin_pow {w : } (x : BitVec w) (n : ) :
(x ^ n).toFin = x.toFin ^ n
Equations