Imports
/-
Copyright (c) 2024 Joseph Tooby-Smith. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Joseph Tooby-Smith
-/
module
public import Physlib.Particles.FlavorPhysics.CKMMatrix.RowsRelations for the CKM Matrix
This file contains a collection of relations and properties between the elements of the CKM matrix.
@[expose] public section
The absolute value squared of any row of a CKM matrix is 1, in terms of Vabs.
i:Fin 3V:CKMMatrixhV:↑V * star ↑V = 1ht:↑(‖↑V i 0‖ ^ 2) + ↑(‖↑V i 1‖ ^ 2) + ↑(‖↑V i 2‖ ^ 2) = 1⊢ ↑(VAbs i 0 (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs i 1 (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs i 2 (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2) =
↑1
simp_all only [SetLike.coe_mem, Unitary.mul_star_self_of_mem, Fin.isValue, ofReal_pow, ofReal_add,
ofReal_one] i:Fin 3V:CKMMatrixht:↑‖↑V i 0‖ ^ 2 + ↑‖↑V i 1‖ ^ 2 + ↑‖↑V i 2‖ ^ 2 = 1⊢ ↑(VAbs i 0 (Quot.mk (⇑CKMMatrixSetoid) V)) ^ 2 + ↑(VAbs i 1 (Quot.mk (⇑CKMMatrixSetoid) V)) ^ 2 +
↑(VAbs i 2 (Quot.mk (⇑CKMMatrixSetoid) V)) ^ 2 =
1
exact ht All goals completed! 🐙
The absolute value squared of the first row of a CKM matrix is 1, in terms of norm.
lemma fst_row_normalized_abs (V : CKMMatrix) :
norm [V]ud ^ 2 + norm [V]us ^ 2 + norm [V]ub ^ 2 = 1 :=
VAbs_sum_sq_row_eq_one ⟦V⟧ 0
The absolute value squared of the second row of a CKM matrix is 1, in terms of norm.
lemma snd_row_normalized_abs (V : CKMMatrix) :
norm [V]cd ^ 2 + norm [V]cs ^ 2 + norm [V]cb ^ 2 = 1 :=
VAbs_sum_sq_row_eq_one ⟦V⟧ 1
The absolute value squared of the third row of a CKM matrix is 1, in terms of norm.
lemma thd_row_normalized_abs (V : CKMMatrix) :
norm [V]td ^ 2 + norm [V]ts ^ 2 + norm [V]tb ^ 2 = 1 :=
VAbs_sum_sq_row_eq_one ⟦V⟧ 2
The absolute value squared of the first row of a CKM matrix is 1, in terms of nomSq.
lemma fst_row_normalized_normSq (V : CKMMatrix) :
normSq [V]ud + normSq [V]us + normSq [V]ub = 1 := by V:CKMMatrix⊢ normSq (↑V 0 0) + normSq (↑V 0 1) + normSq (↑V 0 2) = 1
repeat rw [← Complex.sq_norm V:CKMMatrix⊢ ‖↑V 0 0‖ ^ 2 + normSq (↑V 0 1) + normSq (↑V 0 2) = 1 V:CKMMatrix⊢ ‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + ‖↑V 0 2‖ ^ 2 = 1] V:CKMMatrix⊢ ‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + normSq (↑V 0 2) = 1 V:CKMMatrix⊢ ‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + ‖↑V 0 2‖ ^ 2 = 1 V:CKMMatrix⊢ ‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + ‖↑V 0 2‖ ^ 2 = 1
exact V.fst_row_normalized_abs All goals completed! 🐙
The absolute value squared of the second row of a CKM matrix is 1, in terms of nomSq.
lemma snd_row_normalized_normSq (V : CKMMatrix) :
normSq [V]cd + normSq [V]cs + normSq [V]cb = 1 := by V:CKMMatrix⊢ normSq (↑V 1 0) + normSq (↑V 1 1) + normSq (↑V 1 2) = 1
repeat rw [← Complex.sq_norm V:CKMMatrix⊢ ‖↑V 1 0‖ ^ 2 + normSq (↑V 1 1) + normSq (↑V 1 2) = 1 V:CKMMatrix⊢ ‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1] V:CKMMatrix⊢ ‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + normSq (↑V 1 2) = 1 V:CKMMatrix⊢ ‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1 V:CKMMatrix⊢ ‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1
exact V.snd_row_normalized_abs All goals completed! 🐙
The absolute value squared of the third row of a CKM matrix is 1, in terms of nomSq.
lemma thd_row_normalized_normSq (V : CKMMatrix) :
normSq [V]td + normSq [V]ts + normSq [V]tb = 1 := by V:CKMMatrix⊢ normSq (↑V 2 0) + normSq (↑V 2 1) + normSq (↑V 2 2) = 1
repeat rw [← Complex.sq_norm V:CKMMatrix⊢ ‖↑V 2 0‖ ^ 2 + normSq (↑V 2 1) + normSq (↑V 2 2) = 1 V:CKMMatrix⊢ ‖↑V 2 0‖ ^ 2 + ‖↑V 2 1‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1] V:CKMMatrix⊢ ‖↑V 2 0‖ ^ 2 + ‖↑V 2 1‖ ^ 2 + normSq (↑V 2 2) = 1 V:CKMMatrix⊢ ‖↑V 2 0‖ ^ 2 + ‖↑V 2 1‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1 V:CKMMatrix⊢ ‖↑V 2 0‖ ^ 2 + ‖↑V 2 1‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1
exact V.thd_row_normalized_abs All goals completed! 🐙lemma normSq_Vud_plus_normSq_Vus (V : CKMMatrix) :
normSq [V]ud + normSq [V]us = 1 - normSq [V]ub := by V:CKMMatrix⊢ normSq (↑V 0 0) + normSq (↑V 0 1) = 1 - normSq (↑V 0 2)
linear_combination fst_row_normalized_normSq V All goals completed! 🐙lemma VudAbs_sq_add_VusAbs_sq : VudAbs V ^ 2 + VusAbs V ^2 = 1 - VubAbs V ^2 := by V:Quotient CKMMatrixSetoid⊢ VudAbs V ^ 2 + VusAbs V ^ 2 = 1 - VubAbs V ^ 2
linear_combination VAbs_sum_sq_row_eq_one V 0 All goals completed! 🐙
lemma ud_us_ne_zero_iff_ub_ne_one (V : CKMMatrix) :
[V]ud ≠ 0 ∨ [V]us ≠ 0 ↔ norm [V]ub ≠ 1 := by V:CKMMatrix⊢ ↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0 ↔ ‖↑V 0 2‖ ≠ 1
have h2 := V.fst_row_normalized_abs V:CKMMatrixh2:‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + ‖↑V 0 2‖ ^ 2 = 1⊢ ↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0 ↔ ‖↑V 0 2‖ ≠ 1
refine Iff.intro (fun h h1 => ?_) (fun h => ?_) refine_1 V:CKMMatrixh2:‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + ‖↑V 0 2‖ ^ 2 = 1h:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:‖↑V 0 2‖ = 1⊢ Falserefine_2 V:CKMMatrixh2:‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + ‖↑V 0 2‖ ^ 2 = 1h:‖↑V 0 2‖ ≠ 1⊢ ↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0
· refine_1 V:CKMMatrixh2:‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + ‖↑V 0 2‖ ^ 2 = 1h:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:‖↑V 0 2‖ = 1⊢ False rw [h1 refine_1 V:CKMMatrixh2:‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + 1 ^ 2 = 1h:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:‖↑V 0 2‖ = 1⊢ False refine_1 V:CKMMatrixh2:‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + 1 ^ 2 = 1h:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:‖↑V 0 2‖ = 1⊢ False] at h2 refine_1 V:CKMMatrixh2:‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + 1 ^ 2 = 1h:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:‖↑V 0 2‖ = 1⊢ False
simp only [Fin.isValue, one_pow, add_eq_right] at h2 refine_1 V:CKMMatrixh:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:‖↑V 0 2‖ = 1h2:‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 = 0⊢ False
rw [add_eq_zero_iff_of_nonneg (sq_nonneg _) (sq_nonneg _) refine_1 V:CKMMatrixh:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:‖↑V 0 2‖ = 1h2:‖↑V 0 0‖ ^ 2 = 0 ∧ ‖↑V 0 1‖ ^ 2 = 0⊢ False refine_1 V:CKMMatrixh:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:‖↑V 0 2‖ = 1h2:‖↑V 0 0‖ ^ 2 = 0 ∧ ‖↑V 0 1‖ ^ 2 = 0⊢ False] at h2refine_1 V:CKMMatrixh:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:‖↑V 0 2‖ = 1h2:‖↑V 0 0‖ ^ 2 = 0 ∧ ‖↑V 0 1‖ ^ 2 = 0⊢ False
simp_all All goals completed! 🐙
· refine_2 V:CKMMatrixh2:‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + ‖↑V 0 2‖ ^ 2 = 1h:‖↑V 0 2‖ ≠ 1⊢ ↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0 by_contra hn refine_2 V:CKMMatrixh2:‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + ‖↑V 0 2‖ ^ 2 = 1h:‖↑V 0 2‖ ≠ 1hn:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)⊢ False
rw [not_or refine_2 V:CKMMatrixh2:‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + ‖↑V 0 2‖ ^ 2 = 1h:‖↑V 0 2‖ ≠ 1hn:¬↑V 0 0 ≠ 0 ∧ ¬↑V 0 1 ≠ 0⊢ False refine_2 V:CKMMatrixh2:‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + ‖↑V 0 2‖ ^ 2 = 1h:‖↑V 0 2‖ ≠ 1hn:¬↑V 0 0 ≠ 0 ∧ ¬↑V 0 1 ≠ 0⊢ False] at hnrefine_2 V:CKMMatrixh2:‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + ‖↑V 0 2‖ ^ 2 = 1h:‖↑V 0 2‖ ≠ 1hn:¬↑V 0 0 ≠ 0 ∧ ¬↑V 0 1 ≠ 0⊢ False
simp_all only [ne_eq, Decidable.not_not, norm_zero, OfNat.ofNat_ne_zero, not_false_eq_true,
zero_pow, add_zero, zero_add, sq_eq_one_iff, false_or] refine_2 V:CKMMatrixh2:‖↑V 0 2‖ = -1h:¬-1 = 1hn:↑V 0 0 = 0 ∧ ↑V 0 1 = 0⊢ False
have h1 := norm_nonneg [V]ub refine_2 V:CKMMatrixh2:‖↑V 0 2‖ = -1h:¬-1 = 1hn:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:0 ≤ ‖↑V 0 2‖⊢ False
rw [h2 refine_2 V:CKMMatrixh2:‖↑V 0 2‖ = -1h:¬-1 = 1hn:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:0 ≤ -1⊢ False refine_2 V:CKMMatrixh2:‖↑V 0 2‖ = -1h:¬-1 = 1hn:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:0 ≤ -1⊢ False] at h1refine_2 V:CKMMatrixh2:‖↑V 0 2‖ = -1h:¬-1 = 1hn:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:0 ≤ -1⊢ False
refine (?_ : ¬ 0 ≤ (-1 : ℝ)) h1 refine_2 V:CKMMatrixh2:‖↑V 0 2‖ = -1h:¬-1 = 1hn:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:0 ≤ -1⊢ ¬0 ≤ -1
simp All goals completed! 🐙
lemma normSq_Vud_plus_normSq_Vus_ne_zero_ℝ {V : CKMMatrix} (hb : [V]ud ≠ 0 ∨ [V]us ≠ 0) :
normSq [V]ud + normSq [V]us ≠ 0 := by V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0⊢ normSq (↑V 0 0) + normSq (↑V 0 1) ≠ 0
rw [normSq_Vud_plus_normSq_Vus V V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0⊢ 1 - normSq (↑V 0 2) ≠ 0 V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0⊢ 1 - normSq (↑V 0 2) ≠ 0] V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0⊢ 1 - normSq (↑V 0 2) ≠ 0
rw [ud_us_ne_zero_iff_ub_ne_one V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1⊢ 1 - normSq (↑V 0 2) ≠ 0 V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1⊢ 1 - normSq (↑V 0 2) ≠ 0] at hb V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1⊢ 1 - normSq (↑V 0 2) ≠ 0
by_contra hn V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - normSq (↑V 0 2) = 0⊢ False
rw [← Complex.sq_norm V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - ‖↑V 0 2‖ ^ 2 = 0⊢ False V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - ‖↑V 0 2‖ ^ 2 = 0⊢ False] at hn V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - ‖↑V 0 2‖ ^ 2 = 0⊢ False
have h2 : norm (V.1 0 2) ^2 = 1 := by V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0⊢ normSq (↑V 0 0) + normSq (↑V 0 1) ≠ 0 V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - ‖↑V 0 2‖ ^ 2 = 0h2:‖↑V 0 2‖ ^ 2 = 1⊢ False
linear_combination -(1 * hn) V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - ‖↑V 0 2‖ ^ 2 = 0h2:‖↑V 0 2‖ ^ 2 = 1⊢ False V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - ‖↑V 0 2‖ ^ 2 = 0h2:‖↑V 0 2‖ ^ 2 = 1⊢ False
simp only [Fin.isValue, sq_eq_one_iff] at h2 V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - ‖↑V 0 2‖ ^ 2 = 0h2:‖↑V 0 2‖ = 1 ∨ ‖↑V 0 2‖ = -1⊢ False
cases' h2 with h2 h2 inl V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - ‖↑V 0 2‖ ^ 2 = 0h2:‖↑V 0 2‖ = 1⊢ Falseinr V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - ‖↑V 0 2‖ ^ 2 = 0h2:‖↑V 0 2‖ = -1⊢ False
· inl V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - ‖↑V 0 2‖ ^ 2 = 0h2:‖↑V 0 2‖ = 1⊢ False exact hb h2 All goals completed! 🐙
· inr V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - ‖↑V 0 2‖ ^ 2 = 0h2:‖↑V 0 2‖ = -1⊢ False have h3 := norm_nonneg [V]ub inr V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - ‖↑V 0 2‖ ^ 2 = 0h2:‖↑V 0 2‖ = -1h3:0 ≤ ‖↑V 0 2‖⊢ False
rw [h2 inr V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - ‖↑V 0 2‖ ^ 2 = 0h2:‖↑V 0 2‖ = -1h3:0 ≤ -1⊢ False inr V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - ‖↑V 0 2‖ ^ 2 = 0h2:‖↑V 0 2‖ = -1h3:0 ≤ -1⊢ False] at h3inr V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - ‖↑V 0 2‖ ^ 2 = 0h2:‖↑V 0 2‖ = -1h3:0 ≤ -1⊢ False
have h2 : ¬ 0 ≤ (-1 : ℝ) := by V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0⊢ normSq (↑V 0 0) + normSq (↑V 0 1) ≠ 0 inr V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - ‖↑V 0 2‖ ^ 2 = 0h2✝:‖↑V 0 2‖ = -1h3:0 ≤ -1h2:¬0 ≤ -1⊢ False simpinr V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - ‖↑V 0 2‖ ^ 2 = 0h2✝:‖↑V 0 2‖ = -1h3:0 ≤ -1h2:¬0 ≤ -1⊢ Falseinr V:CKMMatrixhb:‖↑V 0 2‖ ≠ 1hn:1 - ‖↑V 0 2‖ ^ 2 = 0h2✝:‖↑V 0 2‖ = -1h3:0 ≤ -1h2:¬0 ≤ -1⊢ False
exact h2 h3 All goals completed! 🐙
lemma VAbsub_ne_zero_Vud_Vus_ne_zero {V : Quotient CKMMatrixSetoid}
(hV : VAbs 0 2 V ≠ 1) :(VudAbs V ^ 2 + VusAbs V ^ 2) ≠ 0 := by V:Quotient CKMMatrixSetoidhV:VAbs 0 2 V ≠ 1⊢ VudAbs V ^ 2 + VusAbs V ^ 2 ≠ 0
obtain ⟨V⟩ := V mk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:VAbs 0 2 (Quot.mk (⇑CKMMatrixSetoid) V) ≠ 1⊢ VudAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VusAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 ≠ 0
change VubAbs ⟦V⟧ ≠ 1 at hV mk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:VubAbs ⟦V⟧ ≠ 1⊢ VudAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VusAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 ≠ 0
simp only [VubAbs, VAbs, VAbs', Fin.isValue, Quotient.lift_mk] at hV mk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:‖↑V 0 2‖ ≠ 1⊢ VudAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VusAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 ≠ 0
rw [← ud_us_ne_zero_iff_ub_ne_one V mk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0⊢ VudAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VusAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 ≠ 0 mk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0⊢ VudAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VusAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 ≠ 0] at hV mk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0⊢ VudAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VusAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 ≠ 0
have := (normSq_Vud_plus_normSq_Vus_ne_zero_ℝ hV) mk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0this:normSq (↑V 0 0) + normSq (↑V 0 1) ≠ 0⊢ VudAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VusAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 ≠ 0
simp_all only [Fin.isValue, ne_eq, ← Complex.sq_norm, VudAbs, VusAbs] mk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:¬↑V 0 0 = 0 ∨ ¬↑V 0 1 = 0this:¬‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 = 0⊢ ¬VAbs 0 0 (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 0 1 (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 = 0
exact this All goals completed! 🐙
lemma VAbsub_ne_zero_sqrt_Vud_Vus_ne_zero {V : Quotient CKMMatrixSetoid}
(hV : VAbs 0 2 V ≠ 1) : √(VudAbs V ^ 2 + VusAbs V ^ 2) ≠ 0 := by V:Quotient CKMMatrixSetoidhV:VAbs 0 2 V ≠ 1⊢ √(VudAbs V ^ 2 + VusAbs V ^ 2) ≠ 0
obtain ⟨V⟩ := V mk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:VAbs 0 2 (Quot.mk (⇑CKMMatrixSetoid) V) ≠ 1⊢ √(VudAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VusAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2) ≠ 0
rw [Real.sqrt_ne_zero (Left.add_nonneg (sq_nonneg _) (sq_nonneg _)) mk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:VAbs 0 2 (Quot.mk (⇑CKMMatrixSetoid) V) ≠ 1⊢ VudAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VusAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 ≠ 0 mk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:VAbs 0 2 (Quot.mk (⇑CKMMatrixSetoid) V) ≠ 1⊢ VudAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VusAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 ≠ 0] mk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:VAbs 0 2 (Quot.mk (⇑CKMMatrixSetoid) V) ≠ 1⊢ VudAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VusAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 ≠ 0
change VubAbs ⟦V⟧ ≠ 1 at hV mk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:VubAbs ⟦V⟧ ≠ 1⊢ VudAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VusAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 ≠ 0
simp only [VubAbs, VAbs, VAbs', Fin.isValue, Quotient.lift_mk] at hV mk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:‖↑V 0 2‖ ≠ 1⊢ VudAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VusAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 ≠ 0
rw [← ud_us_ne_zero_iff_ub_ne_one V mk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0⊢ VudAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VusAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 ≠ 0 mk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0⊢ VudAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VusAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 ≠ 0] at hVmk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0⊢ VudAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VusAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 ≠ 0
have := (normSq_Vud_plus_normSq_Vus_ne_zero_ℝ hV) mk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0this:normSq (↑V 0 0) + normSq (↑V 0 1) ≠ 0⊢ VudAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VusAbs (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 ≠ 0
simp_all only [Fin.isValue, ne_eq, ← Complex.sq_norm, VudAbs, VusAbs] mk V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:¬↑V 0 0 = 0 ∨ ¬↑V 0 1 = 0this:¬‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 = 0⊢ ¬VAbs 0 0 (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 0 1 (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 = 0
exact this All goals completed! 🐙
lemma normSq_Vud_plus_normSq_Vus_ne_zero_ℂ {V : CKMMatrix} (hb : [V]ud ≠ 0 ∨ [V]us ≠ 0) :
(normSq [V]ud : ℂ) + normSq [V]us ≠ 0 := by V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0⊢ ↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)) ≠ 0
have h1 := normSq_Vud_plus_normSq_Vus_ne_zero_ℝ hb V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:normSq (↑V 0 0) + normSq (↑V 0 1) ≠ 0⊢ ↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)) ≠ 0
simp only [Fin.isValue, ne_eq] at h1 V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:¬normSq (↑V 0 0) + normSq (↑V 0 1) = 0⊢ ↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)) ≠ 0
rw [← ofReal_inj V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:¬↑(normSq (↑V 0 0) + normSq (↑V 0 1)) = ↑0⊢ ↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)) ≠ 0 V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:¬↑(normSq (↑V 0 0) + normSq (↑V 0 1)) = ↑0⊢ ↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)) ≠ 0] at h1 V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:¬↑(normSq (↑V 0 0) + normSq (↑V 0 1)) = ↑0⊢ ↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)) ≠ 0
simp_all All goals completed! 🐙
lemma Vabs_sq_add_ne_zero {V : CKMMatrix} (hb : [V]ud ≠ 0 ∨ [V]us ≠ 0) :
((VudAbs ⟦V⟧ : ℂ) * ↑(VudAbs ⟦V⟧) + ↑(VusAbs ⟦V⟧) * ↑(VusAbs ⟦V⟧)) ≠ 0 := by V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0⊢ ↑(VudAbs ⟦V⟧) * ↑(VudAbs ⟦V⟧) + ↑(VusAbs ⟦V⟧) * ↑(VusAbs ⟦V⟧) ≠ 0
have h1 := normSq_Vud_plus_normSq_Vus_ne_zero_ℂ hb V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)) ≠ 0⊢ ↑(VudAbs ⟦V⟧) * ↑(VudAbs ⟦V⟧) + ↑(VusAbs ⟦V⟧) * ↑(VusAbs ⟦V⟧) ≠ 0
rw [← Complex.sq_norm, V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:↑(‖↑V 0 0‖ ^ 2) + ↑(normSq (↑V 0 1)) ≠ 0⊢ ↑(VudAbs ⟦V⟧) * ↑(VudAbs ⟦V⟧) + ↑(VusAbs ⟦V⟧) * ↑(VusAbs ⟦V⟧) ≠ 0 V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:↑(‖↑V 0 0‖ ^ 2) + ↑(‖↑V 0 1‖ ^ 2) ≠ 0⊢ ↑(VudAbs ⟦V⟧) * ↑(VudAbs ⟦V⟧) + ↑(VusAbs ⟦V⟧) * ↑(VusAbs ⟦V⟧) ≠ 0 ← Complex.sq_norm V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:↑(‖↑V 0 0‖ ^ 2) + ↑(‖↑V 0 1‖ ^ 2) ≠ 0⊢ ↑(VudAbs ⟦V⟧) * ↑(VudAbs ⟦V⟧) + ↑(VusAbs ⟦V⟧) * ↑(VusAbs ⟦V⟧) ≠ 0 V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:↑(‖↑V 0 0‖ ^ 2) + ↑(‖↑V 0 1‖ ^ 2) ≠ 0⊢ ↑(VudAbs ⟦V⟧) * ↑(VudAbs ⟦V⟧) + ↑(VusAbs ⟦V⟧) * ↑(VusAbs ⟦V⟧) ≠ 0] at h1 V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:↑(‖↑V 0 0‖ ^ 2) + ↑(‖↑V 0 1‖ ^ 2) ≠ 0⊢ ↑(VudAbs ⟦V⟧) * ↑(VudAbs ⟦V⟧) + ↑(VusAbs ⟦V⟧) * ↑(VusAbs ⟦V⟧) ≠ 0
simp only [Fin.isValue, sq, ofReal_mul, ne_eq] at h1 V:CKMMatrixhb:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0h1:¬↑‖↑V 0 0‖ * ↑‖↑V 0 0‖ + ↑‖↑V 0 1‖ * ↑‖↑V 0 1‖ = 0⊢ ↑(VudAbs ⟦V⟧) * ↑(VudAbs ⟦V⟧) + ↑(VusAbs ⟦V⟧) * ↑(VusAbs ⟦V⟧) ≠ 0
exact h1 All goals completed! 🐙
lemma fst_row_orthog_snd_row (V : CKMMatrix) :
[V]cd * conj [V]ud + [V]cs * conj [V]us + [V]cb * conj [V]ub = 0 := by V:CKMMatrix⊢ ↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) = 0
have hV := V.prop V:CKMMatrixhV:↑V ∈ unitaryGroup (Fin 3) ℂ⊢ ↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) = 0
rw [mem_unitaryGroup_iff V:CKMMatrixhV:↑V * star ↑V = 1⊢ ↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) = 0 V:CKMMatrixhV:↑V * star ↑V = 1⊢ ↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) = 0] at hV V:CKMMatrixhV:↑V * star ↑V = 1⊢ ↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) = 0
have ht := congrFun (congrFun hV 1) 0 V:CKMMatrixhV:↑V * star ↑V = 1ht:(↑V * star ↑V) 1 0 = 1 1 0⊢ ↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) = 0
simp only [Fin.isValue, mul_apply, star_apply, RCLike.star_def, Fin.sum_univ_three, ne_eq,
one_ne_zero, not_false_eq_true, one_apply_ne] at ht V:CKMMatrixhV:↑V * star ↑V = 1ht:↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) = 0⊢ ↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) = 0
exact ht All goals completed! 🐙
lemma fst_row_orthog_thd_row (V : CKMMatrix) :
[V]td * conj [V]ud + [V]ts * conj [V]us + [V]tb * conj [V]ub = 0 := by V:CKMMatrix⊢ ↑V 2 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 0 2) = 0
have hV := V.prop V:CKMMatrixhV:↑V ∈ unitaryGroup (Fin 3) ℂ⊢ ↑V 2 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 0 2) = 0
rw [mem_unitaryGroup_iff V:CKMMatrixhV:↑V * star ↑V = 1⊢ ↑V 2 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 0 2) = 0 V:CKMMatrixhV:↑V * star ↑V = 1⊢ ↑V 2 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 0 2) = 0] at hV V:CKMMatrixhV:↑V * star ↑V = 1⊢ ↑V 2 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 0 2) = 0
have ht := congrFun (congrFun hV 2) 0 V:CKMMatrixhV:↑V * star ↑V = 1ht:(↑V * star ↑V) 2 0 = 1 2 0⊢ ↑V 2 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 0 2) = 0
simp only [Fin.isValue, mul_apply, star_apply, RCLike.star_def, Fin.sum_univ_three, ne_eq,
Fin.reduceEq, not_false_eq_true, one_apply_ne] at ht V:CKMMatrixhV:↑V * star ↑V = 1ht:↑V 2 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 0 2) = 0⊢ ↑V 2 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 0 2) = 0
exact ht All goals completed! 🐙lemma Vcd_mul_conj_Vud (V : CKMMatrix) :
[V]cd * conj [V]ud = -[V]cs * conj [V]us - [V]cb * conj [V]ub := by V:CKMMatrix⊢ ↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) = -↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)
linear_combination (V.fst_row_orthog_snd_row) All goals completed! 🐙lemma Vcs_mul_conj_Vus (V : CKMMatrix) :
[V]cs * conj [V]us = - [V]cd * conj [V]ud - [V]cb * conj [V]ub := by V:CKMMatrix⊢ ↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) = -↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)
linear_combination V.fst_row_orthog_snd_row All goals completed! 🐙
lemma VAbs_thd_eq_one_fst_eq_zero {V : Quotient CKMMatrixSetoid} {i : Fin 3} (hV : VAbs i 2 V = 1) :
VAbs i 0 V = 0 := by V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs i 2 V = 1⊢ VAbs i 0 V = 0
have h := VAbs_sum_sq_row_eq_one V i V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs i 2 V = 1h:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 + VAbs i 2 V ^ 2 = 1⊢ VAbs i 0 V = 0
rw [hV V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs i 2 V = 1h:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 + 1 ^ 2 = 1⊢ VAbs i 0 V = 0 V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs i 2 V = 1h:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 + 1 ^ 2 = 1⊢ VAbs i 0 V = 0] at h V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs i 2 V = 1h:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 + 1 ^ 2 = 1⊢ VAbs i 0 V = 0
simp only [Fin.isValue, one_pow, add_eq_right] at h V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs i 2 V = 1h:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 = 0⊢ VAbs i 0 V = 0
nlinarith All goals completed! 🐙
lemma VAbs_thd_eq_one_snd_eq_zero {V : Quotient CKMMatrixSetoid} {i : Fin 3} (hV : VAbs i 2 V = 1) :
VAbs i 1 V = 0 := by V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs i 2 V = 1⊢ VAbs i 1 V = 0
have h := VAbs_sum_sq_row_eq_one V i V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs i 2 V = 1h:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 + VAbs i 2 V ^ 2 = 1⊢ VAbs i 1 V = 0
rw [hV V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs i 2 V = 1h:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 + 1 ^ 2 = 1⊢ VAbs i 1 V = 0 V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs i 2 V = 1h:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 + 1 ^ 2 = 1⊢ VAbs i 1 V = 0] at h V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs i 2 V = 1h:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 + 1 ^ 2 = 1⊢ VAbs i 1 V = 0
simp only [Fin.isValue, one_pow, add_eq_right] at h V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs i 2 V = 1h:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 = 0⊢ VAbs i 1 V = 0
nlinarith All goals completed! 🐙
lemma conj_Vtb_cross_product {V : CKMMatrix} {τ : ℝ}
(hτ : [V]t = cexp (τ * I) • (conj [V]u ⨯₃ conj [V]c)) :
conj [V]tb = cexp (- τ * I) * ([V]cs * [V]ud - [V]us * [V]cd) := by V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ (starRingEnd ℂ) (↑V 2 2) = cexp (-↑τ * I) * (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0)
have h1 := congrFun hτ 2 V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1:[V]t 2 = (cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)) 2⊢ (starRingEnd ℂ) (↑V 2 2) = cexp (-↑τ * I) * (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0)
simp only [tRow, Fin.isValue, cons_val_two, Nat.succ_eq_add_one, Nat.reduceAdd, tail_cons,
head_cons, crossProduct, uRow, cRow, LinearMap.mk₂_apply, Pi.conj_apply, cons_val_one,
cons_val_zero, Pi.smul_apply, smul_eq_mul] at h1 V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1:↑V 2 2 =
cexp (↑τ * I) *
((starRingEnd ℂ) (↑V 0 0) * (starRingEnd ℂ) (↑V 1 1) - (starRingEnd ℂ) (↑V 0 1) * (starRingEnd ℂ) (↑V 1 0))⊢ (starRingEnd ℂ) (↑V 2 2) = cexp (-↑τ * I) * (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0)
apply congrArg conj at h1 V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1✝:↑V 2 2 =
cexp (↑τ * I) *
((starRingEnd ℂ) (↑V 0 0) * (starRingEnd ℂ) (↑V 1 1) - (starRingEnd ℂ) (↑V 0 1) * (starRingEnd ℂ) (↑V 1 0))h1:(starRingEnd ℂ) (↑V 2 2) =
(starRingEnd ℂ)
(cexp (↑τ * I) *
((starRingEnd ℂ) (↑V 0 0) * (starRingEnd ℂ) (↑V 1 1) - (starRingEnd ℂ) (↑V 0 1) * (starRingEnd ℂ) (↑V 1 0)))⊢ (starRingEnd ℂ) (↑V 2 2) = cexp (-↑τ * I) * (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0)
simp only [Fin.isValue, _root_.map_mul, map_sub, RingHomCompTriple.comp_apply,
RingHom.id_apply] at h1 V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1✝:↑V 2 2 =
cexp (↑τ * I) *
((starRingEnd ℂ) (↑V 0 0) * (starRingEnd ℂ) (↑V 1 1) - (starRingEnd ℂ) (↑V 0 1) * (starRingEnd ℂ) (↑V 1 0))h1:(starRingEnd ℂ) (↑V 2 2) = (starRingEnd ℂ) (cexp (↑τ * I)) * (↑V 0 0 * ↑V 1 1 - ↑V 0 1 * ↑V 1 0)⊢ (starRingEnd ℂ) (↑V 2 2) = cexp (-↑τ * I) * (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0)
rw [h1 V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1✝:↑V 2 2 =
cexp (↑τ * I) *
((starRingEnd ℂ) (↑V 0 0) * (starRingEnd ℂ) (↑V 1 1) - (starRingEnd ℂ) (↑V 0 1) * (starRingEnd ℂ) (↑V 1 0))h1:(starRingEnd ℂ) (↑V 2 2) = (starRingEnd ℂ) (cexp (↑τ * I)) * (↑V 0 0 * ↑V 1 1 - ↑V 0 1 * ↑V 1 0)⊢ (starRingEnd ℂ) (cexp (↑τ * I)) * (↑V 0 0 * ↑V 1 1 - ↑V 0 1 * ↑V 1 0) =
cexp (-↑τ * I) * (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1✝:↑V 2 2 =
cexp (↑τ * I) *
((starRingEnd ℂ) (↑V 0 0) * (starRingEnd ℂ) (↑V 1 1) - (starRingEnd ℂ) (↑V 0 1) * (starRingEnd ℂ) (↑V 1 0))h1:(starRingEnd ℂ) (↑V 2 2) = (starRingEnd ℂ) (cexp (↑τ * I)) * (↑V 0 0 * ↑V 1 1 - ↑V 0 1 * ↑V 1 0)⊢ (starRingEnd ℂ) (cexp (↑τ * I)) * (↑V 0 0 * ↑V 1 1 - ↑V 0 1 * ↑V 1 0) =
cexp (-↑τ * I) * (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0)] V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1✝:↑V 2 2 =
cexp (↑τ * I) *
((starRingEnd ℂ) (↑V 0 0) * (starRingEnd ℂ) (↑V 1 1) - (starRingEnd ℂ) (↑V 0 1) * (starRingEnd ℂ) (↑V 1 0))h1:(starRingEnd ℂ) (↑V 2 2) = (starRingEnd ℂ) (cexp (↑τ * I)) * (↑V 0 0 * ↑V 1 1 - ↑V 0 1 * ↑V 1 0)⊢ (starRingEnd ℂ) (cexp (↑τ * I)) * (↑V 0 0 * ↑V 1 1 - ↑V 0 1 * ↑V 1 0) =
cexp (-↑τ * I) * (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0)
simp only [← exp_conj, _root_.map_mul, conj_ofReal, conj_I, mul_neg, Fin.isValue, neg_mul] V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1✝:↑V 2 2 =
cexp (↑τ * I) *
((starRingEnd ℂ) (↑V 0 0) * (starRingEnd ℂ) (↑V 1 1) - (starRingEnd ℂ) (↑V 0 1) * (starRingEnd ℂ) (↑V 1 0))h1:(starRingEnd ℂ) (↑V 2 2) = (starRingEnd ℂ) (cexp (↑τ * I)) * (↑V 0 0 * ↑V 1 1 - ↑V 0 1 * ↑V 1 0)⊢ cexp (-(↑τ * I)) * (↑V 0 0 * ↑V 1 1 - ↑V 0 1 * ↑V 1 0) = cexp (-(↑τ * I)) * (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0)
simp only [Fin.isValue, mul_eq_mul_left_iff, sub_left_inj, exp_ne_zero, or_false] V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1✝:↑V 2 2 =
cexp (↑τ * I) *
((starRingEnd ℂ) (↑V 0 0) * (starRingEnd ℂ) (↑V 1 1) - (starRingEnd ℂ) (↑V 0 1) * (starRingEnd ℂ) (↑V 1 0))h1:(starRingEnd ℂ) (↑V 2 2) = (starRingEnd ℂ) (cexp (↑τ * I)) * (↑V 0 0 * ↑V 1 1 - ↑V 0 1 * ↑V 1 0)⊢ ↑V 0 0 * ↑V 1 1 = ↑V 1 1 * ↑V 0 0
exact mul_comm _ _ All goals completed! 🐙
lemma conj_Vtb_mul_Vud {V : CKMMatrix} {τ : ℝ}
(hτ : [V]t = cexp (τ * I) • (conj [V]u ⨯₃ conj [V]c)) :
cexp (τ * I) * conj [V]tb * conj [V]ud =
[V]cs * (normSq [V]ud + normSq [V]us) + [V]cb * conj [V]ub * [V]us := by V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ cexp (↑τ * I) * (starRingEnd ℂ) (↑V 2 2) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1
rw [conj_Vtb_cross_product hτ V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ cexp (↑τ * I) * (cexp (-↑τ * I) * (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0)) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1 V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ cexp (↑τ * I) * (cexp (-↑τ * I) * (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0)) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1] V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ cexp (↑τ * I) * (cexp (-↑τ * I) * (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0)) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1
simp only [neg_mul, exp_neg, Fin.isValue, ne_eq, exp_ne_zero, not_false_eq_true,
mul_inv_cancel_left₀] V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1
have h2 : ([V]cs * [V]ud - [V]us * [V]cd) * conj [V]ud = [V]cs
* [V]ud * conj [V]ud - [V]us * ([V]cd * conj [V]ud) := by V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ cexp (↑τ * I) * (starRingEnd ℂ) (↑V 2 2) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1 V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 0 1 * (↑V 1 0 * (starRingEnd ℂ) (↑V 0 0))⊢ (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1
ring V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 0 1 * (↑V 1 0 * (starRingEnd ℂ) (↑V 0 0))⊢ (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1 V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 0 1 * (↑V 1 0 * (starRingEnd ℂ) (↑V 0 0))⊢ (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1
rw [h2, V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 0 1 * (↑V 1 0 * (starRingEnd ℂ) (↑V 0 0))⊢ ↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 0 1 * (↑V 1 0 * (starRingEnd ℂ) (↑V 0 0)) =
↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1 V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 0 1 * (↑V 1 0 * (starRingEnd ℂ) (↑V 0 0))⊢ ↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) -
↑V 0 1 * (-↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) =
↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1 V.Vcd_mul_conj_Vud V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 0 1 * (↑V 1 0 * (starRingEnd ℂ) (↑V 0 0))⊢ ↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) -
↑V 0 1 * (-↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) =
↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1 V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 0 1 * (↑V 1 0 * (starRingEnd ℂ) (↑V 0 0))⊢ ↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) -
↑V 0 1 * (-↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) =
↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1] V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 0 1 * (↑V 1 0 * (starRingEnd ℂ) (↑V 0 0))⊢ ↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) -
↑V 0 1 * (-↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) =
↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1
rw [normSq_eq_conj_mul_self, V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 0 1 * (↑V 1 0 * (starRingEnd ℂ) (↑V 0 0))⊢ ↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) -
↑V 0 1 * (-↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) =
↑V 1 1 * ((starRingEnd ℂ) (↑V 0 0) * ↑V 0 0 + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1 V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 0 1 * (↑V 1 0 * (starRingEnd ℂ) (↑V 0 0))⊢ ↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) -
↑V 0 1 * (-↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) =
↑V 1 1 * ((starRingEnd ℂ) (↑V 0 0) * ↑V 0 0 + (starRingEnd ℂ) (↑V 0 1) * ↑V 0 1) +
↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1 normSq_eq_conj_mul_self V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 0 1 * (↑V 1 0 * (starRingEnd ℂ) (↑V 0 0))⊢ ↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) -
↑V 0 1 * (-↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) =
↑V 1 1 * ((starRingEnd ℂ) (↑V 0 0) * ↑V 0 0 + (starRingEnd ℂ) (↑V 0 1) * ↑V 0 1) +
↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1 V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 0 1 * (↑V 1 0 * (starRingEnd ℂ) (↑V 0 0))⊢ ↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) -
↑V 0 1 * (-↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) =
↑V 1 1 * ((starRingEnd ℂ) (↑V 0 0) * ↑V 0 0 + (starRingEnd ℂ) (↑V 0 1) * ↑V 0 1) +
↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1] V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 0 1 * (↑V 1 0 * (starRingEnd ℂ) (↑V 0 0))⊢ ↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) -
↑V 0 1 * (-↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) =
↑V 1 1 * ((starRingEnd ℂ) (↑V 0 0) * ↑V 0 0 + (starRingEnd ℂ) (↑V 0 1) * ↑V 0 1) +
↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1
simp only [Fin.isValue, neg_mul] V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 0) =
↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 0 1 * (↑V 1 0 * (starRingEnd ℂ) (↑V 0 0))⊢ ↑V 1 1 * ↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) -
↑V 0 1 * (-(↑V 1 1 * (starRingEnd ℂ) (↑V 0 1)) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) =
↑V 1 1 * ((starRingEnd ℂ) (↑V 0 0) * ↑V 0 0 + (starRingEnd ℂ) (↑V 0 1) * ↑V 0 1) +
↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1
ring All goals completed! 🐙
lemma conj_Vtb_mul_Vus {V : CKMMatrix} {τ : ℝ}
(hτ : [V]t = cexp (τ * I) • (conj [V]u ⨯₃ conj [V]c)) :
cexp (τ * I) * conj [V]tb * conj [V]us =
- ([V]cd * (normSq [V]ud + normSq [V]us) + [V]cb * conj ([V]ub) * [V]ud) := by V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ cexp (↑τ * I) * (starRingEnd ℂ) (↑V 2 2) * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0)
rw [conj_Vtb_cross_product hτ V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ cexp (↑τ * I) * (cexp (-↑τ * I) * (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0)) * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0) V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ cexp (↑τ * I) * (cexp (-↑τ * I) * (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0)) * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0)] V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ cexp (↑τ * I) * (cexp (-↑τ * I) * (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0)) * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0)
simp only [neg_mul, exp_neg, Fin.isValue, ne_eq, exp_ne_zero, not_false_eq_true,
mul_inv_cancel_left₀, neg_add_rev] V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0) + -(↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))))
have h2 : ([V]cs * [V]ud - [V]us * [V]cd) * conj [V]us = ([V]cs
* conj [V]us) * [V]ud - [V]us * [V]cd * conj [V]us := by V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ cexp (↑τ * I) * (starRingEnd ℂ) (↑V 2 2) * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0) V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 1) =
↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) * ↑V 0 0 - ↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1)⊢ (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0) + -(↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))))
ring V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 1) =
↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) * ↑V 0 0 - ↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1)⊢ (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0) + -(↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)))) V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 1) =
↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) * ↑V 0 0 - ↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1)⊢ (↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0) + -(↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))))
rw [h2, V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 1) =
↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) * ↑V 0 0 - ↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1)⊢ ↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) * ↑V 0 0 - ↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0) + -(↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)))) V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 1) =
↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) * ↑V 0 0 - ↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1)⊢ (-↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) * ↑V 0 0 -
↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0) + -(↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)))) V.Vcs_mul_conj_Vus V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 1) =
↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) * ↑V 0 0 - ↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1)⊢ (-↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) * ↑V 0 0 -
↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0) + -(↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)))) V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 1) =
↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) * ↑V 0 0 - ↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1)⊢ (-↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) * ↑V 0 0 -
↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0) + -(↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))))] V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 1) =
↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) * ↑V 0 0 - ↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1)⊢ (-↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) * ↑V 0 0 -
↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0) + -(↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))))
rw [normSq_eq_conj_mul_self, V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 1) =
↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) * ↑V 0 0 - ↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1)⊢ (-↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) * ↑V 0 0 -
↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0) + -(↑V 1 0 * ((starRingEnd ℂ) (↑V 0 0) * ↑V 0 0 + ↑(normSq (↑V 0 1)))) V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 1) =
↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) * ↑V 0 0 - ↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1)⊢ (-↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) * ↑V 0 0 -
↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0) +
-(↑V 1 0 * ((starRingEnd ℂ) (↑V 0 0) * ↑V 0 0 + (starRingEnd ℂ) (↑V 0 1) * ↑V 0 1)) normSq_eq_conj_mul_self V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 1) =
↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) * ↑V 0 0 - ↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1)⊢ (-↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) * ↑V 0 0 -
↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0) +
-(↑V 1 0 * ((starRingEnd ℂ) (↑V 0 0) * ↑V 0 0 + (starRingEnd ℂ) (↑V 0 1) * ↑V 0 1)) V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 1) =
↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) * ↑V 0 0 - ↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1)⊢ (-↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) * ↑V 0 0 -
↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0) +
-(↑V 1 0 * ((starRingEnd ℂ) (↑V 0 0) * ↑V 0 0 + (starRingEnd ℂ) (↑V 0 1) * ↑V 0 1))] V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 1) =
↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) * ↑V 0 0 - ↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1)⊢ (-↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) * ↑V 0 0 -
↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0) +
-(↑V 1 0 * ((starRingEnd ℂ) (↑V 0 0) * ↑V 0 0 + (starRingEnd ℂ) (↑V 0 1) * ↑V 0 1))
simp only [Fin.isValue, neg_mul] V:CKMMatrixτ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(↑V 1 1 * ↑V 0 0 - ↑V 0 1 * ↑V 1 0) * (starRingEnd ℂ) (↑V 0 1) =
↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) * ↑V 0 0 - ↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1)⊢ (-(↑V 1 0 * (starRingEnd ℂ) (↑V 0 0)) - ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2)) * ↑V 0 0 -
↑V 0 1 * ↑V 1 0 * (starRingEnd ℂ) (↑V 0 1) =
-(↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0) +
-(↑V 1 0 * ((starRingEnd ℂ) (↑V 0 0) * ↑V 0 0 + (starRingEnd ℂ) (↑V 0 1) * ↑V 0 1))
ring All goals completed! 🐙
lemma cs_of_ud_us_ub_cb_tb {V : CKMMatrix} (h : [V]ud ≠ 0 ∨ [V]us ≠ 0)
{τ : ℝ} (hτ : [V]t = cexp (τ * I) • (conj ([V]u) ⨯₃ conj ([V]c))) :
[V]cs = (- conj [V]ub * [V]us * [V]cb +
cexp (τ * I) * conj [V]tb * conj [V]ud) / (normSq [V]ud + normSq [V]us) := by V:CKMMatrixh:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0τ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ↑V 1 1 =
(-(starRingEnd ℂ) (↑V 0 2) * ↑V 0 1 * ↑V 1 2 + cexp (↑τ * I) * (starRingEnd ℂ) (↑V 2 2) * (starRingEnd ℂ) (↑V 0 0)) /
(↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)))
have h1 := normSq_Vud_plus_normSq_Vus_ne_zero_ℂ h V:CKMMatrixh:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0τ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1:↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)) ≠ 0⊢ ↑V 1 1 =
(-(starRingEnd ℂ) (↑V 0 2) * ↑V 0 1 * ↑V 1 2 + cexp (↑τ * I) * (starRingEnd ℂ) (↑V 2 2) * (starRingEnd ℂ) (↑V 0 0)) /
(↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)))
rw [conj_Vtb_mul_Vud hτ V:CKMMatrixh:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0τ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1:↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)) ≠ 0⊢ ↑V 1 1 =
(-(starRingEnd ℂ) (↑V 0 2) * ↑V 0 1 * ↑V 1 2 +
(↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1)) /
(↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) V:CKMMatrixh:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0τ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1:↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)) ≠ 0⊢ ↑V 1 1 =
(-(starRingEnd ℂ) (↑V 0 2) * ↑V 0 1 * ↑V 1 2 +
(↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1)) /
(↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)))] V:CKMMatrixh:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0τ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1:↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)) ≠ 0⊢ ↑V 1 1 =
(-(starRingEnd ℂ) (↑V 0 2) * ↑V 0 1 * ↑V 1 2 +
(↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1)) /
(↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)))
field_simp V:CKMMatrixh:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0τ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1:↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)) ≠ 0⊢ ↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) =
-((starRingEnd ℂ) (↑V 0 2) * ↑V 0 1 * ↑V 1 2) +
(↑V 1 1 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + (starRingEnd ℂ) (↑V 0 2) * ↑V 0 1 * ↑V 1 2)
ring All goals completed! 🐙
lemma cd_of_ud_us_ub_cb_tb {V : CKMMatrix} (h : [V]ud ≠ 0 ∨ [V]us ≠ 0)
{τ : ℝ} (hτ : [V]t = cexp (τ * I) • (conj ([V]u) ⨯₃ conj ([V]c))) :
[V]cd = - (conj [V]ub * [V]ud * [V]cb + cexp (τ * I) * conj [V]tb * conj [V]us) /
(normSq [V]ud + normSq [V]us) := by V:CKMMatrixh:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0τ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ↑V 1 0 =
-((starRingEnd ℂ) (↑V 0 2) * ↑V 0 0 * ↑V 1 2 + cexp (↑τ * I) * (starRingEnd ℂ) (↑V 2 2) * (starRingEnd ℂ) (↑V 0 1)) /
(↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)))
have h1 := normSq_Vud_plus_normSq_Vus_ne_zero_ℂ h V:CKMMatrixh:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0τ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1:↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)) ≠ 0⊢ ↑V 1 0 =
-((starRingEnd ℂ) (↑V 0 2) * ↑V 0 0 * ↑V 1 2 + cexp (↑τ * I) * (starRingEnd ℂ) (↑V 2 2) * (starRingEnd ℂ) (↑V 0 1)) /
(↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)))
rw [conj_Vtb_mul_Vus hτ V:CKMMatrixh:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0τ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1:↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)) ≠ 0⊢ ↑V 1 0 =
-((starRingEnd ℂ) (↑V 0 2) * ↑V 0 0 * ↑V 1 2 +
-(↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0)) /
(↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) V:CKMMatrixh:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0τ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1:↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)) ≠ 0⊢ ↑V 1 0 =
-((starRingEnd ℂ) (↑V 0 2) * ↑V 0 0 * ↑V 1 2 +
-(↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0)) /
(↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)))] V:CKMMatrixh:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0τ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1:↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)) ≠ 0⊢ ↑V 1 0 =
-((starRingEnd ℂ) (↑V 0 2) * ↑V 0 0 * ↑V 1 2 +
-(↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0)) /
(↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)))
field_simp V:CKMMatrixh:↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0τ:ℝhτ:[V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1:↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1)) ≠ 0⊢ ↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) =
-((starRingEnd ℂ) (↑V 0 2) * ↑V 0 0 * ↑V 1 2 +
-(↑V 1 0 * (↑(normSq (↑V 0 0)) + ↑(normSq (↑V 0 1))) + (starRingEnd ℂ) (↑V 0 2) * ↑V 0 0 * ↑V 1 2))
ring All goals completed! 🐙
lemma VAbs_ge_zero (i j : Fin 3) (V : Quotient CKMMatrixSetoid) : 0 ≤ VAbs i j V := by i:Fin 3j:Fin 3V:Quotient CKMMatrixSetoid⊢ 0 ≤ VAbs i j V
obtain ⟨V, hV⟩ := Quot.exists_rep V i:Fin 3j:Fin 3V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:Quot.mk (⇑CKMMatrixSetoid) V = V✝⊢ 0 ≤ VAbs i j V
rw [← hV i:Fin 3j:Fin 3V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:Quot.mk (⇑CKMMatrixSetoid) V = V✝⊢ 0 ≤ VAbs i j (Quot.mk (⇑CKMMatrixSetoid) V) i:Fin 3j:Fin 3V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:Quot.mk (⇑CKMMatrixSetoid) V = V✝⊢ 0 ≤ VAbs i j (Quot.mk (⇑CKMMatrixSetoid) V)] i:Fin 3j:Fin 3V✝:Quotient CKMMatrixSetoidV:CKMMatrixhV:Quot.mk (⇑CKMMatrixSetoid) V = V✝⊢ 0 ≤ VAbs i j (Quot.mk (⇑CKMMatrixSetoid) V)
exact norm_nonneg _ All goals completed! 🐙lemma VAbs_leq_one (i j : Fin 3) (V : Quotient CKMMatrixSetoid) : VAbs i j V ≤ 1 := by i:Fin 3j:Fin 3V:Quotient CKMMatrixSetoid⊢ VAbs i j V ≤ 1
have h := VAbs_sum_sq_row_eq_one V i i:Fin 3j:Fin 3V:Quotient CKMMatrixSetoidh:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 + VAbs i 2 V ^ 2 = 1⊢ VAbs i j V ≤ 1
fin_cases j «0» i:Fin 3V:Quotient CKMMatrixSetoidh:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 + VAbs i 2 V ^ 2 = 1⊢ VAbs i ((fun i => i) ⟨0, ⋯⟩) V ≤ 1«1» i:Fin 3V:Quotient CKMMatrixSetoidh:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 + VAbs i 2 V ^ 2 = 1⊢ VAbs i ((fun i => i) ⟨1, ⋯⟩) V ≤ 1«2» i:Fin 3V:Quotient CKMMatrixSetoidh:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 + VAbs i 2 V ^ 2 = 1⊢ VAbs i ((fun i => i) ⟨2, ⋯⟩) V ≤ 1
· «0» i:Fin 3V:Quotient CKMMatrixSetoidh:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 + VAbs i 2 V ^ 2 = 1⊢ VAbs i ((fun i => i) ⟨0, ⋯⟩) V ≤ 1 change VAbs i 0 V ≤ 1 «0» i:Fin 3V:Quotient CKMMatrixSetoidh:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 + VAbs i 2 V ^ 2 = 1⊢ VAbs i 0 V ≤ 1
nlinarith All goals completed! 🐙
· «1» i:Fin 3V:Quotient CKMMatrixSetoidh:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 + VAbs i 2 V ^ 2 = 1⊢ VAbs i ((fun i => i) ⟨1, ⋯⟩) V ≤ 1 change VAbs i 1 V ≤ 1 «1» i:Fin 3V:Quotient CKMMatrixSetoidh:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 + VAbs i 2 V ^ 2 = 1⊢ VAbs i 1 V ≤ 1
nlinarith All goals completed! 🐙
· «2» i:Fin 3V:Quotient CKMMatrixSetoidh:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 + VAbs i 2 V ^ 2 = 1⊢ VAbs i ((fun i => i) ⟨2, ⋯⟩) V ≤ 1 change VAbs i 2 V ≤ 1 «2» i:Fin 3V:Quotient CKMMatrixSetoidh:VAbs i 0 V ^ 2 + VAbs i 1 V ^ 2 + VAbs i 2 V ^ 2 = 1⊢ VAbs i 2 V ≤ 1
nlinarith All goals completed! 🐙
lemma VAbs_sum_sq_col_eq_one (V : Quotient CKMMatrixSetoid) (i : Fin 3) :
(VAbs 0 i V) ^ 2 + (VAbs 1 i V) ^ 2 + (VAbs 2 i V) ^ 2 = 1 := by V:Quotient CKMMatrixSetoidi:Fin 3⊢ VAbs 0 i V ^ 2 + VAbs 1 i V ^ 2 + VAbs 2 i V ^ 2 = 1
obtain ⟨V, hV⟩ := Quot.exists_rep V V✝:Quotient CKMMatrixSetoidi:Fin 3V:CKMMatrixhV:Quot.mk (⇑CKMMatrixSetoid) V = V✝⊢ VAbs 0 i V ^ 2 + VAbs 1 i V ^ 2 + VAbs 2 i V ^ 2 = 1
subst hV i:Fin 3V:CKMMatrix⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1
have hV := V.prop i:Fin 3V:CKMMatrixhV:↑V ∈ unitaryGroup (Fin 3) ℂ⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1
rw [mem_unitaryGroup_iff' i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1 i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1] at hV i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1
have ht := congrFun (congrFun hV i) i i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:(star ↑V * ↑V) i i = 1 i i⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1
simp only [mul_apply, star_apply, RCLike.star_def, Fin.sum_univ_three, Fin.isValue,
one_apply_eq] at ht i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:(starRingEnd ℂ) (↑V 0 i) * ↑V 0 i + (starRingEnd ℂ) (↑V 1 i) * ↑V 1 i + (starRingEnd ℂ) (↑V 2 i) * ↑V 2 i = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1
rw [mul_comm, i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑V 0 i * (starRingEnd ℂ) (↑V 0 i) + (starRingEnd ℂ) (↑V 1 i) * ↑V 1 i + (starRingEnd ℂ) (↑V 2 i) * ↑V 2 i = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1 i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(normSq (↑V 0 i)) + ↑(normSq (↑V 1 i)) + ↑(normSq (↑V 2 i)) = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1 mul_conj, i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(normSq (↑V 0 i)) + (starRingEnd ℂ) (↑V 1 i) * ↑V 1 i + (starRingEnd ℂ) (↑V 2 i) * ↑V 2 i = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1 i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(normSq (↑V 0 i)) + ↑(normSq (↑V 1 i)) + ↑(normSq (↑V 2 i)) = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1 mul_comm, i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(normSq (↑V 0 i)) + ↑V 1 i * (starRingEnd ℂ) (↑V 1 i) + (starRingEnd ℂ) (↑V 2 i) * ↑V 2 i = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1 i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(normSq (↑V 0 i)) + ↑(normSq (↑V 1 i)) + ↑(normSq (↑V 2 i)) = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1 mul_conj, i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(normSq (↑V 0 i)) + ↑(normSq (↑V 1 i)) + (starRingEnd ℂ) (↑V 2 i) * ↑V 2 i = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1 i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(normSq (↑V 0 i)) + ↑(normSq (↑V 1 i)) + ↑(normSq (↑V 2 i)) = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1 mul_comm, i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(normSq (↑V 0 i)) + ↑(normSq (↑V 1 i)) + ↑V 2 i * (starRingEnd ℂ) (↑V 2 i) = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1 i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(normSq (↑V 0 i)) + ↑(normSq (↑V 1 i)) + ↑(normSq (↑V 2 i)) = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1 mul_conj i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(normSq (↑V 0 i)) + ↑(normSq (↑V 1 i)) + ↑(normSq (↑V 2 i)) = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1 i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(normSq (↑V 0 i)) + ↑(normSq (↑V 1 i)) + ↑(normSq (↑V 2 i)) = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1] at ht i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(normSq (↑V 0 i)) + ↑(normSq (↑V 1 i)) + ↑(normSq (↑V 2 i)) = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1
repeat rw [← Complex.sq_norm i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(‖↑V 0 i‖ ^ 2) + ↑(normSq (↑V 1 i)) + ↑(normSq (↑V 2 i)) = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1 i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(‖↑V 0 i‖ ^ 2) + ↑(‖↑V 1 i‖ ^ 2) + ↑(‖↑V 2 i‖ ^ 2) = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1] i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(‖↑V 0 i‖ ^ 2) + ↑(‖↑V 1 i‖ ^ 2) + ↑(normSq (↑V 2 i)) = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1 i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(‖↑V 0 i‖ ^ 2) + ↑(‖↑V 1 i‖ ^ 2) + ↑(‖↑V 2 i‖ ^ 2) = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1 at ht i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(‖↑V 0 i‖ ^ 2) + ↑(‖↑V 1 i‖ ^ 2) + ↑(‖↑V 2 i‖ ^ 2) = 1⊢ VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 =
1
rw [← ofReal_inj i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(‖↑V 0 i‖ ^ 2) + ↑(‖↑V 1 i‖ ^ 2) + ↑(‖↑V 2 i‖ ^ 2) = 1⊢ ↑(VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2) =
↑1 i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(‖↑V 0 i‖ ^ 2) + ↑(‖↑V 1 i‖ ^ 2) + ↑(‖↑V 2 i‖ ^ 2) = 1⊢ ↑(VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2) =
↑1] i:Fin 3V:CKMMatrixhV:star ↑V * ↑V = 1ht:↑(‖↑V 0 i‖ ^ 2) + ↑(‖↑V 1 i‖ ^ 2) + ↑(‖↑V 2 i‖ ^ 2) = 1⊢ ↑(VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 + VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2 +
VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V) ^ 2) =
↑1
simp_all only [SetLike.coe_mem, Unitary.star_mul_self_of_mem, Fin.isValue, ofReal_pow, ofReal_add,
ofReal_one] i:Fin 3V:CKMMatrixht:↑‖↑V 0 i‖ ^ 2 + ↑‖↑V 1 i‖ ^ 2 + ↑‖↑V 2 i‖ ^ 2 = 1⊢ ↑(VAbs 0 i (Quot.mk (⇑CKMMatrixSetoid) V)) ^ 2 + ↑(VAbs 1 i (Quot.mk (⇑CKMMatrixSetoid) V)) ^ 2 +
↑(VAbs 2 i (Quot.mk (⇑CKMMatrixSetoid) V)) ^ 2 =
1
exact ht All goals completed! 🐙lemma thd_col_normalized_abs (V : CKMMatrix) :
norm [V]ub ^ 2 + norm [V]cb ^ 2 + norm [V]tb ^ 2 = 1 := by V:CKMMatrix⊢ ‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1
have h1 := VAbs_sum_sq_col_eq_one ⟦V⟧ 2 V:CKMMatrixh1:VAbs 0 2 ⟦V⟧ ^ 2 + VAbs 1 2 ⟦V⟧ ^ 2 + VAbs 2 2 ⟦V⟧ ^ 2 = 1⊢ ‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1
simp only [VAbs, VAbs', Fin.isValue, Quotient.lift_mk] at h1 V:CKMMatrixh1:‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1⊢ ‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1
exact h1 All goals completed! 🐙
lemma thd_col_normalized_normSq (V : CKMMatrix) :
normSq [V]ub + normSq [V]cb + normSq [V]tb = 1 := by V:CKMMatrix⊢ normSq (↑V 0 2) + normSq (↑V 1 2) + normSq (↑V 2 2) = 1
have h1 := V.thd_col_normalized_abs V:CKMMatrixh1:‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1⊢ normSq (↑V 0 2) + normSq (↑V 1 2) + normSq (↑V 2 2) = 1
repeat rw [Complex.sq_norm V:CKMMatrixh1:normSq (↑V 0 2) + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1⊢ normSq (↑V 0 2) + normSq (↑V 1 2) + normSq (↑V 2 2) = 1 V:CKMMatrixh1:normSq (↑V 0 2) + normSq (↑V 1 2) + normSq (↑V 2 2) = 1⊢ normSq (↑V 0 2) + normSq (↑V 1 2) + normSq (↑V 2 2) = 1] V:CKMMatrixh1:normSq (↑V 0 2) + normSq (↑V 1 2) + ‖↑V 2 2‖ ^ 2 = 1⊢ normSq (↑V 0 2) + normSq (↑V 1 2) + normSq (↑V 2 2) = 1 V:CKMMatrixh1:normSq (↑V 0 2) + normSq (↑V 1 2) + normSq (↑V 2 2) = 1⊢ normSq (↑V 0 2) + normSq (↑V 1 2) + normSq (↑V 2 2) = 1 at h1 V:CKMMatrixh1:normSq (↑V 0 2) + normSq (↑V 1 2) + normSq (↑V 2 2) = 1⊢ normSq (↑V 0 2) + normSq (↑V 1 2) + normSq (↑V 2 2) = 1
exact h1 All goals completed! 🐙
lemma cb_eq_zero_of_ud_us_zero {V : CKMMatrix} (h : [V]ud = 0 ∧ [V]us = 0) :
[V]cb = 0 := by V:CKMMatrixh:↑V 0 0 = 0 ∧ ↑V 0 1 = 0⊢ ↑V 1 2 = 0
have h1 := fst_row_normalized_abs V V:CKMMatrixh:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + ‖↑V 0 2‖ ^ 2 = 1⊢ ↑V 1 2 = 0
rw [← thd_col_normalized_abs V V:CKMMatrixh:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + ‖↑V 0 2‖ ^ 2 = ‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2⊢ ↑V 1 2 = 0 V:CKMMatrixh:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + ‖↑V 0 2‖ ^ 2 = ‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2⊢ ↑V 1 2 = 0] at h1 V:CKMMatrixh:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:‖↑V 0 0‖ ^ 2 + ‖↑V 0 1‖ ^ 2 + ‖↑V 0 2‖ ^ 2 = ‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2⊢ ↑V 1 2 = 0
simp only [Fin.isValue, h] at h1 V:CKMMatrixh:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:‖0‖ ^ 2 + ‖0‖ ^ 2 + ‖↑V 0 2‖ ^ 2 = ‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2⊢ ↑V 1 2 = 0
rw [add_assoc V:CKMMatrixh:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:‖0‖ ^ 2 + (‖0‖ ^ 2 + ‖↑V 0 2‖ ^ 2) = ‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2⊢ ↑V 1 2 = 0 V:CKMMatrixh:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:‖0‖ ^ 2 + (‖0‖ ^ 2 + ‖↑V 0 2‖ ^ 2) = ‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2⊢ ↑V 1 2 = 0] at h1 V:CKMMatrixh:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:‖0‖ ^ 2 + (‖0‖ ^ 2 + ‖↑V 0 2‖ ^ 2) = ‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2⊢ ↑V 1 2 = 0
simp only [norm_zero, ne_eq, OfNat.ofNat_ne_zero, not_false_eq_true, zero_pow, Fin.isValue,
zero_add, add_assoc, left_eq_add] at h1 V:CKMMatrixh:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 0⊢ ↑V 1 2 = 0
rw [add_eq_zero_iff_of_nonneg (sq_nonneg _) (sq_nonneg _) V:CKMMatrixh:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:‖↑V 1 2‖ ^ 2 = 0 ∧ ‖↑V 2 2‖ ^ 2 = 0⊢ ↑V 1 2 = 0 V:CKMMatrixh:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:‖↑V 1 2‖ ^ 2 = 0 ∧ ‖↑V 2 2‖ ^ 2 = 0⊢ ↑V 1 2 = 0] at h1 V:CKMMatrixh:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:‖↑V 1 2‖ ^ 2 = 0 ∧ ‖↑V 2 2‖ ^ 2 = 0⊢ ↑V 1 2 = 0
simp only [Fin.isValue, ne_eq, OfNat.ofNat_ne_zero, not_false_eq_true, pow_eq_zero_iff,
norm_eq_zero] at h1 V:CKMMatrixh:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:↑V 1 2 = 0 ∧ ↑V 2 2 = 0⊢ ↑V 1 2 = 0
exact h1.1 All goals completed! 🐙
lemma cs_of_ud_us_zero {V : CKMMatrix} (ha : ¬ ([V]ud ≠ 0 ∨ [V]us ≠ 0)) :
VcsAbs ⟦V⟧ = √(1 - VcdAbs ⟦V⟧ ^ 2) := by V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)⊢ VcsAbs ⟦V⟧ = √(1 - VcdAbs ⟦V⟧ ^ 2)
have h1 := snd_row_normalized_abs V V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1⊢ VcsAbs ⟦V⟧ = √(1 - VcdAbs ⟦V⟧ ^ 2)
symm V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1⊢ √(1 - VcdAbs ⟦V⟧ ^ 2) = VcsAbs ⟦V⟧
rw [Real.sqrt_eq_iff_eq_sq V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1⊢ 1 - VcdAbs ⟦V⟧ ^ 2 = VcsAbs ⟦V⟧ ^ 2hx V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1⊢ 0 ≤ 1 - VcdAbs ⟦V⟧ ^ 2hy V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1⊢ 0 ≤ VcsAbs ⟦V⟧ V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1⊢ 1 - VcdAbs ⟦V⟧ ^ 2 = VcsAbs ⟦V⟧ ^ 2hx V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1⊢ 0 ≤ 1 - VcdAbs ⟦V⟧ ^ 2hy V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1⊢ 0 ≤ VcsAbs ⟦V⟧] V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1⊢ 1 - VcdAbs ⟦V⟧ ^ 2 = VcsAbs ⟦V⟧ ^ 2hx V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1⊢ 0 ≤ 1 - VcdAbs ⟦V⟧ ^ 2hy V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1⊢ 0 ≤ VcsAbs ⟦V⟧
· V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1⊢ 1 - VcdAbs ⟦V⟧ ^ 2 = VcsAbs ⟦V⟧ ^ 2 simp only [Fin.isValue, ne_eq, not_or, Decidable.not_not] at ha V:CKMMatrixh1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1ha:↑V 0 0 = 0 ∧ ↑V 0 1 = 0⊢ 1 - VcdAbs ⟦V⟧ ^ 2 = VcsAbs ⟦V⟧ ^ 2
rw [cb_eq_zero_of_ud_us_zero ha V:CKMMatrixh1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖0‖ ^ 2 = 1ha:↑V 0 0 = 0 ∧ ↑V 0 1 = 0⊢ 1 - VcdAbs ⟦V⟧ ^ 2 = VcsAbs ⟦V⟧ ^ 2 V:CKMMatrixh1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖0‖ ^ 2 = 1ha:↑V 0 0 = 0 ∧ ↑V 0 1 = 0⊢ 1 - VcdAbs ⟦V⟧ ^ 2 = VcsAbs ⟦V⟧ ^ 2] at h1 V:CKMMatrixh1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖0‖ ^ 2 = 1ha:↑V 0 0 = 0 ∧ ↑V 0 1 = 0⊢ 1 - VcdAbs ⟦V⟧ ^ 2 = VcsAbs ⟦V⟧ ^ 2
simp only [Fin.isValue, norm_zero, ne_eq, OfNat.ofNat_ne_zero, not_false_eq_true, zero_pow,
add_zero] at h1 V:CKMMatrixha:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 = 1⊢ 1 - VcdAbs ⟦V⟧ ^ 2 = VcsAbs ⟦V⟧ ^ 2
simp only [VcdAbs, VAbs, VAbs', Fin.isValue, Quotient.lift_mk, VcsAbs] V:CKMMatrixha:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 = 1⊢ 1 - ‖↑V 1 0‖ ^ 2 = ‖↑V 1 1‖ ^ 2
rw [← h1 V:CKMMatrixha:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 = 1⊢ ‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 - ‖↑V 1 0‖ ^ 2 = ‖↑V 1 1‖ ^ 2 V:CKMMatrixha:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 = 1⊢ ‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 - ‖↑V 1 0‖ ^ 2 = ‖↑V 1 1‖ ^ 2] V:CKMMatrixha:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 = 1⊢ ‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 - ‖↑V 1 0‖ ^ 2 = ‖↑V 1 1‖ ^ 2
ring All goals completed! 🐙
· hx V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1⊢ 0 ≤ 1 - VcdAbs ⟦V⟧ ^ 2 simp only [VcdAbs, Fin.isValue, sub_nonneg, sq_le_one_iff_abs_le_one] hx V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1⊢ |VAbs 1 0 ⟦V⟧| ≤ 1
rw [@abs_le hx V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1⊢ -1 ≤ VAbs 1 0 ⟦V⟧ ∧ VAbs 1 0 ⟦V⟧ ≤ 1 hx V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1⊢ -1 ≤ VAbs 1 0 ⟦V⟧ ∧ VAbs 1 0 ⟦V⟧ ≤ 1]hx V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1⊢ -1 ≤ VAbs 1 0 ⟦V⟧ ∧ VAbs 1 0 ⟦V⟧ ≤ 1
have h1 := VAbs_leq_one 1 0 ⟦V⟧ hx V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1✝:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1h1:VAbs 1 0 ⟦V⟧ ≤ 1⊢ -1 ≤ VAbs 1 0 ⟦V⟧ ∧ VAbs 1 0 ⟦V⟧ ≤ 1
have h0 := VAbs_ge_zero 1 0 ⟦V⟧ hx V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1✝:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1h1:VAbs 1 0 ⟦V⟧ ≤ 1h0:0 ≤ VAbs 1 0 ⟦V⟧⊢ -1 ≤ VAbs 1 0 ⟦V⟧ ∧ VAbs 1 0 ⟦V⟧ ≤ 1
simp_all only [ne_eq, not_or, Decidable.not_not, and_true, ge_iff_le] hx V:CKMMatrixha:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1✝:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1h1:VAbs 1 0 ⟦V⟧ ≤ 1h0:0 ≤ VAbs 1 0 ⟦V⟧⊢ -1 ≤ VAbs 1 0 ⟦V⟧
have hn : -1 ≤ (0 : ℝ) := by V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)⊢ VcsAbs ⟦V⟧ = √(1 - VcdAbs ⟦V⟧ ^ 2) hx V:CKMMatrixha:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1✝:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1h1:VAbs 1 0 ⟦V⟧ ≤ 1h0:0 ≤ VAbs 1 0 ⟦V⟧hn:-1 ≤ 0⊢ -1 ≤ VAbs 1 0 ⟦V⟧ simphx V:CKMMatrixha:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1✝:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1h1:VAbs 1 0 ⟦V⟧ ≤ 1h0:0 ≤ VAbs 1 0 ⟦V⟧hn:-1 ≤ 0⊢ -1 ≤ VAbs 1 0 ⟦V⟧hx V:CKMMatrixha:↑V 0 0 = 0 ∧ ↑V 0 1 = 0h1✝:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1h1:VAbs 1 0 ⟦V⟧ ≤ 1h0:0 ≤ VAbs 1 0 ⟦V⟧hn:-1 ≤ 0⊢ -1 ≤ VAbs 1 0 ⟦V⟧
exact hn.trans h0 All goals completed! 🐙
· hy V:CKMMatrixha:¬(↑V 0 0 ≠ 0 ∨ ↑V 0 1 ≠ 0)h1:‖↑V 1 0‖ ^ 2 + ‖↑V 1 1‖ ^ 2 + ‖↑V 1 2‖ ^ 2 = 1⊢ 0 ≤ VcsAbs ⟦V⟧ exact VAbs_ge_zero _ _ ⟦V⟧ All goals completed! 🐙lemma VcbAbs_sq_add_VtbAbs_sq (V : Quotient CKMMatrixSetoid) :
VcbAbs V ^ 2 + VtbAbs V ^ 2 = 1 - VubAbs V ^2 := by V:Quotient CKMMatrixSetoid⊢ VcbAbs V ^ 2 + VtbAbs V ^ 2 = 1 - VubAbs V ^ 2
linear_combination (VAbs_sum_sq_col_eq_one V 2) All goals completed! 🐙
lemma cb_tb_ne_zero_iff_ub_ne_one (V : CKMMatrix) :
[V]cb ≠ 0 ∨ [V]tb ≠ 0 ↔ norm [V]ub ≠ 1 := by V:CKMMatrix⊢ ↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0 ↔ ‖↑V 0 2‖ ≠ 1
have h2 := V.thd_col_normalized_abs V:CKMMatrixh2:‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1⊢ ↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0 ↔ ‖↑V 0 2‖ ≠ 1
refine Iff.intro (fun h h1 => ?_) (fun h => ?_) refine_1 V:CKMMatrixh2:‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1h:↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0h1:‖↑V 0 2‖ = 1⊢ Falserefine_2 V:CKMMatrixh2:‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1h:‖↑V 0 2‖ ≠ 1⊢ ↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0
· refine_1 V:CKMMatrixh2:‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1h:↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0h1:‖↑V 0 2‖ = 1⊢ False rw [h1 refine_1 V:CKMMatrixh2:1 ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1h:↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0h1:‖↑V 0 2‖ = 1⊢ False refine_1 V:CKMMatrixh2:1 ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1h:↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0h1:‖↑V 0 2‖ = 1⊢ False] at h2 refine_1 V:CKMMatrixh2:1 ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1h:↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0h1:‖↑V 0 2‖ = 1⊢ False
simp only [one_pow, Fin.isValue] at h2 refine_1 V:CKMMatrixh:↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0h1:‖↑V 0 2‖ = 1h2:1 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1⊢ False
have h2 : norm (V.1 1 2) ^ 2 + norm (V.1 2 2) ^ 2 = 0 := by V:CKMMatrix⊢ ↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0 ↔ ‖↑V 0 2‖ ≠ 1 refine_1 V:CKMMatrixh:↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0h1:‖↑V 0 2‖ = 1h2✝:1 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1h2:‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 0⊢ False
linear_combination h2refine_1 V:CKMMatrixh:↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0h1:‖↑V 0 2‖ = 1h2✝:1 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1h2:‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 0⊢ Falserefine_1 V:CKMMatrixh:↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0h1:‖↑V 0 2‖ = 1h2✝:1 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1h2:‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 0⊢ False
rw [add_eq_zero_iff_of_nonneg (sq_nonneg _) (sq_nonneg _) refine_1 V:CKMMatrixh:↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0h1:‖↑V 0 2‖ = 1h2✝:1 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1h2:‖↑V 1 2‖ ^ 2 = 0 ∧ ‖↑V 2 2‖ ^ 2 = 0⊢ False refine_1 V:CKMMatrixh:↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0h1:‖↑V 0 2‖ = 1h2✝:1 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1h2:‖↑V 1 2‖ ^ 2 = 0 ∧ ‖↑V 2 2‖ ^ 2 = 0⊢ False] at h2refine_1 V:CKMMatrixh:↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0h1:‖↑V 0 2‖ = 1h2✝:1 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1h2:‖↑V 1 2‖ ^ 2 = 0 ∧ ‖↑V 2 2‖ ^ 2 = 0⊢ False
simp_all All goals completed! 🐙
· refine_2 V:CKMMatrixh2:‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1h:‖↑V 0 2‖ ≠ 1⊢ ↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0 by_contra hn refine_2 V:CKMMatrixh2:‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1h:‖↑V 0 2‖ ≠ 1hn:¬(↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0)⊢ False
rw [not_or refine_2 V:CKMMatrixh2:‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1h:‖↑V 0 2‖ ≠ 1hn:¬↑V 1 2 ≠ 0 ∧ ¬↑V 2 2 ≠ 0⊢ False refine_2 V:CKMMatrixh2:‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1h:‖↑V 0 2‖ ≠ 1hn:¬↑V 1 2 ≠ 0 ∧ ¬↑V 2 2 ≠ 0⊢ False] at hnrefine_2 V:CKMMatrixh2:‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1h:‖↑V 0 2‖ ≠ 1hn:¬↑V 1 2 ≠ 0 ∧ ¬↑V 2 2 ≠ 0⊢ False
simp only [Fin.isValue, ne_eq, Decidable.not_not] at hn refine_2 V:CKMMatrixh2:‖↑V 0 2‖ ^ 2 + ‖↑V 1 2‖ ^ 2 + ‖↑V 2 2‖ ^ 2 = 1h:‖↑V 0 2‖ ≠ 1hn:↑V 1 2 = 0 ∧ ↑V 2 2 = 0⊢ False
simp_all only [ne_eq] refine_2 V:CKMMatrixh2:‖↑V 0 2‖ ^ 2 + ‖0‖ ^ 2 + ‖0‖ ^ 2 = 1h:¬‖↑V 0 2‖ = 1hn:↑V 1 2 = 0 ∧ ↑V 2 2 = 0⊢ False
simp only [Fin.isValue, norm_zero, ne_eq, OfNat.ofNat_ne_zero, not_false_eq_true, zero_pow,
add_zero, sq_eq_one_iff] at h2 refine_2 V:CKMMatrixh:¬‖↑V 0 2‖ = 1hn:↑V 1 2 = 0 ∧ ↑V 2 2 = 0h2:‖↑V 0 2‖ = 1 ∨ ‖↑V 0 2‖ = -1⊢ False
simp_all only [false_or] refine_2 V:CKMMatrixh:¬-1 = 1hn:↑V 1 2 = 0 ∧ ↑V 2 2 = 0h2:‖↑V 0 2‖ = -1⊢ False
have h1 := norm_nonneg [V]ub refine_2 V:CKMMatrixh:¬-1 = 1hn:↑V 1 2 = 0 ∧ ↑V 2 2 = 0h2:‖↑V 0 2‖ = -1h1:0 ≤ ‖↑V 0 2‖⊢ False
rw [h2 refine_2 V:CKMMatrixh:¬-1 = 1hn:↑V 1 2 = 0 ∧ ↑V 2 2 = 0h2:‖↑V 0 2‖ = -1h1:0 ≤ -1⊢ False refine_2 V:CKMMatrixh:¬-1 = 1hn:↑V 1 2 = 0 ∧ ↑V 2 2 = 0h2:‖↑V 0 2‖ = -1h1:0 ≤ -1⊢ False] at h1refine_2 V:CKMMatrixh:¬-1 = 1hn:↑V 1 2 = 0 ∧ ↑V 2 2 = 0h2:‖↑V 0 2‖ = -1h1:0 ≤ -1⊢ False
simp only [Left.nonneg_neg_iff] at h1 refine_2 V:CKMMatrixh:¬-1 = 1hn:↑V 1 2 = 0 ∧ ↑V 2 2 = 0h2:‖↑V 0 2‖ = -1h1:1 ≤ 0⊢ False
have h2 : ¬ 1 ≤ (0 : ℝ) := by V:CKMMatrix⊢ ↑V 1 2 ≠ 0 ∨ ↑V 2 2 ≠ 0 ↔ ‖↑V 0 2‖ ≠ 1 refine_2 V:CKMMatrixh:¬-1 = 1hn:↑V 1 2 = 0 ∧ ↑V 2 2 = 0h2✝:‖↑V 0 2‖ = -1h1:1 ≤ 0h2:¬1 ≤ 0⊢ False simprefine_2 V:CKMMatrixh:¬-1 = 1hn:↑V 1 2 = 0 ∧ ↑V 2 2 = 0h2✝:‖↑V 0 2‖ = -1h1:1 ≤ 0h2:¬1 ≤ 0⊢ Falserefine_2 V:CKMMatrixh:¬-1 = 1hn:↑V 1 2 = 0 ∧ ↑V 2 2 = 0h2✝:‖↑V 0 2‖ = -1h1:1 ≤ 0h2:¬1 ≤ 0⊢ False
exact h2 h1 All goals completed! 🐙
lemma VAbs_fst_col_eq_one_snd_eq_zero {V : Quotient CKMMatrixSetoid} {i : Fin 3}
(hV : VAbs 0 i V = 1) : VAbs 1 i V = 0 := by V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs 0 i V = 1⊢ VAbs 1 i V = 0
have h := VAbs_sum_sq_col_eq_one V i V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs 0 i V = 1h:VAbs 0 i V ^ 2 + VAbs 1 i V ^ 2 + VAbs 2 i V ^ 2 = 1⊢ VAbs 1 i V = 0
rw [hV V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs 0 i V = 1h:1 ^ 2 + VAbs 1 i V ^ 2 + VAbs 2 i V ^ 2 = 1⊢ VAbs 1 i V = 0 V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs 0 i V = 1h:1 ^ 2 + VAbs 1 i V ^ 2 + VAbs 2 i V ^ 2 = 1⊢ VAbs 1 i V = 0] at h V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs 0 i V = 1h:1 ^ 2 + VAbs 1 i V ^ 2 + VAbs 2 i V ^ 2 = 1⊢ VAbs 1 i V = 0
simp only [one_pow, Fin.isValue] at h V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs 0 i V = 1h:1 + VAbs 1 i V ^ 2 + VAbs 2 i V ^ 2 = 1⊢ VAbs 1 i V = 0
nlinarith All goals completed! 🐙
lemma VAbs_fst_col_eq_one_thd_eq_zero {V : Quotient CKMMatrixSetoid} {i : Fin 3}
(hV : VAbs 0 i V = 1) : VAbs 2 i V = 0 := by V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs 0 i V = 1⊢ VAbs 2 i V = 0
have h := VAbs_sum_sq_col_eq_one V i V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs 0 i V = 1h:VAbs 0 i V ^ 2 + VAbs 1 i V ^ 2 + VAbs 2 i V ^ 2 = 1⊢ VAbs 2 i V = 0
rw [hV V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs 0 i V = 1h:1 ^ 2 + VAbs 1 i V ^ 2 + VAbs 2 i V ^ 2 = 1⊢ VAbs 2 i V = 0 V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs 0 i V = 1h:1 ^ 2 + VAbs 1 i V ^ 2 + VAbs 2 i V ^ 2 = 1⊢ VAbs 2 i V = 0] at h V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs 0 i V = 1h:1 ^ 2 + VAbs 1 i V ^ 2 + VAbs 2 i V ^ 2 = 1⊢ VAbs 2 i V = 0
simp only [one_pow, Fin.isValue] at h V:Quotient CKMMatrixSetoidi:Fin 3hV:VAbs 0 i V = 1h:1 + VAbs 1 i V ^ 2 + VAbs 2 i V ^ 2 = 1⊢ VAbs 2 i V = 0
nlinarith All goals completed! 🐙