refactor: Last batch of multi-goal proofs

This commit is contained in:
jstoobysmith 2024-08-21 06:40:58 -04:00
parent b9479c904d
commit c0499483a8
43 changed files with 910 additions and 955 deletions

View file

@ -74,23 +74,23 @@ lemma decomp_stdBasis (v : LorentzVector d) : ∑ i, v i • e i = v := by
funext ν
rw [Finset.sum_apply]
rw [Finset.sum_eq_single_of_mem ν]
simp [HSMul.hSMul, SMul.smul, stdBasis, Pi.basisFun_apply]
erw [Pi.basisFun_apply]
simp only [LinearMap.stdBasis_same, mul_one]
exact Finset.mem_univ ν
intros b _ hbi
simp [HSMul.hSMul, SMul.smul, stdBasis, Pi.basisFun_apply]
erw [Pi.basisFun_apply]
simp [LinearMap.stdBasis_apply]
exact Or.inr hbi
· simp [HSMul.hSMul, SMul.smul, stdBasis, Pi.basisFun_apply]
erw [Pi.basisFun_apply]
simp only [LinearMap.stdBasis_same, mul_one]
· exact Finset.mem_univ ν
· intros b _ hbi
simp [HSMul.hSMul, SMul.smul, stdBasis, Pi.basisFun_apply]
erw [Pi.basisFun_apply]
simp [LinearMap.stdBasis_apply]
exact Or.inr hbi
@[simp]
lemma decomp_stdBasis' (v : LorentzVector d) :
v (Sum.inl 0) • e (Sum.inl 0) + ∑ a₂ : Fin d, v (Sum.inr a₂) • e (Sum.inr a₂) = v := by
trans ∑ i, v i • e i
simp only [Fin.isValue, Fintype.sum_sum_type, Finset.univ_unique, Fin.default_eq_zero,
Finset.sum_singleton]
exact decomp_stdBasis v
· simp only [Fin.isValue, Fintype.sum_sum_type, Finset.univ_unique, Fin.default_eq_zero,
Finset.sum_singleton]
· exact decomp_stdBasis v
/-- The standard unit time vector. -/
noncomputable abbrev timeVec : (LorentzVector d) := e (Sum.inl 0)

View file

@ -58,8 +58,8 @@ lemma time_nonpos_iff : v.1.time ≤ 0 ↔ v.1.time ≤ - 1 := by
apply Iff.intro
· intro h
cases' time_le_minus_one_or_ge_one v with h1 h1
exact h1
linarith
· exact h1
· linarith
· intro h
linarith
@ -67,8 +67,8 @@ lemma time_nonneg_iff : 0 ≤ v.1.time ↔ 1 ≤ v.1.time := by
apply Iff.intro
· intro h
cases' time_le_minus_one_or_ge_one v with h1 h1
linarith
exact h1
· linarith
· exact h1
· intro h
linarith
@ -81,8 +81,8 @@ lemma time_abs_sub_space_norm :
0 ≤ |v.1.time| * |w.1.time| - ‖v.1.space‖ * ‖w.1.space‖ := by
apply sub_nonneg.mpr
apply mul_le_mul (norm_space_leq_abs_time v) (norm_space_leq_abs_time w) ?_ ?_
exact norm_nonneg w.1.space
exact abs_nonneg (v.1 _)
· exact norm_nonneg w.1.space
· exact abs_nonneg (v.1 _)
/-!
@ -112,10 +112,10 @@ lemma mem_iff_time_nonneg : v ∈ FuturePointing d ↔ 0 ≤ v.1.time := by
lemma not_mem_iff : v ∉ FuturePointing d ↔ v.1.time ≤ 0 := by
refine Iff.intro (fun h => ?_) (fun h => ?_)
exact le_of_not_lt ((mem_iff v).mp.mt h)
have h1 := (mem_iff v).mp.mt
simp at h1
exact h1 h
· exact le_of_not_lt ((mem_iff v).mp.mt h)
· have h1 := (mem_iff v).mp.mt
simp at h1
exact h1 h
lemma not_mem_iff_neg : v ∉ FuturePointing d ↔ neg v ∈ FuturePointing d := by
rw [not_mem_iff, mem_iff_time_nonneg]
@ -217,13 +217,13 @@ noncomputable def pathFromTime (u : FuturePointing d) : Path timeVecNormOneFutur
simp only [time, space, Function.comp_apply, PiLp.inner_apply, RCLike.inner_apply, map_mul,
conj_trivial]
rw [Real.mul_self_sqrt, ← @real_inner_self_eq_norm_sq, @PiLp.inner_apply]
simp only [Function.comp_apply, RCLike.inner_apply, conj_trivial]
refine Eq.symm (eq_sub_of_add_eq (congrArg (HAdd.hAdd 1) ?_))
rw [Finset.mul_sum]
apply Finset.sum_congr rfl
intro i _
ring
exact Right.add_nonneg (zero_le_one' ) $ mul_nonneg (sq_nonneg _) (sq_nonneg _)⟩,
· simp only [Function.comp_apply, RCLike.inner_apply, conj_trivial]
refine Eq.symm (eq_sub_of_add_eq (congrArg (HAdd.hAdd 1) ?_))
rw [Finset.mul_sum]
apply Finset.sum_congr rfl
intro i _
ring
· exact Right.add_nonneg (zero_le_one' ) $ mul_nonneg (sq_nonneg _) (sq_nonneg _)⟩,
by
simp only [space, Function.comp_apply, mem_iff_time_nonneg, time, Real.sqrt_pos]
exact Real.sqrt_nonneg _⟩