awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Module: Mathlib.RingTheory.LocalRing.Module
Goal:
R : Type u_1
M : Type u_2
inst : CommRing R
inst_1 : AddCommGroup M
inst_2 : Module R M
inst_3 : IsLocalRing R
inst_4 : Flat R M
ι : Type u
f : ι → R
n_1 : ι
s : Finset ι
hn : n_1 ∉ s
ih :
  ∀ (v : ι → M)
    (h :
      LinearIndependent k (M := k ⊗[R] M)
        ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v))
    (hfv : Eq.{u_2 + 1} (α := M) (∑ i ∈ s, f i • v i) 0) (i : ι) (hi : i ∈ s), f i = 0
v : ι → M
h :
  LinearIndependent k (M := k ⊗[R] M)
    ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v)
hfv : Eq.{u_2 + 1} (α := M) (∑ i : ↥(insert n_1 s), f (↑i : ι) • v (↑i : ι)) 0
i : ι
hi : i ∈ insert n_1 s
l : ℕ
a : ↥(insert n_1 s) → Fin l → R
y : Fin l → M
hay :
  ∀ (i : ↥(insert n_1 s)), Eq.{u_2 + 1} (α := M) ((fun (i : ↥(insert n_1 s)) ↦ v (↑i : ι)) i) (∑ j : Fin l, a i j • y j)
hfa : ∀ (j : Fin l), Eq.{u_1 + 1} (α := R) (∑ i : ↥(insert n_1 s), (fun (i : ↥(insert n_1 s)) ↦ f (↑i : ι)) i * a i j) 0
this : v n_1 ∉ HSMul.hSMul (α := Ideal R) (β := Submodule R M) 𝔪 ⊤
n : ↥(insert n_1 s) := Subtype.mk (p := fun (x : ι) ↦ x ∈ insert n_1 s) n_1 ⋯
n_def : n = Subtype.mk (p := fun (x : ι) ↦ x ∈ insert n_1 s) n_1 ⋯
j : Fin l
hj : IsUnit (a n j)
a' : (i : ι) → R :=
  fun (i : ι) ↦ if hi : i ∈ insert n_1 s then a (Subtype.mk (p := fun (x : ι) ↦ x ∈ insert n_1 s) i hi) j else 0
a_eq : ∀ (i : ↥(insert n_1 s)), a i j = a' (↑i : ι)
h₁ h₂ : f (↑n : ι) * a n j + ∑ i ∈ s, f i * a' i = ∑ x : ↥(insert n_1 s), f (↑x : ι) * a x j
h₃ : f (↑n : ι) * a' (↑n : ι) + ∑ i ∈ s, f i * a' i = ∑ x : ↥(insert n_1 s), f (↑x : ι) * a' (↑x : ι)
h₄ : f (↑n : ι) * a' (↑n : ι) + ∑ i ∈ s, f i * a' i = ∑ i ∈ insert n_1 s, f i * a' i
h₅ : f (↑n : ι) * a' (↑n : ι) + ∑ i ∈ s, f i * a' i = f n_1 * a' n_1 + ∑ i ∈ s, f i * a' i
⊢ f (↑n : ι) * a n j + ∑ i ∈ s, f i * a' i = ∑ i : ↥(insert n_1 s), (fun (i : ↥(insert n_1 s)) ↦ f (↑i : ι)) i * a i j

Tactic:
simp_rw [a_eq, Finset.sum_coe_sort _ (fun i ↦ f i * a' i), s.sum_insert hn, n_def]

Premises used: HMul.hMul, Finset.sum_insert, Finset.sum_coe_sort
-- Module: Mathlib.RingTheory.LocalRing.Module
Goal:
R : Type u_1
M : Type u_2
inst : CommRing R
inst_1 : AddCommGroup M
inst_2 : Module R M
inst_3 : IsLocalRing R
inst_4 : Flat R M
ι : Type u
f : ι → R
n_1 : ι
s : Finset ι
hn : n_1 ∉ s
ih :
  ∀ (v : ι → M)
    (h :
      LinearIndependent k (M := k ⊗[R] M)
        ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v))
    (hfv : Eq.{u_2 + 1} (α := M) (∑ i ∈ s, f i • v i) 0) (i : ι) (hi : i ∈ s), f i = 0
v : ι → M
h :
  LinearIndependent k (M := k ⊗[R] M)
    ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v)
hfv : Eq.{u_2 + 1} (α := M) (∑ i : ↥(insert n_1 s), f (↑i : ι) • v (↑i : ι)) 0
i : ι
hi : i ∈ insert n_1 s
l : ℕ
a : ↥(insert n_1 s) → Fin l → R
y : Fin l → M
hay :
  ∀ (i : ↥(insert n_1 s)), Eq.{u_2 + 1} (α := M) ((fun (i : ↥(insert n_1 s)) ↦ v (↑i : ι)) i) (∑ j : Fin l, a i j • y j)
hfa : ∀ (j : Fin l), Eq.{u_1 + 1} (α := R) (∑ i : ↥(insert n_1 s), (fun (i : ↥(insert n_1 s)) ↦ f (↑i : ι)) i * a i j) 0
this : v n_1 ∉ HSMul.hSMul (α := Ideal R) (β := Submodule R M) 𝔪 ⊤
n : ↥(insert n_1 s) := Subtype.mk (p := fun (x : ι) ↦ x ∈ insert n_1 s) n_1 ⋯
n_def : n = Subtype.mk (p := fun (x : ι) ↦ x ∈ insert n_1 s) n_1 ⋯
j : Fin l
hj : IsUnit (a n j)
a' : (i : ι) → R :=
  fun (i : ι) ↦ if hi : i ∈ insert n_1 s then a (Subtype.mk (p := fun (x : ι) ↦ x ∈ insert n_1 s) i hi) j else 0
a_eq : ∀ (i : ↥(insert n_1 s)), a i j = a' (↑i : ι)
⊢ f (↑n : ι) = (-∑ i ∈ s, f i * a' i) * (↑hj.unit⁻¹ : R)

Tactic:
have hfn : f n = -(∑ i ∈ s, f i * a' i) * hj.unit⁻¹ := by
    rw [← hj.mul_left_inj, mul_assoc, hj.val_inv_mul, mul_one, eq_neg_iff_add_eq_zero]
    convert! hfa j
    simp_rw [a_eq, Finset.sum_coe_sort _ (fun i ↦ f i * a' i), s.sum_insert hn, n_def]
-- Module: Mathlib.RingTheory.LocalRing.Module
Goal:
R : Type u_1
M : Type u_2
inst : CommRing R
inst_1 : AddCommGroup M
inst_2 : Module R M
inst_3 : IsLocalRing R
inst_4 : Flat R M
ι : Type u
f : ι → R
n_1 : ι
s : Finset ι
hn : n_1 ∉ s
ih :
  ∀ (v : ι → M)
    (h :
      LinearIndependent k (M := k ⊗[R] M)
        ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v))
    (hfv : Eq.{u_2 + 1} (α := M) (∑ i ∈ s, f i • v i) 0) (i : ι) (hi : i ∈ s), f i = 0
v : ι → M
h :
  LinearIndependent k (M := k ⊗[R] M)
    ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v)
hfv : Eq.{u_2 + 1} (α := M) (∑ i : ↥(Insert.insert n_1 s), f (↑i : ι) • v (↑i : ι)) 0
i : ι
hi : i ∈ Insert.insert n_1 s
l : ℕ
a : ↥(Insert.insert n_1 s) → Fin l → R
y : Fin l → M
hay :
  ∀ (i : ↥(Insert.insert n_1 s)),
    Eq.{u_2 + 1} (α := M) ((fun (i : ↥(Insert.insert n_1 s)) ↦ v (↑i : ι)) i) (∑ j : Fin l, a i j • y j)
hfa :
  ∀ (j : Fin l),
    Eq.{u_1 + 1} (α := R) (∑ i : ↥(Insert.insert n_1 s), (fun (i : ↥(Insert.insert n_1 s)) ↦ f (↑i : ι)) i * a i j) 0
this : v n_1 ∉ HSMul.hSMul (α := Ideal R) (β := Submodule R M) 𝔪 ⊤
n : ↥(Insert.insert n_1 s) := Subtype.mk (p := fun (x : ι) ↦ x ∈ Insert.insert n_1 s) n_1 ⋯
n_def : n = Subtype.mk (p := fun (x : ι) ↦ x ∈ Insert.insert n_1 s) n_1 ⋯
j : Fin l
hj : IsUnit (a n j)
a' : (i : ι) → R :=
  fun (i : ι) ↦
    if hi : i ∈ Insert.insert n_1 s then a (Subtype.mk (p := fun (x : ι) ↦ x ∈ Insert.insert n_1 s) i hi) j else 0
a_eq : ∀ (i : ↥(Insert.insert n_1 s)), a i j = a' (↑i : ι)
hfn : f (↑n : ι) = (-∑ i ∈ s, f i * a' i) * (↑hj.unit⁻¹ : R)
c : (i : ι) → R := fun (i : ι) ↦ (-if i = (↑n : ι) then 0 else a' i) * (↑hj.unit⁻¹ : R)
insert :
  LinearIndependent k (M := k ⊗[R] M)
    ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘
      (v + fun (x : ι) ↦ c x • v (↑n : ι)))
insert₁ : Eq.{u_2 + 1} (α := M) (∑ i ∈ s, f i • HAdd.hAdd (β := ι → M) v (fun (x : ι) ↦ c x • v (↑n : ι)) i) 0
insert₂ : ∀ (ih : ∀ (i : ι) (hi : i ∈ s), f i = 0), f i = 0
⊢ f i = 0

Tactic:
specialize ih (v + (c · • v n)) ?_ ?_

Premises used: HAdd.hAdd, HSMul.hSMul, Subtype.val
-- Module: Mathlib.RingTheory.LocalRing.Module
Goal:
R : Type u_1
M : Type u_2
inst : CommRing R
inst_1 : AddCommGroup M
inst_2 : Module R M
inst_3 : IsLocalRing R
inst_4 : Flat R M
ι : Type u
f : ι → R
n_1 : ι
s : Finset ι
hn : n_1 ∉ s
ih :
  ∀ (v : ι → M)
    (h :
      LinearIndependent k (M := k ⊗[R] M)
        ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v))
    (hfv : Eq.{u_2 + 1} (α := M) (∑ i ∈ s, f i • v i) 0) (i : ι) (hi : i ∈ s), f i = 0
v : ι → M
h :
  LinearIndependent k (M := k ⊗[R] M)
    ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v)
hfv : Eq.{u_2 + 1} (α := M) (∑ i : ↥(insert n_1 s), f (↑i : ι) • v (↑i : ι)) 0
i : ι
hi : i ∈ insert n_1 s
l : ℕ
a : ↥(insert n_1 s) → Fin l → R
y : Fin l → M
hay :
  ∀ (i : ↥(insert n_1 s)), Eq.{u_2 + 1} (α := M) ((fun (i : ↥(insert n_1 s)) ↦ v (↑i : ι)) i) (∑ j : Fin l, a i j • y j)
hfa : ∀ (j : Fin l), Eq.{u_1 + 1} (α := R) (∑ i : ↥(insert n_1 s), (fun (i : ↥(insert n_1 s)) ↦ f (↑i : ι)) i * a i j) 0
this : v n_1 ∉ HSMul.hSMul (α := Ideal R) (β := Submodule R M) 𝔪 ⊤
n : ↥(insert n_1 s) := Subtype.mk (p := fun (x : ι) ↦ x ∈ insert n_1 s) n_1 ⋯
n_def : n = Subtype.mk (p := fun (x : ι) ↦ x ∈ insert n_1 s) n_1 ⋯
j : Fin l
hj : IsUnit (a n j)
a' : (i : ι) → R :=
  fun (i : ι) ↦ if hi : i ∈ insert n_1 s then a (Subtype.mk (p := fun (x : ι) ↦ x ∈ insert n_1 s) i hi) j else 0
a_eq : ∀ (i : ↥(insert n_1 s)), a i j = a' (↑i : ι)
hfn : f (↑n : ι) = (-∑ i ∈ s, f i * a' i) * (↑hj.unit⁻¹ : R)
c : (i : ι) → R := fun (i : ι) ↦ (-if i = (↑n : ι) then 0 else a' i) * (↑hj.unit⁻¹ : R)
⊢ LinearIndependent (HasQuotient.Quotient R (B := Ideal R) (𝔪 : Ideal R))
    (HAdd.hAdd (α := ι → k ⊗[R] M)
      ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v) fun (x : ι) ↦
      HSMul.hSMul (α := HasQuotient.Quotient R (B := Ideal R) (𝔪 : Ideal R)) (β := k ⊗[R] M)
        (((⇑(Ideal.Quotient.mk 𝔪) : (a : R) → R ⧸ 𝔪) ∘ c) x)
        (((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v) (↑n : ι)))

Tactic:
(linearIndependent_add_smul_iff (c := Ideal.Quotient.mk _ ∘ c) (i := n.1) ?_).mpr h

Premises used: Iff.mpr, linearIndependent_add_smul_iff
-- Module: Mathlib.RingTheory.LocalRing.Module
Goal:
R : Type u_1
M : Type u_2
inst : CommRing R
inst_1 : AddCommGroup M
inst_2 : Module R M
inst_3 : IsLocalRing R
inst_4 : Flat R M
ι : Type u
f : ι → R
n_1 : ι
s : Finset ι
hn : n_1 ∉ s
ih :
  ∀ (v : ι → M)
    (h :
      LinearIndependent k (M := k ⊗[R] M)
        ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v))
    (hfv : Eq.{u_2 + 1} (α := M) (∑ i ∈ s, f i • v i) 0) (i : ι) (hi : i ∈ s), f i = 0
v : ι → M
h :
  LinearIndependent k (M := k ⊗[R] M)
    ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v)
hfv : Eq.{u_2 + 1} (α := M) (∑ i : ↥(Insert.insert n_1 s), f (↑i : ι) • v (↑i : ι)) 0
i : ι
hi : i ∈ Insert.insert n_1 s
l : ℕ
a : ↥(Insert.insert n_1 s) → Fin l → R
y : Fin l → M
hay :
  ∀ (i : ↥(Insert.insert n_1 s)),
    Eq.{u_2 + 1} (α := M) ((fun (i : ↥(Insert.insert n_1 s)) ↦ v (↑i : ι)) i) (∑ j : Fin l, a i j • y j)
hfa :
  ∀ (j : Fin l),
    Eq.{u_1 + 1} (α := R) (∑ i : ↥(Insert.insert n_1 s), (fun (i : ↥(Insert.insert n_1 s)) ↦ f (↑i : ι)) i * a i j) 0
this : v n_1 ∉ HSMul.hSMul (α := Ideal R) (β := Submodule R M) 𝔪 ⊤
n : ↥(Insert.insert n_1 s) := Subtype.mk (p := fun (x : ι) ↦ x ∈ Insert.insert n_1 s) n_1 ⋯
n_def : n = Subtype.mk (p := fun (x : ι) ↦ x ∈ Insert.insert n_1 s) n_1 ⋯
j : Fin l
hj : IsUnit (a n j)
a' : (i : ι) → R :=
  fun (i : ι) ↦
    if hi : i ∈ Insert.insert n_1 s then a (Subtype.mk (p := fun (x : ι) ↦ x ∈ Insert.insert n_1 s) i hi) j else 0
a_eq : ∀ (i : ↥(Insert.insert n_1 s)), a i j = a' (↑i : ι)
hfn : f (↑n : ι) = (-∑ i ∈ s, f i * a' i) * (↑hj.unit⁻¹ : R)
c : (i : ι) → R := fun (i : ι) ↦ (-if i = (↑n : ι) then 0 else a' i) * (↑hj.unit⁻¹ : R)
h₁ :
  (⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘
      (v + fun (x : ι) ↦ c x • v (↑n : ι)) =
    HAdd.hAdd (α := ι → k ⊗[R] M)
      ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v) fun (x : ι) ↦
      HSMul.hSMul (α := HasQuotient.Quotient R (B := Ideal R) (𝔪 : Ideal R)) (β := k ⊗[R] M)
        (((⇑(Ideal.Quotient.mk 𝔪) : (a : R) → R ⧸ 𝔪) ∘ c) x)
        (((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v) (↑n : ι))
insert :
  Eq (α := HasQuotient.Quotient R (B := Ideal R) (𝔪 : Ideal R))
    (((⇑(Ideal.Quotient.mk 𝔪) : (a : R) → R ⧸ 𝔪) ∘ c) (↑n : ι)) 0
⊢ LinearIndependent k (M := k ⊗[R] M)
    ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘
      (v + fun (x : ι) ↦ c x • v (↑n : ι)))

Tactic:
convert! (linearIndependent_add_smul_iff (c := Ideal.Quotient.mk _ ∘ c) (i := n.1) ?_).mpr h

Premises used: Iff.mpr, linearIndependent_add_smul_iff
-- Module: Mathlib.RingTheory.LocalRing.Module
Goal:
R : Type u_1
M : Type u_2
inst : CommRing R
inst_1 : AddCommGroup M
inst_2 : Module R M
inst_3 : IsLocalRing R
inst_4 : Flat R M
ι : Type u
f : ι → R
n_1 : ι
s : Finset ι
hn : n_1 ∉ s
ih :
  ∀ (v : ι → M)
    (h :
      LinearIndependent k (M := k ⊗[R] M)
        ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v))
    (hfv : Eq.{u_2 + 1} (α := M) (∑ i ∈ s, f i • v i) 0) (i : ι) (hi : i ∈ s), f i = 0
v : ι → M
h :
  LinearIndependent k (M := k ⊗[R] M)
    ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v)
hfv : Eq.{u_2 + 1} (α := M) (∑ i : ↥(insert n_1 s), f (↑i : ι) • v (↑i : ι)) 0
i : ι
hi : i ∈ insert n_1 s
l : ℕ
a : ↥(insert n_1 s) → Fin l → R
y : Fin l → M
hay :
  ∀ (i : ↥(insert n_1 s)), Eq.{u_2 + 1} (α := M) ((fun (i : ↥(insert n_1 s)) ↦ v (↑i : ι)) i) (∑ j : Fin l, a i j • y j)
hfa : ∀ (j : Fin l), Eq.{u_1 + 1} (α := R) (∑ i : ↥(insert n_1 s), (fun (i : ↥(insert n_1 s)) ↦ f (↑i : ι)) i * a i j) 0
this : v n_1 ∉ HSMul.hSMul (α := Ideal R) (β := Submodule R M) 𝔪 ⊤
n : ↥(insert n_1 s) := Subtype.mk (p := fun (x : ι) ↦ x ∈ insert n_1 s) n_1 ⋯
n_def : n = Subtype.mk (p := fun (x : ι) ↦ x ∈ insert n_1 s) n_1 ⋯
j : Fin l
hj : IsUnit (a n j)
a' : (i : ι) → R :=
  fun (i : ι) ↦ if hi : i ∈ insert n_1 s then a (Subtype.mk (p := fun (x : ι) ↦ x ∈ insert n_1 s) i hi) j else 0
a_eq : ∀ (i : ↥(insert n_1 s)), a i j = a' (↑i : ι)
hfn : f (↑n : ι) = (-∑ i ∈ s, f i * a' i) * (↑hj.unit⁻¹ : R)
c : (i : ι) → R := fun (i : ι) ↦ (-if i = (↑n : ι) then 0 else a' i) * (↑hj.unit⁻¹ : R)
h₁ :
  ∀ (x : ι),
    ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘
          (v + fun (x : ι) ↦ c x • v (↑n : ι)))
        x =
      HAdd.hAdd (α := ι → k ⊗[R] M) (β := ι → k ⊗[R] M)
        ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v)
        (fun (x : ι) ↦
          HSMul.hSMul (α := HasQuotient.Quotient R (B := Ideal R) (𝔪 : Ideal R)) (β := k ⊗[R] M)
            (((⇑(Ideal.Quotient.mk 𝔪) : (a : R) → R ⧸ 𝔪) ∘ c) x)
            (((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v) (↑n : ι)))
        x
⊢ (⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘
      (v + fun (x : ι) ↦ c x • v (↑n : ι)) =
    HAdd.hAdd (α := ι → k ⊗[R] M)
      ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v) fun (x : ι) ↦
      HSMul.hSMul (α := HasQuotient.Quotient R (B := Ideal R) (𝔪 : Ideal R)) (β := k ⊗[R] M)
        (((⇑(Ideal.Quotient.mk 𝔪) : (a : R) → R ⧸ 𝔪) ∘ c) x)
        (((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v) (↑n : ι))

Tactic:
ext
-- Module: Mathlib.RingTheory.LocalRing.Module
Goal:
R : Type u_1
M : Type u_2
inst : CommRing R
inst_1 : AddCommGroup M
inst_2 : Module R M
inst_3 : IsLocalRing R
inst_4 : Flat R M
ι : Type u
f : ι → R
n_1 : ι
s : Finset ι
hn : n_1 ∉ s
ih :
  ∀ (v : ι → M)
    (h :
      LinearIndependent k (M := k ⊗[R] M)
        ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v))
    (hfv : Eq.{u_2 + 1} (α := M) (∑ i ∈ s, f i • v i) 0) (i : ι) (hi : i ∈ s), f i = 0
v : ι → M
h :
  LinearIndependent k (M := k ⊗[R] M)
    ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v)
hfv : Eq.{u_2 + 1} (α := M) (∑ i : ↥(insert n_1 s), f (↑i : ι) • v (↑i : ι)) 0
i : ι
hi : i ∈ insert n_1 s
l : ℕ
a : ↥(insert n_1 s) → Fin l → R
y : Fin l → M
hay :
  ∀ (i : ↥(insert n_1 s)), Eq.{u_2 + 1} (α := M) ((fun (i : ↥(insert n_1 s)) ↦ v (↑i : ι)) i) (∑ j : Fin l, a i j • y j)
hfa : ∀ (j : Fin l), Eq.{u_1 + 1} (α := R) (∑ i : ↥(insert n_1 s), (fun (i : ↥(insert n_1 s)) ↦ f (↑i : ι)) i * a i j) 0
this : v n_1 ∉ HSMul.hSMul (α := Ideal R) (β := Submodule R M) 𝔪 ⊤
n : ↥(insert n_1 s) := Subtype.mk (p := fun (x : ι) ↦ x ∈ insert n_1 s) n_1 ⋯
n_def : n = Subtype.mk (p := fun (x : ι) ↦ x ∈ insert n_1 s) n_1 ⋯
j : Fin l
hj : IsUnit (a n j)
a' : (i : ι) → R :=
  fun (i : ι) ↦ if hi : i ∈ insert n_1 s then a (Subtype.mk (p := fun (x : ι) ↦ x ∈ insert n_1 s) i hi) j else 0
a_eq : ∀ (i : ↥(insert n_1 s)), a i j = a' (↑i : ι)
hfn : f (↑n : ι) = (-∑ i ∈ s, f i * a' i) * (↑hj.unit⁻¹ : R)
c : (i : ι) → R := fun (i : ι) ↦ (-if i = (↑n : ι) then 0 else a' i) * (↑hj.unit⁻¹ : R)
x : ι
h₁ :
  HSMul.hSMul (β := k ⊗[R] M) (c x) (1 ⊗ₜ[R] v (↑n : ι)) =
    HSMul.hSMul (α := HasQuotient.Quotient R (B := Ideal R) (𝔪 : Ideal R)) (β := k ⊗[R] M)
      ((Ideal.Quotient.mk 𝔪 : (a : R) → R ⧸ 𝔪) (c x) : HasQuotient.Quotient R (B := Ideal R) (𝔪 : Ideal R))
      (1 ⊗ₜ[R] v (↑n : ι))
⊢ ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘
        (v + fun (x : ι) ↦ c x • v (↑n : ι)))
      x =
    HAdd.hAdd (α := ι → k ⊗[R] M) (β := ι → k ⊗[R] M)
      ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v)
      (fun (x : ι) ↦
        HSMul.hSMul (α := HasQuotient.Quotient R (B := Ideal R) (𝔪 : Ideal R)) (β := k ⊗[R] M)
          (((⇑(Ideal.Quotient.mk 𝔪) : (a : R) → R ⧸ 𝔪) ∘ c) x)
          (((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v) (↑n : ι)))
      x

Tactic:
simp [tmul_add]

Premises used: TensorProduct.tmul_add
-- Module: Mathlib.RingTheory.LocalRing.Module
Goal:
R : Type u_1
M : Type u_2
inst : CommRing R
inst_1 : AddCommGroup M
inst_2 : Module R M
inst_3 : IsLocalRing R
inst_4 : Flat R M
ι : Type u
f : ι → R
n_1 : ι
s : Finset ι
hn : n_1 ∉ s
ih :
  ∀ (v : ι → M)
    (h :
      LinearIndependent k (M := k ⊗[R] M)
        ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v))
    (hfv : Eq.{u_2 + 1} (α := M) (∑ i ∈ s, f i • v i) 0) (i : ι) (hi : i ∈ s), f i = 0
v : ι → M
h :
  LinearIndependent k (M := k ⊗[R] M)
    ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v)
hfv : Eq.{u_2 + 1} (α := M) (∑ i : ↥(insert n_1 s), f (↑i : ι) • v (↑i : ι)) 0
i : ι
hi : i ∈ insert n_1 s
l : ℕ
a : ↥(insert n_1 s) → Fin l → R
y : Fin l → M
hay :
  ∀ (i : ↥(insert n_1 s)), Eq.{u_2 + 1} (α := M) ((fun (i : ↥(insert n_1 s)) ↦ v (↑i : ι)) i) (∑ j : Fin l, a i j • y j)
hfa : ∀ (j : Fin l), Eq.{u_1 + 1} (α := R) (∑ i : ↥(insert n_1 s), (fun (i : ↥(insert n_1 s)) ↦ f (↑i : ι)) i * a i j) 0
this : v n_1 ∉ HSMul.hSMul (α := Ideal R) (β := Submodule R M) 𝔪 ⊤
n : ↥(insert n_1 s) := Subtype.mk (p := fun (x : ι) ↦ x ∈ insert n_1 s) n_1 ⋯
n_def : n = Subtype.mk (p := fun (x : ι) ↦ x ∈ insert n_1 s) n_1 ⋯
j : Fin l
hj : IsUnit (a n j)
a' : (i : ι) → R :=
  fun (i : ι) ↦ if hi : i ∈ insert n_1 s then a (Subtype.mk (p := fun (x : ι) ↦ x ∈ insert n_1 s) i hi) j else 0
a_eq : ∀ (i : ↥(insert n_1 s)), a i j = a' (↑i : ι)
hfn : f (↑n : ι) = (-∑ i ∈ s, f i * a' i) * (↑hj.unit⁻¹ : R)
c : (i : ι) → R := fun (i : ι) ↦ (-if i = (↑n : ι) then 0 else a' i) * (↑hj.unit⁻¹ : R)
x : ι
⊢ HSMul.hSMul (β := k ⊗[R] M) (c x) (1 ⊗ₜ[R] v (↑n : ι)) =
    HSMul.hSMul (α := HasQuotient.Quotient R (B := Ideal R) (𝔪 : Ideal R)) (β := k ⊗[R] M)
      ((Ideal.Quotient.mk 𝔪 : (a : R) → R ⧸ 𝔪) (c x) : HasQuotient.Quotient R (B := Ideal R) (𝔪 : Ideal R))
      (1 ⊗ₜ[R] v (↑n : ι))

Tactic:
rfl
-- Module: Mathlib.RingTheory.LocalRing.Module
Goal:
R : Type u_1
M : Type u_2
inst : CommRing R
inst_1 : AddCommGroup M
inst_2 : Module R M
inst_3 : IsLocalRing R
inst_4 : Flat R M
ι : Type u
f : ι → R
n_1 : ι
s : Finset ι
hn : n_1 ∉ s
ih :
  ∀ (v : ι → M)
    (h :
      LinearIndependent k (M := k ⊗[R] M)
        ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v))
    (hfv : Eq.{u_2 + 1} (α := M) (∑ i ∈ s, f i • v i) 0) (i : ι) (hi : i ∈ s), f i = 0
v : ι → M
h :
  LinearIndependent k (M := k ⊗[R] M)
    ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v)
i : ι
hi : i ∈ Insert.insert n_1 s
l : ℕ
a : ↥(Insert.insert n_1 s) → Fin l → R
y : Fin l → M
hay :
  ∀ (i : ↥(Insert.insert n_1 s)),
    Eq.{u_2 + 1} (α := M) ((fun (i : ↥(Insert.insert n_1 s)) ↦ v (↑i : ι)) i) (∑ j : Fin l, a i j • y j)
hfa :
  ∀ (j : Fin l),
    Eq.{u_1 + 1} (α := R) (∑ i : ↥(Insert.insert n_1 s), (fun (i : ↥(Insert.insert n_1 s)) ↦ f (↑i : ι)) i * a i j) 0
this : v n_1 ∉ HSMul.hSMul (α := Ideal R) (β := Submodule R M) 𝔪 ⊤
n : ↥(Insert.insert n_1 s) := Subtype.mk (p := fun (x : ι) ↦ x ∈ Insert.insert n_1 s) n_1 ⋯
n_def : n = Subtype.mk (p := fun (x : ι) ↦ x ∈ Insert.insert n_1 s) n_1 ⋯
j : Fin l
hj : IsUnit (a n j)
a' : (i : ι) → R :=
  fun (i : ι) ↦
    if hi : i ∈ Insert.insert n_1 s then a (Subtype.mk (p := fun (x : ι) ↦ x ∈ Insert.insert n_1 s) i hi) j else 0
hfv : ∑ x ∈ s, f x • v x + ((-∑ i ∈ s, f i * a' i) * (↑hj.unit⁻¹ : R)) • v n_1 = 0
a_eq : ∀ (i : ↥(Insert.insert n_1 s)), a i j = a' (↑i : ι)
hfn : f (↑n : ι) = (-∑ i ∈ s, f i * a' i) * (↑hj.unit⁻¹ : R)
c : (i : ι) → R := fun (i : ι) ↦ (-if i = (↑n : ι) then 0 else a' i) * (↑hj.unit⁻¹ : R)
insert :
  ∑ x ∈ s, f x • v x + ((-∑ x ∈ s, f x * if x = (↑n : ι) then 0 else a' x) * (↑hj.unit⁻¹ : R)) • v (↑n : ι) =
    ∑ x ∈ s, f x • v x + ((-∑ i ∈ s, f i * a' i) * (↑hj.unit⁻¹ : R)) • v n_1
⊢ Eq.{u_2 + 1} (α := M) (∑ i ∈ s, f i • HAdd.hAdd (β := ι → M) v (fun (x : ι) ↦ c x • v (↑n : ι)) i) 0

Tactic:
simp_rw [Pi.add_apply, smul_add, s.sum_add_distrib, c, smul_smul, ← s.sum_smul, ← mul_assoc,
      ← s.sum_mul, mul_neg, s.sum_neg_distrib, ← hfv]

Premises used: Finset.sum_smul, Finset.sum_add_distrib, mul_assoc, smul_smul, Pi.add_apply, Finset.sum_neg_distrib, smul_add, Finset.sum_mul, mul_neg
-- Module: Mathlib.RingTheory.LocalRing.Module
Goal:
R : Type u_1
M : Type u_2
inst : CommRing R
inst_1 : AddCommGroup M
inst_2 : Module R M
inst_3 : IsLocalRing R
inst_4 : Flat R M
ι : Type u
f : ι → R
n_1 : ι
s : Finset ι
hn : n_1 ∉ s
ih :
  ∀ (v : ι → M)
    (h :
      LinearIndependent k (M := k ⊗[R] M)
        ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v))
    (hfv : Eq.{u_2 + 1} (α := M) (∑ i ∈ s, f i • v i) 0) (i : ι) (hi : i ∈ s), f i = 0
v : ι → M
h :
  LinearIndependent k (M := k ⊗[R] M)
    ((⇑((TensorProduct.mk R k M : (a : k) → M →ₗ[R] k ⊗[R] M) 1) : (a : M) → k ⊗[R] M) ∘ v)
i : ι
hi : i ∈ Insert.insert n_1 s
l : ℕ
a : ↥(Insert.insert n_1 s) → Fin l → R
y : Fin l → M
hay :
  ∀ (i : ↥(Insert.insert n_1 s)),
    Eq.{u_2 + 1} (α := M) ((fun (i : ↥(Insert.insert n_1 s)) ↦ v (↑i : ι)) i) (∑ j : Fin l, a i j • y j)
hfa :
  ∀ (j : Fin l),
    Eq.{u_1 + 1} (α := R) (∑ i : ↥(Insert.insert n_1 s), (fun (i : ↥(Insert.insert n_1 s)) ↦ f (↑i : ι)) i * a i j) 0
this : v n_1 ∉ HSMul.hSMul (α := Ideal R) (β := Submodule R M) 𝔪 ⊤
n : ↥(Insert.insert n_1 s) := Subtype.mk (p := fun (x : ι) ↦ x ∈ Insert.insert n_1 s) n_1 ⋯
n_def : n = Subtype.mk (p := fun (x : ι) ↦ x ∈ Insert.insert n_1 s) n_1 ⋯
j : Fin l
hj : IsUnit (a n j)
a' : (i : ι) → R :=
  fun (i : ι) ↦
    if hi : i ∈ Insert.insert n_1 s then a (Subtype.mk (p := fun (x : ι) ↦ x ∈ Insert.insert n_1 s) i hi) j else 0
hfv : ∑ x ∈ s, f x • v x + ((-∑ i ∈ s, f i * a' i) * (↑hj.unit⁻¹ : R)) • v n_1 = 0
a_eq : ∀ (i : ↥(Insert.insert n_1 s)), a i j = a' (↑i : ι)
hfn : f (↑n : ι) = (-∑ i ∈ s, f i * a' i) * (↑hj.unit⁻¹ : R)
c : (i : ι) → R := fun (i : ι) ↦ (-if i = (↑n : ι) then 0 else a' i) * (↑hj.unit⁻¹ : R)
insert : Eq.{u_1 + 1} (α := R) (∑ x ∈ s, f x * if x = (↑n : ι) then 0 else a' x) (∑ i ∈ s, f i * a' i)
⊢ ∑ x ∈ s, f x • v x + ((-∑ x ∈ s, f x * if x = (↑n : ι) then 0 else a' x) * (↑hj.unit⁻¹ : R)) • v (↑n : ι) =
    ∑ x ∈ s, f x • v x + ((-∑ i ∈ s, f i * a' i) * (↑hj.unit⁻¹ : R)) • v n_1

Tactic:
congr 4