Consecutive differences of sets #
This file defines the way to make a sequence of elements into a sequence of disjoint elements with the same partial sups.
For a sequence f : ℕ → α, this new sequence will be f 0, f 1 \ f 0, f 2 \ (f 0 ⊔ f 1).
It is actually unique, as disjointed_unique shows.
Main declarations #
disjointed f: The sequencef 0,f 1 \ f 0,f 2 \ (f 0 ⊔ f 1), ....partialSups_disjointed:disjointed fhas the same partial sups asf.disjoint_disjointed: The elements ofdisjointed fare pairwise disjoint.disjointed_unique:disjointed fis the only pairwise disjoint sequence having the same partial sups asf.iSup_disjointed:disjointed fhas the same supremum asf. Limiting case ofpartialSups_disjointed.
We also provide set notation variants of some lemmas.
TODO #
Find a useful statement of disjointedRec_succ.
One could generalize disjointed to any locally finite bot preorder domain, in place of ℕ.
Related to the TODO in the module docstring of Mathlib.Order.PartialSups.
If f : ℕ → α is a sequence of elements, then disjointed f is the sequence formed by
subtracting each element from the nexts. This is the unique disjoint sequence whose partial sups
are the same as the original sequence.
Equations
- disjointed f 0 = f 0
- disjointed f n.succ = f (n + 1) \ (partialSups f) n
Instances For
An induction principle for disjointed. To define/prove something on disjointed f n, it's
enough to define/prove it for f n and being able to extend through diffs.
Equations
- disjointedRec hdiff = id
- disjointedRec hdiff = fun (h : p (f (n + 1))) => let_fun H := fun (k : ℕ) => Nat.recAux (hdiff h) (fun (k : ℕ) (ih : p (f (n + 1) \ (partialSups f) k)) => ⋯.mpr (⋯.mpr (hdiff ih))) k; H n
Instances For
disjointed f is the unique sequence that is pairwise disjoint and has the same partial sups
as f.