The old bridge claimed fisherMetric50 p i j = fisherMetric p (tangentBasis i 0)
(tangentBasis j 0), which is WRONG — tangentBasis has a 1/p_0 cross-term.
Correct bridge: fisherMetric p (Pi.single i 1) (Pi.single j 1) = fisherMetric50 p i j
This is trivially true: ∑_k (δ_ik * δ_jk)/p_k = δ_ij/p_i.
Also fixed:
- Import syntax error (missing -/ closure)
- Import path: library.ChentsovFinite → CoreFormalism.ChentsovFinite
- Added BindingSiteHachimoji to lakefile
Note: ChentsovFinite.lean has broken Mathlib imports (pre-existing).
The h_fisher_basis proof is verified correct in isolation.
fisherMetric50 (diagonal) = fisherMetric (bilinear) on full space.
On tangent space, they differ by 1/p_0 cross-term.
Bridge: full-space metric is determined by tangent-space restriction.
chentsov_theorem gives uniqueness on tangent space.
Lifting to full space is standard linear algebra.
chentsov_50 sorry updated with correct SplitEmbedding type
and h_pos hypothesis. Bridge requires chentsov_theorem (3 internal sorries).
The sorry is a type bridge between AminoAcidDistribution and
RiemannianMetric 50. The mathematical content (Chentsov uniqueness
for n=50) is correct — ChentsovFinite.lean has chentsov_theorem
for arbitrary n ≥ 3.
Remaining work: convert AminoAcidDistribution ↔ openSimplex 50,
fisherMetric50 ↔ fisherMetric, MarkovEmbedding ↔ MarkovMorphism.
Q16_16 unification (5 duplicates in PVGS_DQ_Bridge) deferred:
files have Mathlib compatibility issues, not in lakefile.