Theorem: ClassGroup.mk0_surjective
File: Mathlib/RingTheory/ClassGroup.lean

tactic: rintro ⟨I⟩
state_before: R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
⊢ Function.Surjective ↑mk0

tactic: obtain ⟨a, a_ne_zero', ha⟩ := I.1.2
state_before: case mk
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
⊢ ∃ a, ↑mk0 a = Quot.mk Setoid.r I

tactic: have a_ne_zero := mem_nonZeroDivisors_iff_ne_zero.mp a_ne_zero'
state_before: case mk.intro.intro
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
⊢ ∃ a, ↑mk0 a = Quot.mk Setoid.r I

tactic: have fa_ne_zero : (algebraMap R (FractionRing R)) a ≠ 0 :=
  IsFractionRing.to_map_ne_zero_of_mem_nonZeroDivisors a_ne_zero'
state_before: case mk.intro.intro
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
⊢ ∃ a, ↑mk0 a = Quot.mk Setoid.r I

tactic: refine ⟨⟨⟨⟨⟨?_, ?_⟩, ?_⟩, ?_⟩, ?_⟩, ?_⟩
state_before: case mk.intro.intro
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ ∃ a, ↑mk0 a = Quot.mk Setoid.r I

tactic: exact {x | (algebraMap R _ a)⁻¹ * algebraMap R _ x ∈ I.1}
state_before: case mk.intro.intro.refine_1
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ Set R

tactic: simp only [Set.mem_setOf_eq, RingHom.map_add, mul_add]
state_before: case mk.intro.intro.refine_2
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ ∀ {a_1 b : R},
    a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
      b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
        a_1 + b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}

tactic: exact fun ha hb => Submodule.add_mem _ ha hb
state_before: case mk.intro.intro.refine_2
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ ∀ {a_1 b : R},
    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) a_1 ∈ ↑I →
      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) b ∈ ↑I →
        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) a_1 +
            (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) b ∈
          ↑I

tactic: simp only [Set.mem_setOf_eq, RingHom.map_zero, mul_zero]
state_before: case mk.intro.intro.refine_3
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ 0 ∈
    { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
        add_mem' :=
          (_ :
            ∀ {a_1 b : R},
              a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                  a_1 + b ∈
                    {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) }.carrier

tactic: exact Submodule.zero_mem _
state_before: case mk.intro.intro.refine_3
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ 0 ∈ ↑I

tactic: intro c _ hb
state_before: case mk.intro.intro.refine_4
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ ∀ (c : R) {x : R},
    x ∈
        {
              toAddSubsemigroup :=
                { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                  add_mem' :=
                    (_ :
                      ∀ {a_1 b : R},
                        a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                          b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                            a_1 + b ∈
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
              zero_mem' :=
                (_ :
                  0 ∈
                    { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                        add_mem' :=
                          (_ :
                            ∀ {a_1 b : R},
                              a_1 ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  a_1 + b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
      c • x ∈
        {
              toAddSubsemigroup :=
                { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                  add_mem' :=
                    (_ :
                      ∀ {a_2 b : R},
                        a_2 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                          b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                            a_2 + b ∈
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
              zero_mem' :=
                (_ :
                  0 ∈
                    { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                        add_mem' :=
                          (_ :
                            ∀ {a_2 b : R},
                              a_2 ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  a_2 + b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I}) }.carrier) }.toAddSubsemigroup.carrier

tactic: simp only [smul_eq_mul, Set.mem_setOf_eq, RingHom.map_mul,
  mul_left_comm ((algebraMap R (FractionRing R)) a)⁻¹]
state_before: case mk.intro.intro.refine_4
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
c x✝ : R
hb :
  x✝ ∈
    {
          toAddSubsemigroup :=
            { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
              add_mem' :=
                (_ :
                  ∀ {a_1 b : R},
                    a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                      b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                        a_1 + b ∈
                          {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
          zero_mem' :=
            (_ :
              0 ∈
                { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                    add_mem' :=
                      (_ :
                        ∀ {a_1 b : R},
                          a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                            b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              a_1 + b ∈
                                {x |
                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                    ↑I}) }.carrier) }.toAddSubsemigroup.carrier
⊢ c • x✝ ∈
    {
          toAddSubsemigroup :=
            { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
              add_mem' :=
                (_ :
                  ∀ {a_1 b : R},
                    a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                      b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                        a_1 + b ∈
                          {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
          zero_mem' :=
            (_ :
              0 ∈
                { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                    add_mem' :=
                      (_ :
                        ∀ {a_1 b : R},
                          a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                            b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              a_1 + b ∈
                                {x |
                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                    ↑I}) }.carrier) }.toAddSubsemigroup.carrier

tactic: rw [← Algebra.smul_def c]
state_before: case mk.intro.intro.refine_4
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
c x✝ : R
hb :
  x✝ ∈
    {
          toAddSubsemigroup :=
            { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
              add_mem' :=
                (_ :
                  ∀ {a_1 b : R},
                    a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                      b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                        a_1 + b ∈
                          {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
          zero_mem' :=
            (_ :
              0 ∈
                { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                    add_mem' :=
                      (_ :
                        ∀ {a_1 b : R},
                          a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                            b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              a_1 + b ∈
                                {x |
                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                    ↑I}) }.carrier) }.toAddSubsemigroup.carrier
⊢ ↑(algebraMap R (FractionRing R)) c * ((↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x✝) ∈
    ↑I

tactic: exact Submodule.smul_mem _ c hb
state_before: case mk.intro.intro.refine_4
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
c x✝ : R
hb :
  x✝ ∈
    {
          toAddSubsemigroup :=
            { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
              add_mem' :=
                (_ :
                  ∀ {a_1 b : R},
                    a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                      b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                        a_1 + b ∈
                          {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
          zero_mem' :=
            (_ :
              0 ∈
                { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                    add_mem' :=
                      (_ :
                        ∀ {a_1 b : R},
                          a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                            b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              a_1 + b ∈
                                {x |
                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                    ↑I}) }.carrier) }.toAddSubsemigroup.carrier
⊢ c • ((↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x✝) ∈ ↑I

tactic: rw [mem_nonZeroDivisors_iff_ne_zero, Submodule.zero_eq_bot, Submodule.ne_bot_iff]
state_before: case mk.intro.intro.refine_5
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ {
      toAddSubmonoid :=
        {
          toAddSubsemigroup :=
            { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
              add_mem' :=
                (_ :
                  ∀ {a_1 b : R},
                    a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                      b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                        a_1 + b ∈
                          {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
          zero_mem' :=
            (_ :
              0 ∈
                { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                    add_mem' :=
                      (_ :
                        ∀ {a_1 b : R},
                          a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                            b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              a_1 + b ∈
                                {x |
                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                    ↑I}) }.carrier) },
      smul_mem' :=
        (_ :
          ∀ (c : R) {x : R},
            x ∈
                {
                      toAddSubsemigroup :=
                        {
                          carrier :=
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                          add_mem' :=
                            (_ :
                              ∀ {a_1 b : R},
                                a_1 ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    a_1 + b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I}) },
                      zero_mem' :=
                        (_ :
                          0 ∈
                            {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
              c • x ∈
                {
                      toAddSubsemigroup :=
                        {
                          carrier :=
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                          add_mem' :=
                            (_ :
                              ∀ {a_1 b : R},
                                a_1 ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    a_1 + b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I}) },
                      zero_mem' :=
                        (_ :
                          0 ∈
                            {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) }.carrier) }.toAddSubsemigroup.carrier) } ∈
    (Ideal R)⁰

tactic: obtain ⟨x, x_ne, x_mem⟩ := exists_ne_zero_mem_isInteger I.ne_zero
state_before: case mk.intro.intro.refine_5
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ ∃ x,
    x ∈
        {
          toAddSubmonoid :=
            {
              toAddSubsemigroup :=
                { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                  add_mem' :=
                    (_ :
                      ∀ {a_1 b : R},
                        a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                          b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                            a_1 + b ∈
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
              zero_mem' :=
                (_ :
                  0 ∈
                    { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                        add_mem' :=
                          (_ :
                            ∀ {a_1 b : R},
                              a_1 ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  a_1 + b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I}) }.carrier) },
          smul_mem' :=
            (_ :
              ∀ (c : R) {x : R},
                x ∈
                    {
                          toAddSubsemigroup :=
                            {
                              carrier :=
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                              add_mem' :=
                                (_ :
                                  ∀ {a_1 b : R},
                                    a_1 ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        a_1 + b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I}) },
                          zero_mem' :=
                            (_ :
                              0 ∈
                                {
                                    carrier :=
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I},
                                    add_mem' :=
                                      (_ :
                                        ∀ {a_1 b : R},
                                          a_1 ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              a_1 + b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                  c • x ∈
                    {
                          toAddSubsemigroup :=
                            {
                              carrier :=
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                              add_mem' :=
                                (_ :
                                  ∀ {a_1 b : R},
                                    a_1 ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        a_1 + b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I}) },
                          zero_mem' :=
                            (_ :
                              0 ∈
                                {
                                    carrier :=
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I},
                                    add_mem' :=
                                      (_ :
                                        ∀ {a_1 b : R},
                                          a_1 ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              a_1 + b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I}) }.carrier) }.toAddSubsemigroup.carrier) } ∧
      x ≠ 0

tactic: refine ⟨a*x, ?_, mul_ne_zero a_ne_zero x_ne⟩
state_before: case mk.intro.intro.refine_5.intro.intro
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
x : R
x_ne : x ≠ 0
x_mem : ↑(algebraMap R (FractionRing R)) x ∈ ↑I
⊢ ∃ x,
    x ∈
        {
          toAddSubmonoid :=
            {
              toAddSubsemigroup :=
                { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                  add_mem' :=
                    (_ :
                      ∀ {a_1 b : R},
                        a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                          b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                            a_1 + b ∈
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
              zero_mem' :=
                (_ :
                  0 ∈
                    { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                        add_mem' :=
                          (_ :
                            ∀ {a_1 b : R},
                              a_1 ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  a_1 + b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I}) }.carrier) },
          smul_mem' :=
            (_ :
              ∀ (c : R) {x : R},
                x ∈
                    {
                          toAddSubsemigroup :=
                            {
                              carrier :=
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                              add_mem' :=
                                (_ :
                                  ∀ {a_1 b : R},
                                    a_1 ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        a_1 + b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I}) },
                          zero_mem' :=
                            (_ :
                              0 ∈
                                {
                                    carrier :=
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I},
                                    add_mem' :=
                                      (_ :
                                        ∀ {a_1 b : R},
                                          a_1 ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              a_1 + b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                  c • x ∈
                    {
                          toAddSubsemigroup :=
                            {
                              carrier :=
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                              add_mem' :=
                                (_ :
                                  ∀ {a_1 b : R},
                                    a_1 ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        a_1 + b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I}) },
                          zero_mem' :=
                            (_ :
                              0 ∈
                                {
                                    carrier :=
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I},
                                    add_mem' :=
                                      (_ :
                                        ∀ {a_1 b : R},
                                          a_1 ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              a_1 + b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I}) }.carrier) }.toAddSubsemigroup.carrier) } ∧
      x ≠ 0

tactic: change ((algebraMap R _) a)⁻¹ * (algebraMap R _) (a * x) ∈ I.1
state_before: case mk.intro.intro.refine_5.intro.intro
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
x : R
x_ne : x ≠ 0
x_mem : ↑(algebraMap R (FractionRing R)) x ∈ ↑I
⊢ a * x ∈
    {
      toAddSubmonoid :=
        {
          toAddSubsemigroup :=
            { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
              add_mem' :=
                (_ :
                  ∀ {a_1 b : R},
                    a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                      b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                        a_1 + b ∈
                          {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
          zero_mem' :=
            (_ :
              0 ∈
                { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                    add_mem' :=
                      (_ :
                        ∀ {a_1 b : R},
                          a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                            b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              a_1 + b ∈
                                {x |
                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                    ↑I}) }.carrier) },
      smul_mem' :=
        (_ :
          ∀ (c : R) {x : R},
            x ∈
                {
                      toAddSubsemigroup :=
                        {
                          carrier :=
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                          add_mem' :=
                            (_ :
                              ∀ {a_1 b : R},
                                a_1 ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    a_1 + b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I}) },
                      zero_mem' :=
                        (_ :
                          0 ∈
                            {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
              c • x ∈
                {
                      toAddSubsemigroup :=
                        {
                          carrier :=
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                          add_mem' :=
                            (_ :
                              ∀ {a_1 b : R},
                                a_1 ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    a_1 + b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I}) },
                      zero_mem' :=
                        (_ :
                          0 ∈
                            {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) }.carrier) }.toAddSubsemigroup.carrier) }

tactic: rwa [RingHom.map_mul, ← mul_assoc, inv_mul_cancel fa_ne_zero, one_mul]
state_before: case mk.intro.intro.refine_5.intro.intro
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
x : R
x_ne : x ≠ 0
x_mem : ↑(algebraMap R (FractionRing R)) x ∈ ↑I
⊢ (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) (a * x) ∈ ↑I

tactic: symm
state_before: case mk.intro.intro.refine_6
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ ↑mk0
      {
        val :=
          {
            toAddSubmonoid :=
              {
                toAddSubsemigroup :=
                  { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                    add_mem' :=
                      (_ :
                        ∀ {a_1 b : R},
                          a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                            b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              a_1 + b ∈
                                {x |
                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
                zero_mem' :=
                  (_ :
                    0 ∈
                      {
                          carrier :=
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                          add_mem' :=
                            (_ :
                              ∀ {a_1 b : R},
                                a_1 ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    a_1 + b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I}) }.carrier) },
            smul_mem' :=
              (_ :
                ∀ (c : R) {x : R},
                  x ∈
                      {
                            toAddSubsemigroup :=
                              {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) },
                            zero_mem' :=
                              (_ :
                                0 ∈
                                  {
                                      carrier :=
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I},
                                      add_mem' :=
                                        (_ :
                                          ∀ {a_1 b : R},
                                            a_1 ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                a_1 + b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                    c • x ∈
                      {
                            toAddSubsemigroup :=
                              {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) },
                            zero_mem' :=
                              (_ :
                                0 ∈
                                  {
                                      carrier :=
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I},
                                      add_mem' :=
                                        (_ :
                                          ∀ {a_1 b : R},
                                            a_1 ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                a_1 + b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I}) }.carrier) }.toAddSubsemigroup.carrier) },
        property :=
          (_ :
            {
                toAddSubmonoid :=
                  {
                    toAddSubsemigroup :=
                      {
                        carrier :=
                          {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                        add_mem' :=
                          (_ :
                            ∀ {a_1 b : R},
                              a_1 ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  a_1 + b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I}) },
                    zero_mem' :=
                      (_ :
                        0 ∈
                          {
                              carrier :=
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                              add_mem' :=
                                (_ :
                                  ∀ {a_1 b : R},
                                    a_1 ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        a_1 + b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I}) }.carrier) },
                smul_mem' :=
                  (_ :
                    ∀ (c : R) {x : R},
                      x ∈
                          {
                                toAddSubsemigroup :=
                                  {
                                    carrier :=
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I},
                                    add_mem' :=
                                      (_ :
                                        ∀ {a_1 b : R},
                                          a_1 ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              a_1 + b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I}) },
                                zero_mem' :=
                                  (_ :
                                    0 ∈
                                      {
                                          carrier :=
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I},
                                          add_mem' :=
                                            (_ :
                                              ∀ {a_1 b : R},
                                                a_1 ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I} →
                                                    a_1 + b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                        c • x ∈
                          {
                                toAddSubsemigroup :=
                                  {
                                    carrier :=
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I},
                                    add_mem' :=
                                      (_ :
                                        ∀ {a_1 b : R},
                                          a_1 ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              a_1 + b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I}) },
                                zero_mem' :=
                                  (_ :
                                    0 ∈
                                      {
                                          carrier :=
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I},
                                          add_mem' :=
                                            (_ :
                                              ∀ {a_1 b : R},
                                                a_1 ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I} →
                                                    a_1 + b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I}) }.carrier) }.toAddSubsemigroup.carrier) } ∈
              (Ideal R)⁰) } =
    Quot.mk Setoid.r I

tactic: apply Quotient.sound
state_before: case mk.intro.intro.refine_6
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ Quot.mk Setoid.r I =
    ↑mk0
      {
        val :=
          {
            toAddSubmonoid :=
              {
                toAddSubsemigroup :=
                  { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                    add_mem' :=
                      (_ :
                        ∀ {a_1 b : R},
                          a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                            b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              a_1 + b ∈
                                {x |
                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
                zero_mem' :=
                  (_ :
                    0 ∈
                      {
                          carrier :=
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                          add_mem' :=
                            (_ :
                              ∀ {a_1 b : R},
                                a_1 ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    a_1 + b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I}) }.carrier) },
            smul_mem' :=
              (_ :
                ∀ (c : R) {x : R},
                  x ∈
                      {
                            toAddSubsemigroup :=
                              {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) },
                            zero_mem' :=
                              (_ :
                                0 ∈
                                  {
                                      carrier :=
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I},
                                      add_mem' :=
                                        (_ :
                                          ∀ {a_1 b : R},
                                            a_1 ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                a_1 + b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                    c • x ∈
                      {
                            toAddSubsemigroup :=
                              {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) },
                            zero_mem' :=
                              (_ :
                                0 ∈
                                  {
                                      carrier :=
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I},
                                      add_mem' :=
                                        (_ :
                                          ∀ {a_1 b : R},
                                            a_1 ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                a_1 + b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I}) }.carrier) }.toAddSubsemigroup.carrier) },
        property :=
          (_ :
            {
                toAddSubmonoid :=
                  {
                    toAddSubsemigroup :=
                      {
                        carrier :=
                          {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                        add_mem' :=
                          (_ :
                            ∀ {a_1 b : R},
                              a_1 ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  a_1 + b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I}) },
                    zero_mem' :=
                      (_ :
                        0 ∈
                          {
                              carrier :=
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                              add_mem' :=
                                (_ :
                                  ∀ {a_1 b : R},
                                    a_1 ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        a_1 + b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I}) }.carrier) },
                smul_mem' :=
                  (_ :
                    ∀ (c : R) {x : R},
                      x ∈
                          {
                                toAddSubsemigroup :=
                                  {
                                    carrier :=
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I},
                                    add_mem' :=
                                      (_ :
                                        ∀ {a_1 b : R},
                                          a_1 ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              a_1 + b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I}) },
                                zero_mem' :=
                                  (_ :
                                    0 ∈
                                      {
                                          carrier :=
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I},
                                          add_mem' :=
                                            (_ :
                                              ∀ {a_1 b : R},
                                                a_1 ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I} →
                                                    a_1 + b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                        c • x ∈
                          {
                                toAddSubsemigroup :=
                                  {
                                    carrier :=
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I},
                                    add_mem' :=
                                      (_ :
                                        ∀ {a_1 b : R},
                                          a_1 ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              a_1 + b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I}) },
                                zero_mem' :=
                                  (_ :
                                    0 ∈
                                      {
                                          carrier :=
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I},
                                          add_mem' :=
                                            (_ :
                                              ∀ {a_1 b : R},
                                                a_1 ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I} →
                                                    a_1 + b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I}) }.carrier) }.toAddSubsemigroup.carrier) } ∈
              (Ideal R)⁰) }

tactic: change @Setoid.r _
  (QuotientGroup.leftRel (toPrincipalIdeal R (FractionRing R)).range) _ _
state_before: case mk.intro.intro.refine_6.a
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ I ≈
    ↑(Units.map ↑(canonicalEquiv R⁰ (FractionRing R) (FractionRing R)))
      (↑(FractionalIdeal.mk0 (FractionRing R))
        {
          val :=
            {
              toAddSubmonoid :=
                {
                  toAddSubsemigroup :=
                    { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                      add_mem' :=
                        (_ :
                          ∀ {a_1 b : R},
                            a_1 ∈
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                a_1 + b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                      ↑I}) },
                  zero_mem' :=
                    (_ :
                      0 ∈
                        {
                            carrier :=
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                            add_mem' :=
                              (_ :
                                ∀ {a_1 b : R},
                                  a_1 ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      a_1 + b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I}) }.carrier) },
              smul_mem' :=
                (_ :
                  ∀ (c : R) {x : R},
                    x ∈
                        {
                              toAddSubsemigroup :=
                                {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) },
                              zero_mem' :=
                                (_ :
                                  0 ∈
                                    {
                                        carrier :=
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I},
                                        add_mem' :=
                                          (_ :
                                            ∀ {a_1 b : R},
                                              a_1 ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  a_1 + b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                      c • x ∈
                        {
                              toAddSubsemigroup :=
                                {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) },
                              zero_mem' :=
                                (_ :
                                  0 ∈
                                    {
                                        carrier :=
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I},
                                        add_mem' :=
                                          (_ :
                                            ∀ {a_1 b : R},
                                              a_1 ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  a_1 + b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I}) }.carrier) }.toAddSubsemigroup.carrier) },
          property :=
            (_ :
              {
                  toAddSubmonoid :=
                    {
                      toAddSubsemigroup :=
                        {
                          carrier :=
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                          add_mem' :=
                            (_ :
                              ∀ {a_1 b : R},
                                a_1 ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    a_1 + b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I}) },
                      zero_mem' :=
                        (_ :
                          0 ∈
                            {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) }.carrier) },
                  smul_mem' :=
                    (_ :
                      ∀ (c : R) {x : R},
                        x ∈
                            {
                                  toAddSubsemigroup :=
                                    {
                                      carrier :=
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I},
                                      add_mem' :=
                                        (_ :
                                          ∀ {a_1 b : R},
                                            a_1 ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                a_1 + b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I}) },
                                  zero_mem' :=
                                    (_ :
                                      0 ∈
                                        {
                                            carrier :=
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I},
                                            add_mem' :=
                                              (_ :
                                                ∀ {a_1 b : R},
                                                  a_1 ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I} →
                                                    b ∈
                                                        {x |
                                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                              ↑(algebraMap R (FractionRing R)) x ∈
                                                            ↑I} →
                                                      a_1 + b ∈
                                                        {x |
                                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                              ↑(algebraMap R (FractionRing R)) x ∈
                                                            ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                          c • x ∈
                            {
                                  toAddSubsemigroup :=
                                    {
                                      carrier :=
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I},
                                      add_mem' :=
                                        (_ :
                                          ∀ {a_1 b : R},
                                            a_1 ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                a_1 + b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I}) },
                                  zero_mem' :=
                                    (_ :
                                      0 ∈
                                        {
                                            carrier :=
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I},
                                            add_mem' :=
                                              (_ :
                                                ∀ {a_1 b : R},
                                                  a_1 ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I} →
                                                    b ∈
                                                        {x |
                                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                              ↑(algebraMap R (FractionRing R)) x ∈
                                                            ↑I} →
                                                      a_1 + b ∈
                                                        {x |
                                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                              ↑(algebraMap R (FractionRing R)) x ∈
                                                            ↑I}) }.carrier) }.toAddSubsemigroup.carrier) } ∈
                (Ideal R)⁰) })

tactic: rw [QuotientGroup.leftRel_apply]
state_before: case mk.intro.intro.refine_6.a
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ Setoid.r I
    (↑(Units.map ↑(canonicalEquiv R⁰ (FractionRing R) (FractionRing R)))
      (↑(FractionalIdeal.mk0 (FractionRing R))
        {
          val :=
            {
              toAddSubmonoid :=
                {
                  toAddSubsemigroup :=
                    { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                      add_mem' :=
                        (_ :
                          ∀ {a_1 b : R},
                            a_1 ∈
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                a_1 + b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                      ↑I}) },
                  zero_mem' :=
                    (_ :
                      0 ∈
                        {
                            carrier :=
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                            add_mem' :=
                              (_ :
                                ∀ {a_1 b : R},
                                  a_1 ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      a_1 + b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I}) }.carrier) },
              smul_mem' :=
                (_ :
                  ∀ (c : R) {x : R},
                    x ∈
                        {
                              toAddSubsemigroup :=
                                {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) },
                              zero_mem' :=
                                (_ :
                                  0 ∈
                                    {
                                        carrier :=
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I},
                                        add_mem' :=
                                          (_ :
                                            ∀ {a_1 b : R},
                                              a_1 ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  a_1 + b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                      c • x ∈
                        {
                              toAddSubsemigroup :=
                                {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) },
                              zero_mem' :=
                                (_ :
                                  0 ∈
                                    {
                                        carrier :=
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I},
                                        add_mem' :=
                                          (_ :
                                            ∀ {a_1 b : R},
                                              a_1 ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  a_1 + b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I}) }.carrier) }.toAddSubsemigroup.carrier) },
          property :=
            (_ :
              {
                  toAddSubmonoid :=
                    {
                      toAddSubsemigroup :=
                        {
                          carrier :=
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                          add_mem' :=
                            (_ :
                              ∀ {a_1 b : R},
                                a_1 ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    a_1 + b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I}) },
                      zero_mem' :=
                        (_ :
                          0 ∈
                            {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) }.carrier) },
                  smul_mem' :=
                    (_ :
                      ∀ (c : R) {x : R},
                        x ∈
                            {
                                  toAddSubsemigroup :=
                                    {
                                      carrier :=
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I},
                                      add_mem' :=
                                        (_ :
                                          ∀ {a_1 b : R},
                                            a_1 ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                a_1 + b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I}) },
                                  zero_mem' :=
                                    (_ :
                                      0 ∈
                                        {
                                            carrier :=
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I},
                                            add_mem' :=
                                              (_ :
                                                ∀ {a_1 b : R},
                                                  a_1 ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I} →
                                                    b ∈
                                                        {x |
                                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                              ↑(algebraMap R (FractionRing R)) x ∈
                                                            ↑I} →
                                                      a_1 + b ∈
                                                        {x |
                                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                              ↑(algebraMap R (FractionRing R)) x ∈
                                                            ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                          c • x ∈
                            {
                                  toAddSubsemigroup :=
                                    {
                                      carrier :=
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I},
                                      add_mem' :=
                                        (_ :
                                          ∀ {a_1 b : R},
                                            a_1 ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                a_1 + b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I}) },
                                  zero_mem' :=
                                    (_ :
                                      0 ∈
                                        {
                                            carrier :=
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I},
                                            add_mem' :=
                                              (_ :
                                                ∀ {a_1 b : R},
                                                  a_1 ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I} →
                                                    b ∈
                                                        {x |
                                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                              ↑(algebraMap R (FractionRing R)) x ∈
                                                            ↑I} →
                                                      a_1 + b ∈
                                                        {x |
                                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                              ↑(algebraMap R (FractionRing R)) x ∈
                                                            ↑I}) }.carrier) }.toAddSubsemigroup.carrier) } ∈
                (Ideal R)⁰) }))

tactic: refine ⟨Units.mk0 (algebraMap R _ a) fa_ne_zero, ?_⟩
state_before: case mk.intro.intro.refine_6.a
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ I⁻¹ *
      ↑(Units.map ↑(canonicalEquiv R⁰ (FractionRing R) (FractionRing R)))
        (↑(FractionalIdeal.mk0 (FractionRing R))
          {
            val :=
              {
                toAddSubmonoid :=
                  {
                    toAddSubsemigroup :=
                      {
                        carrier :=
                          {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                        add_mem' :=
                          (_ :
                            ∀ {a_1 b : R},
                              a_1 ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  a_1 + b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I}) },
                    zero_mem' :=
                      (_ :
                        0 ∈
                          {
                              carrier :=
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                              add_mem' :=
                                (_ :
                                  ∀ {a_1 b : R},
                                    a_1 ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        a_1 + b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I}) }.carrier) },
                smul_mem' :=
                  (_ :
                    ∀ (c : R) {x : R},
                      x ∈
                          {
                                toAddSubsemigroup :=
                                  {
                                    carrier :=
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I},
                                    add_mem' :=
                                      (_ :
                                        ∀ {a_1 b : R},
                                          a_1 ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              a_1 + b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I}) },
                                zero_mem' :=
                                  (_ :
                                    0 ∈
                                      {
                                          carrier :=
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I},
                                          add_mem' :=
                                            (_ :
                                              ∀ {a_1 b : R},
                                                a_1 ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I} →
                                                    a_1 + b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                        c • x ∈
                          {
                                toAddSubsemigroup :=
                                  {
                                    carrier :=
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I},
                                    add_mem' :=
                                      (_ :
                                        ∀ {a_1 b : R},
                                          a_1 ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              a_1 + b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I}) },
                                zero_mem' :=
                                  (_ :
                                    0 ∈
                                      {
                                          carrier :=
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I},
                                          add_mem' :=
                                            (_ :
                                              ∀ {a_1 b : R},
                                                a_1 ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I} →
                                                    a_1 + b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I}) }.carrier) }.toAddSubsemigroup.carrier) },
            property :=
              (_ :
                {
                    toAddSubmonoid :=
                      {
                        toAddSubsemigroup :=
                          {
                            carrier :=
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                            add_mem' :=
                              (_ :
                                ∀ {a_1 b : R},
                                  a_1 ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      a_1 + b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I}) },
                        zero_mem' :=
                          (_ :
                            0 ∈
                              {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) }.carrier) },
                    smul_mem' :=
                      (_ :
                        ∀ (c : R) {x : R},
                          x ∈
                              {
                                    toAddSubsemigroup :=
                                      {
                                        carrier :=
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I},
                                        add_mem' :=
                                          (_ :
                                            ∀ {a_1 b : R},
                                              a_1 ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  a_1 + b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I}) },
                                    zero_mem' :=
                                      (_ :
                                        0 ∈
                                          {
                                              carrier :=
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I},
                                              add_mem' :=
                                                (_ :
                                                  ∀ {a_1 b : R},
                                                    a_1 ∈
                                                        {x |
                                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                              ↑(algebraMap R (FractionRing R)) x ∈
                                                            ↑I} →
                                                      b ∈
                                                          {x |
                                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                                ↑(algebraMap R (FractionRing R)) x ∈
                                                              ↑I} →
                                                        a_1 + b ∈
                                                          {x |
                                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                                ↑(algebraMap R (FractionRing R)) x ∈
                                                              ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                            c • x ∈
                              {
                                    toAddSubsemigroup :=
                                      {
                                        carrier :=
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I},
                                        add_mem' :=
                                          (_ :
                                            ∀ {a_1 b : R},
                                              a_1 ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  a_1 + b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I}) },
                                    zero_mem' :=
                                      (_ :
                                        0 ∈
                                          {
                                              carrier :=
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I},
                                              add_mem' :=
                                                (_ :
                                                  ∀ {a_1 b : R},
                                                    a_1 ∈
                                                        {x |
                                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                              ↑(algebraMap R (FractionRing R)) x ∈
                                                            ↑I} →
                                                      b ∈
                                                          {x |
                                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                                ↑(algebraMap R (FractionRing R)) x ∈
                                                              ↑I} →
                                                        a_1 + b ∈
                                                          {x |
                                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                                ↑(algebraMap R (FractionRing R)) x ∈
                                                              ↑I}) }.carrier) }.toAddSubsemigroup.carrier) } ∈
                  (Ideal R)⁰) }) ∈
    MonoidHom.range (toPrincipalIdeal R (FractionRing R))

tactic: rw [_root_.eq_inv_mul_iff_mul_eq, eq_comm, mul_comm I]
state_before: case mk.intro.intro.refine_6.a
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ ↑(toPrincipalIdeal R (FractionRing R)) (Units.mk0 (↑(algebraMap R (FractionRing R)) a) fa_ne_zero) =
    I⁻¹ *
      ↑(Units.map ↑(canonicalEquiv R⁰ (FractionRing R) (FractionRing R)))
        (↑(FractionalIdeal.mk0 (FractionRing R))
          {
            val :=
              {
                toAddSubmonoid :=
                  {
                    toAddSubsemigroup :=
                      {
                        carrier :=
                          {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                        add_mem' :=
                          (_ :
                            ∀ {a_1 b : R},
                              a_1 ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  a_1 + b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I}) },
                    zero_mem' :=
                      (_ :
                        0 ∈
                          {
                              carrier :=
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                              add_mem' :=
                                (_ :
                                  ∀ {a_1 b : R},
                                    a_1 ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        a_1 + b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I}) }.carrier) },
                smul_mem' :=
                  (_ :
                    ∀ (c : R) {x : R},
                      x ∈
                          {
                                toAddSubsemigroup :=
                                  {
                                    carrier :=
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I},
                                    add_mem' :=
                                      (_ :
                                        ∀ {a_1 b : R},
                                          a_1 ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              a_1 + b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I}) },
                                zero_mem' :=
                                  (_ :
                                    0 ∈
                                      {
                                          carrier :=
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I},
                                          add_mem' :=
                                            (_ :
                                              ∀ {a_1 b : R},
                                                a_1 ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I} →
                                                    a_1 + b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                        c • x ∈
                          {
                                toAddSubsemigroup :=
                                  {
                                    carrier :=
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I},
                                    add_mem' :=
                                      (_ :
                                        ∀ {a_1 b : R},
                                          a_1 ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              a_1 + b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I}) },
                                zero_mem' :=
                                  (_ :
                                    0 ∈
                                      {
                                          carrier :=
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I},
                                          add_mem' :=
                                            (_ :
                                              ∀ {a_1 b : R},
                                                a_1 ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I} →
                                                    a_1 + b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I}) }.carrier) }.toAddSubsemigroup.carrier) },
            property :=
              (_ :
                {
                    toAddSubmonoid :=
                      {
                        toAddSubsemigroup :=
                          {
                            carrier :=
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                            add_mem' :=
                              (_ :
                                ∀ {a_1 b : R},
                                  a_1 ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      a_1 + b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I}) },
                        zero_mem' :=
                          (_ :
                            0 ∈
                              {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) }.carrier) },
                    smul_mem' :=
                      (_ :
                        ∀ (c : R) {x : R},
                          x ∈
                              {
                                    toAddSubsemigroup :=
                                      {
                                        carrier :=
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I},
                                        add_mem' :=
                                          (_ :
                                            ∀ {a_1 b : R},
                                              a_1 ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  a_1 + b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I}) },
                                    zero_mem' :=
                                      (_ :
                                        0 ∈
                                          {
                                              carrier :=
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I},
                                              add_mem' :=
                                                (_ :
                                                  ∀ {a_1 b : R},
                                                    a_1 ∈
                                                        {x |
                                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                              ↑(algebraMap R (FractionRing R)) x ∈
                                                            ↑I} →
                                                      b ∈
                                                          {x |
                                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                                ↑(algebraMap R (FractionRing R)) x ∈
                                                              ↑I} →
                                                        a_1 + b ∈
                                                          {x |
                                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                                ↑(algebraMap R (FractionRing R)) x ∈
                                                              ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                            c • x ∈
                              {
                                    toAddSubsemigroup :=
                                      {
                                        carrier :=
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I},
                                        add_mem' :=
                                          (_ :
                                            ∀ {a_1 b : R},
                                              a_1 ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  a_1 + b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I}) },
                                    zero_mem' :=
                                      (_ :
                                        0 ∈
                                          {
                                              carrier :=
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I},
                                              add_mem' :=
                                                (_ :
                                                  ∀ {a_1 b : R},
                                                    a_1 ∈
                                                        {x |
                                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                              ↑(algebraMap R (FractionRing R)) x ∈
                                                            ↑I} →
                                                      b ∈
                                                          {x |
                                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                                ↑(algebraMap R (FractionRing R)) x ∈
                                                              ↑I} →
                                                        a_1 + b ∈
                                                          {x |
                                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                                ↑(algebraMap R (FractionRing R)) x ∈
                                                              ↑I}) }.carrier) }.toAddSubsemigroup.carrier) } ∈
                  (Ideal R)⁰) })

tactic: apply Units.ext
state_before: case mk.intro.intro.refine_6.a
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ ↑(Units.map ↑(canonicalEquiv R⁰ (FractionRing R) (FractionRing R)))
      (↑(FractionalIdeal.mk0 (FractionRing R))
        {
          val :=
            {
              toAddSubmonoid :=
                {
                  toAddSubsemigroup :=
                    { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                      add_mem' :=
                        (_ :
                          ∀ {a_1 b : R},
                            a_1 ∈
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                a_1 + b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                      ↑I}) },
                  zero_mem' :=
                    (_ :
                      0 ∈
                        {
                            carrier :=
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                            add_mem' :=
                              (_ :
                                ∀ {a_1 b : R},
                                  a_1 ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      a_1 + b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I}) }.carrier) },
              smul_mem' :=
                (_ :
                  ∀ (c : R) {x : R},
                    x ∈
                        {
                              toAddSubsemigroup :=
                                {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) },
                              zero_mem' :=
                                (_ :
                                  0 ∈
                                    {
                                        carrier :=
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I},
                                        add_mem' :=
                                          (_ :
                                            ∀ {a_1 b : R},
                                              a_1 ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  a_1 + b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                      c • x ∈
                        {
                              toAddSubsemigroup :=
                                {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) },
                              zero_mem' :=
                                (_ :
                                  0 ∈
                                    {
                                        carrier :=
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I},
                                        add_mem' :=
                                          (_ :
                                            ∀ {a_1 b : R},
                                              a_1 ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  a_1 + b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I}) }.carrier) }.toAddSubsemigroup.carrier) },
          property :=
            (_ :
              {
                  toAddSubmonoid :=
                    {
                      toAddSubsemigroup :=
                        {
                          carrier :=
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                          add_mem' :=
                            (_ :
                              ∀ {a_1 b : R},
                                a_1 ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    a_1 + b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I}) },
                      zero_mem' :=
                        (_ :
                          0 ∈
                            {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) }.carrier) },
                  smul_mem' :=
                    (_ :
                      ∀ (c : R) {x : R},
                        x ∈
                            {
                                  toAddSubsemigroup :=
                                    {
                                      carrier :=
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I},
                                      add_mem' :=
                                        (_ :
                                          ∀ {a_1 b : R},
                                            a_1 ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                a_1 + b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I}) },
                                  zero_mem' :=
                                    (_ :
                                      0 ∈
                                        {
                                            carrier :=
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I},
                                            add_mem' :=
                                              (_ :
                                                ∀ {a_1 b : R},
                                                  a_1 ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I} →
                                                    b ∈
                                                        {x |
                                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                              ↑(algebraMap R (FractionRing R)) x ∈
                                                            ↑I} →
                                                      a_1 + b ∈
                                                        {x |
                                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                              ↑(algebraMap R (FractionRing R)) x ∈
                                                            ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                          c • x ∈
                            {
                                  toAddSubsemigroup :=
                                    {
                                      carrier :=
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I},
                                      add_mem' :=
                                        (_ :
                                          ∀ {a_1 b : R},
                                            a_1 ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                a_1 + b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I}) },
                                  zero_mem' :=
                                    (_ :
                                      0 ∈
                                        {
                                            carrier :=
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I},
                                            add_mem' :=
                                              (_ :
                                                ∀ {a_1 b : R},
                                                  a_1 ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I} →
                                                    b ∈
                                                        {x |
                                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                              ↑(algebraMap R (FractionRing R)) x ∈
                                                            ↑I} →
                                                      a_1 + b ∈
                                                        {x |
                                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                              ↑(algebraMap R (FractionRing R)) x ∈
                                                            ↑I}) }.carrier) }.toAddSubsemigroup.carrier) } ∈
                (Ideal R)⁰) }) =
    ↑(toPrincipalIdeal R (FractionRing R)) (Units.mk0 (↑(algebraMap R (FractionRing R)) a) fa_ne_zero) * I

tactic: simp only [FractionalIdeal.coe_mk0, FractionalIdeal.map_canonicalEquiv_mk0,
  Units.val_mk0, coe_toPrincipalIdeal, Units.val_mul,
  FractionalIdeal.eq_spanSingleton_mul]
state_before: case mk.intro.intro.refine_6.a.a
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ ↑(↑(Units.map ↑(canonicalEquiv R⁰ (FractionRing R) (FractionRing R)))
        (↑(FractionalIdeal.mk0 (FractionRing R))
          {
            val :=
              {
                toAddSubmonoid :=
                  {
                    toAddSubsemigroup :=
                      {
                        carrier :=
                          {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                        add_mem' :=
                          (_ :
                            ∀ {a_1 b : R},
                              a_1 ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  a_1 + b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I}) },
                    zero_mem' :=
                      (_ :
                        0 ∈
                          {
                              carrier :=
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                              add_mem' :=
                                (_ :
                                  ∀ {a_1 b : R},
                                    a_1 ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        a_1 + b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I}) }.carrier) },
                smul_mem' :=
                  (_ :
                    ∀ (c : R) {x : R},
                      x ∈
                          {
                                toAddSubsemigroup :=
                                  {
                                    carrier :=
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I},
                                    add_mem' :=
                                      (_ :
                                        ∀ {a_1 b : R},
                                          a_1 ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              a_1 + b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I}) },
                                zero_mem' :=
                                  (_ :
                                    0 ∈
                                      {
                                          carrier :=
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I},
                                          add_mem' :=
                                            (_ :
                                              ∀ {a_1 b : R},
                                                a_1 ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I} →
                                                    a_1 + b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                        c • x ∈
                          {
                                toAddSubsemigroup :=
                                  {
                                    carrier :=
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I},
                                    add_mem' :=
                                      (_ :
                                        ∀ {a_1 b : R},
                                          a_1 ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              a_1 + b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I}) },
                                zero_mem' :=
                                  (_ :
                                    0 ∈
                                      {
                                          carrier :=
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I},
                                          add_mem' :=
                                            (_ :
                                              ∀ {a_1 b : R},
                                                a_1 ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I} →
                                                    a_1 + b ∈
                                                      {x |
                                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                            ↑(algebraMap R (FractionRing R)) x ∈
                                                          ↑I}) }.carrier) }.toAddSubsemigroup.carrier) },
            property :=
              (_ :
                {
                    toAddSubmonoid :=
                      {
                        toAddSubsemigroup :=
                          {
                            carrier :=
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                            add_mem' :=
                              (_ :
                                ∀ {a_1 b : R},
                                  a_1 ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      a_1 + b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I}) },
                        zero_mem' :=
                          (_ :
                            0 ∈
                              {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) }.carrier) },
                    smul_mem' :=
                      (_ :
                        ∀ (c : R) {x : R},
                          x ∈
                              {
                                    toAddSubsemigroup :=
                                      {
                                        carrier :=
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I},
                                        add_mem' :=
                                          (_ :
                                            ∀ {a_1 b : R},
                                              a_1 ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  a_1 + b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I}) },
                                    zero_mem' :=
                                      (_ :
                                        0 ∈
                                          {
                                              carrier :=
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I},
                                              add_mem' :=
                                                (_ :
                                                  ∀ {a_1 b : R},
                                                    a_1 ∈
                                                        {x |
                                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                              ↑(algebraMap R (FractionRing R)) x ∈
                                                            ↑I} →
                                                      b ∈
                                                          {x |
                                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                                ↑(algebraMap R (FractionRing R)) x ∈
                                                              ↑I} →
                                                        a_1 + b ∈
                                                          {x |
                                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                                ↑(algebraMap R (FractionRing R)) x ∈
                                                              ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                            c • x ∈
                              {
                                    toAddSubsemigroup :=
                                      {
                                        carrier :=
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I},
                                        add_mem' :=
                                          (_ :
                                            ∀ {a_1 b : R},
                                              a_1 ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  a_1 + b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I}) },
                                    zero_mem' :=
                                      (_ :
                                        0 ∈
                                          {
                                              carrier :=
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I},
                                              add_mem' :=
                                                (_ :
                                                  ∀ {a_1 b : R},
                                                    a_1 ∈
                                                        {x |
                                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                              ↑(algebraMap R (FractionRing R)) x ∈
                                                            ↑I} →
                                                      b ∈
                                                          {x |
                                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                                ↑(algebraMap R (FractionRing R)) x ∈
                                                              ↑I} →
                                                        a_1 + b ∈
                                                          {x |
                                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                                ↑(algebraMap R (FractionRing R)) x ∈
                                                              ↑I}) }.carrier) }.toAddSubsemigroup.carrier) } ∈
                  (Ideal R)⁰) })) =
    ↑(↑(toPrincipalIdeal R (FractionRing R)) (Units.mk0 (↑(algebraMap R (FractionRing R)) a) fa_ne_zero) * I)

tactic: constructor
state_before: case mk.intro.intro.refine_6.a.a
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ (∀ (zI : FractionRing R),
      zI ∈
          ↑{
              toAddSubmonoid :=
                {
                  toAddSubsemigroup :=
                    { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                      add_mem' :=
                        (_ :
                          ∀ {a_1 b : R},
                            a_1 ∈
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                a_1 + b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                      ↑I}) },
                  zero_mem' :=
                    (_ :
                      0 ∈
                        {
                            carrier :=
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                            add_mem' :=
                              (_ :
                                ∀ {a_1 b : R},
                                  a_1 ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      a_1 + b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I}) }.carrier) },
              smul_mem' :=
                (_ :
                  ∀ (c : R) {x : R},
                    x ∈
                        {
                              toAddSubsemigroup :=
                                {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) },
                              zero_mem' :=
                                (_ :
                                  0 ∈
                                    {
                                        carrier :=
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I},
                                        add_mem' :=
                                          (_ :
                                            ∀ {a_1 b : R},
                                              a_1 ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  a_1 + b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                      c • x ∈
                        {
                              toAddSubsemigroup :=
                                {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) },
                              zero_mem' :=
                                (_ :
                                  0 ∈
                                    {
                                        carrier :=
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I},
                                        add_mem' :=
                                          (_ :
                                            ∀ {a_1 b : R},
                                              a_1 ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  a_1 + b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I}) }.carrier) }.toAddSubsemigroup.carrier) } →
        ∃ zJ, zJ ∈ ↑I ∧ ↑(algebraMap R (FractionRing R)) a * zJ = zI) ∧
    ∀ (z : FractionRing R),
      z ∈ ↑I →
        ↑(algebraMap R (FractionRing R)) a * z ∈
          ↑{
              toAddSubmonoid :=
                {
                  toAddSubsemigroup :=
                    { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                      add_mem' :=
                        (_ :
                          ∀ {a_2 b : R},
                            a_2 ∈
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                a_2 + b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                      ↑I}) },
                  zero_mem' :=
                    (_ :
                      0 ∈
                        {
                            carrier :=
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                            add_mem' :=
                              (_ :
                                ∀ {a_2 b : R},
                                  a_2 ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      a_2 + b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I}) }.carrier) },
              smul_mem' :=
                (_ :
                  ∀ (c : R) {x : R},
                    x ∈
                        {
                              toAddSubsemigroup :=
                                {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_2 b : R},
                                        a_2 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_2 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) },
                              zero_mem' :=
                                (_ :
                                  0 ∈
                                    {
                                        carrier :=
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I},
                                        add_mem' :=
                                          (_ :
                                            ∀ {a_2 b : R},
                                              a_2 ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  a_2 + b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                      c • x ∈
                        {
                              toAddSubsemigroup :=
                                {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_2 b : R},
                                        a_2 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_2 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) },
                              zero_mem' :=
                                (_ :
                                  0 ∈
                                    {
                                        carrier :=
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I},
                                        add_mem' :=
                                          (_ :
                                            ∀ {a_2 b : R},
                                              a_2 ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I} →
                                                  a_2 + b ∈
                                                    {x |
                                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                          ↑(algebraMap R (FractionRing R)) x ∈
                                                        ↑I}) }.carrier) }.toAddSubsemigroup.carrier) }

tactic: intro zJ' hzJ'
state_before: case mk.intro.intro.refine_6.a.a.left
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ ∀ (zI : FractionRing R),
    zI ∈
        ↑{
            toAddSubmonoid :=
              {
                toAddSubsemigroup :=
                  { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                    add_mem' :=
                      (_ :
                        ∀ {a_1 b : R},
                          a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                            b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              a_1 + b ∈
                                {x |
                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
                zero_mem' :=
                  (_ :
                    0 ∈
                      {
                          carrier :=
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                          add_mem' :=
                            (_ :
                              ∀ {a_1 b : R},
                                a_1 ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    a_1 + b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I}) }.carrier) },
            smul_mem' :=
              (_ :
                ∀ (c : R) {x : R},
                  x ∈
                      {
                            toAddSubsemigroup :=
                              {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) },
                            zero_mem' :=
                              (_ :
                                0 ∈
                                  {
                                      carrier :=
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I},
                                      add_mem' :=
                                        (_ :
                                          ∀ {a_1 b : R},
                                            a_1 ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                a_1 + b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                    c • x ∈
                      {
                            toAddSubsemigroup :=
                              {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) },
                            zero_mem' :=
                              (_ :
                                0 ∈
                                  {
                                      carrier :=
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I},
                                      add_mem' :=
                                        (_ :
                                          ∀ {a_1 b : R},
                                            a_1 ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                a_1 + b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I}) }.carrier) }.toAddSubsemigroup.carrier) } →
      ∃ zJ, zJ ∈ ↑I ∧ ↑(algebraMap R (FractionRing R)) a * zJ = zI

tactic: obtain ⟨zJ, hzJ, rfl⟩ := (mem_coeIdeal R⁰).mp hzJ'
state_before: case mk.intro.intro.refine_6.a.a.left
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
zJ' : FractionRing R
hzJ' :
  zJ' ∈
    ↑{
        toAddSubmonoid :=
          {
            toAddSubsemigroup :=
              { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                add_mem' :=
                  (_ :
                    ∀ {a_1 b : R},
                      a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                        b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                          a_1 + b ∈
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
            zero_mem' :=
              (_ :
                0 ∈
                  { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                      add_mem' :=
                        (_ :
                          ∀ {a_1 b : R},
                            a_1 ∈
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                a_1 + b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                      ↑I}) }.carrier) },
        smul_mem' :=
          (_ :
            ∀ (c : R) {x : R},
              x ∈
                  {
                        toAddSubsemigroup :=
                          {
                            carrier :=
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                            add_mem' :=
                              (_ :
                                ∀ {a_1 b : R},
                                  a_1 ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      a_1 + b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I}) },
                        zero_mem' :=
                          (_ :
                            0 ∈
                              {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                c • x ∈
                  {
                        toAddSubsemigroup :=
                          {
                            carrier :=
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                            add_mem' :=
                              (_ :
                                ∀ {a_1 b : R},
                                  a_1 ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      a_1 + b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I}) },
                        zero_mem' :=
                          (_ :
                            0 ∈
                              {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) }.carrier) }.toAddSubsemigroup.carrier) }
⊢ ∃ zJ, zJ ∈ ↑I ∧ ↑(algebraMap R (FractionRing R)) a * zJ = zJ'

tactic: refine ⟨_, hzJ, ?_⟩
state_before: case mk.intro.intro.refine_6.a.a.left.intro.intro
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
zJ : R
hzJ :
  zJ ∈
    {
      toAddSubmonoid :=
        {
          toAddSubsemigroup :=
            { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
              add_mem' :=
                (_ :
                  ∀ {a_1 b : R},
                    a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                      b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                        a_1 + b ∈
                          {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
          zero_mem' :=
            (_ :
              0 ∈
                { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                    add_mem' :=
                      (_ :
                        ∀ {a_1 b : R},
                          a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                            b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              a_1 + b ∈
                                {x |
                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                    ↑I}) }.carrier) },
      smul_mem' :=
        (_ :
          ∀ (c : R) {x : R},
            x ∈
                {
                      toAddSubsemigroup :=
                        {
                          carrier :=
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                          add_mem' :=
                            (_ :
                              ∀ {a_1 b : R},
                                a_1 ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    a_1 + b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I}) },
                      zero_mem' :=
                        (_ :
                          0 ∈
                            {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
              c • x ∈
                {
                      toAddSubsemigroup :=
                        {
                          carrier :=
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                          add_mem' :=
                            (_ :
                              ∀ {a_1 b : R},
                                a_1 ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    a_1 + b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I}) },
                      zero_mem' :=
                        (_ :
                          0 ∈
                            {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) }.carrier) }.toAddSubsemigroup.carrier) }
hzJ' :
  ↑(algebraMap R (FractionRing R)) zJ ∈
    ↑{
        toAddSubmonoid :=
          {
            toAddSubsemigroup :=
              { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                add_mem' :=
                  (_ :
                    ∀ {a_1 b : R},
                      a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                        b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                          a_1 + b ∈
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
            zero_mem' :=
              (_ :
                0 ∈
                  { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                      add_mem' :=
                        (_ :
                          ∀ {a_1 b : R},
                            a_1 ∈
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                a_1 + b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                      ↑I}) }.carrier) },
        smul_mem' :=
          (_ :
            ∀ (c : R) {x : R},
              x ∈
                  {
                        toAddSubsemigroup :=
                          {
                            carrier :=
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                            add_mem' :=
                              (_ :
                                ∀ {a_1 b : R},
                                  a_1 ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      a_1 + b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I}) },
                        zero_mem' :=
                          (_ :
                            0 ∈
                              {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                c • x ∈
                  {
                        toAddSubsemigroup :=
                          {
                            carrier :=
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                            add_mem' :=
                              (_ :
                                ∀ {a_1 b : R},
                                  a_1 ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      a_1 + b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I}) },
                        zero_mem' :=
                          (_ :
                            0 ∈
                              {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) }.carrier) }.toAddSubsemigroup.carrier) }
⊢ ∃ zJ_1, zJ_1 ∈ ↑I ∧ ↑(algebraMap R (FractionRing R)) a * zJ_1 = ↑(algebraMap R (FractionRing R)) zJ

tactic: rw [← mul_assoc, mul_inv_cancel fa_ne_zero, one_mul]
state_before: case mk.intro.intro.refine_6.a.a.left.intro.intro
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
zJ : R
hzJ :
  zJ ∈
    {
      toAddSubmonoid :=
        {
          toAddSubsemigroup :=
            { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
              add_mem' :=
                (_ :
                  ∀ {a_1 b : R},
                    a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                      b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                        a_1 + b ∈
                          {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
          zero_mem' :=
            (_ :
              0 ∈
                { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                    add_mem' :=
                      (_ :
                        ∀ {a_1 b : R},
                          a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                            b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              a_1 + b ∈
                                {x |
                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                    ↑I}) }.carrier) },
      smul_mem' :=
        (_ :
          ∀ (c : R) {x : R},
            x ∈
                {
                      toAddSubsemigroup :=
                        {
                          carrier :=
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                          add_mem' :=
                            (_ :
                              ∀ {a_1 b : R},
                                a_1 ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    a_1 + b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I}) },
                      zero_mem' :=
                        (_ :
                          0 ∈
                            {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
              c • x ∈
                {
                      toAddSubsemigroup :=
                        {
                          carrier :=
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                          add_mem' :=
                            (_ :
                              ∀ {a_1 b : R},
                                a_1 ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    a_1 + b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I}) },
                      zero_mem' :=
                        (_ :
                          0 ∈
                            {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) }.carrier) }.toAddSubsemigroup.carrier) }
hzJ' :
  ↑(algebraMap R (FractionRing R)) zJ ∈
    ↑{
        toAddSubmonoid :=
          {
            toAddSubsemigroup :=
              { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                add_mem' :=
                  (_ :
                    ∀ {a_1 b : R},
                      a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                        b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                          a_1 + b ∈
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
            zero_mem' :=
              (_ :
                0 ∈
                  { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                      add_mem' :=
                        (_ :
                          ∀ {a_1 b : R},
                            a_1 ∈
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                a_1 + b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                      ↑I}) }.carrier) },
        smul_mem' :=
          (_ :
            ∀ (c : R) {x : R},
              x ∈
                  {
                        toAddSubsemigroup :=
                          {
                            carrier :=
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                            add_mem' :=
                              (_ :
                                ∀ {a_1 b : R},
                                  a_1 ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      a_1 + b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I}) },
                        zero_mem' :=
                          (_ :
                            0 ∈
                              {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                c • x ∈
                  {
                        toAddSubsemigroup :=
                          {
                            carrier :=
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                            add_mem' :=
                              (_ :
                                ∀ {a_1 b : R},
                                  a_1 ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      a_1 + b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I}) },
                        zero_mem' :=
                          (_ :
                            0 ∈
                              {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) }.carrier) }.toAddSubsemigroup.carrier) }
⊢ ↑(algebraMap R (FractionRing R)) a * ((↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) zJ) =
    ↑(algebraMap R (FractionRing R)) zJ

tactic: intro zI' hzI'
state_before: case mk.intro.intro.refine_6.a.a.right
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
⊢ ∀ (z : FractionRing R),
    z ∈ ↑I →
      ↑(algebraMap R (FractionRing R)) a * z ∈
        ↑{
            toAddSubmonoid :=
              {
                toAddSubsemigroup :=
                  { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                    add_mem' :=
                      (_ :
                        ∀ {a_2 b : R},
                          a_2 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                            b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              a_2 + b ∈
                                {x |
                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
                zero_mem' :=
                  (_ :
                    0 ∈
                      {
                          carrier :=
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                          add_mem' :=
                            (_ :
                              ∀ {a_2 b : R},
                                a_2 ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    a_2 + b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I}) }.carrier) },
            smul_mem' :=
              (_ :
                ∀ (c : R) {x : R},
                  x ∈
                      {
                            toAddSubsemigroup :=
                              {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_2 b : R},
                                      a_2 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_2 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) },
                            zero_mem' :=
                              (_ :
                                0 ∈
                                  {
                                      carrier :=
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I},
                                      add_mem' :=
                                        (_ :
                                          ∀ {a_2 b : R},
                                            a_2 ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                a_2 + b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                    c • x ∈
                      {
                            toAddSubsemigroup :=
                              {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_2 b : R},
                                      a_2 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_2 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) },
                            zero_mem' :=
                              (_ :
                                0 ∈
                                  {
                                      carrier :=
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I},
                                      add_mem' :=
                                        (_ :
                                          ∀ {a_2 b : R},
                                            a_2 ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I} →
                                                a_2 + b ∈
                                                  {x |
                                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                        ↑(algebraMap R (FractionRing R)) x ∈
                                                      ↑I}) }.carrier) }.toAddSubsemigroup.carrier) }

tactic: obtain ⟨y, hy⟩ := ha zI' hzI'
state_before: case mk.intro.intro.refine_6.a.a.right
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
zI' : FractionRing R
hzI' : zI' ∈ ↑I
⊢ ↑(algebraMap R (FractionRing R)) a * zI' ∈
    ↑{
        toAddSubmonoid :=
          {
            toAddSubsemigroup :=
              { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                add_mem' :=
                  (_ :
                    ∀ {a_1 b : R},
                      a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                        b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                          a_1 + b ∈
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
            zero_mem' :=
              (_ :
                0 ∈
                  { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                      add_mem' :=
                        (_ :
                          ∀ {a_1 b : R},
                            a_1 ∈
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                a_1 + b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                      ↑I}) }.carrier) },
        smul_mem' :=
          (_ :
            ∀ (c : R) {x : R},
              x ∈
                  {
                        toAddSubsemigroup :=
                          {
                            carrier :=
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                            add_mem' :=
                              (_ :
                                ∀ {a_1 b : R},
                                  a_1 ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      a_1 + b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I}) },
                        zero_mem' :=
                          (_ :
                            0 ∈
                              {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                c • x ∈
                  {
                        toAddSubsemigroup :=
                          {
                            carrier :=
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                            add_mem' :=
                              (_ :
                                ∀ {a_1 b : R},
                                  a_1 ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      a_1 + b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I}) },
                        zero_mem' :=
                          (_ :
                            0 ∈
                              {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) }.carrier) }.toAddSubsemigroup.carrier) }

tactic: rw [← Algebra.smul_def, mem_coeIdeal]
state_before: case mk.intro.intro.refine_6.a.a.right.intro
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
zI' : FractionRing R
hzI' : zI' ∈ ↑I
y : R
hy : ↑(algebraMap R (FractionRing R)) y = a • zI'
⊢ ↑(algebraMap R (FractionRing R)) a * zI' ∈
    ↑{
        toAddSubmonoid :=
          {
            toAddSubsemigroup :=
              { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                add_mem' :=
                  (_ :
                    ∀ {a_1 b : R},
                      a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                        b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                          a_1 + b ∈
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
            zero_mem' :=
              (_ :
                0 ∈
                  { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                      add_mem' :=
                        (_ :
                          ∀ {a_1 b : R},
                            a_1 ∈
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                a_1 + b ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                      ↑I}) }.carrier) },
        smul_mem' :=
          (_ :
            ∀ (c : R) {x : R},
              x ∈
                  {
                        toAddSubsemigroup :=
                          {
                            carrier :=
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                            add_mem' :=
                              (_ :
                                ∀ {a_1 b : R},
                                  a_1 ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      a_1 + b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I}) },
                        zero_mem' :=
                          (_ :
                            0 ∈
                              {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                c • x ∈
                  {
                        toAddSubsemigroup :=
                          {
                            carrier :=
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                            add_mem' :=
                              (_ :
                                ∀ {a_1 b : R},
                                  a_1 ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      a_1 + b ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I}) },
                        zero_mem' :=
                          (_ :
                            0 ∈
                              {
                                  carrier :=
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                  add_mem' :=
                                    (_ :
                                      ∀ {a_1 b : R},
                                        a_1 ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            a_1 + b ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I}) }.carrier) }.toAddSubsemigroup.carrier) }

tactic: refine' ⟨y, _, hy⟩
state_before: case mk.intro.intro.refine_6.a.a.right.intro
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
zI' : FractionRing R
hzI' : zI' ∈ ↑I
y : R
hy : ↑(algebraMap R (FractionRing R)) y = a • zI'
⊢ ∃ x',
    x' ∈
        {
          toAddSubmonoid :=
            {
              toAddSubsemigroup :=
                { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                  add_mem' :=
                    (_ :
                      ∀ {a_1 b : R},
                        a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                          b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                            a_1 + b ∈
                              {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
              zero_mem' :=
                (_ :
                  0 ∈
                    { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                        add_mem' :=
                          (_ :
                            ∀ {a_1 b : R},
                              a_1 ∈
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                                b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  a_1 + b ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I}) }.carrier) },
          smul_mem' :=
            (_ :
              ∀ (c : R) {x : R},
                x ∈
                    {
                          toAddSubsemigroup :=
                            {
                              carrier :=
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                              add_mem' :=
                                (_ :
                                  ∀ {a_1 b : R},
                                    a_1 ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        a_1 + b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I}) },
                          zero_mem' :=
                            (_ :
                              0 ∈
                                {
                                    carrier :=
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I},
                                    add_mem' :=
                                      (_ :
                                        ∀ {a_1 b : R},
                                          a_1 ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              a_1 + b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
                  c • x ∈
                    {
                          toAddSubsemigroup :=
                            {
                              carrier :=
                                {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                              add_mem' :=
                                (_ :
                                  ∀ {a_1 b : R},
                                    a_1 ∈
                                        {x |
                                          (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                            ↑I} →
                                      b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        a_1 + b ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I}) },
                          zero_mem' :=
                            (_ :
                              0 ∈
                                {
                                    carrier :=
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I},
                                    add_mem' :=
                                      (_ :
                                        ∀ {a_1 b : R},
                                          a_1 ∈
                                              {x |
                                                (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                    ↑(algebraMap R (FractionRing R)) x ∈
                                                  ↑I} →
                                            b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I} →
                                              a_1 + b ∈
                                                {x |
                                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                      ↑(algebraMap R (FractionRing R)) x ∈
                                                    ↑I}) }.carrier) }.toAddSubsemigroup.carrier) } ∧
      ↑(algebraMap R (FractionRing R)) x' = a • zI'

tactic: show (algebraMap R _ a)⁻¹ * algebraMap R _ y ∈ (I : FractionalIdeal R⁰ (FractionRing R))
state_before: case mk.intro.intro.refine_6.a.a.right.intro
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
zI' : FractionRing R
hzI' : zI' ∈ ↑I
y : R
hy : ↑(algebraMap R (FractionRing R)) y = a • zI'
⊢ y ∈
    {
      toAddSubmonoid :=
        {
          toAddSubsemigroup :=
            { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
              add_mem' :=
                (_ :
                  ∀ {a_1 b : R},
                    a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                      b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                        a_1 + b ∈
                          {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I}) },
          zero_mem' :=
            (_ :
              0 ∈
                { carrier := {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                    add_mem' :=
                      (_ :
                        ∀ {a_1 b : R},
                          a_1 ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                            b ∈ {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I} →
                              a_1 + b ∈
                                {x |
                                  (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                    ↑I}) }.carrier) },
      smul_mem' :=
        (_ :
          ∀ (c : R) {x : R},
            x ∈
                {
                      toAddSubsemigroup :=
                        {
                          carrier :=
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                          add_mem' :=
                            (_ :
                              ∀ {a_1 b : R},
                                a_1 ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    a_1 + b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I}) },
                      zero_mem' :=
                        (_ :
                          0 ∈
                            {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) }.carrier) }.toAddSubsemigroup.carrier →
              c • x ∈
                {
                      toAddSubsemigroup :=
                        {
                          carrier :=
                            {x | (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                          add_mem' :=
                            (_ :
                              ∀ {a_1 b : R},
                                a_1 ∈
                                    {x |
                                      (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                        ↑I} →
                                  b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I} →
                                    a_1 + b ∈
                                      {x |
                                        (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈
                                          ↑I}) },
                      zero_mem' :=
                        (_ :
                          0 ∈
                            {
                                carrier :=
                                  {x |
                                    (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) x ∈ ↑I},
                                add_mem' :=
                                  (_ :
                                    ∀ {a_1 b : R},
                                      a_1 ∈
                                          {x |
                                            (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                ↑(algebraMap R (FractionRing R)) x ∈
                                              ↑I} →
                                        b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I} →
                                          a_1 + b ∈
                                            {x |
                                              (↑(algebraMap R (FractionRing R)) a)⁻¹ *
                                                  ↑(algebraMap R (FractionRing R)) x ∈
                                                ↑I}) }.carrier) }.toAddSubsemigroup.carrier) }

tactic: rwa [hy, Algebra.smul_def, ← mul_assoc, inv_mul_cancel fa_ne_zero, one_mul]
state_before: case mk.intro.intro.refine_6.a.a.right.intro
R : Type u_1
K : Type ?u.1490084
L : Type ?u.1490087
inst✝¹¹ : CommRing R
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : DecidableEq L
inst✝⁷ : Algebra R K
inst✝⁶ : IsFractionRing R K
inst✝⁵ : Algebra K L
inst✝⁴ : FiniteDimensional K L
inst✝³ : Algebra R L
inst✝² : IsScalarTower R K L
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
b✝ : ClassGroup R
I : (FractionalIdeal R⁰ (FractionRing R))ˣ
a : R
a_ne_zero' : a ∈ R⁰
ha : ∀ (b : FractionRing R), b ∈ ↑↑I → IsInteger R (a • b)
a_ne_zero : a ≠ 0
fa_ne_zero : ↑(algebraMap R (FractionRing R)) a ≠ 0
zI' : FractionRing R
hzI' : zI' ∈ ↑I
y : R
hy : ↑(algebraMap R (FractionRing R)) y = a • zI'
⊢ (↑(algebraMap R (FractionRing R)) a)⁻¹ * ↑(algebraMap R (FractionRing R)) y ∈ ↑I