ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Submodule.dualCoannihilator_map_linearEquiv_flip
@[simp]
lemma dualCoannihilator_map_linearEquiv_flip (p : Submodule R M) :
    (p.map e.flip).dualCoannihilator = p.dualAnnihilator.map e.symm 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] [Module.IsReflexive R M] (e : N ≃ₗ[R] Module.Dual R M) (p : Submodule R M)
Goal: (Submodule.map e.flip p).dualCoannihilator = Submodule.map e.symm p.dualAnnihilator
-- Submodule.map_dualAnnihilator_linearEquiv_flip_symm
@[simp]
lemma map_dualAnnihilator_linearEquiv_flip_symm (p : Submodule R N) :
    p.dualAnnihilator.map e.flip.symm = (p.map e).dualCoannihilator 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] [Module.IsReflexive R M] (e : N ≃ₗ[R] Module.Dual R M) (p : Submodule R N)
Goal: Submodule.map e.flip.symm p.dualAnnihilator = (Submodule.map e p).dualCoannihilator
-- Submodule.map_dualCoannihilator_linearEquiv_flip
@[simp]
lemma map_dualCoannihilator_linearEquiv_flip (p : Submodule R (Dual R M)) :
    p.dualCoannihilator.map e.flip = (p.map e.symm).dualAnnihilator 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] [Module.IsReflexive R M] (e : N ≃ₗ[R] Module.Dual R M) (p : Submodule R (Module.Dual R M))
Goal: Submodule.map e.flip p.dualCoannihilator = (Submodule.map e.symm p).dualAnnihilator
-- Submodule.dualAnnihilator_map_linearEquiv_flip_symm
@[simp]
lemma dualAnnihilator_map_linearEquiv_flip_symm (p : Submodule R (Dual R N)) :
    (p.map e.flip.symm).dualAnnihilator = p.dualCoannihilator.map e 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] [Module.IsReflexive R M] (e : N ≃ₗ[R] Module.Dual R M) (p : Submodule R (Module.Dual R N))
Goal: (Submodule.map e.flip.symm p).dualAnnihilator = Submodule.map e p.dualCoannihilator
-- Matrix.charmatrix_apply_natDegree
theorem charmatrix_apply_natDegree [Nontrivial R] (i j : n) :
    (charmatrix M i j).natDegree = ite (i = j) 1 0 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] {M : Matrix n n R} [Nontrivial R] (i j : n)
Goal: (M.charmatrix i j).natDegree = if i = j then 1 else 0
-- Matrix.charmatrix_apply_natDegree_le
theorem charmatrix_apply_natDegree_le (i j : n) :
    (charmatrix M i j).natDegree ≤ ite (i = j) 1 0 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] {M : Matrix n n R} (i j : n)
Goal: (M.charmatrix i j).natDegree ≤ if i = j then 1 else 0
-- Matrix.charpoly_sub_diagonal_degree_lt
theorem charpoly_sub_diagonal_degree_lt :
    (M.charpoly - ∏ i : n, (X - C (M i i))).degree < ↑(Fintype.card n - 1) 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] (M : Matrix n n R)
Goal: (M.charpoly - ∏ i : n, (Polynomial.X - Polynomial.C (M i i))).degree < ↑(Fintype.card n - 1)
-- Matrix.charpoly_coeff_eq_prod_coeff_of_le
theorem charpoly_coeff_eq_prod_coeff_of_le {k : ℕ} (h : Fintype.card n - 1 ≤ k) :
    M.charpoly.coeff k = (∏ i : n, (X - C (M i i))).coeff k 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] (M : Matrix n n R) {k : ℕ} (h : Fintype.card n - 1 ≤ k)
Goal: M.charpoly.coeff k = (∏ i : n, (Polynomial.X - Polynomial.C (M i i))).coeff k
-- Matrix.det_of_card_zero
theorem det_of_card_zero (h : Fintype.card n = 0) (M : Matrix n n R) : M.det = 1 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] (h : Fintype.card n = 0) (M : Matrix n n R)
Goal: M.det = 1
-- Matrix.charpoly_degree_eq_dim
theorem charpoly_degree_eq_dim [Nontrivial R] (M : Matrix n n R) :
    M.charpoly.degree = Fintype.card n 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] [Nontrivial R] (M : Matrix n n R)
Goal: M.charpoly.degree = ↑(Fintype.card n)
-- Matrix.charpoly_natDegree_eq_dim
@[simp] theorem charpoly_natDegree_eq_dim [Nontrivial R] (M : Matrix n n R) :
    M.charpoly.natDegree = Fintype.card n 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] [Nontrivial R] (M : Matrix n n R)
Goal: M.charpoly.natDegree = Fintype.card n
-- Matrix.charpoly_monic
theorem charpoly_monic (M : Matrix n n R) : M.charpoly.Monic 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] (M : Matrix n n R)
Goal: M.charpoly.Monic
-- Matrix.trace_eq_neg_charpoly_coeff
theorem trace_eq_neg_charpoly_coeff [Nonempty n] (M : Matrix n n R) :
    trace M = -M.charpoly.coeff (Fintype.card n - 1) 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] [Nonempty n] (M : Matrix n n R)
Goal: M.trace = -M.charpoly.coeff (Fintype.card n - 1)
-- Matrix.matPolyEquiv_symm_map_eval
theorem matPolyEquiv_symm_map_eval (M : (Matrix n n R)[X]) (r : R) :
    (matPolyEquiv.symm M).map (eval r) = M.eval (scalar n r) 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] (M : (Matrix n n R)[X]) (r : R)
Goal: (matPolyEquiv.symm M).map (Polynomial.eval r) = Polynomial.eval ((Matrix.scalar n) r) M
-- Matrix.matPolyEquiv_eval_eq_map
theorem matPolyEquiv_eval_eq_map (M : Matrix n n R[X]) (r : R) :
    (matPolyEquiv M).eval (scalar n r) = M.map (eval r) 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] (M : Matrix n n R[X]) (r : R)
Goal: Polynomial.eval ((Matrix.scalar n) r) (matPolyEquiv M) = M.map (Polynomial.eval r)
-- Matrix.matPolyEquiv_eval
theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
    (matPolyEquiv M).eval (scalar n r) i j = (M i j).eval r 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] (M : Matrix n n R[X]) (r : R) (i j : n)
Goal: Polynomial.eval ((Matrix.scalar n) r) (matPolyEquiv M) i j = Polynomial.eval r (M i j)
-- Matrix.eval_det
theorem eval_det (M : Matrix n n R[X]) (r : R) :
    Polynomial.eval r M.det = (Polynomial.eval (scalar n r) (matPolyEquiv M)).det 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] (M : Matrix n n R[X]) (r : R)
Goal: Polynomial.eval r M.det = (Polynomial.eval ((Matrix.scalar n) r) (matPolyEquiv M)).det
-- Matrix.det_eq_sign_charpoly_coeff
theorem det_eq_sign_charpoly_coeff (M : Matrix n n R) :
    M.det = (-1) ^ Fintype.card n * M.charpoly.coeff 0 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] (M : Matrix n n R)
Goal: M.det = (-1) ^ Fintype.card n * M.charpoly.coeff 0
-- Matrix.eval_det_add_X_smul
lemma eval_det_add_X_smul (A : Matrix n n R[X]) (M : Matrix n n R) :
    (det (A + (X : R[X]) • M.map C)).eval 0 = (det A).eval 0 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] (A : Matrix n n R[X]) (M : Matrix n n R)
Goal: Polynomial.eval 0 (A + Polynomial.X • M.map ⇑Polynomial.C).det = Polynomial.eval 0 A.det
-- Matrix.derivative_det_one_add_X_smul_aux
lemma derivative_det_one_add_X_smul_aux {n} (M : Matrix (Fin n) (Fin n) R) :
    (derivative <| det (1 + (X : R[X]) • M.map C)).eval 0 = trace M 
Arguments: {R : Type u} [CommRing R] {n : ℕ} (M : Matrix (Fin n) (Fin n) R)
Goal: Polynomial.eval 0 (Polynomial.derivative (1 + Polynomial.X • M.map ⇑Polynomial.C).det) = M.trace
-- Matrix.derivative_det_one_add_X_smul
lemma derivative_det_one_add_X_smul (M : Matrix n n R) :
    (derivative <| det (1 + (X : R[X]) • M.map C)).eval 0 = trace M 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] (M : Matrix n n R)
Goal: Polynomial.eval 0 (Polynomial.derivative (1 + Polynomial.X • M.map ⇑Polynomial.C).det) = M.trace
-- Matrix.coeff_det_one_add_X_smul_one
lemma coeff_det_one_add_X_smul_one (M : Matrix n n R) :
    (det (1 + (X : R[X]) • M.map C)).coeff 1 = trace M 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] (M : Matrix n n R)
Goal: (1 + Polynomial.X • M.map ⇑Polynomial.C).det.coeff 1 = M.trace
-- Matrix.det_one_add_X_smul
lemma det_one_add_X_smul (M : Matrix n n R) :
    det (1 + (X : R[X]) • M.map C) =
      (1 : R[X]) + trace M • X + (det (1 + (X : R[X]) • M.map C)).divX.divX * X ^ 2 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] (M : Matrix n n R)
Goal: (1 + Polynomial.X • M.map ⇑Polynomial.C).det =
  1 + M.trace • Polynomial.X + (1 + Polynomial.X • M.map ⇑Polynomial.C).det.divX.divX * Polynomial.X ^ 2
-- Matrix.det_one_add_smul
lemma det_one_add_smul (r : R) (M : Matrix n n R) :
    det (1 + r • M) =
      1 + trace M * r + (det (1 + (X : R[X]) • M.map C)).divX.divX.eval r * r ^ 2 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] (r : R) (M : Matrix n n R)
Goal: (1 + r • M).det = 1 + M.trace * r + Polynomial.eval r (1 + Polynomial.X • M.map ⇑Polynomial.C).det.divX.divX * r ^ 2
-- matPolyEquiv_eq_X_pow_sub_C
theorem matPolyEquiv_eq_X_pow_sub_C {K : Type*} (k : ℕ) [Field K] (M : Matrix n n K) :
    matPolyEquiv ((expand K k : K[X] →+* K[X]).mapMatrix (charmatrix (M ^ k))) =
      X ^ k - C (M ^ k) 
Arguments: {n : Type v} [DecidableEq n] [Fintype n] {K : Type u_1} (k : ℕ) [Field K] (M : Matrix n n K)
Goal: matPolyEquiv ((↑(Polynomial.expand K k)).mapMatrix (M ^ k).charmatrix) = Polynomial.X ^ k - Polynomial.C (M ^ k)
-- Matrix.aeval_eq_aeval_mod_charpoly
theorem aeval_eq_aeval_mod_charpoly (M : Matrix n n R) (p : R[X]) :
    aeval M p = aeval M (p %ₘ M.charpoly) 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] (M : Matrix n n R) (p : R[X])
Goal: (Polynomial.aeval M) p = (Polynomial.aeval M) (p %ₘ M.charpoly)
-- Matrix.pow_eq_aeval_mod_charpoly
theorem pow_eq_aeval_mod_charpoly (M : Matrix n n R) (k : ℕ) :
    M ^ k = aeval M (X ^ k %ₘ M.charpoly) 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] (M : Matrix n n R) (k : ℕ)
Goal: M ^ k = (Polynomial.aeval M) (Polynomial.X ^ k %ₘ M.charpoly)
-- Matrix.coeff_charpoly_mem_ideal_pow
theorem coeff_charpoly_mem_ideal_pow {I : Ideal R} (h : ∀ i j, M i j ∈ I) (k : ℕ) :
    M.charpoly.coeff k ∈ I ^ (Fintype.card n - k) 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] {M : Matrix n n R} {I : Ideal R} (h : ∀ (i j : n), M i j ∈ I) (k : ℕ)
Goal: M.charpoly.coeff k ∈ I ^ (Fintype.card n - k)
-- Matrix.reverse_charpoly
lemma reverse_charpoly (M : Matrix n n R) :
    M.charpoly.reverse = M.charpolyRev 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] (M : Matrix n n R)
Goal: M.charpoly.reverse = M.charpolyRev
-- Matrix.eval_charpolyRev
@[simp] lemma eval_charpolyRev :
    eval 0 M.charpolyRev = 1 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] {M : Matrix n n R}
Goal: Polynomial.eval 0 M.charpolyRev = 1
-- Matrix.coeff_charpolyRev_eq_neg_trace
@[simp] lemma coeff_charpolyRev_eq_neg_trace (M : Matrix n n R) :
    coeff M.charpolyRev 1 = - trace M 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] (M : Matrix n n R)
Goal: M.charpolyRev.coeff 1 = -M.trace
-- Matrix.isUnit_charpolyRev_of_isNilpotent
lemma isUnit_charpolyRev_of_isNilpotent (hM : IsNilpotent M) :
    IsUnit M.charpolyRev 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] {M : Matrix n n R} (hM : IsNilpotent M)
Goal: IsUnit M.charpolyRev
-- Matrix.isNilpotent_trace_of_isNilpotent
lemma isNilpotent_trace_of_isNilpotent (hM : IsNilpotent M) :
    IsNilpotent (trace M) 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] {M : Matrix n n R} (hM : IsNilpotent M)
Goal: IsNilpotent M.trace
-- Matrix.isNilpotent_charpoly_sub_pow_of_isNilpotent
lemma isNilpotent_charpoly_sub_pow_of_isNilpotent (hM : IsNilpotent M) :
    IsNilpotent (M.charpoly - X ^ (Fintype.card n)) 
Arguments: {R : Type u} [CommRing R] {n : Type v} [DecidableEq n] [Fintype n] {M : Matrix n n R} (hM : IsNilpotent M)
Goal: IsNilpotent (M.charpoly - Polynomial.X ^ Fintype.card n)
-- HasRankNullity.exists_set_linearIndependent
@[pp_with_univ]
class HasRankNullity (R : Type v) [inst : Ring R] : Prop where
  exists_set_linearIndependent : ∀ (M : Type u) [AddCommGroup M] [Module R M],
    ∃ s : Set M, #s = Module.rank R M ∧ LinearIndependent (ι := s) R Subtype.val
  rank_quotient_add_rank : ∀ {M : Type u} [AddCommGroup M] [Module R M] (N : Submodule R M),
    Module.rank R (M ⧸ N) + Module.rank R N = Module.rank R M
Arguments: {R : Type v} [inst : Ring R] [self : HasRankNullity.{u, v} R] (M : Type u) [AddCommGroup M] [Module R M]
Goal: ∃ s, #↑s = Module.rank R M ∧ LinearIndependent (ι := ↑s) R Subtype.val
-- HasRankNullity.rank_quotient_add_rank
@[pp_with_univ]
class HasRankNullity (R : Type v) [inst : Ring R] : Prop where
  exists_set_linearIndependent : ∀ (M : Type u) [AddCommGroup M] [Module R M],
    ∃ s : Set M, #s = Module.rank R M ∧ LinearIndependent (ι := s) R Subtype.val
  rank_quotient_add_rank : ∀ {M : Type u} [AddCommGroup M] [Module R M] (N : Submodule R M),
    Module.rank R (M ⧸ N) + Module.rank R N = Module.rank R M
Arguments: {R : Type v} [inst : Ring R] [self : HasRankNullity.{u, v} R] {M : Type u} [AddCommGroup M] [Module R M] (N : Submodule R M)
Goal: Module.rank R (M ⧸ N) + Module.rank R ↥N = Module.rank R M
-- rank_quotient_add_rank
lemma rank_quotient_add_rank (N : Submodule R M) :
    Module.rank R (M ⧸ N) + Module.rank R N = Module.rank R M 
Arguments: {R : Type u_1} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] [HasRankNullity.{u, u_1} R] (N : Submodule R M)
Goal: Module.rank R (M ⧸ N) + Module.rank R ↥N = Module.rank R M
-- exists_set_linearIndependent
lemma exists_set_linearIndependent :
    ∃ s : Set M, #s = Module.rank R M ∧ LinearIndependent (ι := s) R Subtype.val 
Arguments: (R : Type u_1) (M : Type u) [Ring R] [AddCommGroup M] [Module R M] [HasRankNullity.{u, u_1} R]
Goal: ∃ s, #↑s = Module.rank R M ∧ LinearIndependent (ι := ↑s) R Subtype.val
-- nontrivial_of_hasRankNullity
theorem nontrivial_of_hasRankNullity : Nontrivial R 
Arguments: (R : Type u_1) [Ring R] [HasRankNullity.{u, u_1} R]
Goal: Nontrivial R
-- lift_rank_range_add_rank_ker
theorem lift_rank_range_add_rank_ker (f : M →ₗ[R] M') :
    lift.{u} (Module.rank R (LinearMap.range f)) + lift.{v} (Module.rank R (LinearMap.ker f)) =
      lift.{v} (Module.rank R M) 
Arguments: {R : Type u_1} {M : Type u} {M' : Type v} [Ring R] [AddCommGroup M] [AddCommGroup M'] [Module R M] [Module R M'] [HasRankNullity.{u, u_1} R] (f : M →ₗ[R] M')
Goal: Cardinal.lift.{u, v} (Module.rank R ↥(LinearMap.range f)) + Cardinal.lift.{v, u} (Module.rank R ↥(LinearMap.ker f)) =
  Cardinal.lift.{v, u} (Module.rank R M)
-- rank_range_add_rank_ker
theorem rank_range_add_rank_ker (f : M →ₗ[R] M₁) :
    Module.rank R (LinearMap.range f) + Module.rank R (LinearMap.ker f) = Module.rank R M 
Arguments: {R : Type u_1} {M M₁ : Type u} [Ring R] [AddCommGroup M] [AddCommGroup M₁] [Module R M] [Module R M₁] [HasRankNullity.{u, u_1} R] (f : M →ₗ[R] M₁)
Goal: Module.rank R ↥(LinearMap.range f) + Module.rank R ↥(LinearMap.ker f) = Module.rank R M
-- lift_rank_eq_of_surjective
theorem lift_rank_eq_of_surjective {f : M →ₗ[R] M'} (h : Surjective f) :
    lift.{v} (Module.rank R M) =
      lift.{u} (Module.rank R M') + lift.{v} (Module.rank R (LinearMap.ker f)) 
Arguments: {R : Type u_1} {M : Type u} {M' : Type v} [Ring R] [AddCommGroup M] [AddCommGroup M'] [Module R M] [Module R M'] [HasRankNullity.{u, u_1} R] {f : M →ₗ[R] M'} (h : Function.Surjective ⇑f)
Goal: Cardinal.lift.{v, u} (Module.rank R M) =
  Cardinal.lift.{u, v} (Module.rank R M') + Cardinal.lift.{v, u} (Module.rank R ↥(LinearMap.ker f))
-- rank_eq_of_surjective
theorem rank_eq_of_surjective {f : M →ₗ[R] M₁} (h : Surjective f) :
    Module.rank R M = Module.rank R M₁ + Module.rank R (LinearMap.ker f) 
Arguments: {R : Type u_1} {M M₁ : Type u} [Ring R] [AddCommGroup M] [AddCommGroup M₁] [Module R M] [Module R M₁] [HasRankNullity.{u, u_1} R] {f : M →ₗ[R] M₁} (h : Function.Surjective ⇑f)
Goal: Module.rank R M = Module.rank R M₁ + Module.rank R ↥(LinearMap.ker f)
-- exists_linearIndependent_of_lt_rank
theorem exists_linearIndependent_of_lt_rank [StrongRankCondition R]
    {s : Set M} (hs : LinearIndependent (ι := s) R Subtype.val) :
    ∃ t, s ⊆ t ∧ #t = Module.rank R M ∧ LinearIndependent (ι := t) R Subtype.val 
Arguments: {R : Type u_1} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] [HasRankNullity.{u, u_1} R] [StrongRankCondition R] {s : Set M} (hs : LinearIndependent (ι := ↑s) R Subtype.val)
Goal: ∃ t, s ⊆ t ∧ #↑t = Module.rank R M ∧ LinearIndependent (ι := ↑t) R Subtype.val
-- exists_linearIndependent_cons_of_lt_rank
theorem exists_linearIndependent_cons_of_lt_rank [StrongRankCondition R] {n : ℕ} {v : Fin n → M}
    (hv : LinearIndependent R v) (h : n < Module.rank R M) :
    ∃ (x : M), LinearIndependent R (Fin.cons x v) 
Arguments: {R : Type u_1} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] [HasRankNullity.{u, u_1} R] [StrongRankCondition R] {n : ℕ} {v : Fin n → M} (hv : LinearIndependent R v) (h : ↑n < Module.rank R M)
Goal: ∃ x, LinearIndependent R (Fin.cons x v)
-- exists_linearIndependent_snoc_of_lt_rank
theorem exists_linearIndependent_snoc_of_lt_rank [StrongRankCondition R] {n : ℕ} {v : Fin n → M}
    (hv : LinearIndependent R v) (h : n < Module.rank R M) :
    ∃ (x : M), LinearIndependent R (Fin.snoc v x) 
Arguments: {R : Type u_1} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] [HasRankNullity.{u, u_1} R] [StrongRankCondition R] {n : ℕ} {v : Fin n → M} (hv : LinearIndependent R v) (h : ↑n < Module.rank R M)
Goal: ∃ x, LinearIndependent R (Fin.snoc v x)
-- exists_linearIndependent_pair_of_one_lt_rank
theorem exists_linearIndependent_pair_of_one_lt_rank [StrongRankCondition R]
    [NoZeroSMulDivisors R M] (h : 1 < Module.rank R M) {x : M} (hx : x ≠ 0) :
    ∃ y, LinearIndependent R ![x, y] 
Arguments: {R : Type u_1} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] [HasRankNullity.{u, u_1} R] [StrongRankCondition R] [NoZeroSMulDivisors R M] (h : 1 < Module.rank R M) {x : M} (hx : x ≠ 0)
Goal: ∃ y, LinearIndependent R ![x, y]
-- exists_smul_not_mem_of_rank_lt
theorem exists_smul_not_mem_of_rank_lt {N : Submodule R M} (h : Module.rank R N < Module.rank R M) :
    ∃ m : M, ∀ r : R, r ≠ 0 → r • m ∉ N 
Arguments: {R : Type u_1} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] [HasRankNullity.{u, u_1} R] {N : Submodule R M} (h : Module.rank R ↥N < Module.rank R M)
Goal: ∃ m, ∀ (r : R), r ≠ 0 → r • m ∉ N
-- Submodule.rank_sup_add_rank_inf_eq
theorem Submodule.rank_sup_add_rank_inf_eq (s t : Submodule R M) :
    Module.rank R (s ⊔ t : Submodule R M) + Module.rank R (s ⊓ t : Submodule R M) =
    Module.rank R s + Module.rank R t 
Arguments: {R : Type u_1} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] [HasRankNullity.{u, u_1} R] (s t : Submodule R M)
Goal: Module.rank R ↥(s ⊔ t) + Module.rank R ↥(s ⊓ t) = Module.rank R ↥s + Module.rank R ↥t
-- Submodule.rank_add_le_rank_add_rank
theorem Submodule.rank_add_le_rank_add_rank (s t : Submodule R M) :
    Module.rank R (s ⊔ t : Submodule R M) ≤ Module.rank R s + Module.rank R t 
Arguments: {R : Type u_1} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] [HasRankNullity.{u, u_1} R] (s t : Submodule R M)
Goal: Module.rank R ↥(s ⊔ t) ≤ Module.rank R ↥s + Module.rank R ↥t
-- exists_linearIndependent_snoc_of_lt_finrank
theorem exists_linearIndependent_snoc_of_lt_finrank {n : ℕ} {v : Fin n → M}
    (hv : LinearIndependent R v) (h : n < finrank R M) :
    ∃ (x : M), LinearIndependent R (Fin.snoc v x) 
Arguments: {R : Type u_1} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] [HasRankNullity.{u, u_1} R] [StrongRankCondition R] {n : ℕ} {v : Fin n → M} (hv : LinearIndependent R v) (h : n < FiniteDimensional.finrank R M)
Goal: ∃ x, LinearIndependent R (Fin.snoc v x)
-- exists_linearIndependent_cons_of_lt_finrank
theorem exists_linearIndependent_cons_of_lt_finrank {n : ℕ} {v : Fin n → M}
    (hv : LinearIndependent R v) (h : n < finrank R M) :
    ∃ (x : M), LinearIndependent R (Fin.cons x v) 
Arguments: {R : Type u_1} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] [HasRankNullity.{u, u_1} R] [StrongRankCondition R] {n : ℕ} {v : Fin n → M} (hv : LinearIndependent R v) (h : n < FiniteDimensional.finrank R M)
Goal: ∃ x, LinearIndependent R (Fin.cons x v)
-- exists_linearIndependent_pair_of_one_lt_finrank
theorem exists_linearIndependent_pair_of_one_lt_finrank [NoZeroSMulDivisors R M]
    (h : 1 < finrank R M) {x : M} (hx : x ≠ 0) :
    ∃ y, LinearIndependent R ![x, y] 
Arguments: {R : Type u_1} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] [HasRankNullity.{u, u_1} R] [StrongRankCondition R] [NoZeroSMulDivisors R M] (h : 1 < FiniteDimensional.finrank R M) {x : M} (hx : x ≠ 0)
Goal: ∃ y, LinearIndependent R ![x, y]
-- ExteriorAlgebra.liftAlternating_ι
@[simp]
theorem liftAlternating_ι (f : ∀ i, M [⋀^Fin i]→ₗ[R] N) (m : M) :
    liftAlternating (R := R) (M := M) (N := N) f (ι R m) = f 1 ![m] 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} [CommRing R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (f : (i : ℕ) → M [⋀^Fin i]→ₗ[R] N) (m : M)
Goal: (ExteriorAlgebra.liftAlternating f) ((ExteriorAlgebra.ι R) m) = (f 1) ![m]
-- ExteriorAlgebra.liftAlternating_ι_mul
theorem liftAlternating_ι_mul (f : ∀ i, M [⋀^Fin i]→ₗ[R] N) (m : M)
    (x : ExteriorAlgebra R M) :
    liftAlternating (R := R) (M := M) (N := N) f (ι R m * x) =
    liftAlternating (R := R) (M := M) (N := N) (fun i => (f i.succ).curryLeft m) x 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} [CommRing R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (f : (i : ℕ) → M [⋀^Fin i]→ₗ[R] N) (m : M) (x : ExteriorAlgebra R M)
Goal: (ExteriorAlgebra.liftAlternating f) ((ExteriorAlgebra.ι R) m * x) =
  (ExteriorAlgebra.liftAlternating fun i => (f i.succ).curryLeft m) x
-- ExteriorAlgebra.liftAlternating_one
@[simp]
theorem liftAlternating_one (f : ∀ i, M [⋀^Fin i]→ₗ[R] N) :
    liftAlternating (R := R) (M := M) (N := N) f (1 : ExteriorAlgebra R M) = f 0 0 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} [CommRing R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (f : (i : ℕ) → M [⋀^Fin i]→ₗ[R] N)
Goal: (ExteriorAlgebra.liftAlternating f) 1 = (f 0) 0
-- ExteriorAlgebra.liftAlternating_algebraMap
@[simp]
theorem liftAlternating_algebraMap (f : ∀ i, M [⋀^Fin i]→ₗ[R] N) (r : R) :
    liftAlternating (R := R) (M := M) (N := N) f (algebraMap _ (ExteriorAlgebra R M) r) =
    r • f 0 0 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} [CommRing R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (f : (i : ℕ) → M [⋀^Fin i]→ₗ[R] N) (r : R)
Goal: (ExteriorAlgebra.liftAlternating f) ((algebraMap R (ExteriorAlgebra R M)) r) = r • (f 0) 0
-- ExteriorAlgebra.liftAlternating_apply_ιMulti
@[simp]
theorem liftAlternating_apply_ιMulti {n : ℕ} (f : ∀ i, M [⋀^Fin i]→ₗ[R] N)
    (v : Fin n → M) : liftAlternating (R := R) (M := M) (N := N) f (ιMulti R n v) = f n v 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} [CommRing R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] {n : ℕ} (f : (i : ℕ) → M [⋀^Fin i]→ₗ[R] N) (v : Fin n → M)
Goal: (ExteriorAlgebra.liftAlternating f) ((ExteriorAlgebra.ιMulti R n) v) = (f n) v
-- ExteriorAlgebra.liftAlternating_comp_ιMulti
@[simp]
theorem liftAlternating_comp_ιMulti {n : ℕ} (f : ∀ i, M [⋀^Fin i]→ₗ[R] N) :
    (liftAlternating (R := R) (M := M) (N := N) f).compAlternatingMap (ιMulti R n) = f n 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} [CommRing R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] {n : ℕ} (f : (i : ℕ) → M [⋀^Fin i]→ₗ[R] N)
Goal: (ExteriorAlgebra.liftAlternating f).compAlternatingMap (ExteriorAlgebra.ιMulti R n) = f n
-- ExteriorAlgebra.liftAlternating_comp
@[simp]
theorem liftAlternating_comp (g : N →ₗ[R] N') (f : ∀ i, M [⋀^Fin i]→ₗ[R] N) :
    (liftAlternating (R := R) (M := M) (N := N') fun i => g.compAlternatingMap (f i)) =
    g ∘ₗ liftAlternating (R := R) (M := M) (N := N) f 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} {N' : Type u_4} [CommRing R] [AddCommGroup M] [AddCommGroup N] [AddCommGroup N'] [Module R M] [Module R N] [Module R N'] (g : N →ₗ[R] N') (f : (i : ℕ) → M [⋀^Fin i]→ₗ[R] N)
Goal: (ExteriorAlgebra.liftAlternating fun i => g.compAlternatingMap (f i)) = g ∘ₗ ExteriorAlgebra.liftAlternating f