[Merged by Bors] - Composing non_zero function with injective fun is non_zero#11244
[Merged by Bors] - Composing non_zero function with injective fun is non_zero#11244
Conversation
Co-authored-by: damiano <adomani@gmail.com>
Co-authored-by: damiano <adomani@gmail.com>
Co-authored-by: damiano <adomani@gmail.com>
adomani
left a comment
There was a problem hiding this comment.
Sorry, I noticed these after my previous review!
Co-authored-by: damiano <adomani@gmail.com>
Co-authored-by: damiano <adomani@gmail.com>
Co-authored-by: damiano <adomani@gmail.com>
Co-authored-by: damiano <adomani@gmail.com>
Co-authored-by: damiano <adomani@gmail.com>
adomani
left a comment
There was a problem hiding this comment.
This is surely the most corrections that I have suggested on any single line of code! 😄
Hahaha I'm sorry! I really didn't look at it very closely since most of it was written by people that know more than me! |
Co-authored-by: damiano <adomani@gmail.com>
Co-authored-by: damiano <adomani@gmail.com>
|
Ok this should be ready to go I think. |
|
Thanks! bors merge |
Some basic missing lemmas about injective function composition. See this Zulip [thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/injective.20function.20composed.20with.20non.20zero.20function.20ne.20zero) Co-authored-by: Chris Birkbeck <c.birkbeck@uea.ac.uk>
|
bors r- |
|
Canceled. |
|
I don't think there is ever a reason to write I pushed a change to that effect; please merge if you're happy with it bors d+ |
|
✌️ CBirkbeck can now approve this pull request. To approve and merge a pull request, simply reply with |
|
bors r+ |
Some basic missing lemmas about injective function composition. See this Zulip [thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/injective.20function.20composed.20with.20non.20zero.20function.20ne.20zero) Co-authored-by: Chris Birkbeck <c.birkbeck@uea.ac.uk> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
Ah yes much better! I had only used |
|
Pull request successfully merged into master. Build succeeded: |
| g ∘ f = Function.const _ (g b) ↔ f = Function.const _ b := | ||
| hg.comp_left.eq_iff' rfl |
There was a problem hiding this comment.
| g ∘ f = Function.const _ (g b) ↔ f = Function.const _ b := | |
| hg.comp_left.eq_iff' rfl | |
| g ∘ f = const _ (g b) ↔ f = const _ b := hg.comp_left.eq_iff |
There was a problem hiding this comment.
I don't know what to do about these comments, now that its been merged? make a new pr?
There was a problem hiding this comment.
Yeah that would be great, thank you!
| ⟨injective_pi_map fun i => (hF i).injective, surjective_pi_map fun i => (hF i).surjective⟩ | ||
| #align function.bijective_pi_map Function.bijective_pi_map | ||
|
|
||
| lemma comp_eq_const_iff (b : β) (f : α → β) {g : β → γ} (hg : Injective g) : |
There was a problem hiding this comment.
| lemma comp_eq_const_iff (b : β) (f : α → β) {g : β → γ} (hg : Injective g) : | |
| lemma comp_eq_const {b : β} {f : α → β} {g : β → γ} (hg : Injective g) : |
Same below
| hg.comp_left.eq_iff' rfl | ||
|
|
||
| @[to_additive] | ||
| lemma comp_eq_one_iff [One β] [One γ] (f : α → β) {g : β → γ} (hg : Injective g) (hg0 : g 1 = 1) : |
There was a problem hiding this comment.
hg0 is a weird assumption name for something talking about 1
There was a problem hiding this comment.
Ah its because it was a zero to start and then Eric saw that it would work more generally with a to_additive and I didn't think to change the name after.
Some basic missing lemmas about injective function composition. See this Zulip [thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/injective.20function.20composed.20with.20non.20zero.20function.20ne.20zero) Co-authored-by: Chris Birkbeck <c.birkbeck@uea.ac.uk> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
Some basic missing lemmas about injective function composition. See this Zulip [thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/injective.20function.20composed.20with.20non.20zero.20function.20ne.20zero) Co-authored-by: Chris Birkbeck <c.birkbeck@uea.ac.uk> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
Some basic missing lemmas about injective function composition. See this Zulip [thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/injective.20function.20composed.20with.20non.20zero.20function.20ne.20zero) Co-authored-by: Chris Birkbeck <c.birkbeck@uea.ac.uk> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
Some basic missing lemmas about injective function composition. See this Zulip [thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/injective.20function.20composed.20with.20non.20zero.20function.20ne.20zero) Co-authored-by: Chris Birkbeck <c.birkbeck@uea.ac.uk> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
Some basic missing lemmas about injective function composition. See this Zulip [thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/injective.20function.20composed.20with.20non.20zero.20function.20ne.20zero) Co-authored-by: Chris Birkbeck <c.birkbeck@uea.ac.uk> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
Some basic missing lemmas about injective function composition. See this Zulip thread