Zulip Chat Archive
Stream: new members
Topic: simp or term proof in library
Anatole Dedecker (Jul 21 2020 at 22:20):
When writing lemmas for the library, should we prefer a one-line simp proof (squeezified if necessary) or a few lines of term proof ? I know the term way is probably the fastest, but maybe there are other citerions to choose ?
Anatole Dedecker (Jul 21 2020 at 22:30):
Example : which should I choose here ?
import order.filter.basic
open filter
open_locale filter
lemma tendsto_sup {α β : Type*} (F G : filter α) (l : filter β) (f : α → β) :
(tendsto f (F ⊔ G) l ↔ tendsto f F l ∧ tendsto f G l) :=
⟨ λ h,
⟨ tendsto_def.2 (λ s, λ hs, (mem_sup_sets.1 $ tendsto_def.1 h s hs).1),
tendsto_def.2 (λ s, λ hs, (mem_sup_sets.1 $ tendsto_def.1 h s hs).2) ⟩,
λ ⟨ h1, h2 ⟩, tendsto_def.2 $ λ s, λ hs, mem_sup_sets.2 ⟨ h1 hs, h2 hs ⟩ ⟩
lemma tendsto_sup' {α β : Type*} (F G : filter α) (l : filter β) (f : α → β) :
(tendsto f (F ⊔ G) l ↔ tendsto f F l ∧ tendsto f G l) :=
by simp only [tendsto, map_sup, sup_le_iff]
Scott Morrison (Jul 21 2020 at 22:41):
I read these two proofs as:
- "err... I guess I'm going to have to remember exactly how we've defined
tendsto
in the library before I understand this" - "the statement looks sensible, and apparently it follows easily from stuff we've already done, so lets keep going"
Reid Barton (Jul 21 2020 at 22:51):
There are also better term-mode proofs--not necessarily better than the by simp
proof though.
Anatole Dedecker (Jul 21 2020 at 22:52):
I'm not really good at term mode yet :sweat_smile:
Reid Barton (Jul 21 2020 at 22:55):
apparently map_sup
turns out to be a definitional equality, so one possibility is
lemma tendsto_sup {α β : Type*} (F G : filter α) (l : filter β) (f : α → β) :
(tendsto f (F ⊔ G) l ↔ tendsto f F l ∧ tendsto f G l) :=
@sup_le_iff _ _ (F.map f) (G.map f) _
Reid Barton (Jul 21 2020 at 22:55):
or you can also help out Lean with show
Last updated: Dec 20 2023 at 11:08 UTC