|
| 1 | +/- |
| 2 | +# Busch/ClassicalBridge.lean — Bridge from Effects to Classical Frame Functions |
| 3 | +Every classical projection `P : Projection H` yields an effect |
| 4 | +`Effect.ofClassicalProjection P : Effect H`. This file establishes the |
| 5 | +translation: |
| 6 | +* classical `Projection.zero ↦ (0 : Effect H)` |
| 7 | +* classical `Projection.one ↦ (1 : Effect H)` |
| 8 | +* classical orthogonality `P ⟂ Q ↦ Busch summability` |
| 9 | +* classical sum `Projection.add P Q h ↦ Busch `orthoSum`` |
| 10 | +Consequence: every Busch `GenFrameFunction H` restricts to a classical |
| 11 | +`FrameFunction H`. |
| 12 | +This is a compatibility bridge between the effects formulation and the |
| 13 | +projection language. |
| 14 | +-/ |
| 15 | +import Busch.ProjectionRestriction |
| 16 | +import Classical.Projection |
| 17 | +import Classical.FrameFunction |
| 18 | + |
| 19 | +noncomputable section |
| 20 | + |
| 21 | +namespace Busch |
| 22 | + |
| 23 | +variable {H : Type*} [NormedAddCommGroup H] [InnerProductSpace ℂ H] [CompleteSpace H] |
| 24 | + [FiniteDimensional ℂ H] |
| 25 | + |
| 26 | +/-! ### Lifting classical projections to effects -/ |
| 27 | +namespace Effect |
| 28 | + |
| 29 | +/-- Every classical `Projection H` is an effect. -/ |
| 30 | +def ofClassicalProjection (P : Projection H) : Effect H where |
| 31 | + op := P.1 |
| 32 | + isSelfAdjoint := Projection.selfAdjointOp P |
| 33 | + nonneg x := by |
| 34 | + have hIdem : P.1 * P.1 = P.1 := P.2.1 |
| 35 | + have hSA : ∀ a b : H, inner (𝕜 := ℂ) (P.1 a) b = inner (𝕜 := ℂ) a (P.1 b) := |
| 36 | + Projection.selfAdjointOp P |
| 37 | + have hdiag := inner_self_selfAdjoint_idempotent P.1 hSA hIdem x |
| 38 | + rw [hdiag] |
| 39 | + exact @inner_self_nonneg ℂ H _ _ _ (P.1 x) |
| 40 | + le_one x := by |
| 41 | + have hIdem : P.1 * P.1 = P.1 := P.2.1 |
| 42 | + have hSA : ∀ a b : H, inner (𝕜 := ℂ) (P.1 a) b = inner (𝕜 := ℂ) a (P.1 b) := |
| 43 | + Projection.selfAdjointOp P |
| 44 | + exact re_inner_le_self_of_selfAdjoint_idempotent P.1 hSA hIdem x |
| 45 | +omit [FiniteDimensional ℂ H] in |
| 46 | +@[simp] lemma ofClassicalProjection_op (P : Projection H) : |
| 47 | + (ofClassicalProjection P).op = P.1 := rfl |
| 48 | + |
| 49 | +omit [FiniteDimensional ℂ H] in |
| 50 | +/-- The lifted projection is a projection-effect (idempotent). -/ |
| 51 | +lemma ofClassicalProjection_isProjection (P : Projection H) : |
| 52 | + IsProjection (ofClassicalProjection P) := by |
| 53 | + show (ofClassicalProjection P).op * (ofClassicalProjection P).op = (ofClassicalProjection P).op |
| 54 | + simp only [ofClassicalProjection_op] |
| 55 | + exact P.2.1 |
| 56 | + |
| 57 | +end Effect |
| 58 | + |
| 59 | +/-! ### Wrapping as `ProjectionEffect` -/ |
| 60 | +namespace ProjectionEffect |
| 61 | + |
| 62 | +/-- Every classical `Projection H` is a Busch projection-effect. -/ |
| 63 | +def ofClassicalProjection (P : Projection H) : ProjectionEffect H where |
| 64 | + effect := Effect.ofClassicalProjection P |
| 65 | + is_projection := Effect.ofClassicalProjection_isProjection P |
| 66 | + |
| 67 | +omit [FiniteDimensional ℂ H] in |
| 68 | +@[simp] lemma ofClassicalProjection_effect (P : Projection H) : |
| 69 | + (ofClassicalProjection P).effect = Effect.ofClassicalProjection P := rfl |
| 70 | + |
| 71 | +omit [FiniteDimensional ℂ H] in |
| 72 | +@[simp] lemma ofClassicalProjection_op (P : Projection H) : |
| 73 | + (ofClassicalProjection P).effect.op = P.1 := rfl |
| 74 | + |
| 75 | +omit [FiniteDimensional ℂ H] in |
| 76 | +/-- Classical orthogonality of projections translates to Busch projection-effect |
| 77 | +orthogonality. -/ |
| 78 | +lemma orthogonal_of_classical {P Q : Projection H} (h : Projection.orthogonal P Q) : |
| 79 | + (ofClassicalProjection P).orthogonal (ofClassicalProjection Q) := by |
| 80 | + show (Effect.ofClassicalProjection P).op * (Effect.ofClassicalProjection Q).op = 0 |
| 81 | + simp only [Effect.ofClassicalProjection_op] |
| 82 | + exact h |
| 83 | + |
| 84 | +end ProjectionEffect |
| 85 | + |
| 86 | +/-! ### Summability and orthogonal sums from classical data -/ |
| 87 | +namespace Effect |
| 88 | + |
| 89 | +omit [FiniteDimensional ℂ H] in |
| 90 | +/-- Classical orthogonality of projections implies Busch summability of the |
| 91 | +lifted effects. -/ |
| 92 | +lemma summable_ofClassical {P Q : Projection H} (h : Projection.orthogonal P Q) : |
| 93 | + Summable (ofClassicalProjection P) (ofClassicalProjection Q) := |
| 94 | + ProjectionEffect.summable_of_orthogonal |
| 95 | + (ProjectionEffect.ofClassicalProjection P) |
| 96 | + (ProjectionEffect.ofClassicalProjection Q) |
| 97 | + (ProjectionEffect.orthogonal_of_classical h) |
| 98 | + |
| 99 | +end Effect |
| 100 | + |
| 101 | +/-! ### Lifting the classical zero/one/add -/ |
| 102 | +namespace Effect |
| 103 | + |
| 104 | +omit [FiniteDimensional ℂ H] in |
| 105 | +/-- The classical zero projection lifts to the zero effect. -/ |
| 106 | +@[simp] lemma ofClassicalProjection_zero : |
| 107 | + ofClassicalProjection (Projection.zero : Projection H) = (0 : Effect H) := by |
| 108 | + apply Effect.ext |
| 109 | + intro x |
| 110 | + show (Projection.zero : Projection H).1 x = (0 : Effect H).op x |
| 111 | + show (0 : H →L[ℂ] H) x = (0 : Effect H).op x |
| 112 | + simp |
| 113 | + |
| 114 | +omit [FiniteDimensional ℂ H] in |
| 115 | +/-- The classical identity projection lifts to the identity effect. -/ |
| 116 | +@[simp] lemma ofClassicalProjection_one : |
| 117 | + ofClassicalProjection (Projection.one : Projection H) = (1 : Effect H) := by |
| 118 | + apply Effect.ext |
| 119 | + intro x |
| 120 | + show (Projection.one : Projection H).1 x = (1 : Effect H).op x |
| 121 | + show (1 : H →L[ℂ] H) x = (1 : Effect H).op x |
| 122 | + simp |
| 123 | + |
| 124 | +omit [FiniteDimensional ℂ H] in |
| 125 | +/-- The classical sum of orthogonal projections lifts to the Busch orthogonal sum. -/ |
| 126 | +lemma ofClassicalProjection_add {P Q : Projection H} (h : Projection.orthogonal P Q) : |
| 127 | + ofClassicalProjection (Projection.add P Q h) = |
| 128 | + orthoSum (ofClassicalProjection P) (ofClassicalProjection Q) |
| 129 | + (summable_ofClassical h) := by |
| 130 | + apply Effect.ext |
| 131 | + intro x |
| 132 | + show (Projection.add P Q h).1 x |
| 133 | + = (ofClassicalProjection P).op x + (ofClassicalProjection Q).op x |
| 134 | + show (P.1 + Q.1) x = P.1 x + Q.1 x |
| 135 | + rfl |
| 136 | + |
| 137 | +end Effect |
| 138 | + |
| 139 | +/-! ### Classical frame function from a Busch generalized frame function -/ |
| 140 | +namespace GenFrameFunction |
| 141 | + |
| 142 | +/-- **Restriction theorem**: every Busch generalized frame function restricts to |
| 143 | +a classical frame function on projections. -/ |
| 144 | +def toFrameFunction (f : GenFrameFunction H) : FrameFunction H where |
| 145 | + μ P := f.μ (Effect.ofClassicalProjection P) |
| 146 | + nonneg P := f.nonneg _ |
| 147 | + additive P Q h := by |
| 148 | + rw [Effect.ofClassicalProjection_add h] |
| 149 | + exact f.additive _ _ (Effect.summable_ofClassical h) |
| 150 | + normalized := by |
| 151 | + show f.μ (Effect.ofClassicalProjection Projection.one) = 1 |
| 152 | + rw [Effect.ofClassicalProjection_one] |
| 153 | + exact f.normalized |
| 154 | +@[simp] lemma toFrameFunction_apply (f : GenFrameFunction H) (P : Projection H) : |
| 155 | + (f.toFrameFunction).μ P = f.μ (Effect.ofClassicalProjection P) := rfl |
| 156 | + |
| 157 | +end GenFrameFunction |
| 158 | + |
| 159 | +end Busch |
0 commit comments