Discovery.LinearDisentanglement.CollinearAmbiguity
Constructive non-identifiability witnesses for finite real simultaneous-congruence families when a selected two-coordinate diagonal-shift cloud is affine-collinear.
Definitions 14 core · 0 supporting This module defines the paper-independent objects used to deform a simultaneous congruence representation along an affine-collinear pair of diagonal shifts.
Two-coordinate deformations for collinear congruence families
This module defines the paper-independent objects used to deform a simultaneous congruence representation along an affine-collinear pair of diagonal shifts. The deformation first mixes the two selected rows and then rescales them so that a unit-diagonal normalization is retained.
A concrete certificate that the selected two-coordinate shift cloud is contained in the affine line u x + v y = c, with a nonzero normal vector.
Definition (Lean source)
For a -dimensional coordinate system, two selected coordinates, and three real numbers specifying a line normal and deformation magnitude, the elementary two-row shear is the identity matrix plus at position and at position . For distinct coordinates these are two off-diagonal entries; if the coordinates coincide, both increments land on the same diagonal entry.
For a d reference matrix, two selected coordinates, and a shear coefficient and magnitude, the first normalization denominator is .
For a d reference matrix, two selected coordinates, and a shear coefficient and magnitude, the second normalization denominator is .
For a d reference matrix, two selected coordinates, and a line normal and deformation magnitude, the pair row normalizer is the diagonal matrix that rescales the first selected row by the reciprocal of the first normalization denominator, the second selected row (when it differs from the first) by the reciprocal of the second, and leaves all other rows unchanged; a zero denominator has reciprocal zero by convention.
Definition (Lean source)
For a d reference matrix, two selected coordinates, and a line normal and deformation magnitude, the normalized two-coordinate deformation is the pair row normalizer multiplied by the elementary pair shear.
Definition (Lean source)
For a d reference diagonalizer, two selected coordinates, and a line normal and deformation magnitude, the deformed diagonalizer is the normalized two-coordinate deformation applied to the rows of the reference diagonalizer.
Definition (Lean source)
For a d matrix and two selected coordinates, pair-cycle admissibility holds exactly when the product of the and entries is not one; for distinct coordinates these are the two opposite off-diagonal entries of the selected pair.
For a d reference matrix, two selected coordinates, and a line normal, offset, and deformation magnitude, the common shift cross term is the line offset times the deformation magnitude, divided by both selected normalization denominators.
Definition (Lean source)
For a -dimensional coordinate system, two selected coordinates, and a real entry value, the symmetric selected off-diagonal matrix is the sum of the matrix with that value at position and the matrix with that value at position . For distinct coordinates it has the value in both off-diagonal positions and zero elsewhere; if the coordinates coincide, it has twice the value on that diagonal entry.
For a d reference diagonalizer and invariant matrix, two selected coordinates, and a line normal, offset, and deformation magnitude, the deformed invariant matrix is obtained by first forming the normalized two-coordinate deformation, then taking its congruence transform of the invariant matrix and adding the symmetric common shift cross term.
Definition (Lean source)
For a d reference diagonalizer, two selected coordinates, a line normal and deformation magnitude, an original diagonal shift vector, and a coordinate, the deformed shift at that coordinate is the corresponding diagonal entry obtained after forming the normalized two-coordinate deformation and taking the congruence transform of the original diagonal shift matrix.
For a d diagonalizer and invariant matrix and a diagonal shift vector, the represented covariance matrix is the inverse congruence transform of the invariant matrix plus the diagonal shift matrix. This is meaningful for an invertible diagonalizer; for a singular one the matrix inverse is zero by convention, so the value is the zero matrix.
For a dimension, an environment collection, a covariance matrix for each environment, a diagonalizer and invariant matrix, and a diagonal shift vector for each environment, the covariance family is represented exactly when every environment's covariance matrix equals the covariance represented by those common matrices and that environment's shift vector. Invertibility of the diagonalizer is not part of this predicate; a singular diagonalizer represents only the all-zero family.
Definition (Lean source)
Algebra 1 core · 19 supporting This module records the entry formulas, invertibility and normalization facts, cycle product identity, shift nonnegativity, and exact congruence decomposition for the two-coordinate construction. ★ representedCovariance_deformation_eq
Algebra of the normalized two-coordinate deformation
This module records the entry formulas, invertibility and normalization facts, cycle product identity, shift nonnegativity, and exact congruence decomposition for the two-coordinate construction.
With two distinct selected coordinates, an invertible reference diagonalizer, and an invertible normalized deformation, the transformed representation gives exactly the same covariance matrix in each environment.
Formal statement
Proof (Lean source)
19 supporting declarations (lemmas, instances)
-
normalizedPairDeformation_zerotheorem — At zero deformation parameter, the normalized pair deformation is the identity matrix.hypothesesconclusionnormalizedPairDeformation B i j u v 0 = 1Proof (Lean source)
@[simp] theorem normalizedPairDeformation_zero {d : ℕ} (B : SqMatrix d) (i j : Fin d) (u v : ℝ) : normalizedPairDeformation B i j u v 0 = 1 := by classical have hR : pairRowNormalizer B i j u v 0 = 1 := by ext k l simp [pairRowNormalizer, firstNormalizationDenom, secondNormalizationDenom] have hS : pairShear i j u v 0 = 1 := by ext k l simp [pairShear] simp [normalizedPairDeformation, hR, hS] -
deformedDiagonalizer_zerotheorem — At zero deformation parameter, the deformed diagonalizer equals the reference diagonalizer.Proof (Lean source)
@[simp] theorem deformedDiagonalizer_zero {d : ℕ} (B : SqMatrix d) (i j : Fin d) (u v : ℝ) : deformedDiagonalizer B i j u v 0 = B := by simp [deformedDiagonalizer] -
deformedInvariant_zerotheorem — At zero deformation parameter, the transformed invariant is the original invariant matrix.hypothesesconclusiondeformedInvariant B Ω i j u v c 0 = ΩProof (Lean source)
@[simp] theorem deformedInvariant_zero {d : ℕ} (B Ω : SqMatrix d) (i j : Fin d) (u v c : ℝ) : deformedInvariant B Ω i j u v c 0 = Ω := by simp [deformedInvariant, commonShiftCrossTerm, pairSymmetricOffDiagonal] -
deformedShift_zerotheorem — At zero deformation parameter, the transformed diagonal shift is the original shift.hypothesesconclusiondeformedShift B i j u v 0 s = sProof (Lean source)
@[simp] theorem deformedShift_zero {d : ℕ} (B : SqMatrix d) (i j : Fin d) (u v : ℝ) (s : Fin d → ℝ) : deformedShift B i j u v 0 s = s := by funext k simp [deformedShift] -
pairShear_isUnit_dettheorem — When the selected coordinates are distinct and the selected shear-block determinant is nonzero, the elementary pair shear is invertible.hypothesesProof (Lean source)
theorem pairShear_isUnit_det {d : ℕ} {i j : Fin d} (hij : i ≠ j) {u v t : ℝ} (hdet : 1 - t ^ 2 * u * v ≠ 0) : IsUnit (pairShear i j u v t).det := by rw [pairShear_factorization hij, Matrix.det_mul, Matrix.det_mul] exact IsUnit.mul (IsUnit.mul (elementaryShear_isUnit_det hij.symm (t * u)) (diagonalReplace_isUnit_det j hdet)) (elementaryShear_isUnit_det hij (t * v)) -
pairRowNormalizer_isUnit_dettheorem — When the selected coordinates are distinct and both row-normalization denominators are nonzero, the diagonal row normalizer is invertible.hypothesesd :ℕB :SqMatrix di j :Fin dhij :i ≠ ju v t :ℝhfirst :firstNormalizationDenom B i j v t ≠ 0hsecond :secondNormalizationDenom B i j u t ≠ 0conclusionProof (Lean source)
theorem pairRowNormalizer_isUnit_det {d : ℕ} (B : SqMatrix d) {i j : Fin d} (hij : i ≠ j) {u v t : ℝ} (hfirst : firstNormalizationDenom B i j v t ≠ 0) (hsecond : secondNormalizationDenom B i j u t ≠ 0) : IsUnit (pairRowNormalizer B i j u v t).det := by rw [pairRowNormalizer, Matrix.det_diagonal, IsUnit.prod_iff] intro k hk split_ifs with hki hkj · exact (inv_ne_zero hfirst).isUnit · exact (inv_ne_zero hsecond).isUnit · exact isUnit_one -
normalizedPairDeformation_isUnit_dettheorem — When the selected coordinates are distinct, both normalization denominators are nonzero, and the shear determinant is nonzero, the normalized pair deformation is invertible.hypothesesd :ℕB :SqMatrix di j :Fin dhij :i ≠ ju v t :ℝhfirst :firstNormalizationDenom B i j v t ≠ 0hsecond :secondNormalizationDenom B i j u t ≠ 0hdet :1 - t ^ 2 * u * v ≠ 0conclusionProof (Lean source)
theorem normalizedPairDeformation_isUnit_det {d : ℕ} (B : SqMatrix d) {i j : Fin d} (hij : i ≠ j) {u v t : ℝ} (hfirst : firstNormalizationDenom B i j v t ≠ 0) (hsecond : secondNormalizationDenom B i j u t ≠ 0) (hdet : 1 - t ^ 2 * u * v ≠ 0) : IsUnit (normalizedPairDeformation B i j u v t).det := by rw [normalizedPairDeformation, Matrix.det_mul] exact IsUnit.mul (pairRowNormalizer_isUnit_det B hij hfirst hsecond) (pairShear_isUnit_det hij hdet) -
deformedDiagonalizer_unitDiagonaltheorem — When the selected coordinates are distinct, the reference diagonal is unit-normalized, and both normalization denominators are nonzero, row normalization restores unit diagonal.hypothesesd :ℕB :SqMatrix di j :Fin dhij :i ≠ jhB :u v t :ℝhfirst :firstNormalizationDenom B i j v t ≠ 0hsecond :secondNormalizationDenom B i j u t ≠ 0conclusionUnitDiagonal (deformedDiagonalizer B i j u v t)Proof (Lean source)
theorem deformedDiagonalizer_unitDiagonal {d : ℕ} (B : SqMatrix d) {i j : Fin d} (hij : i ≠ j) (hB : UnitDiagonal B) {u v t : ℝ} (hfirst : firstNormalizationDenom B i j v t ≠ 0) (hsecond : secondNormalizationDenom B i j u t ≠ 0) : UnitDiagonal (deformedDiagonalizer B i j u v t) := by intro k by_cases hki : k = i · subst k rw [deformedDiagonalizer_apply_first B hij, hB] change (firstNormalizationDenom B i j v t)⁻¹ * firstNormalizationDenom B i j v t = 1 exact inv_mul_cancel₀ hfirst · by_cases hkj : k = j · subst k rw [deformedDiagonalizer_apply_second B hij, hB] rw [show t * u * B i j + 1 = secondNormalizationDenom B i j u t by unfold secondNormalizationDenom ring] exact inv_mul_cancel₀ hsecond · rw [deformedDiagonalizer_apply_of_ne B hki hkj] exact hB k -
deformedDiagonalizer_cycle_identitytheorem — When the selected coordinates are distinct, the reference diagonal is unit-normalized, and both normalization denominators are nonzero, the selected cycle-product defect obeys the stated shear identity.hypothesesd :ℕB :SqMatrix di j :Fin dhij :i ≠ jhB :u v t :ℝhfirst :firstNormalizationDenom B i j v t ≠ 0hsecond :secondNormalizationDenom B i j u t ≠ 0conclusionfirstNormalizationDenom B i j v t * secondNormalizationDenom B i j u t * (deformedDiagonalizer B i j u v t i j * deformedDiagonalizer B i j u v t j i - 1)= (B i j * B j i - 1) * (1 - t ^ 2 * u * v)Proof (Lean source)
theorem deformedDiagonalizer_cycle_identity {d : ℕ} (B : SqMatrix d) {i j : Fin d} (hij : i ≠ j) (hB : UnitDiagonal B) {u v t : ℝ} (hfirst : firstNormalizationDenom B i j v t ≠ 0) (hsecond : secondNormalizationDenom B i j u t ≠ 0) : firstNormalizationDenom B i j v t * secondNormalizationDenom B i j u t * (deformedDiagonalizer B i j u v t i j * deformedDiagonalizer B i j u v t j i - 1) = (B i j * B j i - 1) * (1 - t ^ 2 * u * v) := by rw [deformedDiagonalizer_apply_first B hij, deformedDiagonalizer_apply_second B hij, hB, hB] unfold firstNormalizationDenom secondNormalizationDenom at * field_simp [hfirst, hsecond] ring -
deformedDiagonalizer_pairCycleAdmissibletheorem — When the selected coordinates are distinct, the reference diagonal is unit-normalized, its selected two-cycle is admissible, both normalization denominators are nonzero, and the shear determinant is nonzero, the deformed selected two-cycle remains admissible.hypothesesd :ℕB :SqMatrix di j :Fin dhij :i ≠ jhB :hcycle :PairCycleAdmissible B i ju v t :ℝhfirst :firstNormalizationDenom B i j v t ≠ 0hsecond :secondNormalizationDenom B i j u t ≠ 0hdet :1 - t ^ 2 * u * v ≠ 0conclusionPairCycleAdmissible (deformedDiagonalizer B i j u v t) i jProof (Lean source)
theorem deformedDiagonalizer_pairCycleAdmissible {d : ℕ} (B : SqMatrix d) {i j : Fin d} (hij : i ≠ j) (hB : UnitDiagonal B) (hcycle : PairCycleAdmissible B i j) {u v t : ℝ} (hfirst : firstNormalizationDenom B i j v t ≠ 0) (hsecond : secondNormalizationDenom B i j u t ≠ 0) (hdet : 1 - t ^ 2 * u * v ≠ 0) : PairCycleAdmissible (deformedDiagonalizer B i j u v t) i j := by intro hbad have h := deformedDiagonalizer_cycle_identity B hij hB hfirst hsecond rw [hbad, sub_self, mul_zero] at h have hright : (B i j * B j i - 1) * (1 - t ^ 2 * u * v) ≠ 0 := mul_ne_zero (sub_ne_zero.mpr hcycle) hdet exact hright h.symm -
deformedDiagonalizer_netheorem — When the selected coordinates are distinct, the reference diagonalizer is invertible, the line normal is nonzero, the deformation parameter is nonzero, and both normalization denominators are nonzero, the deformed diagonalizer differs from the reference.hypothesesd :ℕB :SqMatrix di j :Fin dhij :i ≠ jhBunit :IsUnit B.detu v t :ℝhnormal :u ≠ 0 ∨ v ≠ 0ht :t ≠ 0hfirst :firstNormalizationDenom B i j v t ≠ 0hsecond :secondNormalizationDenom B i j u t ≠ 0conclusiondeformedDiagonalizer B i j u v t ≠ BProof (Lean source)
theorem deformedDiagonalizer_ne {d : ℕ} (B : SqMatrix d) {i j : Fin d} (hij : i ≠ j) (hBunit : IsUnit B.det) {u v t : ℝ} (hnormal : u ≠ 0 ∨ v ≠ 0) (ht : t ≠ 0) (hfirst : firstNormalizationDenom B i j v t ≠ 0) (hsecond : secondNormalizationDenom B i j u t ≠ 0) : deformedDiagonalizer B i j u v t ≠ B := by intro heq have hmul : normalizedPairDeformation B i j u v t * B = B := heq have hT : normalizedPairDeformation B i j u v t = 1 := by calc normalizedPairDeformation B i j u v t = normalizedPairDeformation B i j u v t * (B * B⁻¹) := by rw [Matrix.mul_nonsing_inv B hBunit, Matrix.mul_one] _ = (normalizedPairDeformation B i j u v t * B) * B⁻¹ := by rw [Matrix.mul_assoc] _ = B * B⁻¹ := by rw [hmul] _ = 1 := Matrix.mul_nonsing_inv B hBunit rcases hnormal with hu | hv · have hentry := congrArg (fun M : SqMatrix d ↦ M j i) hT simp [normalizedPairDeformation_apply, hij, Ne.symm hij] at hentry rcases hentry with h | h | h · exact hsecond h · exact ht h · exact hu h · have hentry := congrArg (fun M : SqMatrix d ↦ M i j) hT simp [normalizedPairDeformation_apply, hij, Ne.symm hij] at hentry rcases hentry with h | h | h · exact hfirst h · exact ht h · exact hv h -
deformedShift_apply_firsttheorem — When the selected coordinates are distinct, the first transformed shift is its stated nonnegative weighted sum.hypothesesconclusiondeformedShift B i j u v t s i= (firstNormalizationDenom B i j v t)⁻¹ ^ 2 * (s i + t ^ 2 * v ^ 2 * s j)Proof (Lean source)
theorem deformedShift_apply_first {d : ℕ} (B : SqMatrix d) {i j : Fin d} (hij : i ≠ j) (u v t : ℝ) (s : Fin d → ℝ) : deformedShift B i j u v t s i = (firstNormalizationDenom B i j v t)⁻¹ ^ 2 * (s i + t ^ 2 * v ^ 2 * s j) := by classical rw [deformedShift_sum_squares] simp only [normalizedPairDeformation_apply] simp only [if_pos, Ne.symm hij, false_and, if_false, true_and] calc _ = ∑ l, ((if i = l then (firstNormalizationDenom B i j v t)⁻¹ ^ 2 * s l else 0) + (if j = l then (firstNormalizationDenom B i j v t)⁻¹ ^ 2 * (t ^ 2 * v ^ 2) * s l else 0)) := by apply Finset.sum_congr rfl intro l hl by_cases hil : i = l · by_cases hjl : j = l · exact (hij (hil.trans hjl.symm)).elim · subst l simp [hij, Ne.symm hij] <;> try ring <;> simp_all · by_cases hjl : j = l · subst l simp [hij, Ne.symm hij] <;> try ring <;> simp_all · simp [hil, Ne.symm hil, hjl, Ne.symm hjl] <;> try ring <;> simp_all _ = _ := by rw [Finset.sum_add_distrib] simp ring -
deformedShift_apply_secondtheorem — When the selected coordinates are distinct, the second transformed shift is its stated nonnegative weighted sum.hypothesesconclusiondeformedShift B i j u v t s j= (secondNormalizationDenom B i j u t)⁻¹ ^ 2 * (t ^ 2 * u ^ 2 * s i + s j)Proof (Lean source)
theorem deformedShift_apply_second {d : ℕ} (B : SqMatrix d) {i j : Fin d} (hij : i ≠ j) (u v t : ℝ) (s : Fin d → ℝ) : deformedShift B i j u v t s j = (secondNormalizationDenom B i j u t)⁻¹ ^ 2 * (t ^ 2 * u ^ 2 * s i + s j) := by classical rw [deformedShift_sum_squares] simp only [normalizedPairDeformation_apply] simp only [if_neg (Ne.symm hij), if_pos, hij, false_and, if_false, true_and] calc _ = ∑ l, ((if i = l then (secondNormalizationDenom B i j u t)⁻¹ ^ 2 * (t ^ 2 * u ^ 2) * s l else 0) + (if j = l then (secondNormalizationDenom B i j u t)⁻¹ ^ 2 * s l else 0)) := by apply Finset.sum_congr rfl intro l hl by_cases hil : i = l · by_cases hjl : j = l · exact (hij (hil.trans hjl.symm)).elim · subst l simp [hij, Ne.symm hij] <;> try ring <;> simp_all · by_cases hjl : j = l · subst l simp [hij, Ne.symm hij] <;> try ring <;> simp_all · simp [hil, Ne.symm hil, hjl, Ne.symm hjl] <;> try ring <;> simp_all _ = _ := by rw [Finset.sum_add_distrib] simp ring -
deformedShift_apply_of_netheorem — When the coordinate is neither selected coordinate, its transformed shift is unchanged.hypothesesconclusiondeformedShift B i j u v t s k = s kProof (Lean source)
theorem deformedShift_apply_of_ne {d : ℕ} (B : SqMatrix d) {i j k : Fin d} (hki : k ≠ i) (hkj : k ≠ j) (u v t : ℝ) (s : Fin d → ℝ) : deformedShift B i j u v t s k = s k := by classical rw [deformedShift_sum_squares] simp [normalizedPairDeformation_apply, hki, hkj, Ne.symm hki, Ne.symm hkj] -
deformedShift_nonnegativetheorem — When the selected coordinates are distinct and the original shift is coordinatewise nonnegative, the transformed shift is coordinatewise nonnegative.hypothesesconclusion0 ≤ deformedShift B i j u v t s kProof (Lean source)
theorem deformedShift_nonnegative {d : ℕ} (B : SqMatrix d) {i j : Fin d} (hij : i ≠ j) (u v t : ℝ) (s : Fin d → ℝ) (hs : ∀ k, 0 ≤ s k) : ∀ k, 0 ≤ deformedShift B i j u v t s k := by intro k by_cases hki : k = i · subst k rw [deformedShift_apply_first B hij] exact mul_nonneg (sq_nonneg _) (add_nonneg (hs i) (mul_nonneg (mul_nonneg (sq_nonneg t) (sq_nonneg v)) (hs j))) · by_cases hkj : k = j · subst k rw [deformedShift_apply_second B hij] exact mul_nonneg (sq_nonneg _) (add_nonneg (mul_nonneg (mul_nonneg (sq_nonneg t) (sq_nonneg u)) (hs i)) (hs j)) · rw [deformedShift_apply_of_ne B hki hkj] exact hs k -
pairShear_diagonal_congruence_decompositiontheorem — When the selected coordinates are distinct, the transformed diagonal shift matrix splits into the common symmetric off-diagonal term and its new diagonal shift.hypothesesd :ℕE :Type*B :SqMatrix di j :Fin dhij :i ≠ js :E → Fin d → ℝcert :AffineLineCertificate s i jt :ℝe :EconclusionT :normalizedPairDeformation B i j cert.u cert.v tT * diagonal (s e) * T.transpose= pairSymmetricOffDiagonal i j (commonShiftCrossTerm B i j cert.u cert.v cert.c t)+ diagonal (deformedShift B i j cert.u cert.v t (s e))Proof (Lean source)
theorem pairShear_diagonal_congruence_decomposition {d : ℕ} {E : Type*} (B : SqMatrix d) {i j : Fin d} (hij : i ≠ j) (s : E → Fin d → ℝ) (cert : AffineLineCertificate s i j) (t : ℝ) (e : E) : let T := normalizedPairDeformation B i j cert.u cert.v t T * diagonal (s e) * T.transpose = pairSymmetricOffDiagonal i j (commonShiftCrossTerm B i j cert.u cert.v cert.c t) + diagonal (deformedShift B i j cert.u cert.v t (s e)) := by classical dsimp ext a b by_cases hab : a = b · subst b have hia : ¬(i = a ∧ j = a) := by rintro ⟨rfl, h⟩ exact hij h.symm have hja : ¬(j = a ∧ i = a) := by rintro ⟨rfl, h⟩ exact hij h simp [pairSymmetricOffDiagonal, Matrix.single_apply, hia, hja, deformedShift] · by_cases hai : a = i · subst a by_cases hbj : b = j · subst b simpa [pairSymmetricOffDiagonal, hij, Ne.symm hij] using diagonal_congruence_apply_first_second B hij s cert t e · have hbi : b ≠ i := by intro h; exact hab h.symm have hz := diagonal_congruence_apply_unselected B hbi hbj (Ne.symm hab) cert.u cert.v t (s e) rw [diagonal_congruence_symm_apply] simpa [pairSymmetricOffDiagonal, Matrix.single_apply, hij, Ne.symm hij, hbi, Ne.symm hbi, hbj, Ne.symm hbj, hab, Ne.symm hab] using hz · by_cases haj : a = j · subst a by_cases hbi : b = i · subst b simpa [pairSymmetricOffDiagonal, hij, Ne.symm hij] using diagonal_congruence_apply_second_first B hij s cert t e · have hbj : b ≠ j := by intro h; exact hab h.symm have hz := diagonal_congruence_apply_unselected B hbi hbj (Ne.symm hab) cert.u cert.v t (s e) rw [diagonal_congruence_symm_apply] simpa [pairSymmetricOffDiagonal, Matrix.single_apply, hij, Ne.symm hij, hbi, Ne.symm hbi, hbj, Ne.symm hbj, hab, Ne.symm hab] using hz · by_cases hbi : b = i · subst b have hz := diagonal_congruence_apply_unselected B hai haj hab cert.u cert.v t (s e) simpa [pairSymmetricOffDiagonal, Matrix.single_apply, hij, Ne.symm hij, hai, Ne.symm hai, haj, Ne.symm haj, hab, Ne.symm hab] using hz · by_cases hbj : b = j · subst b have hz := diagonal_congruence_apply_unselected B hai haj hab cert.u cert.v t (s e) simpa [pairSymmetricOffDiagonal, Matrix.single_apply, hij, Ne.symm hij, hai, Ne.symm hai, haj, Ne.symm haj, hab, Ne.symm hab] using hz · have hz := diagonal_congruence_apply_unselected B hai haj hab cert.u cert.v t (s e) simpa [pairSymmetricOffDiagonal, Matrix.single_apply, hij, Ne.symm hij, hai, Ne.symm hai, haj, Ne.symm haj, hbi, Ne.symm hbi, hbj, Ne.symm hbj, hab, Ne.symm hab] using hz -
total_congruence_decompositiontheorem — When the selected coordinates are distinct, the latent congruence is exactly the deformed invariant plus the transformed diagonal shift.hypothesesd :ℕE :Type*B Ω :SqMatrix di j :Fin dhij :i ≠ js :E → Fin d → ℝcert :AffineLineCertificate s i jt :ℝe :EconclusionT :normalizedPairDeformation B i j cert.u cert.v tT * (Ω + diagonal (s e)) * T.transpose= deformedInvariant B Ω i j cert.u cert.v cert.c t+ diagonal (deformedShift B i j cert.u cert.v t (s e))Proof (Lean source)
theorem total_congruence_decomposition {d : ℕ} {E : Type*} (B Ω : SqMatrix d) {i j : Fin d} (hij : i ≠ j) (s : E → Fin d → ℝ) (cert : AffineLineCertificate s i j) (t : ℝ) (e : E) : let T := normalizedPairDeformation B i j cert.u cert.v t T * (Ω + diagonal (s e)) * T.transpose = deformedInvariant B Ω i j cert.u cert.v cert.c t + diagonal (deformedShift B i j cert.u cert.v t (s e)) := by dsimp rw [mul_add, add_mul] rw [pairShear_diagonal_congruence_decomposition B hij s cert t e] simp only [deformedInvariant] noncomm_ring -
representedCovariance_posDeftheorem — Given an invertible diagonalizer, a positive-definite invariant, and a coordinatewise nonnegative shift, the represented covariance matrix is positive definite.hypothesesconclusion(representedCovariance B Ω s).PosDefProof (Lean source)
theorem representedCovariance_posDef {d : ℕ} (B Ω : SqMatrix d) (s : Fin d → ℝ) (hB : IsUnit B.det) (hΩ : Ω.PosDef) (hs : ∀ k, 0 ≤ s k) : (representedCovariance B Ω s).PosDef := by have hsum : (Ω + diagonal s).PosDef := hΩ.add_posSemidef (Matrix.PosSemidef.diagonal hs) have hBinv : IsUnit B⁻¹ := (Matrix.isUnit_iff_isUnit_det B⁻¹).mpr (Matrix.isUnit_nonsing_inv_det B hB) have hinj : Injective B⁻¹.vecMul := Matrix.vecMul_injective_iff_isUnit.mpr hBinv simpa [representedCovariance] using hsum.mul_mul_conjTranspose_same hinj -
deformedInvariant_isSymmtheorem — When the selected coordinates are distinct and the original invariant is symmetric, the deformed invariant is symmetric.hypothesesconclusion(deformedInvariant B Ω i j u v c t).IsSymmProof (Lean source)
theorem deformedInvariant_isSymm {d : ℕ} (B Ω : SqMatrix d) {i j : Fin d} (hij : i ≠ j) (hΩ : Ω.IsSymm) (u v c t : ℝ) : (deformedInvariant B Ω i j u v c t).IsSymm := by unfold deformedInvariant apply Matrix.IsSymm.add · simp only [IsSymm, Matrix.transpose_mul, Matrix.transpose_transpose] rw [hΩ, Matrix.mul_assoc] · simp [pairSymmetricOffDiagonal, IsSymm, add_comm]
Main 1 core · 1 supporting This module gives a paper-independent non-identifiability witness for a family (over any index set) of positive-definite covariance matrices. ★ exists_collinear_simultaneous_congruence_ambiguity
Constructive ambiguity from an affine-collinear shift pair
This module gives a paper-independent non-identifiability witness for a family (over any index set) of positive-definite covariance matrices. If two selected coordinates of all diagonal shifts lie on one affine line, an arbitrarily small nonzero normalized two-row deformation produces a distinct invertible diagonalizer and a second exact positive-definite/nonnegative representation of the same family.
Given two distinct selected coordinates, a unit-diagonal reference diagonalizer, its invertibility, an admissible selected two-cycle, a positive-definite invariant, coordinatewise nonnegative shifts, a certificate that the two selected shift coordinates of every environment lie on one affine line with nonzero normal, and a positive parameter bound, there is a deformation parameter that is nonzero and strictly smaller than the bound in absolute value, whose deformed diagonalizer, invariant and shifts (given by the explicit two-coordinate deformation formulas) satisfy: the new diagonalizer is unit-diagonal, invertible, pair-cycle admissible and different from the reference one; the new invariant is symmetric and positive definite; the new shifts are nonnegative; every covariance represented by the reference data is positive definite; and every environment's represented covariance is the same under the new data as under the reference data. The environment index may be any type, finite or not.
Formal statement
Proof (Lean source)
1 supporting declaration (lemmas, instances)
-
exists_interior_collinear_ambiguity_exampletheorem — Given two distinct selected coordinates and coordinatewise nonnegative shifts, the prescribed affine-collinear shift family has a positive-definite interior covariance example with two distinct compatible normalized diagonalizers.hypothesesd :ℕE :Type*s :E → Fin d → ℝi j :Fin dhij :i ≠ jhs :∀ e k, 0 ≤ s e kcert :AffineLineCertificate s i jconclusionB₀ = 1Ω₀ = 1UnitDiagonal B₀IsUnit B₀.detPairCycleAdmissible B₀ i jUnitDiagonal B₁IsUnit B₁.detPairCycleAdmissible B₁ i jB₁ ≠ B₀Ω₀.PosDefΩ₁.IsSymmΩ₁.PosDefconclusion 1e k :0 ≤ s₁ e kconclusion 3RepresentsCovarianceFamily Sigma B₀ Ω₀ sconclusion 4RepresentsCovarianceFamily Sigma B₁ Ω₁ s₁Proof (Lean source)
theorem exists_interior_collinear_ambiguity_example {d : ℕ} {E : Type*} (s : E → Fin d → ℝ) {i j : Fin d} (hij : i ≠ j) (hs : ∀ e k, 0 ≤ s e k) (cert : AffineLineCertificate s i j) : ∃ (Sigma : E → SqMatrix d) (B₀ B₁ Ω₀ Ω₁ : SqMatrix d) (s₁ : E → Fin d → ℝ), B₀ = 1 ∧ Ω₀ = 1 ∧ UnitDiagonal B₀ ∧ IsUnit B₀.det ∧ PairCycleAdmissible B₀ i j ∧ UnitDiagonal B₁ ∧ IsUnit B₁.det ∧ PairCycleAdmissible B₁ i j ∧ B₁ ≠ B₀ ∧ Ω₀.PosDef ∧ Ω₁.IsSymm ∧ Ω₁.PosDef ∧ (∀ e k, 0 ≤ s₁ e k) ∧ (∀ e, (Sigma e).PosDef) ∧ RepresentsCovarianceFamily Sigma B₀ Ω₀ s ∧ RepresentsCovarianceFamily Sigma B₁ Ω₁ s₁ := by have hdiag₀ : UnitDiagonal (1 : SqMatrix d) := by intro k simp have hunit₀ : IsUnit (1 : SqMatrix d).det := by simp have hcycle₀ : PairCycleAdmissible (1 : SqMatrix d) i j := by simp [PairCycleAdmissible, hij] have hΩ₀ : (1 : SqMatrix d).PosDef := Matrix.PosDef.one rcases exists_collinear_simultaneous_congruence_ambiguity (1 : SqMatrix d) (1 : SqMatrix d) s hij hdiag₀ hunit₀ hcycle₀ hΩ₀ hs cert (r := 1) (by norm_num) with ⟨t, B₁, Ω₁, s₁, _ht0, _htr, _hB₁eq, _hΩ₁eq, _hs₁eq, hB₁diag, hB₁unit, hB₁cycle, hB₁ne, hΩ₁symm, hΩ₁pos, hs₁, hSigmaPos, hrepEq⟩ refine ⟨(fun e ↦ representedCovariance (1 : SqMatrix d) (1 : SqMatrix d) (s e)), 1, B₁, 1, Ω₁, s₁, rfl, rfl, hdiag₀, hunit₀, hcycle₀, hB₁diag, hB₁unit, hB₁cycle, hB₁ne, hΩ₀, hΩ₁symm, hΩ₁pos, hs₁, hSigmaPos, ?_, ?_⟩ · intro e rfl · intro e exact (hrepEq e).symm
SmallParameter 1 core · 2 supporting This module proves the openness step for the transformed invariant and packages all algebraic, normalization, invertibility, cycle-product, and nonnegativity constraints into one arbitrarily-small nonzero parameter choic ★ exists_small_admissible_parameter
Selecting a simultaneous small deformation parameter
This module proves the openness step for the transformed invariant and packages all algebraic, normalization, invertibility, cycle-product, and nonnegativity constraints into one arbitrarily-small nonzero parameter choice.
Given two distinct selected coordinates, a unit-diagonal reference matrix, an invertible reference matrix, an admissible selected two-cycle, a positive-definite invariant, two line-normal coefficients that are not both zero, an affine offset entering the transformed invariant's cross term, coordinatewise nonnegative shifts, and a positive requested bound, there is a nonzero deformation parameter below that bound preserving all stated admissibility, positivity, and nonnegativity properties.
Formal statement
Proof (Lean source)
2 supporting declarations (lemmas, instances)
-
exists_deformedInvariant_posDef_radiustheorem — When the selected coordinates are distinct and the original invariant is positive definite, some positive radius keeps every transformed invariant positive definite.hypothesesconclusion∃ ρ > 0, ∀ t : ℝ, |t| < ρ → (deformedInvariant B Ω i j u v c t).PosDefProof (Lean source)
theorem exists_deformedInvariant_posDef_radius {d : ℕ} (B Ω : SqMatrix d) {i j : Fin d} (hij : i ≠ j) (hΩ : Ω.PosDef) (u v c : ℝ) : ∃ ρ > 0, ∀ t : ℝ, |t| < ρ → (deformedInvariant B Ω i j u v c t).PosDef := by have heventually : ∀ᶠ t in nhds 0, (deformedInvariant B Ω i j u v c t).PosDef := posDef_eventually_of_continuousAt (fun t ↦ deformedInvariant B Ω i j u v c t) (continuousAt_deformedInvariant B Ω i j u v c) (by simpa using hΩ) (deformedInvariant_isHermitian B Ω i j hΩ u v c) rcases Metric.mem_nhds_iff.mp heventually with ⟨ρ, hρ, hball⟩ refine ⟨ρ, hρ, fun t ht ↦ hball ?_⟩ simpa [Metric.mem_ball, Real.dist_eq] using ht -
exists_algebraic_admissibility_radiustheorem — Some positive radius makes both row-normalization denominators and the selected shear determinant nonzero.hypothesesconclusion∃ ρ > 0,∀ t : ℝ,|t| < ρ → firstNormalizationDenom B i j v t ≠ 0 ∧secondNormalizationDenom B i j u t ≠ 0 ∧1 - t ^ 2 * u * v ≠ 0Proof (Lean source)
theorem exists_algebraic_admissibility_radius {d : ℕ} (B : SqMatrix d) (i j : Fin d) (u v : ℝ) : ∃ ρ > 0, ∀ t : ℝ, |t| < ρ → firstNormalizationDenom B i j v t ≠ 0 ∧ secondNormalizationDenom B i j u t ≠ 0 ∧ 1 - t ^ 2 * u * v ≠ 0 := by have hfirst : ∀ᶠ t in nhds 0, firstNormalizationDenom B i j v t ≠ 0 := by apply ContinuousAt.eventually_ne · unfold firstNormalizationDenom fun_prop · simp [firstNormalizationDenom] have hsecond : ∀ᶠ t in nhds 0, secondNormalizationDenom B i j u t ≠ 0 := by apply ContinuousAt.eventually_ne · unfold secondNormalizationDenom fun_prop · simp [secondNormalizationDenom] have hdet : ∀ᶠ t in nhds 0, 1 - t ^ 2 * u * v ≠ 0 := by apply ContinuousAt.eventually_ne · fun_prop · norm_num have hall : ∀ᶠ t in nhds 0, firstNormalizationDenom B i j v t ≠ 0 ∧ secondNormalizationDenom B i j u t ≠ 0 ∧ 1 - t ^ 2 * u * v ≠ 0 := by filter_upwards [hfirst, hsecond, hdet] with t ht1 ht2 ht3 exact ⟨ht1, ht2, ht3⟩ rcases Metric.mem_nhds_iff.mp hall with ⟨ρ, hρ, hball⟩ refine ⟨ρ, hρ, fun t ht ↦ hball ?_⟩ simpa [Metric.mem_ball, Real.dist_eq] using ht