Theorem: lowerSemicontinuousWithinAt_sum
File: Mathlib/Topology/Semicontinuous.lean

tactic: induction' a using Finset.induction_on with i a ia IH
state_before: α : Type u_1
inst✝⁵ : TopologicalSpace α
β : Type u_2
inst✝⁴ : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
ι : Type u_3
γ : Type u_4
inst✝³ : LinearOrderedAddCommMonoid γ
inst✝² : TopologicalSpace γ
inst✝¹ : OrderTopology γ
inst✝ : ContinuousAdd γ
f : ι → α → γ
a : Finset ι
ha : ∀ i ∈ a, LowerSemicontinuousWithinAt (f i) s x
⊢ LowerSemicontinuousWithinAt (fun z => ∑ i ∈ a, f i z) s x
state_after: case empty
α : Type u_1
inst✝⁵ : TopologicalSpace α
β : Type u_2
inst✝⁴ : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
ι : Type u_3
γ : Type u_4
inst✝³ : LinearOrderedAddCommMonoid γ
inst✝² : TopologicalSpace γ
inst✝¹ : OrderTopology γ
inst✝ : ContinuousAdd γ
f : ι → α → γ
ha : ∀ i ∈ ∅, LowerSemicontinuousWithinAt (f i) s x
⊢ LowerSemicontinuousWithinAt (fun z => ∑ i ∈ ∅, f i z) s x

case insert
α : Type u_1
inst✝⁵ : TopologicalSpace α
β : Type u_2
inst✝⁴ : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
ι : Type u_3
γ : Type u_4
inst✝³ : LinearOrderedAddCommMonoid γ
inst✝² : TopologicalSpace γ
inst✝¹ : OrderTopology γ
inst✝ : ContinuousAdd γ
f : ι → α → γ
i : ι
a : Finset ι
ia : i ∉ a
IH : (∀ i ∈ a, LowerSemicontinuousWithinAt (f i) s x) → LowerSemicontinuousWithinAt (fun z => ∑ i ∈ a, f i z) s x
ha : ∀ i_1 ∈ insert i a, LowerSemicontinuousWithinAt (f i_1) s x
⊢ LowerSemicontinuousWithinAt (fun z => ∑ i ∈ insert i a, f i z) s x

tactic: exact lowerSemicontinuousWithinAt_const
state_before: case empty
α : Type u_1
inst✝⁵ : TopologicalSpace α
β : Type u_2
inst✝⁴ : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
ι : Type u_3
γ : Type u_4
inst✝³ : LinearOrderedAddCommMonoid γ
inst✝² : TopologicalSpace γ
inst✝¹ : OrderTopology γ
inst✝ : ContinuousAdd γ
f : ι → α → γ
ha : ∀ i ∈ ∅, LowerSemicontinuousWithinAt (f i) s x
⊢ LowerSemicontinuousWithinAt (fun z => ∑ i ∈ ∅, f i z) s x
state_after: no goals

tactic: simp only [ia, Finset.sum_insert, not_false_iff]
state_before: case insert
α : Type u_1
inst✝⁵ : TopologicalSpace α
β : Type u_2
inst✝⁴ : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
ι : Type u_3
γ : Type u_4
inst✝³ : LinearOrderedAddCommMonoid γ
inst✝² : TopologicalSpace γ
inst✝¹ : OrderTopology γ
inst✝ : ContinuousAdd γ
f : ι → α → γ
i : ι
a : Finset ι
ia : i ∉ a
IH : (∀ i ∈ a, LowerSemicontinuousWithinAt (f i) s x) → LowerSemicontinuousWithinAt (fun z => ∑ i ∈ a, f i z) s x
ha : ∀ i_1 ∈ insert i a, LowerSemicontinuousWithinAt (f i_1) s x
⊢ LowerSemicontinuousWithinAt (fun z => ∑ i ∈ insert i a, f i z) s x
state_after: case insert
α : Type u_1
inst✝⁵ : TopologicalSpace α
β : Type u_2
inst✝⁴ : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
ι : Type u_3
γ : Type u_4
inst✝³ : LinearOrderedAddCommMonoid γ
inst✝² : TopologicalSpace γ
inst✝¹ : OrderTopology γ
inst✝ : ContinuousAdd γ
f : ι → α → γ
i : ι
a : Finset ι
ia : i ∉ a
IH : (∀ i ∈ a, LowerSemicontinuousWithinAt (f i) s x) → LowerSemicontinuousWithinAt (fun z => ∑ i ∈ a, f i z) s x
ha : ∀ i_1 ∈ insert i a, LowerSemicontinuousWithinAt (f i_1) s x
⊢ LowerSemicontinuousWithinAt (fun z => f i z + ∑ i ∈ a, f i z) s x

tactic: exact
  LowerSemicontinuousWithinAt.add (ha _ (Finset.mem_insert_self i a))
    (IH fun j ja => ha j (Finset.mem_insert_of_mem ja))
state_before: case insert
α : Type u_1
inst✝⁵ : TopologicalSpace α
β : Type u_2
inst✝⁴ : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
ι : Type u_3
γ : Type u_4
inst✝³ : LinearOrderedAddCommMonoid γ
inst✝² : TopologicalSpace γ
inst✝¹ : OrderTopology γ
inst✝ : ContinuousAdd γ
f : ι → α → γ
i : ι
a : Finset ι
ia : i ∉ a
IH : (∀ i ∈ a, LowerSemicontinuousWithinAt (f i) s x) → LowerSemicontinuousWithinAt (fun z => ∑ i ∈ a, f i z) s x
ha : ∀ i_1 ∈ insert i a, LowerSemicontinuousWithinAt (f i_1) s x
⊢ LowerSemicontinuousWithinAt (fun z => f i z + ∑ i ∈ a, f i z) s x
state_after: no goals