Supremum independence #
In this file, we define supremum independence of indexed sets. An indexed family f : ι → α is
sup-independent if, for all a, f a and the supremum of the rest are disjoint.
Main definitions #
Finset.SupIndep s f: a family of elementsfare supremum independent on the finite sets.sSupIndep s: a set of elements are supremum independent.iSupIndep f: a family of elements are supremum independent.
Main statements #
- In a distributive lattice, supremum independence is equivalent to pairwise disjointness:
- Otherwise, supremum independence is stronger than pairwise disjointness:
Implementation notes #
For the finite version, we avoid the "obvious" definition
∀ i ∈ s, Disjoint (f i) ((s.erase i).sup f) because erase would require decidable equality on
ι.
On lattices with a bottom element, via Finset.sup #
If both the index type and the lattice have decidable equality,
then the SupIndep predicate is decidable.
TODO: speedup the definition and drop the [DecidableEq ι] assumption
by iterating over the pairs (a, t) such that s = Finset.cons a t _
using something like List.eraseIdx
or by generating both f i and (s.erase i).sup f in one loop over s.
Yet another possible optimization is to precompute partial suprema of f
over the inits and tails of the list representing s,
store them in 2 Arrays,
then compute each sup in 1 operation.
Equations
- Finset.instDecidableSupIndepOfDecidableEq = decidable_of_iff (∀ i ∈ s, Disjoint (f i) ((s.erase i).sup f)) ⋯
Alias of Finset.SupIndep.pairwiseDisjoint.
Alias of the reverse direction of Finset.supIndep_iff_pairwiseDisjoint.
Bind operation for SupIndep.
Bind operation for SupIndep.
Bind operation for SupIndep.
On complete lattices via sSup #
Alias of sSupIndep_empty.
Alias of sSupIndep.mono.
If the elements of a set are independent, then any pair within that set is disjoint.
Alias of sSupIndep.pairwiseDisjoint.
If the elements of a set are independent, then any pair within that set is disjoint.
Alias of sSupIndep_singleton.
Alias of sSupIndep_pair.
Alias of sSupIndep.disjoint_sSup.
If the elements of a set are independent, then any element is disjoint from the sSup of some
subset of the rest.
An independent indexed family of elements in a complete lattice is one in which every element
is disjoint from the iSup of the rest.
Example: an indexed family of non-zero elements in a vector space is linearly independent iff the indexed family of subspaces they generate is independent in this sense.
Example: an indexed family of submodules of a module is independent in this sense if and only the natural map from the direct sum of the submodules to the module is injective.
Instances For
Alias of iSupIndep.
An independent indexed family of elements in a complete lattice is one in which every element
is disjoint from the iSup of the rest.
Example: an indexed family of non-zero elements in a vector space is linearly independent iff the indexed family of subspaces they generate is independent in this sense.
Example: an indexed family of submodules of a module is independent in this sense if and only the natural map from the direct sum of the submodules to the module is injective.
Equations
Instances For
Alias of sSupIndep_iff.
Alias of iSupIndep_def.
Alias of iSupIndep_empty.
Alias of iSupIndep_pempty.
If the elements of a set are independent, then any pair within that set is disjoint.
Alias of iSupIndep.pairwiseDisjoint.
If the elements of a set are independent, then any pair within that set is disjoint.
Alias of iSupIndep.mono.
Composing an independent indexed family with an injective function on the index results in another indepedendent indexed family.
Alias of iSupIndep.comp.
Composing an independent indexed family with an injective function on the index results in another indepedendent indexed family.
Alias of iSupIndep.comp'.
Alias of iSupIndep.sSupIndep_range.
Alias of iSupIndep_ne_bot.
Alias of iSupIndep.injOn.
Alias of iSupIndep.injective.
Alias of iSupIndep_pair.
Composing an independent indexed family with an order isomorphism on the elements results in another independent indexed family.
Alias of iSupIndep.map_orderIso.
Composing an independent indexed family with an order isomorphism on the elements results in another independent indexed family.
Alias of iSupIndep_map_orderIso_iff.
If the elements of a set are independent, then any element is disjoint from the iSup of some
subset of the rest.
Alias of iSupIndep.disjoint_biSup.
If the elements of a set are independent, then any element is disjoint from the iSup of some
subset of the rest.
Alias of iSupIndep.of_coe_Iic_comp.
Alias of iSupIndep_iff_supIndep.
Alias of the forward direction of iSupIndep_iff_supIndep.
Alias of the reverse direction of iSupIndep_iff_supIndep.
Alias of iSupIndep.supIndep'.
A variant of CompleteLattice.iSupIndep_iff_supIndep for Fintypes.
Alias of iSupIndep_iff_supIndep_univ.
A variant of CompleteLattice.iSupIndep_iff_supIndep for Fintypes.
Alias of the forward direction of iSupIndep_iff_supIndep_univ.
A variant of CompleteLattice.iSupIndep_iff_supIndep for Fintypes.
Alias of the reverse direction of iSupIndep_iff_supIndep_univ.
A variant of CompleteLattice.iSupIndep_iff_supIndep for Fintypes.
Alias of sSupIndep_iff_pairwiseDisjoint.
Alias of the reverse direction of sSupIndep_iff_pairwiseDisjoint.
Alias of iSupIndep_iff_pairwiseDisjoint.