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

[Merged by Bors] - feat(order/ideal): order ideals, cofinal sets and the Rasiowa-Sikorski lemma #2850

Closed
wants to merge 7 commits into from

Conversation

dwarn
Copy link
Collaborator

@dwarn dwarn commented May 28, 2020

We define order ideals and cofinal sets, and use them to prove the (very simple) Rasiowa-Sikorski lemma: given a countable family of cofinal subsets of an inhabited preorder, there is an upwards directed set meeting each one. This provides an API for certain recursive constructions.

@dwarn dwarn added the awaiting-review The author would like community review of the PR label May 28, 2020
@dwarn
Copy link
Collaborator Author

dwarn commented May 28, 2020

The predicates downwards_closed and cofinal maybe belong in order.basic? There is unbounded in order.basic, which claims to mean cofinal, but it's not quite what we want.

src/order/rasiowa_sikorski.lean Outdated Show resolved Hide resolved
src/order/rasiowa_sikorski.lean Outdated Show resolved Hide resolved
@semorrison semorrison added awaiting-author A reviewer has asked the author a question or requested changes and removed awaiting-review The author would like community review of the PR labels May 29, 2020
@dwarn
Copy link
Collaborator Author

dwarn commented May 29, 2020

To be clear I don't expect anyone to know what Rasiowa-Sikorski says -- I didn't know this name until I looked it up recently, and it only seems to be used in the context of "forcing with countable transitive models". So I definitely would like this file to be accessible to people who have never heard of the lemma!

Would it be better to use descriptive names here? Something like generic_cofilter_of_countable_cofinal instead of 'rasiowa_sikorski'? Cofilter is a made-up term for the order-theoretic dual notion of 'filter' (which afaics only exists in mathlib specialized to the power set?), i.e. by cofilter I mean a downwards closed, upwards directed set.

@dwarn dwarn added awaiting-review The author would like community review of the PR and removed awaiting-author A reviewer has asked the author a question or requested changes labels May 29, 2020
@jcommelin
Copy link
Member

Yes, please use descriptive names (and mention Namey-names in the docstrings).

@dwarn
Copy link
Collaborator Author

dwarn commented May 31, 2020

It's all descriptive names now, but they may or may not make sense.

I wrote up a proof of BCT to illustrate the usage of this: link to zulip

@urkud
Copy link
Member

urkud commented May 31, 2020

Since you're talking about cofilters here, does it make sense to formulate this using filter.frequently? It seems that cofinal is exactly ∃^f x in at_top, p x.

@dwarn
Copy link
Collaborator Author

dwarn commented Jun 1, 2020

It seems like filter.frequently_at_top relates cofinal with at_top, but it needs assumptions on the preorder that are not true here. In particular, the preorder in this file is most likely not directed -- i.e. there can be 'incompatible' pairs of elements -- and at_top is most likely the improper filter.

From reading Wikipedia it seems that the correct term for what I've referred to as 'cofilter' is 'order ideal' - I'll change the names in this file accordingly. It should be noted that a "filter on P" in mathlib's sense (i.e. something like at_top) is nothing like an order ideal on P: a filter on P is rather an order ideal on set P ordered by reverse inclusion. In practice, P is often represented as a subtype of some set A, and then the order ideal on P induces a filter on A. There is probably more to be said here to relate order ideals on P with filters on A...

@urkud
Copy link
Member

urkud commented Jun 1, 2020

Thank you for the explanation. I saw "cofilter" and started thinking how to relate this to filters. One more comment about names: I think that using name "generic" in a rarely used lemma is not a good idea because we won't be able to reuse this name in other files.

BTW, I think that without a directed assumption ∃^f x in at_top, p x is equivalent to ∀ (s : set α), finite s → ∃ x ∈ upper_bounds s, p x. Not sure if this is good for your case.

src/order/ideal.lean Outdated Show resolved Hide resolved
src/order/ideal.lean Outdated Show resolved Hide resolved
src/order/ideal.lean Show resolved Hide resolved
src/order/ideal.lean Outdated Show resolved Hide resolved
markdown

Co-authored-by: Bryan Gin-ge Chen <bryangingechen@gmail.com>
@bryangingechen bryangingechen changed the title feat(order): Rasiowa-Sikorski feat(order/ideal): order ideals, cofinal sets and the Rasiowa-Sikorski lemma Jun 5, 2020
@robertylewis
Copy link
Member

@urkud are you happy with the current state here? (Just asking because you were commenting earlier.) This looks fine to me.

@urkud
Copy link
Member

urkud commented Jun 8, 2020

LGTM

@urkud
Copy link
Member

urkud commented Jun 8, 2020

bors merge

@github-actions github-actions bot added ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.) and removed awaiting-review The author would like community review of the PR labels Jun 8, 2020
bors bot pushed a commit that referenced this pull request Jun 8, 2020
…i lemma (#2850)

We define order ideals and cofinal sets, and use them to prove the (very simple) Rasiowa-Sikorski lemma: given a countable family of cofinal subsets of an inhabited preorder, there is an upwards directed set meeting each one. This provides an API for certain recursive constructions.
@bors
Copy link

bors bot commented Jun 8, 2020

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title feat(order/ideal): order ideals, cofinal sets and the Rasiowa-Sikorski lemma [Merged by Bors] - feat(order/ideal): order ideals, cofinal sets and the Rasiowa-Sikorski lemma Jun 8, 2020
@bors bors bot closed this Jun 8, 2020
@bors bors bot deleted the rasiowa-sikorski branch June 8, 2020 19:36
cipher1024 pushed a commit to cipher1024/mathlib that referenced this pull request Mar 15, 2022
…i lemma (leanprover-community#2850)

We define order ideals and cofinal sets, and use them to prove the (very simple) Rasiowa-Sikorski lemma: given a countable family of cofinal subsets of an inhabited preorder, there is an upwards directed set meeting each one. This provides an API for certain recursive constructions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants