-
Notifications
You must be signed in to change notification settings - Fork 251
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
feat: Finset builder notation #11582
base: master
Are you sure you want to change the base?
Conversation
777235c
to
d9f35cb
Compare
c55d1dc
to
d5acd6e
Compare
The new notations here intersect a lot with the notations introduced by #6795, so I'm thinking I should be creating a new syntax category |
f7d2f35
to
cad709c
Compare
PR summary a0b1d241eeImport changesNo significant changes to the import graph
|
Given that this is completely orthogonal to the current PR, I will do that in a later PR. |
nolint `setOf.unexpander` docstring Std to Batteries rename revert accidental diff
typo Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
a796826
to
a0b1d24
Compare
Define elaborators (but no delaborators) to elaborate the following notations to a
Finset
:In
Data.Finset.Basic
,{x ∈ s | p x}
In
Data.Fintype.Basic
,{x | p x}
{x : α | p x}
{x ∉ s | p x}
{x ≠ a | p x}
In
Order.LocallyFinite.Basic
,{x ≤ a | p x}
{x ≥ a | p x}
{x < a | p x}
{x > a | p x}
The general heuristic for deciding whether to elaborate a given notation as a
Set
orFinset
is:Finset ?α
.Finset
.s
in the notation isFinset ?α
.Finset
.s
in the notation, elaborate as aSet
.There is currently a gotcha that elaboration to
Set
is highly preferred because we can't postpone metavariable and override the set elaborator without breaking many existing uses of set builder notation. See Zulip.