Theorem: absorbs_iUnion_finset
File: Mathlib/Analysis/LocallyConvex/Basic.lean

tactic: induction' t using Finset.induction_on with i t _ht hi
state_before: 𝕜 : Type u_3
𝕝 : Type ?u.3143
E : Type u_2
ι✝ : Sort ?u.3149
κ : ι✝ → Sort ?u.3154
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t✝ u v A B : Set E
ι : Type u_1
t : Finset ι
f : ι → Set E
⊢ Absorbs 𝕜 s (⋃ (i : ι) (_ : i ∈ t), f i) ↔ ∀ (i : ι), i ∈ t → Absorbs 𝕜 s (f i)

tactic: rw [Finset.set_biUnion_insert, absorbs_union, hi]
state_before: case insert
𝕜 : Type u_3
𝕝 : Type ?u.3143
E : Type u_2
ι✝ : Sort ?u.3149
κ : ι✝ → Sort ?u.3154
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t✝ u v A B : Set E
ι : Type u_1
f : ι → Set E
i : ι
t : Finset ι
_ht : ¬i ∈ t
hi : Absorbs 𝕜 s (⋃ (i : ι) (_ : i ∈ t), f i) ↔ ∀ (i : ι), i ∈ t → Absorbs 𝕜 s (f i)
⊢ Absorbs 𝕜 s (⋃ (i_1 : ι) (_ : i_1 ∈ insert i t), f i_1) ↔ ∀ (i_1 : ι), i_1 ∈ insert i t → Absorbs 𝕜 s (f i_1)

tactic: constructor <;> intro h
state_before: case insert
𝕜 : Type u_3
𝕝 : Type ?u.3143
E : Type u_2
ι✝ : Sort ?u.3149
κ : ι✝ → Sort ?u.3154
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t✝ u v A B : Set E
ι : Type u_1
f : ι → Set E
i : ι
t : Finset ι
_ht : ¬i ∈ t
hi : Absorbs 𝕜 s (⋃ (i : ι) (_ : i ∈ t), f i) ↔ ∀ (i : ι), i ∈ t → Absorbs 𝕜 s (f i)
⊢ (Absorbs 𝕜 s (f i) ∧ ∀ (i : ι), i ∈ t → Absorbs 𝕜 s (f i)) ↔ ∀ (i_1 : ι), i_1 ∈ insert i t → Absorbs 𝕜 s (f i_1)

tactic: exact ⟨h i (Finset.mem_insert_self i t), fun i' hi' => h i' (Finset.mem_insert_of_mem hi')⟩
state_before: case insert.mpr
𝕜 : Type u_3
𝕝 : Type ?u.3143
E : Type u_2
ι✝ : Sort ?u.3149
κ : ι✝ → Sort ?u.3154
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t✝ u v A B : Set E
ι : Type u_1
f : ι → Set E
i : ι
t : Finset ι
_ht : ¬i ∈ t
hi : Absorbs 𝕜 s (⋃ (i : ι) (_ : i ∈ t), f i) ↔ ∀ (i : ι), i ∈ t → Absorbs 𝕜 s (f i)
h : ∀ (i_1 : ι), i_1 ∈ insert i t → Absorbs 𝕜 s (f i_1)
⊢ Absorbs 𝕜 s (f i) ∧ ∀ (i : ι), i ∈ t → Absorbs 𝕜 s (f i)

tactic: simp only [Finset.not_mem_empty, Set.iUnion_false, Set.iUnion_empty, absorbs_empty,
  IsEmpty.forall_iff, imp_true_iff]
state_before: case empty
𝕜 : Type u_3
𝕝 : Type ?u.3143
E : Type u_2
ι✝ : Sort ?u.3149
κ : ι✝ → Sort ?u.3154
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t u v A B : Set E
ι : Type u_1
f : ι → Set E
⊢ Absorbs 𝕜 s (⋃ (i : ι) (_ : i ∈ ∅), f i) ↔ ∀ (i : ι), i ∈ ∅ → Absorbs 𝕜 s (f i)

tactic: refine' fun _ hi' => (Finset.mem_insert.mp hi').elim _ (h.2 _)
state_before: case insert.mp
𝕜 : Type u_3
𝕝 : Type ?u.3143
E : Type u_2
ι✝ : Sort ?u.3149
κ : ι✝ → Sort ?u.3154
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t✝ u v A B : Set E
ι : Type u_1
f : ι → Set E
i : ι
t : Finset ι
_ht : ¬i ∈ t
hi : Absorbs 𝕜 s (⋃ (i : ι) (_ : i ∈ t), f i) ↔ ∀ (i : ι), i ∈ t → Absorbs 𝕜 s (f i)
h : Absorbs 𝕜 s (f i) ∧ ∀ (i : ι), i ∈ t → Absorbs 𝕜 s (f i)
⊢ ∀ (i_1 : ι), i_1 ∈ insert i t → Absorbs 𝕜 s (f i_1)

tactic: exact fun hi'' => by
  rw [hi'']
  exact h.1
state_before: case insert.mp
𝕜 : Type u_3
𝕝 : Type ?u.3143
E : Type u_2
ι✝ : Sort ?u.3149
κ : ι✝ → Sort ?u.3154
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t✝ u v A B : Set E
ι : Type u_1
f : ι → Set E
i : ι
t : Finset ι
_ht : ¬i ∈ t
hi : Absorbs 𝕜 s (⋃ (i : ι) (_ : i ∈ t), f i) ↔ ∀ (i : ι), i ∈ t → Absorbs 𝕜 s (f i)
h : Absorbs 𝕜 s (f i) ∧ ∀ (i : ι), i ∈ t → Absorbs 𝕜 s (f i)
x✝ : ι
hi' : x✝ ∈ insert i t
⊢ x✝ = i → Absorbs 𝕜 s (f x✝)

tactic: rw [hi'']
state_before: 𝕜 : Type u_3
𝕝 : Type ?u.3143
E : Type u_2
ι✝ : Sort ?u.3149
κ : ι✝ → Sort ?u.3154
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t✝ u v A B : Set E
ι : Type u_1
f : ι → Set E
i : ι
t : Finset ι
_ht : ¬i ∈ t
hi : Absorbs 𝕜 s (⋃ (i : ι) (_ : i ∈ t), f i) ↔ ∀ (i : ι), i ∈ t → Absorbs 𝕜 s (f i)
h : Absorbs 𝕜 s (f i) ∧ ∀ (i : ι), i ∈ t → Absorbs 𝕜 s (f i)
x✝ : ι
hi' : x✝ ∈ insert i t
hi'' : x✝ = i
⊢ Absorbs 𝕜 s (f x✝)

tactic: exact h.1
state_before: 𝕜 : Type u_3
𝕝 : Type ?u.3143
E : Type u_2
ι✝ : Sort ?u.3149
κ : ι✝ → Sort ?u.3154
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t✝ u v A B : Set E
ι : Type u_1
f : ι → Set E
i : ι
t : Finset ι
_ht : ¬i ∈ t
hi : Absorbs 𝕜 s (⋃ (i : ι) (_ : i ∈ t), f i) ↔ ∀ (i : ι), i ∈ t → Absorbs 𝕜 s (f i)
h : Absorbs 𝕜 s (f i) ∧ ∀ (i : ι), i ∈ t → Absorbs 𝕜 s (f i)
x✝ : ι
hi' : x✝ ∈ insert i t
hi'' : x✝ = i
⊢ Absorbs 𝕜 s (f i)