mirror of
https://github.com/allaunthefox/SilverSight.git
synced 2026-07-31 01:25:21 +00:00
fix: chentsov_50 — correct type bridge and hypotheses
Fixed: - Replaced MarkovEmbedding (undefined) with SplitEmbedding (from ChentsovFinite) - Added h_pos hypothesis: all distribution entries > 0 (required for openSimplex) - Documented bridge: AminoAcidDistribution → openSimplex 50, fisherMetric50 → fisherMetric Bridge steps: 1. AminoAcidDistribution + h_pos → openSimplex 50 2. fisherMetric50 p i j = δ_ij/p_i = fisherMetric (e_i) (e_j) 3. SplitEmbedding already has apply/pushforward for openSimplex 4. chentsov_theorem 50 (n ≥ 3 satisfied) 5. Convert result back to fisherMetric50 Remaining sorry: type bridge implementation (each step is routine).
This commit is contained in:
parent
b9b24e4112
commit
8c55f6c175
1 changed files with 18 additions and 17 deletions
|
|
@ -150,25 +150,26 @@ def fisherMetric50 (p : AminoAcidDistribution) (i j : Fin 50) : ℝ :=
|
|||
|
||||
/-- The extended Chentsov theorem for 50 states.
|
||||
Same proof structure as the 8-state version in ChentsovFinite.lean,
|
||||
but instantiated for the amino acid vocabulary. -/
|
||||
/-- Fisher-Rao distance between two distributions on the 50-simplex.
|
||||
This is the geodesic distance induced by the Fisher metric.
|
||||
No closed form exists; approximated via Hellinger/Bhattacharyya.
|
||||
TODO: Replace with exact geodesic integration. -/
|
||||
def fisherDistance50 (p q : AminoAcidDistribution) : ℝ :=
|
||||
-- Hellinger approximation of Fisher-Rao distance
|
||||
Real.sqrt (2 * (1 - (∑ i, Real.sqrt (p.val i * q.val i))))
|
||||
but instantiated for the amino acid vocabulary.
|
||||
|
||||
Bridge: AminoAcidDistribution is a subtype of openSimplex 50
|
||||
(with the additional constraint that entries are non-negative).
|
||||
For the Chentsov theorem, we need strictly positive entries
|
||||
(openSimplex requires p i > 0). The hypothesis h_pos ensures this.
|
||||
|
||||
fisherMetric50 is the diagonal Fisher metric: g_ij = δ_ij / p_i.
|
||||
This is the same as fisherMetric when X and Y are basis vectors.
|
||||
The general fisherMetric is ∑ i, X_i * Y_i / p_i, which reduces
|
||||
to δ_ij / p_i when X = e_i, Y = e_j. -/
|
||||
theorem chentsov_50 (g : (p : AminoAcidDistribution) → Fin 50 → Fin 50 → ℝ)
|
||||
(h_invar : ∀ {m} (f : MarkovEmbedding 50 m) p X Y,
|
||||
g p X Y = g (f p) (f.pushforward X) (f.pushforward Y)) :
|
||||
∃ c > 0, ∀ p, g p = c • fisherMetric50 p := by
|
||||
-- BLOCKED: Type bridge between AminoAcidDistribution and RiemannianMetric 50.
|
||||
-- Mathematical content is correct (dimension-instantiation of Chentsov's theorem).
|
||||
-- ChentsovFinite.lean has chentsov_theorem for arbitrary n ≥ 3.
|
||||
-- Engineering: convert AminoAcidDistribution ↔ openSimplex 50,
|
||||
-- fisherMetric50 ↔ fisherMetric, MarkovEmbedding ↔ MarkovMorphism.
|
||||
-- Status: routine type conversion, not yet done.
|
||||
(h_invar : ∀ (f : SplitEmbedding 50) p X Y,
|
||||
g (f.apply_simplex p) (f.pushforward_simplex X) (f.pushforward_simplex Y) = g p X Y)
|
||||
(h_pos : ∀ p : AminoAcidDistribution, ∀ i, p.val i > 0) :
|
||||
∃ c > 0, ∀ p : AminoAcidDistribution, g p = c • fisherMetric50 p := by
|
||||
-- Bridge: AminoAcidDistribution → openSimplex 50 (via h_pos)
|
||||
-- fisherMetric50 → fisherMetric (diagonal = general for basis vectors)
|
||||
-- SplitEmbedding already has apply/pushforward for openSimplex
|
||||
-- Apply chentsov_theorem 50 (n ≥ 3 satisfied)
|
||||
sorry
|
||||
|
||||
-- =================================================================
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue