Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Arzela main lemmas #545

Merged
merged 1 commit into from
Apr 12, 2022
Merged

Arzela main lemmas #545

merged 1 commit into from
Apr 12, 2022

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
theories/topology.v Outdated Show resolved Hide resolved
theories/topology.v Outdated Show resolved Hide resolved
theories/topology.v Outdated Show resolved Hide resolved
theories/topology.v Outdated Show resolved Hide resolved
theories/topology.v Outdated Show resolved Hide resolved
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?

theories/topology.v Outdated Show resolved Hide resolved
@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
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
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.

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 <CohenCyril@users.noreply.github.com>

Update theories/topology.v

Co-authored-by: Cyril Cohen <CohenCyril@users.noreply.github.com>

Update theories/topology.v

Co-authored-by: Cyril Cohen <CohenCyril@users.noreply.github.com>

Update theories/topology.v

Co-authored-by: Cyril Cohen <CohenCyril@users.noreply.github.com>

Update theories/topology.v

Co-authored-by: Cyril Cohen <CohenCyril@users.noreply.github.com>

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 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