Zulip Chat Archive

Stream: Is there code for X?

Topic: strict_mono_subseq


Alex J. Best (Oct 12 2021 at 12:24):

I'm trying to brush up some old code that includes:

import order.monotone
variables {γ : Type*} [preorder γ] [decidable_rel (() : γ  γ  Prop)]

def strict_mono_subseq {f :   γ} (h :  n,  m, f n < f (n + m)) :   
| 0       := 0
| (n + 1) := strict_mono_subseq n + nat.find (h (strict_mono_subseq n))

lemma strict_mono_subseq_spec (f :   γ) (h :  n,  m, f n < f (n + m)) :
  strict_mono (f  (strict_mono_subseq h)) := strict_mono_nat_of_lt_succ (λ n, nat.find_spec (h (strict_mono_subseq h n)))

and I noticed we now have docs#filter.strict_mono_subseq_of_tendsto_at_top, however the library lemma assumes linear_order whereas the application I have is to submodules which only form a partial order (though it is true that in the application the values of f are in a chain I believe) so I was wondering if there is a natural way to combine use-cases, so I have a few related questions

  1. Is there a lemma/def like the one here that takes a strictly monotone subsequence in the library given these seemingly weaker assumptions?
  2. Can / should the library lemma strict_mono_subseq_of_tendsto_at_top be generalized to cover something closer to the lemma / def above?
  3. Is the assumption (h : ∀ n, ∃ m, f n < f (n + m)) something nice when expressed in filter-language, it seems weaker than tendsto f at_top at_top?

Yaël Dillies (Oct 12 2021 at 12:58):

A few things:

  • I'm pretty sure that filter.strict_mono_subseq_of_tendsto_at_top can be generalized.
  • You condition ∀ n, ∃ m, f n < f (n + m) still seems too strong. I think the correct hypothesis is "eventually strictly monotone", which does remind me that @Filippo A. E. Nuccio was looking for a definition of "eventually monotone".

Yaël Dillies (Oct 12 2021 at 13:09):

In some sense, you don't need the order to be linear, you just need it to be linear close to infinity. This is what happens with submodules because you have a maximal element.

Filippo A. E. Nuccio (Oct 12 2021 at 13:25):

Just for completeness, in the proof I was working on, I had a sequence ana_n that I wanted to state to be "eventually monotone". I new an index n0n_0 such that nann\mapsto a_n was monotone for all nn0n\geq n_0 and ended up definining bnb_n to be ana_n for nn0n\geq n_0 and constantlu equal to min(annn0)\min (a_n \mid n\leq n_0). So, bnb_n was "really monotone" and I applied some limit-lemma of the form "tendsto.eventually" to deduce properties of ana_n from those of bnb_n.


Last updated: Dec 20 2023 at 11:08 UTC