feat(Mathlib/Data/Finite/Option): option type is finite iff type is finite#39567
feat(Mathlib/Data/Finite/Option): option type is finite iff type is finite#39567AlexBrodbelt wants to merge 7 commits into
Conversation
Welcome new contributor!Thank you for contributing to Mathlib! If you haven't done so already, please review our contribution guidelines, as well as the style guide and naming conventions. In particular, we kindly remind contributors that we have guidelines regarding the use of AI when making pull requests. We use a review queue to manage reviews. If your PR does not appear there, it is probably because it is not successfully building (i.e., it doesn't have a green checkmark), has the If you haven't already done so, please come to https://leanprover.zulipchat.com/, introduce yourself, and mention your new PR. Thank you again for joining our community. |
PR summary a5cd43ac9cImport changes for modified filesNo significant changes to the import graph Import changes for all files
|
| public import Mathlib.Data.Fintype.Option | ||
| import Mathlib.Logic.Equiv.Fin.Basic |
There was a problem hiding this comment.
What's the reason for public import Mathlib.Data.Fintype.Option but import Mathlib.Logic.Equiv.Fin.Basic?
There was a problem hiding this comment.
because only finSuccEquiv (which is in Logic.Equiv.Fin.Basic) in the proof uses it
There was a problem hiding this comment.
Then, why not just public import Mathlib.Data.Finite.Defs and everything else is privately imported?
There was a problem hiding this comment.
Yeah, why not!
| public import Mathlib.Data.Fintype.Option | |
| import Mathlib.Logic.Equiv.Fin.Basic | |
| public import Mathlib.Data.Finite.Defs | |
| import Mathlib.Data.Fintype.Option | |
| import Mathlib.Logic.Equiv.Fin.Basic |
There was a problem hiding this comment.
Will modify the imports - but maybe it is a good idea to improve the #min_imports command to take into account access modifiers as well?
There was a problem hiding this comment.
I think some people are trying to work on making this better (also trying to make shake work properly). We're still trying to adjust to the new module system (even though it's been a few months now).
|
|
||
| public section | ||
|
|
||
| /-- The `Option` type on a type is finite if and only if the underlying type is finite. -/ |
There was a problem hiding this comment.
How about just
| /-- The `Option` type on a type is finite if and only if the underlying type is finite. -/ | |
| /-- `Option α` is finite if and only if the underlying type `α` is finite. -/ |
| import Mathlib.Logic.Equiv.Fin.Basic | ||
|
|
||
| /-! | ||
| # Finiteness conditions for `Option` types |
There was a problem hiding this comment.
| # Finiteness conditions for `Option` types | |
| # Finiteness conditions for `Option` types | |
| This file shows that `Option α` is finite iff `α` is. |
Option type is finite if and only if the type is finite.
This is an intermediate result to proving that if the
GroupWithZerois (in)finite then theUnitsare (in)finite.