Theorem: exists_maximal_algebraicIndependent
File: Mathlib/RingTheory/AlgebraicIndependent.lean

tactic: use u, huai, hsu, hut
state_before: case intro.intro.intro.intro.intro
ι : Type ?u.877646
ι' : Type ?u.877649
R : Type u_2
K : Type ?u.877655
A : Type u_1
A' : Type ?u.877661
A'' : Type ?u.877664
V : Type u
V' : Type ?u.877669
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
s t : Set A
hst : s ⊆ t
hs : AlgebraicIndependent R Subtype.val
u : Set A
huai : AlgebraicIndependent R Subtype.val
left✝ : s ⊆ u
hut : u ⊆ t
hsu : s ⊆ u
hx : ∀ (a : Set A), a ∈ {u | AlgebraicIndependent R Subtype.val ∧ s ⊆ u ∧ u ⊆ t} → u ⊆ a → a = u
⊢ ∃ u,
    AlgebraicIndependent R Subtype.val ∧
      s ⊆ u ∧ u ⊆ t ∧ ∀ (x : Set A), AlgebraicIndependent R Subtype.val → u ⊆ x → x ⊆ t → x = u

tactic: intro x hxai huv hxt
state_before: case intro.intro.intro.intro.intro
ι : Type ?u.877646
ι' : Type ?u.877649
R : Type u_2
K : Type ?u.877655
A : Type u_1
A' : Type ?u.877661
A'' : Type ?u.877664
V : Type u
V' : Type ?u.877669
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
s t : Set A
hst : s ⊆ t
hs : AlgebraicIndependent R Subtype.val
u : Set A
huai : AlgebraicIndependent R Subtype.val
left✝ : s ⊆ u
hut : u ⊆ t
hsu : s ⊆ u
hx : ∀ (a : Set A), a ∈ {u | AlgebraicIndependent R Subtype.val ∧ s ⊆ u ∧ u ⊆ t} → u ⊆ a → a = u
⊢ ∀ (x : Set A), AlgebraicIndependent R Subtype.val → u ⊆ x → x ⊆ t → x = u

tactic: exact hx _ ⟨hxai, _root_.trans hsu huv, hxt⟩ huv
state_before: case intro.intro.intro.intro.intro
ι : Type ?u.877646
ι' : Type ?u.877649
R : Type u_2
K : Type ?u.877655
A : Type u_1
A' : Type ?u.877661
A'' : Type ?u.877664
V : Type u
V' : Type ?u.877669
x✝ : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
s t : Set A
hst : s ⊆ t
hs : AlgebraicIndependent R Subtype.val
u : Set A
huai : AlgebraicIndependent R Subtype.val
left✝ : s ⊆ u
hut : u ⊆ t
hsu : s ⊆ u
hx : ∀ (a : Set A), a ∈ {u | AlgebraicIndependent R Subtype.val ∧ s ⊆ u ∧ u ⊆ t} → u ⊆ a → a = u
x : Set A
hxai : AlgebraicIndependent R Subtype.val
huv : u ⊆ x
hxt : x ⊆ t
⊢ x = u

tactic: refine' ⟨⟨algebraicIndependent_sUnion_of_directed hcn chainc.directedOn
    fun a ha => (hc ha).1, _, _⟩, _⟩
state_before: ι : Type ?u.877646
ι' : Type ?u.877649
R : Type u_2
K : Type ?u.877655
A : Type u_1
A' : Type ?u.877661
A'' : Type ?u.877664
V : Type u
V' : Type ?u.877669
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
s t : Set A
hst : s ⊆ t
hs : AlgebraicIndependent R Subtype.val
c : Set (Set A)
hc : c ⊆ {u | AlgebraicIndependent R Subtype.val ∧ s ⊆ u ∧ u ⊆ t}
chainc : IsChain (fun x x_1 => x ⊆ x_1) c
hcn : Set.Nonempty c
⊢ ⋃₀ c ∈ {u | AlgebraicIndependent R Subtype.val ∧ s ⊆ u ∧ u ⊆ t} ∧ ∀ (s : Set A), s ∈ c → s ⊆ ⋃₀ c

tactic: cases' hcn with x hx
state_before: case refine'_1
ι : Type ?u.877646
ι' : Type ?u.877649
R : Type u_2
K : Type ?u.877655
A : Type u_1
A' : Type ?u.877661
A'' : Type ?u.877664
V : Type u
V' : Type ?u.877669
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
s t : Set A
hst : s ⊆ t
hs : AlgebraicIndependent R Subtype.val
c : Set (Set A)
hc : c ⊆ {u | AlgebraicIndependent R Subtype.val ∧ s ⊆ u ∧ u ⊆ t}
chainc : IsChain (fun x x_1 => x ⊆ x_1) c
hcn : Set.Nonempty c
⊢ s ⊆ ⋃₀ c

tactic: exact subset_sUnion_of_subset _ x (hc hx).2.1 hx
state_before: case refine'_1.intro
ι : Type ?u.877646
ι' : Type ?u.877649
R : Type u_2
K : Type ?u.877655
A : Type u_1
A' : Type ?u.877661
A'' : Type ?u.877664
V : Type u
V' : Type ?u.877669
x✝ : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
s t : Set A
hst : s ⊆ t
hs : AlgebraicIndependent R Subtype.val
c : Set (Set A)
hc : c ⊆ {u | AlgebraicIndependent R Subtype.val ∧ s ⊆ u ∧ u ⊆ t}
chainc : IsChain (fun x x_1 => x ⊆ x_1) c
x : Set A
hx : x ∈ c
⊢ s ⊆ ⋃₀ c

tactic: exact sUnion_subset fun x hx => (hc hx).2.2
state_before: case refine'_2
ι : Type ?u.877646
ι' : Type ?u.877649
R : Type u_2
K : Type ?u.877655
A : Type u_1
A' : Type ?u.877661
A'' : Type ?u.877664
V : Type u
V' : Type ?u.877669
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
s t : Set A
hst : s ⊆ t
hs : AlgebraicIndependent R Subtype.val
c : Set (Set A)
hc : c ⊆ {u | AlgebraicIndependent R Subtype.val ∧ s ⊆ u ∧ u ⊆ t}
chainc : IsChain (fun x x_1 => x ⊆ x_1) c
hcn : Set.Nonempty c
⊢ ⋃₀ c ⊆ t

tactic: intro s
state_before: case refine'_3
ι : Type ?u.877646
ι' : Type ?u.877649
R : Type u_2
K : Type ?u.877655
A : Type u_1
A' : Type ?u.877661
A'' : Type ?u.877664
V : Type u
V' : Type ?u.877669
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
s t : Set A
hst : s ⊆ t
hs : AlgebraicIndependent R Subtype.val
c : Set (Set A)
hc : c ⊆ {u | AlgebraicIndependent R Subtype.val ∧ s ⊆ u ∧ u ⊆ t}
chainc : IsChain (fun x x_1 => x ⊆ x_1) c
hcn : Set.Nonempty c
⊢ ∀ (s : Set A), s ∈ c → s ⊆ ⋃₀ c

tactic: exact subset_sUnion_of_mem
state_before: case refine'_3
ι : Type ?u.877646
ι' : Type ?u.877649
R : Type u_2
K : Type ?u.877655
A : Type u_1
A' : Type ?u.877661
A'' : Type ?u.877664
V : Type u
V' : Type ?u.877669
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
s✝ t : Set A
hst : s✝ ⊆ t
hs : AlgebraicIndependent R Subtype.val
c : Set (Set A)
hc : c ⊆ {u | AlgebraicIndependent R Subtype.val ∧ s✝ ⊆ u ∧ u ⊆ t}
chainc : IsChain (fun x x_1 => x ⊆ x_1) c
hcn : Set.Nonempty c
s : Set A
⊢ s ∈ c → s ⊆ ⋃₀ c