Skip to content

Conversation

@zstone1
Copy link
Contributor

@zstone1 zstone1 commented Feb 19, 2022

This has the hard parts of Arzela-Ascoli. The forward direction is done, but the backwards direction still needs a little work to get it done fully. But this is an appropriate place to stop, considering the size of the change already.

  1. We introduce a sets_of filter that, given a filter over T, gives a filter over set T which has the "small" sets. That is, it's the filter of downward closed members of F. The purpose of this is to let us write near (sets_of entourage) to get an "epsilon" without having a metric space and using posnum. This is super practical for both of the main lemmas.

  2. I have a near_compact_cover lemma which dramatically factors out the two main lemmas. It let's us factor a quantifier out of a \near, turning a "global" property into two local ones. The analogy to open coverings is that if you can index an open cover by a filter (E.G. some epsilon), you can construct a filter which converges to counter-examples.

  3. The theorems themselves compact_equicontinuous and ptws_compact_cvg (names could be improved). Thanks to the two tools above, they are fairly short. But the topology is indeed tricky.

  4. I still need to update the changelog. I'm also sure there's a bunch of linting I missed.

I ran into some rather frustrating trouble with the \near notation where the near lemma did not like the g \near (nbhs f) that was in scope. Sometimes it was conflicting stuff in the evar's context (I had to try to define everything possible before entering the near to avoid this. Why can't it unfold context elements it doesn't recognize to see if they're defined in terms it does know?). Other times I'm not really sure what was wrong. I can provide repros if you all want.

The only remaining steps for Arzela Ascoli are:

  • Prove uniform limits of continuous functions are continuous (I think this is easy from the cvg_switch?)
  • The next meaningful lemma takes compact_equicontinuous and weakens the condition to only require precompact instead of compact
  • Then the final step is to prove a weaker, but highly practical version that says
{ptws F --> f} /\ F is equicontinuous -> {family compact, F --> f}

@zstone1 zstone1 force-pushed the arzela_main_lemmas branch 2 times, most recently from d99369a to f54d0ed Compare March 1, 2022 14:16
Context {T : choiceType} {Y : filteredType T}.
Context (F : set (set Y)) (PF : ProperFilter F).

Definition sets_of : set (set (set Y)) := filter_from
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sets_of sounds too generic a name, do you have another suggestion?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's true. I've updated with powerset_filter_from which is marginally better. Maybe small_set_filter_from is more descriptive?

@CohenCyril
Copy link
Member

This is really nice. I'd love to see the reproduction of the problems with near that you mentioned. And yes, the no-unfolding stuff is annoying, since we piggyback on Coq evar we should introduce the unfolding in the tactic, but it needs to be smart and thus be reprogrammed in another metalanguage (e.g. ltac2 or coq-elpi), which I meant to do at some point anyways.

@zstone1 zstone1 force-pushed the arzela_main_lemmas branch from ecd94ad to eec58b3 Compare March 23, 2022 01:31
@zstone1
Copy link
Contributor Author

zstone1 commented Mar 23, 2022

Thank you, I'm pretty happy with how it worked out. I still have some questions about near_compact_covering to think about. In particular, I'm very much hoping the converse is false, because means there's a possibility of a novel generalization of arzela-ascoli.

I will post a branch with the broken near application once this is merged.

Also, I remember @affeldt-aist mentioned something about uniform series convergence proofs (in R or C). Once this is merged, you can use ptws_compact_cvg + local compactness. (I believe it'll be easier to formalize this way, rather copying textbook proofs that use Weierstrass M-test and deal with boundary conditions).

@zstone1 zstone1 force-pushed the arzela_main_lemmas branch from d990322 to 62d439b Compare March 23, 2022 15:00
@zstone1
Copy link
Contributor Author

zstone1 commented Mar 23, 2022

Well, it was a nice thought. I have a proof of the converse of near_compact_covering. I'll post it separately once I clean it up.

@zstone1 zstone1 force-pushed the arzela_main_lemmas branch from 62d439b to 87364d7 Compare April 3, 2022 14:20
cleanish implementation for first lemma

proofs now use near correctly

minor lint

fixing build for 8.14

always more linting to do

use notations in `sets_of`

- minor linting

rephrasing definitions with index and map

fixing bad merge

updating changelog

fixing bad merge again

forgot to add docs for sets_of

Update theories/topology.v

Co-authored-by: Cyril Cohen <[email protected]>

Update theories/topology.v

Co-authored-by: Cyril Cohen <[email protected]>

Update theories/topology.v

Co-authored-by: Cyril Cohen <[email protected]>

Update theories/topology.v

Co-authored-by: Cyril Cohen <[email protected]>

Update theories/topology.v

Co-authored-by: Cyril Cohen <[email protected]>

renaming sets_of

fixing changelog
Copy link
Member

@CohenCyril CohenCyril left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good to go

@zstone1 zstone1 force-pushed the arzela_main_lemmas branch from 87364d7 to 09996d9 Compare April 12, 2022 13:18
@zstone1 zstone1 merged commit bcc5d6a into math-comp:master Apr 12, 2022
affeldt-aist pushed a commit that referenced this pull request Apr 13, 2022
Adding main lemmas for arzela ascoli, some lemmas for dealing with compactness, and a technique for getting "sufficiently small" sets from a filter.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants