-
Notifications
You must be signed in to change notification settings - Fork 298
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(dynamics/periodic_pts): Orbit under periodic function #12976
Conversation
vihdzp
commented
Mar 27, 2022
•
edited by github-actions
bot
edited by github-actions
bot
- depends on: [Merged by Bors] - feat(dynamics/periodic_pts): Lemma about periodic point from periodic point of iterate #12940
This PR/issue depends on: |
src/dynamics/periodic_pts.lean
Outdated
@@ -368,4 +412,62 @@ lemma minimal_period_iterate_eq_div_gcd' (h : x ∈ periodic_pts f) : | |||
minimal_period_iterate_eq_div_gcd_aux $ | |||
gcd_pos_of_pos_left n (minimal_period_pos_iff_mem_periodic_pts.mpr h) | |||
|
|||
/-- The orbit of a periodic point `x` of `f` is the cycle `[x, f x, f (f x), ...]`. Its length is | |||
the minimal period of `x`. -/ | |||
def orbit (f : α → α) (x : α) : cycle α := |
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 have two concerns about this definition:
- Doesn't this mean that the orbit of a non-periodic point is empty? I don't think this is usually what one means by
orbit
. - Why is this of type
cycle α
and not justset α
?
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, as this is the only reasonable output given the output type.
-
Orbits have a very nice cyclic structure and I believe that should be reflected in the output type. After all, it's very easy to retrieve a list or a set from the definition I'm using, while doing the opposite is quite harder.
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.
Another reason this definition is nice is that it plays very well with cycle.pairwise
. One can deduce properties about the entire orbit just by proving them for x
and f x
.
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.
One can deduce properties about the entire orbit just by proving them for
x
andf x
.
On the other hand, using cycle
means we can only do this when the orbit is finite which is a big restriction.
I agree that it is useful to be able to talk about orbits of functions so this is a sensible definition to make (albeit probably in a different file). Indeed this should probably be used to generalise https://leanprover-community.github.io/mathlib_docs/group_theory/group_action/basic.html#mul_action.orbit
I also agree that the induction principle you mention (sufficient to prove for x
and f x
) is worth having but I'm afraid I'm still not convinced that we should use cycle
to obtain this.
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.
You're right that the induction principle I mentioned doesn't really need this construction. That said, I still believe that this particular construction is useful, or at the very least of mathematical interest. One particular example I can recall is the study of finite symmetric groups.
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.
In fact, I've started work on a PR to add a few lemmas about these orbit
s to group_theory.perm.cycles
. I think it should be much clearer why this is the correct definition for that specific use case.
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 agree with @ocfnash that this shouldn't be called orbit
, as orbit f x
must mean the set of iterated images of x
under f
.
Perhaps periodic_orbit
?
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.
Sure, periodic_orbit
it is.
Co-authored-by: Oliver Nash <github@olivernash.org>
Co-authored-by: Oliver Nash <github@olivernash.org>
Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>
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 still have reservations about using cycle
instead of set
but I seem to be alone in this opinion so let's try this out and see how we go.
Please apply my suggestions and then feel free to merge.
bors d+
✌️ vihdzp can now approve this pull request. To approve and merge a pull request, simply reply with |
bors r+ |
Pull request successfully merged into master. Build succeeded: |