OAI/RepresentationTheory/KazhdanLusztig/DyerPaths.lean
165 declarations, 0 contain sorry, 0 declared as axioms
Finite character cancellation, reflection-ratio orders and adapted Dyer decreasing paths.
- theorem
OAI.KLInvariance.finite_character_cancellationline 15 - theorem
OAI.KLInvariance.BruhatGraph.stalkCharacter_reciprocityline 62 - theorem
OAI.KLInvariance.StandardParabolic.leftInvSeq_inclusionline 119 - theorem
OAI.KLInvariance.StandardParabolic.reflection_inclusionline 134 - theorem
OAI.KLInvariance.StandardParabolic.bruhatStep_inclusion_iffline 140 - theorem
OAI.KLInvariance.diamondEdges_of_bruhatStep_generalline 175Source documentation
The graph reconstruction input in its source scope: the Coxeter system can have infinitely many generators. The interval determines every reflection edge without being supplied the reflection labels.
theorem diamondEdges_of_bruhatStep_general (cs : CoxeterSystem M W) {u b : W} {x y : Interval cs u b} (hxy : BruhatStep cs x.val y.val) : DiamondEdges x y := by …Mentions: OAI.KLInvariance.Interval, OAI.KLInvariance.BruhatStep, OAI.KLInvariance.DiamondEdges
- theorem
OAI.KLInvariance.diamondEdges_bruhatStep_generalline 204 - theorem
OAI.KLInvariance.intervalIso_bruhatStep_iff_generalline 234Source documentation
Exact unlabelled directed graph invariance, also for arbitrary infinite Coxeter systems. This is not yet KL polynomial invariance.
theorem intervalIso_bruhatStep_iff_general {I' : Type u'} {W' : Type v'} [Group W'] {M' : CoxeterMatrix I'} (cs : CoxeterSystem M W) (cs' : CoxeterSystem M' W') {u b : W} {u' b' : W'} (e : Interval cs u b ≃o Interval cs' u' b') (x y : Interval cs u b) : BruhatStep cs' (e x).val (e y).val ↔ BruhatStep cs x.val y.val := by …Mentions: OAI.KLInvariance.Interval, OAI.KLInvariance.BruhatStep
- theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.graphRoot_memline 265 - theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.graphRoot_path_planeline 274Source documentation
The two labels on a composable coset path span the whole actual plane.
theorem graphRoot_path_plane {a₀ : W} {g h k : planeSubgroup M cs P} (he : BruhatStep cs ((g : W) * a₀) ((h : W) * a₀)) (hf : BruhatStep cs ((h : W) * a₀) ((k : W) * a₀)) : rootPlane (graphRoot he) (graphRoot hf) = P := by …Mentions: OAI.KLInvariance.TitsSpace.planeSubgroup, OAI.KLInvariance.BruhatStep, OAI.KLInvariance.TitsSpace.rootPlane, OAI.KLInvariance.TitsSpace.graphRoot
- theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.twoStep_mem_cosetline 283 - theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.ambient_two_step_rank_twoline 302Source documentation
A relative rank-two interval has exactly its two ambient two-edge paths, with no assumption that the two ambient and relative orders coincide.
theorem ambient_two_step_rank_two {a₀ : W} (hmin : ∀ z ∈ planeSubgroup M cs P, cs.length a₀ ≤ cs.length (z * a₀)) {g k : planeSubgroup M cs P} (hlen : B.system.length k = B.system.length g + 2) : ∃ a b : W, a ≠ b ∧ ∀ z : W, (BruhatStep cs ((g : W) * a₀) z ∧ BruhatStep cs z ((k : W) * a₀)) ↔ z = a ∨ z = b := by …Mentions: OAI.KLInvariance.TitsSpace.planeSubgroup, OAI.KLInvariance.BruhatStep
- theorem
OAI.KLInvariance.Dihedral.rank_two_of_two_step_boundline 341Source documentation
Exactly two intermediate vertices characterize relative rank two as soon as one two-edge path exists. Used to rule out skipped ranks after transport.
theorem rank_two_of_two_step_bound (ds : CoxeterSystem N G) {x y a b : G} (ha : BruhatStep ds x a) (hay : BruhatStep ds a y) (hbound : ∀ z, BruhatStep ds x z → BruhatStep ds z y → z = a ∨ z = b) : ds.length y = ds.length x + 2 := by …Mentions: OAI.KLInvariance.BruhatStep
- theorem
OAI.KLInvariance.TitsSpace.graphRoot_mem_of_cosetline 381 - theorem
OAI.KLInvariance.TitsSpace.mem_coset_of_graphRootline 388 - theorem
OAI.KLInvariance.TitsSpace.dihedral_image_in_planeline 400Source documentation
The image of a full relative dihedral interval lies in one maximal plane coset. This is derived just from the directed graph and distinct vertices.
theorem dihedral_image_in_plane (f : Interval ds l r → W) (hinj : Function.Injective f) (hgraph : ∀ a b : Interval ds l r, BruhatStep ds a.val b.val → BruhatStep cs (f a) (f b)) (hlr : BruhatLE ds l r) (hrank : ds.length l + 2 ≤ ds.length r) : ∃ a b : PositiveRoot M cs, a ≠ b ∧ ∀ z : Interval ds l r, f z * (f ⟨l,bruhat_refl ds l,hlr⟩)⁻¹ ∈ planeSubgroup M cs (rootPlane a b) := by …Mentions: OAI.KLInvariance.Interval, OAI.KLInvariance.BruhatStep, OAI.KLInvariance.BruhatLE, OAI.KLInvariance.TitsSpace.PositiveRoot, OAI.KLInvariance.bruhat_refl, OAI.KLInvariance.TitsSpace.planeSubgroup, OAI.KLInvariance.TitsSpace.rootPlane
- theorem
OAI.KLInvariance.Dihedral.exists_interval_lengthline 488 - theorem
OAI.KLInvariance.Dihedral.map_cover_lengthline 504 - theorem
OAI.KLInvariance.Dihedral.map_length_affineline 536Source documentation
A directed dihedral-interval graph injection which does not stretch any rank-two interval preserves all relative ranks.
theorem map_length_affine (f : Interval ds l r → D') (hgraph : ∀ x y : Interval ds l r, BruhatStep ds x.val y.val → BruhatStep ds' (f x) (f y)) (htwo : ∀ x y : Interval ds l r, ds.length y.val = ds.length x.val+2 → ds'.length (f y) = ds'.length (f x)+2) (hlr : BruhatLE ds l r) (hrank : ds.length l+2 ≤ ds.length r) (z : Interval ds l r) : ds'.length (f z) + ds.length l = ds'.length (f ⟨l,bruhat_refl ds l,hlr⟩) + ds.length z.val := by …Mentions: OAI.KLInvariance.Interval, OAI.KLInvariance.BruhatStep, OAI.KLInvariance.BruhatLE, OAI.KLInvariance.bruhat_refl
- theorem
OAI.KLInvariance.Dihedral.range_eq_interval_of_rank_twoline 567Source documentation
Once relative covers are recovered, the image exhausts rather than merely embeds in the target dihedral interval.
theorem range_eq_interval_of_rank_two (f : Interval ds l r → D') (hinj : Function.Injective f) (hgraph : ∀ x y : Interval ds l r, BruhatStep ds x.val y.val → BruhatStep ds' (f x) (f y)) (htwo : ∀ x y : Interval ds l r, ds.length y.val = ds.length x.val+2 → ds'.length (f y) = ds'.length (f x)+2) (hlr : BruhatLE ds l r) (hrank : ds.length l+2 ≤ ds.length r) : Set.range f = {z | BruhatLE ds' (f ⟨l,bruhat_refl ds l,hlr⟩) z ∧ BruhatLE ds' z (f ⟨r,hlr,bruhat_refl ds r⟩)} := by …Mentions: OAI.KLInvariance.Interval, OAI.KLInvariance.BruhatStep, OAI.KLInvariance.BruhatLE, OAI.KLInvariance.bruhat_refl
- theorem
OAI.KLInvariance.intervalIso_twoStep_iffline 634Source documentation
An interval graph isomorphism preserves the exact two-edge intermediate set, including ambient intermediates not specified as interval data.
theorem intervalIso_twoStep_iff (e : Interval cs u b ≃o Interval cs' u' b') (x y a c : Interval cs u b) (hpaths : ∀ z : W, (BruhatStep cs x.val z ∧ BruhatStep cs z y.val) ↔ z=a.val ∨ z=c.val) (z : W') : (BruhatStep cs' (e x).val z ∧ BruhatStep cs' z (e y).val) ↔ z=(e a).val ∨ z=(e c).val := by …Mentions: OAI.KLInvariance.Interval, OAI.KLInvariance.BruhatStep
- def
OAI.KLInvariance.TitsSpace.PlaneBasis.cosetIntervalMapline 676 - theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.twoStep_interval_iffline 687 - theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.transport_intervalline 736 - theorem
OAI.KLInvariance.TitsSpace.inverted_of_positive_combinationline 844 - theorem
OAI.KLInvariance.TitsSpace.graphRoot_inverted_targetline 855Source documentation
Incoming graph labels are actual inversions at their upper vertex.
theorem graphRoot_inverted_target {x y : W} (h : BruhatStep cs x y) : rootInverted y (graphRoot h) := by …Mentions: OAI.KLInvariance.BruhatStep, OAI.KLInvariance.TitsSpace.rootInverted, OAI.KLInvariance.TitsSpace.graphRoot
- theorem
OAI.KLInvariance.TitsSpace.graphRoot_not_inverted_sourceline 866Source documentation
Outgoing graph labels are actual noninversions at their lower vertex.
theorem graphRoot_not_inverted_source {x y : W} (h : BruhatStep cs x y) : ¬ rootInverted x (graphRoot h) := by …Mentions: OAI.KLInvariance.BruhatStep, OAI.KLInvariance.TitsSpace.rootInverted, OAI.KLInvariance.TitsSpace.graphRoot
- theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.slope_lt_of_inverted_leftline 881Source documentation
In a plane with its first simple root inverted, every noninverted root is later than every inverted root. This uses convexity, not a signed-index formula for a particular realization.
theorem slope_lt_of_inverted_left (w : W) (hl : rootInverted w B.left) (a b : PositiveRoot M cs) (haP : a.val ∈ P) (hbP : b.val ∈ P) (ha : rootInverted w a) (hb : ¬ rootInverted w b) : geometricSlope a < geometricSlope b := by …Mentions: OAI.KLInvariance.TitsSpace.rootInverted, OAI.KLInvariance.TitsSpace.PositiveRoot, OAI.KLInvariance.TitsSpace.geometricSlope
- theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.slope_lt_of_inverted_rightline 899Source documentation
The other angular cut, when the last simple root is inverted.
theorem slope_lt_of_inverted_right (w : W) (hr : rootInverted w B.right) (a b : PositiveRoot M cs) (haP : a.val ∈ P) (hbP : b.val ∈ P) (ha : rootInverted w a) (hb : ¬ rootInverted w b) : geometricSlope b < geometricSlope a := by …Mentions: OAI.KLInvariance.TitsSpace.rootInverted, OAI.KLInvariance.TitsSpace.PositiveRoot, OAI.KLInvariance.TitsSpace.geometricSlope
- theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.slope_lt_iff_inverted_leftline 923Source documentation
In the mixed-sign case the angular cut is determined by the first canonical simple root. In particular the comparison of consecutive path labels depends only on their middle vertex.
theorem slope_lt_iff_inverted_left (w : W) (a b : PositiveRoot M cs) (haP : a.val ∈ P) (hbP : b.val ∈ P) (ha : rootInverted w a) (hb : ¬ rootInverted w b) : geometricSlope a < geometricSlope b ↔ rootInverted w B.left := by …Mentions: OAI.KLInvariance.TitsSpace.PositiveRoot, OAI.KLInvariance.TitsSpace.rootInverted, OAI.KLInvariance.TitsSpace.geometricSlope
- theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.consecutive_slopes_iffline 940Source documentation
The exact middle-vertex test for two ascending graph arrows with both labels in this root plane.
theorem consecutive_slopes_iff {x y z : W} (hxy : BruhatStep cs x y) (hyz : BruhatStep cs y z) (ha : (graphRoot hxy).val ∈ P) (hb : (graphRoot hyz).val ∈ P) : geometricSlope (graphRoot hxy) < geometricSlope (graphRoot hyz) ↔ rootInverted y B.left := …Mentions: OAI.KLInvariance.BruhatStep, OAI.KLInvariance.TitsSpace.graphRoot, OAI.KLInvariance.TitsSpace.geometricSlope, OAI.KLInvariance.TitsSpace.rootInverted
- def
OAI.KLInvariance.Dihedral.swapHomline 958Source documentation
The genuine diagram automorphism of an arbitrary rank-two Coxeter system, including the infinite one.
def swapHom (cs : CoxeterSystem M W) : W →* W := …
- theorem
OAI.KLInvariance.Dihedral.swapHom_simpleline 970 - theorem
OAI.KLInvariance.Dihedral.swapHom_involutiveline 973 - def
OAI.KLInvariance.Dihedral.swapline 983 - theorem
OAI.KLInvariance.Dihedral.swap_simpleline 990 - theorem
OAI.KLInvariance.Dihedral.swap_swapline 993 - theorem
OAI.KLInvariance.Dihedral.swap_wordProdline 996 - theorem
OAI.KLInvariance.Dihedral.length_swapline 1003 - theorem
OAI.KLInvariance.Dihedral.descent_swapline 1011 - theorem
OAI.KLInvariance.Dihedral.unique_leftDescentline 1019Source documentation
A nonzero length below an existing greater length has exactly one left simple descent. This is not asserted for a finite dihedral longest element.
theorem unique_leftDescent (cs : CoxeterSystem M W) {w z : W} (hw : 0 < cs.length w) (hz : cs.length w < cs.length z) : ∃! i : Bool, cs.IsLeftDescent w i := by … - theorem
OAI.KLInvariance.Dihedral.descent_swap_false_iff_notline 1048Source documentation
Internally, the diagram involution interchanges the two unique-descent vertices of each rank.
theorem descent_swap_false_iff_not (cs : CoxeterSystem M W) {w z : W} (hw : 0 < cs.length w) (hz : cs.length w < cs.length z) : cs.IsLeftDescent (swap cs w) false ↔ ¬ cs.IsLeftDescent w false := by …Mentions: OAI.KLInvariance.Dihedral.swap
- theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.simpleRoot_inverted_coset_iffline 1079Source documentation
The ambient sign of a canonical plane root in a minimal coset is the intrinsic simple-descent sign, with the original left labels.
theorem simpleRoot_inverted_coset_iff {a₀ : W} (hmin : ∀ z ∈ planeSubgroup M cs P, cs.length a₀ ≤ cs.length (z*a₀)) (w : planeSubgroup M cs P) (i : Bool) : rootInverted ((w : W)*a₀) (B.simpleRoot i) ↔ B.system.IsLeftDescent w i := by …Mentions: OAI.KLInvariance.TitsSpace.planeSubgroup, OAI.KLInvariance.TitsSpace.rootInverted
- def
OAI.KLInvariance.TitsSpace.PlaneBasis.edgeRootline 1094Source documentation
Geometric label of an intrinsic graph edge, taken in the actual ambient root plane rather than an abstract alternate representation.
def edgeRoot {x y : planeSubgroup M cs P} (h : BruhatStep B.system x y) : PositiveRoot M cs := graphRoot ((B.bruhatStep_iff x y).mpr h)Mentions: OAI.KLInvariance.TitsSpace.planeSubgroup, OAI.KLInvariance.BruhatStep, OAI.KLInvariance.TitsSpace.PositiveRoot, OAI.KLInvariance.TitsSpace.graphRoot
- theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.edgeRoot_planeline 1097 - theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.edgeRoot_slopes_iffline 1106Source documentation
In the intrinsic system, the middle-vertex test uses its actual left simple generator; it therefore applies to any induced dihedral realization.
theorem edgeRoot_slopes_iff {x y z : planeSubgroup M cs P} (hxy : BruhatStep B.system x y) (hyz : BruhatStep B.system y z) : geometricSlope (B.edgeRoot hxy) < geometricSlope (B.edgeRoot hyz) ↔ B.system.IsLeftDescent y false := by …Mentions: OAI.KLInvariance.TitsSpace.planeSubgroup, OAI.KLInvariance.BruhatStep, OAI.KLInvariance.TitsSpace.geometricSlope
- def
OAI.KLInvariance.TitsSpace.simplePositiveline 1138 - theorem
OAI.KLInvariance.TitsSpace.simplePositive_valline 1141 - theorem
OAI.KLInvariance.TitsSpace.rootRef_simplePositiveline 1144 - theorem
OAI.KLInvariance.TitsSpace.simplePositive_injectiveline 1148 - theorem
OAI.KLInvariance.TitsSpace.coordinate_sumline 1154 - theorem
OAI.KLInvariance.TitsSpace.dual_coordinate_sumline 1158 - def
OAI.KLInvariance.TitsSpace.PositiveFunctionalline 1163 - theorem
OAI.KLInvariance.TitsSpace.PositiveFunctional.root_posline 1165 - theorem
OAI.KLInvariance.TitsSpace.height_positiveline 1175 - structure
OAI.KLInvariance.TitsSpace.RatioOrderline 1181Source documentation
Both functionals are actual dual vectors; the root order is not a label-carrying addition to the interval isomorphism.
structure RatioOrder where …
- def
OAI.KLInvariance.TitsSpace.RatioOrder.slopeline 1190 - theorem
OAI.KLInvariance.TitsSpace.RatioOrder.denominator_posline 1192 - theorem
OAI.KLInvariance.TitsSpace.RatioOrder.slope_injectiveline 1195 - def
OAI.KLInvariance.TitsSpace.RatioOrder.Adaptedline 1198Source documentation
The cut at zero is the genuine inversion set of the upper vertex.
def Adapted (y : W) : Prop := ∀ a : PositiveRoot M cs, …
Mentions: OAI.KLInvariance.TitsSpace.PositiveRoot
- theorem
OAI.KLInvariance.TitsSpace.RatioOrder.simple_lower_boundline 1201 - theorem
OAI.KLInvariance.TitsSpace.RatioOrder.exists_least_simpleline 1214 - theorem
OAI.KLInvariance.TitsSpace.RatioOrder.least_simple_descentline 1220 - def
OAI.KLInvariance.TitsSpace.RatioOrder.Chamberline 1240Source documentation
A functional in the chamber indexed by y has exactly Inv(y) as its negative roots. This is stronger data used only to construct the order.
def Chamber (y : W) : Prop := ∀ i, 0 < O.numerator (action M cs y (root i))
Mentions: OAI.KLInvariance.TitsSpace.action, OAI.KLInvariance.TitsSpace.root
- theorem
OAI.KLInvariance.TitsSpace.RatioOrder.adapted_of_chamberline 1242 - theorem
OAI.KLInvariance.TitsSpace.exists_ratioOrder_chamber_heightline 1266Source documentation
The generic functional can be chosen in any prescribed Coxeter chamber, not just outside the countably many equality hyperplanes. The explicit polynomial perturbation makes both requirements simultaneous.
theorem exists_ratioOrder_chamber_height (y : W) : ∃ O : RatioOrder (M := M) (cs := cs), O.Chamber y ∧ O.denominator=height := by …Mentions: OAI.KLInvariance.TitsSpace.RatioOrder, OAI.KLInvariance.TitsSpace.height
- theorem
OAI.KLInvariance.TitsSpace.exists_ratioOrder_chamberline 1322 - theorem
OAI.KLInvariance.TitsSpace.positiveAction_simplePositiveline 1327 - theorem
OAI.KLInvariance.TitsSpace.simple_action_nonnegline 1334 - theorem
OAI.KLInvariance.TitsSpace.simple_positiveAction_valline 1340 - theorem
OAI.KLInvariance.TitsSpace.simple_positiveAction_neline 1345 - theorem
OAI.KLInvariance.TitsSpace.exists_uniform_pos_ltline 1351 - def
OAI.KLInvariance.TitsSpace.RatioOrder.turnNumeratorline 1369 - def
OAI.KLInvariance.TitsSpace.RatioOrder.turnDenominatorline 1372 - theorem
OAI.KLInvariance.TitsSpace.RatioOrder.exists_turn_parameterline 1375 - theorem
OAI.KLInvariance.TitsSpace.RatioOrder.turn_ratio_injectiveline 1413 - def
OAI.KLInvariance.TitsSpace.RatioOrder.turnline 1454 - theorem
OAI.KLInvariance.TitsSpace.RatioOrder.turn_chamberline 1459 - theorem
OAI.KLInvariance.TitsSpace.RatioOrder.turn_simple_greatestline 1468 - theorem
OAI.KLInvariance.TitsSpace.RatioOrder.turn_slope_lt_iffline 1489 - theorem
OAI.KLInvariance.TitsSpace.RatioOrder.exists_rotationline 1527Source documentation
The actual geometric rotation needed for the Hecke recursion. It moves the least simple root to last and preserves all other root comparisons.
theorem exists_rotation {y : W} (hy : y ≠ 1) (hc : O.Chamber y) : ∃ (i : I) (O' : RatioOrder (M := M) (cs := cs)), …Mentions: OAI.KLInvariance.TitsSpace.RatioOrder
- def
OAI.KLInvariance.Dihedral.rankFlipline 1563Source documentation
Switch the two vertices at every strictly internal rank, leaving all other ranks fixed. The diagram involution supplies the intrinsic switch.
def rankFlip (cs : CoxeterSystem M W) (L H : ℕ) (w : W) : W := …
- theorem
OAI.KLInvariance.Dihedral.length_rankFlipline 1566 - theorem
OAI.KLInvariance.Dihedral.rankFlip_involutiveline 1571 - theorem
OAI.KLInvariance.Dihedral.rankFlip_lowerline 1577 - theorem
OAI.KLInvariance.Dihedral.rankFlip_upperline 1580 - theorem
OAI.KLInvariance.Dihedral.rankFlip_bruhat_iffline 1583 - theorem
OAI.KLInvariance.Dihedral.rankFlip_step_iffline 1588 - def
OAI.KLInvariance.Dihedral.intervalFlipline 1594Source documentation
An automorphism of the unlabelled full dihedral interval, fixing its ends. It need not arise from a Coxeter-system automorphism at those ends.
def intervalFlip (cs : CoxeterSystem M W) (lo hi : W) : Interval cs lo hi ≃o Interval cs lo hi where …Mentions: OAI.KLInvariance.Interval
- theorem
OAI.KLInvariance.Dihedral.intervalFlip_valline 1612 - theorem
OAI.KLInvariance.Dihedral.intervalFlip_involutiveline 1616 - def
OAI.KLInvariance.Dihedral.edgeFlipline 1620 - theorem
OAI.KLInvariance.Dihedral.edgeFlip_sourceline 1633 - theorem
OAI.KLInvariance.Dihedral.edgeFlip_targetline 1638 - theorem
OAI.KLInvariance.Dihedral.edgeFlip_involutiveline 1643 - theorem
OAI.KLInvariance.SchedulePaths.IsPath.mapline 1659Source documentation
Relabelling graph vertices and edges preserves the actual path predicate.
theorem IsPath.map {x y : V} {p : List E} (hp : IsPath source target x y p) (f : V → V') (g : E → E') (hs : ∀ e, source' (g e) = f (source e)) (ht : ∀ e, target' (g e) = f (target e)) : IsPath source' target' (f x) (f y) (p.map g) := by …Mentions: OAI.KLInvariance.SchedulePaths.IsPath
- theorem
OAI.KLInvariance.SchedulePaths.IsPath.isChainline 1670Source documentation
Every adjacent pair in a genuine path is composable.
theorem IsPath.isChain {x y : V} {p : List E} (hp : IsPath source target x y p) : p.IsChain (fun e f => target e = source f) := by …Mentions: OAI.KLInvariance.SchedulePaths.IsPath
- theorem
OAI.KLInvariance.SchedulePaths.IsPath.pairwise_map_of_localline 1684Source documentation
A path's adjacent comparisons suffice for a transitive label order. The statement allows the comparison to change under an edge map, provided the local relation is checked only on composable edges.
theorem IsPath.pairwise_map_of_local {Λ Λ' : Type*} [LinearOrder Λ] [LinearOrder Λ'] {x y : V} {p : List E} (hp : IsPath source target x y p) (label : E → Λ) (label' : E' → Λ') (g : E → E') (hlocal : ∀ e f, target e = source f → label e < label f → label' (g e) < label' (g f)) (horder : p.Pairwise (fun e f => label e < label f)) : (p.map g).Pairwise (fun e f => label' e < label' f) := by …Mentions: OAI.KLInvariance.SchedulePaths.IsPath
- theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.edgeRoot_ne_of_pathline 1715 - theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.edgeRoot_slopes_rankFlipline 1722Source documentation
At every internal vertex, the cut switches side under the path involution. This is the local relation behind rank-two path-product reversal.
theorem edgeRoot_slopes_rankFlip {x y z top : planeSubgroup M cs P} {L : ℕ} (hxy : BruhatStep B.system x y) (hyz : BruhatStep B.system y z) (hL : L < B.system.length y) (hH : B.system.length y < B.system.length top) : let hx := (rankFlip_step_iff B.system L (B.system.length top) x y).mpr hxy …Mentions: OAI.KLInvariance.TitsSpace.planeSubgroup, OAI.KLInvariance.BruhatStep
- def
OAI.KLInvariance.TitsSpace.PlaneBasis.intervalEdgeSlopeline 1752Source documentation
Restriction of the actual geometric root slope to a full plane interval.
def intervalEdgeSlope (lo hi : planeSubgroup M cs P) (e : Edge B.system lo hi) : ℝ := …
Mentions: OAI.KLInvariance.TitsSpace.planeSubgroup
- theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.intervalEdgeSlope_flipline 1757Source documentation
The global edge map reverses the comparison for every composable pair. No statement is asserted for disjoint edge labels, which can share ties.
theorem intervalEdgeSlope_flip {lo hi : planeSubgroup M cs P} (e f : Edge B.system lo hi) (hjoin : target B.system lo hi e = source B.system lo hi f) : B.intervalEdgeSlope lo hi e < B.intervalEdgeSlope lo hi f ↔ B.intervalEdgeSlope lo hi (edgeFlip B.system lo hi f) < B.intervalEdgeSlope lo hi (edgeFlip B.system lo hi e) := by …Mentions: OAI.KLInvariance.TitsSpace.planeSubgroup
- def
OAI.KLInvariance.SchedulePaths.subpathsline 1784Source documentation
The finite set of genuine directed paths selected by an edge schedule.
def subpaths (schedule : List E) (x y : V) : Finset (List E) := …
- theorem
OAI.KLInvariance.SchedulePaths.mem_subpathsline 1787 - theorem
OAI.KLInvariance.SchedulePaths.dispatch_eq_subpaths_sumline 1794 - theorem
OAI.KLInvariance.SchedulePaths.dispatch_eq_of_path_involutionline 1803Source documentation
A length-preserving involution on the actual schedule-path sets proves an operator-entry relation, with no Hecke polynomial used in the assumptions.
theorem dispatch_eq_of_path_involution (T : R) (schedule schedule' : List E) (hnd : schedule.Nodup) (hnd' : schedule'.Nodup) (x y : V) (g : E → E) (hg : Function.Involutive g) (hforward : ∀ p ∈ subpaths source target schedule x y, p.map g ∈ subpaths source target schedule' x y) (hbackward : ∀ p ∈ subpaths source target schedule' x y, p.map g ∈ subpaths source target schedule x y) : dispatch source target T (fun z => if z=y then 1 else 0) schedule x = dispatch source target T (fun z => if z=y then 1 else 0) schedule' x := by …Mentions: OAI.KLInvariance.SchedulePaths.subpaths, OAI.KLInvariance.SchedulePaths.dispatch
- theorem
OAI.KLInvariance.SchedulePaths.subpaths_map_of_sortedline 1828Source documentation
Sorted full schedules select precisely their strictly monotone paths; an actual graph map satisfying the adjacent comparison test transports them.
theorem subpaths_map_of_sorted (label label' : E → ℝ) (schedule schedule' : List E) (x y : V) (hs : schedule.Pairwise (fun e f => label f ≤ label e)) (hs' : schedule'.Pairwise (fun e f => label' f ≤ label' e)) (hfull' : ∀ e, e ∈ schedule') (hties : ∀ e f, label e = label f → target e ≠ source f) (f : V → V) (g : E → E) (hsource : ∀ e, source (g e) = f (source e)) (htarget : ∀ e, target (g e) = f (target e)) (hx : f x=x) (hy : f y=y) (hlocal : ∀ e f, target e=source f → label f<label e → label' (g f)<label' (g e)) (p : List E) (hp : p ∈ subpaths source target schedule x y) : …Mentions: OAI.KLInvariance.SchedulePaths.subpaths
- theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.intervalEdgeSlope_tiesline 1865 - theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.intervalEdgeSlope_flip_reverseline 1875 - theorem
OAI.KLInvariance.TitsSpace.PlaneBasis.dispatch_reverse_endpointsline 1889Source documentation
Rank-two reversal of the genuine path-product entry between the two ends of any full interval. The order is the actual induced angular order.
theorem dispatch_reverse_endpoints {R : Type*} [Semiring R] {lo hi : planeSubgroup M cs P} (hlohi : BruhatLE B.system lo hi) (schedule : List (Edge B.system lo hi)) (hnd : schedule.Nodup) (hfull : ∀ e, e ∈ schedule) (hs : schedule.Pairwise (fun e f => B.intervalEdgeSlope lo hi f ≤ B.intervalEdgeSlope lo hi e)) (T : R) : let x : Interval B.system lo hi := ⟨lo,bruhat_refl B.system lo,hlohi⟩ …Mentions: OAI.KLInvariance.TitsSpace.planeSubgroup, OAI.KLInvariance.BruhatLE, OAI.KLInvariance.Interval, OAI.KLInvariance.bruhat_refl
- abbrev
OAI.KLInvariance.AdaptedDyer.Edgeline 1948 - def
OAI.KLInvariance.AdaptedDyer.sourceline 1949 - def
OAI.KLInvariance.AdaptedDyer.targetline 1950 - def
OAI.KLInvariance.AdaptedDyer.rootLabelline 1951 - theorem
OAI.KLInvariance.AdaptedDyer.rootRef_rootLabelline 1953 - theorem
OAI.KLInvariance.AdaptedDyer.target_eq_rootline 1958 - theorem
OAI.KLInvariance.AdaptedDyer.rootLabel_ne_of_joinline 1963 - def
OAI.KLInvariance.AdaptedDyer.scoreline 1972 - theorem
OAI.KLInvariance.AdaptedDyer.score_tiesline 1975 - def
OAI.KLInvariance.AdaptedDyer.edgeFinsetline 1980 - theorem
OAI.KLInvariance.AdaptedDyer.mem_edgeFinsetline 1987 - def
OAI.KLInvariance.AdaptedDyer.scheduleline 2005 - theorem
OAI.KLInvariance.AdaptedDyer.mem_scheduleline 2008 - theorem
OAI.KLInvariance.AdaptedDyer.schedule_nodupline 2012 - theorem
OAI.KLInvariance.AdaptedDyer.schedule_increasingline 2016 - theorem
OAI.KLInvariance.AdaptedDyer.path_leline 2023 - theorem
OAI.KLInvariance.AdaptedDyer.path_targets_leline 2031 - def
OAI.KLInvariance.AdaptedDyer.pathsline 2043 - theorem
OAI.KLInvariance.AdaptedDyer.mem_pathsline 2046 - def
OAI.KLInvariance.AdaptedDyer.polynomialline 2063 - theorem
OAI.KLInvariance.AdaptedDyer.polynomial_dispatchline 2066 - theorem
OAI.KLInvariance.AdaptedDyer.rootRef_injectiveline 2073 - theorem
OAI.KLInvariance.AdaptedDyer.rootLabel_simple_iffline 2078 - def
OAI.KLInvariance.AdaptedDyer.rotateEdgeline 2091Source documentation
On a non-simple-labelled edge this is actual left multiplication by s. Simple-labelled edges are fixed merely to make the extension a total involution; all path uses below exclude them before applying this map.
def rotateEdge (i : I) (e : Edge cs) : Edge cs := …
Mentions: OAI.KLInvariance.AdaptedDyer.Edge
- theorem
OAI.KLInvariance.AdaptedDyer.rotateEdge_valline 2096 - theorem
OAI.KLInvariance.AdaptedDyer.rotateEdge_rootline 2100 - theorem
OAI.KLInvariance.AdaptedDyer.rotateEdge_nonsimpleline 2112 - theorem
OAI.KLInvariance.AdaptedDyer.rotateEdge_involutiveline 2117 - theorem
OAI.KLInvariance.AdaptedDyer.path_map_of_memline 2132 - theorem
OAI.KLInvariance.AdaptedDyer.path_rotateline 2144 - theorem
OAI.KLInvariance.AdaptedDyer.rotateEdge_twiceline 2156 - def
OAI.KLInvariance.AdaptedDyer.Nonsimpleline 2160 - theorem
OAI.KLInvariance.AdaptedDyer.nonsimple_mapline 2163 - theorem
OAI.KLInvariance.AdaptedDyer.path_map_twiceline 2169 - theorem
OAI.KLInvariance.AdaptedDyer.path_rotate_iffline 2174 - theorem
OAI.KLInvariance.AdaptedDyer.paths_rotate_iffline 2184 - theorem
OAI.KLInvariance.AdaptedDyer.nonsimple_of_greatestline 2198 - theorem
OAI.KLInvariance.AdaptedDyer.nonsimple_tail_of_leastline 2233 - theorem
OAI.KLInvariance.AdaptedDyer.nonsimple_of_least_descentline 2247 - def
OAI.KLInvariance.AdaptedDyer.nonsimplePathsline 2268 - theorem
OAI.KLInvariance.AdaptedDyer.mem_nonsimplePathsline 2271 - theorem
OAI.KLInvariance.AdaptedDyer.sum_nonsimple_rotateline 2276 - def
OAI.KLInvariance.AdaptedDyer.simpleEdgeline 2309 - theorem
OAI.KLInvariance.AdaptedDyer.simpleEdge_sourceline 2313 - theorem
OAI.KLInvariance.AdaptedDyer.simpleEdge_targetline 2317 - theorem
OAI.KLInvariance.AdaptedDyer.simpleEdge_rootline 2320 - theorem
OAI.KLInvariance.AdaptedDyer.cons_simple_memline 2325 - theorem
OAI.KLInvariance.AdaptedDyer.not_nonsimple_iff_consline 2340 - theorem
OAI.KLInvariance.AdaptedDyer.polynomial_splitline 2376 - theorem
OAI.KLInvariance.AdaptedDyer.polynomial_recursionline 2402Source documentation
The path expansion satisfies exactly the genuine normalized Hecke recursion, because the chosen geometric order can be rotated at a descent.
theorem polynomial_recursion (O O' : RatioOrder (M := M) (cs := cs)) (i : I) …
- theorem
OAI.KLInvariance.AdaptedDyer.paths_diagonalline 2431 - theorem
OAI.KLInvariance.AdaptedDyer.polynomial_diagonalline 2447 - theorem
OAI.KLInvariance.AdaptedDyer.polynomial_zeroline 2451 - theorem
OAI.KLInvariance.AdaptedDyer.polynomial_eq_rTildeline 2462Source documentation
Dyer's increasing-path formula for a genuine generic geometric order whose numerator is in the top chamber. The target is the Hecke-defined normalized R-polynomial, not a renamed path polynomial.
theorem polynomial_eq_rTilde (O : RatioOrder (M := M) (cs := cs)) (x y : W) …
- theorem
OAI.KLInvariance.AdaptedDyer.exists_dyer_scheduleline 2488Source documentation
An adapted geometric order exists for every top, without adding labels or geometric data to the given interval isomorphism.
theorem exists_dyer_schedule (y : W) : ∃ O : RatioOrder (M := M) (cs := cs), O.Chamber y ∧ …