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.Basic
public import Mathlib.Analysis.SpecialFunctions.Complex.Arg
public import Mathlib.LinearAlgebra.CrossProduct
public import Mathlib.LinearAlgebra.FiniteDimensional.Lemmas
public import Mathlib.Tactic.CasesRows for the CKM Matrix
This file contains the definition extracting the rows of the CKM matrix and proves some properties between them.
The first row can be extracted as [V]u for a CKM matrix V.
@[expose] public section
The uth row of the CKM matrix.
def uRow (V : CKMMatrix) : Fin 3 → ℂ := ![[V]ud, [V]us, [V]ub]
The uth row of the CKM matrix.
scoped[CKMMatrix] notation (name := u_row) "[" V "]u" => uRow V
The cth row of the CKM matrix.
def cRow (V : CKMMatrix) : Fin 3 → ℂ := ![[V]cd, [V]cs, [V]cb]
The cth row of the CKM matrix.
scoped[CKMMatrix] notation (name := c_row) "[" V "]c" => cRow V
The tth row of the CKM matrix.
def tRow (V : CKMMatrix) : Fin 3 → ℂ := ![[V]td, [V]ts, [V]tb]
The tth row of the CKM matrix.
scoped[CKMMatrix] notation (name := t_row) "[" V "]t" => tRow V
The up-quark row of the CKM matrix is normalized to 1.
V:CKMMatrixht:↑V 0 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 0 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 0 2 * (starRingEnd ℂ) (↑V 0 2) = 1⊢ (starRingEnd ℂ) (↑V 0 0) * ↑V 0 0 + (starRingEnd ℂ) (↑V 0 1) * ↑V 0 1 + (starRingEnd ℂ) (↑V 0 2) * ↑V 0 2 = 1
linear_combination ht All goals completed! 🐙
The charm-quark row of the CKM matrix is normalized to 1.
lemma cRow_normalized (V : CKMMatrix) : conj [V]c ⬝ᵥ [V]c = 1 := by V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c = 1
show ∑ k, conj (V.1 1 k) * V.1 1 k = 1 V:CKMMatrix⊢ ∑ k, (starRingEnd ℂ) (↑V 1 k) * ↑V 1 k = 1
have ht := congrFun (congrFun (mem_unitaryGroup_iff.mp V.prop) 1) 1 V:CKMMatrixht:(↑V * star ↑V) 1 1 = 1 1 1⊢ ∑ k, (starRingEnd ℂ) (↑V 1 k) * ↑V 1 k = 1
simp only [mul_apply, star_apply, RCLike.star_def, Fin.sum_univ_three, one_apply_eq] at ht V:CKMMatrixht:↑V 1 0 * (starRingEnd ℂ) (↑V 1 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 1 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 1 2) = 1⊢ ∑ k, (starRingEnd ℂ) (↑V 1 k) * ↑V 1 k = 1
rw [Fin.sum_univ_three V:CKMMatrixht:↑V 1 0 * (starRingEnd ℂ) (↑V 1 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 1 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 1 2) = 1⊢ (starRingEnd ℂ) (↑V 1 0) * ↑V 1 0 + (starRingEnd ℂ) (↑V 1 1) * ↑V 1 1 + (starRingEnd ℂ) (↑V 1 2) * ↑V 1 2 = 1 V:CKMMatrixht:↑V 1 0 * (starRingEnd ℂ) (↑V 1 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 1 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 1 2) = 1⊢ (starRingEnd ℂ) (↑V 1 0) * ↑V 1 0 + (starRingEnd ℂ) (↑V 1 1) * ↑V 1 1 + (starRingEnd ℂ) (↑V 1 2) * ↑V 1 2 = 1] V:CKMMatrixht:↑V 1 0 * (starRingEnd ℂ) (↑V 1 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 1 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 1 2) = 1⊢ (starRingEnd ℂ) (↑V 1 0) * ↑V 1 0 + (starRingEnd ℂ) (↑V 1 1) * ↑V 1 1 + (starRingEnd ℂ) (↑V 1 2) * ↑V 1 2 = 1
linear_combination ht All goals completed! 🐙
The top-quark row of the CKM matrix is normalized to 1.
lemma tRow_normalized (V : CKMMatrix) : conj [V]t ⬝ᵥ [V]t = 1 := by V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t = 1
show ∑ k, conj (V.1 2 k) * V.1 2 k = 1 V:CKMMatrix⊢ ∑ k, (starRingEnd ℂ) (↑V 2 k) * ↑V 2 k = 1
have ht := congrFun (congrFun (mem_unitaryGroup_iff.mp V.prop) 2) 2 V:CKMMatrixht:(↑V * star ↑V) 2 2 = 1 2 2⊢ ∑ k, (starRingEnd ℂ) (↑V 2 k) * ↑V 2 k = 1
simp only [mul_apply, star_apply, RCLike.star_def, Fin.sum_univ_three, one_apply_eq] at ht V:CKMMatrixht:↑V 2 0 * (starRingEnd ℂ) (↑V 2 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 2 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 2 2) = 1⊢ ∑ k, (starRingEnd ℂ) (↑V 2 k) * ↑V 2 k = 1
rw [Fin.sum_univ_three V:CKMMatrixht:↑V 2 0 * (starRingEnd ℂ) (↑V 2 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 2 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 2 2) = 1⊢ (starRingEnd ℂ) (↑V 2 0) * ↑V 2 0 + (starRingEnd ℂ) (↑V 2 1) * ↑V 2 1 + (starRingEnd ℂ) (↑V 2 2) * ↑V 2 2 = 1 V:CKMMatrixht:↑V 2 0 * (starRingEnd ℂ) (↑V 2 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 2 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 2 2) = 1⊢ (starRingEnd ℂ) (↑V 2 0) * ↑V 2 0 + (starRingEnd ℂ) (↑V 2 1) * ↑V 2 1 + (starRingEnd ℂ) (↑V 2 2) * ↑V 2 2 = 1] V:CKMMatrixht:↑V 2 0 * (starRingEnd ℂ) (↑V 2 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 2 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 2 2) = 1⊢ (starRingEnd ℂ) (↑V 2 0) * ↑V 2 0 + (starRingEnd ℂ) (↑V 2 1) * ↑V 2 1 + (starRingEnd ℂ) (↑V 2 2) * ↑V 2 2 = 1
linear_combination ht All goals completed! 🐙The up-quark row of the CKM matrix is orthogonal to the charm-quark row.
lemma uRow_cRow_orthog (V : CKMMatrix) : conj [V]u ⬝ᵥ [V]c = 0 := by V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ [V]c = 0
show ∑ k, conj (V.1 0 k) * V.1 1 k = 0 V:CKMMatrix⊢ ∑ k, (starRingEnd ℂ) (↑V 0 k) * ↑V 1 k = 0
have ht := congrFun (congrFun (mem_unitaryGroup_iff.mp V.prop) 1) 0 V:CKMMatrixht:(↑V * star ↑V) 1 0 = 1 1 0⊢ ∑ k, (starRingEnd ℂ) (↑V 0 k) * ↑V 1 k = 0
simp only [mul_apply, star_apply, RCLike.star_def, Fin.sum_univ_three, one_apply_ne, ne_eq,
not_false_eq_true, Fin.reduceEq] at ht V:CKMMatrixht:↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) = 0⊢ ∑ k, (starRingEnd ℂ) (↑V 0 k) * ↑V 1 k = 0
rw [Fin.sum_univ_three V:CKMMatrixht:↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) = 0⊢ (starRingEnd ℂ) (↑V 0 0) * ↑V 1 0 + (starRingEnd ℂ) (↑V 0 1) * ↑V 1 1 + (starRingEnd ℂ) (↑V 0 2) * ↑V 1 2 = 0 V:CKMMatrixht:↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) = 0⊢ (starRingEnd ℂ) (↑V 0 0) * ↑V 1 0 + (starRingEnd ℂ) (↑V 0 1) * ↑V 1 1 + (starRingEnd ℂ) (↑V 0 2) * ↑V 1 2 = 0] V:CKMMatrixht:↑V 1 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 0 2) = 0⊢ (starRingEnd ℂ) (↑V 0 0) * ↑V 1 0 + (starRingEnd ℂ) (↑V 0 1) * ↑V 1 1 + (starRingEnd ℂ) (↑V 0 2) * ↑V 1 2 = 0
linear_combination ht All goals completed! 🐙The up-quark row of the CKM matrix is orthogonal to the top-quark row.
lemma uRow_tRow_orthog (V : CKMMatrix) : conj [V]u ⬝ᵥ [V]t = 0 := by V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ [V]t = 0
show ∑ k, conj (V.1 0 k) * V.1 2 k = 0 V:CKMMatrix⊢ ∑ k, (starRingEnd ℂ) (↑V 0 k) * ↑V 2 k = 0
have ht := congrFun (congrFun (mem_unitaryGroup_iff.mp V.prop) 2) 0 V:CKMMatrixht:(↑V * star ↑V) 2 0 = 1 2 0⊢ ∑ k, (starRingEnd ℂ) (↑V 0 k) * ↑V 2 k = 0
simp only [mul_apply, star_apply, RCLike.star_def, Fin.sum_univ_three, one_apply_ne, ne_eq,
not_false_eq_true, Fin.reduceEq] at ht V:CKMMatrixht:↑V 2 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 0 2) = 0⊢ ∑ k, (starRingEnd ℂ) (↑V 0 k) * ↑V 2 k = 0
rw [Fin.sum_univ_three V:CKMMatrixht:↑V 2 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 0 2) = 0⊢ (starRingEnd ℂ) (↑V 0 0) * ↑V 2 0 + (starRingEnd ℂ) (↑V 0 1) * ↑V 2 1 + (starRingEnd ℂ) (↑V 0 2) * ↑V 2 2 = 0 V:CKMMatrixht:↑V 2 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 0 2) = 0⊢ (starRingEnd ℂ) (↑V 0 0) * ↑V 2 0 + (starRingEnd ℂ) (↑V 0 1) * ↑V 2 1 + (starRingEnd ℂ) (↑V 0 2) * ↑V 2 2 = 0] V:CKMMatrixht:↑V 2 0 * (starRingEnd ℂ) (↑V 0 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 0 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 0 2) = 0⊢ (starRingEnd ℂ) (↑V 0 0) * ↑V 2 0 + (starRingEnd ℂ) (↑V 0 1) * ↑V 2 1 + (starRingEnd ℂ) (↑V 0 2) * ↑V 2 2 = 0
linear_combination ht All goals completed! 🐙The charm-quark row of the CKM matrix is orthogonal to the up-quark row.
lemma cRow_uRow_orthog (V : CKMMatrix) : conj [V]c ⬝ᵥ [V]u = 0 := by V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u = 0
show ∑ k, conj (V.1 1 k) * V.1 0 k = 0 V:CKMMatrix⊢ ∑ k, (starRingEnd ℂ) (↑V 1 k) * ↑V 0 k = 0
have ht := congrFun (congrFun (mem_unitaryGroup_iff.mp V.prop) 0) 1 V:CKMMatrixht:(↑V * star ↑V) 0 1 = 1 0 1⊢ ∑ k, (starRingEnd ℂ) (↑V 1 k) * ↑V 0 k = 0
simp only [mul_apply, star_apply, RCLike.star_def, Fin.sum_univ_three, one_apply_ne, ne_eq,
not_false_eq_true, Fin.reduceEq] at ht V:CKMMatrixht:↑V 0 0 * (starRingEnd ℂ) (↑V 1 0) + ↑V 0 1 * (starRingEnd ℂ) (↑V 1 1) + ↑V 0 2 * (starRingEnd ℂ) (↑V 1 2) = 0⊢ ∑ k, (starRingEnd ℂ) (↑V 1 k) * ↑V 0 k = 0
rw [Fin.sum_univ_three V:CKMMatrixht:↑V 0 0 * (starRingEnd ℂ) (↑V 1 0) + ↑V 0 1 * (starRingEnd ℂ) (↑V 1 1) + ↑V 0 2 * (starRingEnd ℂ) (↑V 1 2) = 0⊢ (starRingEnd ℂ) (↑V 1 0) * ↑V 0 0 + (starRingEnd ℂ) (↑V 1 1) * ↑V 0 1 + (starRingEnd ℂ) (↑V 1 2) * ↑V 0 2 = 0 V:CKMMatrixht:↑V 0 0 * (starRingEnd ℂ) (↑V 1 0) + ↑V 0 1 * (starRingEnd ℂ) (↑V 1 1) + ↑V 0 2 * (starRingEnd ℂ) (↑V 1 2) = 0⊢ (starRingEnd ℂ) (↑V 1 0) * ↑V 0 0 + (starRingEnd ℂ) (↑V 1 1) * ↑V 0 1 + (starRingEnd ℂ) (↑V 1 2) * ↑V 0 2 = 0] V:CKMMatrixht:↑V 0 0 * (starRingEnd ℂ) (↑V 1 0) + ↑V 0 1 * (starRingEnd ℂ) (↑V 1 1) + ↑V 0 2 * (starRingEnd ℂ) (↑V 1 2) = 0⊢ (starRingEnd ℂ) (↑V 1 0) * ↑V 0 0 + (starRingEnd ℂ) (↑V 1 1) * ↑V 0 1 + (starRingEnd ℂ) (↑V 1 2) * ↑V 0 2 = 0
linear_combination ht All goals completed! 🐙The charm-quark row of the CKM matrix is orthogonal to the top-quark row.
lemma cRow_tRow_orthog (V : CKMMatrix) : conj [V]c ⬝ᵥ [V]t = 0 := by V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t = 0
show ∑ k, conj (V.1 1 k) * V.1 2 k = 0 V:CKMMatrix⊢ ∑ k, (starRingEnd ℂ) (↑V 1 k) * ↑V 2 k = 0
have ht := congrFun (congrFun (mem_unitaryGroup_iff.mp V.prop) 2) 1 V:CKMMatrixht:(↑V * star ↑V) 2 1 = 1 2 1⊢ ∑ k, (starRingEnd ℂ) (↑V 1 k) * ↑V 2 k = 0
simp only [mul_apply, star_apply, RCLike.star_def, Fin.sum_univ_three, one_apply_ne, ne_eq,
not_false_eq_true, Fin.reduceEq] at ht V:CKMMatrixht:↑V 2 0 * (starRingEnd ℂ) (↑V 1 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 1 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 1 2) = 0⊢ ∑ k, (starRingEnd ℂ) (↑V 1 k) * ↑V 2 k = 0
rw [Fin.sum_univ_three V:CKMMatrixht:↑V 2 0 * (starRingEnd ℂ) (↑V 1 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 1 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 1 2) = 0⊢ (starRingEnd ℂ) (↑V 1 0) * ↑V 2 0 + (starRingEnd ℂ) (↑V 1 1) * ↑V 2 1 + (starRingEnd ℂ) (↑V 1 2) * ↑V 2 2 = 0 V:CKMMatrixht:↑V 2 0 * (starRingEnd ℂ) (↑V 1 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 1 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 1 2) = 0⊢ (starRingEnd ℂ) (↑V 1 0) * ↑V 2 0 + (starRingEnd ℂ) (↑V 1 1) * ↑V 2 1 + (starRingEnd ℂ) (↑V 1 2) * ↑V 2 2 = 0] V:CKMMatrixht:↑V 2 0 * (starRingEnd ℂ) (↑V 1 0) + ↑V 2 1 * (starRingEnd ℂ) (↑V 1 1) + ↑V 2 2 * (starRingEnd ℂ) (↑V 1 2) = 0⊢ (starRingEnd ℂ) (↑V 1 0) * ↑V 2 0 + (starRingEnd ℂ) (↑V 1 1) * ↑V 2 1 + (starRingEnd ℂ) (↑V 1 2) * ↑V 2 2 = 0
linear_combination ht All goals completed! 🐙The top-quark row of the CKM matrix is orthogonal to the up-quark row.
lemma tRow_uRow_orthog (V : CKMMatrix) : conj [V]t ⬝ᵥ [V]u = 0 := by V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u = 0
show ∑ k, conj (V.1 2 k) * V.1 0 k = 0 V:CKMMatrix⊢ ∑ k, (starRingEnd ℂ) (↑V 2 k) * ↑V 0 k = 0
have ht := congrFun (congrFun (mem_unitaryGroup_iff.mp V.prop) 0) 2 V:CKMMatrixht:(↑V * star ↑V) 0 2 = 1 0 2⊢ ∑ k, (starRingEnd ℂ) (↑V 2 k) * ↑V 0 k = 0
simp only [mul_apply, star_apply, RCLike.star_def, Fin.sum_univ_three, one_apply_ne, ne_eq,
not_false_eq_true, Fin.reduceEq] at ht V:CKMMatrixht:↑V 0 0 * (starRingEnd ℂ) (↑V 2 0) + ↑V 0 1 * (starRingEnd ℂ) (↑V 2 1) + ↑V 0 2 * (starRingEnd ℂ) (↑V 2 2) = 0⊢ ∑ k, (starRingEnd ℂ) (↑V 2 k) * ↑V 0 k = 0
rw [Fin.sum_univ_three V:CKMMatrixht:↑V 0 0 * (starRingEnd ℂ) (↑V 2 0) + ↑V 0 1 * (starRingEnd ℂ) (↑V 2 1) + ↑V 0 2 * (starRingEnd ℂ) (↑V 2 2) = 0⊢ (starRingEnd ℂ) (↑V 2 0) * ↑V 0 0 + (starRingEnd ℂ) (↑V 2 1) * ↑V 0 1 + (starRingEnd ℂ) (↑V 2 2) * ↑V 0 2 = 0 V:CKMMatrixht:↑V 0 0 * (starRingEnd ℂ) (↑V 2 0) + ↑V 0 1 * (starRingEnd ℂ) (↑V 2 1) + ↑V 0 2 * (starRingEnd ℂ) (↑V 2 2) = 0⊢ (starRingEnd ℂ) (↑V 2 0) * ↑V 0 0 + (starRingEnd ℂ) (↑V 2 1) * ↑V 0 1 + (starRingEnd ℂ) (↑V 2 2) * ↑V 0 2 = 0] V:CKMMatrixht:↑V 0 0 * (starRingEnd ℂ) (↑V 2 0) + ↑V 0 1 * (starRingEnd ℂ) (↑V 2 1) + ↑V 0 2 * (starRingEnd ℂ) (↑V 2 2) = 0⊢ (starRingEnd ℂ) (↑V 2 0) * ↑V 0 0 + (starRingEnd ℂ) (↑V 2 1) * ↑V 0 1 + (starRingEnd ℂ) (↑V 2 2) * ↑V 0 2 = 0
linear_combination ht All goals completed! 🐙The top-quark row of the CKM matrix is orthogonal to the charm-quark row.
lemma tRow_cRow_orthog (V : CKMMatrix) : conj [V]t ⬝ᵥ [V]c = 0 := by V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c = 0
show ∑ k, conj (V.1 2 k) * V.1 1 k = 0 V:CKMMatrix⊢ ∑ k, (starRingEnd ℂ) (↑V 2 k) * ↑V 1 k = 0
have ht := congrFun (congrFun (mem_unitaryGroup_iff.mp V.prop) 1) 2 V:CKMMatrixht:(↑V * star ↑V) 1 2 = 1 1 2⊢ ∑ k, (starRingEnd ℂ) (↑V 2 k) * ↑V 1 k = 0
simp only [mul_apply, star_apply, RCLike.star_def, Fin.sum_univ_three, one_apply_ne, ne_eq,
not_false_eq_true, Fin.reduceEq] at ht V:CKMMatrixht:↑V 1 0 * (starRingEnd ℂ) (↑V 2 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 2 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 2 2) = 0⊢ ∑ k, (starRingEnd ℂ) (↑V 2 k) * ↑V 1 k = 0
rw [Fin.sum_univ_three V:CKMMatrixht:↑V 1 0 * (starRingEnd ℂ) (↑V 2 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 2 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 2 2) = 0⊢ (starRingEnd ℂ) (↑V 2 0) * ↑V 1 0 + (starRingEnd ℂ) (↑V 2 1) * ↑V 1 1 + (starRingEnd ℂ) (↑V 2 2) * ↑V 1 2 = 0 V:CKMMatrixht:↑V 1 0 * (starRingEnd ℂ) (↑V 2 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 2 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 2 2) = 0⊢ (starRingEnd ℂ) (↑V 2 0) * ↑V 1 0 + (starRingEnd ℂ) (↑V 2 1) * ↑V 1 1 + (starRingEnd ℂ) (↑V 2 2) * ↑V 1 2 = 0] V:CKMMatrixht:↑V 1 0 * (starRingEnd ℂ) (↑V 2 0) + ↑V 1 1 * (starRingEnd ℂ) (↑V 2 1) + ↑V 1 2 * (starRingEnd ℂ) (↑V 2 2) = 0⊢ (starRingEnd ℂ) (↑V 2 0) * ↑V 1 0 + (starRingEnd ℂ) (↑V 2 1) * ↑V 1 1 + (starRingEnd ℂ) (↑V 2 2) * ↑V 1 2 = 0
linear_combination ht All goals completed! 🐙lemma uRow_cross_cRow_conj (V : CKMMatrix) : conj (conj [V]u ⨯₃ conj [V]c) = [V]u ⨯₃ [V]c := by V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ)) ((crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)) =
(crossProduct [V]u) [V]c
simp only [crossProduct, Nat.succ_eq_add_one, Nat.reduceAdd, Fin.isValue, LinearMap.mk₂_apply,
Pi.conj_apply] V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ))
![(starRingEnd ℂ) ([V]u 1) * (starRingEnd ℂ) ([V]c 2) - (starRingEnd ℂ) ([V]u 2) * (starRingEnd ℂ) ([V]c 1),
(starRingEnd ℂ) ([V]u 2) * (starRingEnd ℂ) ([V]c 0) - (starRingEnd ℂ) ([V]u 0) * (starRingEnd ℂ) ([V]c 2),
(starRingEnd ℂ) ([V]u 0) * (starRingEnd ℂ) ([V]c 1) - (starRingEnd ℂ) ([V]u 1) * (starRingEnd ℂ) ([V]c 0)] =
![[V]u 1 * [V]c 2 - [V]u 2 * [V]c 1, [V]u 2 * [V]c 0 - [V]u 0 * [V]c 2, [V]u 0 * [V]c 1 - [V]u 1 * [V]c 0]
funext i V:CKMMatrixi:Fin 3⊢ (starRingEnd (Fin 3 → ℂ))
![(starRingEnd ℂ) ([V]u 1) * (starRingEnd ℂ) ([V]c 2) - (starRingEnd ℂ) ([V]u 2) * (starRingEnd ℂ) ([V]c 1),
(starRingEnd ℂ) ([V]u 2) * (starRingEnd ℂ) ([V]c 0) - (starRingEnd ℂ) ([V]u 0) * (starRingEnd ℂ) ([V]c 2),
(starRingEnd ℂ) ([V]u 0) * (starRingEnd ℂ) ([V]c 1) - (starRingEnd ℂ) ([V]u 1) * (starRingEnd ℂ) ([V]c 0)]
i =
![[V]u 1 * [V]c 2 - [V]u 2 * [V]c 1, [V]u 2 * [V]c 0 - [V]u 0 * [V]c 2, [V]u 0 * [V]c 1 - [V]u 1 * [V]c 0] i
fin_cases i «0» V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ))
![(starRingEnd ℂ) ([V]u 1) * (starRingEnd ℂ) ([V]c 2) - (starRingEnd ℂ) ([V]u 2) * (starRingEnd ℂ) ([V]c 1),
(starRingEnd ℂ) ([V]u 2) * (starRingEnd ℂ) ([V]c 0) - (starRingEnd ℂ) ([V]u 0) * (starRingEnd ℂ) ([V]c 2),
(starRingEnd ℂ) ([V]u 0) * (starRingEnd ℂ) ([V]c 1) - (starRingEnd ℂ) ([V]u 1) * (starRingEnd ℂ) ([V]c 0)]
((fun i => i) ⟨0, ⋯⟩) =
![[V]u 1 * [V]c 2 - [V]u 2 * [V]c 1, [V]u 2 * [V]c 0 - [V]u 0 * [V]c 2, [V]u 0 * [V]c 1 - [V]u 1 * [V]c 0]
((fun i => i) ⟨0, ⋯⟩)«1» V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ))
![(starRingEnd ℂ) ([V]u 1) * (starRingEnd ℂ) ([V]c 2) - (starRingEnd ℂ) ([V]u 2) * (starRingEnd ℂ) ([V]c 1),
(starRingEnd ℂ) ([V]u 2) * (starRingEnd ℂ) ([V]c 0) - (starRingEnd ℂ) ([V]u 0) * (starRingEnd ℂ) ([V]c 2),
(starRingEnd ℂ) ([V]u 0) * (starRingEnd ℂ) ([V]c 1) - (starRingEnd ℂ) ([V]u 1) * (starRingEnd ℂ) ([V]c 0)]
((fun i => i) ⟨1, ⋯⟩) =
![[V]u 1 * [V]c 2 - [V]u 2 * [V]c 1, [V]u 2 * [V]c 0 - [V]u 0 * [V]c 2, [V]u 0 * [V]c 1 - [V]u 1 * [V]c 0]
((fun i => i) ⟨1, ⋯⟩)«2» V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ))
![(starRingEnd ℂ) ([V]u 1) * (starRingEnd ℂ) ([V]c 2) - (starRingEnd ℂ) ([V]u 2) * (starRingEnd ℂ) ([V]c 1),
(starRingEnd ℂ) ([V]u 2) * (starRingEnd ℂ) ([V]c 0) - (starRingEnd ℂ) ([V]u 0) * (starRingEnd ℂ) ([V]c 2),
(starRingEnd ℂ) ([V]u 0) * (starRingEnd ℂ) ([V]c 1) - (starRingEnd ℂ) ([V]u 1) * (starRingEnd ℂ) ([V]c 0)]
((fun i => i) ⟨2, ⋯⟩) =
![[V]u 1 * [V]c 2 - [V]u 2 * [V]c 1, [V]u 2 * [V]c 0 - [V]u 0 * [V]c 2, [V]u 0 * [V]c 1 - [V]u 1 * [V]c 0]
((fun i => i) ⟨2, ⋯⟩) <;> «0» V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ))
![(starRingEnd ℂ) ([V]u 1) * (starRingEnd ℂ) ([V]c 2) - (starRingEnd ℂ) ([V]u 2) * (starRingEnd ℂ) ([V]c 1),
(starRingEnd ℂ) ([V]u 2) * (starRingEnd ℂ) ([V]c 0) - (starRingEnd ℂ) ([V]u 0) * (starRingEnd ℂ) ([V]c 2),
(starRingEnd ℂ) ([V]u 0) * (starRingEnd ℂ) ([V]c 1) - (starRingEnd ℂ) ([V]u 1) * (starRingEnd ℂ) ([V]c 0)]
((fun i => i) ⟨0, ⋯⟩) =
![[V]u 1 * [V]c 2 - [V]u 2 * [V]c 1, [V]u 2 * [V]c 0 - [V]u 0 * [V]c 2, [V]u 0 * [V]c 1 - [V]u 1 * [V]c 0]
((fun i => i) ⟨0, ⋯⟩)«1» V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ))
![(starRingEnd ℂ) ([V]u 1) * (starRingEnd ℂ) ([V]c 2) - (starRingEnd ℂ) ([V]u 2) * (starRingEnd ℂ) ([V]c 1),
(starRingEnd ℂ) ([V]u 2) * (starRingEnd ℂ) ([V]c 0) - (starRingEnd ℂ) ([V]u 0) * (starRingEnd ℂ) ([V]c 2),
(starRingEnd ℂ) ([V]u 0) * (starRingEnd ℂ) ([V]c 1) - (starRingEnd ℂ) ([V]u 1) * (starRingEnd ℂ) ([V]c 0)]
((fun i => i) ⟨1, ⋯⟩) =
![[V]u 1 * [V]c 2 - [V]u 2 * [V]c 1, [V]u 2 * [V]c 0 - [V]u 0 * [V]c 2, [V]u 0 * [V]c 1 - [V]u 1 * [V]c 0]
((fun i => i) ⟨1, ⋯⟩)«2» V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ))
![(starRingEnd ℂ) ([V]u 1) * (starRingEnd ℂ) ([V]c 2) - (starRingEnd ℂ) ([V]u 2) * (starRingEnd ℂ) ([V]c 1),
(starRingEnd ℂ) ([V]u 2) * (starRingEnd ℂ) ([V]c 0) - (starRingEnd ℂ) ([V]u 0) * (starRingEnd ℂ) ([V]c 2),
(starRingEnd ℂ) ([V]u 0) * (starRingEnd ℂ) ([V]c 1) - (starRingEnd ℂ) ([V]u 1) * (starRingEnd ℂ) ([V]c 0)]
((fun i => i) ⟨2, ⋯⟩) =
![[V]u 1 * [V]c 2 - [V]u 2 * [V]c 1, [V]u 2 * [V]c 0 - [V]u 0 * [V]c 2, [V]u 0 * [V]c 1 - [V]u 1 * [V]c 0]
((fun i => i) ⟨2, ⋯⟩) simp All goals completed! 🐙lemma cRow_cross_tRow_conj (V : CKMMatrix) : conj (conj [V]c ⨯₃ conj [V]t) = [V]c ⨯₃ [V]t := by V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ)) ((crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)) =
(crossProduct [V]c) [V]t
simp only [crossProduct, Nat.succ_eq_add_one, Nat.reduceAdd, Fin.isValue, LinearMap.mk₂_apply,
Pi.conj_apply] V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ))
![(starRingEnd ℂ) ([V]c 1) * (starRingEnd ℂ) ([V]t 2) - (starRingEnd ℂ) ([V]c 2) * (starRingEnd ℂ) ([V]t 1),
(starRingEnd ℂ) ([V]c 2) * (starRingEnd ℂ) ([V]t 0) - (starRingEnd ℂ) ([V]c 0) * (starRingEnd ℂ) ([V]t 2),
(starRingEnd ℂ) ([V]c 0) * (starRingEnd ℂ) ([V]t 1) - (starRingEnd ℂ) ([V]c 1) * (starRingEnd ℂ) ([V]t 0)] =
![[V]c 1 * [V]t 2 - [V]c 2 * [V]t 1, [V]c 2 * [V]t 0 - [V]c 0 * [V]t 2, [V]c 0 * [V]t 1 - [V]c 1 * [V]t 0]
funext i V:CKMMatrixi:Fin 3⊢ (starRingEnd (Fin 3 → ℂ))
![(starRingEnd ℂ) ([V]c 1) * (starRingEnd ℂ) ([V]t 2) - (starRingEnd ℂ) ([V]c 2) * (starRingEnd ℂ) ([V]t 1),
(starRingEnd ℂ) ([V]c 2) * (starRingEnd ℂ) ([V]t 0) - (starRingEnd ℂ) ([V]c 0) * (starRingEnd ℂ) ([V]t 2),
(starRingEnd ℂ) ([V]c 0) * (starRingEnd ℂ) ([V]t 1) - (starRingEnd ℂ) ([V]c 1) * (starRingEnd ℂ) ([V]t 0)]
i =
![[V]c 1 * [V]t 2 - [V]c 2 * [V]t 1, [V]c 2 * [V]t 0 - [V]c 0 * [V]t 2, [V]c 0 * [V]t 1 - [V]c 1 * [V]t 0] i
fin_cases i «0» V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ))
![(starRingEnd ℂ) ([V]c 1) * (starRingEnd ℂ) ([V]t 2) - (starRingEnd ℂ) ([V]c 2) * (starRingEnd ℂ) ([V]t 1),
(starRingEnd ℂ) ([V]c 2) * (starRingEnd ℂ) ([V]t 0) - (starRingEnd ℂ) ([V]c 0) * (starRingEnd ℂ) ([V]t 2),
(starRingEnd ℂ) ([V]c 0) * (starRingEnd ℂ) ([V]t 1) - (starRingEnd ℂ) ([V]c 1) * (starRingEnd ℂ) ([V]t 0)]
((fun i => i) ⟨0, ⋯⟩) =
![[V]c 1 * [V]t 2 - [V]c 2 * [V]t 1, [V]c 2 * [V]t 0 - [V]c 0 * [V]t 2, [V]c 0 * [V]t 1 - [V]c 1 * [V]t 0]
((fun i => i) ⟨0, ⋯⟩)«1» V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ))
![(starRingEnd ℂ) ([V]c 1) * (starRingEnd ℂ) ([V]t 2) - (starRingEnd ℂ) ([V]c 2) * (starRingEnd ℂ) ([V]t 1),
(starRingEnd ℂ) ([V]c 2) * (starRingEnd ℂ) ([V]t 0) - (starRingEnd ℂ) ([V]c 0) * (starRingEnd ℂ) ([V]t 2),
(starRingEnd ℂ) ([V]c 0) * (starRingEnd ℂ) ([V]t 1) - (starRingEnd ℂ) ([V]c 1) * (starRingEnd ℂ) ([V]t 0)]
((fun i => i) ⟨1, ⋯⟩) =
![[V]c 1 * [V]t 2 - [V]c 2 * [V]t 1, [V]c 2 * [V]t 0 - [V]c 0 * [V]t 2, [V]c 0 * [V]t 1 - [V]c 1 * [V]t 0]
((fun i => i) ⟨1, ⋯⟩)«2» V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ))
![(starRingEnd ℂ) ([V]c 1) * (starRingEnd ℂ) ([V]t 2) - (starRingEnd ℂ) ([V]c 2) * (starRingEnd ℂ) ([V]t 1),
(starRingEnd ℂ) ([V]c 2) * (starRingEnd ℂ) ([V]t 0) - (starRingEnd ℂ) ([V]c 0) * (starRingEnd ℂ) ([V]t 2),
(starRingEnd ℂ) ([V]c 0) * (starRingEnd ℂ) ([V]t 1) - (starRingEnd ℂ) ([V]c 1) * (starRingEnd ℂ) ([V]t 0)]
((fun i => i) ⟨2, ⋯⟩) =
![[V]c 1 * [V]t 2 - [V]c 2 * [V]t 1, [V]c 2 * [V]t 0 - [V]c 0 * [V]t 2, [V]c 0 * [V]t 1 - [V]c 1 * [V]t 0]
((fun i => i) ⟨2, ⋯⟩) <;> «0» V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ))
![(starRingEnd ℂ) ([V]c 1) * (starRingEnd ℂ) ([V]t 2) - (starRingEnd ℂ) ([V]c 2) * (starRingEnd ℂ) ([V]t 1),
(starRingEnd ℂ) ([V]c 2) * (starRingEnd ℂ) ([V]t 0) - (starRingEnd ℂ) ([V]c 0) * (starRingEnd ℂ) ([V]t 2),
(starRingEnd ℂ) ([V]c 0) * (starRingEnd ℂ) ([V]t 1) - (starRingEnd ℂ) ([V]c 1) * (starRingEnd ℂ) ([V]t 0)]
((fun i => i) ⟨0, ⋯⟩) =
![[V]c 1 * [V]t 2 - [V]c 2 * [V]t 1, [V]c 2 * [V]t 0 - [V]c 0 * [V]t 2, [V]c 0 * [V]t 1 - [V]c 1 * [V]t 0]
((fun i => i) ⟨0, ⋯⟩)«1» V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ))
![(starRingEnd ℂ) ([V]c 1) * (starRingEnd ℂ) ([V]t 2) - (starRingEnd ℂ) ([V]c 2) * (starRingEnd ℂ) ([V]t 1),
(starRingEnd ℂ) ([V]c 2) * (starRingEnd ℂ) ([V]t 0) - (starRingEnd ℂ) ([V]c 0) * (starRingEnd ℂ) ([V]t 2),
(starRingEnd ℂ) ([V]c 0) * (starRingEnd ℂ) ([V]t 1) - (starRingEnd ℂ) ([V]c 1) * (starRingEnd ℂ) ([V]t 0)]
((fun i => i) ⟨1, ⋯⟩) =
![[V]c 1 * [V]t 2 - [V]c 2 * [V]t 1, [V]c 2 * [V]t 0 - [V]c 0 * [V]t 2, [V]c 0 * [V]t 1 - [V]c 1 * [V]t 0]
((fun i => i) ⟨1, ⋯⟩)«2» V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ))
![(starRingEnd ℂ) ([V]c 1) * (starRingEnd ℂ) ([V]t 2) - (starRingEnd ℂ) ([V]c 2) * (starRingEnd ℂ) ([V]t 1),
(starRingEnd ℂ) ([V]c 2) * (starRingEnd ℂ) ([V]t 0) - (starRingEnd ℂ) ([V]c 0) * (starRingEnd ℂ) ([V]t 2),
(starRingEnd ℂ) ([V]c 0) * (starRingEnd ℂ) ([V]t 1) - (starRingEnd ℂ) ([V]c 1) * (starRingEnd ℂ) ([V]t 0)]
((fun i => i) ⟨2, ⋯⟩) =
![[V]c 1 * [V]t 2 - [V]c 2 * [V]t 1, [V]c 2 * [V]t 0 - [V]c 0 * [V]t 2, [V]c 0 * [V]t 1 - [V]c 1 * [V]t 0]
((fun i => i) ⟨2, ⋯⟩) simp All goals completed! 🐙
lemma uRow_cross_cRow_normalized (V : CKMMatrix) :
conj (conj [V]u ⨯₃ conj [V]c) ⬝ᵥ (conj [V]u ⨯₃ conj [V]c) = 1 := by V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ)) ((crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)) ⬝ᵥ
(crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) =
1
rw [uRow_cross_cRow_conj, V:CKMMatrix⊢ (crossProduct [V]u) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) = 1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1 cross_dot_cross, V:CKMMatrix⊢ [V]u ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]u * [V]c ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]c -
[V]u ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]c * [V]c ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]u =
1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1 dotProduct_comm, V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ [V]u * [V]c ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]c -
[V]u ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]c * [V]c ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]u =
1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1 uRow_normalized, V:CKMMatrix⊢ 1 * [V]c ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]c -
[V]u ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]c * [V]c ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]u =
1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1
dotProduct_comm, V:CKMMatrix⊢ 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c -
[V]u ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]c * [V]c ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]u =
1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1 cRow_normalized, V:CKMMatrix⊢ 1 * 1 - [V]u ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]c * [V]c ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]u = 1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1 dotProduct_comm, V:CKMMatrix⊢ 1 * 1 - (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u * [V]c ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]u = 1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1 cRow_uRow_orthog, V:CKMMatrix⊢ 1 * 1 - 0 * [V]c ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]u = 1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1
dotProduct_comm, V:CKMMatrix⊢ 1 * 1 - 0 * (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ [V]c = 1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1 uRow_cRow_orthog V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1] V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1
simp All goals completed! 🐙
lemma cRow_cross_tRow_normalized (V : CKMMatrix) :
conj (conj [V]c ⨯₃ conj [V]t) ⬝ᵥ (conj [V]c ⨯₃ conj [V]t) = 1 := by V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ)) ((crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)) ⬝ᵥ
(crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) =
1
rw [cRow_cross_tRow_conj, V:CKMMatrix⊢ (crossProduct [V]c) [V]t ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) = 1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1 cross_dot_cross, V:CKMMatrix⊢ [V]c ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]c * [V]t ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]t -
[V]c ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]t * [V]t ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]c =
1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1 dotProduct_comm, V:CKMMatrix⊢ (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c * [V]t ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]t -
[V]c ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]t * [V]t ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]c =
1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1 cRow_normalized, V:CKMMatrix⊢ 1 * [V]t ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]t -
[V]c ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]t * [V]t ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]c =
1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1
dotProduct_comm, V:CKMMatrix⊢ 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t -
[V]c ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]t * [V]t ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]c =
1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1 tRow_normalized, V:CKMMatrix⊢ 1 * 1 - [V]c ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]t * [V]t ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]c = 1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1 dotProduct_comm, V:CKMMatrix⊢ 1 * 1 - (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c * [V]t ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]c = 1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1 tRow_cRow_orthog, V:CKMMatrix⊢ 1 * 1 - 0 * [V]t ⬝ᵥ (starRingEnd (Fin 3 → ℂ)) [V]c = 1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1
dotProduct_comm, V:CKMMatrix⊢ 1 * 1 - 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t = 1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1 cRow_tRow_orthog V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1 V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1] V:CKMMatrix⊢ 1 * 1 - 0 * 0 = 1
simp All goals completed! 🐙
A map from Fin 3 to each row of a CKM matrix.
@[simp]
def rows (V : CKMMatrix) : Fin 3 → Fin 3 → ℂ := fun i =>
match i with
| 0 => uRow V
| 1 => cRow V
| 2 => tRow VThe rows of a CKM matrix are linearly independent.
lemma rows_linearly_independent (V : CKMMatrix) : LinearIndependent ℂ (rows V) := by V:CKMMatrix⊢ LinearIndependent ℂ V.rows
apply Fintype.linearIndependent_iff.mpr V:CKMMatrix⊢ ∀ (g : Fin 3 → ℂ), ∑ i, g i • V.rows i = 0 → ∀ (i : Fin 3), g i = 0
intro g hg V:CKMMatrixg:Fin 3 → ℂhg:∑ i, g i • V.rows i = 0⊢ ∀ (i : Fin 3), g i = 0
rw [Fin.sum_univ_three V:CKMMatrixg:Fin 3 → ℂhg:g 0 • V.rows 0 + g 1 • V.rows 1 + g 2 • V.rows 2 = 0⊢ ∀ (i : Fin 3), g i = 0 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • V.rows 0 + g 1 • V.rows 1 + g 2 • V.rows 2 = 0⊢ ∀ (i : Fin 3), g i = 0] at hg V:CKMMatrixg:Fin 3 → ℂhg:g 0 • V.rows 0 + g 1 • V.rows 1 + g 2 • V.rows 2 = 0⊢ ∀ (i : Fin 3), g i = 0
simp only [Fin.isValue, rows] at hg V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0⊢ ∀ (i : Fin 3), g i = 0
have h0 := congrArg (fun X => conj [V]u ⬝ᵥ X) hg V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:(starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ (g 0 • [V]u + g 1 • [V]c + g 2 • [V]t) = (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ 0⊢ ∀ (i : Fin 3), g i = 0
have h1 := congrArg (fun X => conj [V]c ⬝ᵥ X) hg V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:(starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ (g 0 • [V]u + g 1 • [V]c + g 2 • [V]t) = (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ 0h1:(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (g 0 • [V]u + g 1 • [V]c + g 2 • [V]t) = (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ 0⊢ ∀ (i : Fin 3), g i = 0
have h2 := congrArg (fun X => conj [V]t ⬝ᵥ X) hg V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:(starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ (g 0 • [V]u + g 1 • [V]c + g 2 • [V]t) = (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ 0h1:(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (g 0 • [V]u + g 1 • [V]c + g 2 • [V]t) = (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ 0h2:(starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ (g 0 • [V]u + g 1 • [V]c + g 2 • [V]t) = (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ 0⊢ ∀ (i : Fin 3), g i = 0
simp only [Fin.isValue, dotProduct_add, dotProduct_smul, smul_eq_mul, dotProduct_zero] at h0 h1 h2 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ [V]t =
0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
0h2:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
0⊢ ∀ (i : Fin 3), g i = 0
rw [uRow_normalized, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ [V]c + g 2 * (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ [V]t = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
0h2:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
0⊢ ∀ (i : Fin 3), g i = 0 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
0h2:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
0⊢ ∀ (i : Fin 3), g i = 0 uRow_cRow_orthog, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ [V]t = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
0h2:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
0⊢ ∀ (i : Fin 3), g i = 0 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
0h2:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
0⊢ ∀ (i : Fin 3), g i = 0 uRow_tRow_orthog V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
0h2:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
0⊢ ∀ (i : Fin 3), g i = 0 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
0h2:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
0⊢ ∀ (i : Fin 3), g i = 0] at h0 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
0h2:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
0⊢ ∀ (i : Fin 3), g i = 0
rw [cRow_normalized, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * 1 + g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t = 0h2:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
0⊢ ∀ (i : Fin 3), g i = 0 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h2:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
0⊢ ∀ (i : Fin 3), g i = 0 cRow_uRow_orthog, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t = 0h2:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
0⊢ ∀ (i : Fin 3), g i = 0 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h2:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
0⊢ ∀ (i : Fin 3), g i = 0 cRow_tRow_orthog V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h2:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
0⊢ ∀ (i : Fin 3), g i = 0 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h2:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
0⊢ ∀ (i : Fin 3), g i = 0] at h1 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h2:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
0⊢ ∀ (i : Fin 3), g i = 0
rw [tRow_normalized, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h2:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c + g 2 * 1 = 0⊢ ∀ (i : Fin 3), g i = 0 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h2:g 0 * 0 + g 1 * 0 + g 2 * 1 = 0⊢ ∀ (i : Fin 3), g i = 0 tRow_uRow_orthog, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h2:g 0 * 0 + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c + g 2 * 1 = 0⊢ ∀ (i : Fin 3), g i = 0 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h2:g 0 * 0 + g 1 * 0 + g 2 * 1 = 0⊢ ∀ (i : Fin 3), g i = 0 tRow_cRow_orthog V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h2:g 0 * 0 + g 1 * 0 + g 2 * 1 = 0⊢ ∀ (i : Fin 3), g i = 0 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h2:g 0 * 0 + g 1 * 0 + g 2 * 1 = 0⊢ ∀ (i : Fin 3), g i = 0] at h2 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h2:g 0 * 0 + g 1 * 0 + g 2 * 1 = 0⊢ ∀ (i : Fin 3), g i = 0
simp only [Fin.isValue, mul_one, mul_zero, add_zero, zero_add] at h0 h1 h2 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 = 0h1:g 1 = 0h2:g 2 = 0⊢ ∀ (i : Fin 3), g i = 0
intro i V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 = 0h1:g 1 = 0h2:g 2 = 0i:Fin 3⊢ g i = 0
fin_cases i «0» V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 = 0h1:g 1 = 0h2:g 2 = 0⊢ g ((fun i => i) ⟨0, ⋯⟩) = 0«1» V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 = 0h1:g 1 = 0h2:g 2 = 0⊢ g ((fun i => i) ⟨1, ⋯⟩) = 0«2» V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 = 0h1:g 1 = 0h2:g 2 = 0⊢ g ((fun i => i) ⟨2, ⋯⟩) = 0 <;> «0» V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 = 0h1:g 1 = 0h2:g 2 = 0⊢ g ((fun i => i) ⟨0, ⋯⟩) = 0«1» V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 = 0h1:g 1 = 0h2:g 2 = 0⊢ g ((fun i => i) ⟨1, ⋯⟩) = 0«2» V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = 0h0:g 0 = 0h1:g 1 = 0h2:g 2 = 0⊢ g ((fun i => i) ⟨2, ⋯⟩) = 0 assumption All goals completed! 🐙
The rows of a CKM matrix as a basis of ℂ³.
@[simps!]
noncomputable def rowBasis (V : CKMMatrix) : Basis (Fin 3) ℂ (Fin 3 → ℂ) :=
basisOfLinearIndependentOfCardEqFinrank (rows_linearly_independent V)
(Module.finrank_fin_fun ℂ).symm
lemma cRow_cross_tRow_eq_uRow (V : CKMMatrix) :
∃ (κ : ℝ), [V]u = cexp (κ * I) • (conj [V]c ⨯₃ conj [V]t) := by V:CKMMatrix⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
obtain ⟨g, hg⟩ := (Submodule.mem_span_range_iff_exists_fun ℂ).mp (Basis.mem_span (rowBasis V)
(conj [V]c ⨯₃ conj [V]t)) V:CKMMatrixg:Fin 3 → ℂhg:∑ i, g i • V.rowBasis i = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
simp only [Fin.sum_univ_three, rowBasis, Fin.isValue,
coe_basisOfLinearIndependentOfCardEqFinrank, rows] at hg V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
have h0 := congrArg (fun X => conj [V]c ⬝ᵥ X) hg V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (g 0 • [V]u + g 1 • [V]c + g 2 • [V]t) =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
have h1 := congrArg (fun X => conj [V]t ⬝ᵥ X) hg V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (g 0 • [V]u + g 1 • [V]c + g 2 • [V]t) =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h1:(starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ (g 0 • [V]u + g 1 • [V]c + g 2 • [V]t) =
(starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
simp only [Fin.isValue, dotProduct_add, dotProduct_smul, smul_eq_mul] at h0 h1 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
rw [cRow_normalized, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * 1 + g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) cRow_uRow_orthog, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * 0 + g 1 * 1 + g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) cRow_tRow_orthog, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * 0 + g 1 * 1 + g 2 * 0 =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) dot_self_cross V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)] at h0 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
rw [tRow_normalized, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c + g 2 * 1 =
(starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 0 + g 2 * 1 = 0⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) tRow_uRow_orthog, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ [V]c + g 2 * 1 =
(starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 0 + g 2 * 1 = 0⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) tRow_cRow_orthog, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 0 + g 2 * 1 =
(starRingEnd (Fin 3 → ℂ)) [V]t ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 0 + g 2 * 1 = 0⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) dot_cross_self V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 0 + g 2 * 1 = 0⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 0 + g 2 * 1 = 0⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)] at h1 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 0 + g 2 * 1 = 0⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
simp only [Fin.isValue, mul_zero, mul_one, zero_add, add_zero] at h0 h1 hg V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h0:g 1 = 0h1:g 2 = 0⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
simp only [h0, h1, zero_smul, add_zero] at hg V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
have h2 := congrArg (fun X => conj X ⬝ᵥ X) hg V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h2:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ⬝ᵥ g 0 • [V]u =
(starRingEnd (Fin 3 → ℂ)) ((crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)) ⬝ᵥ
(crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
simp only [Fin.isValue, dotProduct_smul, smul_eq_mul, cRow_cross_tRow_normalized] at h2 V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h2:g 0 * (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ⬝ᵥ [V]u = 1⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
have h3 : conj (g 0 • [V]u) = conj (g 0) • conj [V]u := by
funext i V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h2:g 0 * (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ⬝ᵥ [V]u = 1i:Fin 3⊢ (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) i = ((starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]u) i V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h2:g 0 * (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ⬝ᵥ [V]u = 1h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]u⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
fin_cases i «0» V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h2:g 0 * (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ⬝ᵥ [V]u = 1⊢ (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ((fun i => i) ⟨0, ⋯⟩) =
((starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]u) ((fun i => i) ⟨0, ⋯⟩)«1» V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h2:g 0 * (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ⬝ᵥ [V]u = 1⊢ (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ((fun i => i) ⟨1, ⋯⟩) =
((starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]u) ((fun i => i) ⟨1, ⋯⟩)«2» V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h2:g 0 * (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ⬝ᵥ [V]u = 1⊢ (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ((fun i => i) ⟨2, ⋯⟩) =
((starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]u) ((fun i => i) ⟨2, ⋯⟩) V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h2:g 0 * (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ⬝ᵥ [V]u = 1h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]u⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) <;> «0» V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h2:g 0 * (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ⬝ᵥ [V]u = 1⊢ (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ((fun i => i) ⟨0, ⋯⟩) =
((starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]u) ((fun i => i) ⟨0, ⋯⟩)«1» V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h2:g 0 * (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ⬝ᵥ [V]u = 1⊢ (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ((fun i => i) ⟨1, ⋯⟩) =
((starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]u) ((fun i => i) ⟨1, ⋯⟩)«2» V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h2:g 0 * (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ⬝ᵥ [V]u = 1⊢ (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ((fun i => i) ⟨2, ⋯⟩) =
((starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]u) ((fun i => i) ⟨2, ⋯⟩) V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h2:g 0 * (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ⬝ᵥ [V]u = 1h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]u⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) simp V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h2:g 0 * (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ⬝ᵥ [V]u = 1h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]u⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h2:g 0 * (starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) ⬝ᵥ [V]u = 1h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]u⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
simp only [Fin.isValue, h3, smul_dotProduct, uRow_normalized, smul_eq_mul, mul_one, mul_conj, ←
Complex.sq_norm] at h2 V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:↑(‖g 0‖ ^ 2) = 1⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
simp only [Fin.isValue, ofReal_pow, sq_eq_one_iff, ofReal_eq_one] at h2 V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1 ∨ ↑‖g 0‖ = -1⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
cases' h2 with h2 h2 inl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)inr V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:↑‖g 0‖ = -1⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
· inl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) have hx : [V]u = (g 0)⁻¹ • (conj ([V]c) ⨯₃ conj ([V]t)) := by
rw [← hg, V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1⊢ [V]u = (g 0)⁻¹ • g 0 • [V]u V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1⊢ g 0 ≠ 0 inl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) smul_smul, V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1⊢ [V]u = ((g 0)⁻¹ * g 0) • [V]u V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1⊢ g 0 ≠ 0inl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) inv_mul_cancel₀, V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1⊢ [V]u = 1 • [V]uV:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1⊢ g 0 ≠ 0 V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1⊢ g 0 ≠ 0inl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) one_smul V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1⊢ [V]u = [V]uV:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1⊢ g 0 ≠ 0 V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1⊢ g 0 ≠ 0inl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)] V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1⊢ g 0 ≠ 0inl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
by_contra hn V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hn:g 0 = 0⊢ Falseinl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
simp [hn] at h2inl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)inl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
have hg2 : norm (g 0)⁻¹ = 1 := by
simp [h2] inl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)hg2:‖(g 0)⁻¹‖ = 1⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)inl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)hg2:‖(g 0)⁻¹‖ = 1⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
have hg22 : ∃ (τ : ℝ), (g 0)⁻¹ = Complex.exp (τ * I) := by
rw [← norm_mul_exp_arg_mul_I (g 0)⁻¹, V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)hg2:‖(g 0)⁻¹‖ = 1⊢ ∃ τ, ↑‖(g 0)⁻¹‖ * cexp (↑(g 0)⁻¹.arg * I) = cexp (↑τ * I) V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)hg2:‖(g 0)⁻¹‖ = 1⊢ ∃ τ, ↑1 * cexp (↑(g 0)⁻¹.arg * I) = cexp (↑τ * I) inl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)hg2:‖(g 0)⁻¹‖ = 1hg22:∃ τ, (g 0)⁻¹ = cexp (↑τ * I)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) hg2 V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)hg2:‖(g 0)⁻¹‖ = 1⊢ ∃ τ, ↑1 * cexp (↑(g 0)⁻¹.arg * I) = cexp (↑τ * I) V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)hg2:‖(g 0)⁻¹‖ = 1⊢ ∃ τ, ↑1 * cexp (↑(g 0)⁻¹.arg * I) = cexp (↑τ * I)inl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)hg2:‖(g 0)⁻¹‖ = 1hg22:∃ τ, (g 0)⁻¹ = cexp (↑τ * I)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)] V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)hg2:‖(g 0)⁻¹‖ = 1⊢ ∃ τ, ↑1 * cexp (↑(g 0)⁻¹.arg * I) = cexp (↑τ * I)inl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)hg2:‖(g 0)⁻¹‖ = 1hg22:∃ τ, (g 0)⁻¹ = cexp (↑τ * I)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
use arg (g 0)⁻¹ h V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)hg2:‖(g 0)⁻¹‖ = 1⊢ ↑1 * cexp (↑(g 0)⁻¹.arg * I) = cexp (↑(g 0)⁻¹.arg * I)inl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)hg2:‖(g 0)⁻¹‖ = 1hg22:∃ τ, (g 0)⁻¹ = cexp (↑τ * I)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
simpinl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)hg2:‖(g 0)⁻¹‖ = 1hg22:∃ τ, (g 0)⁻¹ = cexp (↑τ * I)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)inl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)hg2:‖(g 0)⁻¹‖ = 1hg22:∃ τ, (g 0)⁻¹ = cexp (↑τ * I)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
obtain ⟨τ, hτ⟩ := hg22 inl V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)hg2:‖(g 0)⁻¹‖ = 1τ:ℝhτ:(g 0)⁻¹ = cexp (↑τ * I)⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
use τ h V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)hg2:‖(g 0)⁻¹‖ = 1τ:ℝhτ:(g 0)⁻¹ = cexp (↑τ * I)⊢ [V]u = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
rw [hx, h V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)hg2:‖(g 0)⁻¹‖ = 1τ:ℝhτ:(g 0)⁻¹ = cexp (↑τ * I)⊢ (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) =
cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) All goals completed! 🐙 hτ h V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:‖g 0‖ = 1hx:[V]u = (g 0)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)hg2:‖(g 0)⁻¹‖ = 1τ:ℝhτ:(g 0)⁻¹ = cexp (↑τ * I)⊢ cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) =
cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) All goals completed! 🐙] All goals completed! 🐙
· inr V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:↑‖g 0‖ = -1⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t) have hx : norm (g 0) = -1 := by
simp [← ofReal_inj, Fin.isValue, ofReal_neg, ofReal_one, h2] inr V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:↑‖g 0‖ = -1hx:‖g 0‖ = -1⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)inr V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:↑‖g 0‖ = -1hx:‖g 0‖ = -1⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
have h3 := norm_nonneg (g 0) inr V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3✝:(starRingEnd (Fin 3 → ℂ)) (g 0 • [V]u) = (starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uh2:↑‖g 0‖ = -1hx:‖g 0‖ = -1h3:0 ≤ ‖g 0‖⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
simp_all only [ofReal_neg, ofReal_one, Left.nonneg_neg_iff] inr V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3✝:(starRingEnd (Fin 3 → ℂ)) ((crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)) =
(starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uhx:‖g 0‖ = -1h3:1 ≤ 0⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
have h4 : (0 : ℝ) < 1 := by norm_num inr V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3✝:(starRingEnd (Fin 3 → ℂ)) ((crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)) =
(starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uhx:‖g 0‖ = -1h3:1 ≤ 0h4:0 < 1⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)inr V:CKMMatrixg:Fin 3 → ℂh0:g 1 = 0h1:g 2 = 0hg:g 0 • [V]u = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)h3✝:(starRingEnd (Fin 3 → ℂ)) ((crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)) =
(starRingEnd ℂ) (g 0) • (starRingEnd (Fin 3 → ℂ)) [V]uhx:‖g 0‖ = -1h3:1 ≤ 0h4:0 < 1⊢ ∃ κ, [V]u = cexp (↑κ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]c)) ((starRingEnd (Fin 3 → ℂ)) [V]t)
exact False.elim (lt_iff_not_ge.mp h4 h3) All goals completed! 🐙
lemma uRow_cross_cRow_eq_tRow (V : CKMMatrix) :
∃ (τ : ℝ), [V]t = cexp (τ * I) • (conj ([V]u) ⨯₃ conj ([V]c)) := by V:CKMMatrix⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
obtain ⟨g, hg⟩ := (Submodule.mem_span_range_iff_exists_fun ℂ).mp (Basis.mem_span (rowBasis V)
(conj ([V]u) ⨯₃ conj ([V]c))) V:CKMMatrixg:Fin 3 → ℂhg:∑ i, g i • V.rowBasis i = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
rw [Fin.sum_univ_three, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • V.rowBasis 0 + g 1 • V.rowBasis 1 + g 2 • V.rowBasis 2 =
(crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) V:CKMMatrixg:Fin 3 → ℂhg:g 0 • (basisOfLinearIndependentOfCardEqFinrank ⋯ rowBasis._proof_2) 0 +
g 1 • (basisOfLinearIndependentOfCardEqFinrank ⋯ rowBasis._proof_2) 1 +
g 2 • (basisOfLinearIndependentOfCardEqFinrank ⋯ rowBasis._proof_2) 2 =
(crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) rowBasis V:CKMMatrixg:Fin 3 → ℂhg:g 0 • (basisOfLinearIndependentOfCardEqFinrank ⋯ rowBasis._proof_2) 0 +
g 1 • (basisOfLinearIndependentOfCardEqFinrank ⋯ rowBasis._proof_2) 1 +
g 2 • (basisOfLinearIndependentOfCardEqFinrank ⋯ rowBasis._proof_2) 2 =
(crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) V:CKMMatrixg:Fin 3 → ℂhg:g 0 • (basisOfLinearIndependentOfCardEqFinrank ⋯ rowBasis._proof_2) 0 +
g 1 • (basisOfLinearIndependentOfCardEqFinrank ⋯ rowBasis._proof_2) 1 +
g 2 • (basisOfLinearIndependentOfCardEqFinrank ⋯ rowBasis._proof_2) 2 =
(crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)] at hg V:CKMMatrixg:Fin 3 → ℂhg:g 0 • (basisOfLinearIndependentOfCardEqFinrank ⋯ rowBasis._proof_2) 0 +
g 1 • (basisOfLinearIndependentOfCardEqFinrank ⋯ rowBasis._proof_2) 1 +
g 2 • (basisOfLinearIndependentOfCardEqFinrank ⋯ rowBasis._proof_2) 2 =
(crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
simp only [Fin.isValue, coe_basisOfLinearIndependentOfCardEqFinrank, rows] at hg V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
have h0 := congrArg (fun X => conj [V]u ⬝ᵥ X) hg V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:(starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ (g 0 • [V]u + g 1 • [V]c + g 2 • [V]t) =
(starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
have h1 := congrArg (fun X => conj [V]c ⬝ᵥ X) hg V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:(starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ (g 0 • [V]u + g 1 • [V]c + g 2 • [V]t) =
(starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1:(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (g 0 • [V]u + g 1 • [V]c + g 2 • [V]t) =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
simp only [Fin.isValue, dotProduct_add, dotProduct_smul, smul_eq_mul] at h0 h1 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
rw [uRow_normalized, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * 1 + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ [V]c + g 2 * (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) uRow_cRow_orthog, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * 1 + g 1 * 0 + g 2 * (starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) uRow_tRow_orthog, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * 1 + g 1 * 0 + g 2 * 0 =
(starRingEnd (Fin 3 → ℂ)) [V]u ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) dot_self_cross V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)] at h0 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]c +
g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
rw [cRow_normalized, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]u + g 1 * 1 + g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) cRow_uRow_orthog, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * (starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) cRow_tRow_orthog, V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 =
(starRingEnd (Fin 3 → ℂ)) [V]c ⬝ᵥ (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) dot_cross_self V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)] at h1 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 * 1 + g 1 * 0 + g 2 * 0 = 0h1:g 0 * 0 + g 1 * 1 + g 2 * 0 = 0⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
simp only [Fin.isValue, mul_one, mul_zero, add_zero, zero_add] at h0 h1 V:CKMMatrixg:Fin 3 → ℂhg:g 0 • [V]u + g 1 • [V]c + g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h0:g 0 = 0h1:g 1 = 0⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
simp only [Fin.isValue, h0, zero_smul, h1, add_zero, zero_add] at hg V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
have h2 := congrArg (fun X => conj X ⬝ᵥ X) hg V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ⬝ᵥ g 2 • [V]t =
(starRingEnd (Fin 3 → ℂ)) ((crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)) ⬝ᵥ
(crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
simp only [Fin.isValue, dotProduct_smul, smul_eq_mul] at h2 V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:g 2 * (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ⬝ᵥ [V]t =
(starRingEnd (Fin 3 → ℂ)) ((crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)) ⬝ᵥ
(crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
rw [uRow_cross_cRow_normalized V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:g 2 * (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ⬝ᵥ [V]t = 1⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:g 2 * (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ⬝ᵥ [V]t = 1⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)] at h2 V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:g 2 * (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ⬝ᵥ [V]t = 1⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
have h3 : conj (g 2 • [V]t) = conj (g 2) • conj [V]t := by
funext i V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:g 2 * (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ⬝ᵥ [V]t = 1i:Fin 3⊢ (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) i = ((starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]t) i V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:g 2 * (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ⬝ᵥ [V]t = 1h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]t⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
fin_cases i «0» V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:g 2 * (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ⬝ᵥ [V]t = 1⊢ (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ((fun i => i) ⟨0, ⋯⟩) =
((starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]t) ((fun i => i) ⟨0, ⋯⟩)«1» V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:g 2 * (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ⬝ᵥ [V]t = 1⊢ (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ((fun i => i) ⟨1, ⋯⟩) =
((starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]t) ((fun i => i) ⟨1, ⋯⟩)«2» V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:g 2 * (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ⬝ᵥ [V]t = 1⊢ (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ((fun i => i) ⟨2, ⋯⟩) =
((starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]t) ((fun i => i) ⟨2, ⋯⟩) V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:g 2 * (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ⬝ᵥ [V]t = 1h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]t⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) <;> «0» V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:g 2 * (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ⬝ᵥ [V]t = 1⊢ (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ((fun i => i) ⟨0, ⋯⟩) =
((starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]t) ((fun i => i) ⟨0, ⋯⟩)«1» V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:g 2 * (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ⬝ᵥ [V]t = 1⊢ (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ((fun i => i) ⟨1, ⋯⟩) =
((starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]t) ((fun i => i) ⟨1, ⋯⟩)«2» V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:g 2 * (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ⬝ᵥ [V]t = 1⊢ (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ((fun i => i) ⟨2, ⋯⟩) =
((starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]t) ((fun i => i) ⟨2, ⋯⟩) V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:g 2 * (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ⬝ᵥ [V]t = 1h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]t⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) simp V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:g 2 * (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ⬝ᵥ [V]t = 1h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]t⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h2:g 2 * (starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) ⬝ᵥ [V]t = 1h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]t⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
simp only [h3, Fin.isValue, smul_dotProduct, smul_eq_mul, tRow_normalized,
Fin.isValue, mul_one, mul_conj, ← Complex.sq_norm, ofReal_pow, sq_eq_one_iff,
ofReal_eq_one] at h2 V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1 ∨ ↑‖g 2‖ = -1⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
cases' h2 with h2 h2 inl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)inr V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:↑‖g 2‖ = -1⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
swap inr V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:↑‖g 2‖ = -1⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)inl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
· inr V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:↑‖g 2‖ = -1⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) have hx : norm (g 2) = -1 := by
simp [h2, ← ofReal_inj, Fin.isValue, ofReal_neg, ofReal_one] inr V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:↑‖g 2‖ = -1hx:‖g 2‖ = -1⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)inr V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:↑‖g 2‖ = -1hx:‖g 2‖ = -1⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
have h3 := norm_nonneg (g 2) inr V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3✝:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:↑‖g 2‖ = -1hx:‖g 2‖ = -1h3:0 ≤ ‖g 2‖⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
simp_all only [ofReal_neg, ofReal_one, Left.nonneg_neg_iff] inr V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3✝:(starRingEnd (Fin 3 → ℂ)) ((crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)) =
(starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]thx:‖g 2‖ = -1h3:1 ≤ 0⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
have h4 : (0 : ℝ) < 1 := by norm_num inr V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3✝:(starRingEnd (Fin 3 → ℂ)) ((crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)) =
(starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]thx:‖g 2‖ = -1h3:1 ≤ 0h4:0 < 1⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)inr V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3✝:(starRingEnd (Fin 3 → ℂ)) ((crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)) =
(starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]thx:‖g 2‖ = -1h3:1 ≤ 0h4:0 < 1⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
exact False.elim (lt_iff_not_ge.mp h4 h3) All goals completed! 🐙
· inl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) have hx : [V]t = (g 2)⁻¹ • (conj ([V]u) ⨯₃ conj ([V]c)) := by
rw [← hg, V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1⊢ [V]t = (g 2)⁻¹ • g 2 • [V]t V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1⊢ g 2 ≠ 0 inl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) @smul_smul, V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1⊢ [V]t = ((g 2)⁻¹ * g 2) • [V]t V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1⊢ g 2 ≠ 0inl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) inv_mul_cancel₀, V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1⊢ [V]t = 1 • [V]tV:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1⊢ g 2 ≠ 0 V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1⊢ g 2 ≠ 0inl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) one_smul V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1⊢ [V]t = [V]tV:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1⊢ g 2 ≠ 0 V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1⊢ g 2 ≠ 0inl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)] V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1⊢ g 2 ≠ 0inl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
by_contra hn V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hn:g 2 = 0⊢ Falseinl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
simp [hn] at h2inl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)inl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
have hg2 : norm (g 2)⁻¹ = 1 := by
simp [h2] inl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)hg2:‖(g 2)⁻¹‖ = 1⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)inl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)hg2:‖(g 2)⁻¹‖ = 1⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
have hg22 : ∃ (τ : ℝ), (g 2)⁻¹ = Complex.exp (τ * I) := by
rw [← norm_mul_exp_arg_mul_I (g 2)⁻¹ V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)hg2:‖(g 2)⁻¹‖ = 1⊢ ∃ τ, ↑‖(g 2)⁻¹‖ * cexp (↑(g 2)⁻¹.arg * I) = cexp (↑τ * I) V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)hg2:‖(g 2)⁻¹‖ = 1⊢ ∃ τ, ↑‖(g 2)⁻¹‖ * cexp (↑(g 2)⁻¹.arg * I) = cexp (↑τ * I) inl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)hg2:‖(g 2)⁻¹‖ = 1hg22:∃ τ, (g 2)⁻¹ = cexp (↑τ * I)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)] V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)hg2:‖(g 2)⁻¹‖ = 1⊢ ∃ τ, ↑‖(g 2)⁻¹‖ * cexp (↑(g 2)⁻¹.arg * I) = cexp (↑τ * I)inl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)hg2:‖(g 2)⁻¹‖ = 1hg22:∃ τ, (g 2)⁻¹ = cexp (↑τ * I)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
use arg (g 2)⁻¹ h V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)hg2:‖(g 2)⁻¹‖ = 1⊢ ↑‖(g 2)⁻¹‖ * cexp (↑(g 2)⁻¹.arg * I) = cexp (↑(g 2)⁻¹.arg * I)inl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)hg2:‖(g 2)⁻¹‖ = 1hg22:∃ τ, (g 2)⁻¹ = cexp (↑τ * I)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
simp [hg2]inl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)hg2:‖(g 2)⁻¹‖ = 1hg22:∃ τ, (g 2)⁻¹ = cexp (↑τ * I)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)inl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)hg2:‖(g 2)⁻¹‖ = 1hg22:∃ τ, (g 2)⁻¹ = cexp (↑τ * I)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
obtain ⟨τ, hτ⟩ := hg22 inl V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)hg2:‖(g 2)⁻¹‖ = 1τ:ℝhτ:(g 2)⁻¹ = cexp (↑τ * I)⊢ ∃ τ, [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
use τ h V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)hg2:‖(g 2)⁻¹‖ = 1τ:ℝhτ:(g 2)⁻¹ = cexp (↑τ * I)⊢ [V]t = cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)
rw [hx, h V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)hg2:‖(g 2)⁻¹‖ = 1τ:ℝhτ:(g 2)⁻¹ = cexp (↑τ * I)⊢ (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) =
cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) All goals completed! 🐙 hτ h V:CKMMatrixg:Fin 3 → ℂh0:g 0 = 0h1:g 1 = 0hg:g 2 • [V]t = (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)h3:(starRingEnd (Fin 3 → ℂ)) (g 2 • [V]t) = (starRingEnd ℂ) (g 2) • (starRingEnd (Fin 3 → ℂ)) [V]th2:‖g 2‖ = 1hx:[V]t = (g 2)⁻¹ • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c)hg2:‖(g 2)⁻¹‖ = 1τ:ℝhτ:(g 2)⁻¹ = cexp (↑τ * I)⊢ cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) =
cexp (↑τ * I) • (crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) All goals completed! 🐙] All goals completed! 🐙lemma ext_Rows {U V : CKMMatrix} (hu : [U]u = [V]u) (hc : [U]c = [V]c) (ht : [U]t = [V]t) :
U = V := by U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]t⊢ U = V
apply CKMMatrix_ext U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]t⊢ ↑U = ↑V
funext i j U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]ti:Fin 3j:Fin 3⊢ ↑U i j = ↑V i j
fin_cases i «0» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]tj:Fin 3⊢ ↑U ((fun i => i) ⟨0, ⋯⟩) j = ↑V ((fun i => i) ⟨0, ⋯⟩) j«1» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]tj:Fin 3⊢ ↑U ((fun i => i) ⟨1, ⋯⟩) j = ↑V ((fun i => i) ⟨1, ⋯⟩) j«2» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]tj:Fin 3⊢ ↑U ((fun i => i) ⟨2, ⋯⟩) j = ↑V ((fun i => i) ⟨2, ⋯⟩) j
· «0» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]tj:Fin 3⊢ ↑U ((fun i => i) ⟨0, ⋯⟩) j = ↑V ((fun i => i) ⟨0, ⋯⟩) j have h1 := congrFun hu j «0» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]tj:Fin 3h1:[U]u j = [V]u j⊢ ↑U ((fun i => i) ⟨0, ⋯⟩) j = ↑V ((fun i => i) ⟨0, ⋯⟩) j
fin_cases j «0».«0» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]th1:[U]u ((fun i => i) ⟨0, ⋯⟩) = [V]u ((fun i => i) ⟨0, ⋯⟩)⊢ ↑U ((fun i => i) ⟨0, ⋯⟩) ((fun i => i) ⟨0, ⋯⟩) = ↑V ((fun i => i) ⟨0, ⋯⟩) ((fun i => i) ⟨0, ⋯⟩)«0».«1» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]th1:[U]u ((fun i => i) ⟨1, ⋯⟩) = [V]u ((fun i => i) ⟨1, ⋯⟩)⊢ ↑U ((fun i => i) ⟨0, ⋯⟩) ((fun i => i) ⟨1, ⋯⟩) = ↑V ((fun i => i) ⟨0, ⋯⟩) ((fun i => i) ⟨1, ⋯⟩)«0».«2» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]th1:[U]u ((fun i => i) ⟨2, ⋯⟩) = [V]u ((fun i => i) ⟨2, ⋯⟩)⊢ ↑U ((fun i => i) ⟨0, ⋯⟩) ((fun i => i) ⟨2, ⋯⟩) = ↑V ((fun i => i) ⟨0, ⋯⟩) ((fun i => i) ⟨2, ⋯⟩) <;> «0».«0» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]th1:[U]u ((fun i => i) ⟨0, ⋯⟩) = [V]u ((fun i => i) ⟨0, ⋯⟩)⊢ ↑U ((fun i => i) ⟨0, ⋯⟩) ((fun i => i) ⟨0, ⋯⟩) = ↑V ((fun i => i) ⟨0, ⋯⟩) ((fun i => i) ⟨0, ⋯⟩)«0».«1» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]th1:[U]u ((fun i => i) ⟨1, ⋯⟩) = [V]u ((fun i => i) ⟨1, ⋯⟩)⊢ ↑U ((fun i => i) ⟨0, ⋯⟩) ((fun i => i) ⟨1, ⋯⟩) = ↑V ((fun i => i) ⟨0, ⋯⟩) ((fun i => i) ⟨1, ⋯⟩)«0».«2» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]th1:[U]u ((fun i => i) ⟨2, ⋯⟩) = [V]u ((fun i => i) ⟨2, ⋯⟩)⊢ ↑U ((fun i => i) ⟨0, ⋯⟩) ((fun i => i) ⟨2, ⋯⟩) = ↑V ((fun i => i) ⟨0, ⋯⟩) ((fun i => i) ⟨2, ⋯⟩) exact h1 All goals completed! 🐙
· «1» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]tj:Fin 3⊢ ↑U ((fun i => i) ⟨1, ⋯⟩) j = ↑V ((fun i => i) ⟨1, ⋯⟩) j have h1 := congrFun hc j «1» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]tj:Fin 3h1:[U]c j = [V]c j⊢ ↑U ((fun i => i) ⟨1, ⋯⟩) j = ↑V ((fun i => i) ⟨1, ⋯⟩) j
fin_cases j «1».«0» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]th1:[U]c ((fun i => i) ⟨0, ⋯⟩) = [V]c ((fun i => i) ⟨0, ⋯⟩)⊢ ↑U ((fun i => i) ⟨1, ⋯⟩) ((fun i => i) ⟨0, ⋯⟩) = ↑V ((fun i => i) ⟨1, ⋯⟩) ((fun i => i) ⟨0, ⋯⟩)«1».«1» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]th1:[U]c ((fun i => i) ⟨1, ⋯⟩) = [V]c ((fun i => i) ⟨1, ⋯⟩)⊢ ↑U ((fun i => i) ⟨1, ⋯⟩) ((fun i => i) ⟨1, ⋯⟩) = ↑V ((fun i => i) ⟨1, ⋯⟩) ((fun i => i) ⟨1, ⋯⟩)«1».«2» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]th1:[U]c ((fun i => i) ⟨2, ⋯⟩) = [V]c ((fun i => i) ⟨2, ⋯⟩)⊢ ↑U ((fun i => i) ⟨1, ⋯⟩) ((fun i => i) ⟨2, ⋯⟩) = ↑V ((fun i => i) ⟨1, ⋯⟩) ((fun i => i) ⟨2, ⋯⟩) <;> «1».«0» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]th1:[U]c ((fun i => i) ⟨0, ⋯⟩) = [V]c ((fun i => i) ⟨0, ⋯⟩)⊢ ↑U ((fun i => i) ⟨1, ⋯⟩) ((fun i => i) ⟨0, ⋯⟩) = ↑V ((fun i => i) ⟨1, ⋯⟩) ((fun i => i) ⟨0, ⋯⟩)«1».«1» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]th1:[U]c ((fun i => i) ⟨1, ⋯⟩) = [V]c ((fun i => i) ⟨1, ⋯⟩)⊢ ↑U ((fun i => i) ⟨1, ⋯⟩) ((fun i => i) ⟨1, ⋯⟩) = ↑V ((fun i => i) ⟨1, ⋯⟩) ((fun i => i) ⟨1, ⋯⟩)«1».«2» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]th1:[U]c ((fun i => i) ⟨2, ⋯⟩) = [V]c ((fun i => i) ⟨2, ⋯⟩)⊢ ↑U ((fun i => i) ⟨1, ⋯⟩) ((fun i => i) ⟨2, ⋯⟩) = ↑V ((fun i => i) ⟨1, ⋯⟩) ((fun i => i) ⟨2, ⋯⟩) exact h1 All goals completed! 🐙
· «2» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]tj:Fin 3⊢ ↑U ((fun i => i) ⟨2, ⋯⟩) j = ↑V ((fun i => i) ⟨2, ⋯⟩) j have h1 := congrFun ht j «2» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]tj:Fin 3h1:[U]t j = [V]t j⊢ ↑U ((fun i => i) ⟨2, ⋯⟩) j = ↑V ((fun i => i) ⟨2, ⋯⟩) j
fin_cases j «2».«0» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]th1:[U]t ((fun i => i) ⟨0, ⋯⟩) = [V]t ((fun i => i) ⟨0, ⋯⟩)⊢ ↑U ((fun i => i) ⟨2, ⋯⟩) ((fun i => i) ⟨0, ⋯⟩) = ↑V ((fun i => i) ⟨2, ⋯⟩) ((fun i => i) ⟨0, ⋯⟩)«2».«1» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]th1:[U]t ((fun i => i) ⟨1, ⋯⟩) = [V]t ((fun i => i) ⟨1, ⋯⟩)⊢ ↑U ((fun i => i) ⟨2, ⋯⟩) ((fun i => i) ⟨1, ⋯⟩) = ↑V ((fun i => i) ⟨2, ⋯⟩) ((fun i => i) ⟨1, ⋯⟩)«2».«2» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]th1:[U]t ((fun i => i) ⟨2, ⋯⟩) = [V]t ((fun i => i) ⟨2, ⋯⟩)⊢ ↑U ((fun i => i) ⟨2, ⋯⟩) ((fun i => i) ⟨2, ⋯⟩) = ↑V ((fun i => i) ⟨2, ⋯⟩) ((fun i => i) ⟨2, ⋯⟩) <;> «2».«0» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]th1:[U]t ((fun i => i) ⟨0, ⋯⟩) = [V]t ((fun i => i) ⟨0, ⋯⟩)⊢ ↑U ((fun i => i) ⟨2, ⋯⟩) ((fun i => i) ⟨0, ⋯⟩) = ↑V ((fun i => i) ⟨2, ⋯⟩) ((fun i => i) ⟨0, ⋯⟩)«2».«1» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]th1:[U]t ((fun i => i) ⟨1, ⋯⟩) = [V]t ((fun i => i) ⟨1, ⋯⟩)⊢ ↑U ((fun i => i) ⟨2, ⋯⟩) ((fun i => i) ⟨1, ⋯⟩) = ↑V ((fun i => i) ⟨2, ⋯⟩) ((fun i => i) ⟨1, ⋯⟩)«2».«2» U:CKMMatrixV:CKMMatrixhu:[U]u = [V]uhc:[U]c = [V]cht:[U]t = [V]th1:[U]t ((fun i => i) ⟨2, ⋯⟩) = [V]t ((fun i => i) ⟨2, ⋯⟩)⊢ ↑U ((fun i => i) ⟨2, ⋯⟩) ((fun i => i) ⟨2, ⋯⟩) = ↑V ((fun i => i) ⟨2, ⋯⟩) ((fun i => i) ⟨2, ⋯⟩) exact h1 All goals completed! 🐙
The cross product of the conjugate of the u and c rows of a CKM matrix.
def ucCross : Fin 3 → ℂ :=
conj [phaseShiftApply V a b c d e f]u ⨯₃ conj [phaseShiftApply V a b c d e f]clemma ucCross_fst (V : CKMMatrix) : (ucCross V a b c d e f) 0 =
cexp ((- a * I) + (- b * I) + (- e * I) + (- f * I)) * (conj [V]u ⨯₃ conj [V]c) 0 := by a:ℝb:ℝc:ℝd:ℝe:ℝf:ℝV:CKMMatrix⊢ ucCross V a b c d e f 0 =
cexp (-↑a * I + -↑b * I + -↑e * I + -↑f * I) *
(crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) 0
simp only [ucCross, crossProduct, Nat.succ_eq_add_one, Nat.reduceAdd, Fin.isValue, uRow,
phaseShiftApply_coe, us, exp_add, ub, cRow, cs, cb, LinearMap.mk₂_apply, Pi.conj_apply,
cons_val_one, head_cons, _root_.map_mul, ← exp_conj, conj_ofReal, conj_I, mul_neg, cons_val_two,
tail_cons, cons_val_zero, neg_mul] a:ℝb:ℝc:ℝd:ℝe:ℝf:ℝV:CKMMatrix⊢ cexp (-(↑a * I)) * cexp (-(↑e * I)) * (starRingEnd ℂ) (↑V 0 1) *
(cexp (-(↑b * I)) * cexp (-(↑f * I)) * (starRingEnd ℂ) (↑V 1 2)) -
cexp (-(↑a * I)) * cexp (-(↑f * I)) * (starRingEnd ℂ) (↑V 0 2) *
(cexp (-(↑b * I)) * cexp (-(↑e * I)) * (starRingEnd ℂ) (↑V 1 1)) =
cexp (-(↑a * I)) * cexp (-(↑b * I)) * cexp (-(↑e * I)) * cexp (-(↑f * I)) *
((starRingEnd ℂ) (↑V 0 1) * (starRingEnd ℂ) (↑V 1 2) - (starRingEnd ℂ) (↑V 0 2) * (starRingEnd ℂ) (↑V 1 1))
ring All goals completed! 🐙lemma ucCross_snd (V : CKMMatrix) : (ucCross V a b c d e f) 1 =
cexp ((- a * I) + (- b * I) + (- d * I) + (- f * I)) * (conj [V]u ⨯₃ conj [V]c) 1 := by a:ℝb:ℝc:ℝd:ℝe:ℝf:ℝV:CKMMatrix⊢ ucCross V a b c d e f 1 =
cexp (-↑a * I + -↑b * I + -↑d * I + -↑f * I) *
(crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) 1
simp only [ucCross, crossProduct, Nat.succ_eq_add_one, Nat.reduceAdd, Fin.isValue, uRow, ud,
exp_add, us, ub, cRow, cd, cs, cb, LinearMap.mk₂_apply, Pi.conj_apply, cons_val_one, head_cons,
_root_.map_mul, ← exp_conj, conj_ofReal, conj_I, mul_neg, cons_val_two, tail_cons,
cons_val_zero, neg_mul] a:ℝb:ℝc:ℝd:ℝe:ℝf:ℝV:CKMMatrix⊢ cexp (-(↑a * I)) * cexp (-(↑f * I)) * (starRingEnd ℂ) (↑V 0 2) *
(cexp (-(↑b * I)) * cexp (-(↑d * I)) * (starRingEnd ℂ) (↑V 1 0)) -
cexp (-(↑a * I)) * cexp (-(↑d * I)) * (starRingEnd ℂ) (↑V 0 0) *
(cexp (-(↑b * I)) * cexp (-(↑f * I)) * (starRingEnd ℂ) (↑V 1 2)) =
cexp (-(↑a * I)) * cexp (-(↑b * I)) * cexp (-(↑d * I)) * cexp (-(↑f * I)) *
((starRingEnd ℂ) (↑V 0 2) * (starRingEnd ℂ) (↑V 1 0) - (starRingEnd ℂ) (↑V 0 0) * (starRingEnd ℂ) (↑V 1 2))
ring All goals completed! 🐙lemma ucCross_thd (V : CKMMatrix) : (ucCross V a b c d e f) 2 =
cexp ((- a * I) + (- b * I) + (- d * I) + (- e * I)) * (conj [V]u ⨯₃ conj [V]c) 2 := by a:ℝb:ℝc:ℝd:ℝe:ℝf:ℝV:CKMMatrix⊢ ucCross V a b c d e f 2 =
cexp (-↑a * I + -↑b * I + -↑d * I + -↑e * I) *
(crossProduct ((starRingEnd (Fin 3 → ℂ)) [V]u)) ((starRingEnd (Fin 3 → ℂ)) [V]c) 2
simp only [ucCross, crossProduct, Nat.succ_eq_add_one, Nat.reduceAdd, Fin.isValue, uRow, ud,
exp_add, us, ub, cRow, cd, cs, cb, LinearMap.mk₂_apply, Pi.conj_apply, cons_val_one, head_cons,
_root_.map_mul, ← exp_conj, conj_ofReal, conj_I, mul_neg, cons_val_two, tail_cons,
cons_val_zero, neg_mul] a:ℝb:ℝc:ℝd:ℝe:ℝf:ℝV:CKMMatrix⊢ cexp (-(↑a * I)) * cexp (-(↑d * I)) * (starRingEnd ℂ) (↑V 0 0) *
(cexp (-(↑b * I)) * cexp (-(↑e * I)) * (starRingEnd ℂ) (↑V 1 1)) -
cexp (-(↑a * I)) * cexp (-(↑e * I)) * (starRingEnd ℂ) (↑V 0 1) *
(cexp (-(↑b * I)) * cexp (-(↑d * I)) * (starRingEnd ℂ) (↑V 1 0)) =
cexp (-(↑a * I)) * cexp (-(↑b * I)) * cexp (-(↑d * I)) * cexp (-(↑e * I)) *
((starRingEnd ℂ) (↑V 0 0) * (starRingEnd ℂ) (↑V 1 1) - (starRingEnd ℂ) (↑V 0 1) * (starRingEnd ℂ) (↑V 1 0))
ring All goals completed! 🐙lemma uRow_mul (V : CKMMatrix) (a b c : ℝ) :
[phaseShiftApply V a b c 0 0 0]u = cexp (a * I) • [V]u := by V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]u = cexp (↑a * I) • [V]u
funext i V:CKMMatrixa:ℝb:ℝc:ℝi:Fin 3⊢ [phaseShiftApply V a b c 0 0 0]u i = (cexp (↑a * I) • [V]u) i
simp only [Pi.smul_apply, smul_eq_mul] V:CKMMatrixa:ℝb:ℝc:ℝi:Fin 3⊢ [phaseShiftApply V a b c 0 0 0]u i = cexp (↑a * I) * [V]u i
fin_cases i «0» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]u ((fun i => i) ⟨0, ⋯⟩) = cexp (↑a * I) * [V]u ((fun i => i) ⟨0, ⋯⟩)«1» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]u ((fun i => i) ⟨1, ⋯⟩) = cexp (↑a * I) * [V]u ((fun i => i) ⟨1, ⋯⟩)«2» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]u ((fun i => i) ⟨2, ⋯⟩) = cexp (↑a * I) * [V]u ((fun i => i) ⟨2, ⋯⟩) <;> «0» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]u ((fun i => i) ⟨0, ⋯⟩) = cexp (↑a * I) * [V]u ((fun i => i) ⟨0, ⋯⟩)«1» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]u ((fun i => i) ⟨1, ⋯⟩) = cexp (↑a * I) * [V]u ((fun i => i) ⟨1, ⋯⟩)«2» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]u ((fun i => i) ⟨2, ⋯⟩) = cexp (↑a * I) * [V]u ((fun i => i) ⟨2, ⋯⟩)
change (phaseShiftApply V a b c 0 0 0).1 0 _ = _ «2» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ ↑(phaseShiftApply V a b c 0 0 0) 0 2 = cexp (↑a * I) * [V]u ((fun i => i) ⟨2, ⋯⟩)
· «0» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ ↑(phaseShiftApply V a b c 0 0 0) 0 0 = cexp (↑a * I) * [V]u ((fun i => i) ⟨0, ⋯⟩) simp only [Fin.isValue, ud, ofReal_zero, zero_mul, add_zero, uRow, Fin.zero_eta, cons_val_zero] All goals completed! 🐙
· «1» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ ↑(phaseShiftApply V a b c 0 0 0) 0 1 = cexp (↑a * I) * [V]u ((fun i => i) ⟨1, ⋯⟩) simp [Fin.isValue, us, ofReal_zero, zero_mul, add_zero, uRow, Fin.mk_one, cons_val_one] All goals completed! 🐙
· «2» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ ↑(phaseShiftApply V a b c 0 0 0) 0 2 = cexp (↑a * I) * [V]u ((fun i => i) ⟨2, ⋯⟩) simp only [Fin.isValue, ub, ofReal_zero, zero_mul, add_zero, uRow, Fin.reduceFinMk,
cons_val_two, Nat.succ_eq_add_one, Nat.reduceAdd, tail_cons, head_cons] All goals completed! 🐙lemma cRow_mul (V : CKMMatrix) (a b c : ℝ) :
[phaseShiftApply V a b c 0 0 0]c = cexp (b * I) • [V]c := by V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]c = cexp (↑b * I) • [V]c
funext i V:CKMMatrixa:ℝb:ℝc:ℝi:Fin 3⊢ [phaseShiftApply V a b c 0 0 0]c i = (cexp (↑b * I) • [V]c) i
simp only [Pi.smul_apply, smul_eq_mul] V:CKMMatrixa:ℝb:ℝc:ℝi:Fin 3⊢ [phaseShiftApply V a b c 0 0 0]c i = cexp (↑b * I) * [V]c i
fin_cases i «0» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]c ((fun i => i) ⟨0, ⋯⟩) = cexp (↑b * I) * [V]c ((fun i => i) ⟨0, ⋯⟩)«1» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]c ((fun i => i) ⟨1, ⋯⟩) = cexp (↑b * I) * [V]c ((fun i => i) ⟨1, ⋯⟩)«2» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]c ((fun i => i) ⟨2, ⋯⟩) = cexp (↑b * I) * [V]c ((fun i => i) ⟨2, ⋯⟩) <;> «0» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]c ((fun i => i) ⟨0, ⋯⟩) = cexp (↑b * I) * [V]c ((fun i => i) ⟨0, ⋯⟩)«1» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]c ((fun i => i) ⟨1, ⋯⟩) = cexp (↑b * I) * [V]c ((fun i => i) ⟨1, ⋯⟩)«2» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]c ((fun i => i) ⟨2, ⋯⟩) = cexp (↑b * I) * [V]c ((fun i => i) ⟨2, ⋯⟩)
change (phaseShiftApply V a b c 0 0 0).1 1 _ = _ «2» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ ↑(phaseShiftApply V a b c 0 0 0) 1 2 = cexp (↑b * I) * [V]c ((fun i => i) ⟨2, ⋯⟩)
· «0» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ ↑(phaseShiftApply V a b c 0 0 0) 1 0 = cexp (↑b * I) * [V]c ((fun i => i) ⟨0, ⋯⟩) simp only [Fin.isValue, cd, ofReal_zero, zero_mul, add_zero, cRow, Fin.zero_eta, cons_val_zero] All goals completed! 🐙
· «1» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ ↑(phaseShiftApply V a b c 0 0 0) 1 1 = cexp (↑b * I) * [V]c ((fun i => i) ⟨1, ⋯⟩) simp [Fin.isValue, cs, ofReal_zero, zero_mul, add_zero, cRow, Fin.mk_one, cons_val_one] All goals completed! 🐙
· «2» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ ↑(phaseShiftApply V a b c 0 0 0) 1 2 = cexp (↑b * I) * [V]c ((fun i => i) ⟨2, ⋯⟩) simp only [Fin.isValue, cb, ofReal_zero, zero_mul, add_zero, cRow, Fin.reduceFinMk,
cons_val_two, Nat.succ_eq_add_one, Nat.reduceAdd, tail_cons, head_cons] All goals completed! 🐙lemma tRow_mul (V : CKMMatrix) (a b c : ℝ) :
[phaseShiftApply V a b c 0 0 0]t = cexp (c * I) • [V]t := by V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]t = cexp (↑c * I) • [V]t
funext i V:CKMMatrixa:ℝb:ℝc:ℝi:Fin 3⊢ [phaseShiftApply V a b c 0 0 0]t i = (cexp (↑c * I) • [V]t) i
simp only [Pi.smul_apply, smul_eq_mul] V:CKMMatrixa:ℝb:ℝc:ℝi:Fin 3⊢ [phaseShiftApply V a b c 0 0 0]t i = cexp (↑c * I) * [V]t i
fin_cases i «0» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]t ((fun i => i) ⟨0, ⋯⟩) = cexp (↑c * I) * [V]t ((fun i => i) ⟨0, ⋯⟩)«1» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]t ((fun i => i) ⟨1, ⋯⟩) = cexp (↑c * I) * [V]t ((fun i => i) ⟨1, ⋯⟩)«2» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]t ((fun i => i) ⟨2, ⋯⟩) = cexp (↑c * I) * [V]t ((fun i => i) ⟨2, ⋯⟩) <;> «0» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]t ((fun i => i) ⟨0, ⋯⟩) = cexp (↑c * I) * [V]t ((fun i => i) ⟨0, ⋯⟩)«1» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]t ((fun i => i) ⟨1, ⋯⟩) = cexp (↑c * I) * [V]t ((fun i => i) ⟨1, ⋯⟩)«2» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ [phaseShiftApply V a b c 0 0 0]t ((fun i => i) ⟨2, ⋯⟩) = cexp (↑c * I) * [V]t ((fun i => i) ⟨2, ⋯⟩)
change (phaseShiftApply V a b c 0 0 0).1 2 _ = _ «2» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ ↑(phaseShiftApply V a b c 0 0 0) 2 2 = cexp (↑c * I) * [V]t ((fun i => i) ⟨2, ⋯⟩)
· «0» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ ↑(phaseShiftApply V a b c 0 0 0) 2 0 = cexp (↑c * I) * [V]t ((fun i => i) ⟨0, ⋯⟩) simp only [Fin.isValue, td, ofReal_zero, zero_mul, add_zero, tRow, Fin.zero_eta, cons_val_zero] All goals completed! 🐙
· «1» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ ↑(phaseShiftApply V a b c 0 0 0) 2 1 = cexp (↑c * I) * [V]t ((fun i => i) ⟨1, ⋯⟩) simp [Fin.isValue, ts, ofReal_zero, zero_mul, add_zero, tRow, Fin.mk_one, cons_val_one] All goals completed! 🐙
· «2» V:CKMMatrixa:ℝb:ℝc:ℝ⊢ ↑(phaseShiftApply V a b c 0 0 0) 2 2 = cexp (↑c * I) * [V]t ((fun i => i) ⟨2, ⋯⟩) simp only [Fin.isValue, tb, ofReal_zero, zero_mul, add_zero, tRow, Fin.reduceFinMk,
cons_val_two, Nat.succ_eq_add_one, Nat.reduceAdd, tail_cons, head_cons] All goals completed! 🐙