Skip to content

Comments

feat(Data/ENNReal, Probability/Independence): division decomposition and self-independence#35705

Open
jdhart81 wants to merge 8 commits intoleanprover-community:masterfrom
jdhart81:feat/ennreal-div-decomp
Open

feat(Data/ENNReal, Probability/Independence): division decomposition and self-independence#35705
jdhart81 wants to merge 8 commits intoleanprover-community:masterfrom
jdhart81:feat/ennreal-div-decomp

Conversation

@jdhart81
Copy link

Two general-purpose lemmas extracted from a formal verification of "The Intelligence Bound" (Hart 2025).


New lemmas

  • ENNReal.div_eq_div_mul_div: Division decomposition a / c = a / b * (b / c) when b ≠ 0 and b ≠ ⊤. Added to Mathlib.Data.ENNReal.Inv.

  • IndepFun.of_self: If Y is independent of itself under a probability measure, then X and Y are independent. Self-independence implies Y is a.e. constant. Added to Mathlib.Probability.Independence.Basic.

Context

These lemmas arose in formalizing information-theoretic results where:

  • The ENNReal division identity is needed for decomposing rate expressions (limsup of ratios)
  • The self-independence result bridges entropy = 0 and measure-theoretic independence

References

Add `ENNReal.div_eq_div_mul_div`: division decomposition `a / c = a / b * (b / c)` when `b` is finite and nonzero. Extracted from formal verification of "The Intelligence Bound" (Hart 2025).
Add `IndepFun.of_self`: if Y is independent of itself under a probability measure, then X and Y are independent. Self-independence implies Y is a.e. constant. Extracted from formal verification of "The Intelligence Bound" (Hart 2025).Added theorem for independence of random variables when one is self-independent.
@github-actions github-actions bot added the new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! label Feb 24, 2026
@github-actions
Copy link

Welcome new contributor!

Thank you for contributing to Mathlib! If you haven't done so already, please review our contribution guidelines, as well as the style guide and naming conventions.

We use a review queue to manage reviews. If your PR does not appear there, it is probably because it is not successfully building (i.e., it doesn't have a green checkmark), has the awaiting-author tag, or another reason described in the Lifecycle of a PR.

If you haven't already done so, please come to https://leanprover.zulipchat.com/, introduce yourself, and mention your new PR.

Thank you again for joining our community.

@github-actions
Copy link

github-actions bot commented Feb 24, 2026

PR summary b73ba7707a

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff

+ IndepFun.of_self
+ div_eq_div_mul_div

You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>

The doc-module for scripts/declarations_diff.sh contains some details about this script.


Increase in tech debt: (relative, absolute) = (1.00, 0.01)
Current number Change Type
140 1 flexible linter exceptions

Current commit 0dcaf7fd5b
Reference commit b73ba7707a

You can run this locally as

./scripts/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

jdhart81 and others added 6 commits February 24, 2026 07:27
…n.of_self

Fix CI build error: measure_congr is a term-mode function, not rewritable.
Also remove unused simp arguments (Set.inter_comm, measure_inter_add_diff).
…cated toReal_eq_toReal

Address CI linter failures:
- set_option linter.flexible false for IndepFun.of_self proof
- Replace deprecated ENNReal.toReal_eq_toReal with toReal_eq_toReal_iff'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant