OAI/RepresentationTheory/KazhdanLusztig/ReflectionOrders.lean
82 declarations, 0 contain sorry, 0 declared as axioms
Finite sweep algebra, wall orders and the full reflection-order path formula.
- theorem
OAI.KLInvariance.SchedulePaths.dispatch_appendline 19 - theorem
OAI.KLInvariance.SchedulePaths.dispatch_addline 26 - theorem
OAI.KLInvariance.SchedulePaths.dispatch_mul_rightline 37 - theorem
OAI.KLInvariance.SchedulePaths.dispatch_zeroline 48 - theorem
OAI.KLInvariance.SchedulePaths.dispatch_sumline 56 - theorem
OAI.KLInvariance.SchedulePaths.dispatch_eq_sum_entriesline 63 - theorem
OAI.KLInvariance.SchedulePaths.dispatch_eq_of_entriesline 73 - theorem
OAI.KLInvariance.SchedulePaths.dispatch_congr_online 84Source documentation
A finite lower region is closed under every target occurring in its edge schedule, so values outside that region never enter its product.
theorem dispatch_congr_on (T : R) (S : Set V) (p : List E) (htarget : ∀ e ∈ p, target e ∈ S) (v w : V → R) (hvw : ∀ x ∈ S, v x=w x) : ∀ x ∈ S, dispatch source target T v p x = dispatch source target T w p x := by …Mentions: OAI.KLInvariance.SchedulePaths.dispatch
- theorem
OAI.KLInvariance.SchedulePaths.dispatch_eq_finite_entriesline 95 - theorem
OAI.KLInvariance.SchedulePaths.dispatch_eq_of_entries_online 108 - theorem
OAI.KLInvariance.SchedulePaths.subpaths_eq_of_sortedline 124Source documentation
A genuine path in a sorted schedule is determined by its edge set and strict label order. Arbitrary permutations of repeated reflection labels therefore have no effect.
theorem subpaths_eq_of_sorted (label : E → Λ) (hties : ∀ e f, label e = label f → target e ≠ source f) (p q : List E) (hp : p.Pairwise (fun e f => label f ≤ label e)) (hq : q.Pairwise (fun e f => label f ≤ label e)) (hmem : ∀ e, e ∈ p ↔ e ∈ q) (x y : V) : subpaths source target p x y = subpaths source target q x y := by …Mentions: OAI.KLInvariance.SchedulePaths.subpaths
- theorem
OAI.KLInvariance.SchedulePaths.dispatch_eq_of_sortedline 145 - theorem
OAI.KLInvariance.SchedulePaths.dispatch_flatMap_eqline 159Source documentation
Replacing each block by an equal actual operator replaces the product.
theorem dispatch_flatMap_eq {A : Type*} (T : R) (blocks : List A) (p q : A → List E) (h : ∀ a ∈ blocks, ∀ v, dispatch source target T v (p a) = dispatch source target T v (q a)) (v : V → R) : dispatch source target T v (blocks.flatMap p) = dispatch source target T v (blocks.flatMap q) := by …Mentions: OAI.KLInvariance.SchedulePaths.dispatch
- theorem
OAI.KLInvariance.SchedulePaths.IsPath.map_iffline 173 - theorem
OAI.KLInvariance.SchedulePaths.exists_list_liftline 184 - theorem
OAI.KLInvariance.SchedulePaths.dispatch_entry_graph_embeddingline 195Source documentation
If all actual paths between the specified endpoints lie in a full embedded subgraph, its full sorted product computes the same entry.
theorem dispatch_entry_graph_embedding (T : R) (label : E → Λ) (hties : ∀ e f, label e=label f → target e ≠ source f) (j : V' → V) (hj : Function.Injective j) (J : E' → E) (hJ : Function.Injective J) (hs : ∀ e, source (J e)=j (source' e)) (ht : ∀ e, target (J e)=j (target' e)) (p : List E) (q : List E') (hpnd : p.Nodup) (hqnd : q.Nodup) (hp : p.Pairwise (fun e f => label f ≤ label e)) (hq : q.Pairwise (fun e f => label (J f) ≤ label (J e))) (hqfull : ∀ e, e ∈ q) (hJmem : ∀ e, J e ∈ p) (x y : V') (hpath : ∀ r ∈ subpaths source target p (j x) (j y), ∀ e ∈ r, ∃ e', J e'=e) : dispatch source target T (fun z => if z=j y then 1 else 0) p (j x) = …Mentions: OAI.KLInvariance.SchedulePaths.subpaths, OAI.KLInvariance.SchedulePaths.dispatch
- theorem
OAI.KLInvariance.TitsSpace.normalizedRoot_heightline 265 - theorem
OAI.KLInvariance.TitsSpace.dual_normalizedRootline 269 - theorem
OAI.KLInvariance.TitsSpace.geometricFunctional_normalizedRootline 273 - theorem
OAI.KLInvariance.TitsSpace.normalizedRoot_mem_iffline 277 - theorem
OAI.KLInvariance.TitsSpace.rootPlane_eq_normalized_spanline 285 - theorem
OAI.KLInvariance.TitsSpace.normalizedRoot_affineline 303Source documentation
The intersection of a root-plane with the height-one hyperplane is the actual affine line through the two normalized roots.
theorem normalizedRoot_affine {a b c : PositiveRoot M cs} (hc : c.val ∈ rootPlane a b) : ∃ t : ℝ, normalizedRoot c = t • normalizedRoot a + (1-t) • normalizedRoot b := by …Mentions: OAI.KLInvariance.TitsSpace.PositiveRoot, OAI.KLInvariance.TitsSpace.rootPlane, OAI.KLInvariance.TitsSpace.normalizedRoot
- theorem
OAI.KLInvariance.TitsSpace.exists_affine_rootPlaneline 318Source documentation
On each genuine root plane, every height-normalized linear functional is an affine function of the fixed angular slope.
theorem exists_affine_rootPlane (f : Module.Dual ℝ (I → ℝ)) (a b : PositiveRoot M cs) (hab : a ≠ b) : ∃ c d : ℝ, ∀ r : PositiveRoot M cs, r.val ∈ rootPlane a b → f (normalizedRoot r) = c * geometricSlope r + d := by …Mentions: OAI.KLInvariance.TitsSpace.PositiveRoot, OAI.KLInvariance.TitsSpace.rootPlane, OAI.KLInvariance.TitsSpace.normalizedRoot, OAI.KLInvariance.TitsSpace.geometricSlope
- theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.exists_affineline 351 - theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.path_coordinatesline 379Source documentation
All edges of a plane-labelled path lie in the full induced relative interval between its endpoints, with the original ambient labels.
theorem path_coordinates {a₀ : W} (hmin : ∀ z ∈ planeSubgroup M cs P, cs.length a₀ ≤ cs.length (z*a₀)) (g : planeSubgroup M cs P) {y : W} {p : List (AdaptedDyer.Edge cs)} (hp : IsPath (source cs) (target cs) ((g:W)*a₀) y p) (hP : ∀ e ∈ p, (rootLabel cs e).val ∈ P) : ∃ k : planeSubgroup M cs P, y=(k:W)*a₀ ∧ BruhatLE B.system g k ∧ ∀ e ∈ p, ∃ l r : planeSubgroup M cs P, source cs e=(l:W)*a₀ ∧ target cs e=(r:W)*a₀ ∧ BruhatLE B.system g l ∧ BruhatStep B.system l r ∧ BruhatLE B.system r k := by …Mentions: OAI.KLInvariance.TitsSpace.planeSubgroup, OAI.KLInvariance.AdaptedDyer.Edge, OAI.KLInvariance.BruhatLE, OAI.KLInvariance.BruhatStep
- def
OAI.KLInvariance.TitsSpace.PlaneBasis.intervalToAmbientline 410 - theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.intervalToAmbient_injectiveline 413 - def
OAI.KLInvariance.TitsSpace.PlaneBasis.edgeToAmbientline 418 - theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.edgeToAmbient_sourceline 424 - theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.edgeToAmbient_targetline 429 - theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.edgeToAmbient_injectiveline 434 - theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.edgeToAmbient_rootline 444 - theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.path_edges_liftline 462Source documentation
Edge-by-edge lifting of every plane path into the full relative interval. It is obtained from actual path connectivity, not from ambient comparability alone (which would not suffice).
theorem path_edges_lift {a₀ : W} (hmin : ∀ z ∈ planeSubgroup M cs P, cs.length a₀ ≤ cs.length (z*a₀)) {g k : planeSubgroup M cs P} {p : List (AdaptedDyer.Edge cs)} (hp : IsPath (source cs) (target cs) ((g:W)*a₀) ((k:W)*a₀) p) (hP : ∀ e ∈ p, (rootLabel cs e).val ∈ P) : ∀ e ∈ p, ∃ e' : BruhatGraph.Edge B.system g k, B.edgeToAmbient hmin e'=e := by …Mentions: OAI.KLInvariance.TitsSpace.planeSubgroup, OAI.KLInvariance.AdaptedDyer.Edge, OAI.KLInvariance.BruhatGraph.Edge
- theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.dispatch_plane_reverseline 484Source documentation
Reversal of a complete angular block of genuine ambient edges preserves all its endpoint entries. Fullness is with respect to the actual root plane, not to a rank-two subgroup chosen merely to contain two arbitrary reflections.
theorem dispatch_plane_reverse {R : Type*} [Semiring R] (T : R) (b : W) (p : List (AdaptedDyer.Edge cs)) (hnd : p.Nodup) (hfull : ∀ e, e ∈ p ↔ (rootLabel cs e).val ∈ P ∧ BruhatLE cs (target cs e) b) (hs : p.Pairwise (fun e f => geometricSlope (rootLabel cs f) ≤ geometricSlope (rootLabel cs e))) (x y : W) (hy : BruhatLE cs y b) : dispatch (source cs) (target cs) T (fun z => if z=y then 1 else 0) p x = dispatch (source cs) (target cs) T (fun z => if z=y then 1 else 0) p.reverse x := by …Mentions: OAI.KLInvariance.AdaptedDyer.Edge, OAI.KLInvariance.BruhatLE, OAI.KLInvariance.TitsSpace.geometricSlope
- def
OAI.KLInvariance.SchedulePaths.sortedScheduleline 582 - theorem
OAI.KLInvariance.SchedulePaths.mem_sortedScheduleline 585 - theorem
OAI.KLInvariance.SchedulePaths.sortedSchedule_nodupline 588 - theorem
OAI.KLInvariance.SchedulePaths.sortedSchedule_pairwiseline 592 - def
OAI.KLInvariance.SchedulePaths.blockValuesline 596 - def
OAI.KLInvariance.SchedulePaths.scheduleBlockline 599 - def
OAI.KLInvariance.SchedulePaths.groupedScheduleline 602 - theorem
OAI.KLInvariance.SchedulePaths.mem_blockValuesline 605 - theorem
OAI.KLInvariance.SchedulePaths.mem_scheduleBlockline 610 - theorem
OAI.KLInvariance.SchedulePaths.mem_groupedScheduleline 614 - theorem
OAI.KLInvariance.SchedulePaths.blockValues_strictline 625 - theorem
OAI.KLInvariance.SchedulePaths.groupedSchedule_nodupline 631 - theorem
OAI.KLInvariance.SchedulePaths.groupedSchedule_pairwiseline 645 - theorem
OAI.KLInvariance.SchedulePaths.dispatch_entries_eq_of_sortedline 660 - theorem
OAI.KLInvariance.SchedulePaths.dispatch_flatMap_eq_online 675Source documentation
Replacement on a finite lower region requires no artificial finiteness assumption on the ambient Coxeter group.
theorem dispatch_flatMap_eq_on (T : R) (S : Set V) (blocks : List A) (p q : A → List E) (htarget : ∀ a ∈ blocks, ∀ e ∈ p a, target e ∈ S) (h : ∀ a ∈ blocks, ∀ v, ∀ x ∈ S, dispatch source target T v (p a) x = dispatch source target T v (q a) x) (v : V → R) : ∀ x ∈ S, dispatch source target T v (blocks.flatMap p) x = dispatch source target T v (blocks.flatMap q) x := by …Mentions: OAI.KLInvariance.SchedulePaths.dispatch
- def
OAI.KLInvariance.TitsSpace.lexRootScoreline 710 - theorem
OAI.KLInvariance.TitsSpace.lexRootScore_injectiveline 713 - def
OAI.KLInvariance.TitsSpace.lexEdgeScoreline 719 - theorem
OAI.KLInvariance.TitsSpace.lexEdgeScore_tiesline 722 - theorem
OAI.KLInvariance.TitsSpace.lex_affine_nonnegline 728 - theorem
OAI.KLInvariance.TitsSpace.lex_affine_negline 737 - theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.lex_block_orientationline 753Source documentation
Any linearly sorted full plane block is either angularly sorted or reverse-angularly sorted. This includes tied primary labels refined by the fixed genuine geometric functional.
theorem lex_block_orientation (f : Module.Dual ℝ (I → ℝ)) (p : List (AdaptedDyer.Edge cs)) (hP : ∀ e ∈ p, (rootLabel cs e).val ∈ P) (hs : p.Pairwise (fun e e' => lexEdgeScore f e' ≤ lexEdgeScore f e)) : p.Pairwise (fun e e' => geometricSlope (rootLabel cs e') ≤ geometricSlope (rootLabel cs e)) ∨ p.Pairwise (fun e e' => geometricSlope (rootLabel cs e) ≤ geometricSlope (rootLabel cs e')) := by …Mentions: OAI.KLInvariance.AdaptedDyer.Edge, OAI.KLInvariance.TitsSpace.lexEdgeScore, OAI.KLInvariance.TitsSpace.geometricSlope
- theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.dispatch_plane_functionalline 779Source documentation
A complete plane block, sorted by any functional, has precisely the same actual path product as its angularly sorted version.
theorem dispatch_plane_functional {R : Type*} [Semiring R] (T : R) (b : W) (f : Module.Dual ℝ (I → ℝ)) (p q : List (AdaptedDyer.Edge cs)) (hpnd : p.Nodup) (hqnd : q.Nodup) (hpfull : ∀ e, e ∈ p ↔ (rootLabel cs e).val ∈ P ∧ BruhatLE cs (target cs e) b) (hqfull : ∀ e, e ∈ q ↔ (rootLabel cs e).val ∈ P ∧ BruhatLE cs (target cs e) b) (hp : p.Pairwise (fun e e' => lexEdgeScore f e' ≤ lexEdgeScore f e)) (hq : q.Pairwise (fun e e' => geometricSlope (rootLabel cs e') ≤ geometricSlope (rootLabel cs e))) (x y : W) (hy : BruhatLE cs y b) : dispatch (source cs) (target cs) T (fun z => if z=y then 1 else 0) p x = dispatch (source cs) (target cs) T (fun z => if z=y then 1 else 0) q x := by …Mentions: OAI.KLInvariance.AdaptedDyer.Edge, OAI.KLInvariance.BruhatLE, OAI.KLInvariance.TitsSpace.lexEdgeScore, OAI.KLInvariance.TitsSpace.geometricSlope
- theorem
OAI.KLInvariance.ReflectionSchedules.exists_avoiding_functionalline 822Source documentation
A countable family of nonzero vectors can be simultaneously avoided.
theorem exists_avoiding_functional {A : Type v} [Countable A] (v : A → (I → ℝ)) : ∃ f : Module.Dual ℝ (I → ℝ), ∀ a, v a ≠ 0 → f (v a) ≠ 0 := by … - def
OAI.KLInvariance.TitsSpace.pencilline 856 - theorem
OAI.KLInvariance.TitsSpace.pencil_zeroline 860 - theorem
OAI.KLInvariance.TitsSpace.pencil_oneline 863 - theorem
OAI.KLInvariance.TitsSpace.pencil_applyline 867 - def
OAI.KLInvariance.TitsSpace.rootDifferenceline 870 - def
OAI.KLInvariance.TitsSpace.wallVectorline 872 - def
OAI.KLInvariance.TitsSpace.Transverseline 878Source documentation
This is an actual genericity condition on linear functionals, not an assumed path or Hecke identity.
def Transverse (f g : Module.Dual ℝ (I → ℝ)) : Prop := …
- theorem
OAI.KLInvariance.TitsSpace.pencil_tie_planeline 881 - theorem
OAI.KLInvariance.TitsSpace.exists_common_transverseline 938Source documentation
One intermediate functional is simultaneously transverse to any two specified generic endpoints, even with infinitely many positive roots.
theorem exists_common_transverse (f h : Module.Dual ℝ (I → ℝ)) : ∃ g : Module.Dual ℝ (I → ℝ), Function.Injective (fun a : PositiveRoot M cs => g (normalizedRoot a)) ∧ Transverse (M := M) (cs := cs) f g ∧ Transverse (M := M) (cs := cs) h g := by …Mentions: OAI.KLInvariance.TitsSpace.PositiveRoot, OAI.KLInvariance.TitsSpace.normalizedRoot, OAI.KLInvariance.TitsSpace.Transverse
- def
OAI.KLInvariance.WallDyer.rootValueline 983 - def
OAI.KLInvariance.WallDyer.rootPlaneTiesline 986 - def
OAI.KLInvariance.WallDyer.scheduleline 991 - def
OAI.KLInvariance.WallDyer.entryline 994 - theorem
OAI.KLInvariance.WallDyer.block_entry_independentline 1000Source documentation
The complete tied block at any genuine simple wall has an actual operator independent of the linear tie-breaking functional.
theorem block_entry_independent {R : Type*} [Semiring R] (T : R) (b : W) (f : Module.Dual ℝ (I → ℝ)) (hf : rootPlaneTies (M := M) (cs := cs) f) …Mentions: OAI.KLInvariance.WallDyer.rootPlaneTies
- theorem
OAI.KLInvariance.WallDyer.grouped_entry_independentline 1054Source documentation
All blocks may be replaced simultaneously on the finite lower region.
theorem grouped_entry_independent {R : Type*} [Semiring R] (T : R) (b : W) (f : Module.Dual ℝ (I → ℝ)) (hf : rootPlaneTies (M := M) (cs := cs) f) …Mentions: OAI.KLInvariance.WallDyer.rootPlaneTies
- theorem
OAI.KLInvariance.WallDyer.entry_eq_groupedline 1079Source documentation
Stable strict primary comparisons identify the genuine sorted schedule with the corresponding product of tied blocks.
theorem entry_eq_grouped {R : Type*} [Semiring R] (T : R) (b : W) (f g : Module.Dual ℝ (I → ℝ)) (h : ∀ e ∈ edgeFinset cs b, ∀ e' ∈ edgeFinset cs b, rootValue f e' < rootValue f e → rootValue g e' < rootValue g e) (x y : W) : entry (cs := cs) T g b x y = …Mentions: OAI.KLInvariance.WallDyer.rootValue, OAI.KLInvariance.WallDyer.entry
- theorem
OAI.KLInvariance.WallDyer.pencil_strict_stableline 1096 - theorem
OAI.KLInvariance.WallDyer.locally_constant_pencilline 1115Source documentation
Crossing all actual root-plane walls leaves the full path matrix fixed, not merely a single adapted endpoint column.
theorem locally_constant_pencil {R : Type*} [Semiring R] (T : R) (b : W) (f g : Module.Dual ℝ (I → ℝ)) (hf : Function.Injective (fun a : PositiveRoot M cs => f (normalizedRoot a))) (hg : Transverse (M := M) (cs := cs) f g) (x y : W) (hx : BruhatLE cs x b) : …Mentions: OAI.KLInvariance.BruhatLE
- theorem
OAI.KLInvariance.WallDyer.entry_independentline 1131Source documentation
Full matrix order independence for genuine finite geometric orders.
theorem entry_independent {R : Type*} [Semiring R] (T : R) (b : W) (f h : Module.Dual ℝ (I → ℝ)) (hf : Function.Injective (fun a : PositiveRoot M cs => f (normalizedRoot a))) (hh : Function.Injective (fun a : PositiveRoot M cs => h (normalizedRoot a))) (x y : W) (hx : BruhatLE cs x b) : entry (cs := cs) T f b x y=entry (cs := cs) T h b x y := by …Mentions: OAI.KLInvariance.BruhatLE, OAI.KLInvariance.WallDyer.entry
- theorem
OAI.KLInvariance.WallDyer.neg_numerator_normalizedline 1160 - theorem
OAI.KLInvariance.WallDyer.subpaths_neg_numeratorline 1167Source documentation
An upper bound larger than the path endpoint creates no extra paths: every actual directed path stays inside its endpoint interval.
theorem subpaths_neg_numerator (O : RatioOrder (M := M) (cs := cs)) …
- theorem
OAI.KLInvariance.WallDyer.entry_neg_numeratorline 1204 - theorem
OAI.KLInvariance.WallDyer.entry_eq_rTildeline 1214 - theorem
OAI.KLInvariance.WallDyer.geometric_entry_eq_rTildeline 1229Source documentation
The manuscript's fixed geometric functional provides such a genuine full Dyer schedule for every finite lower Bruhat region.
theorem geometric_entry_eq_rTilde (b x y : W) (hx : BruhatLE cs x b) (hy : BruhatLE cs y b) : entry (cs := cs) (Polynomial.X : Polynomial ℤ) (geometricFunctional (M := M) (cs := cs)) b x y = …Mentions: OAI.KLInvariance.BruhatLE, OAI.KLInvariance.WallDyer.entry