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(data/{sym2,sym}) decidable version of sym2.mem.other, filling out some of sym API #4008

Closed
wants to merge 3 commits into from

Conversation

kmill
Copy link
Collaborator

@kmill kmill commented Sep 1, 2020

Removes sym2.vmem and replaces it with sym2.mem.other', which can get the other element of a pair in the presence of decidable equality. Writing sym2.mem.other' was beyond my abilities when I created sym2.vmem, and seeing that vmem is extremely specialized and has no immediate use, it's probably best to remove it.

Adds some assorted simp lemmas, and also an additional lemma that sym2.mem.other is, in some sense, an involution.

Adds to the API for sym. This is from taking some of the interface for multisets. (I was exploring whether sym2 α should be re-implemented as sym α 2 and trying to add enough to sym to pull it off, but it doesn't seem to be worth it in the end.)

(I'm not committing a recursor for sym α n, which lets you represent elements by vectors of length n. It needs some cleanup.)


Removes `sym2.vmem` and replaces it with `sym2.mem.other'`, which can get
the other element of a pair in the presence of decidable equality.
Writing `sym2.mem.other'` was beyond my abilities when I created
`sym2.vmem`, and seeing that vmem is extremely specialized and has no
immediate use, it's probably best to remove it.

Adds some assorted simp lemmas, and also an additional lemma that
`sym2.mem.other` is, in some sense, an involution.

Adds to the API for `sym`.  This is from taking some of the interface
for multisets.  (This was from exploring whether `sym2 α` should be
re-implemented as `sym α 2` and trying to add enough to `sym` to pull
it off, but it doesn't seem to be worth it.)

(I'm not committing a recursor for `sym α n`, which lets you represent
elements as vectors of length `n`.  It needs some cleanup.)
@kmill kmill changed the title Decidable version of sym2.mem.other, and filling out some of sym API feat(data/{sym2,sym}) decidable version of sym2.mem.other, filling out some of sym API Sep 1, 2020
@kmill kmill added the awaiting-review The author would like community review of the PR label Sep 1, 2020
src/data/sym.lean Outdated Show resolved Hide resolved
@robertylewis robertylewis 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 Sep 8, 2020
Copy link
Member

@jcommelin jcommelin left a comment

Choose a reason for hiding this comment

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

Apart from Scott's request, this looks quite good to me. @kmill let's get this merged?!

@kmill
Copy link
Collaborator Author

kmill commented Sep 11, 2020

@jcommelin Fixed the import line (didn't mean to revert @semorrison's cleanup!)

@kmill kmill 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 Sep 11, 2020
Copy link
Member

@jcommelin jcommelin left a comment

Choose a reason for hiding this comment

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

Thanks 🎉

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 Sep 11, 2020
bors bot pushed a commit that referenced this pull request Sep 11, 2020
…t some of sym API (#4008)

Removes `sym2.vmem` and replaces it with `sym2.mem.other'`, which can get the other element of a pair in the presence of decidable equality. Writing `sym2.mem.other'` was beyond my abilities when I created `sym2.vmem`, and seeing that vmem is extremely specialized and has no immediate use, it's probably best to remove it.

Adds some assorted simp lemmas, and also an additional lemma that `sym2.mem.other` is, in some sense, an involution.

Adds to the API for `sym`.  This is from taking some of the interface for multisets.  (I was exploring whether `sym2 α` should be re-implemented as `sym α 2` and trying to add enough to `sym` to pull it off, but it doesn't seem to be worth it in the end.)

(I'm not committing a recursor for `sym α n`, which lets you represent elements by vectors of length `n`.  It needs some cleanup.)
@bors
Copy link

bors bot commented Sep 11, 2020

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title feat(data/{sym2,sym}) decidable version of sym2.mem.other, filling out some of sym API [Merged by Bors] - feat(data/{sym2,sym}) decidable version of sym2.mem.other, filling out some of sym API Sep 11, 2020
@bors bors bot closed this Sep 11, 2020
@bors bors bot deleted the sym2_additions branch September 11, 2020 17:48
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

4 participants