All proofs
Project-declaredLean 4.32.0 · mathlib@81a5d257c8e4

Reduce sum eq sum to Charges

FTheory.SU5.TenQuanta.reduce_sum_eq_sum_toCharges

Project documentation

The reduce of TenQuanta is a new TenQuanta with all the fluxes corresponding to the same charge (i.e. representation) added together. -/ def reduce (x : TenQuanta 𝓩) : TenQuanta 𝓩 := x.toCharges.dedup.map fun q10 => (q10, ((x.filter (fun f => f.1 = q10)).map (fun y => y.2)).sum) /-! ### B.1. The reduced TenQuanta has no duplicate elements -/ lem...

Exact Lean statement

lemma reduce_sum_eq_sum_toCharges {M} [AddCommMonoid M] (x : TenQuanta 𝓩) (f : 𝓩 → Fluxes →+ M) :
    (x.reduce.map fun (q, x) => f q x).sum = (x.map fun (q, x) => f q x).sum

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
lemma reduce_sum_eq_sum_toCharges {M} [AddCommMonoid M] (x : TenQuanta 𝓩) (f : 𝓩  Fluxes →+ M) :    (x.reduce.map fun (q, x) => f q x).sum = (x.map fun (q, x) => f q x).sum := by  calc _      _ = ∑ q  x.toCharges.toFinset,          f q ((x.filter (fun f => f.1 = q)).map (fun y => y.2)).sum := by        rw [reduce]        simp [Finset.sum]      _ = ∑ q  x.toCharges.toFinset,          (((x.filter (fun f => f.1 = q)).map (fun y => f q y.2))).sum := by        congr        funext q5        rw [AddMonoidHom.map_multiset_sum, Multiset.map_map]        rfl      _ = (x.toCharges.dedup.bind fun q =>          ((x.filter (fun f => f.1 = q)).map (fun y => f q y.2))).sum := by        rw [Multiset.sum_bind]        simp [Finset.sum]      _ = (((x.toCharges.dedup.bind fun q =>          ((x.filter (fun f => f.1 = q)))).map (fun y => f y.1 y.2))).sum := by        congr        rw [Multiset.map_bind]        congr        funext q        refine Multiset.map_congr rfl ?_        intro y hy        simp at hy        rw [hy.2]      _ = ((x.map (fun y => f y.1 y.2))).sum := by        congr        apply Multiset.ext.mpr        intro p        trans ((x.map Prod.fst).dedup.map (fun y => if p.1 = y then x.count p else 0)).sum        · rw [@Multiset.count_bind]          congr          funext q5          rw [Multiset.count_filter]        by_cases h_mem : p.1  x.map Prod.fst        · have h_mem_dedup : p.1  (x.map Prod.fst).dedup := by rwa [Multiset.mem_dedup]          rw [Multiset.sum_map_eq_nsmul_single p.1]          simp only [↓reduceIte, smul_eq_mul]          have h_count_one : Multiset.count p.1 (Multiset.map Prod.fst x).dedup = 1 := by            refine Multiset.count_eq_one_of_mem ?_ h_mem_dedup            exact Multiset.nodup_dedup (Multiset.map Prod.fst x)          simp [h_count_one]          intro q5' h h2          simp_all [eq_comm]        · rw [Multiset.sum_eq_zero]          refine Eq.symm (Multiset.count_eq_zero_of_notMem ?_)          intro h          have h_mem : p.1  Multiset.map Prod.fst x := by            simp_all          (expose_names; exact h_mem_1 h_mem)          intro p' hp          simp at hp          obtain q5', f1, hf, hp' := hp          by_cases h_eq : p.1 = q5'          · simp_all          · simp_all
Project
Physlib
License
Apache-2.0
Commit
dd43e9e65791
Source
Physlib/StringTheory/FTheory/SU5/Quanta/TenQuanta.lean:236-293

Reuse this declaration

Bring the exact result into your workflow

The import identifies the source module. Your project still needs the pinned package dependency shown on this page.

What this badge means

This completion status comes from the project or community source. It has not yet been represented here as an independent rebuild and axiom audit.

Continue in this project

Related declarations

Project-declaredLean 4.32.0

Adiabatic relation log

adiabatic_relation_log

Plain-language statement

Adiabatic relation in logarithmic form: If S(Ua,Va,N) = S(Ub,Vb,N) with N fixed, then c * log (Ua/Ub) + log (Va/Vb) = 0.

physicsquantum field theoryrelativity

Source project: Physlib

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.0

Adiabatic relation Ua Ub Va Vb

adiabatic_relation_UaUbVaVb

Plain-language statement

Adiabatic relation in product form: If S(Ua,Va,N) = S(Ub,Vb,N) with N fixed, then (Ua/Ub)^c * (Va/Vb) = 1.

physicsquantum field theoryrelativity

Source project: Physlib

Person-level attribution pending.

View proof record