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_id — Provisional. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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