Theorem: LieSubmodule.iSup_induction'
File: Mathlib/Algebra/Lie/Submodule.lean

Proof steps:
state_before: R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N✝ N' : LieSubmodule R L M
I J : LieIdeal R L
ι : Sort u_1
N : ι → LieSubmodule R L M
C : (x : M) → x ∈ ⨆ i, N i → Prop
hN : ∀ (i : ι) (x : M) (hx : x ∈ N i), C x ⋯
h0 : C 0 ⋯
hadd : ∀ (x y : M) (hx : x ∈ ⨆ i, N i) (hy : y ∈ ⨆ i, N i), C x hx → C y hy → C (x + y) ⋯
x : M
hx : x ∈ ⨆ i, N i
⊢ C x hx
state_after: R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N✝ N' : LieSubmodule R L M
I J : LieIdeal R L
ι : Sort u_1
N : ι → LieSubmodule R L M
C : (x : M) → x ∈ ⨆ i, N i → Prop
hN : ∀ (i : ι) (x : M) (hx : x ∈ N i), C x ⋯
h0 : C 0 ⋯
hadd : ∀ (x y : M) (hx : x ∈ ⨆ i, N i) (hy : y ∈ ⨆ i, N i), C x hx → C y hy → C (x + y) ⋯
x : M
hx : x ∈ ⨆ i, N i
⊢ ∃ (x_1 : x ∈ ⨆ i, N i), C x x_1
tactic: refine Exists.elim ?_ fun (hx : x ∈ ⨆ i, N i) (hc : C x hx) => hc
state_before: R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N✝ N' : LieSubmodule R L M
I J : LieIdeal R L
ι : Sort u_1
N : ι → LieSubmodule R L M
C : (x : M) → x ∈ ⨆ i, N i → Prop
hN : ∀ (i : ι) (x : M) (hx : x ∈ N i), C x ⋯
h0 : C 0 ⋯
hadd : ∀ (x y : M) (hx : x ∈ ⨆ i, N i) (hy : y ∈ ⨆ i, N i), C x hx → C y hy → C (x + y) ⋯
x : M
hx : x ∈ ⨆ i, N i
⊢ ∃ (x_1 : x ∈ ⨆ i, N i), C x x_1
state_after: case refine_1
R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N✝ N' : LieSubmodule R L M
I J : LieIdeal R L
ι : Sort u_1
N : ι → LieSubmodule R L M
C : (x : M) → x ∈ ⨆ i, N i → Prop
hN : ∀ (i : ι) (x : M) (hx : x ∈ N i), C x ⋯
h0 : C 0 ⋯
hadd : ∀ (x y : M) (hx : x ∈ ⨆ i, N i) (hy : y ∈ ⨆ i, N i), C x hx → C y hy → C (x + y) ⋯
x✝ : M
hx✝ : x✝ ∈ ⨆ i, N i
i : ι
x : M
hx : x ∈ N i
⊢ (fun x => ∃ (hx : x ∈ ⨆ i, N i), C x hx) x

case refine_2
R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N✝ N' : LieSubmodule R L M
I J : LieIdeal R L
ι : Sort u_1
N : ι → LieSubmodule R L M
C : (x : M) → x ∈ ⨆ i, N i → Prop
hN : ∀ (i : ι) (x : M) (hx : x ∈ N i), C x ⋯
h0 : C 0 ⋯
hadd : ∀ (x y : M) (hx : x ∈ ⨆ i, N i) (hy : y ∈ ⨆ i, N i), C x hx → C y hy → C (x + y) ⋯
x : M
hx : x ∈ ⨆ i, N i
⊢ (fun x => ∃ (hx : x ∈ ⨆ i, N i), C x hx) 0

case refine_3
R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N✝ N' : LieSubmodule R L M
I J : LieIdeal R L
ι : Sort u_1
N : ι → LieSubmodule R L M
C : (x : M) → x ∈ ⨆ i, N i → Prop
hN : ∀ (i : ι) (x : M) (hx : x ∈ N i), C x ⋯
h0 : C 0 ⋯
hadd : ∀ (x y : M) (hx : x ∈ ⨆ i, N i) (hy : y ∈ ⨆ i, N i), C x hx → C y hy → C (x + y) ⋯
x✝ : M
hx : x✝ ∈ ⨆ i, N i
x y : M
⊢ (fun x => ∃ (hx : x ∈ ⨆ i, N i), C x hx) x →
    (fun x => ∃ (hx : x ∈ ⨆ i, N i), C x hx) y → (fun x => ∃ (hx : x ∈ ⨆ i, N i), C x hx) (x + y)
tactic: refine iSup_induction N (C := fun x : M ↦ ∃ (hx : x ∈ ⨆ i, N i), C x hx) hx
    (fun i x hx => ?_) ?_ fun x y => ?_