Theorem: Inducing.multipliable_iff_tprod_comp_mem_range
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

tactic: constructor
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
⊢ Multipliable f ↔ Multipliable (⇑g ∘ f) ∧ ∏' (i : β), g (f i) ∈ Set.range ⇑g
state_after: case mp
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
⊢ Multipliable f → Multipliable (⇑g ∘ f) ∧ ∏' (i : β), g (f i) ∈ Set.range ⇑g

case mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
⊢ Multipliable (⇑g ∘ f) ∧ ∏' (i : β), g (f i) ∈ Set.range ⇑g → Multipliable f

tactic: intro hf
state_before: case mp
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
⊢ Multipliable f → Multipliable (⇑g ∘ f) ∧ ∏' (i : β), g (f i) ∈ Set.range ⇑g
state_after: case mp
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
hf : Multipliable f
⊢ Multipliable (⇑g ∘ f) ∧ ∏' (i : β), g (f i) ∈ Set.range ⇑g

tactic: constructor
state_before: case mp
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
hf : Multipliable f
⊢ Multipliable (⇑g ∘ f) ∧ ∏' (i : β), g (f i) ∈ Set.range ⇑g
state_after: case mp.left
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
hf : Multipliable f
⊢ Multipliable (⇑g ∘ f)

case mp.right
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
hf : Multipliable f
⊢ ∏' (i : β), g (f i) ∈ Set.range ⇑g

tactic: exact hf.map g hg.continuous
state_before: case mp.left
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
hf : Multipliable f
⊢ Multipliable (⇑g ∘ f)
state_after: no goals

tactic: use ∏' i, f i
state_before: case mp.right
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
hf : Multipliable f
⊢ ∏' (i : β), g (f i) ∈ Set.range ⇑g
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
hf : Multipliable f
⊢ g (∏' (i : β), f i) = ∏' (i : β), g (f i)

tactic: exact hf.map_tprod g hg.continuous
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
hf : Multipliable f
⊢ g (∏' (i : β), f i) = ∏' (i : β), g (f i)
state_after: no goals

tactic: rintro ⟨hgf, a, ha⟩
state_before: case mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
⊢ Multipliable (⇑g ∘ f) ∧ ∏' (i : β), g (f i) ∈ Set.range ⇑g → Multipliable f
state_after: case mpr.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a✝ b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
hgf : Multipliable (⇑g ∘ f)
a : α
ha : g a = ∏' (i : β), g (f i)
⊢ Multipliable f

tactic: use a
state_before: case mpr.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a✝ b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
hgf : Multipliable (⇑g ∘ f)
a : α
ha : g a = ∏' (i : β), g (f i)
⊢ Multipliable f
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a✝ b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
hgf : Multipliable (⇑g ∘ f)
a : α
ha : g a = ∏' (i : β), g (f i)
⊢ HasProd f a

tactic: have := hgf.hasProd
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a✝ b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
hgf : Multipliable (⇑g ∘ f)
a : α
ha : g a = ∏' (i : β), g (f i)
⊢ HasProd f a
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a✝ b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
hgf : Multipliable (⇑g ∘ f)
a : α
ha : g a = ∏' (i : β), g (f i)
this : HasProd (⇑g ∘ f) (∏' (b : β), (⇑g ∘ f) b)
⊢ HasProd f a

tactic: simp_rw [comp_apply, ← ha] at this
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a✝ b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
hgf : Multipliable (⇑g ∘ f)
a : α
ha : g a = ∏' (i : β), g (f i)
this : HasProd (⇑g ∘ f) (∏' (b : β), (⇑g ∘ f) b)
⊢ HasProd f a
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a✝ b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
hgf : Multipliable (⇑g ∘ f)
a : α
ha : g a = ∏' (i : β), g (f i)
this : HasProd (⇑g ∘ f) (g a)
⊢ HasProd f a

tactic: exact (hg.hasProd_iff f a).mp this
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁶ : CommMonoid α
inst✝⁵ : TopologicalSpace α
f✝ g✝ : β → α
a✝ b : α
s : Finset β
inst✝⁴ : CommMonoid γ
inst✝³ : TopologicalSpace γ
inst✝² : T2Space γ
G : Type u_5
inst✝¹ : FunLike G α γ
inst✝ : MonoidHomClass G α γ
g : G
hg : Inducing ⇑g
f : β → α
hgf : Multipliable (⇑g ∘ f)
a : α
ha : g a = ∏' (i : β), g (f i)
this : HasProd (⇑g ∘ f) (g a)
⊢ HasProd f a
state_after: no goals