"Bubble sort" induction #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
We implement the following induction principle tuple.bubble_sort_induction
on tuples with values in a linear order α.
Let f : fin n → α and let P be a predicate on fin n → α. Then we can show that
f ∘ sort f satisfies P if f satisfies P, and whenever some g : fin n → α
satisfies P and g i > g j for some i < j, then g ∘ swap i j also satisfies P.
We deduce it from a stronger variant tuple.bubble_sort_induction', which
requires the assumption only for g that are permutations of f.
The latter is proved by well-founded induction via well_founded.induction_bot'
with respect to the lexicographic ordering on the finite set of all permutations of f.
Bubble sort induction: Prove that the sorted version of f has some property P
if f satsifies P and P is preserved on permutations of f when swapping two
antitone values.
Bubble sort induction: Prove that the sorted version of f has some property P
if f satsifies P and P is preserved when swapping two antitone values.