@@ -920,13 +920,11 @@ theorem image_iterate_stabilises_lt_card [DecidableEq α] {f : α → α} {s : F
920920 ∃ n < #s, ∀ m, n ≤ m → s.image f^[m] = s.image f^[n] := by
921921 let g (i : ℕ) : Finset α := s.image f^[i]
922922 have : g 0 = s := by simp [g]
923- have (i : ℕ) : #(g i) ≠ 0 := by simp [g, hs₀.ne_empty]
923+ have (i : ℕ) : 0 < #(g i) := ( hs₀.image _).card_pos
924924 let G (i : ℕ) : ℕ := #(g i) - 1
925- have hg (i : ℕ) : g (i + 1 ) ⊆ g i := by
926- simp only [g]
927- rw [Function.iterate_succ, ← image_image]
928- exact image_subset_image hs.finsetImage_subset
929- replace hg : Antitone g := antitone_nat_of_succ_le hg
925+ have hg : Antitone g := antitone_nat_of_succ_le <| fun i ↦ by
926+ simp_rw [le_iff_subset, g, Function.iterate_succ, ← image_image]
927+ grw [hs.finsetImage_subset]
930928 have G_eq (i j : ℕ) : G i = G j ↔ g i = g j := by
931929 wlog hij : j ≤ i generalizing i j
932930 · grind
@@ -936,7 +934,7 @@ theorem image_iterate_stabilises_lt_card [DecidableEq α] {f : α → α} {s : F
936934 simp only [G_eq, g, Function.iterate_succ', ← image_image]
937935 grind
938936 obtain ⟨n, hn, hn'⟩ := Nat.stabilises_of_antitone hG hG₁
939- exact ⟨n, by grind, by grind ⟩
937+ exact ⟨n, by grind⟩
940938
941939/--
942940Given a function `f` which sends the finite set `s` to itself, the sequence of images of `s` under
0 commit comments