From a766813d86df4e3f451f1066aff938458e055fa0 Mon Sep 17 00:00:00 2001 From: Tim Hosgood Date: Fri, 19 Apr 2024 00:24:07 +0100 Subject: [PATCH] custom list numbering --- trees/sga1/sga1-i/sga1-i.10.tree | 10 +++--- trees/sga1/sga1-i/sga1-i.11.tree | 10 ++---- trees/sga1/sga1-i/sga1-i.2.tree | 10 +++--- trees/sga1/sga1-i/sga1-i.3.tree | 38 +++++++++------------ trees/sga1/sga1-i/sga1-i.4.tree | 20 ++++------- trees/sga1/sga1-i/sga1-i.9.tree | 16 ++++----- trees/sga1/sga1-macros.tree | 9 +++++ trees/sga6/sga6-0/sga6-0.1.tree | 58 +++++++++++++++++++------------- trees/sga6/sga6-i/sga6-i.0.tree | 8 ++--- trees/sga6/sga6-macros.tree | 9 +++++ 10 files changed, 95 insertions(+), 93 deletions(-) diff --git a/trees/sga1/sga1-i/sga1-i.10.tree b/trees/sga1/sga1-i/sga1-i.10.tree index 714bf38..fad239c 100644 --- a/trees/sga1/sga1-i/sga1-i.10.tree +++ b/trees/sga1/sga1-i/sga1-i.10.tree @@ -83,18 +83,16 @@ Then } - \todo{the following list should be i, ii, etc} - - \ol{ - \li{ + \olc{ + \lic{i.}{ #{K} is unramified over #{Y}. } - \li{ + \lic{ii.}{ If #{L} is an extension of #{K} that is unramified over #{Y}, and if #{Y'} is a normal prescheme, of field #{L}, that dominates #{Y} (e.g. the normalisation of #{Y} in #{L}), and #{M} an extension of #{L} that is unramified over #{Y'}, then #{M/K} is unramified over #{X} (this is the \em{transitivity} property). } - \li{ + \lic{iii.}{ Let #{Y'} be a normal integral prescheme that dominates #{Y}, of field #{K'/K}; if #{L} is an extension of #{K} that is unramified over #{Y}, then #{L\otimes_K K'} is an extension of #{K'} that is unramified over #{Y'} (this is the \em{translation} property). } diff --git a/trees/sga1/sga1-i/sga1-i.11.tree b/trees/sga1/sga1-i/sga1-i.11.tree index 05c763a..3413d60 100644 --- a/trees/sga1/sga1-i/sga1-i.11.tree +++ b/trees/sga1/sga1-i/sga1-i.11.tree @@ -11,12 +11,8 @@ Here are two examples of this fact. } -\p{ - \todo{the following list should be a, b} -} - -\ol{ - \li{ +\olc{ + \lic{a.}{ Let #{C} be an algebraic curve with an ordinary double point #{x}, and let #{C'} be its normalisation, with #{a} and #{b} the two points of #{C'} over #{x}. Let #{C'_1} and #{C'_2} be copies of #{C'}, with #{a_i} (resp. #{b_i}) the point of #{C'_i} corresponding to #{a} (resp. #{b}). In the curve #{C'_1\coprod C'_2}, we identify #{a_1} with #{b_2}, and #{a_2} with #{b_1} (we leave making this process of identification precise to the reader; it will be explained in Chapter VI of the multiplodoque, but, in the case of curves over an algebraically closed field, is already covered in Serre's book on algebraic curves). @@ -27,7 +23,7 @@ We note that is was questions of this sort that gave birth to the "theory of descent" for schemes. } - \li{ + \lic{b.}{ \p{ Let #{A} be a complete integral local ring; we know that its normalisation #{A'} is finite over #{A} (by Nagata), and is thus a complete semi-local ring, and thus local, since it is integral. diff --git a/trees/sga1/sga1-i/sga1-i.2.tree b/trees/sga1/sga1-i/sga1-i.2.tree index 4e84633..564a0e7 100644 --- a/trees/sga1/sga1-i/sga1-i.2.tree +++ b/trees/sga1/sga1-i/sga1-i.2.tree @@ -15,16 +15,14 @@ Then the following conditions are equivalent: } - \p{\todo{the following list should be i, ii, etc}} - - \ol{ - \li{ + \olc{ + \lic{i.}{ #{B/\mathfrak{m}B} is of finite dimension over #{k=A/\mathfrak{m}}. } - \li{ + \lic{ii.}{ #{\mathfrak{m}B} is an ideal of definition, and #{B/\mathfrak{r}(B)=k(B)} is an extension of #{k=k(A)}. } - \li{ + \lic{iii.}{ The completion #{\widehat{B}} of #{B} is finite over the completion #{\widehat{A}} of #{A}. } } diff --git a/trees/sga1/sga1-i/sga1-i.3.tree b/trees/sga1/sga1-i/sga1-i.3.tree index 47b5d1d..2afd002 100644 --- a/trees/sga1/sga1-i/sga1-i.3.tree +++ b/trees/sga1/sga1-i/sga1-i.3.tree @@ -15,16 +15,14 @@ Then the following conditions are equivalent: } - \p{\todo{the following list should be i, ii, etc}} - - \ol{ - \li{ + \olc{ + \lic{i.}{ #{\sh{O}_x/\mathfrak{m}_y\sh{O}_x} is a finite separable extension of #{k(y)}. } - \li{ + \lic{ii.}{ #{\Omega_{X/Y}^1} is zero at #{x}. } - \li{ + \lic{iii.}{ The diagonal morphism #{\Delta_{X/Y}} is an open immersion on a neighbourhood of #{x}. } } @@ -45,14 +43,12 @@ \number{I.3.2} \taxon{definition} - \p{\todo{the following list should be a, b}} - - \ol{ - \li{ + \olc{ + \lic{a.}{ Let #{f} satisfy one of the equivalent conditions of \ref{sga1-i.3.1}. Then we say that #{f} is \em{unramified} at #{x}, or that #{X} is unramified at #{x} on #{Y}. } - \li{ + \lic{b.}{ Let #{A\to B} be a local homomorphism. We say that it is \em{unramified}, or that #{B} is a local \em{unramified} algebra on #{A}, if #{B/\mathfrak{r}(A)B} is a finite separable extension of #{A/\mathfrak{r}(A)}, i.e. if #{\mathfrak{r}(A)B=\mathfrak{r}(B)} and #{k(B)} is a separable extension of #{k(A)}. (cf. regrets in [III 1.2]) @@ -99,16 +95,14 @@ \number{I.3.5} \taxon{proposition} - \p{\todo{the following list should be i, ii, etc}} - - \ol{ - \li{ + \olc{ + \lic{i.}{ An immersion is ramified. } - \li{ + \lic{ii.}{ The composition of two ramified morphisms is also ramified. } - \li{ + \lic{iii.}{ Base extension of a ramified morphisms is also ramified. } } @@ -125,16 +119,14 @@ \number{I.3.6} \taxon{corollary} - \p{\todo{the following list should be iv, v, etc}} - - \ol{ - \li{ + \olc{ + \lic{iv.}{ The cartesian product of two unramified morphisms is unramified. } - \li{ + \lic{v.}{ If #{gf} is unramified then so too is #{f}. } - \li{ + \lic{vi.}{ If #{f} is unramified then so too is #{f_\mathrm{red}}. } } diff --git a/trees/sga1/sga1-i/sga1-i.4.tree b/trees/sga1/sga1-i/sga1-i.4.tree index 5b2dca0..7b0dce4 100644 --- a/trees/sga1/sga1-i/sga1-i.4.tree +++ b/trees/sga1/sga1-i/sga1-i.4.tree @@ -6,8 +6,6 @@ \import{sga1-macros} \put\transclude/numbered{false} -\todo{fix the auto-capitalisation of the title not recognising É} - \p{ We are going to suppose that everything concerning flat morphisms that we need to be true is indeed true; these facts will be proved later, if there is time. @@ -18,16 +16,14 @@ \taxon{definition} \number{I.4.1} - \todo{this list should be a, b} - - \ol{ - \li{ + \olc{ + \lic{a.}{ Let #{f\colon X\to Y} be a morphism of finite type. We say that #{f} is \em{étale} at #{x} if #{f} is both flat and unramified at #{x}. We say that #{f} is étale if it is étale at all points. We say that #{X} is étale at #{x} over #{Y}, or that it is a #{Y}-prescheme which is étale at #{x} etc. } - \li{ + \lic{b.}{ Let #{f\colon A\to B} be a local homomorphism. We say that #{f} is étale, or that #{B} is étale over #{A}, if #{B} is flat and unramified over #{A} \footnote{cf. regrets in \fref{sga1-iii.1.2}.} @@ -98,16 +94,14 @@ \taxon{proposition} \number{I.4.6} - \todo{this list should be i, ii etc} - - \ol{ - \li{ + \olc{ + \lic{i.}{ An open immersion is étale. } - \li{ + \lic{ii.}{ The composition of two étale morphisms is étale. } - \li{ + \lic{iii.}{ The base extension of an étale morphism is étale. } } diff --git a/trees/sga1/sga1-i/sga1-i.9.tree b/trees/sga1/sga1-i/sga1-i.9.tree index 84fc6c3..484ae3a 100644 --- a/trees/sga1/sga1-i/sga1-i.9.tree +++ b/trees/sga1/sga1-i/sga1-i.9.tree @@ -115,13 +115,11 @@ Let #{f\colon A\to B} be a local homomorphism, with #{B} isomorphic to the localisation of an #{A}-algebra of finite type over #{A}. } - \p{\todo{the following list should be i, ii}} - - \ol{ - \li{ + \olc{ + \lic{i.}{ If #{f} is étale, then #{A} is normal if and only if #{B} is normal. } - \li{ + \lic{ii.}{ If #{A} is normal, then #{f} is étale if and only if #{f} is injective and unramified (and then #{B} is normal, by (i)). } } @@ -146,13 +144,11 @@ \subtree[sga1-i.9-serres-criterion]{ \title{Serre's criterion} - \p{\todo{the following list should be i, ii}} - - \ol{ - \li{ + \olc{ + \lic{i.}{ For every rank-#{1} prime ideal #{\mathfrak{p}} of #{A}, #{A_\mathfrak{p}} is normal (or, equivalently, regular); } - \li{ + \lic{ii.}{ For every rank-#{\geq2} prime ideal #{\mathfrak{p}} of #{A}, the depth of #{A_\mathfrak{p}} is #{\geq2}. \footnote{cf. EGA IV 5.8.6.} } diff --git a/trees/sga1/sga1-macros.tree b/trees/sga1/sga1-macros.tree index 1b9e5f1..da2bcce 100644 --- a/trees/sga1/sga1-macros.tree +++ b/trees/sga1/sga1-macros.tree @@ -1,3 +1,12 @@ +\xmlns:html{http://www.w3.org/1999/xhtml} + +\def\olc[body]{ + \{\body} +} +\def\lic[lbl][body]{ + \[style]{list-style-type: "\lbl "}{\body} +} + \def\tr{#{\operatorname{tr}}} \def\Spec{#{\operatorname{Spec}}} \def\Hom{#{\operatorname{Hom}}} diff --git a/trees/sga6/sga6-0/sga6-0.1.tree b/trees/sga6/sga6-0/sga6-0.1.tree index 43c0a3f..7de0697 100644 --- a/trees/sga6/sga6-0/sga6-0.1.tree +++ b/trees/sga6/sga6-0/sga6-0.1.tree @@ -9,12 +9,17 @@ Recall the Riemann–Roch formula for a proper morphism ##{f\colon X\to Y} of smooth quasi-projective schemes over a field #{k} and a coherent sheaf #{\sh{F}} on #{X}: - \todo{equation numbering} - ##{ - \Todd(T_Y)\ch_Y(f_*(\cl(\sh{F}))) - = f_*(\Todd(T_X)\ch_X(\sh{F})) - \startverb\tag{1.1}\stopverb + + \subtree[sga6-0.1-equation-1.1]{ + \taxon{equation} + \number{1.1} + ##{ + \Todd(T_Y)\ch_Y(f_*(\cl(\sh{F}))) + = f_*(\Todd(T_X)\ch_X(\sh{F})) + \startverb\tag{1.1}\stopverb + } } + where #{\cl(\sh{F})} denotes the class of #{\sh{F}} in the group #{K(X)} of classes of coherent sheaves on #{X}, and #{\ch_X} and #{\ch_Y} denote the Chern characters of on #{X} and #{Y} (resp.), and #{T_X} and #{T_Y} the tangent bundles to #{X} and #{Y} (resp.). This formula holds in #{A(Y)\otimes_\ZZ\QQ}, where #{A(Y)} is the Chow ring of #{Y}; the #{f_*} on the right-hand side is induced by tensoring with #{\QQ} the "direct image of cycles" homomorphism @@ -28,18 +33,29 @@ } As we know, #{\Todd(-)} and #{\ch(-)} are universal polynomials in the Chern classes of the argument with coefficients in #{\QQ}. Since the constant term of #{\Todd(-)} is #{1}, it is an invertible element for any value of the argument, so that Equation (1.1) can be rewritten, after multiplication by #{\Todd(T_Y)^{-1}}, in the form which is more useful for our needs: - \todo{equation numbering} - ##{ - \ch_Y(f_*(\cl(\sh{F}))) - = f_*(\Todd(T_f)\ch_X(\sh{F})) - \startverb\tag{1.2}\stopverb + + \subtree[sga6-0.1-equation-1.2]{ + \taxon{equation} + \number{1.2} + ##{ + \ch_Y(f_*(\cl(\sh{F}))) + = f_*(\Todd(T_f)\ch_X(\sh{F})) + \startverb\tag{1.2}\stopverb + } } + where we set - ##{ - T_f - = T_X - f^*(T_Y) \in K(X) - \startverb\tag{1.3}\stopverb + + \subtree[sga6-0.1-equation-1.3]{ + \taxon{equation} + \number{1.3} + ##{ + T_f + = T_X - f^*(T_Y) \in K(X) + \startverb\tag{1.3}\stopverb + } } + so that #{T_f} plays the role of a \em{virtual relative tangent bundle} of #{X} over #{Y}. In the case where the morphism #{f} is smooth (i.e. with everywhere-surjective tangent map), we have simply ##{ @@ -58,13 +74,11 @@ One of the main goals of this Seminar is to generalise Equation (1.2) simultaneously in two directions: } -\todo{this list should be a, b} - -\ol{ - \li{ +\olc{ + \lic{a.}{ Remove the hypothesis of the existence of a base field #{k}. } - \li{ + \lic{b.}{ Replace the regularity hypotheses on #{Y} and #{X} by a "local regularity" hypothesis on #{f}. } } @@ -73,10 +87,8 @@ Finally, along the way, we will equally deal with the problem: } -\todo{this list should be c} - -\ol{ - \li{ +\olc{ + \lic{c.}{ Remove the quasi-projectivity hypotheses which, in the absence of a base field, are expressed by the existence of ample invertible modules on #{X} and on #{Y}. } } diff --git a/trees/sga6/sga6-i/sga6-i.0.tree b/trees/sga6/sga6-i/sga6-i.0.tree index 0eb8480..b85b5b2 100644 --- a/trees/sga6/sga6-i/sga6-i.0.tree +++ b/trees/sga6/sga6-i/sga6-i.0.tree @@ -81,13 +81,11 @@ this theorem is, in reality, a conjecture, but has nevertheless been proven in the two particular following cases: } -\p{\todo{the following list should be a, b}} - -\ol{ - \li{ +\olc{ + \lic{a.}{ #{S} is locally Noetherian; } - \li{ + \lic{b.}{ #{f} is projective. } } diff --git a/trees/sga6/sga6-macros.tree b/trees/sga6/sga6-macros.tree index c482456..8f571bc 100644 --- a/trees/sga6/sga6-macros.tree +++ b/trees/sga6/sga6-macros.tree @@ -1,3 +1,12 @@ +\xmlns:html{http://www.w3.org/1999/xhtml} + +\def\olc[body]{ + \{\body} +} +\def\lic[lbl][body]{ + \[style]{list-style-type: "\lbl "}{\body} +} + \def\proof[body]{ \scope{ \put\transclude/toc{false}