-
Notifications
You must be signed in to change notification settings - Fork 384
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
chore: attribute [induction_eliminator] #12605
base: master
Are you sure you want to change the base?
Conversation
@@ -119,13 +119,13 @@ theorem map_coe (f : α →ₙ* β) (a : α) : map f (a : WithOne α) = f a := | |||
@[to_additive (attr := simp)] | |||
theorem map_id : map (MulHom.id α) = MonoidHom.id (WithOne α) := by | |||
ext x | |||
induction x using WithOne.cases_on <;> rfl | |||
induction x <;> rfl |
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.
We have WithOne.recOneCoe
and WithZero.recZeroCoe
. Can we just remove WithOne.cases_on
and WithZero.cases_on
?
Does it make |
193 files is pretty large to review; can this be split? I've made #13096 for the really basic |
Another good split would be all the |
This is a smaller version of #12605. This allows `using` to be dropped from `induction`.
…ects (#14135) Namely, for * `FreeMagma` / `FreeAddMagma` * `FreeSemigroup` / `FreeAddSemigroup` * `FreeMonoid` / `FreeAddMonoid` * `FreeCommRing` * `FreeAlgebra` Split from #12605 Co-authored-by: negiizhao <[email protected]>
…on`} with `induction` and `cases` (#14132) Spit from #12605, which picked up some conflicts here. Co-authored-by: negiizhao [[email protected]](mailto:[email protected])
Split from #12605. Co-authored-by: negiizhao [email protected]
…ects (#14135) Namely, for * `FreeMagma` / `FreeAddMagma` * `FreeSemigroup` / `FreeAddSemigroup` * `FreeMonoid` / `FreeAddMonoid` * `FreeCommRing` * `FreeAlgebra` Split from #12605 Co-authored-by: negiizhao <[email protected]>
…on`} with `induction` and `cases` (#14132) Spit from #12605, which picked up some conflicts here. Co-authored-by: negiizhao [[email protected]](mailto:[email protected])
|
…le types (#14205) Namely: * `AList` * `Cycle` * `ConjAct` * `Projectivization` * `Lex` * `NatOrdinal` * `WithLawson` * `WithLower` * `WithUpper` * `WithScott` * `WithUpperSet` * `WithLowerSet` * `Speicalization` (which had an incorrectly-stated induction principle) These are just for the cases which have docstrings of the form "Use as `induction .* using .*`". Inspired by #12605.
Now down to 140 files! I think the |
Split from #12605. Co-authored-by: negiizhao [email protected]
…ects (#14135) Namely, for * `FreeMagma` / `FreeAddMagma` * `FreeSemigroup` / `FreeAddSemigroup` * `FreeMonoid` / `FreeAddMonoid` * `FreeCommRing` * `FreeAlgebra` Split from #12605 Co-authored-by: negiizhao <[email protected]>
…on`} with `induction` and `cases` (#14132) Spit from #12605, which picked up some conflicts here. Co-authored-by: negiizhao [[email protected]](mailto:[email protected])
…le types (#14205) Namely: * `AList` * `Cycle` * `ConjAct` * `Projectivization` * `Lex` * `NatOrdinal` * `WithLawson` * `WithLower` * `WithUpper` * `WithScott` * `WithUpperSet` * `WithLowerSet` * `Speicalization` (which had an incorrectly-stated induction principle) These are just for the cases which have docstrings of the form "Use as `induction .* using .*`". Inspired by #12605.
What's the status here? I think this is a useful PR |
Add attribute [induction_eliminator] to
AdjoinRoot.induction_on
ENat.recTopCoe
ENNReal.recTopCoe
Finset.induction
Magma.AssocQuotient.induction_on
ManyOneDegree.ind_on
Module.Ray.ind
(and addOrientation.ind
forOrientation
, an abbrev of it. I wish that we do not need to add it in the future.)Multiset.induction
MvPolynomial.induction_on
OnePoint.rec
Opposite.rec'
Ordinal.limitRecOn
PartENat.casesOn
Polynomial.induction_on'
QuotientAddGroup.induction_on'
(and addAddCircle.induction_on
forAddCircle
, an abbrev of it. I wish that we do not need to add it in the future.)QuotientGroup.induction_on'
(doesn't actually work)Real.Angle.induction_on
SimplexCategory.rec
Trunc.induction_on
induction_eliminator, cases_eliminator
toWithTop
etc #13264