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