You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(Order/Partition): IsRepFun predicate for Partition (#36993)
This PR adds **representative functions** for partitions: it defines `Partition.IsRepFun`, a predicate characterizing when a function maps each element to a representative in its partial equivalence class and is the identity on elements outside the support.
### Motivation
The main downstream uses are in graph theory (minors, simplification) and matroid theory. A partition describes a family of equivalent objects (for example, parallel classes of edges in a loopless graph, or connected components). A representative function chooses one distinguished element per part: for instance, which edge remains when simplifying parallel edges, or how to label a supervertex after contraction.
Taking constructions to depend on `IsRepFun` rather than fixing an arbitrary choice avoids consistency issues when relating different objects:
For example, you could arbitrarily choose the representation for each graph. One thing you might want to say is if `G ≤ H` then `G.simplification ≤ H.simplification`. However, depending on what that arbitrary choice for `G` and `H` are, this may not be true.
Choosing some linear ordering on the type and take the minimal/maximal element as the representative fixes the issue between graphs with same type. However,
1. There are graphs comes with some ordering and it can clash with the arbitrarily chosen ordering.
2. Similar to previous problem, if I have an injective homomorphism `f` between `G : Graph α β` and `H : Graph α' β'`, then I would want to say `f` (or its suitable restriction) is also an injective homomorphism between `G.simplification` and `H.simplification`. However, as they have different type and therefore different choice of representation, this is not true in general.
The best answer to this problem I have is to take repfun as an argument for simplification & minor and have a lemma that arbitrarily choose/extends a repfun of a partition (#36691).
Co-authored-by: Peter Nelson <apn.uni@gmail.com>
0 commit comments