Skip to content

ForMathlib: upstream candidates tracker #160

Description

@cameronfreer

Tracker for declarations kept under Graphon/ForMathlib/: statements that are signature-free, depend only on Mathlib, and are plausible upstream contributions. Nothing here is being upstreamed yet. This issue records candidacy and the promotion bar; the actual PR to Mathlib is a separate decision, taken per declaration and not before the bar below is met.

Promotion bar

A candidate is marked Hardened only once it has been consumed independently by at least two real call sites — for the current batch, I(1) and a later rank transition. Two independent consumers are what distinguish a tested orientation of the API from a speculative one; a single consumer tells us only that the statement was convenient for the theorem it was extracted from. Until then a candidate stays Provisional and its signature may change freely.

Current candidates

From #159 (Graphon/ForMathlib/RelativeFactorCoupling.lean):

  • ProbabilityTheory.map_condDistrib_idProvisional. Fibre concentration: (condDistrib id q μ).map q =ᵐ[μ.map q] Kernel.id. Belongs beside condDistrib_comp and condDistrib_self in Mathlib/Probability/Kernel/CondDistrib.lean; it is the missing "conditioning on q pins down q" statement, and both supporting lemmas (condDistrib_id_apply_fibre, ae_ae_eq_condDistrib_id) are immediate from it.
    • Consumers so far: the relative joining in the same file. Needs one genuinely independent consumer.
  • ProbabilityTheory.relativeFactorCoupling and its API — Provisional. The relatively independent joining over a common factor, with both marginals, the common-factor identity, and condIndepFun_fst_snd_relativeFactorCoupling. Mathlib has the disintegration and conditional-independence machinery but not this canonical joining.

Not candidates

Recorded to keep the boundary explicit — these either have one consumer or already compose cleanly from Mathlib primitives, and abstracting them now would cost more than it saves:

Related: #107, #140, #159.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions