-
Notifications
You must be signed in to change notification settings - Fork 197
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
associativity of ideal product #2121
base: master
Are you sure you want to change the base?
associativity of ideal product #2121
Conversation
@jdchristensen I managed to carry out the opposite argument you suggested, but it required a lot of refactoring in Ideal. Namely, exploding the Section IdealLemmas which is probably for the best. While the diff is big, it might be a good time to perform some more style changes like changing Lemma to Definition. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I started reviewing this, but the change to the indentation made it impossible to see what changed later on in the file, as github got quite confused with the diff it displayed. It's better if large indentation changes can be moved to a separate commit. Maybe you can force push to fix this, replacing just the last commit? (I think the comments I already made should still be visible and understandable after this.)
theories/Algebra/Rings/Ideal.v
Outdated
Definition isleftideal_eq {R : Ring} (I J : Subgroup R) (p : ideal_eq I J) | ||
: IsLeftIdeal I -> IsLeftIdeal J. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This can be strengthened: If I
is an ideal, and J
is any predicate on R
which is pointwise logically equivalent to I
, then J
is a subgroup and an ideal.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isn't this just the composition of two results then? Any J
logically equivalent to a subgroup I
is also a subgroup, furthermore also an ideal when I
is one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. But we may as well state the stronger version if we generalize these predicate comparisons to any predicates on any types.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since being a subgroup contains being a hprop, this doesn't quite generalise. This is because we may have two logically equivalent predicates, but one being a hprop doesn't imply the other is. For that we need an equivalence which is stronger than predicate equality.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suppose we could ask for J
to be hprop valued separately. That should solve this issue.
10c5bf5
to
5f3d2b5
Compare
You're totally right about the diff being hard to read. I've gone ahead and separated that out. Sorry about that. I'll get to your other review suggestions later. |
I pushed three commits. The first two I think are clear benefits. And The third commit is the thing I wrote a comment about. Feel free to revert if you think it is not worth it. Or maybe with the new approach to the assertion, it's not worth using opposite rings here? I do think opposite rings help with ideals in other parts of the file, so that's great. Can you find more places where this helps? I have to run and won't have time to look at this for a while, but hopefully you'll be able to use some of these ideas to clean things up further. |
5cd0c10
to
0e1eb12
Compare
@jdchristensen I've added some material on predicates of types. This generalises all the subset material we had in |
<!-- ps-id: 43ff35d0-6f6a-46c5-94b5-479411cf915c --> Signed-off-by: Ali Caglayan <[email protected]>
Signed-off-by: Ali Caglayan <[email protected]>
We show that the opposite of product ideals is the opposite of the reverse product. This allows us to deduplicate the argument occuring in ideal_product_assoc. Signed-off-by: Ali Caglayan <[email protected]>
Signed-off-by: Ali Caglayan <[email protected]>
Signed-off-by: Ali Caglayan <[email protected]>
Signed-off-by: Ali Caglayan <[email protected]>
Signed-off-by: Ali Caglayan <[email protected]>
Signed-off-by: Ali Caglayan <[email protected]>
Signed-off-by: Ali Caglayan <[email protected]>
Signed-off-by: Ali Caglayan <[email protected]>
6d987b7
to
ea40cc9
Compare
This was left as a TODO so I did a quick proof for it. It's possible it can be simplified.
Edit: This PR started as a simple lemma, but I've since hijacked it to do a big cleanup of
Subgroup
andIdeal
. Notably, we introduceBasics/Predicate.v
.