# Zulip Chat Archive

## Stream: general

### Topic: I don't understand heq

#### Kevin Buzzard (Apr 14 2018 at 10:01):

Here's a self-contained extract from `analysis/topology/topological.space_lean`

:

#### Kevin Buzzard (Apr 14 2018 at 10:02):

import analysis.topology.topological_space open topological_space universes u v w variables {α : Type u} {β : Type v} {ι : Sort w} {a a₁ a₂ : α} {s s₁ s₂ : set α} {p p₁ p₂ : α → Prop} variables [topological_space α] lemma is_open_Union_orig {f : ι → set α} (h : ∀i, is_open (f i)) : is_open (⋃i, f i) := is_open_sUnion $ assume t ⟨i, (heq : t = f i)⟩, heq.symm ▸ h i lemma is_open_Union' {f : ι → set α} (h : ∀i, is_open (f i)) : is_open (⋃i, f i) := begin refine is_open_sUnion _, intro t, intro Ht, cases Ht with i Hi, exact eq.symm Hi ▸ h i, end lemma is_open_Union'' {f : ι → set α} (h : ∀i, is_open (f i)) : is_open (⋃i, f i) := is_open_sUnion $ assume t ⟨i, (rfl : t = f i)⟩, eq.symm ▸ h i -- doesn't compile

#### Kevin Buzzard (Apr 14 2018 at 10:02):

well, the first lemma is the extract -- it's called `is_open_Union`

in the actual file.

#### Kevin Buzzard (Apr 14 2018 at 10:03):

I should perhaps say `lemma is_open_sUnion {s : set (set α)} (h : ∀t ∈ s, is_open t) : is_open (⋃₀ s)`

#### Kevin Buzzard (Apr 14 2018 at 10:03):

So I realised I didn't really understand the mathlib proof of `is_open_Union_orig`

(which is the proof given in the extract above, with its `heq`

)

#### Kevin Buzzard (Apr 14 2018 at 10:04):

so I proved the lemma "in the same way", in tactic mode

#### Kevin Buzzard (Apr 14 2018 at 10:04):

and that's `is_open_Union'`

#### Kevin Buzzard (Apr 14 2018 at 10:04):

and everything works fine with eq

#### Kevin Buzzard (Apr 14 2018 at 10:05):

Oh -- got it:

#### Kevin Buzzard (Apr 14 2018 at 10:05):

lemma is_open_Union'' {f : ι → set α} (h : ∀i, is_open (f i)) : is_open (⋃i, f i) := is_open_sUnion $ assume t ⟨i, (eq : t = f i)⟩, eq.symm ▸ h i

#### Kevin Buzzard (Apr 14 2018 at 10:06):

What's with this `heq`

in the mathlib version?

#### Kevin Buzzard (Apr 14 2018 at 10:08):

Oh!

#### Kevin Buzzard (Apr 14 2018 at 10:08):

Got it :-)

#### Kevin Buzzard (Apr 14 2018 at 10:08):

`heq`

has nothing to do with `heq`

, it's just a variable name :-)

#### Kevin Buzzard (Apr 14 2018 at 10:09):

Oh OK, so I do understand this particular use of heq, we're calling a variable by the same name as a Lean function :-)

Last updated: Dec 20 2023 at 11:08 UTC