Paper XI · Lean source

GraphLoopRepresentation.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 (2)

PaperXI/GraphLoopRepresentation.lean138 lines

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

Skip source text

1 import PaperXI.GraphLoop
2 import PaperXI.GraphTransport
3 
4 /-!
5 # Holonomy as a homomorphism on actual reduced graph loops
6 
7 The free-groupoid extension of the edge system agrees with the recursively
8 defined path transport on every represented path. Surjectivity of path classes
9 then identifies intertwining all based paths with conjugacy of the resulting
10 honest group homomorphisms.
11 -/
12 
13 namespace PaperXI.GraphLoop
14 
15 open CategoryTheory
16 
17 attribute [local instance] GraphTransport.symmetrifyAdd GraphTransport.symmetrifyModule
18 
19 universe u v k w z
20 
21 variable {α : Type u} [Quiver.{v} α] {K : Type k} [Field K]
22 variable {V : α → Type w} [∀ u, AddCommGroup (V u)] [∀ u, Module K (V u)]
23 
24 /-- A vertex regarded as its assigned vector space in the groupoid of fiber isomorphisms. -/
25 structure Fiber (K : Type k) (V : α → Type w) where
26   vertex : α
27 
28 instance fiberGroupoid : Groupoid (Fiber K V) where
29   Hom u v := V u.vertex ≃ₗ[K] V v.vertex
30   id u := LinearEquiv.refl K (V u.vertex)
31   comp f g := f.trans g
32   id_comp f := by ext x; rfl
33   comp_id f := by ext x; rfl
34   assoc f g h := by ext x; rfl
35   inv f := f.symm
36   inv_comp f := f.symm_trans_self
37   comp_inv f := f.self_trans_symm
38 
39 /-- The original edge system as a prefunctor into actual linear isomorphisms. -/
40 def edgePrefunctor (A : ∀ {u v : α}, (u ⟶ v) → (V u ≃ₗ[K] V v)) :
41     α ⥤q Fiber K V where
42   obj u := ⟨u⟩
43   map e := A e
44 
45 /-- The uniquely extended transport functor on reduced paths. -/
46 def transportFunctor (A : ∀ {u v : α}, (u ⟶ v) → (V u ≃ₗ[K] V v)) :
47     Quiver.FreeGroupoid α ⥤ Fiber K V :=
48   Quiver.FreeGroupoid.lift (edgePrefunctor A)
49 
50 /-- Transport of a morphism of the actual graph groupoid. -/
51 def transport (A : ∀ {u v : α}, (u ⟶ v) → (V u ≃ₗ[K] V v))
52     {u v : α} (f : vertex u ⟶ vertex v) : V u ≃ₗ[K] V v :=
53   (transportFunctor A).map f
54 
55 @[simp] theorem transport_id
56     (A : ∀ {u v : α}, (u ⟶ v) → (V u ≃ₗ[K] V v)) (u : α) :
57     transport A (𝟙 (vertex u)) = LinearEquiv.refl K (V u) :=
58   (transportFunctor A).map_id _
59 
60 @[simp] theorem transport_comp
61     (A : ∀ {u v : α}, (u ⟶ v) → (V u ≃ₗ[K] V v))
62     {u v w : α} (f : vertex u ⟶ vertex v) (g : vertex v ⟶ vertex w) :
63     transport A (f ≫ g) = (transport A f).trans (transport A g) :=
64   (transportFunctor A).map_comp f g
65 
66 @[simp] theorem transport_edge
67     (A : ∀ {u v : α}, (u ⟶ v) → (V u ≃ₗ[K] V v))
68     {u v : Quiver.Symmetrify α} (e : u ⟶ v) :
69     transport A (pathClass e.toPath) = GraphTransport.edge A e := by
70   cases e using Sum.casesOn <;> ext x <;> rfl
71 
72 /-- The quotient construction computes exactly the manuscript's path transport. -/
73 @[simp] theorem transport_pathClass
74     (A : ∀ {u v : α}, (u ⟶ v) → (V u ≃ₗ[K] V v))
75     {u v : Quiver.Symmetrify α} (p : Quiver.Path u v) :
76     transport A (pathClass p) = GraphTransport.path A p := by
77   induction p with
78   | nil => exact transport_id A _
79   | cons p e ih =>
80     change transport A (pathClass p ≫ pathClass e.toPath) = _
81     calc
82       transport A (pathClass p ≫ pathClass e.toPath) =
83           (transport A (pathClass p)).trans (transport A (pathClass e.toPath)) :=
84         transport_comp A (pathClass p) (pathClass e.toPath)
85       _ = GraphTransport.path A (p.cons e) := by
86         rw [ih, transport_edge]
87         rfl
88 
89 /-- Based holonomy as an honest representation by linear automorphisms. -/
90 def holonomy (A : ∀ {u v : α}, (u ⟶ v) → (V u ≃ₗ[K] V v)) (r : α) :
91     Loop r →* (V r ≃ₗ[K] V r) where
92   toFun := transport A
93   map_one' := transport_id A r
94   map_mul' x y := transport_comp A y x
95 
96 @[simp] theorem holonomy_loopClass
97     (A : ∀ {u v : α}, (u ⟶ v) → (V u ≃ₗ[K] V v))
98     {r : α} (p : @Quiver.Path (Quiver.Symmetrify α) _ r r) :
99     holonomy A r (loopClass p) = GraphTransport.path A p :=
100   transport_pathClass A p
101 
102 variable {W : α → Type z} [∀ u, AddCommGroup (W u)] [∀ u, Module K (W u)]
103 
104 /-- Conjugacy of the two actual loop representations by a specified root isomorphism. -/
105 def Conjugates
106     (A : ∀ {u v : α}, (u ⟶ v) → (V u ≃ₗ[K] V v))
107     (B : ∀ {u v : α}, (u ⟶ v) → (W u ≃ₗ[K] W v))
108     {r : α} (U : V r ≃ₗ[K] W r) : Prop :=
109   ∀ g : Loop r, ((U.symm.trans (holonomy A r g)).trans U) = holonomy B r g
110 
111 /-- Intertwining every based path is equivalent to conjugacy on the reduced loop group. -/
112 theorem conjugates_iff_paths
113     (A : ∀ {u v : α}, (u ⟶ v) → (V u ≃ₗ[K] V v))
114     (B : ∀ {u v : α}, (u ⟶ v) → (W u ≃ₗ[K] W v))
115     {r : α} (U : V r ≃ₗ[K] W r) :
116     Conjugates A B U ↔
117       ∀ (p : @Quiver.Path (Quiver.Symmetrify α) _ r r) (x : V r),
118         U (GraphTransport.path A p x) = GraphTransport.path B p (U x) := by
119   constructor
120   · intro h p x
121     have hp := LinearEquiv.congr_fun (h (loopClass p)) (U x)
122     simpa using hp
123   · intro h g
124     obtain ⟨p, rfl⟩ := loopClass_surjective r g
125     ext y
126     simpa using h p (U.symm y)
127 
128 /-- The unbased representation comparison allows the conjugating root map to vary. -/
129 theorem exists_conjugates_iff_paths
130     (A : ∀ {u v : α}, (u ⟶ v) → (V u ≃ₗ[K] V v))
131     (B : ∀ {u v : α}, (u ⟶ v) → (W u ≃ₗ[K] W v)) (r : α) :
132     (∃ U : V r ≃ₗ[K] W r, Conjugates A B U) ↔
133       ∃ U : V r ≃ₗ[K] W r,
134         ∀ (p : @Quiver.Path (Quiver.Symmetrify α) _ r r) (x : V r),
135           U (GraphTransport.path A p x) = GraphTransport.path B p (U x) := by
136   exact exists_congr fun U => conjugates_iff_paths A B U
137 
138 end PaperXI.GraphLoop

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: 8e6bb58b55ba016228d5ae3cd85b19e40ccde0abd116f4a13101a8d8939a4e95

Original source on GitHub

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