CStarMatrix ↔ Matrix transport bridge for the operator-convexity ladder #
Matrix n n ℂ is not a CStarAlgebra at its default instances: the C⋆-algebra structure
(norm, topology, spectral order) lives on the type synonym
CStarMatrix m n A := Matrix m n A (CStarMatrix.instCStarAlgebra). Consequently the
C⋆-generic continuous-functional-calculus order machinery — CFC.log (operator monotone),
CFC.log_le_log, the rpow order lemmas, the rpow→log limit — is stated for [CStarAlgebra A]
and does not fire directly on the bare Matrix type used by
Matrix.OperatorConvexOn / Matrix.OperatorConcaveOn and the L.1/L.2 rungs.
This file builds the transport across the star-algebra equivalence
e := CStarMatrix.ofMatrixStarAlgEquiv : Matrix n n ℂ ≃⋆ₐ[ℂ] CStarMatrix n n ℂ
(which is the identity Equiv.refl on carriers, hence continuous), and uses it to pull the
C⋆-generic facts back onto Matrix.
Main results #
Matrix.cstar_cfc(B.1, the crux): CFC naturality across the synonym equiv,e (cfc f A) = cfc f (e A). Note the twocfcs come from different functional-calculus instances —Matrix.IsHermitian.instContinuousFunctionalCalculuson the left and the C⋆-algebra CFC on the right — and they agree by CFC uniqueness, packaged byStarAlgHomClass.map_cfc.Matrix.cstar_le_iff(B.2): the Löwner order onMatrixand the spectral order onCStarMatrixagree acrosse,e A ≤ e B ↔ A ≤ B. Proved viaStarRingEquivClass.instOrderIsoClass.map_le_map_iff(a star-ring equivalence is an order isomorphism betweenStarOrderedRings).Matrix.cstar_isStrictlyPositive:A.PosDef → IsStrictlyPositive (e A), the positivity hypothesis transport feeding the order lemmas.Matrix.matrix_log_le_log(B.3, log): operator monotonicity oflogon positive-definite matrices in the Löwner order,A ≤ B → cfc Real.log A ≤ cfc Real.log B, transported fromCFC.log_le_log. This is the genuine ladder enabler: the route-2 path to operator concavity oflog(specs/operator-convexity-plan.mdL.2) consumesCFC.log_monotoneOnandtendsto_cfc_rpow_sub_one_logon the C⋆ side, and this bridge is what makes the conclusion expressible on theMatrixcarrier of theOperatorConcaveOnpredicate.
Honest scope (rpow wall) SUPERSEDED 2026-08-22 (MG-3): the rpow rung is LANDED #
The rpow wall recorded here previously is dissolved. The MG-3 probe
(specs/mathlib-gaps-plan.md; scratch_mg3_probe.lean, five rounds) established that the
obstruction was exactly two generic instances failing to fire through the discrimination
tree — the ℝ-CFC over IsSelfAdjoint (the shim below, already present) and
NonnegSpectrumClass ℝ (instCStarMatrixNonnegSpectrumClass, the second shim, added with
B.4) — and that with both registered the entire upstream monotonicity tier fires on
CStarMatrix n n ℂ, including CFC.monotone_nnrpow (operator monotonicity of x ^ p,
p ∈ [0,1], which landed upstream in …/Rpow/Order.lean after the wall note was written).
B.4 transports it to the Matrix carrier: matrix_nnrpow_le_nnrpow (the L.3 rung) and
matrix_sqrt_le_sqrt, via the ℝ≥0-cfcₙ naturality cstar_cfcₙ_nnreal (the ℝ≥0
companion of B.1). The remaining C⋆-side absence for the DPI ladder is operator CONVEXITY
(Lieb) — upstream's own TODO; see specs/operator-convexity-plan.md and MATHLIB-GAPS.md.
Category: 1-Mathlib (CSD-free). Natural Mathlib namespace Matrix.
The ℝ-CFC instance shim on CStarMatrix n n ℂ #
The generic IsSelfAdjoint.instContinuousFunctionalCalculus does not fire on CStarMatrix n n ℂ
through the discrimination tree (its predicate-output IsSelfAdjoint is not matched), so we
register it explicitly as a local instance. It elaborates because CStarMatrix n n ℂ is a unital
CStarAlgebra (CStarMatrix.instCStarAlgebra) with the ℂ-CFC over IsStarNormal.
The real continuous functional calculus on CStarMatrix n n ℂ over self-adjoint elements,
registered explicitly (the generic instance does not fire on CStarMatrix via the
discrimination tree).
Continuity of the synonym equivalence #
The star-algebra equivalence Matrix n n ℂ ≃⋆ₐ[ℂ] CStarMatrix n n ℂ is continuous: on
carriers it is the identity (Equiv.refl), and CStarMatrix.ofMatrixL is a continuous linear
equivalence with continuous_id.
B.2 — order transport (Löwner ↔ spectral order across e) #
B.2. The Löwner order on Matrix n n ℂ ((B - A).PosSemidef) and the spectral order on
CStarMatrix n n ℂ agree across the star-algebra equivalence e:
e A ≤ e B ↔ A ≤ B. Both Matrix and CStarMatrix are StarOrderedRings, and a star-ring
equivalence is an OrderIso between StarOrderedRings (StarRingEquivClass.instOrderIsoClass),
so this is map_le_map_iff.
B.1 — CFC transport (the crux) #
B.1 (the crux). The continuous functional calculus commutes with the synonym equivalence
e: for Hermitian A and f continuous on spectrum ℝ A,
e (cfc f A) = cfc f (e A).
The left cfc is taken in Matrix's own functional-calculus instance
(Matrix.IsHermitian.instContinuousFunctionalCalculus, the spectral triple product); the right
cfc is taken in the C⋆-algebra instance on CStarMatrix. These are a priori different
functional-calculus instances; they agree because e is a continuous star-algebra homomorphism
and the CFC is unique (StarAlgHomClass.map_cfc, whose proof routes through
ContinuousMap.UniqueHom). So no separate uniqueness argument is needed at this level.
Positivity transport #
A positive-definite matrix maps to a strictly-positive element of CStarMatrix n n ℂ.
IsStrictlyPositive a := 0 ≤ a ∧ IsUnit a: nonnegativity transports via cstar_le_iff (B.2) and
map_zero e, and invertibility transports because e is a ring equivalence.
Real.log is continuous on the (positive) spectrum of a positive-definite matrix.
B.3 (log). Operator monotonicity of log on positive-definite matrices, in the
Löwner order: A ≤ B → cfc Real.log A ≤ cfc Real.log B (for positive-definite A, B).
Transported from CFC.log_le_log on CStarMatrix n n ℂ: the order transports (B.2), strict
positivity transports (cstar_isStrictlyPositive), and CFC.log (e A) = e (cfc Real.log A) by
B.1 (CFC.log a := cfc Real.log a definitionally). The statement is in terms of cfc Real.log
on the Matrix side because CFC.log itself requires NormedRing (Matrix n n ℂ), which the
default Matrix instances do not provide — this is exactly the carrier mismatch the bridge
resolves.
The second non-firing generic instance found by the MG-3 probe: NonnegSpectrumClass ℝ
on CStarMatrix n n ℂ, registered explicitly from its own generic provider
(CStarAlgebra.instNonnegSpectrumClass — provable as a term, not found by synthesis through
the repeated-index discrimination key). With this and the ℝ-CFC shim above, the upstream
rpow/sqrt/log order tier fires on CStarMatrix.
B.4a. ℝ≥0-cfcₙ naturality across the synonym equivalence, on nonnegative
matrices: e (cfcₙ f A) = cfcₙ f (e A). The ℝ≥0 companion of B.1, by
NonUnitalStarAlgHomClass.map_cfcₙ (the two cfcₙs come from the Matrix-side and
CStarMatrix-side ℝ≥0 functional calculi respectively).
B.4 (rpow, the L.3 rung). Operator monotonicity of the nonnegative power
A ↦ A ^ p (p : ℝ≥0, p ≤ 1) on positive-semidefinite matrices in the Löwner order —
CFC.monotone_nnrpow transported onto the Matrix carrier. The p = 0 exponent is junk-valued
(A ^ 0 = 0 by the cfcₙ zero convention) and handled separately; for p ≠ 0 the pointwise
function is zero-preserving and the naturality B.4a identifies the powers across e.
B.5 / B.6 — operator CONCAVITY transported (the L.2 / L.3a-interior rungs) #
Upstream proves operator concavity C⋆-generically (CFC.concaveOn_log, CFC.concaveOn_rpow);
the same transport that carries monotonicity carries concavity, so both rungs are corollaries
rather than builds. The convex combination is taken with real scalars coerced to ℂ, which
is what smul_transport normalises.
Real-scalar smul commutes with the Matrix ≃ CStarMatrix transport. The convex combinations
below are formed in ℂ, so this is the lemma that lets map_add/map_smul normalise them.
B.5. Operator concavity of log on positive-definite matrices, in Löwner order:
t·log A + (1−t)·log B ≤ log (t·A + (1−t)·B). Transported from CFC.concaveOn_log.
★★ L.2 — log is operator concave on (0, ∞), in the corpus's all-dimensions
OperatorConcaveOn predicate. The plan budgeted this as a multi-day build against a wall
("Matrix n n ℂ is not a CStarAlgebra"); the wall was a scope question and upstream has
since proved the C⋆-generic statement, so it is a transport.
★ L.3a interior — x ^ p is operator concave for p ∈ [0,1], on the bare Matrix
carrier in ^-notation and Löwner order. Transported from CFC.concaveOn_rpow; supersedes the
endpoints-only operatorConcaveOn_rpow_zero / _one.
B.7 — x log x, the L.4 rung, transported #
OperatorConvexCFC.convexOn_mul_log closes an upstream TODO C⋆-generically; this puts it on
the Matrix carrier alongside matrix_log_concave. ⚠️ It is an input to the Effros/Lieb
summit, not the summit: hDPI is untouched (specs/lieb-dpi-scoping.md).
Non-vacuity witness #
The bridge is non-vacuous: it applies to a concrete non-commuting positive-definite pair.
A = diagonal !![2, 1]-style witnesses are positive definite; the transport lemmas relate the
genuine carriers (the Matrix Löwner order and the CStarMatrix spectral order), not a
degenerate or mismatched structure.