awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Extended (goal)
Goal:
A : Type u_1
K : Type u_2
L : Type u_3
B : Type u_4
inst : CommRing A
inst_1 : IsDomain A
inst_2 : CommRing B
inst_3 : IsDomain B
inst_4 : Algebra A B
inst_5 : IsTorsionFree A B
inst_6 : Field K
inst_7 : Field L
inst_8 : Algebra A K
inst_9 : Algebra B L
inst_10 : IsFractionRing A K
inst_11 : IsFractionRing B L
inst_12 : Algebra K L
inst_13 : Algebra A L
inst_14 : IsScalarTower A B L
inst_15 : IsScalarTower A K L
inst_16 : Algebra.IsIntegral A B
inst_17 : IsDedekindDomain A
inst_18 : IsDedekindDomain B
I J : FractionalIdeal.{u_1, u_2} (R := A) A⁰ K
h :
  Eq.{u_3 + 1} (α := FractionalIdeal.{u_4, u_3} (R := B) B⁰ L)
    ((extendedHom L B : (a : FractionalIdeal A⁰ K) → FractionalIdeal B⁰ L) I : FractionalIdeal.{u_4, u_3} (R := B) B⁰ L)
    ((extendedHom L B : (a : FractionalIdeal A⁰ K) → FractionalIdeal B⁰ L) J : FractionalIdeal.{u_4, u_3} (R := B) B⁰ L)
hI : ¬I = 0
hJ : ¬J = 0
neg :
  ∀
    (h :
      HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := B) B⁰ L) (β := FractionalIdeal.{u_4, u_3} (R := B) B⁰ L)
          ((extendedHom L B : (a : FractionalIdeal A⁰ K) → FractionalIdeal B⁰ L) I :
            FractionalIdeal.{u_4, u_3} (R := B) B⁰ L)
          (((extendedHom L B : (a : FractionalIdeal A⁰ K) → FractionalIdeal B⁰ L) J)⁻¹ :
            FractionalIdeal.{u_4, u_3} (R := B) B⁰ L) =
        1)
    (hI : ¬I = 0) (hJ : ¬J = 0), I = J
neg₁ :
  ∀
    (h :
      HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := B) B⁰ L) (β := FractionalIdeal.{u_4, u_3} (R := B) B⁰ L)
          ((extendedHom L B : (a : FractionalIdeal A⁰ K) → FractionalIdeal B⁰ L) I :
            FractionalIdeal.{u_4, u_3} (R := B) B⁰ L)
          ((extendedHom L B : (a : FractionalIdeal A⁰ K) → FractionalIdeal B⁰ L) J⁻¹ :
            FractionalIdeal.{u_4, u_3} (R := B) B⁰ L) =
        1)
    (hI : ¬I = 0) (hJ : ¬J = 0), I = J
neg₂ :
  ∀
    (h :
      Eq.{u_3 + 1} (α := FractionalIdeal.{u_4, u_3} (R := B) B⁰ L)
        ((extendedHom L B : (a : FractionalIdeal A⁰ K) → FractionalIdeal B⁰ L) (I * J⁻¹) :
          FractionalIdeal.{u_4, u_3} (R := B) B⁰ L)
        (1 : FractionalIdeal.{u_4, u_3} (R := B) B⁰ L))
    (hI : ¬I = 0) (hJ : ¬J = 0), I = J
neg₃ : ∀ (h : I * J⁻¹ = 1) (hI : ¬I = 0) (hJ : ¬J = 0), I = J
⊢ I = J
have neg₄ : ∀ (h : I = J) (hI : ¬I = 0) (hJ : ¬J = 0), I = J
Tactic: rwa [← mul_inv_eq_one₀ ((extendedHom_eq_zero_iff _ _).not.mpr hJ), ← map_inv₀, ← map_mul,
    extendedHom_eq_one_iff _ _ (mul_ne_zero hI (inv_ne_zero hJ)), mul_inv_eq_one₀ hJ] at h
Cleared hypotheses: h, hI, hJ
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
J : FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K
h : J ≠ 0
⊢ (↑J⁻¹ : Submodule R₁ K) = HDiv.hDiv (α := Submodule R₁ K) (IsLocalization.coeSubmodule K ⊤) (↑J : Submodule R₁ K)
have simp_rw : (↑(Subtype.mk (p := fun (I : Submodule R₁ K) ↦ IsFractional R₁⁰ I) ((↑1 : Submodule R₁ K) / (↑J : Submodule R₁ K)) sorry) :
    Submodule R₁ K) =
  HDiv.hDiv (α := Submodule R₁ K) (IsLocalization.coeSubmodule K ⊤) (↑J : Submodule R₁ K)
Tactic: simp_rw [inv_of_ne_zero _ h, coe_one, coe_mk, IsLocalization.coeSubmodule_top]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
J : FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K
h : J ≠ 0
simp_rw :
  (↑(Subtype.mk (p := fun (I : Submodule R₁ K) ↦ IsFractional R₁⁰ I) ((↑1 : Submodule R₁ K) / (↑J : Submodule R₁ K))
          ⋯) :
      Submodule R₁ K) =
    HDiv.hDiv (α := Submodule R₁ K) (IsLocalization.coeSubmodule K ⊤) (↑J : Submodule R₁ K)
⊢ (↑J⁻¹ : Submodule R₁ K) = HDiv.hDiv (α := Submodule R₁ K) (IsLocalization.coeSubmodule K ⊤) (↑J : Submodule R₁ K)
have simp_rw₁ : (↑(Subtype.mk (p := fun (I : Submodule R₁ K) ↦ IsFractional R₁⁰ I) (1 / (↑J : Submodule R₁ K)) sorry) : Submodule R₁ K) =
  HDiv.hDiv (α := Submodule R₁ K) (IsLocalization.coeSubmodule K ⊤) (↑J : Submodule R₁ K)
Tactic: simp_rw [inv_of_ne_zero _ h, coe_one, coe_mk, IsLocalization.coeSubmodule_top]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
J : FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K
h : J ≠ 0
simp_rw :
  (↑(Subtype.mk (p := fun (I : Submodule R₁ K) ↦ IsFractional R₁⁰ I) ((↑1 : Submodule R₁ K) / (↑J : Submodule R₁ K))
          ⋯) :
      Submodule R₁ K) =
    HDiv.hDiv (α := Submodule R₁ K) (IsLocalization.coeSubmodule K ⊤) (↑J : Submodule R₁ K)
simp_rw₁ :
  (↑(Subtype.mk (p := fun (I : Submodule R₁ K) ↦ IsFractional R₁⁰ I) (1 / (↑J : Submodule R₁ K)) ⋯) : Submodule R₁ K) =
    HDiv.hDiv (α := Submodule R₁ K) (IsLocalization.coeSubmodule K ⊤) (↑J : Submodule R₁ K)
⊢ (↑J⁻¹ : Submodule R₁ K) = HDiv.hDiv (α := Submodule R₁ K) (IsLocalization.coeSubmodule K ⊤) (↑J : Submodule R₁ K)
have simp_rw₂ : 1 / (↑J : Submodule R₁ K) = HDiv.hDiv (α := Submodule R₁ K) (IsLocalization.coeSubmodule K ⊤) (↑J : Submodule R₁ K)
Tactic: simp_rw [inv_of_ne_zero _ h, coe_one, coe_mk, IsLocalization.coeSubmodule_top]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
I J : FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K
hI : I ≠ 0
hJ : J ≠ 0
hIJ : I ≤ J
x : K
⊢ x ∈ J⁻¹ → x ∈ I⁻¹
have simp : (∀ y ∈ J, Membership.mem (γ := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) 1 (x * y)) →
  ∀ y ∈ I, Membership.mem (γ := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) 1 (x * y)
Tactic: simp only [mem_inv_iff hJ, mem_inv_iff hI]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
K' : Type u_5
inst_5 : Field K'
inst_6 : Algebra R₁ K'
inst_7 : IsFractionRing R₁ K'
I : FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K
h : K ≃ₐ[R₁] K'
⊢ map (↑h : K →ₐ[R₁] K') I⁻¹ = (map (↑h : K →ₐ[R₁] K') I)⁻¹
have rw : map (↑h : K →ₐ[R₁] K') (1 / I) = (map (↑h : K →ₐ[R₁] K') I)⁻¹
Tactic: rw [inv_eq, FractionalIdeal.map_div, FractionalIdeal.map_one, inv_eq]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
K' : Type u_5
inst_5 : Field K'
inst_6 : Algebra R₁ K'
inst_7 : IsFractionRing R₁ K'
I : FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K
h : K ≃ₐ[R₁] K'
rw : map (↑h : K →ₐ[R₁] K') (1 / I) = (map (↑h : K →ₐ[R₁] K') I)⁻¹
⊢ map (↑h : K →ₐ[R₁] K') I⁻¹ = (map (↑h : K →ₐ[R₁] K') I)⁻¹
have rw₁ : map (↑h : K →ₐ[R₁] K') 1 / map (↑h : K →ₐ[R₁] K') I = (map (↑h : K →ₐ[R₁] K') I)⁻¹
Tactic: rw [inv_eq, FractionalIdeal.map_div, FractionalIdeal.map_one, inv_eq]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
K' : Type u_5
inst_5 : Field K'
inst_6 : Algebra R₁ K'
inst_7 : IsFractionRing R₁ K'
I : FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K
h : K ≃ₐ[R₁] K'
rw : map (↑h : K →ₐ[R₁] K') (1 / I) = (map (↑h : K →ₐ[R₁] K') I)⁻¹
rw₁ : map (↑h : K →ₐ[R₁] K') 1 / map (↑h : K →ₐ[R₁] K') I = (map (↑h : K →ₐ[R₁] K') I)⁻¹
⊢ map (↑h : K →ₐ[R₁] K') I⁻¹ = (map (↑h : K →ₐ[R₁] K') I)⁻¹
have rw₂ : 1 / map (↑h : K →ₐ[R₁] K') I = (map (↑h : K →ₐ[R₁] K') I)⁻¹
Tactic: rw [inv_eq, FractionalIdeal.map_div, FractionalIdeal.map_one, inv_eq]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
K' : Type u_5
inst_5 : Field K'
inst_6 : Algebra R₁ K'
inst_7 : IsFractionRing R₁ K'
I : FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K
h : K ≃ₐ[R₁] K'
rw : map (↑h : K →ₐ[R₁] K') (1 / I) = (map (↑h : K →ₐ[R₁] K') I)⁻¹
rw₁ : map (↑h : K →ₐ[R₁] K') 1 / map (↑h : K →ₐ[R₁] K') I = (map (↑h : K →ₐ[R₁] K') I)⁻¹
rw₂ : 1 / map (↑h : K →ₐ[R₁] K') I = (map (↑h : K →ₐ[R₁] K') I)⁻¹
⊢ map (↑h : K →ₐ[R₁] K') I⁻¹ = (map (↑h : K →ₐ[R₁] K') I)⁻¹
have rw₃ : 1 / map (↑h : K →ₐ[R₁] K') I = 1 / map (↑h : K →ₐ[R₁] K') I
Tactic: rw [inv_eq, FractionalIdeal.map_div, FractionalIdeal.map_one, inv_eq]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x y : K
⊢ HDiv.hDiv (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ y) =
    spanSingleton R₁⁰ (x / y)
have rw : HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ y⁻¹) (spanSingleton R₁⁰ x) =
  spanSingleton R₁⁰ (x / y)
Tactic: rw [div_spanSingleton, mul_comm, spanSingleton_mul_spanSingleton, div_eq_mul_inv]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x y : K
rw :
  HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ y⁻¹) (spanSingleton R₁⁰ x) =
    spanSingleton R₁⁰ (x / y)
⊢ HDiv.hDiv (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ y) =
    spanSingleton R₁⁰ (x / y)
have rw₁ : HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ y⁻¹) =
  spanSingleton R₁⁰ (x / y)
Tactic: rw [div_spanSingleton, mul_comm, spanSingleton_mul_spanSingleton, div_eq_mul_inv]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x y : K
rw :
  HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ y⁻¹) (spanSingleton R₁⁰ x) =
    spanSingleton R₁⁰ (x / y)
rw₁ :
  HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ y⁻¹) =
    spanSingleton R₁⁰ (x / y)
⊢ HDiv.hDiv (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ y) =
    spanSingleton R₁⁰ (x / y)
have rw₂ : Eq (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ (x * y⁻¹)) (spanSingleton R₁⁰ (x / y))
Tactic: rw [div_spanSingleton, mul_comm, spanSingleton_mul_spanSingleton, div_eq_mul_inv]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x y : K
rw :
  HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ y⁻¹) (spanSingleton R₁⁰ x) =
    spanSingleton R₁⁰ (x / y)
rw₁ :
  HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ y⁻¹) =
    spanSingleton R₁⁰ (x / y)
rw₂ : Eq (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ (x * y⁻¹)) (spanSingleton R₁⁰ (x / y))
⊢ HDiv.hDiv (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ y) =
    spanSingleton R₁⁰ (x / y)
have rw₃ : Eq (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ (x * y⁻¹)) (spanSingleton R₁⁰ (x * y⁻¹))
Tactic: rw [div_spanSingleton, mul_comm, spanSingleton_mul_spanSingleton, div_eq_mul_inv]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x : K
hx : x ≠ 0
⊢ HDiv.hDiv (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ x) = 1
have rw : Eq (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ (x / x)) 1
Tactic: rw [spanSingleton_div_spanSingleton, div_self hx, spanSingleton_one]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x : K
hx : x ≠ 0
rw : Eq (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ (x / x)) 1
⊢ HDiv.hDiv (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ x) = 1
have rw₁ : Eq.{u_3 + 1} (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ 1) 1
Tactic: rw [spanSingleton_div_spanSingleton, div_self hx, spanSingleton_one]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x : K
hx : x ≠ 0
rw : Eq (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ (x / x)) 1
rw₁ : Eq.{u_3 + 1} (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ 1) 1
⊢ HDiv.hDiv (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ x) = 1
have rw₂ : Eq.{u_3 + 1} (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) 1 1
Tactic: rw [spanSingleton_div_spanSingleton, div_self hx, spanSingleton_one]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x : R₁
hx : x ≠ 0
⊢ HDiv.hDiv (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (↑(Ideal.span {x}) : FractionalIdeal R₁⁰ K)
      (↑(Ideal.span {x}) : FractionalIdeal R₁⁰ K) =
    1
have rw : HDiv.hDiv (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (β := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K)
    (spanSingleton R₁⁰ ((algebraMap R₁ K : (a : R₁) → K) x) : FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K)
    (spanSingleton R₁⁰ ((algebraMap R₁ K : (a : R₁) → K) x) : FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) =
  1
Tactic: rw [coeIdeal_span_singleton,
    spanSingleton_div_self K <|
      (map_ne_zero_iff _ <| FaithfulSMul.algebraMap_injective R₁ K).mpr hx]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x : R₁
hx : x ≠ 0
rw :
  HDiv.hDiv (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (β := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K)
      (spanSingleton R₁⁰ ((algebraMap R₁ K : (a : R₁) → K) x) : FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K)
      (spanSingleton R₁⁰ ((algebraMap R₁ K : (a : R₁) → K) x) : FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) =
    1
⊢ HDiv.hDiv (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (↑(Ideal.span {x}) : FractionalIdeal R₁⁰ K)
      (↑(Ideal.span {x}) : FractionalIdeal R₁⁰ K) =
    1
have rw₁ : Eq.{u_3 + 1} (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) 1 1
Tactic: rw [coeIdeal_span_singleton,
    spanSingleton_div_self K <|
      (map_ne_zero_iff _ <| FaithfulSMul.algebraMap_injective R₁ K).mpr hx]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x : K
hx : x ≠ 0
⊢ HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ x)⁻¹ = 1
have rw : HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ x⁻¹) = 1
Tactic: rw [spanSingleton_inv, spanSingleton_mul_spanSingleton, mul_inv_cancel₀ hx, spanSingleton_one]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x : K
hx : x ≠ 0
rw : HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ x⁻¹) = 1
⊢ HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ x)⁻¹ = 1
have rw₁ : Eq (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ (x * x⁻¹)) 1
Tactic: rw [spanSingleton_inv, spanSingleton_mul_spanSingleton, mul_inv_cancel₀ hx, spanSingleton_one]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x : K
hx : x ≠ 0
rw : HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ x⁻¹) = 1
rw₁ : Eq (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ (x * x⁻¹)) 1
⊢ HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ x)⁻¹ = 1
have rw₂ : Eq.{u_3 + 1} (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ 1) 1
Tactic: rw [spanSingleton_inv, spanSingleton_mul_spanSingleton, mul_inv_cancel₀ hx, spanSingleton_one]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x : K
hx : x ≠ 0
rw : HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ x⁻¹) = 1
rw₁ : Eq (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ (x * x⁻¹)) 1
rw₂ : Eq.{u_3 + 1} (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ 1) 1
⊢ HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ x)⁻¹ = 1
have rw₃ : Eq.{u_3 + 1} (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) 1 1
Tactic: rw [spanSingleton_inv, spanSingleton_mul_spanSingleton, mul_inv_cancel₀ hx, spanSingleton_one]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x : R₁
hx : x ≠ 0
⊢ HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (↑(Ideal.span {x}) : FractionalIdeal R₁⁰ K)
      (↑(Ideal.span {x}) : FractionalIdeal R₁⁰ K)⁻¹ =
    1
have rw : HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (β := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K)
    (spanSingleton R₁⁰ ((algebraMap R₁ K : (a : R₁) → K) x) : FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K)
    ((spanSingleton R₁⁰ ((algebraMap R₁ K : (a : R₁) → K) x))⁻¹ : FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) =
  1
Tactic: rw [coeIdeal_span_singleton,
    spanSingleton_mul_inv K <|
      (map_ne_zero_iff _ <| FaithfulSMul.algebraMap_injective R₁ K).mpr hx]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x : R₁
hx : x ≠ 0
rw :
  HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (β := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K)
      (spanSingleton R₁⁰ ((algebraMap R₁ K : (a : R₁) → K) x) : FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K)
      ((spanSingleton R₁⁰ ((algebraMap R₁ K : (a : R₁) → K) x))⁻¹ : FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) =
    1
⊢ HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (↑(Ideal.span {x}) : FractionalIdeal R₁⁰ K)
      (↑(Ideal.span {x}) : FractionalIdeal R₁⁰ K)⁻¹ =
    1
have rw₁ : Eq.{u_3 + 1} (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) 1 1
Tactic: rw [coeIdeal_span_singleton,
    spanSingleton_mul_inv K <|
      (map_ne_zero_iff _ <| FaithfulSMul.algebraMap_injective R₁ K).mpr hx]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x : K
hx : x ≠ 0
⊢ HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x)⁻¹ (spanSingleton R₁⁰ x) = 1
have rw : HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ x)⁻¹ = 1
Tactic: rw [mul_comm, spanSingleton_mul_inv K hx]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x : K
hx : x ≠ 0
rw : HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x) (spanSingleton R₁⁰ x)⁻¹ = 1
⊢ HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (spanSingleton R₁⁰ x)⁻¹ (spanSingleton R₁⁰ x) = 1
have rw₁ : Eq.{u_3 + 1} (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) 1 1
Tactic: rw [mul_comm, spanSingleton_mul_inv K hx]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x : R₁
hx : x ≠ 0
⊢ HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (↑(Ideal.span {x}) : FractionalIdeal R₁⁰ K)⁻¹
      (↑(Ideal.span {x}) : FractionalIdeal R₁⁰ K) =
    1
have rw : HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (↑(Ideal.span {x}) : FractionalIdeal R₁⁰ K)
    (↑(Ideal.span {x}) : FractionalIdeal R₁⁰ K)⁻¹ =
  1
Tactic: rw [mul_comm, coe_ideal_span_singleton_mul_inv K hx]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_4
inst_1 : CommRing R₁
inst_2 : IsDomain R₁
inst_3 : Algebra R₁ K
inst_4 : IsFractionRing R₁ K
x : R₁
hx : x ≠ 0
rw :
  HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (↑(Ideal.span {x}) : FractionalIdeal R₁⁰ K)
      (↑(Ideal.span {x}) : FractionalIdeal R₁⁰ K)⁻¹ =
    1
⊢ HMul.hMul (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) (↑(Ideal.span {x}) : FractionalIdeal R₁⁰ K)⁻¹
      (↑(Ideal.span {x}) : FractionalIdeal R₁⁰ K) =
    1
have rw₁ : Eq.{u_3 + 1} (α := FractionalIdeal.{u_4, u_3} (R := R₁) R₁⁰ K) 1 1
Tactic: rw [mul_comm, coe_ideal_span_singleton_mul_inv K hx]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_6
inst_1 : CommRing R₁
inst_2 : Algebra R₁ K
inst_3 : IsLocalization.{u_6, u_3} (R := R₁) R₁⁰ K
I : FractionalIdeal.{u_6, u_3} (R := R₁) R₁⁰ K
inst_4 : (↑I : Submodule R₁ K).IsPrincipal
h : I ≠ 0
| I * spanSingleton R₁⁰ (generator (↑I : Submodule R₁ K))⁻¹
have a : I
Tactic: congr
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_6
inst_1 : CommRing R₁
inst_2 : Algebra R₁ K
inst_3 : IsLocalization.{u_6, u_3} (R := R₁) R₁⁰ K
I : FractionalIdeal.{u_6, u_3} (R := R₁) R₁⁰ K
inst_4 : (↑I : Submodule R₁ K).IsPrincipal
h : I ≠ 0
a : I
| I * spanSingleton R₁⁰ (generator (↑I : Submodule R₁ K))⁻¹
have a₁ : spanSingleton R₁⁰ (generator (↑I : Submodule R₁ K))⁻¹
Tactic: congr
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_6
inst_1 : CommRing R₁
inst_2 : Algebra R₁ K
inst_3 : IsLocalization.{u_6, u_3} (R := R₁) R₁⁰ K
I : FractionalIdeal.{u_6, u_3} (R := R₁) R₁⁰ K
inst_4 : (↑I : Submodule R₁ K).IsPrincipal
h : I ≠ 0
| I
have a : spanSingleton R₁⁰ (generator (↑I : Submodule R₁ K))
Tactic: rw [eq_spanSingleton_of_principal I]
-- Lean 4 proof step from Mathlib.RingTheory.FractionalIdeal.Inverse (goal)
Goal:
K : Type u_3
inst : Field K
R₁ : Type u_6
inst_1 : CommRing R₁
inst_2 : Algebra R₁ K
inst_3 : IsLocalization.{u_6, u_3} (R := R₁) R₁⁰ K
I : FractionalIdeal.{u_6, u_3} (R := R₁) R₁⁰ K
inst_4 : (↑I : Submodule R₁ K).IsPrincipal
h : I ≠ 0
| I * spanSingleton R₁⁰ (generator (↑I : Submodule R₁ K))⁻¹
have a : spanSingleton R₁⁰ (generator (↑I : Submodule R₁ K))
Tactic: congr; rw [eq_spanSingleton_of_principal I]