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(ring_theory/hahn_series): order of a nonzero Hahn series, reindexing summable families #7444
Conversation
@@ -700,4 +700,16 @@ lemma finsum_mul {R : Type*} [semiring R] (f : α → R) (r : R) | |||
(∑ᶠ a : α, f a) * r = ∑ᶠ a : α, f a * r := | |||
(add_monoid_hom.mul_right r).map_finsum h | |||
|
|||
@[to_additive] | |||
lemma finprod_emb_domain (f : α ↪ β) [decidable_pred (∈ set.range f)] (g : α → M) : | |||
∏ᶠ (b : β), (if h : b ∈ set.range f then g (classical.some h) else 1) = ∏ᶠ (a : α), g a := |
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.
The left hand side looks rather complicated and specialized. Do you think this could be replaced with the indicator function on the range of f
? Also, I can imagine that someone will want to rw
with this lemma, but only has an ordinary function that is function.injective
. Would you mind also providing that version?
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 can definitely do an injective version, but I'm having trouble determining what other form this could take. It's not equivalent to just an indicator function, because the thing being summed over depends on h : b ∈ set.range f
. Perhaps a general classical.some
lemma is the greatest generality?
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've made a helper lemma that does most of the work, by allowing you to convert between a finprod_mem
that depends on the actual mem
statement and one that does not, but I've left the original statement put. I expect it will find more use than just this, because if we end up refactoring finsupp
to use finsum
, this is the critical idea behind summing finsupp.emb_domain
.
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.
LGTM, I think 2 more easy simp-lemmas would be good. After that, let's get this merged!
Great! If it passes CI, please merge it. bors d+ |
✌️ awainverse can now approve this pull request. To approve and merge a pull request, simply reply with |
bors merge |
…xing summable families (#7444) Defines `hahn_series.order`, the order of a nonzero Hahn series Restates `add_val` in terms of `hahn_series.order` Defines `hahn_series.summable_family.emb_domain`, reindexing a summable family using an embedding
Pull request successfully merged into master. Build succeeded: |
Defines
hahn_series.order
, the order of a nonzero Hahn seriesRestates
add_val
in terms ofhahn_series.order
Defines
hahn_series.summable_family.emb_domain
, reindexing a summable family using an embeddingThe two things being introduced in this PR are not directly related, but they are both fairly straightforward, and came up in defining the field structure.