Zulip Chat Archive

Stream: Is there code for X?

Topic: Eventually vacuously true statements


Ryan Lahfa (Aug 18 2021 at 16:48):

Is there nice ways to lift (x,¬px)    (x,pxqx)(\forall x, \lnot p x) \implies (\forall x, p x \to q x) for any p,qp, q propositions for eventually filters, MWE:

import analysis.specific_limits

open filter

lemma eventually_false_of_not {α} {p q: α  Prop} {l: filter α}:
  (∀ᶠ x in l, ¬ p x)  (∀ᶠ x in l, p x  q x) := sorry

I think I can do it by brute-forcing stuff, mostly by proving that { x | p x } \notin l as { x | not(p(x)) } \in l (otherwise, intersection would be empty, and the empty set would be in the filter),

Therefore, { x | p x → q x } = univ, which should complete the proof. But I'm looking for more idiomatic ways to perform this proof rather than spamming definitions.

Anatole Dedecker (Aug 18 2021 at 17:03):

You can use docs#filter.eventually.mono and then you just have to give the pointwise proof

Ryan Lahfa (Aug 18 2021 at 17:05):

Anatole Dedecker said:

You can use docs#filter.eventually.mono and then you just have to give the pointwise proof

You're definitely super hacka :-)

Ryan Lahfa (Aug 18 2021 at 17:11):

For completeness:

lemma eventually_false_of_not {α} {p q: α  Prop} {l: filter α}
  (hnp: ∀ᶠ x in l, ¬ p x): (∀ᶠ x in l, p x  q x) :=
  eventually.mono hnp (λ x hnpx hpx, absurd hpx hnpx)

Last updated: Dec 20 2023 at 11:08 UTC