Documentation

Init.Data.Fin.Bitwise

@[simp]
theorem Fin.and_val {n : Nat} (a b : Fin n) :
↑(a &&& b) = ↑a &&& ↑b
@[simp]
theorem Fin.or_val_of_two_pow {w : Nat} (a b : Fin (2 ^ w)) :
↑(a ||| b) = ↑a ||| ↑b
@[simp]
theorem Fin.or_val_of_uInt8Size (a b : Fin UInt8.size) :
↑(a ||| b) = ↑a ||| ↑b
@[simp]
theorem Fin.or_val_of_uInt16Size (a b : Fin UInt16.size) :
↑(a ||| b) = ↑a ||| ↑b
@[simp]
theorem Fin.or_val_of_uInt32Size (a b : Fin UInt32.size) :
↑(a ||| b) = ↑a ||| ↑b
@[simp]
theorem Fin.or_val_of_uInt64Size (a b : Fin UInt64.size) :
↑(a ||| b) = ↑a ||| ↑b
@[simp]
theorem Fin.or_val_of_uSizeSize (a b : Fin USize.size) :
↑(a ||| b) = ↑a ||| ↑b
theorem Fin.or_val {n : Nat} (a b : Fin n) :
↑(a ||| b) = (↑a ||| ↑b) % n
@[simp]
theorem Fin.xor_val_of_two_pow {w : Nat} (a b : Fin (2 ^ w)) :
↑(a ^^^ b) = ↑a ^^^ ↑b
@[simp]
theorem Fin.xor_val_of_uInt8Size (a b : Fin UInt8.size) :
↑(a ^^^ b) = ↑a ^^^ ↑b
@[simp]
theorem Fin.xor_val_of_uInt16Size (a b : Fin UInt16.size) :
↑(a ^^^ b) = ↑a ^^^ ↑b
@[simp]
theorem Fin.xor_val_of_uInt32Size (a b : Fin UInt32.size) :
↑(a ^^^ b) = ↑a ^^^ ↑b
@[simp]
theorem Fin.xor_val_of_uInt64Size (a b : Fin UInt64.size) :
↑(a ^^^ b) = ↑a ^^^ ↑b
@[simp]
theorem Fin.xor_val_of_uSizeSize (a b : Fin USize.size) :
↑(a ^^^ b) = ↑a ^^^ ↑b
theorem Fin.xor_val {n : Nat} (a b : Fin n) :
↑(a ^^^ b) = (↑a ^^^ ↑b) % n
@[simp]
theorem Fin.shiftLeft_val {n : Nat} (a b : Fin n) :
↑(a <<< b) = ↑a <<< ↑b % n
@[simp]
theorem Fin.shiftRight_val {n : Nat} (a b : Fin n) :
↑(a >>> b) = ↑a >>> ↑b