Loogle!
Result
Found 41 declarations mentioning Matrix and MulOpposite.
- Matrix.isCentralScalar š Mathlib.Data.Matrix.Defs
{m : Type u_2} {n : Type u_3} {R : Type u_7} {α : Type v} [SMul R α] [SMul Rįµįµįµ α] [IsCentralScalar R α] : IsCentralScalar R (Matrix m n α) - Matrix.map_op_smul' š Mathlib.Data.Matrix.Defs
{n : Type u_3} {α : Type v} {β : Type w} [Mul α] [Mul β] (f : α ā β) (r : α) (A : Matrix n n α) (hf : ā (aā aā : α), f (aā * aā) = f aā * f aā) : (MulOpposite.op r ⢠A).map f = MulOpposite.op (f r) ⢠A.map f - Matrix.mulVec_single š Mathlib.Data.Matrix.Mul
{m : Type u_2} {n : Type u_3} {R : Type u_7} [Fintype n] [DecidableEq n] [NonUnitalNonAssocSemiring R] (M : Matrix m n R) (j : n) (x : R) : M.mulVec (Pi.single j x) = MulOpposite.op x ⢠M.col j - Matrix.mulVec_eq_sum š Mathlib.Data.Matrix.Mul
{m : Type u_2} {n : Type u_3} {α : Type v} [NonUnitalNonAssocSemiring α] [Fintype n] (v : n ā α) (M : Matrix m n α) : M.mulVec v = ā i, MulOpposite.op (v i) ⢠M.transpose i - Matrix.vecMul_natCast š Mathlib.Data.Matrix.Mul
{m : Type u_2} {α : Type v} [NonAssocSemiring α] [Fintype m] [DecidableEq m] (x : ā) (v : m ā α) : Matrix.vecMul v āx = MulOpposite.op āx ⢠v - Matrix.op_smul_eq_mul_diagonal š Mathlib.Data.Matrix.Mul
{m : Type u_2} {n : Type u_3} {α : Type v} [NonUnitalNonAssocSemiring α] [Fintype n] [DecidableEq n] (M : Matrix m n α) (a : α) : MulOpposite.op a ⢠M = M * Matrix.diagonal fun x => a - Matrix.op_smul_one_eq_diagonal š Mathlib.Data.Matrix.Mul
{m : Type u_2} {α : Type v} [NonAssocSemiring α] [DecidableEq m] (a : α) : MulOpposite.op a ⢠1 = Matrix.diagonal fun x => a - Matrix.vecMul_intCast š Mathlib.Data.Matrix.Mul
{m : Type u_2} {α : Type v} [NonAssocRing α] [Fintype m] [DecidableEq m] (x : ā¤) (v : m ā α) : Matrix.vecMul v āx = MulOpposite.op āx ⢠v - Matrix.vecMul_ofNat š Mathlib.Data.Matrix.Mul
{m : Type u_2} {α : Type v} [NonAssocSemiring α] [Fintype m] [DecidableEq m] (x : ā) [x.AtLeastTwo] (v : m ā α) : Matrix.vecMul v (OfNat.ofNat x) = MulOpposite.op (OfNat.ofNat x) ⢠v - Matrix.transposeRingEquiv š Mathlib.Data.Matrix.Basic
(m : Type u_2) (α : Type v) [AddCommMonoid α] [CommSemigroup α] [Fintype m] : Matrix m m α ā+* (Matrix m m α)įµįµįµ - AlgEquiv.mopMatrix š Mathlib.Data.Matrix.Basic
{m : Type u_2} {R : Type u_7} {α : Type v} [Fintype m] [DecidableEq m] [CommSemiring R] [Semiring α] [Algebra R α] : Matrix m m αįµįµįµ āā[R] (Matrix m m α)įµįµįµ - Matrix.transposeAlgEquiv š Mathlib.Data.Matrix.Basic
(m : Type u_2) (R : Type u_7) (α : Type v) [CommSemiring R] [CommSemiring α] [Fintype m] [DecidableEq m] [Algebra R α] : Matrix m m α āā[R] (Matrix m m α)įµįµįµ - RingEquiv.mopMatrix š Mathlib.Data.Matrix.Basic
{m : Type u_2} {α : Type v} [Fintype m] [NonAssocSemiring α] : Matrix m m αįµįµįµ ā+* (Matrix m m α)įµįµįµ - Matrix.transposeAlgEquiv_apply š Mathlib.Data.Matrix.Basic
(m : Type u_2) (R : Type u_7) (α : Type v) [CommSemiring R] [CommSemiring α] [Fintype m] [DecidableEq m] [Algebra R α] (M : Matrix m m α) : (Matrix.transposeAlgEquiv m R α) M = MulOpposite.op M.transpose - AlgEquiv.mopMatrix_apply š Mathlib.Data.Matrix.Basic
{m : Type u_2} {R : Type u_7} {α : Type v} [Fintype m] [DecidableEq m] [CommSemiring R] [Semiring α] [Algebra R α] (M : Matrix m m αįµįµįµ) : AlgEquiv.mopMatrix M = MulOpposite.op (M.transpose.map MulOpposite.unop) - Matrix.transposeRingEquiv_apply š Mathlib.Data.Matrix.Basic
(m : Type u_2) (α : Type v) [AddCommMonoid α] [CommSemigroup α] [Fintype m] (M : Matrix m m α) : (Matrix.transposeRingEquiv m α) M = MulOpposite.op M.transpose - Matrix.scalar_commute_iff š Mathlib.Data.Matrix.Basic
{n : Type u_3} {α : Type v} [Semiring α] [DecidableEq n] [Fintype n] {r : α} {M : Matrix n n α} : Commute ((Matrix.scalar n) r) M ā r ⢠M = MulOpposite.op r ⢠M - AlgEquiv.mopMatrix_symm_apply š Mathlib.Data.Matrix.Basic
{m : Type u_2} {R : Type u_7} {α : Type v} [Fintype m] [DecidableEq m] [CommSemiring R] [Semiring α] [Algebra R α] (M : (Matrix m m α)įµįµįµ) : AlgEquiv.mopMatrix.symm M = (MulOpposite.unop M).transpose.map MulOpposite.op - Matrix.transposeRingEquiv_symm_apply š Mathlib.Data.Matrix.Basic
(m : Type u_2) (α : Type v) [AddCommMonoid α] [CommSemigroup α] [Fintype m] (M : (Matrix m m α)įµįµįµ) : (Matrix.transposeRingEquiv m α).symm M = (MulOpposite.unop M).transpose - RingEquiv.mopMatrix_apply š Mathlib.Data.Matrix.Basic
{m : Type u_2} {α : Type v} [Fintype m] [NonAssocSemiring α] (M : Matrix m m αįµįµįµ) : RingEquiv.mopMatrix M = MulOpposite.op (M.transpose.map MulOpposite.unop) - RingEquiv.mopMatrix_symm_apply š Mathlib.Data.Matrix.Basic
{m : Type u_2} {α : Type v} [Fintype m] [NonAssocSemiring α] (M : (Matrix m m α)įµįµįµ) : RingEquiv.mopMatrix.symm M = (MulOpposite.unop M).transpose.map MulOpposite.op - Matrix.transposeAlgEquiv_symm_apply š Mathlib.Data.Matrix.Basic
(m : Type u_2) (R : Type u_7) (α : Type v) [CommSemiring R] [CommSemiring α] [Fintype m] [DecidableEq m] [Algebra R α] (aā : (Matrix m m α)įµįµįµ) : (Matrix.transposeAlgEquiv m R α).symm aā = ((Matrix.transposeAddEquiv m m α).trans MulOpposite.opAddEquiv).invFun aā - Matrix.conjTransposeRingEquiv š Mathlib.Data.Matrix.ConjTranspose
(m : Type u_2) (α : Type v) [Semiring α] [StarRing α] [Fintype m] : Matrix m m α ā+* (Matrix m m α)įµįµįµ - Matrix.conjTranspose_smul_self š Mathlib.Data.Matrix.ConjTranspose
{m : Type u_2} {n : Type u_3} {α : Type v} [Mul α] [StarMul α] (c : α) (M : Matrix m n α) : (c ⢠M).conjTranspose = MulOpposite.op (star c) ⢠M.conjTranspose - Matrix.conjTranspose_smul_non_comm š Mathlib.Data.Matrix.ConjTranspose
{m : Type u_2} {n : Type u_3} {R : Type u_7} {α : Type v} [Star R] [Star α] [SMul R α] [SMul Rįµįµįµ α] (c : R) (M : Matrix m n α) (h : ā (r : R) (a : α), star (r ⢠a) = MulOpposite.op (star r) ⢠star a) : (c ⢠M).conjTranspose = MulOpposite.op (star c) ⢠M.conjTranspose - Matrix.conjTransposeRingEquiv_apply š Mathlib.Data.Matrix.ConjTranspose
(m : Type u_2) (α : Type v) [Semiring α] [StarRing α] [Fintype m] (M : Matrix m m α) : (Matrix.conjTransposeRingEquiv m α) M = MulOpposite.op M.conjTranspose - Matrix.conjTransposeRingEquiv_symm_apply š Mathlib.Data.Matrix.ConjTranspose
(m : Type u_2) (α : Type v) [Semiring α] [StarRing α] [Fintype m] (M : (Matrix m m α)įµįµįµ) : (Matrix.conjTransposeRingEquiv m α).symm M = (MulOpposite.unop M).conjTranspose - Matrix.mul_single_eq_updateCol_zero š Mathlib.Data.Matrix.RowCol
{l : Type u_1} {m : Type u_2} {n : Type u_3} {α : Type v} [DecidableEq m] [DecidableEq n] [Fintype m] [NonUnitalNonAssocSemiring α] (A : Matrix l m α) (i : m) (j : n) (r : α) : A * Matrix.single i j r = Matrix.updateCol 0 j (MulOpposite.op r ⢠A.col i) - LinearMap.toMatrixRight' š Mathlib.LinearAlgebra.Matrix.ToLin
{R : Type u_1} [Semiring R] {m : Type u_3} {n : Type u_4} [Fintype m] [DecidableEq m] : ((m ā R) āā[R] n ā R) āā[Rįµįµįµ] Matrix m n R - Matrix.toLinearMapRight' š Mathlib.LinearAlgebra.Matrix.ToLin
{R : Type u_1} [Semiring R] {m : Type u_3} {n : Type u_4} [Fintype m] [DecidableEq m] : Matrix m n R āā[Rįµįµįµ] (m ā R) āā[R] n ā R - Matrix.toLinearEquivRight'OfInv_apply š Mathlib.LinearAlgebra.Matrix.ToLin
{R : Type u_1} [Semiring R] {m : Type u_3} {n : Type u_4} [Fintype m] [DecidableEq m] [Fintype n] [DecidableEq n] {M : Matrix m n R} {M' : Matrix n m R} (hMM' : M * M' = 1) (hM'M : M' * M = 1) (a : n ā R) (aā : m) : (Matrix.toLinearEquivRight'OfInv hMM' hM'M) a aā = (Matrix.toLinearMapRight' M') a aā - Matrix.toLinearEquivRight'OfInv_symm_apply š Mathlib.LinearAlgebra.Matrix.ToLin
{R : Type u_1} [Semiring R] {m : Type u_3} {n : Type u_4} [Fintype m] [DecidableEq m] [Fintype n] [DecidableEq n] {M : Matrix m n R} {M' : Matrix n m R} (hMM' : M * M' = 1) (hM'M : M' * M = 1) (a : m ā R) (aā : n) : (Matrix.toLinearEquivRight'OfInv hMM' hM'M).symm a aā = (Matrix.toLinearMapRight' M) a aā - Matrix.toLinearMapRight'_one š Mathlib.LinearAlgebra.Matrix.ToLin
{R : Type u_1} [Semiring R] {m : Type u_3} [Fintype m] [DecidableEq m] : Matrix.toLinearMapRight' 1 = LinearMap.id - Matrix.toLinearMapRight'_apply š Mathlib.LinearAlgebra.Matrix.ToLin
{R : Type u_1} [Semiring R] {m : Type u_3} {n : Type u_4} [Fintype m] [DecidableEq m] (M : Matrix m n R) (v : m ā R) : (Matrix.toLinearMapRight' M) v = Matrix.vecMul v M - Matrix.toLinearMapRight'_mul š Mathlib.LinearAlgebra.Matrix.ToLin
{R : Type u_1} [Semiring R] {l : Type u_2} {m : Type u_3} {n : Type u_4} [Fintype m] [DecidableEq m] [Fintype l] [DecidableEq l] (M : Matrix l m R) (N : Matrix m n R) : Matrix.toLinearMapRight' (M * N) = Matrix.toLinearMapRight' N āā Matrix.toLinearMapRight' M - Matrix.toLinearMapRight'_mul_apply š Mathlib.LinearAlgebra.Matrix.ToLin
{R : Type u_1} [Semiring R] {l : Type u_2} {m : Type u_3} {n : Type u_4} [Fintype m] [DecidableEq m] [Fintype l] [DecidableEq l] (M : Matrix l m R) (N : Matrix m n R) (x : l ā R) : (Matrix.toLinearMapRight' (M * N)) x = (Matrix.toLinearMapRight' N) ((Matrix.toLinearMapRight' M) x) - AlgHom.mulLeftRightMatrix_inv š Mathlib.Algebra.Azumaya.Matrix
(R : Type u_1) (n : Type u_2) [CommSemiring R] [Fintype n] [DecidableEq n] : Module.End R (Matrix n n R) āā[R] TensorProduct R (Matrix n n R) (Matrix n n R)įµįµįµ - AlgHom.mulLeftRightMatrix.comp_inv š Mathlib.Algebra.Azumaya.Matrix
(R : Type u_1) (n : Type u_2) [CommSemiring R] [Fintype n] [DecidableEq n] : (AlgHom.mulLeftRight R (Matrix n n R)).toLinearMap āā AlgHom.mulLeftRightMatrix_inv R n = LinearMap.id - AlgHom.mulLeftRightMatrix.inv_comp š Mathlib.Algebra.Azumaya.Matrix
(R : Type u_1) (n : Type u_2) [CommSemiring R] [Fintype n] [DecidableEq n] : AlgHom.mulLeftRightMatrix_inv R n āā (AlgHom.mulLeftRight R (Matrix n n R)).toLinearMap = LinearMap.id - Matrix.kronecker_diagonal š Mathlib.Data.Matrix.Kronecker
{α : Type u_2} {l : Type u_8} {m : Type u_9} {n : Type u_10} [MulZeroClass α] [DecidableEq n] (A : Matrix l m α) (b : n ā α) : Matrix.kroneckerMap (fun x1 x2 => x1 * x2) A (Matrix.diagonal b) = Matrix.blockDiagonal fun i => MulOpposite.op (b i) ⢠A - Matrix.kronecker_ofNat š Mathlib.Data.Matrix.Kronecker
{α : Type u_2} {l : Type u_8} {m : Type u_9} {n : Type u_10} [NonAssocSemiring α] [DecidableEq n] (A : Matrix l m α) (b : ā) [b.AtLeastTwo] : Matrix.kroneckerMap (fun x1 x2 => x1 * x2) A (OfNat.ofNat b) = Matrix.blockDiagonal fun x => MulOpposite.op (OfNat.ofNat b) ⢠A
About
Loogle searches Lean and Mathlib definitions and theorems.
You can use Loogle from within the Lean4 VSCode language extension
using (by default) Ctrl-K Ctrl-S. You can also try the
#loogle
command from LeanSearchClient,
the CLI version, the Loogle
VS Code extension, the lean.nvim
integration or the Zulip bot.
Usage
Loogle finds definitions and lemmas in various ways:
By constant:
šReal.sin
finds all lemmas whose statement somehow mentions the sine function.By lemma name substring:
š"differ"
finds all lemmas that have"differ"
somewhere in their lemma name.By subexpression:
š_ * (_ ^ _)
finds all lemmas whose statements somewhere include a product where the second argument is raised to some power.The pattern can also be non-linear, as in
šReal.sqrt ?a * Real.sqrt ?a
If the pattern has parameters, they are matched in any order. Both of these will find
List.map
:
š(?a -> ?b) -> List ?a -> List ?b
šList ?a -> (?a -> ?b) -> List ?b
By main conclusion:
š|- tsum _ = _ * tsum _
finds all lemmas where the conclusion (the subexpression to the right of allā
andā
) has the given shape.As before, if the pattern has parameters, they are matched against the hypotheses of the lemma in any order; for example,
š|- _ < _ ā tsum _ < tsum _
will findtsum_lt_tsum
even though the hypothesisf i < g i
is not the last.
If you pass more than one such search filter, separated by commas
Loogle will return lemmas which match all of them. The
search
š Real.sin, "two", tsum, _ * _, _ ^ _, |- _ < _ ā _
would find all lemmas which mention the constants Real.sin
and tsum
, have "two"
as a substring of the
lemma name, include a product and a power somewhere in the type,
and have a hypothesis of the form _ < _
(if
there were any such lemmas). Metavariables (?a
) are
assigned independently in each filter.
The #lucky
button will directly send you to the
documentation of the first hit.
Source code
You can find the source code for this service at https://github.com/nomeata/loogle. The https://loogle.lean-lang.org/ service is provided by the Lean FRO.
This is Loogle revision 19971e9
serving mathlib revision bce1d65