Paper XI · Lean source
CharacterTwist.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/CharacterTwist.lean54 lines
Original source path
formalization/PaperXI/CharacterTwist.leanSkip declarations and read code
1 import PaperXI.CyclicInducedCoordinates
2
3 /-! Scalar twisting and its literal tensor comparison. -/
4 set_option autoImplicit false
5 noncomputable section
6 namespace PaperXI.CharacterTwist
7 open scoped TensorProduct
8 variable {G V W : Type*} [Group G]
9 variable [AddCommGroup V] [Module ℂ V] [AddCommGroup W] [Module ℂ W]
10
11 def twist (ν : G →* ℂˣ) (ρ : Representation ℂ G V) : Representation ℂ G V where
12 toFun g := (ν g : ℂ) • ρ g
13 map_one' := by simp
14 map_mul' g h := by ext x; simp [smul_smul, mul_comm]
15
16 @[simp] theorem twist_apply (ν : G →* ℂˣ) (ρ : Representation ℂ G V) (g : G) (v : V) :
17 twist ν ρ g v = (ν g : ℂ) • ρ g v := rfl
18
19 /-- An actual tensor with a one-dimensional representation is the scalar twist. -/
20 def tensorEquiv (ν : G →* ℂˣ) (ρ : Representation ℂ G V) :
21 Representation.Equiv (ρ.tprod (CyclicInduced.scalar ν)) (twist ν ρ) :=
22 Representation.Equiv.mk (TensorProduct.rid ℂ V) (fun g => by
23 ext v
24 simp [CyclicInduced.scalar_apply, twist, mul_comm])
25
26 /-- Scalar twisting preserves intertwining equivalences. -/
27 def mapEquiv (ν : G →* ℂˣ) {ρ : Representation ℂ G V} {σ : Representation ℂ G W}
28 (e : Representation.Equiv ρ σ) : Representation.Equiv (twist ν ρ) (twist ν σ) :=
29 Representation.Equiv.mk e.toLinearEquiv (fun g => by
30 ext v
31 change e ((ν g : ℂ) • ρ g v) = (ν g : ℂ) • σ g (e v)
32 rw [map_smul]
33 congr 1
34 exact LinearMap.congr_fun (e.isIntertwining' g) v)
35
36 /-- A character trivial on a subgroup leaves its restricted action unchanged. -/
37 theorem restrict_eq (ν : G →* ℂˣ) (ρ : Representation ℂ G V) (I : Subgroup G)
38 (hν : ∀ i : I, ν i = 1) : (twist ν ρ).comp I.subtype = ρ.comp I.subtype := by
39 ext i v
40 simp [twist_apply, hν]
41
42 theorem power_action (ν : G →* ℂˣ) (ρ : Representation ℂ G V) (g : G) (n : ℕ) (v : V) :
43 twist ν ρ (g ^ n) v = (ν g : ℂ) ^ n • ρ (g ^ n) v := by
44 change (ν (g ^ n) : ℂ) • ρ (g ^ n) v = _
45 simp only [map_pow, Units.val_pow_eq_pow_val]
46
47 /-- The closed-cycle multiplier follows from the character power law. -/
48 theorem closing_scalar (ν : G →* ℂˣ) (ρ : Representation ℂ G V)
49 (φ : G) (n : ℕ) (v : V) (a : ℂ)
50 (hreturn : ρ (φ ^ n) v = a • v) :
51 twist ν ρ (φ ^ n) v = (a * (ν φ : ℂ) ^ n) • v := by
52 rw [power_action, hreturn, smul_smul, mul_comm]
53
54 end PaperXI.CharacterTwist
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: 2f04977b3efe71419a28d3985c9ca035ba1e9f43cccb4779638ea69098b5f58e
Back to Paper XI: Packets, Arithmetic Realization, and Conditional Comparison