ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Basis.toMatrix_update
theorem toMatrix_update [DecidableEq ι'] (x : M) :
    e.toMatrix (Function.update v j x) = Matrix.updateColumn (e.toMatrix v) j (e.repr x) 
Arguments: {ι : Type u_1} {ι' : Type u_2} {R : Type u_5} {M : Type u_6} [CommSemiring R] [AddCommMonoid M] [Module R M] (e : Basis ι R M) (v : ι' → M) (j : ι') [DecidableEq ι'] (x : M)
Goal: e.toMatrix (Function.update v j x) = (e.toMatrix v).updateColumn j ⇑(e.repr x)
-- Basis.toMatrix_unitsSMul
@[simp]
theorem toMatrix_unitsSMul [DecidableEq ι] (e : Basis ι R₂ M₂) (w : ι → R₂ˣ) :
    e.toMatrix (e.unitsSMul w) = diagonal ((↑) ∘ w) 
Arguments: {ι : Type u_1} {R₂ : Type u_7} {M₂ : Type u_8} [CommRing R₂] [AddCommGroup M₂] [Module R₂ M₂] [DecidableEq ι] (e : Basis ι R₂ M₂) (w : ι → R₂ˣ)
Goal: e.toMatrix ⇑(e.unitsSMul w) = Matrix.diagonal (Units.val ∘ w)
-- Basis.toMatrix_isUnitSMul
@[simp]
theorem toMatrix_isUnitSMul [DecidableEq ι] (e : Basis ι R₂ M₂) {w : ι → R₂}
    (hw : ∀ i, IsUnit (w i)) : e.toMatrix (e.isUnitSMul hw) = diagonal w 
Arguments: {ι : Type u_1} {R₂ : Type u_7} {M₂ : Type u_8} [CommRing R₂] [AddCommGroup M₂] [Module R₂ M₂] [DecidableEq ι] (e : Basis ι R₂ M₂) {w : ι → R₂} (hw : ∀ (i : ι), IsUnit (w i))
Goal: e.toMatrix ⇑(e.isUnitSMul hw) = Matrix.diagonal w
-- Basis.toMatrix_smul_left
theorem toMatrix_smul_left {G} [Group G] [DistribMulAction G M] [SMulCommClass G R M] (g : G) :
    (g • e).toMatrix v = e.toMatrix (g⁻¹ • v) 
Arguments: {ι : Type u_1} {ι' : Type u_2} {R : Type u_5} {M : Type u_6} [CommSemiring R] [AddCommMonoid M] [Module R M] (e : Basis ι R M) (v : ι' → M) {G : Type u_9} [Group G] [DistribMulAction G M] [SMulCommClass G R M] (g : G)
Goal: (g • e).toMatrix v = e.toMatrix (g⁻¹ • v)
-- Basis.sum_toMatrix_smul_self
@[simp]
theorem sum_toMatrix_smul_self [Fintype ι] : ∑ i : ι, e.toMatrix v i j • e i = v j 
Arguments: {ι : Type u_1} {ι' : Type u_2} {R : Type u_5} {M : Type u_6} [CommSemiring R] [AddCommMonoid M] [Module R M] (e : Basis ι R M) (v : ι' → M) (j : ι') [Fintype ι]
Goal: ∑ i : ι, e.toMatrix v i j • e i = v j
-- Basis.toMatrix_smul
theorem toMatrix_smul {R₁ S : Type*} [CommRing R₁] [Ring S] [Algebra R₁ S] [Fintype ι]
    [DecidableEq ι] (x : S) (b : Basis ι R₁ S) (w : ι → S) :
    (b.toMatrix (x • w)) = (Algebra.leftMulMatrix b x) * (b.toMatrix w) 
Arguments: {ι : Type u_1} {R₁ : Type u_9} {S : Type u_10} [CommRing R₁] [Ring S] [Algebra R₁ S] [Fintype ι] [DecidableEq ι] (x : S) (b : Basis ι R₁ S) (w : ι → S)
Goal: b.toMatrix (x • w) = (Algebra.leftMulMatrix b) x * b.toMatrix w
-- Basis.toMatrix_map_vecMul
theorem toMatrix_map_vecMul {S : Type*} [Ring S] [Algebra R S] [Fintype ι] (b : Basis ι R S)
    (v : ι' → S) : b ᵥ* ((b.toMatrix v).map <| algebraMap R S) = v 
Arguments: {ι : Type u_1} {ι' : Type u_2} {R : Type u_5} [CommSemiring R] {S : Type u_9} [Ring S] [Algebra R S] [Fintype ι] (b : Basis ι R S) (v : ι' → S)
Goal: ⇑b ᵥ* (b.toMatrix v).map ⇑(algebraMap R S) = v
-- Basis.toLin_toMatrix
@[simp]
theorem toLin_toMatrix [Finite ι] [Fintype ι'] [DecidableEq ι'] (v : Basis ι' R M) :
    Matrix.toLin v e (e.toMatrix v) = LinearMap.id 
Arguments: {ι : Type u_1} {ι' : Type u_2} {R : Type u_5} {M : Type u_6} [CommSemiring R] [AddCommMonoid M] [Module R M] (e : Basis ι R M) [Finite ι] [Fintype ι'] [DecidableEq ι'] (v : Basis ι' R M)
Goal: (Matrix.toLin v e) (e.toMatrix ⇑v) = LinearMap.id
-- Basis.restrictScalars_toMatrix
theorem restrictScalars_toMatrix [Fintype ι] [DecidableEq ι] {S : Type*} [CommRing S] [Nontrivial S]
    [Algebra R₂ S] [Module S M₂] [IsScalarTower R₂ S M₂] [NoZeroSMulDivisors R₂ S]
    (b : Basis ι S M₂) (v : ι → span R₂ (Set.range b)) :
    (algebraMap R₂ S).mapMatrix ((b.restrictScalars R₂).toMatrix v) =
      b.toMatrix (fun i ↦ (v i : M₂)) 
Arguments: {ι : Type u_1} (R₂ : Type u_7) {M₂ : Type u_8} [CommRing R₂] [AddCommGroup M₂] [Module R₂ M₂] [Fintype ι] [DecidableEq ι] {S : Type u_9} [CommRing S] [Nontrivial S] [Algebra R₂ S] [Module S M₂] [IsScalarTower R₂ S M₂] [NoZeroSMulDivisors R₂ S] (b : Basis ι S M₂) (v : ι → ↥(Submodule.span R₂ (Set.range ⇑b)))
Goal: (algebraMap R₂ S).mapMatrix ((Basis.restrictScalars R₂ b).toMatrix v) = b.toMatrix fun i => ↑(v i)
-- LinearMap.toMatrix_id_eq_basis_toMatrix
@[simp]
theorem LinearMap.toMatrix_id_eq_basis_toMatrix [Fintype ι] [DecidableEq ι] [Finite ι'] :
    LinearMap.toMatrix b b' id = b'.toMatrix b 
Arguments: {ι : Type u_1} {ι' : Type u_2} {R : Type u_5} {M : Type u_6} [CommSemiring R] [AddCommMonoid M] [Module R M] (b : Basis ι R M) (b' : Basis ι' R M) [Fintype ι] [DecidableEq ι] [Finite ι']
Goal: (LinearMap.toMatrix b b') LinearMap.id = b'.toMatrix ⇑b
-- basis_toMatrix_mul_linearMap_toMatrix
@[simp]
theorem basis_toMatrix_mul_linearMap_toMatrix [Finite κ] [Fintype κ'] [DecidableEq ι'] :
    c.toMatrix c' * LinearMap.toMatrix b' c' f = LinearMap.toMatrix b' c f 
Arguments: {ι' : Type u_2} {κ : Type u_3} {κ' : Type u_4} {R : Type u_5} {M : Type u_6} [CommSemiring R] [AddCommMonoid M] [Module R M] {N : Type u_9} [AddCommMonoid N] [Module R N] (b' : Basis ι' R M) (c : Basis κ R N) (c' : Basis κ' R N) (f : M →ₗ[R] N) [Fintype ι'] [Finite κ] [Fintype κ'] [DecidableEq ι']
Goal: c.toMatrix ⇑c' * (LinearMap.toMatrix b' c') f = (LinearMap.toMatrix b' c) f
-- basis_toMatrix_mul
theorem basis_toMatrix_mul [Fintype κ] [Finite ι] [DecidableEq κ]
    (b₁ : Basis ι R M) (b₂ : Basis ι' R M) (b₃ : Basis κ R N) (A : Matrix ι' κ R) :
    b₁.toMatrix b₂ * A = LinearMap.toMatrix b₃ b₁ (toLin b₃ b₂ A) 
Arguments: {ι : Type u_1} {ι' : Type u_2} {κ : Type u_3} {R : Type u_5} {M : Type u_6} [CommSemiring R] [AddCommMonoid M] [Module R M] {N : Type u_9} [AddCommMonoid N] [Module R N] [Fintype ι'] [Fintype κ] [Finite ι] [DecidableEq κ] (b₁ : Basis ι R M) (b₂ : Basis ι' R M) (b₃ : Basis κ R N) (A : Matrix ι' κ R)
Goal: b₁.toMatrix ⇑b₂ * A = (LinearMap.toMatrix b₃ b₁) ((Matrix.toLin b₃ b₂) A)
-- linearMap_toMatrix_mul_basis_toMatrix
@[simp]
theorem linearMap_toMatrix_mul_basis_toMatrix [Finite κ'] [DecidableEq ι] [DecidableEq ι'] :
    LinearMap.toMatrix b' c' f * b'.toMatrix b = LinearMap.toMatrix b c' f 
Arguments: {ι : Type u_1} {ι' : Type u_2} {κ' : Type u_4} {R : Type u_5} {M : Type u_6} [CommSemiring R] [AddCommMonoid M] [Module R M] {N : Type u_9} [AddCommMonoid N] [Module R N] (b : Basis ι R M) (b' : Basis ι' R M) (c' : Basis κ' R N) (f : M →ₗ[R] N) [Fintype ι'] [Fintype ι] [Finite κ'] [DecidableEq ι] [DecidableEq ι']
Goal: (LinearMap.toMatrix b' c') f * b'.toMatrix ⇑b = (LinearMap.toMatrix b c') f
-- basis_toMatrix_mul_linearMap_toMatrix_mul_basis_toMatrix
theorem basis_toMatrix_mul_linearMap_toMatrix_mul_basis_toMatrix
    [Fintype κ'] [DecidableEq ι] [DecidableEq ι'] :
    c.toMatrix c' * LinearMap.toMatrix b' c' f * b'.toMatrix b = LinearMap.toMatrix b c f 
Arguments: {ι : Type u_1} {ι' : Type u_2} {κ : Type u_3} {κ' : Type u_4} {R : Type u_5} {M : Type u_6} [CommSemiring R] [AddCommMonoid M] [Module R M] {N : Type u_9} [AddCommMonoid N] [Module R N] (b : Basis ι R M) (b' : Basis ι' R M) (c : Basis κ R N) (c' : Basis κ' R N) (f : M →ₗ[R] N) [Fintype ι'] [Finite κ] [Fintype ι] [Fintype κ'] [DecidableEq ι] [DecidableEq ι']
Goal: c.toMatrix ⇑c' * (LinearMap.toMatrix b' c') f * b'.toMatrix ⇑b = (LinearMap.toMatrix b c) f
-- mul_basis_toMatrix
theorem mul_basis_toMatrix [DecidableEq ι] [DecidableEq ι'] (b₁ : Basis ι R M) (b₂ : Basis ι' R M)
    (b₃ : Basis κ R N) (A : Matrix κ ι R) :
    A * b₁.toMatrix b₂ = LinearMap.toMatrix b₂ b₃ (toLin b₁ b₃ A) 
Arguments: {ι : Type u_1} {ι' : Type u_2} {κ : Type u_3} {R : Type u_5} {M : Type u_6} [CommSemiring R] [AddCommMonoid M] [Module R M] {N : Type u_9} [AddCommMonoid N] [Module R N] [Fintype ι'] [Finite κ] [Fintype ι] [DecidableEq ι] [DecidableEq ι'] (b₁ : Basis ι R M) (b₂ : Basis ι' R M) (b₃ : Basis κ R N) (A : Matrix κ ι R)
Goal: A * b₁.toMatrix ⇑b₂ = (LinearMap.toMatrix b₂ b₃) ((Matrix.toLin b₁ b₃) A)
-- basis_toMatrix_basisFun_mul
theorem basis_toMatrix_basisFun_mul (b : Basis ι R (ι → R)) (A : Matrix ι ι R) :
    b.toMatrix (Pi.basisFun R ι) * A = of fun i j => b.repr (Aᵀ j) i 
Arguments: {ι : Type u_1} {R : Type u_5} [CommSemiring R] [Fintype ι] (b : Basis ι R (ι → R)) (A : Matrix ι ι R)
Goal: b.toMatrix ⇑(Pi.basisFun R ι) * A = Matrix.of fun i j => (b.repr (Aᵀ j)) i
-- Basis.toMatrix_reindex'
theorem Basis.toMatrix_reindex' [DecidableEq ι] [DecidableEq ι'] (b : Basis ι R M) (v : ι' → M)
    (e : ι ≃ ι') : (b.reindex e).toMatrix v =
    Matrix.reindexAlgEquiv R R e (b.toMatrix (v ∘ e)) 
Arguments: {ι : Type u_1} {ι' : Type u_2} {R : Type u_5} {M : Type u_6} [CommSemiring R] [AddCommMonoid M] [Module R M] [Fintype ι'] [Fintype ι] [DecidableEq ι] [DecidableEq ι'] (b : Basis ι R M) (v : ι' → M) (e : ι ≃ ι')
Goal: (b.reindex e).toMatrix v = (Matrix.reindexAlgEquiv R R e) (b.toMatrix (v ∘ ⇑e))
-- Basis.toMatrix_mul_toMatrix
@[simp]
theorem Basis.toMatrix_mul_toMatrix {ι'' : Type*} [Fintype ι'] (b'' : ι'' → M) :
    b.toMatrix b' * b'.toMatrix b'' = b.toMatrix b'' 
Arguments: {ι : Type u_1} {ι' : Type u_2} {R : Type u_5} {M : Type u_6} [CommSemiring R] [AddCommMonoid M] [Module R M] (b : Basis ι R M) (b' : Basis ι' R M) {ι'' : Type u_10} [Fintype ι'] (b'' : ι'' → M)
Goal: b.toMatrix ⇑b' * b'.toMatrix b'' = b.toMatrix b''
-- Basis.toMatrix_mul_toMatrix_flip
theorem Basis.toMatrix_mul_toMatrix_flip [DecidableEq ι] [Fintype ι'] :
    b.toMatrix b' * b'.toMatrix b = 1 
Arguments: {ι : Type u_1} {ι' : Type u_2} {R : Type u_5} {M : Type u_6} [CommSemiring R] [AddCommMonoid M] [Module R M] (b : Basis ι R M) (b' : Basis ι' R M) [DecidableEq ι] [Fintype ι']
Goal: b.toMatrix ⇑b' * b'.toMatrix ⇑b = 1
-- Basis.toMatrix_reindex
@[simp]
theorem Basis.toMatrix_reindex (b : Basis ι R M) (v : ι' → M) (e : ι ≃ ι') :
    (b.reindex e).toMatrix v = (b.toMatrix v).submatrix e.symm _root_.id 
Arguments: {ι : Type u_1} {ι' : Type u_2} {R : Type u_5} {M : Type u_6} [CommSemiring R] [AddCommMonoid M] [Module R M] (b : Basis ι R M) (v : ι' → M) (e : ι ≃ ι')
Goal: (b.reindex e).toMatrix v = (b.toMatrix v).submatrix (⇑e.symm) id
-- Basis.toMatrix_map
@[simp]
theorem Basis.toMatrix_map (b : Basis ι R M) (f : M ≃ₗ[R] N) (v : ι → N) :
    (b.map f).toMatrix v = b.toMatrix (f.symm ∘ v) 
Arguments: {ι : Type u_1} {R : Type u_5} {M : Type u_6} [CommSemiring R] [AddCommMonoid M] [Module R M] {N : Type u_9} [AddCommMonoid N] [Module R N] (b : Basis ι R M) (f : M ≃ₗ[R] N) (v : ι → N)
Goal: (b.map f).toMatrix v = b.toMatrix (⇑f.symm ∘ v)
-- Matrix.isDiag_diagonal
@[simp]
theorem isDiag_diagonal [Zero α] [DecidableEq n] (d : n → α) : (diagonal d).IsDiag 
Arguments: {α : Type u_1} {n : Type u_4} [Zero α] [DecidableEq n] (d : n → α)
Goal: (Matrix.diagonal d).IsDiag
-- Matrix.IsDiag.diagonal_diag
theorem IsDiag.diagonal_diag [Zero α] [DecidableEq n] {A : Matrix n n α} (h : A.IsDiag) :
    diagonal (diag A) = A 
Arguments: {α : Type u_1} {n : Type u_4} [Zero α] [DecidableEq n] {A : Matrix n n α} (h : A.IsDiag)
Goal: Matrix.diagonal A.diag = A
-- Matrix.isDiag_iff_diagonal_diag
theorem isDiag_iff_diagonal_diag [Zero α] [DecidableEq n] (A : Matrix n n α) :
    A.IsDiag ↔ diagonal (diag A) = A 
Arguments: {α : Type u_1} {n : Type u_4} [Zero α] [DecidableEq n] (A : Matrix n n α)
Goal: A.IsDiag ↔ Matrix.diagonal A.diag = A
-- Matrix.isDiag_of_subsingleton
theorem isDiag_of_subsingleton [Zero α] [Subsingleton n] (A : Matrix n n α) : A.IsDiag 
Arguments: {α : Type u_1} {n : Type u_4} [Zero α] [Subsingleton n] (A : Matrix n n α)
Goal: A.IsDiag
-- Matrix.isDiag_zero
@[simp]
theorem isDiag_zero [Zero α] : (0 : Matrix n n α).IsDiag 
Arguments: {α : Type u_1} {n : Type u_4} [Zero α]
Goal: Matrix.IsDiag 0
-- Matrix.isDiag_one
@[simp]
theorem isDiag_one [DecidableEq n] [Zero α] [One α] : (1 : Matrix n n α).IsDiag 
Arguments: {α : Type u_1} {n : Type u_4} [DecidableEq n] [Zero α] [One α]
Goal: Matrix.IsDiag 1
-- Matrix.IsDiag.map
theorem IsDiag.map [Zero α] [Zero β] {A : Matrix n n α} (ha : A.IsDiag) {f : α → β} (hf : f 0 = 0) :
    (A.map f).IsDiag 
Arguments: {α : Type u_1} {β : Type u_2} {n : Type u_4} [Zero α] [Zero β] {A : Matrix n n α} (ha : A.IsDiag) {f : α → β} (hf : f 0 = 0)
Goal: (A.map f).IsDiag
-- Matrix.IsDiag.neg
theorem IsDiag.neg [AddGroup α] {A : Matrix n n α} (ha : A.IsDiag) : (-A).IsDiag 
Arguments: {α : Type u_1} {n : Type u_4} [AddGroup α] {A : Matrix n n α} (ha : A.IsDiag)
Goal: (-A).IsDiag
-- Matrix.isDiag_neg_iff
@[simp]
theorem isDiag_neg_iff [AddGroup α] {A : Matrix n n α} : (-A).IsDiag ↔ A.IsDiag 
Arguments: {α : Type u_1} {n : Type u_4} [AddGroup α] {A : Matrix n n α}
Goal: (-A).IsDiag ↔ A.IsDiag
-- Matrix.IsDiag.add
theorem IsDiag.add [AddZeroClass α] {A B : Matrix n n α} (ha : A.IsDiag) (hb : B.IsDiag) :
    (A + B).IsDiag 
Arguments: {α : Type u_1} {n : Type u_4} [AddZeroClass α] {A B : Matrix n n α} (ha : A.IsDiag) (hb : B.IsDiag)
Goal: (A + B).IsDiag
-- Matrix.IsDiag.sub
theorem IsDiag.sub [AddGroup α] {A B : Matrix n n α} (ha : A.IsDiag) (hb : B.IsDiag) :
    (A - B).IsDiag 
Arguments: {α : Type u_1} {n : Type u_4} [AddGroup α] {A B : Matrix n n α} (ha : A.IsDiag) (hb : B.IsDiag)
Goal: (A - B).IsDiag
-- Matrix.IsDiag.smul
theorem IsDiag.smul [Monoid R] [AddMonoid α] [DistribMulAction R α] (k : R) {A : Matrix n n α}
    (ha : A.IsDiag) : (k • A).IsDiag 
Arguments: {α : Type u_1} {R : Type u_3} {n : Type u_4} [Monoid R] [AddMonoid α] [DistribMulAction R α] (k : R) {A : Matrix n n α} (ha : A.IsDiag)
Goal: (k • A).IsDiag
-- Matrix.isDiag_smul_one
@[simp]
theorem isDiag_smul_one (n) [Semiring α] [DecidableEq n] (k : α) :
    (k • (1 : Matrix n n α)).IsDiag 
Arguments: {α : Type u_1} (n : Type u_6) [Semiring α] [DecidableEq n] (k : α)
Goal: (k • 1).IsDiag
-- Matrix.IsDiag.transpose
theorem IsDiag.transpose [Zero α] {A : Matrix n n α} (ha : A.IsDiag) : Aᵀ.IsDiag 
Arguments: {α : Type u_1} {n : Type u_4} [Zero α] {A : Matrix n n α} (ha : A.IsDiag)
Goal: A.transpose.IsDiag
-- Matrix.isDiag_transpose_iff
@[simp]
theorem isDiag_transpose_iff [Zero α] {A : Matrix n n α} : Aᵀ.IsDiag ↔ A.IsDiag 
Arguments: {α : Type u_1} {n : Type u_4} [Zero α] {A : Matrix n n α}
Goal: A.transpose.IsDiag ↔ A.IsDiag
-- Matrix.IsDiag.conjTranspose
theorem IsDiag.conjTranspose [Semiring α] [StarRing α] {A : Matrix n n α} (ha : A.IsDiag) :
    Aᴴ.IsDiag 
Arguments: {α : Type u_1} {n : Type u_4} [Semiring α] [StarRing α] {A : Matrix n n α} (ha : A.IsDiag)
Goal: A.conjTranspose.IsDiag
-- Matrix.isDiag_conjTranspose_iff
@[simp]
theorem isDiag_conjTranspose_iff [Semiring α] [StarRing α] {A : Matrix n n α} :
    Aᴴ.IsDiag ↔ A.IsDiag 
Arguments: {α : Type u_1} {n : Type u_4} [Semiring α] [StarRing α] {A : Matrix n n α}
Goal: A.conjTranspose.IsDiag ↔ A.IsDiag
-- Matrix.IsDiag.submatrix
theorem IsDiag.submatrix [Zero α] {A : Matrix n n α} (ha : A.IsDiag) {f : m → n}
    (hf : Injective f) : (A.submatrix f f).IsDiag 
Arguments: {α : Type u_1} {n : Type u_4} {m : Type u_5} [Zero α] {A : Matrix n n α} (ha : A.IsDiag) {f : m → n} (hf : Function.Injective f)
Goal: (A.submatrix f f).IsDiag
-- Matrix.IsDiag.kronecker
theorem IsDiag.kronecker [MulZeroClass α] {A : Matrix m m α} {B : Matrix n n α} (hA : A.IsDiag)
    (hB : B.IsDiag) : (A ⊗ₖ B).IsDiag 
Arguments: {α : Type u_1} {n : Type u_4} {m : Type u_5} [MulZeroClass α] {A : Matrix m m α} {B : Matrix n n α} (hA : A.IsDiag) (hB : B.IsDiag)
Goal: (Matrix.kroneckerMap (fun x x_1 => x * x_1) A B).IsDiag
-- Matrix.IsDiag.isSymm
theorem IsDiag.isSymm [Zero α] {A : Matrix n n α} (h : A.IsDiag) : A.IsSymm 
Arguments: {α : Type u_1} {n : Type u_4} [Zero α] {A : Matrix n n α} (h : A.IsDiag)
Goal: A.IsSymm
-- Matrix.IsDiag.fromBlocks
theorem IsDiag.fromBlocks [Zero α] {A : Matrix m m α} {D : Matrix n n α} (ha : A.IsDiag)
    (hd : D.IsDiag) : (A.fromBlocks 0 0 D).IsDiag 
Arguments: {α : Type u_1} {n : Type u_4} {m : Type u_5} [Zero α] {A : Matrix m m α} {D : Matrix n n α} (ha : A.IsDiag) (hd : D.IsDiag)
Goal: (Matrix.fromBlocks A 0 0 D).IsDiag
-- Matrix.isDiag_fromBlocks_iff
theorem isDiag_fromBlocks_iff [Zero α] {A : Matrix m m α} {B : Matrix m n α} {C : Matrix n m α}
    {D : Matrix n n α} : (A.fromBlocks B C D).IsDiag ↔ A.IsDiag ∧ B = 0 ∧ C = 0 ∧ D.IsDiag 
Arguments: {α : Type u_1} {n : Type u_4} {m : Type u_5} [Zero α] {A : Matrix m m α} {B : Matrix m n α} {C : Matrix n m α} {D : Matrix n n α}
Goal: (Matrix.fromBlocks A B C D).IsDiag ↔ A.IsDiag ∧ B = 0 ∧ C = 0 ∧ D.IsDiag
-- Matrix.IsDiag.fromBlocks_of_isSymm
theorem IsDiag.fromBlocks_of_isSymm [Zero α] {A : Matrix m m α} {C : Matrix n m α}
    {D : Matrix n n α} (h : (A.fromBlocks 0 C D).IsSymm) (ha : A.IsDiag) (hd : D.IsDiag) :
    (A.fromBlocks 0 C D).IsDiag 
Arguments: {α : Type u_1} {n : Type u_4} {m : Type u_5} [Zero α] {A : Matrix m m α} {C : Matrix n m α} {D : Matrix n n α} (h : (Matrix.fromBlocks A 0 C D).IsSymm) (ha : A.IsDiag) (hd : D.IsDiag)
Goal: (Matrix.fromBlocks A 0 C D).IsDiag
-- Matrix.mul_transpose_self_isDiag_iff_hasOrthogonalRows
theorem mul_transpose_self_isDiag_iff_hasOrthogonalRows [Fintype n] [Mul α] [AddCommMonoid α]
    {A : Matrix m n α} : (A * Aᵀ).IsDiag ↔ A.HasOrthogonalRows 
Arguments: {α : Type u_1} {n : Type u_4} {m : Type u_5} [Fintype n] [Mul α] [AddCommMonoid α] {A : Matrix m n α}
Goal: (A * A.transpose).IsDiag ↔ A.HasOrthogonalRows
-- Matrix.transpose_mul_self_isDiag_iff_hasOrthogonalCols
theorem transpose_mul_self_isDiag_iff_hasOrthogonalCols [Fintype m] [Mul α] [AddCommMonoid α]
    {A : Matrix m n α} : (Aᵀ * A).IsDiag ↔ A.HasOrthogonalCols 
Arguments: {α : Type u_1} {n : Type u_4} {m : Type u_5} [Fintype m] [Mul α] [AddCommMonoid α] {A : Matrix m n α}
Goal: (A.transpose * A).IsDiag ↔ A.HasOrthogonalCols
-- Matrix.det_permutation
@[simp]
theorem det_permutation [CommRing R] : det (σ.permMatrix R) = Perm.sign σ 
Arguments: {n : Type u_1} {R : Type u_2} [DecidableEq n] [Fintype n] (σ : Equiv.Perm n) [CommRing R]
Goal: (Equiv.Perm.permMatrix R σ).det = ↑↑(Equiv.Perm.sign σ)
-- Matrix.trace_permutation
theorem trace_permutation [AddCommMonoidWithOne R] :
    trace (σ.permMatrix R) = (Function.fixedPoints σ).ncard 
Arguments: {n : Type u_1} {R : Type u_2} [DecidableEq n] [Fintype n] (σ : Equiv.Perm n) [AddCommMonoidWithOne R]
Goal: (Equiv.Perm.permMatrix R σ).trace = ↑(Function.fixedPoints ⇑σ).ncard
-- Subalgebra.lTensorBot_tmul
@[simp]
theorem lTensorBot_tmul (x : R) (a : A) : A.lTensorBot (algebraMap R _ x ⊗ₜ[R] a) = x • a 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {A : Subalgebra R S} (x : R) (a : ↥A)
Goal: A.lTensorBot ((algebraMap R ↥⊥) x ⊗ₜ[R] a) = x • a
-- Subalgebra.lTensorBot_one_tmul
@[simp]
theorem lTensorBot_one_tmul (a : A) : A.lTensorBot (1 ⊗ₜ[R] a) = a 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {A : Subalgebra R S} (a : ↥A)
Goal: A.lTensorBot (1 ⊗ₜ[R] a) = a
-- Subalgebra.lTensorBot_symm_apply
@[simp]
theorem lTensorBot_symm_apply (a : A) : A.lTensorBot.symm a = 1 ⊗ₜ[R] a 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {A : Subalgebra R S} (a : ↥A)
Goal: A.lTensorBot.symm a = 1 ⊗ₜ[R] a
-- Subalgebra.rTensorBot_tmul
@[simp]
theorem rTensorBot_tmul (x : R) (a : A) : A.rTensorBot (a ⊗ₜ[R] algebraMap R _ x) = x • a 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {A : Subalgebra R S} (x : R) (a : ↥A)
Goal: A.rTensorBot (a ⊗ₜ[R] (algebraMap R ↥⊥) x) = x • a
-- Subalgebra.rTensorBot_tmul_one
@[simp]
theorem rTensorBot_tmul_one (a : A) : A.rTensorBot (a ⊗ₜ[R] 1) = a 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {A : Subalgebra R S} (a : ↥A)
Goal: A.rTensorBot (a ⊗ₜ[R] 1) = a
-- Subalgebra.rTensorBot_symm_apply
@[simp]
theorem rTensorBot_symm_apply (a : A) : A.rTensorBot.symm a = a ⊗ₜ[R] 1 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {A : Subalgebra R S} (a : ↥A)
Goal: A.rTensorBot.symm a = a ⊗ₜ[R] 1
-- Subalgebra.comm_trans_lTensorBot
@[simp]
theorem comm_trans_lTensorBot :
    (Algebra.TensorProduct.comm R _ _).trans A.lTensorBot = A.rTensorBot 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] (A : Subalgebra R S)
Goal: (Algebra.TensorProduct.comm R ↥A ↥⊥).trans A.lTensorBot = A.rTensorBot
-- Subalgebra.comm_trans_rTensorBot
@[simp]
theorem comm_trans_rTensorBot :
    (Algebra.TensorProduct.comm R _ _).trans A.rTensorBot = A.lTensorBot 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] (A : Subalgebra R S)
Goal: (Algebra.TensorProduct.comm R ↥⊥ ↥A).trans A.rTensorBot = A.lTensorBot
-- Subalgebra.mulMap_tmul
@[simp]
theorem mulMap_tmul (a : A) (b : B) : mulMap A B (a ⊗ₜ[R] b) = a.1 * b.1 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] [Algebra R S] (A B : Subalgebra R S) (a : ↥A) (b : ↥B)
Goal: (A.mulMap B) (a ⊗ₜ[R] b) = ↑a * ↑b
-- Subalgebra.mulMap_toLinearMap
theorem mulMap_toLinearMap : (A.mulMap B).toLinearMap = (toSubmodule A).mulMap (toSubmodule B) 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] [Algebra R S] (A B : Subalgebra R S)
Goal: (A.mulMap B).toLinearMap = (Subalgebra.toSubmodule A).mulMap (Subalgebra.toSubmodule B)
-- Subalgebra.mulMap_comm
theorem mulMap_comm : mulMap B A = (mulMap A B).comp (Algebra.TensorProduct.comm R B A) 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] [Algebra R S] (A B : Subalgebra R S)
Goal: B.mulMap A = (A.mulMap B).comp ↑(Algebra.TensorProduct.comm R ↥B ↥A)
-- Subalgebra.mulMap_range
theorem mulMap_range : (A.mulMap B).range = A ⊔ B 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] [Algebra R S] (A B : Subalgebra R S)
Goal: (A.mulMap B).range = A ⊔ B
-- Subalgebra.mulMap_bot_left_eq
theorem mulMap_bot_left_eq : mulMap ⊥ A = A.val.comp A.lTensorBot.toAlgHom 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] [Algebra R S] (A : Subalgebra R S)
Goal: ⊥.mulMap A = A.val.comp ↑A.lTensorBot
-- Subalgebra.mulMap_bot_right_eq
theorem mulMap_bot_right_eq : mulMap A ⊥ = A.val.comp A.rTensorBot.toAlgHom 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] [Algebra R S] (A : Subalgebra R S)
Goal: A.mulMap ⊥ = A.val.comp ↑A.rTensorBot
-- Subalgebra.val_mulMap'_tmul
@[simp]
theorem val_mulMap'_tmul (a : A) (b : B) : (mulMap' A B (a ⊗ₜ[R] b) : S) = a.1 * b.1 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] [Algebra R S] {A B : Subalgebra R S} (a : ↥A) (b : ↥B)
Goal: ↑((A.mulMap' B) (a ⊗ₜ[R] b)) = ↑a * ↑b
-- Subalgebra.mulMap'_surjective
theorem mulMap'_surjective : Function.Surjective (mulMap' A B) 
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] [Algebra R S] (A B : Subalgebra R S)
Goal: Function.Surjective ⇑(A.mulMap' B)
-- Subalgebra.rank_sup_le_of_free
theorem rank_sup_le_of_free [Module.Free R A] [Module.Free R B] :
    Module.rank R ↥(A ⊔ B) ≤ Module.rank R A * Module.rank R B 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (A B : Subalgebra R S) [Module.Free R ↥A] [Module.Free R ↥B]
Goal: Module.rank R ↥(A ⊔ B) ≤ Module.rank R ↥A * Module.rank R ↥B
-- Subalgebra.finrank_sup_le_of_free
theorem finrank_sup_le_of_free [Module.Free R A] [Module.Free R B] :
    finrank R ↥(A ⊔ B) ≤ finrank R A * finrank R B 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (A B : Subalgebra R S) [Module.Free R ↥A] [Module.Free R ↥B]
Goal: FiniteDimensional.finrank R ↥(A ⊔ B) ≤ FiniteDimensional.finrank R ↥A * FiniteDimensional.finrank R ↥B
-- Matrix.proj_diagonal
theorem proj_diagonal (i : n) (w : n → R) : (proj i).comp (toLin' (diagonal w)) = w i • proj i 
Arguments: {n : Type u_1} [Fintype n] [DecidableEq n] {R : Type v} [CommSemiring R] (i : n) (w : n → R)
Goal: LinearMap.proj i ∘ₗ Matrix.toLin' (Matrix.diagonal w) = w i • LinearMap.proj i
-- Matrix.diagonal_comp_stdBasis
theorem diagonal_comp_stdBasis (w : n → R) (i : n) :
    (diagonal w).toLin'.comp (LinearMap.stdBasis R (fun _ : n => R) i) =
      w i • LinearMap.stdBasis R (fun _ : n => R) i 
Arguments: {n : Type u_1} [Fintype n] [DecidableEq n] {R : Type v} [CommSemiring R] (w : n → R) (i : n)
Goal: Matrix.toLin' (Matrix.diagonal w) ∘ₗ LinearMap.stdBasis R (fun x => R) i = w i • LinearMap.stdBasis R (fun x => R) i
-- Matrix.diagonal_toLin'
theorem diagonal_toLin' (w : n → R) :
    toLin' (diagonal w) = LinearMap.pi fun i => w i • LinearMap.proj i 
Arguments: {n : Type u_1} [Fintype n] [DecidableEq n] {R : Type v} [CommSemiring R] (w : n → R)
Goal: Matrix.toLin' (Matrix.diagonal w) = LinearMap.pi fun i => w i • LinearMap.proj i