Closed riccardobrasca closed 1 year ago
I have the following result on my ideal-span-norm
branch:
noncomputable def basis.localization_localization {R S : Type*} [comm_ring R] [comm_ring S]
[algebra R S] {ΞΉ : Type*} [fintype ΞΉ] (b : basis ΞΉ R S)
(M : submonoid R) (Rβ Sβ : Type*)
[comm_ring Rβ] [algebra R Rβ] [comm_ring Sβ] [algebra S Sβ]
[algebra Rβ Sβ] [algebra R Sβ] [is_scalar_tower R Rβ Sβ] [is_scalar_tower R S Sβ]
[is_localization M Rβ] [is_localization (M.map (algebra_map R S)) Sβ]
(hM : submonoid.map (algebra_map R S) M β€ S β°) :
basis ΞΉ Rβ Sβ :=
That is what we're looking for, right?
I have the following result on my
ideal-span-norm
branch:noncomputable def basis.localization_localization {R S : Type*} [comm_ring R] [comm_ring S] [algebra R S] {ΞΉ : Type*} [fintype ΞΉ] (b : basis ΞΉ R S) (M : submonoid R) (Rβ Sβ : Type*) [comm_ring Rβ] [algebra R Rβ] [comm_ring Sβ] [algebra S Sβ] [algebra Rβ Sβ] [algebra R Sβ] [is_scalar_tower R Rβ Sβ] [is_scalar_tower R S Sβ] [is_localization M Rβ] [is_localization (M.map (algebra_map R S)) Sβ] (hM : submonoid.map (algebra_map R S) M β€ S β°) : basis ΞΉ Rβ Sβ :=
That is what we're looking for, right?
Yes! This should replace basis.localization, whose assumptions essentially never apply (we take a β€
-basis of a β
-vector space).
I PR'd the result above in #18261.
We are absolutely ready to prove this. For example the fact that
π K
is free overβ€
is very easyBut the correct thing to do is to develop the theory of lattices, proving that a
β€
-basis gives also aβ
-basis. Note that we have basis.localization, but this is the wrong statement, since it take aβ€
-basis ofM
and produces aβ
-basis ofM
(in practice it only applies in trivial cases).A sketch would be something like (of course one should not use tactic mode for the whole definition)
See this comment for a nice application.