Paper XI · Lean source

DiscrepancyCharacter.lean

Selected results recorded Coverage and evidence

Compiler/replay evidence is reported for a subset or bounded block. No whole-work coverage is implied.

This viewer reads the retained source; it does not run Lean or assign new claim mappings.

Local imports (1)

PaperXI/DiscrepancyCharacter.lean50 lines

Original source pathformalization/PaperXI/DiscrepancyCharacter.lean
Skip declarations and read code

Skip source text

1 import PaperXI.SchurScalar
2 
3 /-! Discrepancy of honest stabilizer actions is a character, derived from Schur. -/
4 set_option autoImplicit false
5 noncomputable section
6 namespace PaperXI.DiscrepancyCharacter
7 open PaperXI.GeneratedIrreducibility
8 variable {H C V W : Type*} [Group H] [Group C]
9 variable [AddCommGroup V] [Module ℂ V] [FiniteDimensional ℂ V]
10 variable [AddCommGroup W] [Module ℂ W]
11 
12 /-- No cyclicity is needed until the later generator test. -/
13 theorem exists_character (ρ : Representation ℂ H V) [Representation.IsIrreducible ρ]
14     (σ : Representation ℂ H W) (U : V ≃ₗ[ℂ] W)
15     (hU : ∀ h x, U (ρ h x) = σ h (U x))
16     (α : C →* MulAut H) (R : Representation ℂ C V) (S : Representation ℂ C W)
17     (hR : ∀ g h x, R g (ρ h x) = ρ (α g h) (R g x))
18     (hS : ∀ g h x, S g (σ h x) = σ (α g h) (S g x)) :
19     ∃ δ : C →* ℂˣ, ∀ g x, U (R g x) = (δ g : ℂ) • S g (U x) := by
20   have hs (g : C) : ∃! c : ℂˣ, ∀ x, U (R g x) = (c : ℂ) • S g (U x) := by
21     let σg : Representation ℂ H W := σ.comp (α g).toMonoidHom
22     have hB (h : H) (x : V) : (U.trans (actionEquiv S g)) (ρ h x) =
23         σg h ((U.trans (actionEquiv S g)) x) := by
24       change S g (U (ρ h x)) = σ (α g h) (S g (U x))
25       rw [hU, hS]
26     have hA (h : H) (x : V) : ((actionEquiv R g).trans U) (ρ h x) =
27         σg h (((actionEquiv R g).trans U) x) := by
28       change U (R g (ρ h x)) = σ (α g h) (U (R g x))
29       rw [hR, hU]
30     exact PaperXI.SchurScalar.bridge_unique ρ σg (U.trans (actionEquiv S g))
31       ((actionEquiv R g).trans U) hB hA
32   choose d hd hu using hs
33   have hone : d 1 = 1 := by
34     symm
35     apply hu 1 1
36     intro x
37     simp
38   have hmul (g h : C) : d (g * h) = d g * d h := by
39     symm
40     apply hu (g * h) (d g * d h)
41     intro x
42     calc
43       U (R (g * h) x) = U (R g (R h x)) := by rw [map_mul]; rfl
44       _ = (d g : ℂ) • S g (U (R h x)) := hd g (R h x)
45       _ = (d g : ℂ) • S g ((d h : ℂ) • S h (U x)) := by rw [hd h]
46       _ = ((d g * d h : ℂˣ) : ℂ) • S (g * h) (U x) := by
47         simp [map_mul, Module.End.mul_apply, smul_smul]
48   exact ⟨{ toFun := d, map_one' := hone, map_mul' := hmul }, hd⟩
49 
50 end PaperXI.DiscrepancyCharacter

Back to source controls

Original file and source record

This copy matches the recorded source file. Its publication here does not change the work’s review status.

SHA-256: cf201fbd9c03f12816213b45d8e418ea5649df147dd993af122f826106f798af

Original source on GitHub

Back to Paper XI: Packets, Arithmetic Realization, and Conditional Comparison