Documentation

Mathlib.LinearAlgebra.RootSystem.BaseExists

Existence of bases for crystallographic root systems #

Main results: #

Implementation details #

The proof needs a set of ordered coefficients, even though the ultimate existence statement does not. There are at least two ways to deal with this: (a) Using the fact that a crystallographic root system induces a -structure, pass to the root system over defined by RootPairing.restrictScalarsRat, and develop a theory of base change for root system bases. (b) Introduce a second set of ordered coefficients (ultimately taken to be ) and develop a theory with two sets of coefficients simultaneously in play.

It is not really clear which is the better approach but here we opt for approach (b) as it seems to yield slightly more general results.

theorem RootPairing.baseOf_pairwise_pairing_le_zero {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [AddCommGroup M] [AddCommGroup N] [CommRing R] [Module R M] [Module R N] (P : RootPairing ι R M N) {S : Type u_5} [LinearOrder S] [AddCommGroup S] [IsOrderedAddMonoid S] (f : M →+ S) [CharZero R] [IsDomain R] [P.IsCrystallographic] (hf : ∀ (i : ι), f (P.root i) 0) :
(IsAddIndecomposable.baseOf (⇑P.root) f).Pairwise fun (i j : ι) => P.pairingIn i j 0

This is [serre1965](Ch. V, §9, Lemma 3).

theorem RootPairing.linearIndepOn_root_baseOf' {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [AddCommGroup M] [AddCommGroup N] [CommRing R] [Module R M] [Module R N] (P : RootPairing ι R M N) [IsDomain R] {S : Type u_6} [LinearOrder S] [CommRing S] [IsStrictOrderedRing S] [Algebra S R] [FaithfulSMul S R] [Module S M] [IsScalarTower S R M] [Module S N] [IsScalarTower S R N] [P.IsValuedIn S] [P.IsCrystallographic] (f : Module.Dual S M) (hf : ∀ (i : ι), f (P.root i) 0) :

This lemma is usually established for root systems with coefficients R equal to or , in which case one may take S = R. However our statement allows for more general coefficients such as R = ℂ and S = ℚ.

This lemma is mostly a stepping stone en route to RootPairing.linearIndepOn_root_baseOf (where linear independence is established over R rather than just S) except that this version does not make the field assumption and so covers the case S = R = ℤ which the latter does not.

theorem RootPairing.ncard_eq_finrank_of_linearIndepOn_of {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [AddCommGroup M] [AddCommGroup N] [CommRing R] [Module R M] [Module R N] (P : RootPairing ι R M N) [P.IsRootSystem] [Nontrivial R] {s : Set ι} (hli : LinearIndepOn R (⇑P.root) s) (hsp : ∀ (i : ι), P.root i AddSubmonoid.closure (P.root '' s) -P.root i AddSubmonoid.closure (P.root '' s)) :
theorem RootPairing.linearIndepOn_root_baseOf {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [AddCommGroup M] [AddCommGroup N] [Field R] [CharZero R] [Module R M] [Module R N] (P : RootPairing ι R M N) [P.IsRootSystem] [P.IsCrystallographic] (f : M →+ ) (hf : ∀ (i : ι), f (P.root i) 0) :
theorem RootPairing.eq_baseOf_of_linearIndepOn_of_mem_or_neg_mem_closure {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [AddCommGroup M] [AddCommGroup N] [Field R] [CharZero R] [Module R M] [Module R N] (P : RootPairing ι R M N) [P.IsRootSystem] [P.IsCrystallographic] (s : Set ι) (hli : LinearIndepOn R (⇑P.root) s) (hsp : ∀ (i : ι), P.root i AddSubmonoid.closure (P.root '' s) -P.root i AddSubmonoid.closure (P.root '' s)) (f : M →+ ) (hf : is, f (P.root i) = 1) :
theorem RootPairing.eq_baseOf_iff {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [AddCommGroup M] [AddCommGroup N] [Field R] [CharZero R] [Module R M] [Module R N] (P : RootPairing ι R M N) [P.IsRootSystem] [P.IsCrystallographic] (s : Set ι) (f : M →+ ) (hf : is, f (P.root i) = 1) (hf' : ∀ (i : ι), f (P.root i) 0) :
theorem RootPairing.baseOf_root_eq_baseOf_coroot {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [AddCommGroup M] [AddCommGroup N] [Field R] [CharZero R] [Module R M] [Module R N] (P : RootPairing ι R M N) [P.IsRootSystem] [P.IsCrystallographic] [P.IsReduced] (f : M →+ ) (hf : ∀ (i : ι), f (P.root i) 0) (g : N →+ ) (hg : ∀ (i : ι), g (P.coroot i) 0) (hfg : ∀ (i : ι), 0 < f (P.root i) 0 < g (P.coroot i)) :
theorem RootPairing.coroot_mem_or_neg_mem_closure_of_root {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [AddCommGroup M] [AddCommGroup N] [Field R] [CharZero R] [Module R M] [Module R N] (P : RootPairing ι R M N) [P.IsRootSystem] [P.IsCrystallographic] [P.IsReduced] (s : Set ι) (hli : LinearIndepOn R (⇑P.root) s) (hsp : ∀ (i : ι), P.root i AddSubmonoid.closure (P.root '' s) -P.root i AddSubmonoid.closure (P.root '' s)) (i : ι) :

This is really just an auxiliary result en route to RootPairing.Base.mk'.

noncomputable def RootPairing.Base.mk' {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [AddCommGroup M] [AddCommGroup N] [Field R] [CharZero R] [Module R M] [Module R N] (P : RootPairing ι R M N) [P.IsRootSystem] [P.IsCrystallographic] [P.IsReduced] (s : Set ι) (hli : LinearIndepOn R (⇑P.root) s) (hsp : ∀ (i : ι), P.root i AddSubmonoid.closure (P.root '' s) -P.root i AddSubmonoid.closure (P.root '' s)) :

An alternate constructor for RootPairing.Base which demands the axioms for roots but not for coroots.

Equations
  • RootPairing.Base.mk' P s hli hsp = { support := .toFinset, linearIndepOn_root := , linearIndepOn_coroot := , root_mem_or_neg_mem := , coroot_mem_or_neg_mem := }
Instances For
    theorem RootPairing.nonempty_base {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [AddCommGroup M] [AddCommGroup N] [Field R] [CharZero R] [Module R M] [Module R N] (P : RootPairing ι R M N) [P.IsRootSystem] [P.IsCrystallographic] [P.IsReduced] :