ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- LinearMap.exists_monic_and_coeff_mem_pow_and_aeval_eq_zero_of_range_le_smul
theorem LinearMap.exists_monic_and_coeff_mem_pow_and_aeval_eq_zero_of_range_le_smul
    [Module.Finite R M] (f : Module.End R M) (I : Ideal R) (hI : LinearMap.range f ≤ I • ⊤) :
    ∃ p : R[X], p.Monic ∧ (∀ k, p.coeff k ∈ I ^ (p.natDegree - k)) ∧ Polynomial.aeval f p = 0 
Arguments: {M : Type u_2} [AddCommGroup M] (R : Type u_3) [CommRing R] [Module R M] [Module.Finite R M] (f : Module.End R M) (I : Ideal R) (hI : LinearMap.range f ≤ I • ⊤)
Goal: ∃ p, p.Monic ∧ (∀ (k : ℕ), p.coeff k ∈ I ^ (p.natDegree - k)) ∧ (Polynomial.aeval f) p = 0
-- LinearMap.exists_monic_and_aeval_eq_zero
theorem LinearMap.exists_monic_and_aeval_eq_zero [Module.Finite R M] (f : Module.End R M) :
    ∃ p : R[X], p.Monic ∧ Polynomial.aeval f p = 0 
Arguments: {M : Type u_2} [AddCommGroup M] (R : Type u_3) [CommRing R] [Module R M] [Module.Finite R M] (f : Module.End R M)
Goal: ∃ p, p.Monic ∧ (Polynomial.aeval f) p = 0
-- Matrix.reindexLinearEquiv_apply
@[simp]
theorem reindexLinearEquiv_apply (eₘ : m ≃ m') (eₙ : n ≃ n') (M : Matrix m n A) :
    reindexLinearEquiv R A eₘ eₙ M = reindex eₘ eₙ M 
Arguments: {m : Type u_2} {n : Type u_3} {m' : Type u_6} {n' : Type u_7} (R : Type u_11) (A : Type u_12) [Semiring R] [AddCommMonoid A] [Module R A] (eₘ : m ≃ m') (eₙ : n ≃ n') (M : Matrix m n A)
Goal: (Matrix.reindexLinearEquiv R A eₘ eₙ) M = (Matrix.reindex eₘ eₙ) M
-- Matrix.reindexLinearEquiv_symm
@[simp]
theorem reindexLinearEquiv_symm (eₘ : m ≃ m') (eₙ : n ≃ n') :
    (reindexLinearEquiv R A eₘ eₙ).symm = reindexLinearEquiv R A eₘ.symm eₙ.symm 
Arguments: {m : Type u_2} {n : Type u_3} {m' : Type u_6} {n' : Type u_7} (R : Type u_11) (A : Type u_12) [Semiring R] [AddCommMonoid A] [Module R A] (eₘ : m ≃ m') (eₙ : n ≃ n')
Goal: (Matrix.reindexLinearEquiv R A eₘ eₙ).symm = Matrix.reindexLinearEquiv R A eₘ.symm eₙ.symm
-- Matrix.reindexLinearEquiv_refl_refl
@[simp]
theorem reindexLinearEquiv_refl_refl :
    reindexLinearEquiv R A (Equiv.refl m) (Equiv.refl n) = LinearEquiv.refl R _ 
Arguments: {m : Type u_2} {n : Type u_3} (R : Type u_11) (A : Type u_12) [Semiring R] [AddCommMonoid A] [Module R A]
Goal: Matrix.reindexLinearEquiv R A (Equiv.refl m) (Equiv.refl n) = LinearEquiv.refl R (Matrix m n A)
-- Matrix.reindexLinearEquiv_trans
theorem reindexLinearEquiv_trans (e₁ : m ≃ m') (e₂ : n ≃ n') (e₁' : m' ≃ m'') (e₂' : n' ≃ n'') :
    (reindexLinearEquiv R A e₁ e₂).trans (reindexLinearEquiv R A e₁' e₂') =
      (reindexLinearEquiv R A (e₁.trans e₁') (e₂.trans e₂') : _ ≃ₗ[R] _) 
Arguments: {m : Type u_2} {n : Type u_3} {m' : Type u_6} {n' : Type u_7} {m'' : Type u_9} {n'' : Type u_10} (R : Type u_11) (A : Type u_12) [Semiring R] [AddCommMonoid A] [Module R A] (e₁ : m ≃ m') (e₂ : n ≃ n') (e₁' : m' ≃ m'') (e₂' : n' ≃ n'')
Goal: Matrix.reindexLinearEquiv R A e₁ e₂ ≪≫ₗ Matrix.reindexLinearEquiv R A e₁' e₂' =
  Matrix.reindexLinearEquiv R A (e₁.trans e₁') (e₂.trans e₂')
-- Matrix.reindexLinearEquiv_comp
theorem reindexLinearEquiv_comp (e₁ : m ≃ m') (e₂ : n ≃ n') (e₁' : m' ≃ m'') (e₂' : n' ≃ n'') :
    reindexLinearEquiv R A e₁' e₂' ∘ reindexLinearEquiv R A e₁ e₂ =
      reindexLinearEquiv R A (e₁.trans e₁') (e₂.trans e₂') 
Arguments: {m : Type u_2} {n : Type u_3} {m' : Type u_6} {n' : Type u_7} {m'' : Type u_9} {n'' : Type u_10} (R : Type u_11) (A : Type u_12) [Semiring R] [AddCommMonoid A] [Module R A] (e₁ : m ≃ m') (e₂ : n ≃ n') (e₁' : m' ≃ m'') (e₂' : n' ≃ n'')
Goal: ⇑(Matrix.reindexLinearEquiv R A e₁' e₂') ∘ ⇑(Matrix.reindexLinearEquiv R A e₁ e₂) =
  ⇑(Matrix.reindexLinearEquiv R A (e₁.trans e₁') (e₂.trans e₂'))
-- Matrix.reindexLinearEquiv_comp_apply
theorem reindexLinearEquiv_comp_apply (e₁ : m ≃ m') (e₂ : n ≃ n') (e₁' : m' ≃ m'') (e₂' : n' ≃ n'')
    (M : Matrix m n A) :
    (reindexLinearEquiv R A e₁' e₂') (reindexLinearEquiv R A e₁ e₂ M) =
      reindexLinearEquiv R A (e₁.trans e₁') (e₂.trans e₂') M 
Arguments: {m : Type u_2} {n : Type u_3} {m' : Type u_6} {n' : Type u_7} {m'' : Type u_9} {n'' : Type u_10} (R : Type u_11) (A : Type u_12) [Semiring R] [AddCommMonoid A] [Module R A] (e₁ : m ≃ m') (e₂ : n ≃ n') (e₁' : m' ≃ m'') (e₂' : n' ≃ n'') (M : Matrix m n A)
Goal: (Matrix.reindexLinearEquiv R A e₁' e₂') ((Matrix.reindexLinearEquiv R A e₁ e₂) M) =
  (Matrix.reindexLinearEquiv R A (e₁.trans e₁') (e₂.trans e₂')) M
-- Matrix.reindexLinearEquiv_one
theorem reindexLinearEquiv_one [DecidableEq m] [DecidableEq m'] [One A] (e : m ≃ m') :
    reindexLinearEquiv R A e e (1 : Matrix m m A) = 1 
Arguments: {m : Type u_2} {m' : Type u_6} (R : Type u_11) (A : Type u_12) [Semiring R] [AddCommMonoid A] [Module R A] [DecidableEq m] [DecidableEq m'] [One A] (e : m ≃ m')
Goal: (Matrix.reindexLinearEquiv R A e e) 1 = 1
-- Matrix.reindexLinearEquiv_mul
theorem reindexLinearEquiv_mul [Fintype n] [Fintype n'] (eₘ : m ≃ m') (eₙ : n ≃ n') (eₒ : o ≃ o')
    (M : Matrix m n A) (N : Matrix n o A) :
    reindexLinearEquiv R A eₘ eₙ M * reindexLinearEquiv R A eₙ eₒ N =
      reindexLinearEquiv R A eₘ eₒ (M * N) 
Arguments: {m : Type u_2} {n : Type u_3} {o : Type u_4} {m' : Type u_6} {n' : Type u_7} {o' : Type u_8} (R : Type u_11) (A : Type u_12) [Semiring R] [Semiring A] [Module R A] [Fintype n] [Fintype n'] (eₘ : m ≃ m') (eₙ : n ≃ n') (eₒ : o ≃ o') (M : Matrix m n A) (N : Matrix n o A)
Goal: (Matrix.reindexLinearEquiv R A eₘ eₙ) M * (Matrix.reindexLinearEquiv R A eₙ eₒ) N =
  (Matrix.reindexLinearEquiv R A eₘ eₒ) (M * N)
-- Matrix.mul_reindexLinearEquiv_one
theorem mul_reindexLinearEquiv_one [Fintype n] [DecidableEq o] (e₁ : o ≃ n) (e₂ : o ≃ n')
    (M : Matrix m n A) :
    M * (reindexLinearEquiv R A e₁ e₂ 1) =
      reindexLinearEquiv R A (Equiv.refl m) (e₁.symm.trans e₂) M 
Arguments: {m : Type u_2} {n : Type u_3} {o : Type u_4} {n' : Type u_7} (R : Type u_11) (A : Type u_12) [Semiring R] [Semiring A] [Module R A] [Fintype n] [DecidableEq o] (e₁ : o ≃ n) (e₂ : o ≃ n') (M : Matrix m n A)
Goal: M * (Matrix.reindexLinearEquiv R A e₁ e₂) 1 = (Matrix.reindexLinearEquiv R A (Equiv.refl m) (e₁.symm.trans e₂)) M
-- Matrix.reindexAlgEquiv_apply
@[simp]
theorem reindexAlgEquiv_apply (e : m ≃ n) (M : Matrix m m A) :
    reindexAlgEquiv R A e M = reindex e e M 
Arguments: {m : Type u_2} {n : Type u_3} (R : Type u_11) (A : Type u_12) [CommSemiring R] [Fintype n] [Fintype m] [DecidableEq m] [DecidableEq n] [Semiring A] [Algebra R A] (e : m ≃ n) (M : Matrix m m A)
Goal: (Matrix.reindexAlgEquiv R A e) M = (Matrix.reindex e e) M
-- Matrix.reindexAlgEquiv_symm
@[simp]
theorem reindexAlgEquiv_symm (e : m ≃ n) : (reindexAlgEquiv R A e).symm =
    reindexAlgEquiv R A e.symm 
Arguments: {m : Type u_2} {n : Type u_3} (R : Type u_11) (A : Type u_12) [CommSemiring R] [Fintype n] [Fintype m] [DecidableEq m] [DecidableEq n] [Semiring A] [Algebra R A] (e : m ≃ n)
Goal: (Matrix.reindexAlgEquiv R A e).symm = Matrix.reindexAlgEquiv R A e.symm
-- Matrix.reindexAlgEquiv_refl
@[simp]
theorem reindexAlgEquiv_refl : reindexAlgEquiv R A (Equiv.refl m) = AlgEquiv.refl 
Arguments: {m : Type u_2} (R : Type u_11) (A : Type u_12) [CommSemiring R] [Fintype m] [DecidableEq m] [Semiring A] [Algebra R A]
Goal: Matrix.reindexAlgEquiv R A (Equiv.refl m) = AlgEquiv.refl
-- Matrix.reindexAlgEquiv_mul
theorem reindexAlgEquiv_mul (e : m ≃ n) (M : Matrix m m A) (N : Matrix m m A) :
    reindexAlgEquiv R A e (M * N) = reindexAlgEquiv R A e M * reindexAlgEquiv R A e N 
Arguments: {m : Type u_2} {n : Type u_3} (R : Type u_11) (A : Type u_12) [CommSemiring R] [Fintype n] [Fintype m] [DecidableEq m] [DecidableEq n] [Semiring A] [Algebra R A] (e : m ≃ n) (M N : Matrix m m A)
Goal: (Matrix.reindexAlgEquiv R A e) (M * N) = (Matrix.reindexAlgEquiv R A e) M * (Matrix.reindexAlgEquiv R A e) N
-- Matrix.det_reindexLinearEquiv_self
theorem det_reindexLinearEquiv_self [CommRing R] [Fintype m] [DecidableEq m] [Fintype n]
    [DecidableEq n] (e : m ≃ n) (M : Matrix m m R) : det (reindexLinearEquiv R R e e M) = det M 
Arguments: {m : Type u_2} {n : Type u_3} (R : Type u_11) [CommRing R] [Fintype m] [DecidableEq m] [Fintype n] [DecidableEq n] (e : m ≃ n) (M : Matrix m m R)
Goal: ((Matrix.reindexLinearEquiv R R e e) M).det = M.det
-- Matrix.det_reindexAlgEquiv
theorem det_reindexAlgEquiv (B : Type*) [CommRing R] [CommRing B] [Algebra R B] [Fintype m]
    [DecidableEq m] [Fintype n] [DecidableEq n] (e : m ≃ n) (A : Matrix m m B) :
    det (reindexAlgEquiv R B e A) = det A 
Arguments: {m : Type u_2} {n : Type u_3} (R : Type u_11) (B : Type u_13) [CommRing R] [CommRing B] [Algebra R B] [Fintype m] [DecidableEq m] [Fintype n] [DecidableEq n] (e : m ≃ n) (A : Matrix m m B)
Goal: ((Matrix.reindexAlgEquiv R B e) A).det = A.det
-- Polynomial.natDegree_det_X_add_C_le
theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
    natDegree (det ((X : α[X]) • A.map C + B.map C : Matrix n n α[X])) ≤ Fintype.card n 
Arguments: {n : Type u_1} {α : Type u_2} [DecidableEq n] [Fintype n] [CommRing α] (A B : Matrix n n α)
Goal: (Polynomial.X • A.map ⇑Polynomial.C + B.map ⇑Polynomial.C).det.natDegree ≤ Fintype.card n
-- Polynomial.coeff_det_X_add_C_zero
theorem coeff_det_X_add_C_zero (A B : Matrix n n α) :
    coeff (det ((X : α[X]) • A.map C + B.map C)) 0 = det B 
Arguments: {n : Type u_1} {α : Type u_2} [DecidableEq n] [Fintype n] [CommRing α] (A B : Matrix n n α)
Goal: (Polynomial.X • A.map ⇑Polynomial.C + B.map ⇑Polynomial.C).det.coeff 0 = B.det
-- Polynomial.coeff_det_X_add_C_card
theorem coeff_det_X_add_C_card (A B : Matrix n n α) :
    coeff (det ((X : α[X]) • A.map C + B.map C)) (Fintype.card n) = det A 
Arguments: {n : Type u_1} {α : Type u_2} [DecidableEq n] [Fintype n] [CommRing α] (A B : Matrix n n α)
Goal: (Polynomial.X • A.map ⇑Polynomial.C + B.map ⇑Polynomial.C).det.coeff (Fintype.card n) = A.det
-- Polynomial.leadingCoeff_det_X_one_add_C
theorem leadingCoeff_det_X_one_add_C (A : Matrix n n α) :
    leadingCoeff (det ((X : α[X]) • (1 : Matrix n n α[X]) + A.map C)) = 1 
Arguments: {n : Type u_1} {α : Type u_2} [DecidableEq n] [Fintype n] [CommRing α] (A : Matrix n n α)
Goal: (Polynomial.X • 1 + A.map ⇑Polynomial.C).det.leadingCoeff = 1
-- card_linearIndependent
theorem card_linearIndependent {k : ℕ} (hk : k ≤ n) :
    Nat.card { s : Fin k → V // LinearIndependent K s } =
      ∏ i : Fin k, (q ^ n - q ^ i.val) 
Arguments: {K : Type u_1} {V : Type u_2} [DivisionRing K] [AddCommGroup V] [Module K V] [Fintype K] [Fintype V] {k : ℕ} (hk : k ≤ FiniteDimensional.finrank K V)
Goal: Nat.card { s // LinearIndependent K s } =
  ∏ i : Fin k, (Fintype.card K ^ FiniteDimensional.finrank K V - Fintype.card K ^ ↑i)
-- Matrix.card_GL_field
theorem card_GL_field :
    Nat.card (GL (Fin n) 𝔽) = ∏ i : (Fin n), (q ^ n - q ^ ( i : ℕ )) 
Arguments: {𝔽 : Type u_1} [Field 𝔽] [Fintype 𝔽] (n : ℕ)
Goal: Nat.card (GL (Fin n) 𝔽) = ∏ i : Fin n, (Fintype.card 𝔽 ^ n - Fintype.card 𝔽 ^ ↑i)
-- Matrix.mvPolynomialX_apply
@[simp]
theorem mvPolynomialX_apply [CommSemiring R] (i j) :
    mvPolynomialX m n R i j = MvPolynomial.X (i, j) 
Arguments: (m : Type u_1) (n : Type u_2) (R : Type u_3) [CommSemiring R] (i : m) (j : n)
Goal: Matrix.mvPolynomialX m n R i j = MvPolynomial.X (i, j)
-- Matrix.mvPolynomialX_map_eval₂
theorem mvPolynomialX_map_eval₂ [CommSemiring R] [CommSemiring S] (f : R →+* S) (A : Matrix m n S) :
    (mvPolynomialX m n R).map (MvPolynomial.eval₂ f fun p : m × n => A p.1 p.2) = A 
Arguments: {m : Type u_1} {n : Type u_2} {R : Type u_3} {S : Type u_4} [CommSemiring R] [CommSemiring S] (f : R →+* S) (A : Matrix m n S)
Goal: (Matrix.mvPolynomialX m n R).map (MvPolynomial.eval₂ f fun p => A p.1 p.2) = A
-- Matrix.mvPolynomialX_mapMatrix_eval
theorem mvPolynomialX_mapMatrix_eval [Fintype m] [DecidableEq m] [CommSemiring R]
    (A : Matrix m m R) :
    (MvPolynomial.eval fun p : m × m => A p.1 p.2).mapMatrix (mvPolynomialX m m R) = A 
Arguments: {m : Type u_1} {R : Type u_3} [Fintype m] [DecidableEq m] [CommSemiring R] (A : Matrix m m R)
Goal: (MvPolynomial.eval fun p => A p.1 p.2).mapMatrix (Matrix.mvPolynomialX m m R) = A
-- Matrix.mvPolynomialX_mapMatrix_aeval
theorem mvPolynomialX_mapMatrix_aeval [Fintype m] [DecidableEq m] [CommSemiring R] [CommSemiring S]
    [Algebra R S] (A : Matrix m m S) :
    (MvPolynomial.aeval fun p : m × m => A p.1 p.2).mapMatrix (mvPolynomialX m m R) = A 
Arguments: {m : Type u_1} (R : Type u_3) {S : Type u_4} [Fintype m] [DecidableEq m] [CommSemiring R] [CommSemiring S] [Algebra R S] (A : Matrix m m S)
Goal: (MvPolynomial.aeval fun p => A p.1 p.2).mapMatrix (Matrix.mvPolynomialX m m R) = A
-- Matrix.det_mvPolynomialX_ne_zero
theorem det_mvPolynomialX_ne_zero [DecidableEq m] [Fintype m] [CommRing R] [Nontrivial R] :
    det (mvPolynomialX m m R) ≠ 0 
Arguments: (m : Type u_1) (R : Type u_3) [DecidableEq m] [Fintype m] [CommRing R] [Nontrivial R]
Goal: (Matrix.mvPolynomialX m m R).det ≠ 0
-- Matrix.det_le
theorem det_le {A : Matrix n n R} {abv : AbsoluteValue R S} {x : S} (hx : ∀ i j, abv (A i j) ≤ x) :
    abv A.det ≤ Nat.factorial (Fintype.card n) • x ^ Fintype.card n 
Arguments: {R : Type u_1} {S : Type u_2} [CommRing R] [Nontrivial R] [LinearOrderedCommRing S] {n : Type u_3} [Fintype n] [DecidableEq n] {A : Matrix n n R} {abv : AbsoluteValue R S} {x : S} (hx : ∀ (i j : n), abv (A i j) ≤ x)
Goal: abv A.det ≤ (Fintype.card n).factorial • x ^ Fintype.card n
-- Matrix.det_sum_le
theorem det_sum_le {ι : Type*} (s : Finset ι) {A : ι → Matrix n n R} {abv : AbsoluteValue R S}
    {x : S} (hx : ∀ k i j, abv (A k i j) ≤ x) :
    abv (det (∑ k ∈ s, A k)) ≤
      Nat.factorial (Fintype.card n) • (Finset.card s • x) ^ Fintype.card n 
Arguments: {R : Type u_1} {S : Type u_2} [CommRing R] [Nontrivial R] [LinearOrderedCommRing S] {n : Type u_3} [Fintype n] [DecidableEq n] {ι : Type u_4} (s : Finset ι) {A : ι → Matrix n n R} {abv : AbsoluteValue R S} {x : S} (hx : ∀ (k : ι) (i j : n), abv (A k i j) ≤ x)
Goal: abv (∑ k ∈ s, A k).det ≤ (Fintype.card n).factorial • (s.card • x) ^ Fintype.card n
-- Matrix.det_sum_smul_le
theorem det_sum_smul_le {ι : Type*} (s : Finset ι) {c : ι → R} {A : ι → Matrix n n R}
    {abv : AbsoluteValue R S} {x : S} (hx : ∀ k i j, abv (A k i j) ≤ x) {y : S}
    (hy : ∀ k, abv (c k) ≤ y) :
    abv (det (∑ k ∈ s, c k • A k)) ≤
      Nat.factorial (Fintype.card n) • (Finset.card s • y * x) ^ Fintype.card n 
Arguments: {R : Type u_1} {S : Type u_2} [CommRing R] [Nontrivial R] [LinearOrderedCommRing S] {n : Type u_3} [Fintype n] [DecidableEq n] {ι : Type u_4} (s : Finset ι) {c : ι → R} {A : ι → Matrix n n R} {abv : AbsoluteValue R S} {x : S} (hx : ∀ (k : ι) (i j : n), abv (A k i j) ≤ x) {y : S} (hy : ∀ (k : ι), abv (c k) ≤ y)
Goal: abv (∑ k ∈ s, c k • A k).det ≤ (Fintype.card n).factorial • (s.card • y * x) ^ Fintype.card n
-- LinearMap.fst_apply
@[simp]
theorem fst_apply (x : M × M₂) : fst R M M₂ x = x.1 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂] (x : M × M₂)
Goal: (LinearMap.fst R M M₂) x = x.1
-- LinearMap.snd_apply
@[simp]
theorem snd_apply (x : M × M₂) : snd R M M₂ x = x.2 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂] (x : M × M₂)
Goal: (LinearMap.snd R M M₂) x = x.2
-- LinearMap.fst_surjective
theorem fst_surjective : Function.Surjective (fst R M M₂) 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
Goal: Function.Surjective ⇑(LinearMap.fst R M M₂)
-- LinearMap.snd_surjective
theorem snd_surjective : Function.Surjective (snd R M M₂) 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
Goal: Function.Surjective ⇑(LinearMap.snd R M M₂)
-- LinearMap.prod_apply
@[simps]
def prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : M →ₗ[R] M₂ × M₃ 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} {M₃ : Type y} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [Module R M] [Module R M₂] [Module R M₃] (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) (i : M)
Goal: (f.prod g) i = Pi.prod (⇑f) (⇑g) i
-- LinearMap.coe_prod
theorem coe_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : ⇑(f.prod g) = Pi.prod f g 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} {M₃ : Type y} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [Module R M] [Module R M₂] [Module R M₃] (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃)
Goal: ⇑(f.prod g) = Pi.prod ⇑f ⇑g
-- LinearMap.fst_prod
@[simp]
theorem fst_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : (fst R M₂ M₃).comp (prod f g) = f 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} {M₃ : Type y} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [Module R M] [Module R M₂] [Module R M₃] (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃)
Goal: LinearMap.fst R M₂ M₃ ∘ₗ f.prod g = f
-- LinearMap.snd_prod
@[simp]
theorem snd_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : (snd R M₂ M₃).comp (prod f g) = g 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} {M₃ : Type y} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [Module R M] [Module R M₂] [Module R M₃] (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃)
Goal: LinearMap.snd R M₂ M₃ ∘ₗ f.prod g = g
-- LinearMap.pair_fst_snd
@[simp]
theorem pair_fst_snd : prod (fst R M M₂) (snd R M M₂) = LinearMap.id 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
Goal: (LinearMap.fst R M M₂).prod (LinearMap.snd R M M₂) = LinearMap.id
-- LinearMap.prod_comp
theorem prod_comp (f : M₂ →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄)
    (h : M →ₗ[R] M₂) : (f.prod g).comp h = (f.comp h).prod (g.comp h) 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} {M₃ : Type y} {M₄ : Type z} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [AddCommMonoid M₄] [Module R M] [Module R M₂] [Module R M₃] [Module R M₄] (f : M₂ →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) (h : M →ₗ[R] M₂)
Goal: f.prod g ∘ₗ h = (f ∘ₗ h).prod (g ∘ₗ h)
-- LinearMap.prodEquiv_apply
@[simps]
def prodEquiv [Module S M₂] [Module S M₃] [SMulCommClass R S M₂] [SMulCommClass R S M₃] :
    ((M →ₗ[R] M₂) × (M →ₗ[R] M₃)) ≃ₗ[S] M →ₗ[R] M₂ × M₃ 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} {M₃ : Type y} (S : Type u_3) [Semiring R] [Semiring S] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [Module R M] [Module R M₂] [Module R M₃] [Module S M₂] [Module S M₃] [SMulCommClass R S M₂] [SMulCommClass R S M₃] (f : (M →ₗ[R] M₂) × (M →ₗ[R] M₃))
Goal: (LinearMap.prodEquiv S) f = f.1.prod f.2
-- LinearMap.prodEquiv_symm_apply
@[simps]
def prodEquiv [Module S M₂] [Module S M₃] [SMulCommClass R S M₂] [SMulCommClass R S M₃] :
    ((M →ₗ[R] M₂) × (M →ₗ[R] M₃)) ≃ₗ[S] M →ₗ[R] M₂ × M₃ 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} {M₃ : Type y} (S : Type u_3) [Semiring R] [Semiring S] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [Module R M] [Module R M₂] [Module R M₃] [Module S M₂] [Module S M₃] [SMulCommClass R S M₂] [SMulCommClass R S M₃] (f : M →ₗ[R] M₂ × M₃)
Goal: (LinearMap.prodEquiv S).symm f = (LinearMap.fst R M₂ M₃ ∘ₗ f, LinearMap.snd R M₂ M₃ ∘ₗ f)
-- LinearMap.range_inl
theorem range_inl : range (inl R M M₂) = ker (snd R M M₂) 
Arguments: (R : Type u) (M : Type v) (M₂ : Type w) [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
Goal: LinearMap.range (LinearMap.inl R M M₂) = LinearMap.ker (LinearMap.snd R M M₂)
-- LinearMap.ker_snd
theorem ker_snd : ker (snd R M M₂) = range (inl R M M₂) 
Arguments: (R : Type u) (M : Type v) (M₂ : Type w) [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
Goal: LinearMap.ker (LinearMap.snd R M M₂) = LinearMap.range (LinearMap.inl R M M₂)
-- LinearMap.range_inr
theorem range_inr : range (inr R M M₂) = ker (fst R M M₂) 
Arguments: (R : Type u) (M : Type v) (M₂ : Type w) [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
Goal: LinearMap.range (LinearMap.inr R M M₂) = LinearMap.ker (LinearMap.fst R M M₂)
-- LinearMap.ker_fst
theorem ker_fst : ker (fst R M M₂) = range (inr R M M₂) 
Arguments: (R : Type u) (M : Type v) (M₂ : Type w) [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
Goal: LinearMap.ker (LinearMap.fst R M M₂) = LinearMap.range (LinearMap.inr R M M₂)
-- LinearMap.fst_comp_inl
@[simp] theorem fst_comp_inl : fst R M M₂ ∘ₗ inl R M M₂ = id 
Arguments: (R : Type u) (M : Type v) (M₂ : Type w) [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
Goal: LinearMap.fst R M M₂ ∘ₗ LinearMap.inl R M M₂ = LinearMap.id
-- LinearMap.snd_comp_inl
@[simp] theorem snd_comp_inl : snd R M M₂ ∘ₗ inl R M M₂ = 0 
Arguments: (R : Type u) (M : Type v) (M₂ : Type w) [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
Goal: LinearMap.snd R M M₂ ∘ₗ LinearMap.inl R M M₂ = 0
-- LinearMap.fst_comp_inr
@[simp] theorem fst_comp_inr : fst R M M₂ ∘ₗ inr R M M₂ = 0 
Arguments: (R : Type u) (M : Type v) (M₂ : Type w) [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
Goal: LinearMap.fst R M M₂ ∘ₗ LinearMap.inr R M M₂ = 0
-- LinearMap.snd_comp_inr
@[simp] theorem snd_comp_inr : snd R M M₂ ∘ₗ inr R M M₂ = id 
Arguments: (R : Type u) (M : Type v) (M₂ : Type w) [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
Goal: LinearMap.snd R M M₂ ∘ₗ LinearMap.inr R M M₂ = LinearMap.id
-- LinearMap.coe_inl
@[simp]
theorem coe_inl : (inl R M M₂ : M → M × M₂) = fun x => (x, 0) 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
Goal: ⇑(LinearMap.inl R M M₂) = fun x => (x, 0)
-- LinearMap.inl_apply
theorem inl_apply (x : M) : inl R M M₂ x = (x, 0) 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂] (x : M)
Goal: (LinearMap.inl R M M₂) x = (x, 0)
-- LinearMap.coe_inr
@[simp]
theorem coe_inr : (inr R M M₂ : M₂ → M × M₂) = Prod.mk 0 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
Goal: ⇑(LinearMap.inr R M M₂) = Prod.mk 0
-- LinearMap.inr_apply
theorem inr_apply (x : M₂) : inr R M M₂ x = (0, x) 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂] (x : M₂)
Goal: (LinearMap.inr R M M₂) x = (0, x)
-- LinearMap.inl_eq_prod
theorem inl_eq_prod : inl R M M₂ = prod LinearMap.id 0 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
Goal: LinearMap.inl R M M₂ = LinearMap.id.prod 0
-- LinearMap.inr_eq_prod
theorem inr_eq_prod : inr R M M₂ = prod 0 LinearMap.id 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
Goal: LinearMap.inr R M M₂ = LinearMap.prod 0 LinearMap.id
-- LinearMap.inl_injective
theorem inl_injective : Function.Injective (inl R M M₂) 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
Goal: Function.Injective ⇑(LinearMap.inl R M M₂)
-- LinearMap.inr_injective
theorem inr_injective : Function.Injective (inr R M M₂) 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
Goal: Function.Injective ⇑(LinearMap.inr R M M₂)
-- LinearMap.coprod_apply
@[simp]
theorem coprod_apply (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (x : M × M₂) :
    coprod f g x = f x.1 + g x.2 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} {M₃ : Type y} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [Module R M] [Module R M₂] [Module R M₃] (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (x : M × M₂)
Goal: (f.coprod g) x = f x.1 + g x.2
-- LinearMap.coprod_inl
@[simp]
theorem coprod_inl (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : (coprod f g).comp (inl R M M₂) = f 
Arguments: {R : Type u} {M : Type v} {M₂ : Type w} {M₃ : Type y} [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [Module R M] [Module R M₂] [Module R M₃] (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃)
Goal: f.coprod g ∘ₗ LinearMap.inl R M M₂ = f