diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..3cdcaf6 --- /dev/null +++ b/.htaccess @@ -0,0 +1,114 @@ +# remember to update these when new releases come out: +Redirect /Macaulay2/current http://www.math.uiuc.edu/Macaulay2/doc/Macaulay2-1.10 +Redirect /Macaulay2/Schubert2 http://www.math.uiuc.edu/Macaulay2/doc/Macaulay2-1.10/share/doc/Macaulay2/Schubert2/html +# Redirect /Macaulay2/Documentation http://www.math.uiuc.edu/Macaulay2/doc/Macaulay2-1.10/share/doc/Macaulay2/Macaulay2Doc/html +Redirect /Macaulay2/Documentation /Macaulay2/doc/Macaulay2-1.10/share/doc/Macaulay2/Macaulay2Doc/html +Redirect /Macaulay2/Documentation-dev http://www.math.uiuc.edu/Macaulay2/doc/Macaulay2-1.10/share/doc/Macaulay2/Macaulay2Doc/html +Redirect /Macaulay2/share http://www.math.uiuc.edu/Macaulay2/doc/Macaulay2-1.10/share +Redirect /Macaulay2/doc/Macaulay2/ http://www.math.uiuc.edu/Macaulay2/doc/Macaulay2-1.10/ +# remember also to update: +# DOCVERSION in Makefile.include +# links in Style/trailer.html +# remember also to update Style/trailer.html + +## this breaks everything: +# Options +Includes +# AddHandler server-parsed .shtml + +ErrorDocument 404 /Macaulay2/404.html + +AddCharset utf-8 .html + +AddType 'application/octetstream' .dmg +AddType 'application/x-debian-package' .deb + +# Redirect /Macaulay2/PublishedPackages/Polyhedra http://www.math.uiuc.edu/Macaulay2/doc/Macaulay2-1.4/share/doc/Macaulay2/Polyhedra/html/index.html + +Redirect permanent /Macaulay2/ftp-site/ http://www.math.uiuc.edu/Macaulay2/Downloads/ +Redirect permanent /Macaulay2/Events/Workshop2013January/ http://www.math.uiuc.edu/Macaulay2/Events/Workshop2014January/ +Redirect permanent /Macaulay2/Extra http://www.math.uiuc.edu/Macaulay2/Downloads/OtherSourceCode +Redirect permanent /Macaulay2/OtherSourceCode/1.3 http://www.math.uiuc.edu/Macaulay2/Downloads/OtherSourceCode +Redirect permanent /Macaulay2/OtherSourceCode/1.3.1 http://www.math.uiuc.edu/Macaulay2/Downloads/OtherSourceCode +Redirect permanent /Macaulay2/OtherSourceCode/1.4 http://www.math.uiuc.edu/Macaulay2/Downloads/OtherSourceCode +Redirect permanent /Macaulay2/OtherSourceCode/1.5 http://www.math.uiuc.edu/Macaulay2/Downloads/OtherSourceCode +Redirect permanent /Macaulay2/OtherSourceCode/1.6 http://www.math.uiuc.edu/Macaulay2/Downloads/OtherSourceCode +Redirect permanent /Macaulay2/OtherSourceCode/trunk http://www.math.uiuc.edu/Macaulay2/Downloads/OtherSourceCode +Redirect gone /Macaulay2/Manual/ +Redirect gone /Macaulay2/doc/Macaulay2-1.0 +Redirect gone /Macaulay2/doc/Macaulay2-1.1 +Redirect gone /Macaulay2/doc/Macaulay2-1.1.99 +Redirect gone /Macaulay2/doc/Macaulay2-1.2 +Redirect gone /Macaulay2/doc/Macaulay2-1.3 +Redirect gone /Macaulay2/doc/Macaulay2-1.3.1.1 +Redirect gone /Macaulay2/doc/Macaulay2-1.3.1 +Redirect gone /Macaulay2/doc/Macaulay2-1.4 +Redirect gone /Macaulay2/doc/Macaulay2-1.5 +Redirect gone /Macaulay2/doc/Macaulay2-1.6.0.1-20131031-2 +Redirect gone /Macaulay2/doc/Macaulay2-1.6 +Redirect /Macaulay2/doc/Macaulay2-1.7 http://www.math.uiuc.edu/Macaulay2/doc/Macaulay2-1.9.2 +Redirect gone /Macaulay2/doc/Macaulay2-1.8 +Redirect gone /Macaulay2/doc/Macaulay2-1.8.1 +Redirect gone /Macaulay2/doc/Macaulay2-1.8.2 +Redirect gone /Macaulay2/doc/Macaulay2-1.9 +Redirect gone /Macaulay2/doc/Macaulay2-1.9.1 +Redirect gone /Macaulay2/doc/Macaulay2-1.9.2 +Redirect gone /Macaulay2/doc/Macaulay2-1.10 +Redirect gone /Macaulay2/doc/Macaulay2-1.11 + +Redirect gone /Macaulay2/1.2.99 +Redirect gone /Macaulay2/Downloads/SourceCode/Macaulay2-0.8.60-porting-src.tar.gz +Redirect gone /Macaulay2/Downloads/SourceCode/Macaulay2-0.8.99-porting-src.tar.gz +Redirect gone /Macaulay2/Downloads/SourceCode/Macaulay2-0.9.2-src.tar.gz +Redirect gone /Macaulay2/Downloads/SourceCode/Macaulay2-0.9.20-src.tar.gz +Redirect gone /Macaulay2/Downloads/SourceCode/Macaulay2-0.9.95-src.tar.gz +Redirect gone /Macaulay2/Downloads/SourceCode/Macaulay2-1.0-src.tar.gz + +Redirect /Macaulay2/Documentation/___The_sp__Macaulay_sp2_splanguage.html http://www.math.uiuc.edu/Macaulay2/Documentation/___The_sp__Macaulay2_splanguage.html +Redirect /Macaulay2/Documentation/_a_spfirst_sp__Macaulay_sp2_spsession.html http://www.math.uiuc.edu/Macaulay2/Documentation/_a_spfirst_sp__Macaulay2_spsession.html + + +Redirect /Macaulay2/index-0.9.8.html http://www.math.uiuc.edu/Macaulay2/index.html +Redirect /Macaulay2/index-0.9.9.html http://www.math.uiuc.edu/Macaulay2/index.html +Redirect /Macaulay2/index-0.9.20.html http://www.math.uiuc.edu/Macaulay2/index.html +Redirect /Macaulay2/index-0.9.91.html http://www.math.uiuc.edu/Macaulay2/index.html +Redirect /Macaulay2/index-0.9.92.html http://www.math.uiuc.edu/Macaulay2/index.html +Redirect /Macaulay2/index-0.9.93.html http://www.math.uiuc.edu/Macaulay2/index.html +Redirect /Macaulay2/index-0.9.94.html http://www.math.uiuc.edu/Macaulay2/index.html +Redirect /Macaulay2/index-0.9.95.html http://www.math.uiuc.edu/Macaulay2/index.html +Redirect /Macaulay2/index-0.9.97.html http://www.math.uiuc.edu/Macaulay2/index.html +Redirect /Macaulay2/index-1.0.html http://www.math.uiuc.edu/Macaulay2/index.html +Redirect /Macaulay2/index-1.0.9test.html http://www.math.uiuc.edu/Macaulay2/index.html + +Redirect /Macaulay2/index-1.1.html http://www.math.uiuc.edu/Macaulay2/index.html +Redirect /Macaulay2/1.1 http://www.math.uiuc.edu/Macaulay2/doc/Macaulay2-1.1/share/doc/Macaulay2/Macaulay2Doc/html/index.html +Redirect /Macaulay2/changes-1.1 http://www.math.uiuc.edu/Macaulay2/Changes/1.1/ + +Redirect /Macaulay2/index-1.1.1.html http://www.math.uiuc.edu/Macaulay2/index.html + +Redirect /Macaulay2/index-1.1.99.html http://www.math.uiuc.edu/Macaulay2/index.html + +Redirect /Macaulay2/index-1.2.html http://www.math.uiuc.edu/Macaulay2/index.html +Redirect /Macaulay2/changes-1.2 http://www.math.uiuc.edu/Macaulay2/doc/Macaulay2-1.2/share/doc/Macaulay2/Macaulay2Doc/html/_changes_cm_sp1.2.html +Redirect /Macaulay2/1.2 http://www.math.uiuc.edu/Macaulay2/doc/Macaulay2-1.2/share/doc/Macaulay2/Macaulay2Doc/html/index.html + +Redirect /Macaulay2/index-1.3.html http://www.math.uiuc.edu/Macaulay2/index.html + +# merge some old linux flavors: +Redirect /Macaulay2/Downloads/GNU-Linux/CentOS "http://www.math.uiuc.edu/Macaulay2/Downloads/GNU-Linux/Red Hat Enterprise, CentOS, Scientific Linux" +Redirect /Macaulay2/Downloads/GNU-Linux/RedHat "http://www.math.uiuc.edu/Macaulay2/Downloads/GNU-Linux/Red Hat Enterprise, CentOS, Scientific Linux" +Redirect /Macaulay2/Downloads/GNU-Linux/ScientificLinux "http://www.math.uiuc.edu/Macaulay2/Downloads/GNU-Linux/Red Hat Enterprise, CentOS, Scientific Linux" + +# see http://www.ibm.com/developerworks/xml/library/x-tipapachexhtml/index.html +# RewriteEngine on + +# RewriteLog Macaulay2/rewrite.log +# RewriteLogLevel 0 + +# RewriteCond %{HTTP_USER_AGENT} !MSIE +# RewriteRule ^/Macaulay2/$ - [T=application/xhtml+xml] + +# RewriteCond %{HTTP_USER_AGENT} !MSIE +# this might be a problem, because www.math.uiuc.edu/Macaulay2/ and www.math.uiuc.edu/Macaulay2/index.html get the same file +# RewriteRule ^index.html$ - [T=application/xhtml+xml] + +# RewriteCond %{REQUEST_URI} ^/Macaulay2/index\.html$ diff --git a/.ignore b/.ignore new file mode 100644 index 0000000..e69de29 diff --git a/.title b/.title new file mode 100644 index 0000000..96e87c0 --- /dev/null +++ b/.title @@ -0,0 +1 @@ +Macaulay2 \ No newline at end of file diff --git a/404-pre.html b/404-pre.html new file mode 100644 index 0000000..df2be3c --- /dev/null +++ b/404-pre.html @@ -0,0 +1,14 @@ +

+ The web page or file that you requested does not exist. To report a broken link, + contact Dan Grayson. +

+ + + + diff --git a/404.html b/404.html new file mode 100644 index 0000000..2e7e05c --- /dev/null +++ b/404.html @@ -0,0 +1,183 @@ + + + + + + + File not found + + + + + + + + + + +
+

File not found

+

+ The web page or file that you requested does not exist. To report a broken link, + contact Dan Grayson. +

+ + + + +
+ + + + + + + + + diff --git a/Book/.gitignore b/Book/.gitignore new file mode 100644 index 0000000..e90722f --- /dev/null +++ b/Book/.gitignore @@ -0,0 +1 @@ +/index.html diff --git a/Book/.ignore b/Book/.ignore new file mode 100644 index 0000000..e69de29 diff --git a/Book/ComputationsBook/.gitignore b/Book/ComputationsBook/.gitignore new file mode 100644 index 0000000..6da9054 --- /dev/null +++ b/Book/ComputationsBook/.gitignore @@ -0,0 +1,16 @@ +*.xyc +*.idx +*.aux +*.ilg +*.ind +*.log +*.toc +*.old +*.bbl +*.bux +*.blg +*~ +tmp +log +diffs +undiffs diff --git a/Book/ComputationsBook/FrontMatter/42230--000.pbm b/Book/ComputationsBook/FrontMatter/42230--000.pbm new file mode 100644 index 0000000..4cf5b2c --- /dev/null +++ b/Book/ComputationsBook/FrontMatter/42230--000.pbm @@ -0,0 +1,3 @@ +P4 +1047 1018 +????????G??xx???????????????????x???????????????~?|?0@ ???????????????????????????????  ??`?8??0?<> ?x8<p8 ?<?? ???????????????????????>???????????>???????? ??>???<????'???????????????????>>~|???????>?|?????x8 ? ? ~3 ?  ??@@@??? ????p??>B?8  ???????????????????~?>??>??>????>??|????~>??? >????<???<??8?88?p0x??0 >?x@>8>0>0>p>0`x>pp?>????>~???>?>??>??>??>> ?>@?>?>?>??????`????? ???????????????????? ??0@? 0/`G????? ?@????????????????????????????????????????????????????????????0?p???????????????>???? ?????????? ????"? ?????????????~??>??????????????????????????????????~?????????????????p??? ~???? ~???~ ????~0??<|~?>p?????>?>???>?>?>??>?>>~?????????????????????????????????????????? ??8?<?`?|?|~???????????>??>?????>?~?@????`?`??????????????????????????????????????????????p?????????????????????????????x??p ?p???p???0>?x??`||??????? ????????????????????????~>???|~`8?8~8<|?~??????????????8??????8???????????????????????????????????????????????????????????????`????????x0??> \ No newline at end of file diff --git a/Book/ComputationsBook/FrontMatter/42230--001.pbm b/Book/ComputationsBook/FrontMatter/42230--001.pbm new file mode 100644 index 0000000..f815854 --- /dev/null +++ b/Book/ComputationsBook/FrontMatter/42230--001.pbm @@ -0,0 +1,4 @@ +P4 +2151 943 +???? ?????????>x??~0????@??<???@??'@??@??@????????@??????????` ? pp????> |????_? ?O?@?G@??????|p ?????? ??? ???`??@????`??x`8?`  ?? ~3?? ???@? ? ?x?? ?@x?p@@ @|??p??@?@ ~?p??????? ?????p?? ?>B? ?8  @???>????????@p?`?? ?????3~??????8???? ?@?@????=????????????? ~? ?? <?@?@<???@<??@????????@8?????0p??|?????~>???@?? >??? ?@??<?? +?<@ ?~ ???8?0?8  ?x/ ?88@ /?p0x>  ???/>???0 ?`~??~??x@@?@??8??@???0??@??0?@p @0`x? pp???????????~??????? ??????????????????? ??@???? ? ???' ??# !   ???  ??? p????0?`???? ?????  ??0??? ?? ??? ? ???@?@????A?????`>  ????@? ?0@?? 0/@?`G????? ?@???????????????????c???????????????????????????????????????????????????????????????????????????????????`???????????????????x????????????>????? ?????????????????? ????????0?"?0????p????p?????p??????p?~?p??>?????p????????x????????????>????????????????????????????0???x?????????????????????????????????????????????????p??p? ~???p? ~??????~ ??????~0??????<|~? ??8?>p???????????????????????>???>???~?????~??????????????????????????????~???~???~???~ ???~??~??~??>???>?????>?>??>???????????????????? |??? ?????x?8?<?`????|?|~????????????? ???????? ?????p?????????????????????????|????????????????????????????????????????????????????????????????????????????>???p???????????????????  8?8<8>||???????????????????????|?????????x???p ?>??p???<?p??8`??0>?|x????`8`||????????????????????w?? ????????????????????????????????????????????????????????????????????????<??|?? ????~~`??????<???<??~>?8 ?><???|~ 0?|?p`8?8~??8?8<???>????|?~??????????????????????????????8????????8???????????????????????????????????????????????????????????????????????????????????????????@?????????????????????????>~?~?~???????????????????????????x?0???????????????>?????????????>|  ?0?|?/|???????????????????????????????????@????????????????????????? ??????>~??~??`????<p???????????????????????????????????????0|?????????????????????????????????9???????????????????????????????????????????????????????????????? \ No newline at end of file diff --git a/Book/ComputationsBook/FrontMatter/42230--002.pbm b/Book/ComputationsBook/FrontMatter/42230--002.pbm new file mode 100644 index 0000000..d8a9bd3 Binary files /dev/null and b/Book/ComputationsBook/FrontMatter/42230--002.pbm differ diff --git a/Book/ComputationsBook/FrontMatter/42230--003.pbm b/Book/ComputationsBook/FrontMatter/42230--003.pbm new file mode 100644 index 0000000..4798823 Binary files /dev/null and b/Book/ComputationsBook/FrontMatter/42230--003.pbm differ diff --git a/Book/ComputationsBook/FrontMatter/42230-7XEisenbud.pdf b/Book/ComputationsBook/FrontMatter/42230-7XEisenbud.pdf new file mode 100644 index 0000000..307aef6 Binary files /dev/null and b/Book/ComputationsBook/FrontMatter/42230-7XEisenbud.pdf differ diff --git a/Book/ComputationsBook/FrontMatter/Eisenbud.pdf b/Book/ComputationsBook/FrontMatter/Eisenbud.pdf new file mode 100644 index 0000000..0f29545 Binary files /dev/null and b/Book/ComputationsBook/FrontMatter/Eisenbud.pdf differ diff --git a/Book/ComputationsBook/Makefile b/Book/ComputationsBook/Makefile new file mode 100644 index 0000000..b53b40e --- /dev/null +++ b/Book/ComputationsBook/Makefile @@ -0,0 +1,24 @@ +DIRS := util inputs chapters/* book proposals +default : all +all clean distclean:: + for i in $(DIRS); \ + do if [ "$$i" != chapters/CVS -a -d "$$i" ] ; \ + then $(MAKE) -C $$i $@ || exit 1 ; \ + fi ; \ + done +run: + for i in util chapters/*; \ + do if [ -d "$$i" -a "$$i" != chapters/CVS ] ;\ + then make -C "$$i" $@ || exit 1 ;\ + fi ;\ + done +diffs log: + for i in chapters/*; \ + do if [ -d "$$i" -a "$$i" != chapters/CVS ] ;\ + then make -C "$$i" $@ || exit 1 ;\ + fi ;\ + done +TAGS : always + etags book/*.tex inputs/*.tex chapters/*/*.tex +clean ::; rm -f TAGS +always : diff --git a/Book/ComputationsBook/Makefile.chapter b/Book/ComputationsBook/Makefile.chapter new file mode 100644 index 0000000..133b638 --- /dev/null +++ b/Book/ComputationsBook/Makefile.chapter @@ -0,0 +1,197 @@ +# -*- mode: Makefile -*- + +ifndef MEMLIMIT +MEMLIMIT = 150000 +endif + +DIR := $(shell basename `pwd`) + +UTIL := ../../util +export TEXINPUTS := ../../inputs:$(TEXINPUTS) +export BSTINPUTS := ../../inputs:$(BSTINPUTS) + +all : dvi ps pdf +dvi : $(NAME)-wrapper.dvi +pdf : $(NAME)-wrapper.pdf +ps : $(NAME)-wrapper.ps +psz : $(NAME)-wrapper.ps.gz + +# DVIPSFLAGS = -z +TEX = latex + +SOURCES = Makefile $(NAME).tex papers.bib + +.SUFFIXES: -m2.tex .bux .aux .out .m2 +.PHONY : all dvi pdf ps bak shar +.PRECIOUS : %-m2.tex %.out %.m2 %.bbl + +$(NAME).tgz : $(SOURCES) + tar cfz $@ $^ + +shar : $(NAME).shar +$(NAME).shar: $(SOURCES) + shar $^ >$@ + chmod a+x $@ + +pub : $(NAME).pub +$(NAME).pub : $(NAME)-m2.tex $(NAME)-m2.bbl $(NAME)-m2.aux + shar $^ >$@ + chmod a+x $@ + +bak.home : $(NAME).tgz + scp $(NAME).tgz osmium.home: +bak : $(NAME).tgz + scp1 $(NAME).tgz earth.math.uiuc.edu:math/papers + + +%.gz : % + gzip <$< >$@ + +$(NAME)-wrapper.dvi $(NAME)-wrapper.pdf : $(NAME)-m2.tex $(NAME)-wrapper.tex $(TEXFILES) \ + ../../inputs/book-macros.tex \ + ../../inputs/lncse.cls \ + ../../inputs/merge.tex +$(NAME)-trial-wrapper.aux : Makefile ../../wrapper.sh $(NAME)-m2.tex + @ echo '==================================================================' + @ echo '== making $(DIR)/$@' + @ echo '==================================================================' + NAME="$(NAME)" ../../wrapper.sh /dev/null >$(NAME)-trial-wrapper.tex + + $(TEX) $(NAME)-trial-wrapper.tex +$(NAME)-wrapper.tex : Makefile ../../wrapper.sh $(NAME)-trial-wrapper.aux + @ echo '==================================================================' + @ echo '== making $(DIR)/$@' + @ echo '==================================================================' + NAME="$(NAME)" ../../wrapper.sh $(NAME)-trial-wrapper.aux >$@ +%.m2 : %.tex + @ echo '==================================================================' + @ echo '== making $(DIR)/$@' + @ echo '==================================================================' + $(UTIL)/process $< >$@.tmp + mv $@.tmp $@ +%-m2.tex : %.tex %.out + @ echo '==================================================================' + @ echo '== making $(DIR)/$@' + @ echo '==================================================================' + $(UTIL)/merge $*.tex $*.out >$*-m2.tex.tmp + mv $*-m2.tex.tmp $*-m2.tex +%.out : %.m2 + @ echo '==================================================================' + @ echo '== making $(DIR)/$@, perhaps' + @ echo '==================================================================' + @if [ -f $*.out ] && cmp -s $*.m2 $*.old ; \ + then touch $*.out ; \ + else echo "running M2 on $*.m2, starting at $$(date +%T)"; \ + echo ulimit -v $(MEMLIMIT) '&&' time M2 -x -s -q '-e errorDepth 0' "<$*.m2" ">$*.out.tmp"; \ + ulimit -v 160000 && \ + time nice -19 M2 -x -s -q '-e errorDepth 0' <$*.m2 >$*.out.tmp && \ + mv $*.out.tmp $*.out && \ + cp $*.m2 $*.old ; \ + fi +$(NAME)-wrapper.bux : $(NAME)-m2.tex +%.bux : %.tex + @ echo '==================================================================' + @ echo '== making $(DIR)/$@' + @ echo '==================================================================' + $(TEX) '\scrollmode \input $<' + @if grep "end occurred inside a group" $*.log >/dev/null 2>&1 ; \ + then echo 'Error : end occurred inside a group' >&2 ; \ + echo ' balance those braces' >&2 ; \ + exit 1 ; \ + fi + rm -f $*.dvi + cp $*.aux $*.bux +.PRECIOUS : %.bux %.dvi +%.bbl : %.bux + @ echo '==================================================================' + @ echo '== making $(DIR)/$@' + @ echo '==================================================================' + cp $*.bux $*.aux + if egrep '^.citation' $*.aux >/dev/null 2>&1; \ + then bibtex $*; \ + else cat /dev/null >$@ ; \ + fi +%.dvi : %.tex +%.dvi : %.bbl + @ echo '==================================================================' + @ echo '== making $(DIR)/$@' + @ echo '==================================================================' + $(TEX) '\scrollmode \input $*' + @if grep "end occurred inside a group" $*.log >/dev/null 2>&1 ; \ + then echo 'Error : end occurred inside a group' >&2 ; \ + echo ' balance those braces' >&2 ; \ + exit 1 ; \ + fi + @echo '==================================================================' ; \ + echo '== making $(DIR)/$@' ; \ + echo "makeindex -s ../../lncse-macros/sprmindx.sty -o $*.tmp $* && mv $*.tmp $*.ind" ; \ + makeindex -s ../../lncse-macros/sprmindx.sty -o $*.tmp $* && mv $*.tmp $*.ind ; \ + echo '==================================================================' + @if true || grep "Rerun to get cross-references right." $*.log >/dev/null >&2 ; \ + then echo '=================================================================='; \ + echo '== making $(DIR)/$@ again'; \ + echo '=================================================================='; \ + echo "$(TEX) '\scrollmode \input $*'"; \ + $(TEX) '\scrollmode \input $*'; \ + if grep "end occurred inside a group" $*.log >/dev/null 2>&1 ; \ + then echo 'Error : end occurred inside a group' >&2 ; \ + echo ' balance those braces' >&2 ; \ + exit 1 ; \ + fi ; \ + fi +%.ps : %.dvi + @ echo '==================================================================' + @ echo '== making $(DIR)/$@' + @ echo '==================================================================' + dvips $(DVIPSFLAGS) $< $(OUTPUT_OPTION) + rm -f body.tmp head.tmp +%.pdf : %.tex + @ echo '==================================================================' + @ echo '== making $(DIR)/$@' + @ echo '==================================================================' + pdf$(TEX) '\scrollmode \input $<' + @if grep "end occurred inside a group" $*.log >/dev/null 2>&1 ; \ + then echo 'Error : end occurred inside a group' >&2 ; \ + echo ' balance those braces' >&2 ; \ + exit 1 ; \ + fi + pdf$(TEX) '\scrollmode \input $<' + @if grep "end occurred inside a group" $*.log >/dev/null 2>&1 ; \ + then echo 'Error : end occurred inside a group' >&2 ; \ + echo ' balance those braces' >&2 ; \ + exit 1 ; \ + fi + + +clean : + @ echo '==================================================================' + @ echo '== making $(DIR)/$@' + @ echo '==================================================================' + rm -f *.dvi *.numtex *.log *.xyc *.aux *.nums *.blg *.tmp *.bbl *.ps \ + *.pdf *.bux *.tgz *.shar *-m2.tex $(NAME).m2 *.toc TAGS \ + *.idx *.ilg *.ind diffs log \ + $(NAME).pub $(NAME)-wrapper.tex $(NAME)-trial-wrapper.tex *.ps.gz *.tmp + +distclean : clean + @ echo '==================================================================' + @ echo '== making $(DIR)/$@' + @ echo '==================================================================' + rm -f *.old *.out + +$(NAME).out : $(NAME).m2 + +$(NAME)-wrapper.bbl : papers.bib ../../inputs/springer.bst + +run : $(NAME).out +print : $(NAME)-m2.ps; lpr $< +TAGS : $(NAME)-wrapper.tex + etags $(NAME).tex $(NAME)-wrapper.tex $(TEXFILES) +include ../../Makefile.common + +diffs : $(NAME).tex papers.bib $(NAME).out + ( echo ; echo "differences since the author's final version"; echo; echo; \ + cvs diff -r author-final $^; \ + true) >$@ + +log : $(NAME).tex papers.bib $(NAME).out + cvs log >$@ diff --git a/Book/ComputationsBook/Makefile.common b/Book/ComputationsBook/Makefile.common new file mode 100644 index 0000000..a1818af --- /dev/null +++ b/Book/ComputationsBook/Makefile.common @@ -0,0 +1,5 @@ +find-tex : + @echo $(FILE) is `kpsewhich -format=.tex $(FILE)` >>/tmp/trace + @kpsewhich -format=.tex $(FILE) +find-bib : + @kpsewhich -format=.bib $(FILE) diff --git a/Book/ComputationsBook/README b/Book/ComputationsBook/README new file mode 100644 index 0000000..5fb95c3 --- /dev/null +++ b/Book/ComputationsBook/README @@ -0,0 +1,5 @@ +This directory contains the source code for the book on Macaulay 2 edited by +Eisenbud, Grayson, Stillman, and Sturfels. Type 'make' (with GNU make +installed) to create book/book.dvi. + +To see whether you have GNU make installed, type 'make -v'. diff --git a/Book/ComputationsBook/SEND b/Book/ComputationsBook/SEND new file mode 100755 index 0000000..afb2907 --- /dev/null +++ b/Book/ComputationsBook/SEND @@ -0,0 +1,6 @@ +#! /bin/sh -x + +make diffs log && +cvs ci && +(cd .. ; rsync -av --compress --delete ComputationsBook rhenium.math.uiuc.edu:M2 ) && +make -C ~/BACKUP-REPOSITORY diff --git a/Book/ComputationsBook/TIMES b/Book/ComputationsBook/TIMES new file mode 100644 index 0000000..7e98e9f --- /dev/null +++ b/Book/ComputationsBook/TIMES @@ -0,0 +1,14 @@ +user times for running M2 debug version optimized + +preface 0m00.230s 0m0.230s +programming 0m00.900s 0m0.740s +varieties 0m13.420s 0m11.690s +geometry 0m28.750s 0m22.980s +schemes 1m54.530s 1m28.260s +monomialIdeals 2m44.530s 1m36.770s +exterior-algebra 3m59.560s 2m14.950s +completeIntersections 4m49.280s 2m27.330s +d-modules 4m34.330s 3m25.360s +solving 6m21.970s 5m29.460s +toricHilbertScheme 17m04.850s 12m7.770s +constructions 28m44.630s 17m11.080s diff --git a/Book/ComputationsBook/authors b/Book/ComputationsBook/authors new file mode 100644 index 0000000..b200caa --- /dev/null +++ b/Book/ComputationsBook/authors @@ -0,0 +1,141 @@ +mailing list: + +editors at Springer + +To: Martin Peters +CC: Ruth Allewelt + +----------------------------------------------------------------------------- + +fax numbers: + Luchezar Avramov + Wolfram Decker + Serkan Hosten + Frank Schreyer + Gregory G. Smith + Frank Sottile + Rekha Thomas 206-543-0397 + Fabio Tonoli + Uli Walther 765-494-0548 okayed + David Eisenbud 510-642-8609 okayed + Daniel Grayson 217-333-9576 change 'from' to 'form' + Michael Stillman 33 (0) 4.93.51.79.74 + Bernd Sturmfels + +To: Luchezar Avramov , + Wolfram Decker , + Serkan Hosten , + Frank Schreyer , + Gregory G. Smith , + Frank Sottile , + Rekha Thomas , + Fabio Tonoli , + Uli Walther +CC: David Eisenbud , + Daniel Grayson , + Michael Stillman , + Bernd Sturmfels +CC: Karl-Friedrich Koch +Subject: Macaulay 2 book + +editors: + David Eisenbud + Daniel R. Grayson + Michael E. Stillman + Bernd Sturmfels + +chapters: + + "Algorithms for the Toric Hilbert Scheme", by Mike Stillman, Bernd Sturmfels, Rekha Thomas + Ready by September 8? + Stillman might like to referee Eisenbud-Decker. + + "Computations over complete intersections", Luchezar Avramov, Dan Grayson + There's a chance it'll be ready by Sept 11. + Completely written, except for the final part about the computations. + Lucho has to spend another day checking it over, and then the + authors have to edit it, but Lucho is very busy teaching. + + "Macaulay 2 and the geometry of schemes", Gregory Smith, Bernd Sturmfels + Chapter complete. + + "From enumerative geometry to solving systems of equations", Frank Sottile + Has provided a final draft. There are some things Dan should try to + speed up : "it would be good for rudimentary real root counting and + also the trace form (with signature!) to be implemented + in Macaulay2, at least to some degree." + + "Explicit computations in characteristic zero with D-module theory", Uli Walther + Has provided a final draft. This involves Groebner bases in + noncommutative rings (Weyl algebras), and ends up computing + local cohomology and perhaps deRham cohomology. + [Would be willing to referee Avramov/Grayson, Eisenbud, or Eisenbud/Decker.] + + "Sheaf algorithms using the exterior algebra", David Eisenbud and Wolfram Decker + Final draft provided. + About resolutions over exterior algebras and Beilinson's spectral sequence. + + "Using small fields to construct objects in algebraic geometry", + by Frank Schreyer and Fabio Tonoli. + Final draft provided. + + Serkan Hosten, "Computing with monomial ideals and Scarf complexes". + This would involve extremal behavior of Betti numbers. + He fell ill last weekend. We'll get it by Sep 11! + It is going to be a nice chapter on monomial ideals. + + David Jorgensen, "Computing Support Varieties" + We've invited him to submit his paper for consideration as a chapter, + and he'll submit his paper by Sept 11. + + ----------------------------------------------------------------------------- + + we don't expect these chapters + + David A. Bayer + Is willing to try to come up with a suitable topic. + + David Eisenbud + Is willing to write a chapter on "Jet spaces of algebraic + varieties". It concerns whether higher jet spaces are + irreducible, and is related to whether the singularities + are rational singularities. + + Sorin Popescu + Is willing to write a chapter perhaps on secant varieties of + canonically embedded curves, or graded Betti numbers of + finite subsets of projective space (computation of the + canonical module, Gale transform). + + +royalty shares ?: + +1 for each author, 1 for each editor, 1 for each author of Macaulay 2 + + +----------------------------------------------------------------------------- + +Editor addresses: + + David Eisenbud + Mathematical Sciences Research Institute + 1000 Centennial Drive + Berkeley, CA 94720, USA, + and + Department of Mathematics + University of California at Berkeley + Berkeley, CA 94720, USA + + Bernd Sturmfels + Department of Mathematics + University of California + Berkeley, California 94720, USA + + + Mike Stillman + Departement de Mathematiques + Universite de Nice + Parc Valrose + 06108 Nice Cedex 02 + France + diff --git a/Book/ComputationsBook/book/Makefile b/Book/ComputationsBook/book/Makefile new file mode 100644 index 0000000..25c9cba --- /dev/null +++ b/Book/ComputationsBook/book/Makefile @@ -0,0 +1,176 @@ +CHAPTERS := \ + preface/chapter \ + varieties/chapter \ + geometry/chapter \ + programming/chapter \ + schemes/chapter \ + monomialIdeals/chapter \ + solving/solving \ + completeIntersections/ci \ + toricHilbertScheme/chapter \ + exterior-algebra/chapter \ + constructions/chapter \ + d-modules/chapter +CHAPTERFILES := $(foreach c,$(CHAPTERS), ../chapters/$(c)-m2.tex ../chapters/$(c)-wrapper.bbl) + +all : book.dvi book.pdf book.ps book-reduced.ps book.shar book.words.ps + @echo done + +once: book.tex; latex '\scrollmode \input book' + +book.pdf book.dvi : book.tex ../inputs/lncse.cls ../inputs/merge.tex +book.tex : ../inputs/book-macros.tex $(CHAPTERFILES) book.sh addresses.tex + ./book.sh >$@ + +# DVIPSFLAGS = -z + +# see share/texmf/metafont/misc/modes.mf for metafont modes like this one: +DVIPSFLAGS += -D 1200 -mode ljfzzz + +CC := gcc +TEX = latex +export TEXINPUTS := ../inputs:../chapters/d-modules:../chapters/solving:../chapters/monomialIdeals:$(TEXINPUTS) + +.SUFFIXES: .aux +.PHONY : all bak shar +.PRECIOUS : %.dvi + +# compressing a file +%.gz : % + gzip <$< >$@ + +# making indices +%.ind : %.idx + @if [ -f $@ ] && cmp -s $< $*-old.idx ; \ + then : ; \ + else echo '==================================================================' ; \ + echo '== making $@' ; \ + echo "makeindex -s ../lncse-macros/sprmindx.sty -o $*.tmp $* && mv $*.tmp $@ && cp $< $*-old.idx" ; \ + makeindex -s ../lncse-macros/sprmindx.sty -o $*.tmp $* && mv $*.tmp $@ && cp $< $*-old.idx ; \ + echo '==================================================================' ; \ + fi + +# running tex +%.dvi : %.tex %.ind + @ echo '==================================================================' + @ echo '== making $@' + if [ -f $*.idx ] ; then cp $*.idx $*-old.idx; else touch $*-old.idx; fi + $(TEX) '\scrollmode \input $*' + @ echo '==================================================================' + @if cmp -s $*.idx $*-old.idx ; \ + then : ; \ + else echo '=================================================================='; \ + echo '== making $*.ind and $@ again'; \ + echo "makeindex -s ../lncse-macros/sprmindx.sty -o $*.tmp $* && mv $*.tmp $*.ind" ; \ + makeindex -s ../lncse-macros/sprmindx.sty -o $*.tmp $* && mv $*.tmp $*.ind ; \ + echo "$(TEX) '\scrollmode \input $*'"; \ + $(TEX) '\scrollmode \input $*'; \ + echo '=================================================================='; \ + fi + @if true || grep -s "Rerun to get cross-references right." $*.log; \ + then echo '=================================================================='; \ + echo '== making $@ again'; \ + echo "$(TEX) '\scrollmode \input $*'"; \ + $(TEX) '\scrollmode \input $*'; \ + echo '=================================================================='; \ + fi + +# postscript +%.ps : %.dvi + @ echo '==================================================================' + @ echo '== making $@' + dvips $(DVIPSFLAGS) $< $(OUTPUT_OPTION) + rm -f body.tmp head.tmp + @ echo '==================================================================' + +# acrobat +%.pdf : %.tex + @ echo '==================================================================' + @ echo '== making $@' + pdf$(TEX) '\scrollmode \input $*' + pdf$(TEX) '\scrollmode \input $*' + @ echo '==================================================================' + +# %.pdf : %.ps +# @ echo '==================================================================' +# @ echo '== making $@' +# ps2pdf $< +# @ echo '==================================================================' + +# dvired +%-reduced-3.ps : %.dvi + @ echo '==================================================================' + @ echo '== making $@' + dvired $(DVIPSFLAGS) $< $(OUTPUT_OPTION) + @ echo '==================================================================' + +# dvired +%-reduced-2.ps : %.ps + @ echo '==================================================================' + @ echo '== making $@' + mpage -2 $< >$@ + @ echo '==================================================================' + +# pstops reduction +%-reduced.ps : %.ps Makefile + @ echo '==================================================================' + @ echo '== making $@' + pstops '2:0L@.9(9.45in,-.6in)+1L@.9(9.45in,4.1in)' $< >$@ + @ echo '==================================================================' + + +# compression +%.gz : % + gzip <$< >$@ + +# miscellaneous +print : book.ps + lpr $< + +clean : + @ echo '==================================================================' + @ echo '== making $@' + rm -rf *.dvi *.numtex *.nums *.blg *.tmp *.ps *.pdf *.tgz *.shar *.old *.*pk \ + *.idx *.toc *.log *.xyc *.aux *.bbl *.lof *.lot *.glo *.ind *.ilg *.out \ + *.pdf.gz *.ps.gz tmp + @ echo '==================================================================' + +distclean : clean + +include ../Makefile.common + +book.shar : book.mst book.tex ../inputs/lncse.cls ../lncse-macros/sprmindx.sty \ + ../inputs/xispace.sty README book.ind book.aux book.toc \ + ../inputs/diagrams.tex ../inputs/springer.bst \ + ../chapters/solving/Y25.eps \ + ../chapters/monomialIdeals/octahedron.eps \ + ../chapters/monomialIdeals/standardpairs-fixed.eps \ + ../inputs/merge.tex + mkdir /tmp/book-$$$$ ; \ + cp $^ /tmp/book-$$$$ ; \ + (cd /tmp/book-$$$$ ; shar *) >$@ ; \ + rm -rf /tmp/book-$$$$ + +test-shar : book.shar + rm -rf tmp + mkdir -p tmp && cd tmp && sh ../book.shar && sh -x README + +CODEFILES := $(foreach c,$(CHAPTERS), ../chapters/$(c).m2) +book.words : $(CODEFILES) ../../emacs/M2-symbols + @ echo '==================================================================' + @ echo '== making $@' + cat $(CODEFILES) | \ + ../util/words | \ + sort | uniq | \ + join - ../../emacs/M2-symbols >$@ + wc -l book.words + @ echo '==================================================================' + +book.words.ps : book.words + @ echo '==================================================================' + @ echo '== making $@' + enscript --copies=3 --columns=4 -o $@ $< + @ echo '==================================================================' + +test-print.ps : book.dvi + dvips $(DVIPSFLAGS) -o $@ $^ -n 4 -p 82 diff --git a/Book/ComputationsBook/book/README b/Book/ComputationsBook/book/README new file mode 100755 index 0000000..ddb6a93 --- /dev/null +++ b/Book/ComputationsBook/book/README @@ -0,0 +1,5 @@ +# commands needed to create this book: + +latex book +makeindex -s sprmindx.sty book +latex book diff --git a/Book/ComputationsBook/book/Y25.eps b/Book/ComputationsBook/book/Y25.eps new file mode 120000 index 0000000..60c56cd --- /dev/null +++ b/Book/ComputationsBook/book/Y25.eps @@ -0,0 +1 @@ +../chapters/solving/Y25.eps \ No newline at end of file diff --git a/Book/ComputationsBook/book/addresses.tex b/Book/ComputationsBook/book/addresses.tex new file mode 100644 index 0000000..3d9a2a5 --- /dev/null +++ b/Book/ComputationsBook/book/addresses.tex @@ -0,0 +1,175 @@ + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% +%%%%% addresses.tex +%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\twocolumn +\bgroup + + \tracingpages=1 + + \chapter*{List of Contributors} + \addcontentsline{toc}{section}{List of Contributors} + \parindent=0pt + \font\afont = cmr8 \afont \baselineskip=9pt + \font\bfont = cmbx8 + \def\addr#1{% + \vskip 12pt + \bgroup + \catcode`\~=\the\catcode`a + \catcode`\@=\the\catcode`a + \obeylines + {\bfont #1}% + \vskip 2pt + } + \def\endaddr{\egroup} + + \def\aspace{\vskip 0 pt plus 5 pt minus 3 pt} + + \vbox to 432 pt { + + \addr{Luchezar L. Avramov} + Department of Mathematics + Purdue University + West Lafayette, IN 47907, USA + avramov@math.purdue.edu + www.math.purdue.edu/~avramov/ + \endaddr + + \aspace + + \addr{Wolfram Decker} + FB Mathematik + Universit\"at des Saarlandes + 66041 Saarbr\"ucken, Germany + decker@math.uni-sb.de + loge.math.uni-sb.de/~agdecker/ + \endaddr + + \aspace + + \addr{David Eisenbud} + Mathematical Sciences Research Institute + 1000 Centennial Drive + Berkeley, CA 94720, USA, + and + Department of Mathematics + University of California at Berkeley + Berkeley, CA 94720, USA + de@msri.org + www.msri.org/people/staff/de/ + \endaddr + + \aspace + + \addr{Daniel R. Grayson} + Department of Mathematics + University of Illinois at Urbana-Champaign + Urbana, IL 61801, USA + dan@math.uiuc.edu + www.math.uiuc.edu/~dan/ + \endaddr + + \aspace + + \addr{Serkan Ho\c{s}ten} + Department of Mathematics + San Francisco State University + San Francisco, CA 94132, USA + serkan@math.sfsu.edu + \endaddr + + \aspace + + \addr{Frank-Olaf Schreyer} + Fakult\"at f\"ur Mathematik und Physik + Universit\"at Bayreuth + 95440 Bayreuth, Germany + frank.schreyer@uni-bayreuth.de + \endaddr + + } + + \vfill\eject + + \vbox to 432 pt { + + \addr{Gregory G. Smith} + Department of Mathematics + Barnard College, Columbia University + New York, NY 10027, USA + ggsmith@math.berkeley.edu + \endaddr + + \aspace + + \addr{Frank Sottile} + Department of Mathematics and Statistics + University of Massachusetts, Amherst + Amherst, MA 01003, USA + sottile@math.umass.edu + www.math.umass.edu/~sottile/ + \endaddr + + \aspace + + \addr{Michael Stillman} + Department of Mathematics + Cornell University + Ithaca, NY 14853, USA + mike@math.cornell.edu + \endaddr + + \aspace + + \addr{Bernd Sturmfels} + Department of Mathematics + University of California + Berkeley, California 94720, USA + bernd@math.berkeley.edu + www.math.berkeley.edu/~bernd/ + \endaddr + + \aspace + + \addr{Rekha Thomas} + Department of Mathematics + University of Washington + Seattle, WA 98195, USA + thomas@math.washington.edu + www.math.washington.edu/~thomas/ + \endaddr + + \aspace + + \addr{Fabio Tonoli} + Mathematisches Institut + Georg--August Universit\"at + 37073 G\"ottingen, Germany + tonoli@uni-math.gwdg.de + \endaddr + + \aspace + + \addr{Uli Walther} + Department of Mathematics + Purdue University + West Lafayette, IN 47907, USA + walther@math.purdue.edu + www.math.purdue.edu/~walther/ + \endaddr + + } + +\egroup +\vfill\eject +\onecolumn + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% +%%%%% end of addresses.tex +%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Book/ComputationsBook/book/book-reduced.ps b/Book/ComputationsBook/book/book-reduced.ps new file mode 100644 index 0000000..f049543 Binary files /dev/null and b/Book/ComputationsBook/book/book-reduced.ps differ diff --git a/Book/ComputationsBook/book/book.dvi b/Book/ComputationsBook/book/book.dvi new file mode 100644 index 0000000..3435010 Binary files /dev/null and b/Book/ComputationsBook/book/book.dvi differ diff --git a/Book/ComputationsBook/book/book.mst b/Book/ComputationsBook/book/book.mst new file mode 100644 index 0000000..2ad716b --- /dev/null +++ b/Book/ComputationsBook/book/book.mst @@ -0,0 +1 @@ +group_skip "" diff --git a/Book/ComputationsBook/book/book.pdf b/Book/ComputationsBook/book/book.pdf new file mode 100644 index 0000000..f31e985 Binary files /dev/null and b/Book/ComputationsBook/book/book.pdf differ diff --git a/Book/ComputationsBook/book/book.ps b/Book/ComputationsBook/book/book.ps new file mode 100644 index 0000000..095a837 Binary files /dev/null and b/Book/ComputationsBook/book/book.ps differ diff --git a/Book/ComputationsBook/book/book.sh b/Book/ComputationsBook/book/book.sh new file mode 100755 index 0000000..744db10 --- /dev/null +++ b/Book/ComputationsBook/book/book.sh @@ -0,0 +1,157 @@ +#! /bin/sh +# a shell script to manufacture book.tex + +cat <<'EOF' +% This tex file has been produced automatically, do not edit. +% Title: Computations in algebraic geometry with Macaulay 2 +\def\editors{Editors: D. Eisenbud, D. Grayson, M. Stillman, and B. Sturmfels} +\documentclass[runningheads]{lncse} + \usepackage{makeidx,multicol}\makeindex + \def\rhpage{\ifodd\value{page}\else\thispagestyle{empty}\null\vfill\eject\fi} +EOF +cat ../inputs/book-macros.tex +cat <<'EOF' + \begin{document} + \frontmatter + + % \hypersetup{ + % pdftitle=Computations in algebraic geometry with Macaulay 2 + % pdfsubject=Macaulay 2, + % pdfkeywords=computations -- syzygies -- Macaulay 2, + % pdfauthor=\editors} + + \thispagestyle{empty}\null + \vskip 2 in + \centerline{\Large\textbf{Computations in algebraic geometry}} + \bigskip + \centerline{\Large\textbf{with \textsl{Macaulay 2}}} + \bigskip + \bigskip + \bigskip + \centerline{\editors} + \vfill\eject + \rhpage + \pagenumbering{roman} + \makeatletter \c@page=5 \makeatother +EOF + +############################################################################# + +for i in preface/chapter +do i=../chapters/$i + cat <. +# Source directory was `/tmp/book-19128'. +# +# Existing files will *not* be overwritten unless `-c' is specified. +# +# This shar contains: +# length mode name +# ------ ---------- ------------------------------------------ +# 93 -rwxr-xr-x README +# 4428 -rw-r--r-- Y25.eps +# 35562 -rw-r--r-- book.aux +# 17907 -rw-r--r-- book.ind +# 14 -rw-r--r-- book.mst +# 915932 -rw-r--r-- book.tex +# 11429 -rw-r--r-- book.toc +# 116120 -rw-r--r-- diagrams.tex +# 35780 -rw-r--r-- lncse.cls +# 1324 -rw-r--r-- merge.tex +# 3927 -rw-r--r-- octahedron.eps +# 19579 -rw-r--r-- springer.bst +# 78 -rw-r--r-- sprmindx.sty +# 7013 -rw-r--r-- standardpairs-fixed.eps +# 1527 -rw-r--r-- xispace.sty +# +save_IFS="${IFS}" +IFS="${IFS}:" +gettext_dir=FAILED +locale_dir=FAILED +first_param="$1" +for dir in $PATH +do + if test "$gettext_dir" = FAILED && test -f $dir/gettext \ + && ($dir/gettext --version >/dev/null 2>&1) + then + set `$dir/gettext --version 2>&1` + if test "$3" = GNU + then + gettext_dir=$dir + fi + fi + if test "$locale_dir" = FAILED && test -f $dir/shar \ + && ($dir/shar --print-text-domain-dir >/dev/null 2>&1) + then + locale_dir=`$dir/shar --print-text-domain-dir` + fi +done +IFS="$save_IFS" +if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED +then + echo=echo +else + TEXTDOMAINDIR=$locale_dir + export TEXTDOMAINDIR + TEXTDOMAIN=sharutils + export TEXTDOMAIN + echo="$gettext_dir/gettext -s" +fi +if touch -am -t 200112312359.59 $$.touch >/dev/null 2>&1 && test ! -f 200112312359.59 -a -f $$.touch; then + shar_touch='touch -am -t $1$2$3$4$5$6.$7 "$8"' +elif touch -am 123123592001.59 $$.touch >/dev/null 2>&1 && test ! -f 123123592001.59 -a ! -f 123123592001.5 -a -f $$.touch; then + shar_touch='touch -am $3$4$5$6$1$2.$7 "$8"' +elif touch -am 1231235901 $$.touch >/dev/null 2>&1 && test ! -f 1231235901 -a -f $$.touch; then + shar_touch='touch -am $3$4$5$6$2 "$8"' +else + shar_touch=: + echo + $echo 'WARNING: not restoring timestamps. Consider getting and' + $echo "installing GNU \`touch', distributed in GNU File Utilities..." + echo +fi +rm -f 200112312359.59 123123592001.59 123123592001.5 1231235901 $$.touch +# +if mkdir _sh19132; then + $echo 'x -' 'creating lock directory' +else + $echo 'failed to create lock directory' + exit 1 +fi +# ============= README ============== +if test -f 'README' && test "$first_param" != -c; then + $echo 'x -' SKIPPING 'README' '(file already exists)' +else + $echo 'x -' extracting 'README' '(text)' + sed 's/^X//' << 'SHAR_EOF' > 'README' && +# commands needed to create this book: +X +latex book +makeindex -s sprmindx.sty book +latex book +SHAR_EOF + (set 20 01 05 25 13 55 08 'README'; eval "$shar_touch") && + chmod 0755 'README' || + $echo 'restore of' 'README' 'failed' + if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ + && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then + md5sum -c << SHAR_EOF >/dev/null 2>&1 \ + || $echo 'README:' 'MD5 check failed' +354647e473969759aade699acd96dd83 README +SHAR_EOF + else + shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'README'`" + test 93 -eq "$shar_count" || + $echo 'README:' 'original size' '93,' 'current size' "$shar_count!" + fi +fi +# ============= Y25.eps ============== +if test -f 'Y25.eps' && test "$first_param" != -c; then + $echo 'x -' SKIPPING 'Y25.eps' '(file already exists)' +else + $echo 'x -' extracting 'Y25.eps' '(text)' + sed 's/^X//' << 'SHAR_EOF' > 'Y25.eps' && +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: Y25.eps +%%Creator: fig2dev Version 3.2 Patchlevel 0-beta3 +%%CreationDate: Thu Jul 13 05:18:30 2000 +%%For: sottile@schubert (Frank Sottile,,,,) +%%Orientation: Portrait +%%BoundingBox: 0 0 125 237 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def +X +end +save +-27.0 298.0 translate +1 -1 scale +X +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor +X 4 -2 roll dup 1 exch sub 3 -1 roll mul add +X 4 -2 roll dup 1 exch sub 3 -1 roll mul add +X 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} +X bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul +X 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def +%%EndProlog +X +$F2psBegin +10 setmiterlimit +n -1000 5951 m -1000 -1000 l 3526 -1000 l 3526 5951 l cp clip +X 0.06000 0.06000 sc +% Polyline +15.000 slw +n 1800 2400 m 600 3600 l 1200 4200 l gs col1 s gr +% Polyline +n 600 1200 m 2400 3000 l 600 4800 l gs col1 s gr +% Polyline +n 1200 1800 m 600 2400 l 1800 3600 l gs col1 s gr +% Polyline +0.000 slw +n 832 3150 m 2400 3150 l 2400 2827 l 832 2827 l cp gs col7 1.00 shd ef gr +% Polyline +n 525 3750 m 2093 3750 l 2093 3427 l 525 3427 l cp gs col7 1.00 shd ef gr +% Polyline +n 525 2550 m 2093 2550 l 2093 2227 l 525 2227 l cp gs col7 1.00 shd ef gr +% Polyline +n 675 1950 m 2243 1950 l 2243 1627 l 675 1627 l cp gs col7 1.00 shd ef gr +% Polyline +n 525 1350 m 2093 1350 l 2093 1027 l 525 1027 l cp gs col7 1.00 shd ef gr +% Polyline +n 675 4350 m 2243 4350 l 2243 4027 l 675 4027 l cp gs col7 1.00 shd ef gr +% Polyline +n 525 4950 m 2093 4950 l 2093 4627 l 525 4627 l cp gs col7 1.00 shd ef gr +% Polyline +15.000 slw +n 1700 2515 m 1900 2515 l gs col8 s gr +% Polyline +n 475 2515 m 685 2515 l gs col8 s gr +/Times-Roman ff 270.00 scf sf +450 4875 m +gs 1 -1 sc (01) col0 sh gr +/Times-Roman ff 270.00 scf sf +1050 4275 m +gs 1 -1 sc (02) col0 sh gr +/Times-Roman ff 270.00 scf sf +1650 3675 m +gs 1 -1 sc (03) col0 sh gr +/Times-Roman ff 270.00 scf sf +2250 3075 m +gs 1 -1 sc (04) col0 sh gr +/Times-Roman ff 270.00 scf sf +450 3675 m +gs 1 -1 sc (12) col0 sh gr +/Times-Roman ff 270.00 scf sf +1050 3075 m +gs 1 -1 sc (13) col0 sh gr +/Times-Roman ff 270.00 scf sf +1650 2475 m +gs 1 -1 sc (14) col0 sh gr +/Times-Roman ff 270.00 scf sf +450 2475 m +gs 1 -1 sc (23) col0 sh gr +/Times-Roman ff 270.00 scf sf +1050 1875 m +gs 1 -1 sc (24) col0 sh gr +/Times-Roman ff 270.00 scf sf +450 1275 m +gs 1 -1 sc (34) col0 sh gr +$F2psEnd +rs +SHAR_EOF + (set 20 01 05 25 13 55 08 'Y25.eps'; eval "$shar_touch") && + chmod 0644 'Y25.eps' || + $echo 'restore of' 'Y25.eps' 'failed' + if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ + && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then + md5sum -c << SHAR_EOF >/dev/null 2>&1 \ + || $echo 'Y25.eps:' 'MD5 check failed' +febe7f1de37503420a77580c2124abdb Y25.eps +SHAR_EOF + else + shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'Y25.eps'`" + test 4428 -eq "$shar_count" || + $echo 'Y25.eps:' 'original size' '4428,' 'current size' "$shar_count!" + fi +fi +# ============= book.aux ============== +if test -f 'book.aux' && test "$first_param" != -c; then + $echo 'x -' SKIPPING 'book.aux' '(file already exists)' +else + $echo 'x -' extracting 'book.aux' '(text)' + sed 's/^X//' << 'SHAR_EOF' > 'book.aux' && +\relax +\bibstyle{springer} +\@writefile{toc}{\contentsline {section}{Preface}{v}} +\@writefile{toc}{\contentsline {section}{List of Contributors}{xv}} +\@writefile{toc}{\contentsline {part}{Part I\hspace {1em}Introducing {\textsl {Macaulay\nobreakspace {}2}}\xispace }{1}} +\citation{CLO1} +\citation{CLO2} +\citation{CLO1} +\citation{CLO1} +\@writefile{toc}{\contentsline {title}{Ideals, Varieties and {\textsl {Macaulay\nobreakspace {}2}}\xispace }{3}} +\@writefile{toc}{\processAuthors {Bernd Sturmfels\unskip {}}} +\@writefile{toc}{\contentsline {section}{\numberline {1} A Curve in Affine Three-Space}{3}} +\citation{CLO2} +\citation{CLO1} +\citation{CLO1} +\@writefile{toc}{\contentsline {section}{\numberline {2} Intersecting Our Curve With a Surface}{4}} +\citation{CLO2} +\citation{CLO1} +\citation{CLO1} +\@writefile{toc}{\contentsline {section}{\numberline {3} Changing the Ambient Polynomial Ring}{6}} +\citation{CLO1} +\citation{CLO1} +\@writefile{toc}{\contentsline {section}{\numberline {4} Monomials Under the Staircase}{8}} +\citation{CLO1} +\citation{MS} +\citation{CLO2} +\citation{CLO2} +\@writefile{toc}{\contentsline {section}{\numberline {5} Pennies, Nickels, Dimes and Quarters}{12}} +\citation{CLO2} +\bibcite{CLO1}{1} +\bibcite{CLO2}{2} +\bibcite{MS}{3} +\@writefile{toc}{\contentsline {section}{References}{15}} +\citation{Hartshorne} +\citation{Harris} +\@writefile{toc}{\contentsline {title}{Projective Geometry and Homological Algebra}{17}} +\@writefile{toc}{\processAuthors {David Eisenbud\unskip {}}} +\@writefile{toc}{\contentsline {section}{\numberline {1} The Twisted Cubic}{18}} +\citation{Hartshorne} +\@writefile{toc}{\contentsline {section}{\numberline {2} The Cotangent Bundle of ${\@mathbb P}^3$}{20}} +\citation{s1} +\citation{Hartshorne} +\citation{eCA} +\@writefile{toc}{\contentsline {section}{\numberline {3} The Cotangent Bundle of a Projective Variety}{24}} +\citation{Hartshorne} +\@writefile{toc}{\contentsline {section}{\numberline {4} Intersections by Serre's Method}{26}} +\citation{Serre} +\@writefile{toc}{\contentsline {section}{\numberline {5} A Mystery Variety in ${\@mathbb P}^3$}{28}} +\citation{gl} +\citation{s} +\citation{ak} +\citation{s-d} +\citation{Hartshorne} +\citation{ds} +\citation{adhpr} +\@writefile{toc}{\contentsline {section}{Appendix A. How the ``Mystery Variety'' was Made}{37}} +\newlabel{How}{{A}{37}} +\bibcite{ak}{1} +\bibcite{adhpr}{2} +\bibcite{ds}{3} +\bibcite{eCA}{4} +\bibcite{gl}{5} +\bibcite{Harris}{6} +\bibcite{Hartshorne}{7} +\bibcite{s-d}{8} +\bibcite{s}{9} +\bibcite{s1}{10} +\bibcite{Serre}{11} +\@writefile{toc}{\contentsline {section}{References}{40}} +\citation{M2} +\@writefile{toc}{\contentsline {title}{Data Types, Functions, and Programming}{41}} +\@writefile{toc}{\processAuthors {Daniel R. Grayson\unskip {} \and Michael E. Stillman\unskip {}}} +\@writefile{toc}{\contentsline {section}{\numberline {1} Basic Data Types}{41}} +\@writefile{toc}{\contentsline {section}{\numberline {2} Control Structures}{44}} +\@writefile{toc}{\contentsline {section}{\numberline {3} Input and Output}{46}} +\@writefile{toc}{\contentsline {section}{\numberline {4} Hash Tables}{48}} +\citation{M2} +\@writefile{toc}{\contentsline {section}{\numberline {5} Methods}{52}} +\citation{M2} +\bibcite{M2}{1} +\@writefile{toc}{\contentsline {section}{\numberline {6} Pointers to the Source Code}{53}} +\@writefile{toc}{\contentsline {section}{References}{53}} +\citation{SC:EH} +\citation{SC:EH} +\@writefile{toc}{\contentsline {title}{Teaching the Geometry of Schemes}{55}} +\@writefile{toc}{\processAuthors {Gregory G.\nobreakspace {}Smith \and Bernd Sturmfels}} +\@writefile{toc}{\contentsline {section}{\numberline {1} Distinguished Open Sets}{55}} +\@writefile{toc}{\contentsline {section}{\numberline {2} Irreducibility}{56}} +\citation{SC:CLO} +\citation{SC:CV} +\citation{SC:CLO2} +\@writefile{toc}{\contentsline {section}{\numberline {3} Singular Points}{58}} +\citation{SC:EH} +\citation{SC:CLO2} +\citation{SC:EH} +\@writefile{toc}{\contentsline {section}{\numberline {4} Fields of Definition}{60}} +\citation{SC:EH} +\citation{SC:EH} +\@writefile{toc}{\contentsline {section}{\numberline {5} Multiplicity}{61}} +\citation{SC:CLO2} +\citation{SC:EH} +\@writefile{toc}{\contentsline {section}{\numberline {6} Flat Families}{62}} +\citation{SC:EH} +\citation{SC:EH} +\citation{SC:EH} +\citation{SC:E} +\@writefile{toc}{\contentsline {section}{\numberline {7} B\'{e}zout's Theorem}{63}} +\citation{SC:EH} +\citation{SC:EH} +\@writefile{toc}{\contentsline {section}{\numberline {8} Constructing Blow-ups}{64}} +\citation{SC:EH} +\@writefile{toc}{\contentsline {section}{\numberline {9} A Classic Blow-up}{65}} +\citation{SC:H} +\citation{SC:EH} +\@writefile{toc}{\contentsline {section}{\numberline {10} Fano Schemes}{68}} +\bibcite{SC:CV}{1} +\bibcite{SC:CLO}{2} +\bibcite{SC:CLO2}{3} +\bibcite{SC:E}{4} +\bibcite{SC:EH}{5} +\bibcite{SC:H}{6} +\@writefile{toc}{\contentsline {section}{References}{70}} +\@writefile{toc}{\contentsline {part}{Part II\hspace {1em}Mathematical Computations}{71}} +\@writefile{toc}{\contentsline {title}{Monomial Ideals}{73}} +\@writefile{toc}{\processAuthors {Serkan Ho\c {s}ten \and Gregory G.\nobreakspace {}Smith }} +\@writefile{toc}{\contentsline {section}{\numberline {1} The Basics of Monomial Ideals}{74}} +\citation{MR98h:05001} +\citation{MR95h:13020} +\citation{MR96a:52011} +\citation{MR98h:05001} +\citation{MR89m:52009} +\citation{MR96a:52011} +\citation{MR95h:13020} +\citation{MR98h:05001} +\citation{MR96a:52011} +\citation{MR96h:05213} +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces The octahedron}}{77}} +\@writefile{toc}{\contentsline {section}{\numberline {2} Primary Decomposition}{77}} +\citation{M} +\citation{MR1779598} +\citation{M} +\citation{MR94f:13018} +\citation{MR80g:68056} +\citation{MR80g:68056} +\newlabel{lem:graphideal}{{2.3}{81}} +\newlabel{pro:complexity}{{2.4}{81}} +\citation{MR97a:13001} +\citation{MR91m:14076} +\citation{MR97b:13034} +\citation{MR95h:13020} +\citation{MR91b:13031} +\citation{MR99c:13004} +\citation{MR2000a:13010} +\citation{MR96i:13029} +\@writefile{toc}{\contentsline {section}{\numberline {3} Standard Pairs}{83}} +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Staircase diagram for $I = \delimiter "426830A xy^3z, xy^2z^2, y^3z^2, y^2z^3 \delimiter "526930B $}}{83}} +\newlabel{std-ex}{{3.1}{83}} +\citation{MR96i:13029} +\citation{MR2000f:13052} +\citation{MR1734566} +\citation{MR96i:13029} +\citation{MR97b:13034} +\citation{MR2000b:13037} +\citation{MR97b:13034} +\citation{MR99m:13040} +\@writefile{toc}{\contentsline {section}{\numberline {4} Generic Initial Ideals}{89}} +\citation{MR99m:13040} +\newlabel{galligo}{{4.1}{90}} +\citation{MR99m:13040} +\citation{MR97a:13001} +\citation{MR99g:14031} +\citation{MR26:3566} +\citation{MR81f:14025a} +\citation{MR97g:14003} +\citation{MR97g:14003} +\citation{MR97a:13001} +\citation{MR97g:14003} +\citation{MR35:4232} +\citation{MR97g:14003} +\citation{MR98m:14003} +\citation{MR97g:14003} +\citation{MR2000b:13037} +\@writefile{toc}{\contentsline {section}{\numberline {5} The Chain Property}{95}} +\citation{MR1769661} +\citation{MR1769661} +\citation{MR97b:13034} +\citation{Altmann} +\citation{Altmann} +\citation{MR97b:13034} +\citation{Hosten-Maclagan} +\bibcite{MR81f:14025a}{1} +\bibcite{Altmann}{2} +\bibcite{MR94f:13018}{3} +\bibcite{MR96h:05213}{4} +\bibcite{MR89m:52009}{5} +\bibcite{MR95h:13020}{6} +\bibcite{MR97a:13001}{7} +\bibcite{MR80g:68056}{8} +\bibcite{MR99m:13040}{9} +\bibcite{MR26:3566}{10} +\bibcite{MR99g:14031}{11} +\bibcite{MR35:4232}{12} +\bibcite{Hosten-Maclagan}{13} +\bibcite{MR2000b:13037}{14} +\bibcite{MR2000f:13052}{15} +\bibcite{M}{16} +\bibcite{MR1779598}{17} +\bibcite{MR1769661}{18} +\bibcite{MR2000a:13010}{19} +\@writefile{toc}{\contentsline {section}{References}{99}} +\bibcite{MR98m:14003}{20} +\bibcite{MR97g:14003}{21} +\bibcite{MR1734566}{22} +\bibcite{MR99c:13004}{23} +\bibcite{MR98h:05001}{24} +\bibcite{MR91m:14076}{25} +\bibcite{MR97b:13034}{26} +\bibcite{MR96i:13029}{27} +\bibcite{MR91b:13031}{28} +\bibcite{MR96a:52011}{29} +\citation{SO:Fu84a} +\citation{SO:Bernstein} +\@writefile{toc}{\contentsline {title}{From Enumerative Geometry to Solving Systems of Polynomial Equations}{101}} +\@writefile{toc}{\processAuthors {Frank Sottile\unskip {}}} +\@writefile{toc}{\contentsline {section}{\numberline {1} Introduction}{101}} +\newlabel{ex:one}{{1.2}{102}} +\citation{SO:CCS,SO:CLO92} +\citation{SO:MR97a:13001} +\@writefile{toc}{\contentsline {section}{\numberline {2} Solving Systems of Polynomials}{103}} +\newlabel{eq:system}{{1}{103}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1} Excess Intersection}{103}} +\newlabel{ex:two}{{2.1}{103}} +\citation{SO:BMMT} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2} Elimination, Rationality, and Solving}{104}} +\newlabel{triangular}{{2}{104}} +\newlabel{tri_roots}{{3}{105}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3} Solving with Linear Algebra}{105}} +\newlabel{eigenv}{{4}{106}} +\citation{SO:RS98,SO:So_shap-www,SO:So00b} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.4} Real Roots}{107}} +\citation{SO:BW,SO:PRS} +\newlabel{t:PRS}{{2.2}{108}} +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Location of roots}}{110}} +\newlabel{fig:roots}{{1}{110}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.5} Homotopy Methods}{110}} +\citation{SO:Ver99} +\citation{SO:HSS} +\citation{SO:MR97a:13001} +\newlabel{example:Groebner}{{2.4}{111}} +\citation{SO:BV77} +\citation{SO:Li00} +\@writefile{toc}{\contentsline {section}{\numberline {3} Some Enumerative Geometry}{112}} +\newlabel{sec:enumerative}{{3}{112}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.1} Cylinders Meeting 5 Points}{112}} +\newlabel{sec:cylinder}{{3.1}{112}} +\newlabel{eq:cylinder}{{5}{112}} +\citation{SO:MPT00} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2} Lines Tangent to 4 Spheres}{113}} +\newlabel{sec:12lines}{{3.2}{113}} +\newlabel{eq:sphere}{{6}{113}} +\citation{SO:MPT00} +\citation{SO:MR48:2152} +\@writefile{toc}{\contentsline {section}{\numberline {4} Schubert Calculus}{114}} +\citation{SO:Sturmfels_GBCP} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1} Equations for the Grassmannian}{115}} +\newlabel{sec:grass}{{4.1}{115}} +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces ${\@mathbb Y}_{2,5}$}}{116}} +\newlabel{fig2}{{2}{116}} +\newlabel{PluckerIdeal}{{4.1}{116}} +\citation{SO:So99a} +\newlabel{eq:local}{{7}{117}} +\newlabel{ex:G22}{{4.2}{117}} +\newlabel{eq:G22}{{8}{117}} +\newlabel{eq:hypersurface}{{9}{117}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2} Reality in the Schubert Calculus}{117}} +\newlabel{sec:shapiro}{{4.2}{117}} +\citation{SO:So99a} +\citation{SO:RS98,SO:So_shap-www,SO:So00b,SO:Ver00} +\citation{SO:EG00} +\newlabel{thm:special-reality}{{4.3}{118}} +\citation{SO:So_shap-www,SO:So00b,SO:Ver00} +\citation{SO:So_flags} +\citation{SO:DeKh00} +\citation{SO:RS98} +\citation{SO:EG-NR} +\citation{SO:MR50:13063} +\citation{SO:So97a} +\citation{SO:So97a} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3} Transversality in the Schubert Calculus}{120}} +\citation{SO:So_trans} +\@writefile{toc}{\contentsline {section}{\numberline {5} The 12 Lines: Reprise}{121}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.1} Global Formulation}{121}} +\newlabel{sec:global}{{5.1}{121}} +\newlabel{eq:wedge}{{10}{121}} +\newlabel{prop:tangent_line}{{5.1}{122}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2} Lines Tangent to 4 Spheres}{122}} +\newlabel{sec:tangent_lines}{{5.2}{122}} +\citation{SO:AF} +\citation{SO:FM76} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3} Lines Tangent to Real Quadrics Sharing a Real Conic}{124}} +\newlabel{eq:twoSheet}{{11}{124}} +\newlabel{eq:oneSheet}{{12}{125}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4} Generalization to Higher Dimensions}{126}} +\citation{SO:STh01} +\bibcite{SO:AF}{1} +\bibcite{SO:BMMT}{2} +\bibcite{SO:BW}{3} +\bibcite{SO:Bernstein}{4} +\bibcite{SO:BV77}{5} +\bibcite{SO:CCS}{6} +\bibcite{SO:CLO92}{7} +\bibcite{SO:DeKh00}{8} +\bibcite{SO:MR97a:13001}{9} +\bibcite{SO:EG00}{10} +\bibcite{SO:EG-NR}{11} +\bibcite{SO:Fu84a}{12} +\@writefile{toc}{\contentsline {section}{References}{128}} +\bibcite{SO:FM76}{13} +\bibcite{SO:HSS}{14} +\bibcite{SO:MR50:13063}{15} +\bibcite{SO:MR48:2152}{16} +\bibcite{SO:Li00}{17} +\bibcite{SO:MPT00}{18} +\bibcite{SO:PRS}{19} +\bibcite{SO:RS98}{20} +\bibcite{SO:So97a}{21} +\bibcite{SO:So99a}{22} +\bibcite{SO:So_shap-www}{23} +\bibcite{SO:So_trans}{24} +\bibcite{SO:So00b}{25} +\bibcite{SO:So_flags}{26} +\bibcite{SO:STh01}{27} +\bibcite{SO:Sturmfels_GBCP}{28} +\bibcite{SO:Ver99}{29} +\bibcite{SO:Ver00}{30} +\@writefile{toc}{\contentsline {title}{Resolutions and Cohomology over Complete Intersections}{131}} +\@writefile{toc}{\processAuthors {Luchezar L. Avramov \and Daniel R. Grayson\unskip {}}} +\newlabel{sec:introduction}{{II}{131}} +\citation{CI:MR86i:55011a} +\citation{CI:MR94b:16040} +\citation{CI:AP} +\citation{CI:res} +\citation{CI:MR51:487} +\citation{CI:Ei} +\citation{CI:Sh} +\citation{CI:MR90g:13027} +\citation{CI:Ei} +\@writefile{toc}{\contentsline {section}{\numberline {1} Matrix Factorizations}{133}} +\newlabel{Matrix factorizations}{{1}{133}} +\newlabel{familiar}{{1.1}{133}} +\citation{CI:Ei} +\newlabel{factorization}{{1.2}{135}} +\newlabel{square}{{1.3}{135}} +\citation{CI:Ei} +\newlabel{factorization code}{{1.4}{137}} +\newlabel{cube}{{1.5}{137}} +\newlabel{periodicity}{{1.6}{137}} +\@writefile{toc}{\contentsline {section}{\numberline {2} Graded Algebras}{139}} +\newlabel{Graded algebras}{{2}{139}} +\newlabel{algebras}{{2.1}{139}} +\newlabel{koszul}{{2.2}{140}} +\newlabel{actions}{{2.3}{140}} +\newlabel{cartan}{{2.4}{140}} +\newlabel{split}{{2.5}{140}} +\citation{CI:Sh} +\citation{CI:Ei} +\@writefile{toc}{\contentsline {section}{\numberline {3} Universal Homotopies}{141}} +\newlabel{Universal homotopies}{{3}{141}} +\newlabel{main}{{3.1}{141}} +\newlabel{family}{{1}{141}} +\newlabel{dCD}{{2}{141}} +\newlabel{diff}{{3}{141}} +\newlabel{filtration}{{3.2}{142}} +\newlabel{commutator}{{3.3}{143}} +\newlabel{graded-map-tensor}{{3.4}{143}} +\newlabel{quism}{{3.5}{143}} +\newlabel{first}{{4}{144}} +\newlabel{second}{{5}{144}} +\newlabel{third}{{6}{144}} +\citation{CI:Sh} +\citation{CI:Ei} +\citation{CI:MR51:487} +\@writefile{toc}{\contentsline {section}{\numberline {4} Cohomology Operators}{145}} +\newlabel{Cohomology operators}{{4}{145}} +\newlabel{resolution}{{4.1}{146}} +\newlabel{partial}{{7}{146}} +\newlabel{hypersurface}{{4.2}{146}} +\newlabel{action}{{4.3}{147}} +\newlabel{canonical}{{4.4}{147}} +\newlabel{finiteness}{{4.5}{147}} +\citation{CI:Sh} +\citation{CI:Ei} +\citation{CI:MR51:487} +\citation{CI:Me} +\citation{CI:Ei} +\citation{CI:MR90g:13027} +\citation{CI:MR2000e:13021} +\citation{CI:MR51:487} +\citation{CI:MR1774757} +\citation{CI:MR99c:13033} +\citation{CI:Sh} +\newlabel{history}{{4.6}{148}} +\newlabel{graded stuff}{{4.7}{148}} +\citation{CI:AB2} +\newlabel{reduced ext}{{4.10}{149}} +\newlabel{series}{{4.11}{150}} +\@writefile{toc}{\contentsline {section}{\numberline {5} Computation of Ext Modules}{150}} +\newlabel{Computation of Ext modules}{{5}{150}} +\newlabel{algorithm}{{5.1}{150}} +\citation{CI:MR1774757} +\newlabel{master}{{5.4}{155}} +\@writefile{toc}{\contentsline {section}{\numberline {6} Invariants of Modules}{157}} +\newlabel{Invariants of modules}{{6}{157}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1} Cohomology Modules}{157}} +\newlabel{Computation of cohomology}{{6.1}{157}} +\newlabel{random}{{6.1.1}{157}} +\newlabel{change}{{6.1.2}{160}} +\newlabel{cohomology}{{6.1.3}{160}} +\newlabel{covariant-cohomology}{{6.1.5}{160}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2} Poincar\'e Series}{161}} +\newlabel{Poincare series}{{6.2}{161}} +\newlabel{cosyzygy}{{6.2.3}{162}} +\citation{CI:MR90g:13027} +\citation{CI:MR99c:13033} +\citation{CI:MR99c:13033} +\citation{CI:Ei} +\citation{CI:MR1774757} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3} Complexity}{165}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.4} Critical Degree}{165}} +\citation{CI:MR99c:13033} +\citation{CI:MR90g:13027} +\citation{CI:MR90g:13027} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.5} Support Variety}{167}} +\newlabel{Support variety}{{6.5}{167}} +\citation{CI:MR90g:13027} +\citation{CI:MR85a:20004} +\citation{CI:MR86b:20009} +\newlabel{letdown}{{6.5.3}{168}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.6} Bass Series}{169}} +\newlabel{Bass series}{{6.6}{169}} +\@writefile{toc}{\contentsline {section}{\numberline {7} Invariants of Pairs of Modules}{170}} +\newlabel{Invariants of pairs of modules}{{7}{170}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.1} Reduced Ext Module}{171}} +\newlabel{reduced}{{7.1.1}{171}} +\newlabel{new module}{{7.1.2}{171}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.2} Ext-generator Series}{173}} +\newlabel{genseries}{{7.2.1}{173}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.3} Complexity}{174}} +\citation{CI:AB2} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.4} Support Variety}{175}} +\newlabel{Support variety2}{{7.4}{175}} +\@writefile{toc}{\contentsline {section}{Appendix A. Gradings}{176}} +\newlabel{Gradings}{{A}{176}} +\newlabel{bigrading}{{A.1}{176}} +\bibcite{CI:MR86i:55011a}{1} +\bibcite{CI:MR90g:13027}{2} +\bibcite{CI:res}{3} +\bibcite{CI:MR1774757}{4} +\newlabel{graded action}{{A.2}{177}} +\newlabel{macaulay grading}{{A.3}{177}} +\@writefile{toc}{\contentsline {section}{References}{177}} +\bibcite{CI:AB2}{5} +\bibcite{CI:MR99c:13033}{6} +\bibcite{CI:AP}{7} +\bibcite{CI:MR2000e:13021}{8} +\bibcite{CI:MR85a:20004}{9} +\bibcite{CI:MR86b:20009}{10} +\bibcite{CI:Ei}{11} +\bibcite{CI:MR51:487}{12} +\bibcite{CI:Me}{13} +\bibcite{CI:MR94b:16040}{14} +\bibcite{CI:Sh}{15} +\citation{HS:St2} +\citation{HS:Arn} +\citation{HS:KPR} +\citation{HS:St1} +\citation{HS:St2} +\citation{HS:PS1} +\citation{HS:St1} +\citation{HS:PS1} +\citation{HS:PS2} +\citation{HS:MT} +\@writefile{toc}{\contentsline {title}{Algorithms for the Toric Hilbert Scheme}{179}} +\@writefile{toc}{\processAuthors {Michael Stillman \and Bernd Sturmfels \and Rekha Thomas }} +\citation{HS:St2} +\citation{HS:Sch} +\citation{HS:St2} +\newlabel{OurMatrix}{{1}{180}} +\citation{HS:BLR} +\citation{HS:HS} +\citation{HS:St2} +\citation{HS:Gra} +\citation{HS:St2} +\@writefile{toc}{\contentsline {section}{\numberline {1} Generating Monomial Ideals}{182}} +\citation{HS:St2} +\citation{HS:St2} +\citation{HS:HT} +\citation{HS:MT} +\citation{HS:San} +\citation{HS:MT} +\citation{HS:HT} +\citation{HS:Zie} +\@writefile{toc}{\contentsline {section}{\numberline {2} Polyhedral Geometry}{188}} +\citation{HS:Reiner} +\citation{HS:St2} +\citation{HS:St2} +\citation{HS:St2} +\citation{HS:BFS} +\citation{HS:GKZ} +\newlabel{polysubdivisions}{{2.1}{190}} +\citation{HS:Reiner} +\citation{HS:San} +\citation{HS:St2} +\citation{HS:St2} +\newlabel{unimodular}{{2.2}{191}} +\citation{HS:PS2} +\citation{HS:PS2} +\@writefile{toc}{\contentsline {section}{\numberline {3} Local Equations}{193}} +\newlabel{GrobnerBasis}{{2}{193}} +\newlabel{FlatFamily}{{3}{193}} +\citation{HS:PS2} +\newlabel{localeqns}{{3.1}{194}} +\citation{HS:St2} +\citation{HS:Tho} +\newlabel{IP}{{4}{197}} +\citation{HS:CLO} +\newlabel{paths}{{3.3}{198}} +\citation{HS:MR} +\citation{HS:ST} +\@writefile{toc}{\contentsline {section}{\numberline {4} The Coherent Component of the Toric Hilbert Scheme}{199}} +\citation{HS:St2} +\citation{HS:St1} +\citation{HS:St1} +\newlabel{uv-algebra}{{5}{200}} +\newlabel{normal-uv-algebra}{{6}{200}} +\citation{HS:HM} +\citation{HS:PS1} +\newlabel{non-normal}{{7}{201}} +\newlabel{witness}{{8}{202}} +\citation{HS:DJ} +\citation{HS:Sch} +\citation{HS:BK} +\citation{HS:Eis} +\newlabel{isomorphism}{{4.4}{205}} +\citation{HS:St2} +\citation{HS:St2} +\citation{HS:Zie} +\newlabel{other-uv-algebra}{{9}{206}} +\@writefile{toc}{\contentsline {section}{Appendix A. Fourier-Motzkin Elimination}{206}} +\newlabel{FMe}{{A}{206}} +\citation{HS:Zie} +\citation{HS:Zie} +\citation{HS:Zie} +\@writefile{toc}{\contentsline {section}{Appendix B. Minimal Presentation of Rings}{211}} +\newlabel{Mpor}{{B}{211}} +\bibcite{HS:Arn}{1} +\bibcite{HS:BLR}{2} +\bibcite{HS:BFS}{3} +\bibcite{HS:BK}{4} +\bibcite{HS:CLO}{5} +\bibcite{HS:DJ}{6} +\bibcite{HS:Eis}{7} +\bibcite{HS:GKZ}{8} +\bibcite{HS:Gra}{9} +\bibcite{HS:HM}{10} +\bibcite{HS:HS}{11} +\bibcite{HS:HT}{12} +\bibcite{HS:KPR}{13} +\bibcite{HS:MT}{14} +\bibcite{HS:MR}{15} +\bibcite{HS:PS2}{16} +\bibcite{HS:PS1}{17} +\bibcite{HS:Reiner}{18} +\bibcite{HS:San}{19} +\bibcite{HS:Sch}{20} +\bibcite{HS:St1}{21} +\bibcite{HS:St2}{22} +\bibcite{HS:ST}{23} +\bibcite{HS:Tho}{24} +\@writefile{toc}{\contentsline {section}{References}{213}} +\bibcite{HS:Zie}{25} +\citation{EA:MR1484973:eisenbud} +\citation{smith} +\@writefile{toc}{\contentsline {title}{Sheaf Algorithms Using the Exterior Algebra}{215}} +\@writefile{toc}{\processAuthors {Wolfram Decker \and David Eisenbud }} +\@writefile{toc}{\contentsline {section}{\numberline {1} Introduction}{215}} +\citation{EA:eis-sch:sheaf} +\citation{EA:eis-sch:sheaf} +\citation{EA:HM} +\citation{EA:nico} +\citation{EA:cam} +\citation{EA:Eisenbud-Schreyer:ChowForms} +\citation{EA:MR80c:14010a} +\citation{EA:eis-sch:sheaf} +\citation{EA:eis-sch:sheaf} +\@writefile{toc}{\contentsline {section}{\numberline {2} Basics of the Bernstein-Gel'fand-Gel'fand Correspondence}{218}} +\citation{EA:MR97a:13001} +\citation{EA:eis-sch:sheaf} +\citation{EA:eis-sch:sheaf} +\citation{EA:MR89g:13005:appendix} +\newlabel{regularity}{{2.1}{219}} +\@writefile{toc}{\contentsline {section}{\numberline {3} The Cohomology and the Tate Resolution of a Sheaf}{222}} +\citation{EA:eis-sch:sheaf} +\newlabel{tate}{{3.1}{223}} +\citation{EA:Eisenbud-Schreyer:ChowForms} +\citation{EA:MR1484973:eisenbud} +\citation{EA:eis-sch:sheaf} +\newlabel{cohold}{{3.2}{225}} +\newlabel{duality}{{3.3}{226}} +\@writefile{toc}{\contentsline {section}{\numberline {4} Cohomology and Vector Bundles}{226}} +\citation{EA:MR16:953c} +\citation{EA:MR81b:14001} +\citation{EA:MR80f:14005} +\citation{EA:MR30:120} +\citation{EA:MR99f:14064} +\newlabel{dualitybd}{{4.1}{227}} +\citation{EA:MR97a:13001} +\newlabel{cohbd}{{4.2}{228}} +\newlabel{hombd}{{4.3}{228}} +\citation{EA:MR57:324} +\citation{EA:MR80m:14012} +\citation{EA:MR80m:14011} +\citation{EA:MR81h:14014} +\citation{EA:MR56:8567} +\citation{EA:MR82h:14011} +\newlabel{critsur}{{4.4}{229}} +\citation{EA:MR57:324} +\citation{EA:MR80m:14012} +\citation{EA:MR80m:14011} +\citation{EA:MR81b:14001} +\@writefile{toc}{\contentsline {section}{\numberline {5} Cohomology and Monads}{230}} +\newlabel{monad}{{5.1}{230}} +\citation{EA:MR81b:14001} +\newlabel{remark-5.2}{{5.2}{231}} +\newlabel{remark-5.3}{{5.3}{231}} +\newlabel{remark-5.5}{{5.5}{231}} +\newlabel{remark-5.6}{{5.6}{231}} +\citation{EA:MR84j:14026} +\citation{EA:MR80f:14005} +\citation{EA:MR81b:14001} +\newlabel{exc22}{{5.7}{234}} +\citation{EA:MR80c:14010b} +\citation{EA:Eisenbud-Schreyer:ChowForms} +\@writefile{toc}{\contentsline {section}{\numberline {6} The Beilinson Monad}{236}} +\citation{EA:eis-sch:sheaf} +\citation{EA:MR80c:14010b} +\citation{EA:MR89g:18018} +\citation{EA:MR92g:14013} +\newlabel{Beilinson-theorem}{{6.1}{237}} +\citation{EA:eis-sch:sheaf} +\citation{EA:eis-sch:sheaf} +\newlabel{diff1}{{6.2}{238}} +\newlabel{diff2}{{6.3}{238}} +\newlabel{diff3}{{6.4}{238}} +\citation{EA:ES} +\citation{EA:BR} +\citation{EA:okgrad8} +\citation{EA:ionescu} +\citation{EA:conicbundle} +\citation{EA:roth} +\citation{EA:aure-thesis} +\@writefile{toc}{\contentsline {section}{\numberline {7} Examples}{241}} +\newlabel{was7.1}{{7.1}{241}} +\citation{EA:Lanteri} +\citation{EA:aure-thesis} +\citation{EA:adj-theory} +\citation{EA:MR16:953c} +\citation{EA:okreflexiv} +\citation{EA:Bertini} +\citation{EA:DSJSC} +\citation{EA:conicbundle} +\citation{EA:HM} +\citation{EA:fultonit} +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces }}{245}} +\newlabel{cohtable}{{1}{245}} +\citation{EA:uniquenesshm1} +\citation{EA:uniquenesshm2} +\citation{EA:decker24} +\bibcite{EA:conicbundle}{1} +\bibcite{EA:MR92g:14013}{2} +\bibcite{EA:aure-thesis}{3} +\bibcite{EA:MR57:324}{4} +\bibcite{EA:MR80f:14005}{5} +\bibcite{EA:MR80c:14010b}{6} +\bibcite{EA:adj-theory}{7} +\bibcite{EA:MR80c:14010a}{8} +\bibcite{EA:BR}{9} +\bibcite{EA:MR89g:13005:appendix}{10} +\bibcite{EA:decker24}{11} +\@writefile{toc}{\contentsline {section}{References}{247}} +\bibcite{EA:uniquenesshm1}{12} +\bibcite{EA:cam}{13} +\bibcite{EA:uniquenesshm2}{14} +\bibcite{EA:DSJSC}{15} +\bibcite{EA:MR1484973:eisenbud}{16} +\citation{EA:VAS} +\bibcite{EA:MR97a:13001}{17} +\bibcite{EA:eis-sch:sheaf}{18} +\bibcite{EA:Eisenbud-Schreyer:ChowForms}{19} +\bibcite{EA:ES}{20} +\bibcite{EA:fultonit}{21} +\bibcite{EA:MR81h:14014}{22} +\bibcite{EA:MR30:120}{23} +\bibcite{EA:MR84j:14026}{24} +\bibcite{EA:HM}{25} +\bibcite{EA:MR80m:14011}{26} +\bibcite{EA:ionescu}{27} +\bibcite{EA:MR89g:18018}{28} +\bibcite{EA:Bertini}{29} +\bibcite{EA:Lanteri}{30} +\bibcite{EA:MR80m:14012}{31} +\bibcite{EA:nico}{32} +\bibcite{EA:MR56:8567}{33} +\bibcite{EA:MR82h:14011}{34} +\bibcite{EA:okreflexiv}{35} +\bibcite{EA:okgrad8}{36} +\bibcite{EA:MR81b:14001}{37} +\bibcite{EA:roth}{38} +\bibcite{EA:MR16:953c}{39} +\bibcite{smith}{40} +\bibcite{EA:VAS}{41} +\bibcite{EA:MR99f:14064}{42} +\citation{CO:Sch1} +\citation{CO:ElPe,CO:DS} +\citation{CO:Se,CO:CR} +\@writefile{toc}{\contentsline {title}{Needles in a Haystack: Special Varieties via Small Fields}{251}} +\@writefile{toc}{\processAuthors {Frank-Olaf Schreyer \and Fabio Tonoli }} +\citation{CO:To} +\citation{CO:HM,CO:EH} +\citation{CO:CR,CO:Se} +\@writefile{toc}{\contentsline {subsubsection}{Notation}{252}} +\citation{CO:ACGH} +\citation{CO:AC} +\citation{CO:Ei} +\@writefile{toc}{\contentsline {section}{\numberline {1} How to Make Random Curves up to Genus $14$}{253}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1} Plane Models, $g\le 10$}{253}} +\@writefile{toc}{\contentsline {subsubsection}{Random Points}{253}} +\citation{CO:Ei} +\citation{CO:Ha1} +\citation{CO:AC} +\citation{CO:ACGH} +\citation{CO:MDP} +\citation{CO:DES} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2} Space Models and Hartshorne-Rao Modules}{256}} +\@writefile{toc}{\contentsline {subsubsection}{The Case of Genus $g=11$}{256}} +\citation{CO:Ha2} +\citation{CO:Klei} +\@writefile{toc}{\contentsline {subsubsection}{Betti Numbers for Genus $g=12,13,14,15$}{258}} +\@writefile{toc}{\contentsline {subsubsection}{Construction of Hartshorne-Rao Modules}{259}} +\citation{CO:Ha2} +\@writefile{toc}{\contentsline {subsubsection}{Counting Parameters}{262}} +\citation{CO:Gr2} +\citation{CO:GL} +\citation{CO:Vo,CO:Sch2,CO:Sch3,CO:BaEi,CO:vB,CO:HR,CO:Mu} +\citation{CO:Sch4} +\citation{CO:EiPo} +\citation{CO:EiPo} +\citation{CO:RS1} +\@writefile{toc}{\contentsline {section}{\numberline {2} Comparing Green's Conjecture for Curves and Points}{263}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1} Syzygies of Canonical Curves}{263}} +\newlabel{GConj}{{2.1}{263}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2} Coble Self-Dual Sets of Points}{263}} +\citation{CO:RS2} +\citation{CO:Ei} +\newlabel{PConj}{{2.2}{264}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3} Comparison and Probes}{265}} +\newlabel{Exceptional locus}{{2.3}{265}} +\citation{CO:vBS} +\@writefile{toc}{\contentsline {subsubsection}{Evidence}{266}} +\citation{CO:HR} +\citation{CO:BaEi} +\citation{CO:Ba,CO:CK} +\citation{CO:BE} +\citation{CO:Wa} +\@writefile{toc}{\contentsline {section}{\numberline {3} Pfaffian Calabi-Yau Threefolds in ${\@mathbb P}^6$}{267}} +\citation{CO:DES,CO:Po} +\citation{CO:BE} +\citation{CO:Wa} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.1} The Pfaffian Complex}{268}} +\newlabel{Pfaffian complex}{{3.1}{268}} +\citation{CO:To} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2} Analysis of the Hartshorne-Rao Module for Degree $17$}{269}} +\citation{CO:Gr1} +\@writefile{toc}{\contentsline {subsubsection}{Rank 1 Linear Syzygies of $M$}{272}} +\citation{CO:To} +\citation{CO:To} +\citation{CO:To} +\citation{CO:To} +\citation{CO:vB} +\bibcite{CO:AC}{1} +\bibcite{CO:ACGH}{2} +\bibcite{CO:Ba}{3} +\bibcite{CO:BaEi}{4} +\bibcite{CO:vB}{5} +\bibcite{CO:vBS}{6} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.3} Lift to Characteristic Zero}{277}} +\@writefile{toc}{\contentsline {section}{References}{277}} +\bibcite{CO:BE}{7} +\bibcite{CO:CR}{8} +\bibcite{CO:CK}{9} +\bibcite{CO:DES}{10} +\bibcite{CO:DS}{11} +\bibcite{CO:Ei}{12} +\bibcite{CO:EH}{13} +\bibcite{CO:EiPo}{14} +\bibcite{CO:ElPe}{15} +\bibcite{CO:Gr2}{16} +\bibcite{CO:Gr1}{17} +\bibcite{CO:GL}{18} +\bibcite{CO:Ha2}{19} +\bibcite{CO:Ha1}{20} +\bibcite{CO:HM}{21} +\bibcite{CO:HR}{22} +\bibcite{CO:Klei}{23} +\bibcite{CO:MDP}{24} +\bibcite{CO:Mu}{25} +\bibcite{CO:Po}{26} +\bibcite{CO:RS2}{27} +\bibcite{CO:RS1}{28} +\bibcite{CO:Sch4}{29} +\bibcite{CO:Sch3}{30} +\bibcite{CO:Sch2}{31} +\bibcite{CO:Sch1}{32} +\bibcite{CO:Se}{33} +\bibcite{CO:To}{34} +\bibcite{CO:Vo}{35} +\bibcite{CO:Wa}{36} +\@writefile{toc}{\contentsline {title}{$D$-modules and Cohomology of Varieties}{281}} +\@writefile{toc}{\processAuthors {Uli Walther}} +\citation{DM:lc-notes} +\citation{DM:B-S} +\citation{DM:B-S} +\@writefile{toc}{\contentsline {section}{\numberline {1} Introduction}{282}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1} Local Cohomology -- Definitions}{282}} +\citation{DM:Gri-Har} +\citation{DM:DRCAV} +\citation{DM:Og} +\citation{DM:DRCAV} +\citation{DM:L-Dmod} +\citation{DM:Br-R} +\citation{DM:B-S} +\citation{DM:Br-R} +\citation{DM:Hu} +\citation{DM:CDAV} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2} Motivation}{283}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3} The Master Plan}{283}} +\citation{DM:K2,DM:L-Dmod} +\citation{DM:B} +\citation{DM:L-Dmod} +\newlabel{eqn-loc-iso}{{1.4}{284}} +\citation{DM:Oa,DM:Oa3,DM:Oa2} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.4} Outline of the Chapter}{285}} +\@writefile{toc}{\contentsline {section}{\numberline {2} The Weyl Algebra and Gr\"obner Bases}{285}} +\newlabel{sec-weyl}{{2}{285}} +\citation{DM:SST} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1} Notation}{286}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2} Gr\"obner Bases in $D_n$}{286}} +\newlabel{subsec-GB}{{2.2}{286}} +\citation{DM:SST} +\citation{DM:SST} +\citation{DM:B} +\citation{DM:Coutinho} +\citation{DM:Bernstein-notes} +\citation{DM:B} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3} $D$-modules}{288}} +\newlabel{subsec-D-modules}{{2.3}{288}} +\citation{DM:M2D} +\citation{DM:M} +\citation{Loeser} +\citation{DM:Kollar} +\citation{DM:Yano} +\citation{DM:AK,DM:Brianconetal,DM:Maisonobe,DM:Satoetal} +\newlabel{def-b-poly}{{2.2}{291}} +\citation{DM:B} +\citation{DM:G-S,DM:W-lambda} +\citation{DM:SST} +\@writefile{toc}{\contentsline {section}{\numberline {3} Bernstein-Sato Polynomials and Localization}{292}} +\newlabel{sec-loc}{{3}{292}} +\newlabel{prob}{{3.1}{292}} +\citation{DM:M} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.1} The Line of Attack}{293}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2} Undetermined Exponents}{293}} +\citation{DM:M} +\citation{DM:W1} +\newlabel{lem-malgrange}{{3.5}{294}} +\citation{DM:Oa2} +\newlabel{subsec-oaku}{{3.2}{295}} +\newlabel{prop-oaku}{{3.6}{295}} +\citation{DM:Oa2} +\citation{DM:Oa3} +\newlabel{alg-ann-fs}{{3.7}{296}} +\citation{DM:Oa} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.3} The Bernstein-Sato Polynomial}{297}} +\newlabel{cor-b-poly}{{3.8}{297}} +\newlabel{alg-b-poly-L}{{3.9}{297}} +\citation{DM:Varchenko} +\citation{DM:K} +\citation{DM:K} +\newlabel{rem-nonQ-root}{{3.10}{298}} +\citation{DM:Oa3} +\citation{DM:K} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.4} Specializing Exponents}{299}} +\newlabel{subsec-special-exp}{{3.4}{299}} +\newlabel{prop-kashiwara}{{3.11}{299}} +\citation{DM:K} +\citation{DM:Oa3} +\newlabel{alg-D/L-loc-f}{{3.14}{300}} +\newlabel{ex-cubic}{{3.17}{302}} +\citation{DM:O-T-W} +\citation{DM:O-T-W} +\citation{DM:O-T1,DM:W2} +\citation{DM:O-T1} +\citation{DM:Ts,DM:Ts0} +\citation{DM:O-T-W} +\@writefile{toc}{\contentsline {section}{\numberline {4} Local Cohomology Computations}{304}} +\newlabel{sec-lc}{{4}{304}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1} Local Cohomology}{304}} +\newlabel{subsec-lc}{{4.1}{304}} +\newlabel{cechmap}{{4.2}{305}} +\newlabel{cechmap-parts}{{4.3}{305}} +\newlabel{alg-lc}{{4.2}{305}} +\newlabel{ex-minors}{{4.3}{306}} +\citation{DM:P-S} +\citation{DM:CDAV,DM:H-Sp,DM:Hu-L} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2} Iterated Local Cohomology}{310}} +\newlabel{subsec-lclc}{{4.2}{310}} +\newlabel{alg-lclc}{{4.4}{310}} +\citation{DM:O-T1} +\citation{DM:O-T-W} +\citation{DM:L-Dmod} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3} Computation of Lyubeznik Numbers}{311}} +\newlabel{subsec-lambda}{{4.3}{311}} +\newlabel{alg-lambda}{{4.5}{312}} +\citation{DM:W1} +\citation{DM:T} +\citation{DM:O-T1,DM:O-T2,DM:O-T-T,DM:SST,DM:T-W,DM:W2,DM:W4,DM:W3} +\@writefile{toc}{\contentsline {section}{\numberline {5} Implementation, Examples, Questions}{313}} +\newlabel{sec-ausblick}{{5}{313}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.1} Implementations and Optimizing}{313}} +\newlabel{efficiency}{{5.1}{313}} +\newlabel{remark}{{5.1}{314}} +\newlabel{eq-ineq}{{5.1}{314}} +\citation{DM:L-Fmod} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2} Projects for the Future}{315}} +\@writefile{toc}{\contentsline {subsubsection}{Prime Characteristic}{315}} +\citation{DM:O-T1,DM:W2} +\citation{DM:W3} +\citation{DM:W4} +\newlabel{singular-spaces}{{5.2}{316}} +\@writefile{toc}{\contentsline {subsubsection}{Ambient Spaces Different from ${\@mathbb A}^n_K$}{316}} +\@writefile{toc}{\contentsline {subsubsection}{De Rham Cohomology}{316}} +\citation{DM:W4} +\citation{DM:O-T-T,DM:Ts0,DM:T-W} +\@writefile{toc}{\contentsline {subsubsection}{Hom and Ext}{317}} +\citation{DM:GKZ} +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces }}{318}} +\newlabel{Figure}{{1}{318}} +\citation{DM:L-Bpoly} +\citation{DM:Ley} +\@writefile{toc}{\contentsline {subsubsection}{Finiteness and Stratifications}{319}} +\citation{DM:W5} +\citation{DM:W4} +\citation{DM:Varchenko} +\citation{DM:K2,DM:Mebkhout,DM:O-T1,DM:W2} +\citation{DM:SST} +\@writefile{toc}{\contentsline {subsubsection}{Hodge Numbers}{320}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3} Epilogue}{320}} +\citation{DM:ACG1,DM:ACG2} +\bibcite{DM:AK}{1} +\bibcite{DM:ACG1}{2} +\bibcite{DM:ACG2}{3} +\bibcite{DM:Bernstein-notes}{4} +\bibcite{DM:B}{5} +\bibcite{DM:Brianconetal}{6} +\bibcite{DM:Br-R}{7} +\bibcite{DM:B-S}{8} +\bibcite{DM:Coutinho}{9} +\bibcite{DM:G-S}{10} +\bibcite{DM:GKZ}{11} +\bibcite{DM:Gri-Har}{12} +\bibcite{DM:lc-notes}{13} +\bibcite{DM:CDAV}{14} +\bibcite{DM:H-Sp}{15} +\bibcite{DM:DRCAV}{16} +\bibcite{DM:Hu}{17} +\bibcite{DM:Hu-L}{18} +\@writefile{toc}{\contentsline {section}{References}{321}} +\bibcite{DM:K}{19} +\bibcite{DM:K2}{20} +\bibcite{DM:Kollar}{21} +\bibcite{DM:Ley}{22} +\bibcite{DM:M2D}{23} +\bibcite{Loeser}{24} +\bibcite{DM:L-Dmod}{25} +\bibcite{DM:L-Fmod}{26} +\bibcite{DM:L-Bpoly}{27} +\bibcite{DM:Maisonobe}{28} +\bibcite{DM:M}{29} +\bibcite{DM:Mebkhout}{30} +\bibcite{DM:Oa}{31} +\bibcite{DM:Oa3}{32} +\bibcite{DM:Oa2}{33} +\bibcite{DM:O-T2}{34} +\bibcite{DM:O-T1}{35} +\bibcite{DM:O-T-T}{36} +\bibcite{DM:O-T-W}{37} +\bibcite{DM:Og}{38} +\bibcite{DM:P-S}{39} +\bibcite{DM:SST}{40} +\bibcite{DM:Satoetal}{41} +\bibcite{DM:T}{42} +\bibcite{DM:Ts}{43} +\bibcite{DM:Ts0}{44} +\bibcite{DM:T-W}{45} +\bibcite{DM:Varchenko}{46} +\bibcite{DM:W1}{47} +\bibcite{DM:W2}{48} +\bibcite{DM:W5}{49} +\bibcite{DM:W4}{50} +\bibcite{DM:W3}{51} +\bibcite{DM:W-lambda}{52} +\bibcite{DM:Yano}{53} +\@writefile{toc}{\vskip 8pt } +\@writefile{toc}{\contentsline {title}{Index}{325}} +SHAR_EOF + (set 20 01 05 25 13 55 08 'book.aux'; eval "$shar_touch") && + chmod 0644 'book.aux' || + $echo 'restore of' 'book.aux' 'failed' + if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ + && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then + md5sum -c << SHAR_EOF >/dev/null 2>&1 \ + || $echo 'book.aux:' 'MD5 check failed' +688179e218164017fc030ecebdab321f book.aux +SHAR_EOF + else + shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'book.aux'`" + test 35562 -eq "$shar_count" || + $echo 'book.aux:' 'original size' '35562,' 'current size' "$shar_count!" + fi +fi +# ============= book.ind ============== +if test -f 'book.ind' && test "$first_param" != -c; then + $echo 'x -' SKIPPING 'book.ind' '(file already exists)' +else + $echo 'x -' extracting 'book.ind' '(text)' + sed 's/^X//' << 'SHAR_EOF' > 'book.ind' && +\begin{theindex} +X +X \item $(u,v)$-Gr\"obner basis\idxquad 287 +X \item $D$-modules\idxquad 288 +X \item $D_n$-modules\idxquad 286 +X \item $D_{n+1}$\idxquad 293 +X \item $J^L(f^s)$, algorithm for\idxquad 296 +X \item $R_n$ as a $D_n$-module\idxquad 289 +X \item $\Theta ^r_k$\idxquad 304 +X \item $\operatorname {in}_{(u,v)}(L)$\idxquad 287 +X \item $b_f^L(s)$\idxquad 291 +X \item $y_1$-homogenization\idxquad 295 +X \item {\tt ->}\idxquad 44 +X \item {\tt .}\idxquad 50 +X \item {\tt :=}\idxquad 44 +X \item {\tt ==}\idxquad 4 +X \item {\tt =>}\idxquad 49 +X \item {\tt \# }\idxquad 49 +X \item {\tt \# ?}\idxquad 50 +X \item {\tt \%}\idxquad 6,\,19 +X +X \indexspace +X +X \item 32749\idxquad 17 +X +X \indexspace +X +X \item abelian surface\idxquad 244 +X \item absolutely irreducible\idxquad 30 +X \item action\idxquad 289,\,293 +X \item action (of a differential operator)\idxquad 286,\,288,\, +X 290,\,291 +X \item adjunction theory\idxquad 29 +X \item Alexander dual\idxquad 79 +X \item {\tt append}\idxquad 43 +X \item {\tt apply}\idxquad 45 +X \item arrays\idxquad 42 +X \item artinian, {\it see also} ideal, zero-dimensional\idxquad 102 +X \item {\tt assert}\idxquad 137 +X +X \indexspace +X +X \item backtracking algorithm\idxquad 188 +X \item basis reduction\idxquad 180 +X \item Baues graph\idxquad 182 +X \item Baues problem\idxquad 191 +X \item Beilinson monad\idxquad 215,\,237 +X \subitem applications of\idxquad 241 +X \subitem differentials of\idxquad 237 +X \item Bernstein (Bernstein-Sato) polynomial\idxquad 291 +X \item Bernstein filtration\idxquad 289 +X \item Bernstein inequality\idxquad 289 +X \item Bernstein operator\idxquad 291 +X \item Bernstein polynomial, algorithm for\idxquad 297 +X \item Bernstein root\idxquad 291 +X \item Bernstein-Gel'fand-Gel'fand correspondence\idxquad 215,\,218 +X \item {\tt betti}\idxquad 22 +X \item Betti diagram\idxquad 22 +X \item Betti number\idxquad 162 +X \item B\'ezout number\idxquad 101,\,122,\,127 +X \item B\'ezout's Theorem\idxquad 27,\,63,\,101,\,111,\,117 +X \item BGG\idxquad 215 +X \item bidegree\/\idxquad 176 +X \item bigraded ring of cohomology operators\idxquad 177 +X \item bilinear form\idxquad 122 +X \subitem signature\idxquad 108,\,124 +X \subitem symmetric\idxquad 108 +X \item bistellar flip\idxquad 191 +X \item blow-up\idxquad 64,\,65 +X \item {\tt borel}\idxquad 89 +X \item Borel-fixed\idxquad 89 +X \item bounded filtration\idxquad 142 +X \item {\tt break}\idxquad 46 +X \item Brill-Noether number\idxquad 253 +X \item bundle +X \subitem Horrocks-Mumford\idxquad 244 +X \subitem normalized\idxquad 231 +X \subitem self-dual\idxquad 231 +X \subitem Serre duality\idxquad 231 +X \subitem Serre's criterion\idxquad 227 +X \subitem stable\idxquad 231 +X \item bundles +X \subitem of differentials\idxquad 227 +X +X \indexspace +X +X \item Calabi-Yau 3-folds\idxquad 267 +X \item canonical bundle\idxquad 26,\,32 +X \item canonical curve\idxquad 263 +X \item canonical embedding\idxquad 31,\,32 +X \item Cartan map\idxquad 140 +X \item Cartan resolution\idxquad 218 +X \item Castelnuovo-Mumford regularity\idxquad 219 +X \item \v Cech complex\idxquad 282 +X \item chain complex\idxquad 21 +X \item chain property\idxquad 95 +X \item Chow form\idxquad 217 +X \item classical adjoint\idxquad 57 +X \item Clifford index\idxquad 31,\,263 +X \item Coble self-dual sets of points\idxquad 263 +X \item {\tt code}\idxquad 52,\,155 +X \item {\tt codimension}\idxquad 19 +X \item Cohen-Macaulay\idxquad 63 +X \item coherent component\idxquad 200 +X \item coherent sheaf +X \subitem representation of\idxquad 18 +X \item cohomological dimension\idxquad 282 +X \item cohomology +X \subitem intermediate\idxquad 227 +X \subitem sheaf\idxquad 26,\,222,\,224,\,225 +X \item {\tt coker}\idxquad 21 +X \item {\tt cokernel}\idxquad 21 +X \item complete intersection\idxquad 116,\,131 +X \item complex\idxquad 21 +X \subitem differentials in\idxquad 21 +X \item complexity\idxquad 165,\,174 +X \item computable field\idxquad 284 +X \item conic bundle\idxquad 241 +X \subitem elliptic\idxquad 241 +X \item conormal sequence\idxquad 24 +X \item contravariant cohomology module\idxquad 157 +X \item cotangent bundle\idxquad 20,\,24,\,26 +X \item cotangent sequence\idxquad 20 +X \item covariant cohomology module\idxquad 157 +X \item cover\idxquad 81 +X \item critical degree\idxquad 165 +X \item cubic scroll\idxquad 66 +X \item cubic space curve\idxquad 18 +X \item curve +X \subitem general\idxquad 31 +X \subitem hyperelliptic\idxquad 31 +X \subitem plane quintic\idxquad 32 +X \subitem trigonal\idxquad 32 +X \item cylinder\idxquad 112 +X +X \indexspace +X +X \item data types\idxquad 41 +X \item {\tt dd}\idxquad 21,\,134 +X \item {\tt dd\_i}, i-th differential of a complex\idxquad 22 +X \item {\tt decompose}\idxquad 30 +X \item decompose a variety\idxquad 30 +X \item degree of a projective variety\idxquad 19 +X \item {\tt degrees}\idxquad 22 +X \item determinantal variety\idxquad 66,\,111 +X \item diagram, Betti\idxquad 22 +X \item differential operators\idxquad 264 +X \item differentials of a complex\idxquad 21 +X \item dimension (of a $D$-module)\idxquad 289 +X \item dimension of a projective variety\idxquad 19 +X \item discriminant\idxquad 59,\,113 +X \item distraction\idxquad 92 +X \item divided powers algebra\idxquad 139 +X \item division command\idxquad 25 +X \item divisor at infinity\idxquad 200 +X \item {\tt do}\idxquad 45 +X \item {\tt dual}\idxquad 79 +X \item dual, Alexander\idxquad 79 +X \item duality\idxquad 26 +X \item duality of sheaves\idxquad 226 +X \item dualizing sheaf\idxquad 26 +X +X \indexspace +X +X \item eliminant\idxquad 104--106,\,114 +X \item elimination theory\idxquad 57,\,66,\,104 +X \item ellipsoid\idxquad 124 +X \item elliptic curve\idxquad 58 +X \item embedded point\idxquad 62,\,64 +X \item {\tt endl}\idxquad 47 +X \item enumerative geometry\idxquad 102--104,\,110,\,112,\,114 +X \subitem real\idxquad 107,\,118 +X \item enumerative problem\idxquad 103,\,112,\,115,\,121 +X \subitem fully real\idxquad 117,\,119 +X \item {\tt Ext}\idxquad 32,\,131,\,155 +X \item Ext-generator series\idxquad 149 +X \item exterior algebra\idxquad 139,\,215 +X +X \indexspace +X +X \item $f$-vector\idxquad 75 +X \item {\tt factor}\idxquad 50 +X \item Fano scheme\idxquad 68 +X \item field +X \subitem algebraically closed\idxquad 101,\,113 +X \subitem splitting\idxquad 104 +X \item files\idxquad 46 +X \item finite fields +X \subitem use of\idxquad 17 +X \item flat limit\idxquad 62,\,68 +X \item flip graph\idxquad 186 +X \item flip search algorithm\idxquad 188 +X \item {\tt for}\idxquad 45 +X \item Fourier-Motzkin elimination\idxquad 188,\,206 +X \item functions\idxquad 44 +X +X \indexspace +X +X \item generates\idxquad 135 +X \item {\tt generators}\idxquad 19 +X \item generic initial ideal\idxquad 90,\,92 +X \item generic monomial ideal\idxquad 96 +X \item {\tt gens}\idxquad 19 +X \item genus of a curve\idxquad 30 +X \item {\tt get}\idxquad 47 +X \item gonality\idxquad 31 +X \item graded Artinian Gorenstein ring\idxquad 264 +X \item graded Bass number\idxquad 169 +X \item graded Bass series\idxquad 169 +X \item graded Betti number\idxquad 161 +X \item graded complete intersection\idxquad 131 +X \item graded Poincar\'e series\idxquad 162 +X \item Grassmannian\idxquad 69,\,112,\,113,\,115,\,127 +X \subitem local coordinates\idxquad 117 +X \subitem not a complete intersection\idxquad 116 +X \item Graver basis\idxquad 182 +X \item Graver degree\idxquad 183 +X \item Graver fiber\idxquad 183 +X \item Green's conjecture\idxquad 32,\,263 +X \item Gr\"obner basis\idxquad 74,\,104 +X \subitem reduced\idxquad 116 +X \subitem universal\idxquad 182 +X \item Gr\"obner cone\idxquad 188 +X \item Gr\"obner fan\idxquad 199 +X +X \indexspace +X +X \item H\idxquad 245 +X \item Hartshorne-Rao module\idxquad 256 +X \item hash table\idxquad 49 +X \item hessian\idxquad 59 +X \item {\tt HH}\idxquad 26 +X \item Hilbert basis\idxquad 203 +X \item Hilbert function\idxquad 116 +X \item Hilbert scheme\idxquad 91,\,251 +X \subitem incidence graph\idxquad 91 +X \item Hilbert series\idxquad 75 +X \item {\tt hilbertSeries}\idxquad 162,\,169 +X \item holonomic module\idxquad 289 +X \item homogeneous coordinate ring\idxquad 18 +X \item homogeneous derivation\idxquad 139 +X \item homogeneous ideal\idxquad 18 +X \item homological degree\/\idxquad 176 +X \item homological methods +X \subitem introduction to\idxquad 17 +X \item {\tt homology}\idxquad 151 +X \item homotopy +X \subitem B\'ezout\idxquad 111 +X \subitem Gr\"obner\idxquad 111,\,117 +X \subitem optimal\idxquad 111 +X \item homotopy continuation\idxquad 110 +X \item Horrocks-Mumford bundle\idxquad 244 +X \item hyperboloid\idxquad 124 +X \item hyperelliptic curve\idxquad 31 +X +X \indexspace +X +X \item ideal\idxquad 19 +X \subitem $A$-graded\idxquad 97,\,179 +X \subitem Borel-fixed\idxquad 89 +X \subitem codimension\idxquad 81 +X \subitem coherent\idxquad 185 +X \subitem degree\idxquad 102,\,103 +X \subitem generic initial\idxquad 90,\,92 +X \subitem graph\idxquad 81 +X \subitem initial\idxquad 74 +X \subitem monomial\idxquad 73,\,74 +X \subitem of minors\idxquad 82 +X \subitem permutahedron\idxquad 86 +X \subitem primary\idxquad 77 +X \subitem radical\idxquad 102,\,104,\,120 +X \subitem Stanley-Reisner\idxquad 75 +X \subitem toric\idxquad 87 +X \subitem torus isomorphism\idxquad 185 +X \subitem tree\idxquad 80 +X \subitem zero-dimensional\idxquad 102,\,119,\,123 +X \item {\tt ideal}\idxquad 51 +X \item {\tt if}\idxquad 45 +X \item {\tt image}\idxquad 21 +X \item infinitesimal deformations\idxquad 271 +X \item initial form\idxquad 287 +X \item initial ideal\idxquad 74,\,87 +X \subitem square-free\idxquad 111,\,117 +X \item {\tt input}\idxquad 47 +X \item integer programming\idxquad 86,\,197 +X \item internal degree\idxquad 176 +X \item intersection multiplicities\idxquad 26 +X \item intersection theory\idxquad 26,\,101 +X \item irreducible +X \subitem absolutely\idxquad 30 +X \item irreducible decomposition\idxquad 30 +X \item {\tt isBorel}\idxquad 89 +X \item {\tt isMonomialIdeal}\idxquad 75 +X +X \indexspace +X +X \item {\tt jacobian}\idxquad 24 +X \item Jacobian matrix\idxquad 24 +X \item {\tt join}\idxquad 43 +X +X \indexspace +X +X \item kernel of a module map\idxquad 20 +X \item kernel of a ring map\idxquad 18,\,104 +X \item keys of a hash table\idxquad 49 +X \item killing cohomology\idxquad 232 +X \item Koszul map\idxquad 140 +X \item Koszul-regular\idxquad 146 +X +X \indexspace +X +X \item Lawrence lifting\idxquad 183 +X \item Lefschetz Theorem\idxquad 283 +X \item Leibniz rule\idxquad 139,\,286 +X \item length of a module\idxquad 27 +X \item Lie algebra\idxquad 58 +X \item lift to characteristic zero\idxquad 277 +X \item linear free resolution\idxquad 219 +X \item lists\idxquad 42 +X \subitem appending\idxquad 43 +X \subitem joining\idxquad 43 +X \subitem prepending\idxquad 44 +X \item {\tt load}\idxquad 47 +X \item local cohomological dimension\idxquad 282 +X \item local cohomology\idxquad 282 +X \subitem algorithm for\idxquad 305,\,310 +X \subitem iterated\idxquad 310 +X \item localization +X \subitem algorithm for\idxquad 300 +X \item Lyubeznik numbers\idxquad 312 +X +X \indexspace +X +X \item map of modules\idxquad 25 +X \item map of rings\idxquad 18 +X \item matrix\idxquad 18 +X \subitem unimodular\idxquad 191 +X \item matrix factorization\idxquad 133 +X \item maximal rank\idxquad 256 +X \item method\idxquad 52 +X \item {\tt method}\idxquad 52 +X \item minimal test set\idxquad 197 +X \item {\tt minors}\idxquad 19 +X \item {\tt minPres.m2}\idxquad 211 +X \item mirror families\idxquad 277 +X \item modules +X \subitem how to represent\idxquad 20 +X \item moduli space\idxquad 251 +X \item moduli space of curves\idxquad 253 +X \item monad\idxquad 230 +X \subitem Beilinson\idxquad 215,\,236,\,237 +X \subitem display of\idxquad 233 +X \subitem homology of\idxquad 230 +X \subitem self-dual\idxquad 234 +X \subitem type of\idxquad 230 +X \item monads +X \subitem applications of\idxquad 230 +X \item monomial +X \subitem support\idxquad 75 +X \item monomial ideal\idxquad 73,\,74 +X \item monomial order on $D_n$\idxquad 287 +X \item {\tt monomialCurveIdeal}\idxquad 18 +X \item {\tt MonomialIdeal}\idxquad 74 +X \item {\tt monomialIdeal}\idxquad 74 +X \item multiplicity\idxquad 61,\,69 +X +X \indexspace +X +X \item nilpotent orbits\idxquad 56 +X \item {\tt Normaliz}\idxquad 203 +X \item normalization\idxquad 203 +X \item normally ordered expression\idxquad 287 +X \item NP-complete\idxquad 81 +X \item {\tt nullhomotopy}\idxquad 134 +X \item number field\idxquad 277 +X +X \indexspace +X +X \item one-parameter family\idxquad 68 +X \item {\tt oo}\idxquad 48 +X +X \indexspace +X +X \item Pfaffian complex\idxquad 268 +X \item Pl\"ucker coordinate\idxquad 115,\,121,\,122,\,127 +X \item Pl\"ucker embedding\idxquad 115 +X \item Pl\"ucker ideal\idxquad 115 +X \item Poincar\'e series\idxquad 162 +X \item {\tt polarCone.m2}\idxquad 207 +X \item polarization\idxquad 92 +X \item polyhedral subdivision\idxquad 190 +X \item polynomial equations\idxquad 101,\,103 +X \subitem deficient\idxquad 101 +X \subitem overdetermined\idxquad 117 +X \item {\tt positions}\idxquad 34 +X \item {\tt prepend}\idxquad 44 +X \item presentation +X \subitem minimal\idxquad 25 +X \item {\tt presentation}\idxquad 21 +X \item primary decomposition\idxquad 30,\,77,\,81,\,84 +X \item {\tt print}\idxquad 46 +X \item printing +X \subitem to a file\idxquad 48 +X \item {\tt product}\idxquad 44 +X \item product rule\idxquad 289,\,291 +X \item projective space\idxquad 17 +X \item {\tt prune}\idxquad 25 +X +X \indexspace +X +X \item quadratic form\idxquad 113,\,121 +X +X \indexspace +X +X \item random curves\idxquad 253 +X \item random nodal curve\idxquad 254 +X \item random points\idxquad 253 +X \item rank 1 linear syzygy\idxquad 272 +X \item rational normal curve\idxquad 118 +X \item rational normal scroll\idxquad 34 +X \item rational parameterization\idxquad 56 +X \item rational quartic curve\idxquad 63,\,93 +X \item reduced Ext module\idxquad 149 +X \item reduced form\idxquad 19 +X \item reduced ring of cohomology operators\idxquad 149 +X \item Rees algebra\idxquad 64 +X \item {\tt res}\idxquad 21 +X \item resolution +X \subitem free\idxquad 21 +X \item {\tt resolution}\idxquad 150 +X \item {\tt return}\idxquad 45 +X \item Riemann-Roch theorem +X \subitem geometric\idxquad 34 +X \item ring +X \subitem making one\idxquad 47 +X \item ring of cohomology operators\idxquad 147 +X +X \indexspace +X +X \item {\tt saturate}\idxquad 29 +X \item $f$-saturated\idxquad 294 +X \item saturation\idxquad 29,\,55,\,62,\,103,\,123 +X \item {\tt scan}\idxquad 45,\,167 +X \item scheme +X \subitem affine\idxquad 55,\,64 +X \subitem arithmetic\idxquad 55 +X \subitem irreducible\idxquad 56 +X \subitem non-reduced\idxquad 62,\,69 +X \subitem over a number field\idxquad 60 +X \subitem reduced\idxquad 62 +X \item Schreyer's algorithm for free resolutions\idxquad 22 +X \item Schubert calculus\idxquad 114,\,115,\,117,\,118,\,120 +X \item scroll +X \subitem rational normal\idxquad 34 +X \item secondary polytope\idxquad 191 +X \item Segre embedding\idxquad 66 +X \item sequences\idxquad 42 +X \item Serre correspondence\idxquad 18 +X \item Serre's intersection formula\idxquad 26 +X \item {\tt set}\idxquad 50 +X \item Shape Lemma\idxquad 104,\,120 +X \item Shapiros's Conjecture\idxquad 118 +X \item sheaf +X \subitem representation of\idxquad 18 +X \item {\tt sheaf}\idxquad 26 +X \item sheaf cohomology\idxquad 26,\,222,\,224,\,225 +X \item simplicial complex\idxquad 75 +X \subitem $f$-vector\idxquad 75 +X \item singular locus\idxquad 58,\,65 +X \item singular locus of a scheme\idxquad 30 +X \item solving polynomial equations\idxquad 103,\,251 +X \subitem real solutions\idxquad 107 +X \subitem via eigenvectors\idxquad 106 +X \subitem via elimination\idxquad 104 +X \subitem via numerical homotopy\idxquad 110 +X \item {\tt source}\idxquad 22 +X \item sphere\idxquad 113,\,122,\,127 +X \item splitting theorem +X \subitem of Grothendieck\idxquad 227 +X \subitem of Horrocks\idxquad 227 +X \item stable equivalence\idxquad 228 +X \item standard pair\idxquad 83--86 +X \item {\tt standardPairs}\idxquad 85 +X \item Stanley-Reisner ideal\idxquad 75,\,191 +X \item {\tt stdio}\idxquad 46 +X \item Stickelberger's Theorem\idxquad 106 +X \item strings\idxquad 42 +X \item Sturm sequence\idxquad 107 +X \item {\tt sum}\idxquad 44 +X \item support variety\idxquad 167,\,175 +X \item symbol\idxquad 287 +X \item {\tt symbol}\idxquad 52 +X \item symbolic computation\idxquad 102 +X \item symbols\idxquad 41 +X \item symmetric algebra\idxquad 139 +X \item Syzygies of canonical curves\idxquad 263 +X +X \indexspace +X +X \item table of Betti numbers\idxquad 252 +X \item {\tt tally}\idxquad 50 +X \item {\tt target}\idxquad 22 +X \item Tate resolution\idxquad 215,\,222 +X \item tautological subbundle\idxquad 227 +X \item term order on $D_n$\idxquad 288 +X \item {\tt time}\idxquad 30 +X \item {\tt toExternalString}\idxquad 48 +X \item top dimensional part of an ideal\idxquad 30 +X \item topology of a projective variety\idxquad 29 +X \item {\tt Tor}\idxquad 28 +X \item toric Hilbert scheme\idxquad 179 +X \item toric ideal\idxquad 87,\,179 +X \item $f$-torsion free\idxquad 294 +X \item {\tt toString}\idxquad 48 +X \item trace form\idxquad 108 +X \item triangulation\idxquad 190 +X \subitem regular\idxquad 191 +X \item trigonal curve\idxquad 32 +X \item {\tt trim}\idxquad 33 +X \item twisted cubic\idxquad 18 +X +X \indexspace +X +X \item unirationality\idxquad 251,\,258 +X +X \indexspace +X +X \item {\tt value}\idxquad 48 +X \item values of a hash table\idxquad 49 +X \item variables +X \subitem local\idxquad 44 +X \item vector bundle\idxquad 226 +X \item Veronese surface\idxquad 34 +X \item vertex cover\idxquad 81 +X \item vertex ideal\idxquad 98 +X \item visible lists\idxquad 42 +X +X \indexspace +X +X \item wall ideal\idxquad 186 +X \item weight\idxquad 287 +X \item weight vector\idxquad 295 +X \item weight vector for $D_n$\idxquad 287 +X \item weight vectors +X \subitem equivalent\idxquad 199 +X \item Weyl algebra\idxquad 286 +X \item {\tt while}\idxquad 45,\,183 +X +\end{theindex} +SHAR_EOF + (set 20 01 05 25 13 55 08 'book.ind'; eval "$shar_touch") && + chmod 0644 'book.ind' || + $echo 'restore of' 'book.ind' 'failed' + if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ + && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then + md5sum -c << SHAR_EOF >/dev/null 2>&1 \ + || $echo 'book.ind:' 'MD5 check failed' +e2d1742ac3b8f5958dc18789d2276e99 book.ind +SHAR_EOF + else + shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'book.ind'`" + test 17907 -eq "$shar_count" || + $echo 'book.ind:' 'original size' '17907,' 'current size' "$shar_count!" + fi +fi +# ============= book.mst ============== +if test -f 'book.mst' && test "$first_param" != -c; then + $echo 'x -' SKIPPING 'book.mst' '(file already exists)' +else + $echo 'x -' extracting 'book.mst' '(text)' + sed 's/^X//' << 'SHAR_EOF' > 'book.mst' && +group_skip "" +SHAR_EOF + (set 20 01 05 25 13 55 08 'book.mst'; eval "$shar_touch") && + chmod 0644 'book.mst' || + $echo 'restore of' 'book.mst' 'failed' + if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ + && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then + md5sum -c << SHAR_EOF >/dev/null 2>&1 \ + || $echo 'book.mst:' 'MD5 check failed' +943bfb17ab425f7765e7406a331cf502 book.mst +SHAR_EOF + else + shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'book.mst'`" + test 14 -eq "$shar_count" || + $echo 'book.mst:' 'original size' '14,' 'current size' "$shar_count!" + fi +fi +# ============= book.tex ============== +if test -f 'book.tex' && test "$first_param" != -c; then + $echo 'x -' SKIPPING 'book.tex' '(file already exists)' +else + $echo 'x -' extracting 'book.tex' '(binary)' + sed 's/^X//' << 'SHAR_EOF' | uudecode && +begin 600 book.tex +M)2!4:&ES('1E>"!F:6QE(&AAVQN8W-E?0H@7'5S97!A8VMA9V5[;6%K96ED>"QM=6QT:6-O;'U<;6%K +M96EN9&5X"B!<9&5F7')H<&%G97M<:69O9&1<=F%L=65[<&%G97U<96QS95QT +M:&ES<&%G97-T>6QE>V5M<'1Y?5QN=6QL7'9F:6QL7&5J96-T7&9I?0HE)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24* +M)24E)24*)24E)24@8F]O:RUM86-R;W,N=&5X"B4E)24E"B4E)24E)24E)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)0H*)2!<=7-E +M<&%C:V%G97MA;7-T:&U]("4@8V%N)W0@=7-E('1H:7,A"EQUV%MV%M6UB+&QA=&5XS`N.38U +M?0I<=7-E<&%C:V%G97MV97)B871I;7T*"EQUV1I86=R86US?2`@("`@("`@("`@)2!U'D@7=A>0I<;&5T +M7&]B:F5C='-T>6QE7'5N9&5F:6YE9"`@("`@("4@>'D@7=A>0I<;&5T7&]B:F5C='=I9'1H7'5N9&5F:6YE9"`@("`@("4@ +M>'D@7=A>0I<;&5T7&]B:F5C=&AE:6=H=%QU +M;F1E9FEN960@("`@("4@>'D@7=A>0I<;&5T +M7'-T;W!<=6YD969I;F5D("`@("`@("`@("`@("4@>'D@7=A>0I<;&5T7&1I86=R86U<=6YD969I;F5D("`@("`@("`@("4@ +M>'D@7=A>0H*7'5S97!A8VMA9V5;;6%T7T*)2!<=7-E<&%C:V%G97MH>7!E`I<:6YP=70@97!S +M9BYT97@*7&YU;6)EU)E;6%R:WU[7&)FT5X86UP;&5]6W1H96]R96U=>T5X86UP;&5]>UQB9G-E +MUQR;7T*7&YE=V-O;6UA;F1[7$UT=V]]>WM<=&5X='-L>TUA +M8V%U;&%Y?C)]?5QX:7-P86-E?0I<;F5W8V]M;6%N9'M<36%C875L87E]>UQT +M97ATUQI9F-A5QO5QO65A7-T>6QE +M>W-PR,Q7&EN9&5X>R,Q?7T* +M7&YE=V-O;6UA;F1[7&EN9&5X8VUD?5LQ77M<:6YD97A[(S%`>UQT="`C,7U] +M?0H*7'-E=&-O=6YT97)[=&]C9&5P=&A]>S%]"@HE('=E(&YE960@=&AI7!H96YA=&EO;GM- +M86,M874M;&%Y?0H*7&EN<'5T(&UEUQM871H8F(@4GU] +M"EQD969<8F)B;7M[7&UA=&AB8B!-?7T*7&1E9EQB8F)N>WM<;6%T:&)B($Y] +M?0I<9&5F7&)B8F9[>UQM871H8F(@1GU]"EQD969<8F)B:'M[7&UA=&AB8B!( +M?7T*7&1E9EQB8F)K>WM<;6%T:&)B($M]?0I<9&5F7&)B8G![>UQM871H8F(@ +M4'U]"EQD969<8F)B8WM[7&UA=&AB8B!#?7T*7&1E9EQB8F)Q>WM<;6%T:&)B +M(%%]?0I<9&5F7&)B8G1[>UQM871H8F(@5'U]"EQD969<8F)BWM<;6%T:&)B(%I]?0H@7&)E9VEN>V1O8W5M96YT +M?0H@(%QF2`R+`H@("`@)2`@("`@<&1F:V5Y=V]R9',]8V]M<'5T871I;VYS("TM('-Y +M>GEG:65S("TM($UA8V%U;&%Y(#(L"B`@("`E("`@("!P9&9A=71H;W(]7&5D +M:71OT-O;7!U=&%T:6]N +MUQ,87)G95QT97AT8F9[=VET:"!<=&5X='-L>TUA8V%U;&%Y(#)]?7T* +M"5QB:6=S:VEP"@E<8FEGUQE +M9&ET;W)S?0H@("`@7'9F:6QL7&5J96-T"B`@("!<"!A;F0@+BXO8VAA<'1E3(O0V]M<'5T871I;VYS0F]O:R]C:&%P +M=&5RW-E8W1I;VY]>U!R969A8V5]"@I<8F=R;W5P +M"@I3>7-T96US(&]F('!O;'EN;VUI86P@97%U871I;VYS(&%R:7-E('1H2!E;65R9V5S+"!A6EE;&0@;F5W(&%L9V]R:71H;7,@86YD(&5M97)G:6YG"F%P<&QI8V%T:6]N +M2!A;F0@97AP97)I;65N=&%L(`IA<'!L:6-A=&EO;G,@;V8@=&AE +M;2X@($ET(&%L'!E2!B>2!I;F-R96%S:6YG(&UA=&AE;6%T:6-A;`ID:69F:6-U;'1Y+B!4 +M:&4@9FER2!C;VYC97)N960*=VET:"!I;G1R;V1U8VEN +M9R!<371W;RX@(%1H92!S96-O;F0@<&%R="!E;7!H87-I>F5S('1H90IM871H +M96UA=&EC2!O9G1E;BP@<&5R:&%P2!UTY31B!G6YO;6EA;',[(`I324Y'54Q!4BU,24)&04-< +M9F]O=&YO=&5[7'1E>'1T='M324Y'54Q!4BU,24)&04-]+`H@("`@("`@(&$@ +M'1T='M'35!]+"!A(&QI +M8G)A2!P2!4;W)B:EPB;W)N($=R86YL=6YD+`H@("`@("`@($IO:&X@06UA +M;F%T:61E2P*("`@("`@("!,:6YUBP*("`@("`@("!+979I;B!2 +M>61E+"!A;F0*("`@("`@("!'=6EL;&%U;64@2&%N'1E&5S+"!M87!S"F)E='=E96X@8VAA:6X@8V]M<&QE>&5S+"!F2!T;R!U +M7-T96T@:7,@=W)I='1E;B!I;B!T:&4@2!T:&4@:&EG:"UL979E;"!A7,@=&AE(&%NUQT="!I,5P@.EP@?5Q="DEN(')E2!E;G1E4QI;F4*7"`@("`@-CA<7`IO +M,2`]("TM7%P*7"`@("`@-35<7`I<96UP='E,:6YE"F\Q(#H@45%<7`I<96YD +M3W5T<'5T"E1H92!A;G-W97(@:71S96QF(&ES(&1IUQT="!O,5P@/2!< +M('U<72!A;F0@:71S('1Y<&4@*&]R(&-L87-S*2!I'1[7'1T +M(&\Q7"`Z7"!]7%T*5&AE('-Y;6)O;"![7'1T(%%1?2!A<'!E87)I;F<@:6X@ +M=&AI&%M<&QE(`ID96YO=&5S('1H92!C;&%SF]N=&%L +M('-C2!D969A=6QT(&ET(&1O97,@;F]T('=R87`@ +M;W5T<'5T(&QI;F5S+"!B=70@:6YS=&5A9"!L971S('1H96T@9W)O=PIW:71H +M;W5T(&)O=6YD+B`@5&AI2!A;B!A=71O +M;6%T960@;65C:&%N:7-M('1H870@&%M +M<&QE+@I<8F5G:6Y/=71P=70*:3(@.B`Q,#`A7%P*7&5M<'1Y3&EN90IO,B`] +M(#DS,S(V,C$U-#0S.30T,34R-C@Q-CDY,C,X.#4V,C8V-S`P-#DP-S$U.38X +M,C8T,S@Q-C(Q-#8X-3DR.38S.#DU("1<8V1O=%QC9&]T7&-D;W0D7%P*7&5N +M9$]U='!U=`H*3F5X="!W92!D97-CUQS;"!-871H96UA=&EC87TI +M"F%N9"!<371W;RX@($)E9F]R92!E;G1E'!R97-S:6]N(&EN +M=F]L=FEN9R!V87)I86)L97,@*'-U8V@@87,@>UQT="!X*WE]*0II;G1O(%Q- +M='=O('1H92!U7!E2QZ +M72\H>%XS+7E>,RUZ7C,I7%P*7&5M<'1Y3&EN90IO,R`](%)<7`I<96UP='E, +M:6YE"F\S(#H@475O=&EE;G12:6YG7%P*7&5N9$]U='!U=`I(879I;F<@9&]N +M92!T:&%T+"!W92!C86X@8V]M<'5T92!I;B!T:&4@2MZ*5XS7%P*7&5M<'1Y3&EN90I<("`@("`@(#(@("`@ +M("`@(#(@("`@(#,@("`@(#(@("`@("`@("`@("`@("`R("`@("`@("`R("`@ +M("`@(#(@("`@(#-<7`IO-"`](#-X('D@*R`S>"IY("`K(#)Y("`K(#-X('H@ +M*R`V>"IY*GH@*R`S>2!Z("L@,W@J>B`@*R`S>2IZ("`K(#)Z7%P*7&5M<'1Y +M3&EN90IO-"`Z(%)<7`I<96YD3W5T<'5T"E=E(&-A;B!M86ME(&UA=')I8V5S +M(&]V97(@=&AE(')I;FB!\7%P*7&5M<'1Y3&EN90I<("`@ +M("`@("`@("`@(#$@("`@("`@,UQ<"F\U(#H@36%T"!<>UQ[ +M>%XR+'E>,BQZ7C)#(@>3(@>C(@ +M?%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`Q("`@("`@(#-<7`IO-B`Z +M($UA=')I>"!2("`\+2TM(%)<7`I<96YD3W5T<'5T"E=E(&-A;B!M86ME(&UO +M9'5L97,@;W9EB!\7%P* +M7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`@("`@("`@("`@("`@(#%<7`IO +M-R`Z(%(M;6]D=6QE+"!Q=6]T:65N="!O9B!27%P*7&5N9$]U='!U=`I<8F5G +M:6Y/=71P=70*:3@@.B!.(#T@:V5R(&-<7`I<96UP='E,:6YE"F\X(#T@:6UA +M9V4@7'LR7'T@?"!X("`P("`@+7DR("UZ,B!\7%P*7"`@("`@("`@("`@7'LR +M7'T@?"`M>2`M>C(@>#(@(#`@("!\7%P*7"`@("`@("`@("`@7'LR7'T@?"`M +M>B!Y,B`@,"`@('@R("!\7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`S7%P*;S@@.B!2+6UO9'5L92P@%Q<"EQE;F1/=71P=70*5V4@8V%N(&UA:V4@<')O:F5C=&EV +M92!V87)I971I97,N"EQB96=I;D]U='!U=`II,3`@.B!8(#T@4')O:B!27%P* +M7&5M<'1Y3&EN90IO,3`@/2!87%P*7&5M<'1Y3&EN90IO,3`@.B!05Q<"EQE;F1/=71P=70*5V4@8V%N(&UA:V4@8V]H97)E;G0@ +M2X*7&)E9VEN +M3W5T<'5T"FDQ,2`Z($A(7C$@8V]T86YG96YT4VAE868@6"!<7`I<96UP='E, +M:6YE"EP@("`@("`@(#%<7`IO,3$@/2!145Q<"EQE;7!T>4QI;F4*;S$Q(#H@ +M45$M;6]D=6QE+"!F"!A;F0@;W1H97(@ +M9FQA=F]R7-T96TN($%L=&AO +M=6=H(&ET(&-A;B!B92!U7-T96US(&%R90IC=7)R96YT;'D@ +M=&AE(&5D:71OUQ-='=O?2P@82!S +M;V9T=V%R92!S>7-T96T@9F]R(')E2P*("`@("`@("!B>2!$86YI96P@4BX@1W)A>7-O;B!A;F0@36EC:&%E +M;"!%+B!3=&EL;&UA;CL*("`@("`@("!A=F%I;&%B;&4@;VYL:6YE(&EN('-O +M=7)C92!C;V1E(&9O'1T='MH='1P.B\O=W=W+FUA=&@N +M=6EU8RYE9'4O36%C875L87DR+WTN?0IA;F0@=6YP86-K('1H92!F:6QE+@I! +M;6]N9R!T:&4@UQT="!E;6%C7-T96T@861M:6YI2!O<'1I;VYA;&QY(&%R2P@ +M,C`P,2`@("`@("!<:&9I;&Q<:71S:&%P92`@($1A=FED($5I7-O;EQB`HE)24E)0HE)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24* +M"EQT=V]C;VQU;6X*7&)GUQE9W)O=7!]"@H@("`@ +M7&1E9EQA0H@("`@("`@("`@("`@("`@4V%N($9R86YC:7-C;RP@0T$@ +M.30Q,S(L(%5300H@("`@("`@("`@("`@("`@T9R86YK+4]L868@4V-H7-I:PH@("`@("`@ +M("`@("`@("`@56YI=F5R65R0'5N:2UB87ER975T:"YD90H@("`@("`@(%QE;F1A9&1R +M"@H@("`@?0H*("`@(%QV9FEL;%QE:F5C=`H*("`@(%QV8F]X('1O(#0S,B!P +M="!["@H@("`@("`@(%QA9&1R>T=R96=O0H)"4YE=R!9;W)K+"!.62`Q,#`R-RP@55-!"B`@("`@ +M("`@("`@("`@("!G9W-M:71H0&UA=&@N8F5R:V5L97DN961U"B`@("`@("`@ +M7&5N9&%D9'(*"B`@("`@("`@7&%S<&%C90H*("`@("`@("!<861D2!O9B!-87-S86-H=7-E='1S+"!!;6AE2!O9B!#86QI9F]R;FEA"B`@("`@("`@("`@("`@("!" +M97)K96QE>2P@0V%L:69OU)E:VAA(%1H;VUAU5L +M:2!786QT:&5R?0H@("`@("`@("`@("`@("`@1&5P87)T;65N="!O9B!-871H +M96UA=&EC`HE +M)24E)0HE)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E +M)24E)24E)24*"B`@7')H<&%G90H@(%QP86=E;G5M8F5R:6YG>V%R86)I8WT* +M("!<;6%I;FUA='1E<@H@(%QP87)T>TEN=')O9'5C:6YG(%Q-='=O?0H*)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E +M"B4E)24E"B4E)24E("XN+V-H87!T97)S+W9A"!A;F0@+BXO8VAA<'1ETED96%L2X@5&AE +M"FUA=&AE;6%T:6-A;&QY(&%D=F%N8V5D(')E861ET$@0W5R=F4@:6X@069F:6YE(%1H"QY+'I=7%P*7&5M<'1Y3&EN90IO,2`](%)<7`I<96UP +M='E,:6YE"F\Q(#H@4&]L>6YO;6EA;%)I;F=<7`I<96YD3W5T<'5T"E9A0IO;F4@97AP;&EC:71L>2P@=&AE +M(&UO;F]M:6%LUQT="!2?20@=VEL;"!B92!S;W)T +M960@:6X@"F=R861E9"!R979E&EC;V=R87!H:6,@;W)D97(@(%QC +M:71E6UQ3($DN,BP@1&5F:6YI=&EO;B`V77M#3$\Q?2X*5V4@9&5F:6YE(&%N +M(&ED96%L(&=E;F5R871E9"!B>2!T=V\@<&]L>6YO;6EA;',*:6X@=&AI +M-"UY7C4L('A>,RUY7C<@*5Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`@ +M(#4@("`@-"`@("`@-R`@("`S7%P*;S(@/2!I9&5A;"`H+2!Y("`K('@@+"`M +M('D@("L@>"`I7%P*7&5M<'1Y3&EN90IO,B`Z($ED96%L(&]F(%)<7`I<96YD +M3W5T<'5T"E=E(&-O;7!U=&4@=&AE(')E9'5C960@1W)<(F]B;F5R(&)A3,@?%Q<"EQE +M;7!T>4QI;F4*;S,@.B!'2!I +M;G-P96-T:6YG(&QE861I;F<@=&5R;7,@*&%N9"!UUQT="!C=7)V97T@9&]E2X@5&AI4QI;F4*;S8@/2`R.%Q<"EQE;F1/=71P=70*5&AE($=R7")O +M8FYE6YO;6EA +M;',@=VAI8V@@87)E(&YO=`II2!C;VYT86EN(&$@ +M9F%C=&]R(&]F("1X7C,D+B!4:&ES('-H;W=S('1H870@;W5R(&-U4QI;F4*7"`@("`@("`@ +M("`@("`@(#(@("`@("`@-2`@("`T("`@-2`@("`S7%P*;S<@/2!I9&5A;"`H +M>"IY("`M(#$L('D@("T@>"`L('@@("T@>2`I7%P*7&5M<'1Y3&EN90IO-R`Z +M($ED96%L(&]F(%)<7`I<96YD3W5T<'5T"D%N9"!N97AT('=E(&5X=')A8W0@ +M=&AE(&-O;7!O;F5N="!W:&EC:"!L:65S(&EN('1H92!P;&%N92`D>#TP)#H* +M7&)E9VEN3W5T<'5T"FDX(#H@8W5R=F4R(#T@4QI;F4*7"`@("`@("`@("`@("`S("`@-5Q<"F\X(#T@ +M:61E86P@*'@@+"!Y("E<7`I<96UP='E,:6YE"F\X(#H@261E86P@;V8@4EQ< +M"EQE;F1/=71P=70*5&AE('-E8V]N9"!C;VUP;VYE;G0@:7,@82!M=6QT:7!L +M92!L:6YE+B!(96YC92!O=7(@:6YP=70@:61E86P@=V%S(&YO="!R861I8V%L +M+@I4;R!T97-T(&5Q=6%L:71Y(&]F(&ED96%LUQT="`]/7U<:6YD97AC;61[/3U]("X*7&)E9VEN3W5T<'5T"FDY(#H@ +M8W5R=F4@/3T@4QI;F4*;SD@/2!F86QS +M95Q<"EQE;F1/=71P=70*5V4@;F]W(')E<&QA8V4@;W5R(&-U4QI;F4*7"`@("`@("`@("`@("`@("`R("`@("`@ +M(#4@("`@-"`@(#4@("`@,UQ<"F\Q,"`](&ED96%L("AX*GD@("T@,2P@>2`@ +M+2!X("P@>"`@+2!Y("E<7`I<96UP='E,:6YE"F\Q,"`Z($ED96%L(&]F(%)< +M7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II,3$@.B!D96=R964@8W5R=F5< +M7`I<96UP='E,:6YE"F\Q,2`](#$S7%P*7&5N9$]U='!U=`I4:&4@:61E86P@ +M;V8@=&AI4QI;F4*;S$R(#T@=')U +M95Q<"EQE;F1/=71P=70*3F]T:6-E('1H870@=&AE('9A'!L;W)E(&)AT-,3S%]+@I#;VYS:61E%XU("L@>5XU("L@>EXU +M("T@,2E<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@-2`@("`U("`@(#5< +M7`IO,3,@/2!I9&5A;"AX("`K('D@("L@>B`@+2`Q*5Q<"EQE;7!T>4QI;F4* +M;S$S(#H@261E86P@;V8@4EQ<"EQE;F1/=71P=70*5&AE('5N:6]N(&]F('1H +M92!C=7)V92!A;F0@=&AE('-U4QI;F4*7"`@("`@("`@("`@("`@-B`R("`@("`@-R`@("`@(#(@ +M-2`@("`U("`@(#4@("`@-2`@("`@(#(@("`@("`@-2`U("`@(#$@)%QC9&]T +M7&-D;W1<8V1O="1<7`IO,30@/2!I9&5A;"`H>"!Y("`K('@J>2`@*R!X*GD@ +M>B`@+2!X("`M('D@("T@>B`@+2!X*GD@("L@,2P@>"!Y("`K('D@("1<8V1O +M=%QC9&]T7&-D;W0D7%P*7&5M<'1Y3&EN90IO,30@.B!)9&5A;"!O9B!27%P* +M7&5N9$]U='!U=`I);B!T:&ES(&5X86UP;&4@=&AI4QI +M;F4*;S$U(#T@=')U95Q<"EQE;F1/=71P=70*5&AE(&EN=&5R2`@+2!X("P@>"`@+2!Y("P@>"`@*R!Y("`K +M('H@("T@,2E<7`I<96UP='E,:6YE"F\Q-B`Z($ED96%L(&]F(%)<7`I<96YD +M3W5T<'5T"EQB96=I;D]U='!U=`II,3<@.B!D:6T@;W5R<&]I;G1S7%P*7&5M +M<'1Y3&EN90IO,3<@/2`P7%P*7&5N9$]U='!U=`I4:&4@;G5M8F5R(&]F('!O +M:6YT2!F:79E.@I<8F5G:6Y/=71P=70*:3$X(#H@9&5G4QI;F4*;S$X(#T@-C5<7`I<96YD3W5T<'5T +M"D5A8V@@;V8@=&AE('!O:6YT4QI;F4*;S$Y(#T@-C5<7`I<96YD3W5T<'5T"E1H92!N=6UB97(@;V8@ +M<&]I;G1S(&-O:6YC:61EUQI="!S=&%N9&%R9"!M;VYO;6EA +M;'-]+@I<8F5G:6Y/=71P=70*:3(P(#H@"IY("P@>B`L('D@+"!X +M("E<7`I<96UP='E,:6YE"F\R,"`Z($ED96%L(&]F(%)<7`I<96YD3W5T<'5T +M"E1H92![7'1T(&)A"!X,B!X,R!X +M-"!X-'D@>#1Y>B!X-'EZ,B!X-'EZ,R!X-'EZ-"!X-'H@>#1Z,B!X-'HS('@T +M>C0@>#-Y("1<8V1O=%QC9&]T7&-D;W0D7%P*7&5M<'1Y3&EN90I<("`@("`@ +M("`@("`@("`Q("`@("`@(#8U7%P*;S(R(#H@36%TUQT="!4?2!H860@82!S:61E +M"F5F9F5C=#H@=&AE('9AUQT="!Z?2!N;W<@:&%V92!V86QU97,@:6X@=&AA=`IR:6YG+@I4;R!BUQT="!<)7U<:6YD97AC;61[7"5]+@H*7&)E9VEN +M3W5T<'5T"FDR-"`Z(&%N>4]L9%!O;'EN;VUI86P@/2!Y7C4J>%XU+7A>.2UY +M7C@K>5XS*GA>-5Q<"EQE;7!T>4QI;F4*7"`@("`@("`U(#4@("`@.2`@("`U +M(#,@("`@.%Q<"F\R-"`]('@@>2`@+2!X("`K('@@>2`@+2!Y7%P*7&5M<'1Y +M3&EN90IO,C0@.B!27%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3(U(#H@ +M86YY3VQD4&]L>6YO;6EA;"![7&-H87)@7"5](&]U4QI;F4*7"`@("`@("`T("`@("`S7%P*;S(U(#T@>"!Y("T@>"!Y7%P*7&5M +M<'1Y3&EN90IO,C4@.B!27%P*7&5N9$]U='!U=`I#;&5AF5R;R!I9B!A;F0@;VYL>2!T:&4@<&]L>6YO;6EA;"!I +M6YO;6EA;"`]('E>-2IX7C4M>%XY+7E>."MY7C,J>%XT7%P*7&5M<'1Y3&EN +M90I<("`@("`@(#4@-2`@("`Y("`@(#@@("`@-"`S7%P*;S(V(#T@>"!Y("`M +M('@@("T@>2`@*R!X('E<7`I<96UP='E,:6YE"F\R-B`Z(%)<7`I<96YD3W5T +M<'5T"EQB96=I;D]U='!U=`II,C<@.B!A;F]T:&5R4&]L>6YO;6EA;"![7&-H +M87)@7"5](&]U4QI;F4*;S(W(#T@,%Q<"EQE;7!T +M>4QI;F4*;S(W(#H@4EQ<"EQE;F1/=71P=70*"@I<2!T;R!C +M:&%N9V4@=&AE"F%M8FEE;G0@2!I2!D96-O;7!O2!D96-O;7!O2QZ +M73M<7`I<96YD3W5T<'5T"@I792!N97AT(&UO=F4@;W5R(&ED96%L(&9R;VT@ +M=&AE('!R979I;W5S('-E8W1I;VX@:6YT;R!T:&4@;F5W(')I;F<**&9O"IY +M("`M(#$L('D@("T@>"`L('@@("T@>2`L('@@("L@>2`@*R!Z("`M(#$I7%P* +M7&5M<'1Y3&EN90IO,CD@.B!)9&5A;"!O9B!2)UQ<"EQE;F1/=71P=70*7&)E +M9VEN3W5T<'5T"FDS,"`Z(&1E8V]M<&]S92!O=7)P;VEN=',G7%P*7&5M<'1Y +M3&EN90I<("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`D7&-D;W1<8V1O=%QC +M9&]T)%Q<"F\S,"`](%Q[:61E86P@*'H@*R`S-BP@>2`M(#$L('@@+2`Q*2P@ +M:61E86P@*'H@*R`Q+"!Y("T@,2P@>"`M(#$I+"!I9&5A("1<8V1O=%QC9&]T +M7&-D;W0D7%P*7&5M<'1Y3&EN90IO,S`@.B!,:7-T7%P*7&5N9$]U='!U=`I/ +M;W!S+"!T:&%T(&1I9&XG="!F:70@;VX@=&AE(&1I2`M +M(#$L('@@+2`Q*5Q<"EQE;7!T>4QI;F4*:61E86P@*'H@*R`Q+"!Y("T@,2P@ +M>"`M(#$I7%P*7&5M<'1Y3&EN90II9&5A;"`H>B`M(#8L('D@+2`Q+"!X("T@ +M,2E<7`I<96UP='E,:6YE"FED96%L("AZ("T@,30L('D@+2`Q+"!X("T@,2E< +M7`I<96UP='E,:6YE"FED96%L("AZ("T@,3"IY("T@,C=Y("`K +M(#0V>"`K('D@*R`R-RP@+2`Q-G@@("L@>"!Y("L@>"`@+2`Q-2`D7&-D;W1< +M8V1O=%QC9&]T)%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@(#(@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(#(@("`@("`@ +M("`@("`@)%QC9&]T7&-D;W1<8V1O="1<7`II9&5A;"`H+2`S,G@@("T@,39X +M*GD@*R!X*GH@+2`Q-G@@+2`R-WD@+2`S,'H@+2`Q-"P@+2`S-'@@("T@,31X +M*GD@*R!Y("1<8V1O=%QC9&]T7&-D;W0D7%P*7&5M<'1Y3&EN90I<("`@("`@ +M("`@(#(@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M(#(@("`@("`@("`@("`R("`@("`D7&-D;W1<8V1O=%QC9&]T)%Q<"FED96%L +M("@T-'@@("L@,C)X*GD@*R!X*GH@*R`R,G@@+2`R-GD@+2`S,'H@+2`V+"`Q +M.'@@("L@,3)X*GD@*R!Y("`K(#$@)%QC9&]T7&-D;W1<8V1O="1<7`I<96UP +M='E,:6YE"EP@("`@("`@("`@("`R("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@(#(@("`@("`@("`@("`R("1<8V1O=%QC9&]T +M7&-D;W0D7%P*:61E86P@*"T@-#%X("`K(#,P>"IY("L@>"IZ("L@,S!X("L@ +M,SAY("T@,S!Z("L@,2P@+2`R-G@@("T@,3!X*GD@*R!Y("`D7&-D;W1<8V1O +M=%QC9&]T)%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`R("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`R("`@("`@("`@("`@ +M,B`@)%QC9&]T7&-D;W1<8V1O="1<7`II9&5A;"`H,SEX("`M(#,Q>"IY("L@ +M>"IZ("T@,S%X("T@-#9Y("T@,S!Z("L@,S8L("T@,S)X("`M(#$S>"IY("L@ +M>2`@("1<8V1O=%QC9&]T7&-D;W0D7%P*7&5M<'1Y3&EN90I<("`@("`@("`@ +M("`@,B`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M(#(@("`@("`@("`@("`R("`D7&-D;W1<8V1O=%QC9&]T)%Q<"FED96%L("@M +M(#$P>"`@+2`U>"IY("L@>"IZ("T@-7@@+2`T,'D@+2`S,'H@+2`Q-RP@+2`S +M-W@@("L@,S5X*GD@*R!Y("`@)%QC9&]T7&-D;W1<8V1O="1<7`I<96UP='E, +M:6YE"EQE;F1/=71P=70*268@=V4@:G5S="!W86YT('1O('-E92!T:&4@9&5G +M4QI;F4*;S,R(#H@3&ES=%Q<"EQE;F1/=71P=70*3F]T92!T +M:&%T('1H92!E>'!R97-S:6]NUQT="!O;WTD(`IA;F0@)'M<='0@;V]O +M?20@"0M8V]O'1Y(&9I=F4@<&]I;G1S+@I4:&5N('=E(&UUWDL>EQ](#X@7'MX7'TD(&%S(&9O;&QO=W,Z +M"EQB96=I;D]U='!U=`II,S,@.B!3(#T@45%;>BQY+'@L($UO;F]M:6%L3W)D +M97(@/3X@16QI;6EN871E(#)=7%P*7&5M<'1Y3&EN90IO,S,@/2!37%P*7&5M +M<'1Y3&EN90IO,S,@.B!0;VQY;F]M:6%L4FEN9UQ<"EQE;F1/=71P=70*5V4@ +M;6]V92!O=7(@:61E86P@:6YT;R!T:&4@;F5W(')I;F"`M +M(#$L('D@("T@>"`L("T@>2`@*R!X("P@>B`@*R!Y("`K('@@("T@,2E<7`I< +M96UP='E,:6YE"F\S-"`Z($ED96%L(&]F(%-<7`I<96YD3W5T<'5T"F%N9"!W +M92!C;VUP=71E('1H92!R961U8V5D($=R7")O8FYE#8@>C4K +M>#4K>#0M,2!\7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`Q("`@("`@ +M(#-<7`IO,S4@.B!-871R:7@@4R`@/"TM+2!37%P*7&5N9$]U='!U=`I4;R!C +M;VUP=71E('1H92!E;&EM:6YA=&EO;B!I9&5A;"!W92!U4QI;F4*;S,V(#H@261E +M86P@;V8@4UQ<"EQE;F1/=71P=70*"EQS96-T:6]N>TUO;F]M:6%L2P@FEN9R!T:&4@8V]L;&5C=&EO;B!O9B!S=&%N9&%R9"!M +M;VYO;6EA;',L"G1H870@:7,L('1H92!M;VYO;6EA;',@=6YD97(@=&AE('-T +M86ER8V%S92!<8VET95M#:&%P=&5R(#E=>T-,3S%]+@I);B!T:&ES('-E8W1I +M;VX@=V4@9&5M;VYS=')A=&4@2!T86MI +M;F<@=&AE('1H:7)D('!O=V5R(&]F('1H92!I;FET:6%L(&UO;F]M:6%L(&9R +M;VT@;&EN92![7'1T(&DR,'TN"EQB96=I;D]U='!U=`II,S<@.B!-(#T@2`L('@@ +M>2!Z("P@>"!Y("P@>"!Y("P@>"IY('H@("P@>"IY('H@+"!X('D@>B`L('@J +M>2`@+"`D7&-D;W1<8V1O=%QC9&]T)%Q<"EQE;7!T>4QI;F4*;S,W(#H@261E +M86P@;V8@4EQ<"EQE;F1/=71P=70*5&AE(&YU;6)E4QI;F4*;S,X(#T@,C!<7`I<96YD3W5T +M<'5T"E1O('-E92!A;&P@9V5N97)A=&]R38@("!\7%P*7"`@("`@(%Q[+3$Q7'T@?"!X,GDT>C4@?%Q< +M"EP@("`@("!<>RTQ,5Q]('P@>#)Y.2`@('Q<7`I<("`@("`@7'LM,3%30@("!\7%P*7"`@("`@(%Q[+3$S7'T@?"!X>3)Z,3`@?%Q<"EP@("`@ +M("!<>RTQ,UQ]('P@>'DW>C4@('Q<7`I<("`@("`@7'LM,3-3)Z +M-2!\7%P*7"`@("`@(%Q[+3$S7'T@?"!X>3$R("`@?%Q<"EP@("`@("!<>RTQ +M,UQ]('P@>#9Y-R`@('Q<7`I<("`@("`@7'LM,3-RTQ-5Q]('P@ +M>35Z,3`@('Q<7`I<("`@("`@7'LM,35C$P("!\7%P*7"`@("`@ +M(%Q[+3$U7'T@?"!Y,3!Z-2`@?%Q<"EP@("`@("!<>RTQ-5Q]('P@>#5Y-7HU +M('Q<7`I<("`@("`@7'LM,35RTQ-5Q]('P@>#5Y,3`@('Q<7`I< +M("`@("`@7'LM,354QI;F4*7"`@("`@("`@("`@("`@,C`@("`@("`@ +M,5Q<"F\S.2`Z($UA=')I>"!2("`@/"TM+2!27%P*7&5N9$]U='!U=`I.;W1E +M('1H870@=&AI4QI;F4*;S0P(#T@-CDP7%P*7&5N9$]U='!U=`I4;R!L:7-T(&%L;"!T +M:&4@#$R('@Q,R!X,30@>#$T>2!X,31Y +M>B!X,30@)%QC9&]T7&-D;W1<8V1O="1<7`I<96UP='E,:6YE"EP@("`@("`@ +M("`@("`@(#$@("`@("`@-CDP7%P*;S0R(#H@36%TS!S%S$Q7'T@/3X@-CE<7`I<("`@("`@("`@("`@7'LQ +M,EQ](#T^(#S$T7'T@/3X@-C9<7`I<("`@("`@("`@("`@7'LQ-5Q](#T^ +M(#4S7%P*7"`@("`@("`@("`@(%Q[,39S$W7'T@/3X@,C-<7`I<("`@("`@("`@("`@7'LQ.%Q](#T^(#$R7%P* +M7"`@("`@("`@("`@(%Q[,3E4QI;F4*7"`@("`@("`@("`@("`@ +M,2`@("`@("`S7%P*;S0T(#H@36%TUQT="!Z?2!W87,*>UQT="!3?2P@UQT="!3?2X*)24@5&AE(&-U +MUQT="!3?2X@"D9O2MZ*5XQ.5Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@ +M(#$T("`@-"`@("`@("`@("`Y("`@.2`@("`@("`@(#0@("`Q-%Q<"F\T-2`] +M(#4X,30P>"`@>2IZ("`K(#DR,S2IZ("`K(#4X,30P>"!Y*GI<7`I< +M96UP='E,:6YE"F\T-2`Z(%-<7`I<96YD3W5T<'5T"D%N(&]P97)A=&EO;B!O +M;B!I9&5A;',@=VAI8V@@=VEL;"!O8V-U4QI;F4*;S0V(#H@0VAA:6Y#;VUP +M;&5X7%P*7&5N9$]U='!U=`I4:&ES('-H;W=S('1H870@;W5R(&ED96%L('M< +M='0@37T@:&%S('-I>'1E96X@;6EN:6UA;"!G96YE#-Y-B!X-WDT('@R>3D@>#)Y-'HU +M('@Q,7DR('AY,3(@>#9Y,GHU('AY-WHU('AY,GHQ,"!X,34@>3$U('@@)%QC +M9&]T7&-D;W1<8V1O="1<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@(#$@ +M("`@("`@,39<7`IO-#<@.B!-871R:7@@4B`@/"TM+2!27%P*7&5N9$]U='!U +M=`I4:&ES(&UE86YS('1H870@9F]UUQT="!O,SE]('=E"!Y('H@7'U<7`I<96UP='E,:6YE"F\T."`Z(%-E=%Q<"EQE;F1/=71P=70* +M2&5R92![7'1T(&9L871T96X@96YT"`D +M>UQT="!-?20@:6YT;R!A('-I;F=L92!L:7-T+@I4:&4@8V]M;6%N9"![7'1T +M('-E='T@='5R;G,@=&AA="!L:7-T(&EN=&\@82!S970L('1O('=H:6-H('=E +M"F-A;B!A<'!L>2!T:&4@9&EF9F5R96YC92!O<&5R871I;VX@9F]R('-E=',N +M"@I,970@=7,@;F]W('1A:V4@82!L;V]K(&%T('1H92!F:7)S="!S>7IY9VEE +MT-, +M3S%]*0IA;6]N9R`@=&AE('-I>'1E96X@;6EN:6UA;"!G96YEUQT="!#?3H*7&)E9VEN3W5T<'5T +M"FDT.2`Z($,N9&1?,EQ<"EQE;7!T>4QI;F4*;S0Y(#T@7'LY7'T@('P@+7DS +M("UX-"`P("`@+7HU(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@ +M,"`@(#`@("`P("1<8V1O=%QC9&]T7&-D;W0D7%P*7"`@("`@(%Q[,3%S$Q +M7'T@?"!X("`@,"`@("UY,R`P("`@,"`@(#`@("`P("`@,"`@(#`@("`M>C4@ +M,"`@(#`@("`P("`@,"`@(#`@)%QC9&]T7&-D;W1<8V1O="1<7`I<("`@("`@ +M7'LQ,5Q]('P@,"`@(#`@("`P("`@>'DR("UY,R`P("`@+7@T(#`@("!X-2`@ +M>34@(#`@("`M>C4@,"`@(#`@("`P("1<8V1O=%QC9&]T7&-D;W0D7%P*7"`@ +M("`@(%Q[,3-3(@(#`@("`P("`@ +M,"`@(#`@("`P("`@,"`@(#`@("`M>#0@,"`D7&-D;W1<8V1O=%QC9&]T)%Q< +M"EP@("`@("!<>S$S7'T@?"`P("`@,"`@('@@("`P("`@,"`@(#`@("`P("`@ +M+7DS(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@)%QC9&]T7&-D;W1<8V1O +M="1<7`I<("`@("`@7'LQ,UQ]('P@,"`@(#`@("`P("`@,"`@(#`@("`P("`@ +M>3(@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`M("1<8V1O=%QC9&]T +M7&-D;W0D7%P*7"`@("`@(%Q[,3-3,@,"`@(#`@("`P("`@,"`D7&-D;W1< +M8V1O=%QC9&]T)%Q<"EP@("`@("!<>S$S7'T@?"`P("`@,"`@(#`@("`P("`@ +M,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@('AY,B`M>3,@,"`@(#`@)%QC +M9&]T7&-D;W1<8V1O="1<7`I<("`@("`@7'LQ-5Q]('P@,"`@(#`@("`P("`@ +M,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@('DR("`P +M("1<8V1O=%QC9&]T7&-D;W0D7%P*7"`@("`@(%Q[,35S$U7'T@?"`P("`@ +M,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P +M("`@,"`@('D@)%QC9&]T7&-D;W1<8V1O="1<7`I<("`@("`@7'LQ-5Q]('P@ +M,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@('@@("`P +M("`@,"`@(#`@("`P("1<8V1O=%QC9&]T7&-D;W0D7%P*7"`@("`@(%Q[,35< +M?2!\(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P +M("`@,"`@(#`@("`P("`@,"`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@("!< +M>S$U7'T@?"`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P +M("`@,"`@(#`@("!X("`@,"`@(#`@)%QC9&]T7&-D;W1<8V1O="1<7`I<("`@ +M("`@7'LQ-5Q]('P@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P +M("`@,"`@(#`@("`P("`@,"`@(#`@("`P("1<8V1O=%QC9&]T7&-D;W0D7%P* +M7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`Q-B`@("`@("`R-UQ<"F\T.2`Z +M($UA=')I>"!2("`@/"TM+2!27%P*7&5N9$]U='!U=`I4:&4@9FER,R!Y7C8@)"!A;F0@=&AE('1H:7)D(&=E;F5R871O%XR('E>.20N"DET(&ES(&YA='5R86P@=&\@9F]R;2!T:&4@>UQI="!3+7!A +M:7(@9W)A<&A]('=I=&@@)#$V)"!V97)T:6-E2`@=&AITU3?2P@=&AI6=I97,L"G1H +M870@:7,L('1O('1H92!C;VQU;6YS(&]F('1H92!M871R:7@*7&)E9VEN3W5T +M<'5T"FDU,"`Z($,N9&1?,UQ<"EQE;7!T>4QI;F4*;S4P(#T@7'LQ,EQ]('P@ +M>C4@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P +M("`@?%Q<"EP@("`@("!<>S$S7'T@?"`P("`@>C4@(#`@("`P("`@,"`@(#`@ +M("`P("`@,"`@(#`@("`P("`@,"`@(#`@("!\7%P*7"`@("`@(%Q[,31C4@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@ +M,"`@('Q<7`I<("`@("`@7'LQ-%Q]('P@+7DS("UX-"`P("`@,"`@(#`@("`P +M("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@?%Q<"EP@("`@("!<>S$T7'T@ +M?"`P("`@,"`@("UY-2!Z-2`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@ +M(#`@("!\7%P*7"`@("`@(%Q[,35S$V7'T@?"`P("`@,"`@(#`@("`P("`@,"`@ +M(#`@("!Z-2`@,"`@(#`@("`P("`@,"`@(#`@("!\7%P*7"`@("`@(%Q[,39< +M?2!\(#`@("!Y,B`@,"`@(#`@("`M>#0@,"`@(#`@("`P("`@,"`@(#`@("`P +M("`@,"`@('Q<7`I<("`@("`@7'LQ-EQ]('P@>"`@(#`@("`M>3,@,"`@(#`@ +M("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@?%Q<"EP@("`@("!<>S$V +M7'T@?"`P("`@,"`@(#`@("`P("`@,"`@(#`@("`M>34@>C4@(#`@("`P("`@ +M,"`@(#`@("!\7%P*7"`@("`@(%Q[,39S$W7'T@?"`P("`@,"`@(#`@("`P("`@ +M,"`@(#`@("`P("`@,"`@(#`@("!Z-2`@,"`@(#`@("!\7%P*7"`@("`@(%Q[ +M,3=S$X7'T@?"`P("`@,"`@(#`@("`P("`@>3(@(#`@("`P("`@,"`@(#`@("`M +M>#0@,"`@(#`@("!\7%P*7"`@("`@(%Q[,3A"`@(#`@ +M("`P("`@,"`@("UY,R`P("`@,"`@(#`@("`P("`@,"`@('Q<7`I<("`@("`@ +M7'LQ.%Q]('P@,"`@(#`@("`P("`@,"`@(#`@("!Y,B`@,"`@(#`@("`P("`@ +M,"`@("UX-"`P("`@?%Q<"EP@("`@("!<>S$X7'T@?"`P("`@,"`@(#`@("!X +M("`@,"`@(#`@("`P("`@+7DS(#`@("`P("`@,"`@(#`@("!\7%P*7"`@("`@ +M(%Q[,3A3(@(#`@("`P("`@?%Q<"EP@("`@ +M("!<>S(P7'T@?"`P("`@,"`@(#`@("`P("`@,"`@(#`@("!X("`@,"`@(#`@ +M("`P("`@,"`@(#`@("!\7%P*7"`@("`@(%Q[,C!S(P7'T@?"`P("`@,"`@(#`@ +M("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@('DR("!\7%P*7"`@ +M("`@(%Q[,C!"`@(#`@("`P("`@,"`@('Q<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@ +M(#(W("`@("`@(#$R7%P*;S4P(#H@36%T"P@3&ET=&QE(&%N9"!/ +M)U-H96$@7&-I=&5[0TQ/,GTN"@I<2!T:&4@;6%T4QI;F4*;S4Q(#T@7'M<>S$L(#$L(#$L(#%2!O9B!I;G1E9V5R('!R;V=R86UM:6YG +M('!R;V)L96US+"!A(&=O;V0@4QI;F4*;S4R(#T@ +M4EQ<"EQE;7!T>4QI;F4*;S4R(#H@4&]L>6YO;6EA;%)I;F=<7`I<96YD3W5T +M<'5T"E1H92!D96=R964@;V8@96%C:"!V87)I86)L92!I2!S>7-T96TZ"EQB96=I;D]U='!U=`II-3,@.B!D96=R +M964@9%Q<"EQE;7!T>4QI;F4*;S4S(#T@7'LQ+"`Q,%Q]7%P*7&5M<'1Y3&EN +M90IO-3,@.B!,:7-T7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:34T(#H@ +M9&5G4QI;F4*;S4T(#H@3&ES=%Q<"EQE;F1/=71P=70*16%C:"!M;VYO;6EA;"!R +M97!R97-E;G1S(&$@8V]L;&5C=&EO;B!O9B!C;VEN."ID7C$P*G%>,RE<7`I<96UP='E,:6YE +M"F\U-2`](%Q[,C4L(#(Q.5Q]7%P*7&5M<'1Y3&EN90IO-34@.B!,:7-T7%P* +M7&5N9$]U='!U=`I4:&5N('EO=2!H879E(&$@=&]T86P@;V8@,C4@8V]I;G,@ +M=V]R=&@@='=O(&1O;&QAS(U+#(Q.5Q]+"!2*5Q<"EQE;7!T>4QI;F4*;S4V(#T@?"!P,31N +M,F0R<3<@<#EN.&0R<38@<#EN-60V<34@<#EN,F0Q,'$T('`T;C$T9#)Q-2!P +M-&XQ,60V<30@<#1N."`D7&-D;W1<8V1O=%QC9&]T)%Q<"EQE;7!T>4QI;F4* +M7"`@("`@("`@("`@("`@,2`@("`@("`Y7%P*;S4V(#H@36%T7,@8V%N +M('EO=2!M86ME(&-H86YG92!F;W(@=&5N(&1O;&QAS$P,"PQ,#`P7'TL(%(I7%P*7&5M<'1Y3&EN90IO-3@@/2`Q.#)<7`I<96YD +M3W5T<'5T"D$@='EP:6-A;"!I;G1E9V5R('!R;V=R86UM:6YG('!R;V)L96T@ +M:7,@=&AI&EC;V=R87!H:6,*;W)D97(@86YD('=I=&@@=&AE('9A'!O;F5N=',@;V8@;6]N;VUI86QS+"!T:&5R96)Y(&%V;VED:6YG +M(&$@<&]T96YT:6%L(&]V97)F;&]W+@H*5V4@9&5F:6YE(&%N(&ED96%L('=I +M=&@@;VYE(&=E;F5R871O"!!+@I<8F5G:6Y/=71P=70*:38P(#H@22`](&ED96%L*"!P("T@>"IY+"!N +M("T@>"IY7C4L(&0@+2!X*GE>,3`L('$@+2!X*GE>,C4I7%P*7&5M<'1Y3&EN +M90I<("`@("`@("`@("`@("`@("`@("`@("`@("`@("`U("`@("`@("`@("`Q +M,"`@("`@("`@("`@,C5<7`IO-C`@/2!I9&5A;"`H+2!X*GD@*R!P+"`M('@J +M>2`@*R!N+"`M('@J>2`@("L@9"P@+2!X*GD@("`K('$I7%P*7&5M<'1Y3&EN +M90IO-C`@.B!)9&5A;"!O9B!37%P*7&5N9$]U='!U=`I4:&4@:6YT96=E2!N;W)M86P@9F]R;2!R961U8W1I;VX@=VET +M:"!R97-P96-T"G1O('1H92!F;VQL;W=I;F<@1W)<(F]B;F5R(&)A4QI;F4*;S8Q(#T@7'LM-EQ]("!\ +M('`U<2UN-B`@("`@?%Q<"EP@("`@("!<>RTT7'T@('P@9#0M;C-Q("`@("!\ +M7%P*7"`@("`@(%Q[+3-RTT7'T@('P@>60S+7!N +M<2`@("!\7%P*7"`@("`@(%Q[+39RTW7'T@('P@ +M>3)D,G`S+6XU("!\7%P*7"`@("`@(%Q[+39RTU +M7'T@('P@>31P+6X@("`@("!\7%P*7"`@("`@(%Q[+39RTQ-EQ]('P@>3$U9"UQ("`@("!\7%P*7"`@("`@(%Q[+3=RTR7'T@('P@>&0M;C(@("`@("!\7%P*7"`@("`@(%Q[+3)< +M?2`@?"!X>2UP("`@("`@('Q<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@ +M(#$X("`@("`@(#%<7`IO-C$@.B!-871R:7@@4R`@(#PM+2T@4UQ<"EQE;F1/ +M=71P=70*5V4@9FEX('1H92!Q=6]T:65N="!R:6YG+"!S;R!T:&4@4QI;F4*;S8R +M(#T@4R=<7`I<96UP='E,:6YE"F\V,B`Z(%%U;W1I96YT4FEN9UQ<"EQE;F1/ +M=71P=70*66]U(&YE960@870@;&5A,3`@*B!Y7C$P,%Q<"EQE;7!T>4QI;F4*7"`@("`@("`R(#8@,EQ<"F\V +M,R`](&0@;B!Q7%P*7&5M<'1Y3&EN90IO-C,@.B!3)UQ<"EQE;F1/=71P=70* +M0G5T('EO=2!C86X@97AP,3`P("H@>5XQ,#`P7%P*7&5M<'1Y3&EN90I<("`@("`@(#4QI;F4*;S8T(#H@4R=<7`I<96YD +M3W5T<'5T"E1H92!I;G1E9V5R('!R;V=R86T@:7,@:6YF96%S:6)L92!I9B!A +M;F0@;VYL>2!I9B!T:&4@;F]R;6%L(&9O2!C;VEN,SD@*B!Y +M7C$P,#!<7`I<96UP='E,:6YE"EP@("`@("`@,C4@,SE<7`IO-C4@/2!Y("!Q +M7%P*7&5M<'1Y3&EN90IO-C4@.B!3)UQ<"EQE;F1/=71P=70*5V4@;F]W(&EN +M=')O9'5C92!A(&YE=R!T97)M(&]R9&5R(&]N('1H92!P;VQY;F]M:6%L(')I +M;F2P@=V4@87-S:6=N"G=E:6=H=',@9F]R(&5A +M8V@@;V8@=&AE(&-O:6YS+B!&;W(@:6YS=&%N8V4L"FQE="!P96YN:65S(&AA +M=F4@=V5I9VAT(#4L(&YI8VME;',@=V5I9VAT(#4QI;F4*;S8V(#H@4V5Q=65N8V5<7`I<96YD +M3W5T<'5T"E=E('-E="!U<"!A(&YE=R!R:6YG('=I=&@@=&AE(')EUQ[,2PQ+#`L,"PP+#!S`L,"QW +M96EG:'1-2P@9"`M +M('@J>5XQ,"P@<2`M('@J>5XR-2D[7%P*7&5N9$]U='!U=`I/;F4@9&]L;&%R +M('=I=&@@=&5N(&-O:6YS.@I<8F5G:6Y/=71P=70*:38X(#H@>%XQ,"`J('E> +M,3`P7%P*7&5M<'1Y3&EN90I<("`@("`@(#4@,B`S7%P*;S8X(#T@<"!D('%< +M7`I<96UP='E,:6YE"F\V."`Z(%1<7`I<96YD3W5T<'5T"E1E;B!D;VQL87)S +M('=I=&@@;VYE(&AU;F1R960@8V]I;G,Z"EQB96=I;D]U='!U=`II-CD@.B!X +M7C$P,"`J('E>,3`P,%Q<"EQE;7!T>4QI;F4*7"`@("`@("`V,"`S(#,W7%P* +M;S8Y(#T@<"`@;B!Q7%P*7&5M<'1Y3&EN90IO-CD@.B!47%P*7&5N9$]U='!U +M=`I(97)E(&ES(&%N(&]P=&EM86P@-38W-UQ<"EQE;7!T>4QI;F4*7"`@("`@("`R(#0@,R`R,C5< +M7`IO-S`@/2!P(&X@9"!Q7%P*7&5M<'1Y3&EN90IO-S`@.B!47%P*7&5N9$]U +M='!U=`I<8F5G:6Y[=&AE8FEB;&EO9W)A<&AY?7LQ?0H*7&)I8FET96U[0TQ/ +M,7T*1&%V:60@0V]X+"!*;VAN($QI='1L92P@86YD($1O;F%L($\G4VAE83H* +M7&YE=V)L;V-K('M<96T@261E86QS+"!V87)I971I97,L(&%N9"!A;&=OUQE +M;2!5TU3?0I%>G)A +M($UI;&QEUQE;2!!<'!L:65D"B`@06QG96)R82P@06QG96)R86EC($%L9V]R:71H +M;7,@86YD($5RUQ`87)A8FEC7&-`2]C:&%P +M=&5R+6TR+G1E>"!A;F0@+BXO8VAA<'1E"P@;6%P+"!S;W5R8V4L('1A'0L(%1O&5S+"!D9"P@0RYD9%]I+`HE)2!R +M:6YG(&UA<',N('-A='5R871E"B4E)2!$:61N)W0@<'5T(&EN(&!@86YN:6AI +M;&%T;W(G)RP@2!A;F0@2&]M;VQO9VEC86P@06QG96)R87T*7'1I +M=&QE2!A;F0@ +M2&]M;VQO9VEC86P@06QG96)R87T*7&%U=&AO2!O9B!T:&4@:&]M;VQO9VEC86P*8V]M;6%N9',@:6X@7$UT +M=V\@*&UO9'5L97,L(&9R964@`I<9&5F7%![>UQM871H8F(@4'U]("4E(%!R;VIE +M8W1I=F4@UQR;2!( +M?7T*7&1E9EQC3WM[7&-A;"!/?7T*7&1E9EQ/>WM<8V%L($]]?0I<9&5F7&ES +M;WM[7&-O;F=]?0H*26X@=&AI'MH;VUO;&]G:6-A;"!M971H;V1S(6EN=')O9'5C=&EO;B!T;WT*"E1H92!F +M:7)S="!F;W5R('-E8W1I;VYS(&-A;B!B92!R96%D(&)Y(&%N>6]N92!W:&\@ +M:VYO=W,@86)O=70*<')O:F5C=&EV92!V87)I971I97,@870@=&AE(&QE=F5L +M(&]F(&$@9FER2!A="!T:&4@;&5V +M96P@;V8@=&AE(&)O;VMS(&]F($AAUQT=`IK:WTN +M(%Q-='=O(&-A;B!W;W)K(&]V97(@86YY(&9I;FET92!F:65L9"!O9B!C:&%R +M86-T97)I'LS,C2!O9B!F:65L9',@:6X@8VAA2!D96-O;7!OV9I;FET92!F:65L9',A=7-E(&]F?0I)="!I +M0IG96YE'!L;W-I;VXN($5X +M<&5R:65N8V4@=VET:`IT:&4@2!C:&%N9V4@:6X@87,@<`HE)2!V87)I97,N +M"D]F(&-O=7)S92!O;F4@2!C;&]S960L(&5S<&5C:6%L;'D@=VAE;B!U2!W92!W:6QL(&-A;&P@;W5R(&9I96QD('M<='0@:VM].@I<8F5G:6Y/ +M=71P=70*:3$@.B!K:R`](%I:+S,R-S0Y7%P*7&5M<'1Y3&EN90IO,2`](&MK +M7%P*7&5M<'1Y3&EN90IO,2`Z(%%U;W1I96YT4FEN9UQ<"EQE;F1/=71P=70* +M)24@22!H860@=&\@;&5A=F4@=&AE(&-H87)A8W1E2!T:&%T('1H92!C;V5F9FEC:65N=',@:6X@=&AE('!O;'EN;VUI +M86QS"B4E(&1E9FEN:6YG(&ED96%L6"!A0HE)2!W;W5L9"!B92!T;R!D969I;F4@82!F=6YC +M=&EO;B!I;B!A(&9I;&4@8V%L;&5D(")M>7-T97)Y+FTR(B!T:&%T(&-O;7!U +M=&5S"B4E(&ET(&9O;B0@8GD@:71S"FAO +M;6]G96YE;W5S(&-O;W)D:6YA=&4@UQT="!R:6YG4&Y](#T@>UQT +M="!K:WU;>%\P+%QD;W1S+'A?;ETD+B`@00IP2!B92!M;W-T(&-O;G9E;FEE;G1L>0IR97!R97-E +M;G1E9"P@9&5P96YD:6YG(&]N('1H92!S:71U871I;VXL(&)Y(&ETVAO +M;6]G96YE;W5S(&-O;W)D:6YA=&4@UQT="!R:6YG4&XO:61E86Q8?2!OV-O:&5R96YT +M('-H96%F(7)E<')EUQT="!R:6YG4&Y]+"!UU-E2!T:&4@;6]D=6QE(`I[7'1T(')I;F=0;EQC:&%R8%Q> +M,2]I9&5A;%A].R!H97)E('M<='0@0I<8F5G:6Y/=71P=70*:3(@.B!R:6YG +M4#,@/2!K:UMX7S`N+GA?,UU<7`I<96UP='E,:6YE"F\R(#T@2!W:71H"EQI;F1E +M>'MM871R:7A]7&EN9&5X>VUA<"!O9B!R:6YG4QI;F4*;S,@/2!R:6YG4#%< +M7`I<96UP='E,:6YE"F\S(#H@4&]L>6YO;6EA;%)I;F=<7`I<96YD3W5T<'5T +M"EQB96=I;D]U='!U=`II-"`Z(&-U8FEC36%P(#T@;6%P*')I;F=0,2QR:6YG +M4#,L7'MS7C,L('->,BIT+"!S*G1>,BP@=%XS7'TI7%P*7&5M<'1Y3&EN90I< +M("`@("`@("`@("`@("`@("`@("`@("`@(#,@("`R("`@("`@,B`@(#-<7`IO +M-"`](&UA<"AR:6YG4#$L'MK97)N96P@;V8@82!R:6YG(&UA<'TE"EQB +M96=I;D]U='!U=`II-2`Z(&ED96%L0W5B:6,@/2!K97)N96P@8W5B:6--87!< +M7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@,B`@("`@("`@("`@("`@("`@ +M("`@("`@,EQ<"F\U(#T@:61E86P@*'@@("T@>"!X("P@>"!X("`M('@@>"`L +M('@@("T@>"!X("E<7`I<("`@("`@("`@("`@(#(@("`@,2`S("`@,2`R("`@ +M(#`@,R`@(#$@("`@,"`R7%P*7&5M<'1Y3&EN90IO-2`Z($ED96%L(&]F(')I +M;F=0,UQ<"EQE;F1/=71P=70*5V4@8V]U;&0@86QS;R!U2P@86YD('-A>0I<:6YD97AC;61[;6]N;VUI86Q# +M=7)V94ED96%L?0I<8F5G:6Y/=71P=70*:38@.B!I9&5A;$-U8FEC,B`](&UO +M;F]M:6%L0W5R=F5)9&5A;"AR:6YG4#,L7'LQ+#(L,UQ]*5Q<"EQE;7!T>4QI +M;F4*7"`@("`@("`@("`@("`@("`@("`@("`@("`@,B`@("`@("`@("`R7%P* +M;S8@/2!I9&5A;"`H>"!X("`M('@@>"`L('@@("T@>"!X("P@>"`@+2!X('@@ +M*5Q<"EP@("`@("`@("`@("`@,2`R("`@(#`@,R`@(#(@("`@,2`S("`@,2`@ +M("`P(#)<7`I<96UP='E,:6YE"F\V(#H@261E86P@;V8@2!T:&4@'T*>%\P)GA?,29X7S)<8W(*>%\Q)GA?,B9X7S,*7&5N9'MP;6%TF4@=VET:"!T:&4@8V]M;6%N9',*7&)E +M9VEN3W5T<'5T"FDW(#H@32`](&UA=')I>%Q[7'MX7S`L>%\Q+'A?,EQ]+%Q[ +M>%\Q+'A?,BQX7S-%\P('A?,2!X +M7S(@?%Q<"EP@("`@('P@>%\Q('A?,B!X7S,@?%Q<"EQE;7!T>4QI;F4*7"`@ +M("`@("`@("`@("`@("`@(#(@("`@("`@("`@("`S7%P*;S<@.B!-871R:7@@ +MVUI +M;F]R4QI;F4*7"`@("`@("`@("`@ +M("`@(#(@("`@("`@("`@("`@("`@("`@("`@("`@("`R7%P*;S@@/2!I9&5A +M;"`H+2!X("`K('@@>"`L("T@>"!X("`K('@@>"`L("T@>"`@*R!X('@@*5Q< +M"EP@("`@("`@("`@("`@("`Q("`@(#`@,B`@("`@,2`R("`@(#`@,R`@("`@ +M,B`@("`Q(#-<7`I<96UP='E,:6YE"F\X(#H@261E86P@;V8@V-O9&EM96YS:6]N?24*7&)E9VEN3W5T<'5T"FDY(#H@8V]D:6T@:61E +M86Q#=6)I8UQ<"EQE;7!T>4QI;F4*;SD@/2`R7%P*7&5N9$]U='!U=`I<:6YD +M97A[9&5G'MD:6UE;G-I;VX@;V8@82!P2!AWU&;W(@97AA;7!L92P@=&\@ +MUQT="!-?2P@=V4@ +M8V%N"G)E9'5C92!T:&4@9F]R;65R(&UO9'5L;R!T:&4@;&%T=&5R+"!A;F0@ +MV=E;G-]7&EN9&5X8VUD>V=E;F5R871O%\P>%\S('A?,5XR+7A?,'A? +M,B!\7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`@("`@(#$@("`@("`@ +M("`@("`S7%P*;S$R(#H@36%T0IW:71H"EQB96=I;D]U='!U=`II +M,30@.B!I9&5A;$-U8FEC(#T](&ED96%L0W5B:6,S7%P*7&5M<'1Y3&EN90IO +M,30@/2!T,R1]"@I<:6YD97A[8V]T86YG96YT(&)U;F1L +M97TE"DUA;GD@:6YV87)I86YT2!A(&)U;F1L92!W:71H(&ET2!F2!F2X**$]N92!C86X@ +M86QS;R!R96=A,WTD(&]F("1<4%XS)"!A;F0*:71S(')E;GU<UQ07FY]*"TQ*5Y[;BLQ?5QR5&]>9B`*7&-/7WM< +M4%YN?2!<4QI +M;F4*;S$U(#T@?"!X7S`@>%\Q('A?,B!X7S,@?%Q<"EQE;7!T>4QI;F4*7"`@ +M("`@("`@("`@("`@("`@("`Q("`@("`@("`@("`@-%Q<"F\Q-2`Z($UA=')I +M>"!R:6YG4#,@(#PM+2T@%\R("UX7S,@?%Q<"EP@("`@("`@ +M("`@("!<>S%%\S('A?,"`@,"`@("`P("`@('Q< +M7`I<("`@("`@("`@("`@7'LQ7'T@?"`M>%\S('A?,2`@,"`@("`P("`@('A? +M,"`@,"`@("!\7%P*7"`@("`@("`@("`@(%Q[,5Q]('P@>%\R("`P("`@('A? +M,2`@,"`@("`P("`@('A?,"`@?%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`T7%P*;S$V(#H@VUO9'5L97,A:&]W('1O(')E<')E4QI;F4*;S$W(#T@7'LQ7'T@?"`P("`@ +M(#`@("`@,"`@("`M>%\Q("UX7S(@+7A?,R!\7%P*7"`@("`@(%Q[,5Q]('P@ +M,"`@("`M>%\R("UX7S,@>%\P("`P("`@(#`@("`@?%Q<"EP@("`@("!<>S%< +M?2!\("UX7S,@>%\Q("`P("`@(#`@("`@>%\P("`P("`@('Q<7`I<("`@("`@ +M7'LQ7'T@?"!X7S(@(#`@("`@>%\Q("`P("`@(#`@("`@>%\P("!\7%P*7&5M +M<'1Y3&EN90I<("`@("`@("`@("`@("`@("`@(#0@("`@("`@("`@("`V7%P* +M;S$W(#H@36%TVEM86=E?24*7&)E9VEN3W5T<'5T"FDQ."`Z($]M96=A4#,]:6UA9V4@9UQ< +M"EQE;7!T>4QI;F4*;S$X(#T@:6UA9V4@7'LQ7'T@?"`P("`@(#`@("`@,"`@ +M("`M>%\Q("UX7S(@+7A?,R!\7%P*7"`@("`@("`@("`@(%Q[,5Q]('P@,"`@ +M("`M>%\R("UX7S,@>%\P("`P("`@(#`@("`@?%Q<"EP@("`@("`@("`@("!< +M>S%%\Q("`P("`@(#`@("`@>%\P("`P("`@('Q<7`I<("`@ +M("`@("`@("`@7'LQ7'T@?"!X7S(@(#`@("`@>%\Q("`P("`@(#`@("`@>%\P +M("!\7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@(#1<7`IO,3@@.B!R:6YG4#,M;6]D=6QE+"!S=6)M;V1U +M;&4@;V8@2!W87D@=&\@9VEV92!A(&UO9'5L92!I2!G96YE&-M9'MP%\Q("`P("`@(#`@("`@>%\P("!\7%P* +M7"`@("`@(%Q[,EQ]('P@>%\S("!X7S`@(#`@("`@,"`@("!\7%P*7"`@("`@ +M(%Q[,EQ]('P@+7A?,B`P("`@('A?,"`@,"`@("!\7%P*7"`@("`@(%Q[,EQ] +M('P@,"`@("!X7S(@('A?,R`@,"`@("!\7%P*7"`@("`@(%Q[,EQ]('P@,"`@ +M("`M>%\Q(#`@("`@>%\S("!\7%P*7"`@("`@(%Q[,EQ]('P@,"`@("`P("`@ +M("UX7S$@+7A?,B!\7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`@("`@ +M(#8@("`@("`@("`@("`T7%P*;S$Y(#H@36%T'MR97-O;'5T:6]N(69R965] +M7&EN9&5X8VUD>W)EV-O:V5R +M;F5L?0I<:6YD97A[8VAA:6X@8V]M<&QE>'U<:6YD97A[8V]M<&QE>'T*7&)E +M9VEN3W5T<'5T"FDR,"`Z($<@/2!R97,@8V]K97(@9EQ<"EQE;7!T>4QI;F4* +M7"`@("`@("`@("`@(#$@("`@("`@("`@(#0@("`@("`@("`@(#8@("`@("`@ +M("`@(#0@("`@("`@("`@(#%<7`IO,C`@/2!R:6YG4#,@(#PM+2!R:6YG4#,@ +M(#PM+2!R:6YG4#,@(#PM+2!R:6YG4#,@(#PM+2!R:6YG4#,@(#PM+2`P7%P* +M7"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("!<7`I<("`@("`@,"`@("`@("`@("`@ +M,2`@("`@("`@("`@,B`@("`@("`@("`@,R`@("`@("`@("`@-"`@("`@("`@ +M("`@-5Q<"EQE;7!T>4QI;F4*;S(P(#H@0VAA:6Y#;VUP;&5X7%P*7&5N9$]U +M='!U=`IA;F0@=&AE;B!S964@86QL('1H92!M871R:6-E&-M9'MD9'U<:6YD97A[9&EF9F5R96YT:6%L +M'MC;VUP;&5X(61I9F9E%\Q('A?,B!X7S,@?%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`@("`T +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`V7%P*7"`@("`@(#$@.B!R:6YG4#,@(#PM+2TM+2TM+2TM+2TM+2TM +M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2!R:6YG4#,@(#H@,EQ<"EP@("`@ +M("`@("`@("`@("`@("`@("!<>S%S%%\Q("!X7S(@('Q<7`I<96UP='E,:6YE"EP@("`@("`@ +M("`@("`@("`@-B`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`T7%P*7"`@("`@(#(@.B!R:6YG4#,@(#PM+2TM+2TM+2TM+2TM+2TM +M+2TM+2TM+2TM+2TM+2TM(')I;F=0,R`@.B`S7%P*7"`@("`@("`@("`@("`@ +M("`@("`@(%Q[,EQ]('P@>%\R("!X7S,@(#`@("`@,"`@("!\7%P*7"`@("`@ +M("`@("`@("`@("`@("`@(%Q[,EQ]('P@+7A?,2`P("`@('A?,R`@,"`@("!\ +M7%P*7"`@("`@("`@("`@("`@("`@("`@(%Q[,EQ]('P@>%\P("`P("`@(#`@ +M("`@>%\S("!\7%P*7"`@("`@("`@("`@("`@("`@("`@(%Q[,EQ]('P@,"`@ +M("`M>%\Q("UX7S(@,"`@("!\7%P*7"`@("`@("`@("`@("`@("`@("`@(%Q[ +M,EQ]('P@,"`@("!X7S`@(#`@("`@+7A?,B!\7%P*7"`@("`@("`@("`@("`@ +M("`@("`@(%Q[,EQ]('P@,"`@("`P("`@('A?,"`@>%\Q("!\7%P*7&5M<'1Y +M3&EN90I<("`@("`@("`@("`@("`@(#0@("`@("`@("`@("`@("`@("`@("`@ +M("`@,5Q<"EP@("`@("`S(#H@S-S-S-S-4QI;F4* +M7"`@("`@("`@("`@("`@("`Q7%P*7"`@("`@(#0@.B!R:6YG4#,@(#PM+2TM +M+2`P(#H@-5Q<"EP@("`@("`@("`@("`@("`@("`@("`P7%P*7&5M<'1Y3&EN +M90IO,C$@.B!#:&%I;D-O;7!L97A-87!<7`I<96YD3W5T<'5T"F]R(&IU2!T:&4@'MD9%Q? +M:4![7'1T(&1D7%]I?2P@:2UT:"!D:69F97)E;G1I86P@;V8@82!C;VUP;&5X +M?0I<8F5G:6Y/=71P=70*:3(R(#H@1RYD9%\R7%P*7&5M<'1Y3&EN90IO,C(@ +M/2!<>S%S%%\Q +M("!X7S(@('Q<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@("`@("`@-"`@ +M("`@("`@("`@(#9<7`IO,C(@.B!-871R:7@@2!T:&4@W,Q +M?2X*7&EN9&5X>U-C:')E>65R)W,@86QG;W)I=&AM(&9O'1R86-T('1H +M:7,@:6YF;W)M871I;VX@;VYE(&UO9'5L92!A="!A('1I;64@=VET:`IT:&4@ +M8V]M;6%N9"![7'1T(&1E9W)E97-]+"!AW-O=7)C97U<:6YD97AC;61[=&%R9V5T?0I<8F5G:6Y/ +M=71P=70*:3(S(#H@9&5GUQ[,EQ]+"!<>S)S)4QI;F4*;S(S(#H@3&ES=%Q<"EQE;F1/=71P=70* +M7&)E9VEN3W5T<'5T"FDR-"`Z(&1E9W)E97,@=&%R9V5T($4QI;F4*;S(T(#T@7'M<>S%S%4QI;F4*;S(U(#T@=&]T86PZ(#$@-"`V(#0@,5Q<"EP@("`@ +M("`@("`@,#H@,2`T(#8@-"`Q7%P*7&5N9$]U='!U=`I<:6YD97A[0F5T=&D@ +M9&EA9W)A;7U<:6YD97A[9&EA9W)A;2P@0F5T=&E]7&EN9&5X8VUD>V)E='1I +M?24*5&AE(&1I86=R86T@6UM971R:6,@97AA;7!L +M92P@UQT="!R:6YG4#-<8VAA +M"X*7&)E9VEN3W5T<'5T"FDR-B`Z(&T@/2!M871R:7A<>UQ[>%\P7C,L('A? +M,5XR+"!X7S(L>%\S7'TL7'MX7S%>,RQX7S)>,BQX7S,L,%Q]7'U<7`I<96UP +M='E,:6YE"F\R-B`]('P@>%\P7C,@>%\Q7C(@>%\R('A?,R!\7%P*7"`@("`@ +M('P@>%\Q7C,@>%\R7C(@>%\S(#`@("!\7%P*7&5M<'1Y3&EN90I<("`@("`@ +M("`@("`@("`@("`@(#(@("`@("`@("`@("`T7%P*;S(V(#H@36%T"`L("T@>"!X("`K('@@>"`L("T@>"`@*R!X('@@+"`M +M>"!X("P@+7@@>"`L("UX("E<7`I<("`@("`@("`@("`@("`@(#$@("`@,"`R +M("`@("`Q(#(@("`@,"`S("`@("`R("`@(#$@,R`@("`Q(#,@("`@,B`S("`@ +M(#-<7`I<96UP='E,:6YE"F\R-R`Z($ED96%L(&]F(')I;F=0,UQ<"EQE;F1/ +M=71P=70*7&)E9VEN3W5T<'5T"FDR."`Z($8@/2!R97,H%Q<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDR.2`Z(&)E='1I($9<7`I< +M96UP='E,:6YE"F\R.2`]('1O=&%L.B`Q(#8@."`S7%P*7"`@("`@("`@("`P +M.B`Q("X@+B`N7%P*7"`@("`@("`@("`Q.B`N(#$@+B`N7%P*7"`@("`@("`@ +M("`R.B`N(#(@,B`N7%P*7"`@("`@("`@("`S.B`N(#(@,B`N7%P*7"`@("`@ +M("`@("`T.B`N(#$@-"`S7%P*7&5N9$]U='!U=`H*5&AE(')EWU&7S!<;%1O($9?,5QL5&\@1E\R7&Q4;R!&7S-<;%1O(#`N"B0D"E1H +M92!T;W`@,2])?2!W92!A2!T:&%T"G1H92!I9&5A;"![7'1T($E](&ES +M(&UI;FEM86QL>2!G96YE"`D;20N(`H*5&AE(&9I2P@82!N +M=6UB97(@)&$D(&]C8W5R2!S965N+@H*"@H*7'-E8W1I;VY[5&AE($-O=&%N9V5N +M="!"=6YD;&4@;V8@82!0UQI="!C;VYOV-O;F]R;6%L('-E<75E +M;F-E?0HH2&%R='-H;W)N92!<8VET95M02`*>WUF;W)M +M2!T:&4@7&EE>TIA8V]B:6%N(&UA=')I>'T@)"AD9E]I+V1X7VHI)"X@ +M"@H*>WU&:7)S="!O9B!A;&PL('=E(&UUUQ07FY]7&]T:6UE;GTD +M('1O("18)"X@5&AE('-I;7!L97-T(&%P<')O86-H('=O=6QD(&)E"G1O('1A +M:V4@=&AE('1E;G-O2!F2`D7&-/7U@D+B!#;VYS97%U96YT +M;'D*)%Q/;65G85][7%!>;GU<;W1I;65S(%QC3U]8)"!I;B0N"DEN(%Q- +M='=O+"!W;W)K:6YG(&]N("1<4%XS)"P@=VET:"`D6"0@=&AE('1W:7-T960@ +M8W5B:6,L('=E"F-A;B!T,2]I +M9&5A;$-U8FEC*2E<7`I<96UP='E,:6YE"F\S,2`]('-U8G%U;W1I96YT("A< +M>S%%\S("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("`@ +M("`@7'LQ7'T@?"!X7S(@("UX7S,@,"`@("!X7S$@(#`@("`@+7A?,R!X7S`@ +M(#`@("`@,"`@("`@)%QC9&]T7&-D;W1<8V1O="1<7`I<("`@("`@("`@("`@ +M("`@("`@(%Q[,5Q]('P@,"`@("!X7S(@("UX7S,@,"`@("!X7S$@(#`@("`@ +M,"`@("!X7S`@(#`@("`@("1<8V1O=%QC9&]T7&-D;W0D7%P*7"`@("`@("`@ +M("`@("`@("`@("!<>S%4QI;F4*7"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@(#1<7`IO,S$@.B!R:6YG4#,M;6]D=6QE+"!S=6)Q=6]T:65N="!O9B!R +M:6YG4#-<7`I<96YD3W5T<'5T"BA4:&4@;W!EUQT="!<8VAA-'TN"EQI;F1E>&-M9'MJ86-O8FEA;GT*7&)E9VEN3W5T<'5T +M"FDS,B`Z(&1E;'1A,2`](&IA8V]B:6%N(&ED96%L0W5B:6-<7`I<96UP='E, +M:6YE"F\S,B`](%Q[,5Q]('P@,"`@("`M>%\S("UX7S(@?%Q<"EP@("`@("!< +M>S%%\R("`R>%\Q('Q<7`I<("`@("`@7'LQ7'T@?"`R>%\R +M('A?,2`@+7A?,"!\7%P*7"`@("`@(%Q[,5Q]('P@+7A?,2`M>%\P(#`@("`@ +M?%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`@("`@("`T("`@("`@("`@ +M("`@,UQ<"F\S,B`Z($UA=')I>"!R:6YG4#,@(#PM+2T@UQT="!D96QT83%] +M(&EN('1EUQT="`O+WT*9&]E4QI;F4*;S,S(#T@7'LR7'T@ +M?"`P("`Q("`P("!\7%P*7"`@("`@(%Q[,EQ]('P@,B`@,"`@,"`@?%Q<"EP@ +M("`@("!<>S)S)S)"!T;R!F;W)M('1H90IN96-EVUA +M<"!O9B!M;V1U;&5S?0I<8F5G:6Y/=71P=70*:3,T(#H@9&5L=&$@/2!M87`H +M3VUE9V%0,W)ES)< +M?2!\(#(@(#`@(#`@('Q<7`I<("`@("`@7'LR7'T@?"`P("`P("`P("!\7%P* +M7"`@("`@(%Q[,EQ]('P@,"`@,"`@,B`@?%Q<"EP@("`@("!<>S)S)&-M9'MP%\S(#`@("`@+3$P.3$W>%\S('A? +M,B`@("`@(#`@("`@("`@(#`@("`@("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@ +M("`@("`@("`@("`@("!<>S)%\R("`@("1<8V1O=%QC9&]T7&-D +M;W0D7%P*7"`@("`@("`@("`@("`@(%Q[,EQ]('P@>%\S("`@("`@('A?,B`@ +M,"`@("`@("`@(#`@("`@("`@(#`@("`@("`@(#`@("`@("`D7&-D;W1<8V1O +M=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("!<>S)%\R("`@("`@,"`@("`@("1< +M8V1O=%QC9&]T7&-D;W0D7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@-EQ<"F\S-2`Z(')I;F=0,RUM;V1U +M;&4L('%U;W1I96YT(&]F(')I;F=0,UQ<"EQE;F1/=71P=70*5V4@:&%V92!U +M2X@ +M"@I4:&4@;6]D=6QE('M<='0@3VUE9V%#=6)I8WT@2X*02!B971T +M97(@,"A<3VUE9V%?6"AD*2DD+B!792!C86X@870@;&5A +MV1<9V5Q(#!](%Q(7C`H7$]M96=A7U@H9"DI)"!W:71H +M"EQI;F1E>'MS:&5A9B!C;VAO;6]L;V=Y?5QI;F1E>'MC;VAO;6]L;V=Y(7-H +M96%F?5QI;F1E>&-M9'M(2'U<:6YD97AC;61[4QI;F4*;S,V(#T@8V]K97)N96P@7'LQ7'T@?"`Q-C,W-'A?,R`Q +M-C,W-'A?,B`Q-C,W-'A?,2!\7%P*7"`@("`@("`@("`@("`@(%Q[,5Q]('P@ +M>%\R("`@("`@>%\Q("`@("`@>%\P("`@("`@?%Q<"EQE;7!T>4QI;F4*7"`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(#)<7`IO,S8@ +M.B!R:6YG4#,M;6]D=6QE+"!Q=6]T:65N="!O9B!R:6YG4#-<7`I<96YD3W5T +M<'5T"E1H92!L87)G92!C;V5F9FEC:65N=',@87!P96%R:6YG(&EN('1H92!M +M871R:7@@87)I2!T:&4@=VAO;&4@;6]D=6QE"G1H870@=V4@=V%N=&5D +M(2`H268@=&AI0IO9B!A;&P@=&AE('1W +M:7-T2!C;VUP=71E9"P@5Q<"EQE;F1/=71P +M=70*7&)E9VEN3W5T<'5T"FDS."`Z(&-O=&%N9V5N=%-H96%F($-U8FEC7%P* +M7&5M<'1Y3&EN90IO,S@@/2!C;VMES%%\Q("!X +M7S`@('Q<7`I<("`@("`@("`@("`@("`@7'LQ7'T@?"`M>%\S("UX7S(@+7A? +M,2!\7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`R7%P*;S,X(#H@8V]H97)E;G0@UQI="!D=6%L:7II +M;F<@TAA'MC;W1A;F=E;G0@8G5N9&QE?5QI;F1E>'MC86YO;FEC86P@8G5N +M9&QE?5QI;F1E>'MD=6%L:7II;F<@2!M;W)E(&5F9FEC:65N="D@;65T:&]D(&]F(&-O;7!U +M=&EN9R!T:&ES"F1U86QI>FEN9R!S:&5A9B!B>2!UVEN +M=&5RU-EUQR;2!D:6U](%D@/2!N)"!A;F0@=&AA="!T +M:&4@='=O"FUE970@:6X@82!Z97)O+61I;65NT)E>F]U +M="=S(%1H96]R96U`0EPG97IO=70G'ML96YG=&@@;V8@82!M +M;V1U;&5]"B1<8T]?>U@L<'U<;W1I;65S7WM<8T]?>UQ07FXL<'U](%QC3U][ +M62QP?20L"F%N9"!A="!F:7)S="!I="!W87,@;F%I=F5L>2!A&%M<&QE(&EN("1[7&)F(%!]7C0D('-H +M;W=I;F<@=&AA=`IT:&4@;F%I=F4@=F%L=64@8V%N(&)E('=R;VYG.B!I;B!I +M="P@=&AE('-C:&5M92`D6"0@:7,@82`R+7!L86YE"F%N9"!T:&4@UQR;2!D96=R965]*%DI(#T@ +M,B0L(`I"7"=E>F]U="=S(%1H96]R96T@%\T75Q<"EQE;7!T>4QI;F4*;S,Y(#T@"`@*R!X("P@ +M>"`@*R!X("E<7`I<("`@("`@("`@("`@("`Q("`@(#,@("`R("`@(#1<7`I< +M96UP='E,:6YE"F\T,"`Z($ED96%L(&]F(')I;F=0-%Q<"EQE;F1/=71P=70* +M7&)E9VEN3W5T<'5T"FDT,2`Z(&ED96%L3#$@/2!I9&5A;"AX7S$L>%\R*5Q< +M"EQE;7!T>4QI;F4*;S0Q(#T@:61E86P@*'@@+"!X("E<7`I<("`@("`@("`@ +M("`@("`Q("`@,EQ<"EQE;7!T>4QI;F4*;S0Q(#H@261E86P@;V8@"`L('@@ +M*5Q<"EP@("`@("`@("`@("`@(#,@("`T7%P*7&5M<'1Y3&EN90IO-#(@.B!) +M9&5A;"!O9B!R:6YG4#1<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II-#,@ +M.B!I9&5A;%D@/2!I;G1E4QI;F4*;S0S(#T@:61E86P@*'@@>"`L('@@>"`L('@@>"`L('@@>"`I7%P* +M7"`@("`@("`@("`@("`@,B`T("`@,2`T("`@,B`S("`@,2`S7%P*7&5M<'1Y +M3&EN90IO-#,@.B!)9&5A;"!O9B!R:6YG4#1<7`I<96YD3W5T<'5T"EQB96=I +M;D]U='!U=`II-#0@.B!D96=R964H:61E86Q8*VED96%L62E<7`I<96UP='E, +M:6YE"F\T-"`](#-<7`I<96YD3W5T<'5T"E1H870@:7,L(`IT:&4@;&5N9W1H +M(&]F(`HD7&-/7WM8+'!]7&]T:6UEUDL +M<'TD"FES(#,@F%T:6]N+BD*"DET('=A2!C86X@8F4@9FEX960@:6X@82!S:6UP;&4* +M=V%Y('1H870@=V]R:W,@9F]R(&%L;"!I;G1EUDL<'T]"EQM871H;W![7')M(%1OUDL<'TI"B0D"G=I=&@@=&AE(&%L=&5R;F%T:6YG('-U;2!O +M9B!T:&4@5&]R(&9U;F-T;W)S"B0D"EQS=6U?:2@M,2E>:2!<;6%T:&]P>UQR +M;2!L96YG=&A]"EQM871H;W![7')M(%1O;GTL<'T@?0H@("`@("`@("`@("`@("`H7&-/7WM8+'!]+"!<8T]?>UDL +M<'TI+@HD)`I);B!<371W;R!W92!C86X@<')O8V5E9"!A4QI +M;F4*;S0U(#T@,UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDT-B`Z(&1E +M9W)E92!4;W)?,2AR:6YG4#1>,2]I9&5A;%@L(')I;F=0-%XQ+VED96%L62E< +M7`I<96UP='E,:6YE"F\T-B`](#%<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U +M=`II-#<@.B!D96=R964@5&]R7S(H +M,2]I9&5A;%DI7%P*7&5M<'1Y3&EN90IO-#<@/2`P7%P*7&5N9$]U='!U=`I4 +M:&4@;W1H97(@5&]R)W,@87)E(#`@8F5C875S92!T:&4@<')O:F5C=&EV90ID +M:6UE;G-I;VX@;V8@>UQT="!R:6YG4#1<8VAA4QI;F4*7"`@("`@("`@("`@ +M(#$@("`@("`@("`@(#(@("`@("`@("`@(#%<7`IO-#@@/2!R:6YG4#0@(#PM +M+2!R:6YG4#0@(#PM+2!R:6YG4#0@(#PM+2`P7%P*7"`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("!<7`I<("`@("`@,"`@("`@ +M("`@("`@,2`@("`@("`@("`@,B`@("`@("`@("`@,UQ<"EQE;7!T>4QI;F4* +M;S0X(#H@0VAA:6Y#;VUP;&5X7%P*7&5N9$]U='!U=`I4:'5S+"!I;F1E960L +M('1H92!A;'1E2!I +M;B`D7%!>,R1]"@I);B!T:&4@9FEL92![7'1T(&UY"!X("`M('@@>"!X("`K('@@ +M>"`L('@@>"`@+2`Q,#DQ-7@@>"!X("`M(#$P.3$W>"`D7&-D;W1<8V1O=%QC +M9&]T)%Q<"EP@("`@("`@("`@("`@(#$@("`@(#`@,2`S("`@(#$@,B`S("`@ +M(#`@,R`@(#`@,2`@("`@("`@(#`@,2`R("`@("`@("`@("1<8V1O=%QC9&]T +M7&-D;W0D7%P*7&5M<'1Y3&EN90IO-3$@.B!)9&5A;"!O9B!R:6YG4#-<7`I< +M96YD3W5T<'5T"E=E(&-A;B=T('-E92!A;&P@=&AE(&=E;F5R871OUQT="!P%\P*GA?,5XR*GA?,RUX7S%>,BIX +M7S(J>%\S*WA?,%XR*GA?,UXR+%Q<"GA?,%XR*GA?,5XR+3$P.3$U*GA?,"IX +M7S%>,BIX7S(M,3`Y,3%\P7C,J>%\S*S$P.3$V*GA?,%XR*GA?,BIX7S,M +M7%P*7"`@(#$P.3$V*GA?,"IX7S)>,BIX7S,M,3`Y,38J>%\Q*GA?,UXS+%Q< +M"GA?,"IX7S%>,BIX7S)>,BLQ,3DP.2IX7S!>-"IX7S,K-3DU-"IX7S!>,RIX +M7S(J>%\S*S(Y-S%\P7C(J>%\R7C(J>%\S*UQ<"EP@("`Q,3DQ,"IX7S`J +M>%\R7C,J>%\S+3(Y-S@J>%\Q7C,J>%\S7C(K,30X.#%\P*GA?,2IX7S-> +M,RM<7`I<("`@,3$Y,3`J>%\Q*GA?,BIX7S->,RQ<7`IX7S`J>%\Q7C,J>%\R +M+3$S,#DY*GA?,5XS*GA?,EXR+38U-3`J>%\P7C,J>%\Q*GA?,RU<7`I<("`@ +M,3,Q,#`J>%\P7C(J>%\Q*GA?,BIX7S,M-C4U,"IX7S`J>%\Q*GA?,EXR*GA? +M,RLQ,S`Y.2IX7S$J>%\R7C,J>%\S*UQ<"EP@("`Q,S$P,"IX7S%>,BIX7S-> +M,RLQ,S`Y.2IX7S`J>%\S7C0L7%P*>%\P7C4K-2IX7S!>,BIX7S)>,RLU*GA? +M,"IX7S)>-"TS*GA?,"IX7S%>,RIX7S,M-"IX7S%>,RIX7S(J>%\S*UQ<"EP@ +M("`T*GA?,%XR*GA?,2IX7S->,BLQ,"IX7S`J>%\Q*GA?,BIX7S->,BLU*GA? +M,2IX7S)>,BIX7S->,BQ<7`IX7S%>,BIX7S)>-"TX.3,R*GA?,%XT*GA?,BIX +M7S,K,3$Y,#DJ>%\P7C,J>%\R7C(J>%\S*S4Y-30J>%\P7C(J>%\R7C,J>%\S +M+5Q<"EP@("`X.3,T*GA?,"IX7S)>-"IX7S,M>%\R7C4J>%\S*S(J>%\P*GA? +M,5XS*GA?,UXR+34Y-3(J>%\Q7C,J>%\R*GA?,UXR+5Q<"EP@("!X7S!>,BIX +M7S$J>%\S7C,M,CDW.2IX7S`J>%\Q*GA?,BIX7S->,RTX.3,T*GA?,2IX7S)> +M,BIX7S->,RMX7S->-EQ<"EQE;F1/=71P=70*26UA9VEN92!T:&%T('EO=2!F +M;W5N9"!Y;W5R4QI;F4* +M;S4S(#T@6%Q<"EQE;7!T>4QI;F4*;S4S(#H@4')O:F5C=&EV959A'MT;W!O;&]G>2!O9B!A('!R;VIE8W1I=F4@ +M=F%R:65T>7T*=&AE(&YU;6)E7T@*'=E(&=I=F4@2!C:&5C:VEN9R!W:&5T:&5R('1H +M92!I9&5A;"!IW-A='5R871E +M?5QI;F1E>'MS871U2!S871U2!S;VUE('IE"!X("`M('@@>"!X("`K('@@>"`L('@@>"`@+2`Q,#DQ-7@@>"!X("`M +M(#$P.3$W>"`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@("`@(#$@ +M("`@(#`@,2`S("`@(#$@,B`S("`@(#`@,R`@(#`@,2`@("`@("`@(#`@,2`R +M("`@("`@("`@("1<8V1O=%QC9&]T7&-D;W0D7%P*7&5M<'1Y3&EN90IO-38@ +M.B!)9&5A;"!O9B!R:6YG4#-<7`I<96YD3W5T<'5T"EQI;F1E>'MT;W`@9&EM +M96YS:6]N86P@<&%R="!O9B!A;B!I9&5A;'TE"B4E($1A;B!T:&4@7&EN9&5X +M(&-O;6UA;F0@86)O=F4@'1R82!S<&%C92!C;VUEUQT="!I9&5A;%AT;W!](&UO9'5L;R![7'1T(&ED96%L +M6'T*86YD('-E92!W:&5T:&5R('=E(&=E="`P.@I<8F5G:6Y/=71P=70*:34W +M(#H@*&=E;G,@:61E86Q8=&]P*7M<8VAAUQT="!8?0II2!O;F4M9&EM96YS:6]N86P@4QI;F4*;S4X(#T@-%Q< +M"EQE;F1/=71P=70*)25$86XL(%-A;64@W-I;F=U;&%R(&QO8W5S(&]F(&$@2!T;R!D96-I9&4@:7,@=&\@=7-E('1H +M92!C;VUM86YD('M<='0@9&5C;VUP;W-E?2P*=VAI8V@@UQT +M="!K:WTN(`I4:&4@;&5N9W1H"F]F('1H:7,@;&ES="P*7&)E9VEN3W5T<'5T +M"FDU.2`Z(",@9&5C;VUP;W-E(&ED96%L6%Q<"EQE;7!T>4QI;F4*;S4Y(#T@ +M,5Q<"EQE;F1/=71P=70*7&EN9&5X8VUD>V1E8V]M<&]S97U<:6YD97A[9&5C +M;VUP;W-E(&$@=F%R:65T>7TE"EQI;F1E>'MP2!W86YT('1O(&MN;W<@:7,*=VAE=&AE'MI2!I2!R961U8V5D('-C:&5M92![7'1T(%A](&]V +M97(@82!P97)F96-T"GM]9FEE;&0@*'-U8V@@87,@;W5R(&9I;FET92!F:65L +M9"![7'1T(&MK?2D@=&AIUQR;2!D:6U]7&YO;&EM:71S7WM< +M='0@:VM]7&UA=&AO<'M<,%QC3U]8)"X*5V4@8V]M +M<'5T92!I="!W:71H"EQB96=I;D]U='!U=`II-C`@.B!(2%XP($]/7UA<7`I< +M96UP='E,:6YE"EP@("`@("`@(#%<7`IO-C`@/2!K:UQ<"EQE;7!T>4QI;F4* +M;S8P(#H@:VLM;6]D=6QE+"!F4QI;F4*;S8Q(#T@,5Q<"EQE;F1/ +M=71P=70*5&AI&-M9'MT +M:6UE?0IT;R!T:&4@8F5G:6YN:6YG(&]F('1H92!L:6YE('=H97)E('1H92!C +M;VUM86YD('1O(&)E('1I;65D"G-T87)TV=E +M;G5S(&]F(&$@8W5R=F5]"DAE2!B92!D +M969I;F5D(&%S('1H92!D:6UE;G-I;VX@;V8*=&AE('-P86-E("1<;W!ETA]7&YO;&EM:71S7C%<8T]?6"0N(`I792!C86X@9V5T('1H:7,@ +M,2!/3U]87%P*7&5M +M<'1Y3&EN90I<("`@("`@("`V7%P*;S8R(#T@:VM<7`I<96UP='E,:6YE"F\V +M,B`Z(&MK+6UO9'5L92P@9G)E95Q<"EQE;F1/=71P=70*5&AE(&=E;G5S(&]F +M('1H92!C=7)V92!IUQT="!8?2!I;B`D7%!>,R0@:7,@9&5T97)M:6YE9`IB>2!T +M:&4@9&5G7!E2!2:65M86YN+5)O8V@@=&AE(&5M8F5D9&EN9R!L +M:6YE(&)U;F1L92!E:71H97(@:7,@=&AE(&-A;F]N:6-A;`IB=6YD;&4@;W(@ +M:&%S(&9I5Q<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDV-2`Z($A(7C$H +M*$]/7U`S*#$I+VED96%L6"DH/CTP*2E<7`I<96UP='E,:6YE"F\V-2`](&-O +M:V5R;F5L('P@>%\S('A?,B!X7S$@>%\P('Q<7`I<96UP='E,:6YE"EP@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`Q7%P*;S8U(#H@ +M&%M:6YE('1H92!D96=R964@;V8@=&AE(&=E;F5R871O4QI;F4*;S8V +M(#H@3&ES=%Q<"EQE;F1/=71P=70*)2!.;W1E('1H92!C;VYS=')U8W1I;VX@ +M>UQT="!R:6YG4#-<8VAAV$L8BQ<9&]TUQT="!R:6YG4#-](&-O,WTH82E<;W!L=7,@7&-/7WM<4%XS?2AB*5QO<&QUUQT="!D +M=6%L36]D=6QE7&-H87)@7%]<>S!'!R97-S:6]N(&%N9"!T:&4@;6%T%\P+'A?,2QX7S(L>%\S*7TD+`IC;VYC96YT2!B965N +M"F-O;7!U=&5D.R!I="!I'MC86YO;FEC86P@96UB961D:6YG +M?0H*5V4@;F5X="!AT-L:69F;W)D(&EN9&5X?2!A`IO9B`D6"0@"G=E(&9IUQI="!#;&EF9F]R +M9"!I;F1E>"!O9B!A(&QI;F4@8G5N9&QE7"]]("1,)`IO;B`D6"0@=&\@8F4* +M)%QM871H;W![7')M(&1E9W)E97TH3"DM,BA<;6%T:&]P>UQR;2!H?5QN;VQI +M;6ETWU&;W(@97AA;7!L92P@=&AE($-L:69F;W)D(&EN +M9&EC97,@;V8@=&AE('-TUQR;2!H?5QN;VQI;6ET'MC=7)V92%H>7!EV-U +M2!C=7)V +M92!I2!M:6YUWU&;W(@82!C=7)V92!O9B!G96YU7!E"P@;VX@=&AE"F]T:&5R +M(&AA;F0@:7,@96ET:&5R(#`@*'1H92!H>7!EW1R:6=O;F%L(&-U3H*2!A +M('-U8G-E'M' +MF%R"!T:&%T(&1E<&5N9',@;VYL>2!O;@IN=6UE +M2`*8V]M +M<'5T:6YG('1H92!C86YO;FEC86P@96UB961D:6YG(&]F("18)"X@5V4@8V]U +M;&0@<')O8V5E9`IT;R!F:6YD('1H92!<:65[8V%N;VYI8V%L(&)U;F1L97T* +M87,@:6X@=&AE(&-O;7!U=&%T:6]N(&9O,R0@86)O=F4L(&]R(&EN +M9&5E9`IA2P@87,@9&5S8W)I8F5D("AF;W(*97AA;7!L92D@:6X@=&AE(&)O;VL@ +M;V8@06QT;6%N(&%N9"!+;&5I;6%N(%QC:71E>V%K?2X@5&AE(`IM;V1U;&4@ +M)%QO<&QUUQR;2!(?5QN;VQI;6ET&-M9'M%>'1] +M"EQB96=I;D]U='!U=`II-C<@.B!O;65G85@@/2!%>'1>*&-O9&EM(&ED96%L +M6"DH7'LM-%Q]*5Q<"EQE;7!T>4QI +M;F4*;S8W(#T@8V]K97)N96P@7'LP7'T@('P@.3,U.7A?,R`@("`@("`@("`@ +M+30V-S=X7S,@("`@("`@("`M,3`Q,#5X7S$@("`@("1<8V1O=%QC9&]T7&-D +M;W0D7%P*7"`@("`@("`@("`@("`@(%Q[,%Q]("!\(#$R,#$T>%\Q("`@("`@ +M("`@(#(U-3)X7S$@("`@("`@("`@,C8R-GA?,"`@("`@("`D7&-D;W1<8V1O +M=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("!<>RTQ7'T@?"!X7S!X7S,M,C4U +M,WA?,GA?,R!X7S%>,BTQ-S`R>%\R>%\S('A?,'A?,2TX,#@V>%\@)%QC9&]T +M7&-D;W1<8V1O="1<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`S7%P*;S8W(#H@0IM;VYO;6]R<&AI +MF5R;R!M87`*>WUF4QI;F4*;S8X(#T@%\P +M7C-X7S)>,BLQ,#DQ-7A?,%XR>%\R7C,K.#`W>%\P>%\R7C0K-#`T,WA?("1< +M8V1O=%QC9&]T7&-D;W0D7%P*7"`@("`@("`@("`@("`@("`@("!<>S!%\P>%\Q>%\R7C,K-C`V,WA?,7A?,EXT*S$Q.#(P>%\P>%\Q7C)X +M7R`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("`@("`@7'LQ +M7'T@?"`Q,#$P-7A?,%XR>%\R7C(M,3$S,C)X7S!X7S)>,RLQ,3,R,GA?,EXT +M*S@S.38@)%QC9&]T7&-D;W1<8V1O="1<7`I<96UP='E,:6YE"EP@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`S7%P*;S8X(#H@ +MUQT="!D=6%L36]D=6QE7&-H87)@7%]<8VAAS!<8VAA%\P7C-X7S)>,BLQ +M,#DQ-7A?,%XR>%\R7C,K.#`W>%\P>%\R7C0K-#`T,WA?,EXU*S%\P7C-X7S)>,BLQ,#DQ-7A?,%XR +M>%\R7C,K.#`W>%\P>%\R7C0K-#`T,WA?,EXU*SUQT="!C86Y' +M96YS?0I<8F5G:6Y/=71P=70*:3%\P+BYX7S5= +M7%P*7&5M<'1Y3&EN90IO-S,@/2!R:6YG4#5<7`I<96UP='E,:6YE"F\W,R`Z +M(%!O;'EN;VUI86Q2:6YG7%P*7&5N9$]U='!U=`IA;F0@=&AE;B!C;VUP=71E +M('1H92!C86YO;FEC86P@:61E86P@87,@=&AE"FMEUQT="!R:6YG6'T@ +M=VET:`I<:6YD97AC;61[=')I;7T*7&)E9VEN3W5T<'5T"FDW-"`Z(&ED96%L +M6&-A;B`]('1R:6T@:V5R;F5L(&UA<"AR:6YG6"P@4QI;F4*7"`@("`@("`@("`@("`@,B`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@)%QC9&]T7&-D +M;W1<8V1O="1<7`IO-S0@/2!I9&5A;"`H>"`@*R`U,#0P>"!X("`M(#@U-C5X +M('@@("T@,3$U.#EX('@@+"!X('@@("T@-C`T.'@@>"`@+2`Q("1<8V1O=%QC +M9&]T7&-D;W0D7%P*7"`@("`@("`@("`@("`@,R`@("`@("`@,"`U("`@("`@ +M("`R(#4@("`@("`@("`T(#4@("`Q(#,@("`@("`@(#`@-2`@("`@)%QC9&]T +M7&-D;W1<8V1O="1<7`I<96UP='E,:6YE"F\W-"`Z($ED96%L(&]F(')I;F=0 +M-5Q<"EQE;F1/=71P=70*2&5R92!T:&4@8V]M;6%N9"![7'1T('1R:6U](&ES +M('5S960@=&\@97AT"P@=V4@97AA;6EN92!T:&4@ +M"GM]9G)E92!R97-O;'5T:6]N('=I=&@*7&)E9VEN3W5T<'5T"FDW-2`Z(&)E +M='1I(')E7!E,20L"G1H96X@=&AE(&9I8F5RU)I96UA;FXM4F]C:"!T:&5O7,@=&AA="!I9B`*)"0* +M<%\Q+%QD;W1S+'!?9%QI;B!87'-U8G-E="!<4%YG"B0D"F%R92!P;VEN=',@ +M;VX@82!C86YO;FEC86QL>2!E;6)E9&1E9"!C=7)V92`D6"0L"G1H96X@=&AE +M(&1I;65N'!L86EN2!T:&4@:61E86P@;V8@80IT2!W:&EC:"!IW!O4QI;F4*;S"`@+2`Q,34X +M.7@@>"`L('@@>"`@+2`V,#0X>"!X("`M(#$@)%QC9&]T7&-D;W1<8V1O="1< +M7`I<("`@("`@("`@("`@("`S("`@("`@("`P(#4@("`@("`@(#(@-2`@("`@ +M("`@(#0@-2`@(#$@,R`@("`@("`@,"`U("`@("`D7&-D;W1<8V1O=%QC9&]T +M)%Q<"EQE;7!T>4QI;F4*;S4QI;F4*;S-20@8GD@=&AE(&QI;F5A2!O9B`D4R0N +M(%1H92!M;W-T('!O=V5R9G5L('1O;VP*>WUF;W(@3L@=V4@=VEL;"!U,B0L"G=H:6QE('1H92!H>7!E +M,B0N(%1H=7,@=&AE(&EN=F5R7!E +M +M,2]I9&5A;%,L(')I;F=0-5Y<>RTV7'TI7%P*7&5M<'1Y3&EN90IO-SD@/2!C +M;VMES)4QI;F4*7"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@(#-<7`IO-SD@.B!R:6YG4#4M;6]D=6QE+"!Q=6]T:65N="!O +M9B!R:6YG4#5<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II.#`@.B!/4R`] +M(')I;F=0-5XQ+VED96%L4UQ<"EQE;7!T>4QI;F4*;S@P(#T@8V]K97)N96P@ +M?"!X7S->,BLU,#0P>%\P>%\U+3@U-C5X7S)X7S4M,3$U.#EX7S1X7S4@>%\Q +M>%\S+38P-#AX7R`D7&-D;W1<8V1O=%QC9&]T)%Q<"EQE;7!T>4QI;F4*7"`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(#%<7`IO.#`@ +M.B!R:6YG4#4M;6]D=6QE+"!Q=6]T:65N="!O9B!R:6YG4#5<7`I<96YD3W5T +M<'5T"@I792!W86YT('1H92!S<75A4QI +M;F4*;S@Q(#T@8V]K97)N96P@7'LT7'T@?"`T,#,R>%\U("`P("`@("`@(#$T +M.#$Q>%\U("TT,#,R>%\S("`@(#8U-#EX7S,@("`@("1<8V1O=%QC9&]T7&-D +M;W0D7%P*7"`@("`@("`@("`@("`@(%Q[-%Q]('P@>%\S("`@("`@>%\R("`@ +M("!X7S$@("`@("`M>%\T("`@("`@("!X7S`M,30R.3%X7R`D7&-D;W1<8V1O +M=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("!<>S1%\U(#8U +M-#EX7S,@,S8R>%\U("`@>%\Q+38R-#AX7S,@,"`@("`@("`@("`@)%QC9&]T +M7&-D;W1<8V1O="1<7`I<("`@("`@("`@("`@("`@7'LT7'T@?"`P("`@("`@ +M("`P("`@("`@(#`@("`@("`@(#`@("`@("`@("`@(#`@("`@("`@("`@("1< +M8V1O=%QC9&]T7&-D;W0D7%P*7"`@("`@("`@("`@("`@(%Q[-%Q]('P@,"`@ +M("`@("`@,"`@("`@("`P("`@("`@("`P("`@("`@("`@("`P("`@("`@("`@ +M("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("!<>S1S12!N;W0@8F4@*&ES(&YO="P@:6X@=&AIWUF:6YD('1H92!M;V1U;&4@;V8@86QL('1W +M:7-T960@9VQO8F%L('-E8W1I;VYS"F]F('M<='0@;VUE9V$R4WT@8GD@=&%K +M:6YG('1H92!D;W5B;&4@9'5A;`I<8F5G:6Y/=71P=70*:3@R(#H@;VUE9V$R +M4R`]($AO;2A(;VTH;VUE9V%3*BIO;65G85,L($]3*2Q/4RE<7`I<96UP='E, +M:6YE"F\X,B`](&-O:V5R;F5L(%Q[,UQ]('P@>%\S7C(K-3`T,'A?,'A?-2TX +M-38U>%\R>%\U+3$Q-3@Y>%\T>%\U('A?,7A?,RTV,"`D7&-D;W1<8V1O=%QC +M9&]T)%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@(#%<7`IO.#(@.B!R:6YG4#4M;6]D=6QE+"!Q=6]T:65N +M="!O9B!R:6YG4#5<7`I<96YD3W5T<'5T"@I792!S964@9G)O;2!T:&4@;W5T +M<'5T('1H870@=&AIRTQ7'TI*5Q<"EQE;7!T>4QI;F4*;S@S(#T@%\R*S$V,3@U>%\T("`@('A?,"TQ-#(Y,7A?-"`M-3,U.7A? +M,2LQ("1<8V1O=%QC9&]T7&-D;W0D7%P*7"`@("`@("`@("`@("`@("`@("!< +M>RTQ7'T@?"`M,30X.'A?,2TQ,#4Y.'A?,R`@("`M-C4T.7A?,R`@("`@+3$Q +M-S@Y>%\U("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("`@ +M("`@7'LM,5Q]('P@>%\P*S%\R("`@("`@("`@ +M('A?,2LV-34Q>%\@)%QC9&]T7&-D;W1<8V1O="1<7`I<96UP='E,:6YE"EP@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`S7%P* +M;S@S(#H@%\S("1<8V1O=%QC9&]T7&-D;W0D7%P*7"`@("`@("`@("`@("`@("`@("!\ +M('A?,B`@("`@("`@("`@("`@("`@('A?,"TQ-#(Y,7A?-"`@("`@(#0P,S)X +M7S,@("`@)%QC9&]T7&-D;W1<8V1O="1<7`I<("`@("`@("`@("`@("`@("`@ +M('P@>%\Q*S8U-3%X7S,@("`@("`@("`@+34S-3EX7S$K,30T,#EX7S,@+3DX +M-S1X7S4@("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EQE;7!T>4QI;F4*7"`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(#-<7`IO.#0@ +M.B!R:6YG4#4M;6]D=6QE+"!S=6)Q=6]T:65N="!O9B!R:6YG4#5<7`I<96YD +M3W5T<'5T"EQB96=I;D]U='!U=`II.#4@.B!B971T:2!G96YE2!C:&]O +MUQT="!/4WTL +M(&9O&%M<&QE"EQB96=I;D]U='!U=`II.#8@.B!G(#T@:&]M;VUO%\P +M*S%\R('A?,2LV-34Q>%\S('Q<7`I<96UP='E, +M:6YE"F\X-B`Z($UA=')I>%Q<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDX +M-R`Z('1O4#(@/2!G*F)A%\P*S%\R('A?,2LV-34Q>%\S('Q<7`I<96UP +M='E,:6YE"F\X-R`Z($UA=')I>%Q<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T +M"FDX."`Z(')I;F=88V%N(#T@4QI +M;F4*;S@X(#T@%\R75Q<"EQE;7!T>4QI;F4*;S@Y(#T@"`@*R`Q,C0Q.'@@>"`@+2`R-S0V +M>"`@)%QC9&]T7&-D;W1<8V1O="1<7`I<("`@("`@("`@("`@(#`@("`@("`@ +M("`P(#$@("`@("`@("`P(#$@("`@("`@(#`@,2`@("`@("`@(#`@,2`@("`@ +M("`@,2`D7&-D;W1<8V1O=%QC9&]T)%Q<"EQE;7!T>4QI;F4*;SDP(#H@261E +M86P@;V8@2!C;VUP=71E9"!T:&4@2!A(&UU8V@@'1B;V]K+6QE=F5L(&5X<&]S:71I;VX@;V8@=&AE"G-O65R*2X@"E1H92!R96%D97(@=VAO('=O +M=6QD(&QI:V4@=&\@9V\@9G5R=&AE2!O9B!H;W<@861J=6YC=&EO;B!T:&5O +M`H*7'-E8W1I;VY[2&]W('1H92!@8$UY2WUF:65L9"!O9B!R871I +M;VYA;"!N=6UB97)S('M<='0@45%]*2P*86YD(&9O2`D6"0@86)O=F4N"@I3=&%R="!W:71H('1H +M92!&97)M870@<75I;G1I8R!I;B!T:&4@<&QA;F4*7&)E9VEN3W5T<'5T"FDY +M,2`Z(')I;F=0,B`](&MK6WA?,"XN>%\R75Q<"EQE;7!T>4QI;F4*;SDQ(#T@ +M-2MX7S%>-2MX7S)>-2E<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@ +M-2`@("`U("`@(#5<7`IO.3(@/2!I9&5A;"AX("`K('@@("L@>"`I7%P*7"`@ +M("`@("`@("`@("`P("`@(#$@("`@,EQ<"EQE;7!T>4QI;F4*;SDR(#H@261E +M86P@;V8@2!T:&4@5F5R +M;VYE%\U75Q<"EQE +M;7!T>4QI;F4*;SDT(#T@4QI;F4*7"`@("`@("`@("`@("`@,B`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@(#(@("`@("`@("`@("`@("`@("`@)%QC9&]T7&-D +M;W1<8V1O="1<7`IO.34@/2!I9&5A;"`H>"`@+2!X('@@+"!X('@@("T@>"!X +M("P@>"!X("`M('@@>"`L('@@("T@>"!X("P@>"!X("`M('@@("1<8V1O=%QC +M9&]T7&-D;W0D7%P*7"`@("`@("`@("`@("`@-"`@("`S(#4@("`R(#0@("`@ +M,2`U("`@,B`S("`@(#$@-"`@(#(@("`@,"`U("`@,2`R("`@(#`@)%QC9&]T +M7&-D;W1<8V1O="1<7`I<96UP='E,:6YE"F\Y-2`Z($ED96%L(&]F(')I;F=0 +M-5Q<"EQE;F1/=71P=70*>WU&:6YA;&QY+"!C:&]O4QI;F4*;SDV(#H@475O=&EE;G12:6YG7%P*7&5N9$]U='!U=`I<8F5G:6Y/ +M=71P=70*:3DW(#H@=7-E(')I;F=#-5Q<"EQE;7!T>4QI;F4*;SDW(#T@WA?,"MX7S$L>%\R+'A?,RQX7S54QI;F4*7"`@("`@ +M("`@("`@("`@-"`@("`@("`R("`@("`@,B`@("`@("`@,B`R("`@,B`R("`@ +M("`@("`@("`R("`@("`@("`@("`@)%QC9&]T7&-D;W1<8V1O="1<7`IO.3@@ +M/2!I9&5A;"`H>"`@+2`R>"!X('@@("T@>"!X('@@("L@>"!X("P@>"!X("`M +M(#$P.3$U>"!X('@@("T@,3`Y,3=X("1<8V1O=%QC9&]T7&-D;W0D7%P*7"`@ +M("`@("`@("`@("`@,2`@("`@,"`Q(#,@("`@,2`R(#,@("`@,"`S("`@,"`Q +M("`@("`@("`@,"`Q(#(@("`@("`@("`@)%QC9&]T7&-D;W1<8V1O="1<7`I< +M96UP='E,:6YE"F\Y."`Z($ED96%L(&]F(')I;F=0,UQ<"EQE;F1/=71P=70* +M3&5T)W,@8VAE8VL@=&AA="!T:&ES(&ES('1H92!S86UE(&ED96%L(&%S('1H +M870@;V8@=&AE(&UY2X*7&)E9VEN3W5T<'5T"FDY.2`Z +M(&ED96%L0R`]/2!I9&5A;%A<7`I<96UP='E,:6YE"F\Y.2`]('1R=65<7`I< +M96YD3W5T<'5T"DAE5Q<"EQE;7!T>4QI;F4*;S$P +M,"`]("TM(&UY2`](')I +M;F=0,R`M/B`H7%P*7"`@("`@("`@("!K:R`Z/2!C;V5F9FEC:65N=%)I;F<@ +M"`Z/2!L;V-A;"!X.UQ<"EP@("`@("`@ +M("`@%\R73M<7`I<("`@("`@("`@(&ED96%L +M0S(@.CT@:61E86PH>%\P7C4K>%\Q7C4K>%\R7C4I.UQ<"EP@("`@("`@("`@ +M%\U73M<7`I<("`@("`@("`@(&ED96%L0S4@.CT@=')I +M;2!K97)N96P@;6%P*')I;F=#,BP@%Q[7'MX7S`K>%\Q+'A?,BQX +M7S,L>%\U7'UUQT="!P4QI;F4*;S$P +M,2`]("TM(&UY5!R:6YT +M(#T@9B`M/B`H7%P*7"`@("`@("`@("`M+2!A8V-E<'0@82!M871R:7@@9B!A +M;F0@<')I;G0@:71S(&5N=')I97,@<')E='1I;'DL7%P*7"`@("`@("`@("`M +M+2!S97!A6YO;6EA;"P@=VET:"!C;VUM87-<7`I<("`@("`@("`@(&ES +M=&%T92`Z/2`H(B(L,"D[7%P*7"`@("`@("`@("`M+2!I;FET:6%L('-T871E +M(#T@*&]U="`Z(&]U='!U="!S=')I;FR(K(BPB+2)5Q]+%Q<"EP@("`@("`@("`@ +M("`@("`@("`@*&1E;&EM:71E5Q<"EP@("`@("`@ +M("`@("`@("`@("`@("`@*2DI*3M<7`I<("`@("`@("`@('!R:6YT('-T86-K +M('-TW1H96)I8FQI;V=R87!H>7U[,3!]"@I<8FEB:71E;7MA:WT*06QL96X@06QT +M;6%N(&%N9"!3=&5V96X@2VQE:6UA;CH*7&YE=V)L;V-K('M<96T@26YTUQB9B![<'U]7'-P(#0D+@I<;F5W8FQO8VL@>UQE +M;2!);G1E65R.@I<;F5W8FQO8VL@3F]N+6=E;F5R86P@='EP92!S=7)F86-EUQB9B![<'U]7'-P(#0D.B!S;VUE(')E;6%R:W,@;VX@8F]U;F1S"B`@ +M86YD(&-O;G-T2`H0F5R:V5L97DL"B`@0T$L(#$Y.3@I+@H*7&)I8FET96U[ +M94-!?0I$879I9"!%:7-E;F)U9#H*7&YE=V)L;V-K('M<96T@0V]M;75T871I +M=F4@86QG96)R87TN"EQN97=B;&]C:R!3<')I;F=E2X*"EQB:6)I=&5M>V=L?0I-87)K($=R965N(&%N9"!2 +M;V)E2!O9B!C;VUP;&5T92!L:6YE87(@UQE;2!);G9E;G0N($UA=&@N +M?2P@.#,H,2DZ-S,M+3DP+"`Q.3@U+@H*7&)I8FET96U[2&%RUQE;2!!;&=E8G)A:6,@9V5O;65TTAA7TN"EQN97=B;&]C:R!3<')I;F=EW,M9'T*0BY^4V%I;G0M1&]N870Z"EQN97=B;&]C +M:R!/;B![4'UE=')I)W,@86YA;'ES:7,@;V8@=&AE(&QI;F5A7-T96T@ +M;V8@<75A9')I8W,@=&AR;W5G:"!A"B`@8V%N;VYI8V%L(&-UUQE;2!-871H+B!!;FXN?2P@,C`V.C$U-RTM,3GEG:65S(&]F(&-A;F]N:6-A;"!C=7)V97,@86YD('-P96-I86P@;&EN96%R +M('-EW,Q?0I&65R.@I<;F5W8FQO8VL@02!S=&%N9&%R9"!B87-I7IY9VEEUQE;2!* +M+B!296EN92!!;F=E=RX@36%T:"Y]+"`T,C$Z.#,M+3$R,RP@,3DY,2X*"EQB +M:6)I=&5M>U-ETU]=6QT:7!L:6-I=%PG97-]+@I<;F5W +M8FQO8VL@4W!R:6YG97(M5F5R;&%G+"!"97)L:6XL(#$Y-C4N"EQN97=B;&]C +M:R!#;W5RW1H96)I8FQI;V=R87!H>7T*("!<96=R;W5P"B!<;6%K96%T;&5T +M=&5R"B!<T1A=&$@5'EP97,L($9U +M;F-T:6]NT1A;FEE;"!2+B!' +MU5N:79ETTR?2X*7&5N9'MA8G-TT)AV1A=&$@='EP97-](&]F(%Q-='=O(&EN +M8VQU9&4@;G5M8F5R"!N=6UB97)S*2P@;&ES=',@*&)A&-E<'0@9F]R('1H92!S:6UP;&5S="!T>7!E7,@=&AE('1Y +M<&4@;V8@=&AE(&]U='!U="!V86QU92!O;B!A"G-E8V]N9"!L86)E;&5D(&]U +M='!U="!L:6YE+@H*4WEM8F]L'MS>6UB;VQS?2!H879E(&$@;F%M +M92!W:&EC:"!C;VYS:7-T4QI;F4*;S,@/2`Q,C8W-C4P-C`P,C(X +M,C(Y-#`Q-#DV-S`S,C`U,S2![ +M7'1T("TM?2!A;F0@97AT96YD('1O('1H92!E;F0@;V8@=&AE(&QI;F4N"EQB +M96=I;D]U='!U=`II-R`Z("AW+'4QI;F4*;S@@/2!A8F-D +M969G:&EJ7%P*7&5N9$]U='!U=`I4:&5Y(&UA>2!B92!J;VEN960@:&]R:7IO +M;G1A;&QY('1O(&UA:V4@;&]N9V5R('-T7!EV%R'1S+@I<8F5G:6Y/=71P=70*:3$W(#H@,2`N+B`V7%P*7&5M +M<'1Y3&EN90IO,3<@/2`H,2P@,BP@,RP@-"P@-2P@-BE<7`I<96UP='E,:6YE +M"F\Q-R`Z(%-E<75E;F-E7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3$X +M(#H@82`N+B!F7%P*7&5M<'1Y3&EN90IO,3@@/2`H82P@8BP@8RP@9"P@92P@ +M9BE<7`I<96UP='E,:6YE"F\Q."`Z(%-E<75E;F-E7%P*7&5N9$]U='!U=`I, +M:7-T'@@/2!< +M>W@Q+'@R+'@S7'U<7`I<96UP='E,:6YE"F\Q.2`](%Q[7'LQ+"!A7'TL("@R +M+"!B*2P@6S,L(&,L(&0L(&5=7'U<7`I<96UP='E,:6YE"F\Q.2`Z($QIUQT="!<(WTN"EQB96=I;D]U='!U=`II,C`@.B`C +M>'A<7`I<96UP='E,:6YE"F\R,"`](#-<7`I<96YD3W5T<'5T"E1H92!E;G1R +M:65S(&EN(&$@;&ES="!A",P7%P*7&5M +M<'1Y3&EN90IO,C$@/2!<>S$L(&%4QI;F4*;S(Q(#H@3&ES +M=%Q<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDR,B`Z('AX(S`C,5Q<"EQE +M;7!T>4QI;F4*;S(R(#T@85Q<"EQE;7!T>4QI;F4*;S(R(#H@4WEM8F]L7%P* +M7&5N9$]U='!U=`I792!C86X@:F]I;B!V:7-I8FQE(&QIUQS;"!P3L@:68@=&AE(&%R +M9W5M96YT7!E#,L9BE<7`I<96UP='E,:6YE"F\R-"`](%LS+"!C+"!D+"!E+"!F75Q<"EQE +M;7!T>4QI;F4*;S(T(#H@07)R87E<7`I<96YD3W5T<'5T"EQI;F1E>'ML:7-T +MV%P<&5N9'TE"EQB96=I;D]U='!U=`II +M,C4@.B!P#,I7%P*7&5M<'1Y3&EN90IO,C4@/2!;9BP@,RP@ +M8RP@9"P@95U<7`I<96UP='E,:6YE"F\R-2`Z($%RUQT="!PS$L,BPS+#14QI;F4*;S(V(#T@,3!<7`I<96YD3W5T<'5T"EQI;F1E>&-M9'MS=6U])0I< +M8F5G:6Y/=71P=70*:3(W(#H@<')O9'5C="!<>S$L,BPS+#14QI;F4*;S(W(#T@,C1<7`I<96YD3W5T<'5T"EQI;F1E>&-M9'MPUQS;"!< +M:65[9G5N8W1I;VYS?7TN("!!(&9U;F-T:6]N"FES(&-R96%T960@=7-I;F<@ +M=&AE(&]P97)A=&]R('M<='0@+5QC:&%R8%P^?5QI;F1E>&-M9'LM/GT@=&\@ +M2!E>&%M<&QE(&]F(&$@9G5N8W1I;VX@=VET +M:"!T=V\@87)G=6UE;G1S+@I<8F5G:6Y/=71P=70*:3(X(#H@9B`]("AX+'DI +M("T^(#$P,#`@*B!X("L@>5Q<"EQE;7!T>4QI;F4*;S(X(#T@9EQ<"EQE;7!T +M>4QI;F4*;S(X(#H@1G5N8W1I;VY<7`I<96YD3W5T<'5T"E1H92!P87)A;65T +M97)S('M<='0@>'T@86YD('M<='0@>7T@87)E('-Y;6)O;',@=&AA="!W:6QL +M(&%C<75I&5C=71E9"X@(%1H97D@87)E('M<W9A2!A2!D:69F97)E;G0@9G)O;2!A;GD@2!O9B!A(&9U;F-T:6]N +M"F-A;B!B92!C&-M9'LZ/7T**&9I +M2DN("!792!I;&QU"QY*2`M/B`H>B`Z/2`Q,#`P("H@>#L@>B`K('DI7%P*7&5M<'1Y3&EN +M90IO,CD@/2!F7%P*7&5M<'1Y3&EN90IO,CD@.B!&=6YC=&EO;EQ<"EQE;F1/ +M=71P=70*3&5T)W,@87!P;'D@=&AE(&9U;F-T:6]N('1O('-O;64@87)G=6UE +M;G1S+@I<8F5G:6Y/=71P=70*:3,P(#H@9B@S+#4QI +M;F4*;S,S(#H@4E)<7`I<96YD3W5T<'5T"D$@8V]M<&%C="!N;W1A=&EO;B!F +M;W(@9G5N8W1I;VYS(&UA:V5S(&ET(&-O;G9E;FEE;G0@=&\@87!P;'D@=&AE +M;0IW:71H;W5T(&YA;6EN9R!T:&5M(&9I2!UV%P<&QY?7M<='0@87!P;'E]('1O(&%P<&QY +M(&$*9G5N8W1I;VX@=&\@979E2@Q("XN(#$P+"!I("T^(&E>,RE<7`I<96UP='E,:6YE +M"F\S-"`]("@Q+"`X+"`R-RP@-C0L(#$R-2P@,C$V+"`S-#,L(#4Q,BP@-S(Y +M+"`Q,#`P*5Q<"EQE;7!T>4QI;F4*;S,T(#H@4V5Q=65N8V5<7`I<96YD3W5T +M<'5T"E1H92!F=6YC=&EO;B!<:6YD97AC;61[4QI;F4* +M;S,V(#T@*#$L(#(P,#`L(#,L(#0P,#`L(#4L(#8P,#`L(#4QI;F4*;S,V(#H@4V5Q=65N8V5<7`I<96YD3W5T +M<'5T"D$@9G5N8W1I;VX@8V%N(&)E('1E4QI;F4*;S,W(#H@4V5Q=65N8V5<7`I<96YD3W5T<'5T"DQO +M;W!S(&EN(&$@<')O9W)A;2!C86X@8F4@:6UP;&5M96YT960@=VET:"!<:6YD +M97AC;61[=VAI;&5]>UQT="!W:&EL92`N+BX@9&\@+BXN?2X*7&)E9VEN3W5T +M<'5T"FDS."`Z(&D@/2`Q.R!W:&EL92!I(#P@-3`@9&\@*'!R:6YT(&D[(&D@ +M/2`R*FDI7%P*,5Q<"C)<7`HT7%P*.%Q<"C$V7%P*,S)<7`I<96YD3W5T<'5T +M"D%N;W1H97(@=V%Y('1O(&EM<&QE;65N="!L;V]P&-M9'MF;W)]>UQT="!F;W)](&%N9`I<:6YD97AC;61[9&]]>UQT="!D;WT@ +M;W(@>UQT="!L:7-T?2P@=VET:"!O<'1I;VYA;`IC;&%U7=OUQT="!W:&5N?2X*7&)E9VEN3W5T<'5T"FDT,"`Z(&9O,UQ<"EQE;7!T>4QI;F4*;S0P(#T@7'LQ+"`X+"`R-RP@ +M-C0L(#$R-2P@,C$V+"`S-#,L(#4Q,BP@-S(Y+"`Q,#`P7'U<7`I<96UP='E, +M:6YE"F\T,"`Z($QIV)R96%K?7M<='0@8G)E86M]+"!W:&EC +M:"!A8V-E<'1S(&%N"F]P=&EO;F%L('9A;'5E('1O(')E='5R;B!AUQT="!P2!S;VUE=&AI;F<@;VX@=&AE('-C,3`P7%P*,3(V-S8U,#8P +M,#(R.#(R.30P,30Y-C2!T:&4@96QE;65N=',@ +M;V8@82!L:7-T(&]N('-E<&%R871E"FQI;F5S+@I<8F5G:6Y/=71P=70*:30U +M(#H@*#$@+BX@-2D@+R!PV9I;&5S?2X@($$@>UQE;2!F:6QE?2!I;B!<371W;R!IUQT="!S=&1I;WT@96YC;W5N=&5R960@86)O=F4*8V]R6]U6]U2!A;'-O +M(&-OUQT="!<8VAA4QI;F4*;S0W(#H@1FEL95Q<"EQE +M;7!T>4QI;F4*7"`@+2T@('1H92!S=&%N9&%R9"!I;G!U="!O=71P=70@9FEL +M95Q<"EQE;F1/=71P=70*57-I;F<@7&EN9&5X8VUD>V5N9&Q]>UQT="!E;F1L +M?2!T;R!R97!R97-E;G0@=&AE(&YE=R!L:6YE(&-H87)A8W1EUQT="!C;&]S97TN +M"EQB96=I;D]U='!U=`II-#D@.B`B9F]O(B`\/"`B02`]("(@/#P@,EXQ,#`@ +M/#P@96YD;"`\/"!C;&]S95Q<"EQE;7!T>4QI;F4*;S0Y(#T@9F]O7%P*7&5M +M<'1Y3&EN90IO-#D@.B!&:6QE7%P*7&5N9$]U='!U=`I4:&4@8V]N=&5N=',@ +M;V8@=&AE(&9I;&4@8V%N(&)E(')E8V]V97)E9"!A&-M9'MG971]>UQT="!G971]+@I<8F5G:6Y/=71P=70*:34P(#H@ +M9V5T(")F;V\B7%P*7&5M<'1Y3&EN90IO-3`@/2!!(#T@,3(V-S8U,#8P,#(R +M.#(R.30P,30Y-C4QI;F4*7&5N9$]U='!U=`I) +M9B!T:&4@9FEL92!C;VYT86EN&5C=71E('1H;W-E(&-O +M;6UA;F1S('=I=&@@7&EN9&5X8VUD>VQO861]>UQT="!L;V%D?2X*7&)E9VEN +M3W5T<'5T"FDU,2`Z(&QO860@(F9O;R)<7`I<96YD3W5T<'5T"E=E(&-A;B!V +M97)I9GD@=&AA="!T:&4@8V]M;6%N9"!T;V]K(&5F9F5C="!B>2!E=F%L=6%T +M:6YG('M<='0@07TN"EQB96=I;D]U='!U=`II-3(@.B!!7%P*7&5M<'1Y3&EN +M90IO-3(@/2`Q,C8W-C4P-C`P,C(X,C(Y-#`Q-#DV-S`S,C`U,S2!UVEN<'5T?7M<='0@:6YP=71]+@I<8F5G:6Y/=71P +M=70*:34S(#H@:6YP=70@(F9O;R)<7`I<96UP='E,:6YE"FDU-"`Z($$@/2`Q +M,C8W-C4P-C`P,C(X,C(Y-#`Q-#DV-S`S,C`U,S2QZ75Q<"EQE;7!T>4QI;F4*;S4V(#T@4EQ<"EQE;7!T>4QI;F4* +M;S4V(#H@4&]L>6YO;6EA;%)I;F=<7`I<96YD3W5T<'5T"EQI;F1E>'MR:6YG +M(6UA:VEN9R!O;F5])0I<8F5G:6Y/=71P=70*:34W(#H@9B`]("AX*WDI7C-< +M7`I<96UP='E,:6YE"EP@("`@("`@,R`@("`@,B`@("`@("`@,B`@("`S7%P* +M;S4W(#T@>"`@*R`S>"!Y("L@,W@J>2`@*R!Y7%P*7&5M<'1Y3&EN90IO-3<@ +M.B!27%P*7&5N9$]U='!U=`I06YO;6EA;',L"G1O;RY<:6YD97A[<')I;G1I +M;F"`@*R`S>"!Y("L@,W@J>2`@*R!Y +M7%P*7&5N9$]U='!U=`I5W1O4W1R:6YG?7M<='0@=&]3 +M=')I;F=]('1O(&-R96%T92!A(#$M9&EM96YS:6]N86P@9F]R;2!O9B!T:&4@ +M<&]L>6YO;6EA;`IT:&%T(&-A;B!B92!S=&]R960@:6X@82!F:6QE(&EN(&$@ +M9F]R;6%T(')E861A8FQE(&)Y(%Q-='=O(&%N9"!B>2!O=&AE<@IS>6UB;VQI +M8R!A;&=E8G)A('!R;V=R86US+"!S=6-H(&%S('M<96T@36%T:&5M871I8V%] +M(&]R('M<96T@36%P;&5]+@I<8F5G:6Y/=71P=70*:38P(#H@=&]3=')I;F<@ +M9EQ<"EQE;7!T>4QI;F4*;S8P(#T@>%XS*S,J>%XR*GDK,RIX*GE>,BMY7C-< +M7`I<96YD3W5T<'5T"E-E;F0@:70@=&\@=&AE(&9I;&4N"EQB96=I;D]U='!U +M=`II-C$@.B`B9F]O(B`\/"!T;U-T,RLS*GA>,BIY*S,J>"IY7C(K>5XS +M7%P*7&5N9$]U='!U=`I#;VYV97)T('1H92!S=')I;F<@8F%C:R!T;R!A('!O +M;'EN;VUI86P@=VET:"!<:6YD97AC;61[=F%L=65]>UQT="!V86QU97TL('5S +M:6YG(%QI;F1E>&-M9'MO;WU[7'1T(&]O?2!T;PIR96-O=F5R('1H92!V86QU +M92!O9B!T:&4@97AP2`K(#-X +M*GD@("L@>5Q<"EQE;7!T>4QI;F4*;S8S(#H@4EQ<"EQE;F1/=71P=70*5&AE +M('-A;64@=&AI;F<@=V]R:W,@9F]R(&UA=')I8V5S+"!A;F0@82!L:71T;&4@ +M;6]R92!D971A:6P@:7,@<')O=FED960@8GD*7&EN9&5X8VUD>W1O17AT97)N +M86Q3=')I;F=]>UQT="!T;T5X=&5R;F%L4W1R:6YG?2P@:68@;F5E9&5D+@I< +M8F5G:6Y/=71P=70*:38T(#H@=F%R2!Z('Q<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@(#$@("`@("`@ +M,UQ<"F\V-"`Z($UA=')I>"!2("`\+2TM(%)<7`I<96YD3W5T<'5T"EQB96=I +M;D]U='!U=`II-C4@.B!T;U-T4QI;F4*;S8V(#T@;6%P*%)>7'M<>S!RTQ +M7'TL(%Q[+3%UQ[>"P@>2P@>EQ]7'TI7%P*7&5N9$]U='!U=`H* +M7'-E8W1I;VY[2&%S:"!486)L97-]"@I296-A;&P@:&]W(&]N92!S971S('5P +M(&$@<75O=&EE;G0@"QY+'I=+RAX7C,M>2E<7`I<96UP +M='E,:6YE"F\V-R`](%)<7`I<96UP='E,:6YE"F\V-R`Z(%%U;W1I96YT4FEN +M9UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDV."`Z("AX*WDI7C1<7`I< +M96UP='E,:6YE"EP@("`@("`@(#(@,B`@("`@("`S("`@(#0@("`@("`@("`@ +M(#)<7`IO-C@@/2`V>"!Y("`K(#1X*GD@("L@>2`@*R!X*GD@*R`T>5Q<"EQE +M;7!T>4QI;F4*;S8X(#H@4EQ<"EQE;F1/=71P=70*2&]W(&1O97,@7$UT=V\@ +M2P@=V4@;6%Y('=A;G0@ +M=&\@UQS;"!<:65[:&%S:"!T86)L97U](&ES+"!B +M>2!D969I;FET:6]N+"!A('=A>2!O9B!R97!R97-E;G1I;F<@*&EN('1H92!C +M;VUP=71E'1R96UE;'D*9FQE +M>&EB;&4Z('1H92!E;&5M96YT7-<:6YD97A[:V5YW9A;'5E +M2!B92!A +M;GD@;V8@=&AE(&]T:&5R(&]B:F5C=',*F5R;R!E +M>'!O;F5N=#L@82!P;VQY;F]M:6%L(&-A;@IB92!R97!R97-E;G1E9"!B>2!A +M(&9U;F-T:6]N('1H870@87-S;V-I871EF5R;R!E;G1R>2X*"DQE="=S(&-R96%T92!A(&AA +M&-M9'M<(WU[7'1T(%PC +M?2!T;R!R96-O=F5R('1H92!V86QU92!FV,L9%Q]7%P*7&5M +M<'1Y3&EN90IO-S$@/2!<>S$L(#(L(#,L(#14QI;F4*;S2!IRY]>UQT="`N?2!I +M;G-T96%D.R!T:&ES(&ES"F-O;G9E;FEE;G0@:68@=&AE('-Y;6)O;"!H87,@ +M82!V86QU92!T:&%T('=E('=A;G0@=&\@:6=N;W)E+@I<8F5G:6Y/=71P=70* +M:34QI;F4*;S4QI;F4*;S4QI;F4*;S7,@:6X@=&AE(&AA6EN9R!V +M86QU97,@86QL"F)E:6YG("0Q)"X@("A-=6QT:7-E=',@87)E(&EM<&QE;65N +M=&5D(&)Y('5S:6YG('9A;'5E"`] +M('-E=%Q[,2QA+%Q[-"PU7'TL85Q]7%P*7&5M<'1Y3&EN90IO-S8@/2!3970@ +M7'M<>S0L(#5&-M9'MS971])0I<8F5G:6Y/=71P=70*:3",_85Q<"EQE;7!T>4QI;F4*;S%Q<"EQE;7!T>4QI;F4*;SS0L(#52`]('1A;&QY7'LQ+&$L7'LT+#5S0L(#54QI;F4*;SUQT="!T86QL>7T@=&\@=&%L;'D@:&]W(&]F=&5N(&$@ +M9G5N8W1I;VX@871T86ENV9A8W1O +M4QI;F4*;S@S(#T@*#$L(#$L(#$L(#$L(#(L(#$L(#$L(#$L +M(#(L(#$L(#(L(#$L(#(L(#(L(#$L(#$L(#(L(#$L(#(L(#(L(#(L("`D7&-D +M;W1<8V1O=%QC9&]T)%Q<"EQE;7!T>4QI;F4*;S@S(#H@4V5Q=65N8V5<7`I< +M96YD3W5T<'5T"D9I;F%L;'DL('5S92![7'1T('1A;&QY?2!T;R!S=6UM87)I +M>F4@=&AE(')E2!O;UQ< +M"EQE;7!T>4QI;F4*;S@T(#T@5&%L;'E<>S$@/3X@,3DS7'U<7`I<("`@("`@ +M("`@("`@,B`]/B`U,#A<7`I<("`@("`@("`@("`@,R`]/B`R-S5<7`I<("`@ +M("`@("`@("`@-"`]/B`R,UQ<"EQE;7!T>4QI;F4*;S@T(#H@5&%L;'E<7`I< +M96YD3W5T<'5T"@I(87-H('1A8FQEUQT="!2?2X@(`I<8F5G:6Y/=71P +M=70*:3@U(#H@4BYI9&5A;%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`S +M7%P*;S@U(#T@:61E86PH>"`@+2!Y*5Q<"EQE;7!T>4QI;F4*;S@U(#H@261E +M86P@;V8@45$@6W@L('DL('I=7%P*7&5N9$]U='!U=`I4:&4@<')E9F5R2!F;W(@82!UUQT="!I9&5A;'TN(`I<8F5G:6Y/=71P=70*:3@V(#H@:61E86P@ +M4EQ<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`S7%P*;S@V(#T@:61E86PH +M>"`@+2!Y*5Q<"EQE;7!T>4QI;F4*;S@V(#H@261E86P@;V8@45$@6W@L('DL +M('I=7%P*7&5N9$]U='!U=`I5V-O9&5]7&EN9&5X8VUD>V-O +M9&5](&-O;6UA;F0@=&\@;&]C871E('1H92!S;W5R8V4@8V]D92!F;W(@82!G +M:79E;@IF=6YC=&EO;BP@870@;&5A&%M<&QE+"!H97)E(&ES('1H92!C;V1E(&9O2!B92!U2X*7&)E9VEN3W5T<'5T"FDX."`Z(&-O9&4H4QI;F4* +M;S@Y(#T@+2T@+BXO+BXO+BXO;3(O<75O=')I;FUQT="!I9&5A;'T@=&\@ +M97ATUQS;"!M971H;V1]7&EN9&5X>VUE=&AO +M9'T@87,*82!W87D@;V8@:6YD:6-A=&EN9R!T:&%T('-E=F5R86P@;65T:&]D +MUQT="!M971H;V1]7&EN9&5X +M8VUD>VUE=&AO9'TN("!,970G&%M<&QE.B!W92=L;"!W"`M/B!D96YO;6EN871O2!T;R!L96%R;B!M +M;W)E(&%B;W5T('1H92!<371W;R!L86YG=6%G92!IUQT="!-86-A=6QA>3(O;3)]+@I5UQT="!-86-A=6QA>3(O9'TN("!)="!I2![7'1T($UA8V%U;&%Y,B]C?2X@($AEUQT="!-86-A=6QA>3(O9"]T +M;VME;G,N9'TL('=H:6-H('-H;W=S(&AO=PIT:&4@=')A;G-L871O7-P86-E49R86UE +M+&=L;V)A;%-C;W!E+G-E<6YO+%-E<75E;F-E*&YU;&Q%*2D[7&QE879E=FUO +M9&5<:'-S7&5N9&=R868*7&5N9&=R;W5P"EQP96YA;'1Y+3$P,#`*7'!A<@I< +M=G-K:7`@,2!P=`I<;F]I;F1E;G0*06YD(&AE2!T:&4@=')A;G-L871O7-P86-E6QI;F5S"G1O:V5NF5O9BAS=')U8W0@4S(U.5QC:&%R8%Q?*2LH,2TQ*2IS:7IE;V8H17AP +MUQT="!-86-A +M=6QA>3(O97TN("!);B!T:&4@8W5RTTR?2!D97-C7,@=V4@9&]N)W0@;F5E9"!T:&ES +M.@H*)24@3VYE(&9E871U2!D97!E;F0*)24@:6X@82!D971A:6QE9"!W +M87D@;VX@=&AE(&%R8VAI=&5C='5R92!O9B!T:&4@8V]M<'5T97(@86YD('1H +M92!S:&%R96%B;&4*)24@;&EBUQT="!S971U<'T* +M)24@8V]M;6%N9"!M87D@;F5E9"!T;R!B92!R=6X@86=A:6XN("!)9B!T:&]S +M92!T:&EN9W,@8VAA;F=E('1O;R!O9G1E;BP@=&AE"B4E('-Y2UT;SH@/#(P,#`Q,3$V,34Q,2Y*04$Q.#0P-4!O2!T;PHE)2!R96%D(&%N9"!U;F1E6]U('=A;G0@=&\@861D(&]N92!S=6)S96-T:6]N(&%T('1H +M92!E;F0L(&ET(&-O=6QD(&)E('-O;65T:&EN9PHE)2`^("`@(&QI:V4@(D1E +M=F5L;W!E6]U('1E;&P@=7,@9&ER96-T;'D@=VAA>2!Y;W4@:&%V92!I +M;B!M:6YD(&%B;W5T('1H870_"B4E(`I<8F5G:6Y[=&AE8FEB;&EO9W)A<&AY +M?7LQ?0H*7&)I8FET96U[33)]"D1A;FEE;'Y2+B!''1S;'M-86-A=6QA>7XR +M?2P@82!S;V9T=V%R92!S>7-T96T@9F]R(')EUQ`87)A8FEC7&-`U1E86-H:6YG('1H92!'96]M971R>2!O9B!38VAE;65S?0I< +M=&ET;&5R=6YN:6YG>U1E86-H:6YG('1H92!'96]M971R>2!O9B!38VAE;65S +M?0I<=&]C=&ET;&5[5&5A8VAI;F<@=&AE($=E;VUE=')Y(&]F(%-C:&5M97-] +M"@I<875T:&]R>T=R96=OTUQO<&5R871OUQ0U!R;VI]?0I<;F5W8V]M;6%N9'M<8V]D:6U]>UQO<&5R871O +M7-T96US+"!S=6-H(&%S(%Q-='=O+"!P6EN9R!C;VUP +M;&EC871E9"!E>&%M<&QE&%M<&QE2!T:&4@UQE;2!4:&4@1V5O;65TW!R;V)L96TJ?0I,970@)%,@/2!<8F)B +M>EMX+'DL>ETD(&%N9"`D6"`](%Q3<&5C*%,I)"X@($EF("1F(#T@>"0@86YD +M("187WMF?20@:7,*=&AE(&-OS%](#T@>"MY*WHD +M+"`D95][,GT@/2!X>2MX>BMY>B0@86YD("1E7WLS?2`]('AY>B0*87)E('1H +M92!E;&5M96YT87)Y('-Y;6UE=')I8R!F=6YC=&EO;G,@=&AE;B!T:&4@UA?>V5?>VE]?5Q]7WLQ"EQL97$@:2!<;&5Q(#-])"!IB0L("1P7WLR?2`]('A>>S)]*WE>>S)]*WI>>S)])"!A;F0@)'!?>S-] +M"CT@>%Y[,WTK>5Y[,WTK>EY[,WTD(&%R92!T:&4@<&]W97(@UQE;2!N;W1](&%N(&]P96X@8V]V97(@;V8*)%A?>V9] +M)"X*7&5N9'ME;G5M97)A=&5]"EQE;F1[<')O8FQE;2I]"@I<8F5G:6Y[UA?>V5?>VE]?5Q]7WLQ +M(%QL97$@:2!<;&5Q(#-])"!I%Y[;7TD"F)E;&]N9W,@=&\@=&AE("13)"UI9&5A;"`D7&QA;F=L92!E7WLQ +M?2P@95][,GTL(&5?>S-](%QR86YG;&4D(&9O<@IS;VUE("1M(%QI;B!<8F)B +M;B0N("!);B!O=&AES)]+"!E7WLS?2!< +M%Y[7&EN9G1Y?2!<8FEG*20@:7,@=&AE"G5N:70@:61E86P@ +M:68@86YD(&]N;'D@:68@)%Q[6%][95][:7U]7'U?>S$@7&QE<2!I(%QL97$@ +M,WTD(&ES(&%N(&]P96X*8V]V97(@;V8@)%A?>V9])"X@(%=E('9E2!T +M:&ES(&EN(%Q-='=O(&%S(&9O;&QO=W,Z"EQB96=I;D]U='!U=`II,2`Z(%,@ +M/2!:6EMX+"!Y+"!Z73M<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II,B`Z +M(&5L96UE;G1A2MZ+"!X*GDK>"IZ*WDJ>BP@ +M>"IY*GHI.UQ<"EQE;7!T>4QI;F4*;S(@.B!)9&5A;"!O9B!37%P*7&5N9$]U +M='!U=`I<8F5G:6Y/=71P=70*:3,@.B!S871US$@7&QE<2!I(%QL97$@ +M,WTD(&ES(&YO=`IA;B!O<&5N(&-O=F5R(&]F("187WMF?20L('=E('!R;W9E +M('1H870@)%QB:6S)]+`IP7WLS?2!<%Y[7&EN9G1Y?2!<8FEG*20@:7,@;F]T('1H92!U;FET(&ED96%L +M+B`@0V%L8W5L871I;F<*=&AIBP@>%XR +M*WE>,BMZ7C(L('A>,RMY7C,K>EXS*3M<7`I<96UP='E,:6YE"F\T(#H@261E +M86P@;V8@4UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDU(#H@"E<7`I<96UP='E,:6YE"EP@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@,B`@("`@("`@("`@(#)<7`IO-2`](&ED96%L +M("@V+"!X("L@>2`K('HL(#)Y("`K(#)Y*GH@*R`R>B`L(#-Y*GHI7%P*7&5M +M<'1Y3&EN90IO-2`Z($ED96%L(&]F(%-<7`I<96YD3W5T<'5T"EQB96=I;D]U +M='!U=`II-B`Z(&-L96%R06QL7%P*7&5N9$]U='!U=`IW:&EC:"!IW-O;'5T:6]N*GT*"E1H92!F86-T +M('1H870@)#8D(&ES(&$@9V5N97)A=&]R(&]F('1H92!I9&5A;"`D7&)I9R@@ +M7&QA;F=L92!P7WLQ?2P*<%][,GTL('!?>S-](%QR86YG;&4@.B!X7GM<:6YF +M='E](%QB:66EN9R!O=F5R('1H92!P;VEN=',@)%QL86YG;&4@,B!<UA?>W!?>VE]?5Q]7WLQ(%QL97$@:2!<;&5Q(#-] +M)"!W;W5L9"P@:6X@9F%C="P@8F4@86X@;W!E;@IC;W9E7T* +M"E1H92!S='5D>2!O9B!C;VUP;&5X('-E;6ES:6UP;&4@3&EE(&%L9V5B2!O9B!A;&=E8G)A +M:6,@=F%R:65T:65S(&-A;&QE9"!N:6QP;W1E;G0*;W)B:71S7&EN9&5X>VYI +M;'!O=&5N="!O'0@<')O8FQE;2!E>&%M:6YEW!R;V)L +M96TJ?2`*3&5T("18)"!B92!T:&4@2!I9B!I=',@;6EN:6UA;`IP;VQY +M;F]M:6%L("1P*%QS9B!4*20@97%U86QS("1[7'-F(%1]7GMK?20L(&9O>S-])"X@(%=E(&-O;F-L=61E('1H870@=&AE(&-O969F:6-I96YT +M6YO;6EA;"!O9B!A(&=E;F5R +M:6,@)#,@7'1I;65S(#,D(&UA=')I>`ID969I;F4@=&AE(&%L9V5B'MR871I;VYA;"!P87)A;65T97)I>F%T:6]N?2X@ +M($9IR@R+#$I?2`](%QL +M969T6R!<8F5G:6Y['1[(&%N9"!]"DY?>R@S*7T@/2!<;&5F=%L@7&)E9VEN>W-M86QL;6%TW-M +M86QL;6%T5\P("XN('E?."P@82XN:2P@36]N +M;VUI86Q/S`L,"PP7'U4QI;F4*;S@@/2!\(#`@ +M,2`P('Q<7`I<("`@("!\(#`@,"`Q('Q<7`I<("`@("!\(#`@,"`P('Q<7`I< +M96UP='E,:6YE"EP@("`@("`@("`@("`@,R`@("`@("`S7%P*;S@@.B!-871R +M:7@@4R`@/"TM+2!37%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3D@.B!' +M(#T@9V5N97)I8TUA=')I>"A3+"!Y7S`L(#,L(#,I7%P*7&5M<'1Y3&EN90IO +M.2`]('P@>5\P('E?,R!Y7S8@?%Q<"EP@("`@('P@>5\Q('E?-"!Y7S<@?%Q< +M"EP@("`@('P@>5\R('E?-2!Y7S@@?%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@ +M("`@("`S("`@("`@(#-<7`IO.2`Z($UA=')I>"!3("`\+2TM(%-<7`I<96YD +M3W5T<'5T"E1O(&1E=&5R;6EN92!T:&4@96YT>RTQ?20L('=E('5S92!T:&4*8VQA>RTQ?20N"EQB96=I;D]U='!U +M=`II,3`@.B!C;&%S*&DK:BD@*B!D970H7%P*7"`@("`@("`@ +M("`@("`@("`@("`@('-U8FUA=')I>"A'+"!<>S`N+FHM,2P@:BLQ+BYN+3%< +M?2P@7%P*7"`@("`@("`@("`@("`@("`@("`@("`@("`@7'LP+BYI+3$L(&DK +M,2XN;2TQ7'TI*2DI.UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDQ,2`Z +M(&YU;2`]($<@*B!.,R`J(&-L87-S:6-A;$%D:F]I;G0H1RD[7%P*7&5M<'1Y +M3&EN90I<("`@("`@("`@("`@("`S("`@("`@(#-<7`IO,3$@.B!-871R:7@@ +M4R`@/"TM+2!37%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3$R(#H@1"`] +M(&1E="A'*3M<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II,3,@.B!-(#T@ +M9V5N97)I8TUA=')I>"A3+"!A+"`S+"`S*3M<7`I<96UP='E,:6YE"EP@("`@ +M("`@("`@("`@(#,@("`@("`@,UQ<"F\Q,R`Z($UA=')I>"!3("`\+2TM(%-< +M7`I<96YD3W5T<'5T"E1H92!E;G1R:65S(&EN("1'(%QC9&]T($Y?>R@S*7T@ +M7&-D;W0@1UY[+3%])"!G:79E(&$@5QI;F1E>'ME;&EM:6YA=&EO;B!T:&5O,RDI*DT@+2!N +M=6TI("L@:61E86PH,2U$*G0I.UQ<"EQE;7!T>4QI;F4*;S$T(#H@261E86P@ +M;V8@4UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDQ-2`Z(&-L;W-U2X@(%)E8V%L +M;"!T:&%T("18)"!IUQT=`I-?2X*)24@=V%S(%@@/2!I9&5A;"!S +M=6)M871R:7@H("AC;V5F9BUI8VEE;G1S*'LP?2P@9&5T*$T@+2!T*FED7RA3 +M7C,I*2DI7S$L"B4E('LQ+#(L,WT@*2P@8G5T("=C;V5F9BUI8VEE;G1S)R!I +M7=A>2X*7&)E9VEN3W5T<'5T"FDQ-B`Z +M(%@@/2!I9&5A;"!S=6)S=&ET=71E*%Q<"EP@("`@("`@("`@("`@(&-O;G1R +M86-T*&UA=')I>%Q[7'MT7C(L="PQ7'U2X@(%=E(')E +M9F5R('1H92!R96%D97(@=&\@0VAR:7-S(&%N9`I':6YZ8G5R9WY<8VET97M3 +M0SI#5GT@9F]R(&$@<')O;V8@;V8@=&AI7XS +M+C(N."D@86YD"F$@9&ES8W5S2X*"@HE)2TM+2TM+2TM+2TM+2TM+2TM +M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*7'-E +M8W1I;VY[4VEN9W5L87(@4&]I;G1S?0H*26X@;W5R('1H:7)D('%U97-T:6]N +M+"!W92!S='5D>2!T:&4@'ME +M;&QI<'1I8R!C=7)V97TN"@I<8F5G:6Y[<')O8FQE;2I](`I#;VYS:61EETD +M.@I<6PI&(#T@87A>>S-]("L@8GA>>S)]>2`K(&-X7GLR?7H@*R!D>'E>>S)] +M("L@97AY>B`K(&9X>EY[,GT@*R!G>5Y[,WT@*PIH>5Y[,GUZ("L@:7EZ7GLR +M?2`K(&IZ7GLS?2!<96YS<&%C92`N"EQ="D=I=F4@;F5C97-S87)Y(&%N9"!S +M=69F:6-I96YT(&-O;F1I=&EO;G,@:6X@=&5R;7,@;V8@)&$L(%QL9&]TET@+R!<;&%N9VQE($8@7')A;F=L90I<8FEG*20@=&\@:&%V92!A('-I;F=U +M;&%R('!O:6YT+@I<96YD>W!R;V)L96TJ?0H*7&)E9VEN>W-O;'5T:6]N*GT* +M5&AE('-I;F=U;&%R(&QO8W5S(&]F("1&)"!I6YO;6EA;"!O9B!D96=R964@)#$R)"!I;@IT:&4@)#$P)"!V87)I86)L97,@ +M)&$L(%QD;W1S8RP@:B0N("!792!C86QC=6QA=&4@=&AI2!B=70@=&EM92!C;VYS=6UI;F<@96QI;6EN871I;VXN +M"D-A,RMB*GA>,BIY*V,J>%XR*GHK9"IX*GE>,BME*G@J>2IZ +M*V8J>"IZ7C(K9RIY7C,K:"IY7C(J>BM<7`I<("`@("`@("`@("`@("`@("`@ +M(&DJ>2IZ7C(K:BIZ7C,[7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3(Q +M(#H@<&%R=&EA;',@/2!S=6)M871R:7@H:F%C;V)I86X@;6%TT9< +M?5Q]+"!<>S`N+C)S%< +M?2!\(#-X,F$K,GAY8BMY,F0K,GAZ8RMY>F4K>C)F('Q<7`I<("`@("`@7'LQ +M7'T@?"!X,F(K,GAY9"LS>3)G*WAZ92LR>7IH*WHR:2!\7%P*7"`@("`@(%Q[ +M,5Q]('P@>#)C*WAY92MY,F@K,GAZ9BLR>7II*S-Z,FH@?%Q<"EQE;7!T>4QI +M;F4*7"`@("`@("`@("`@("`@,R`@("`@("`Q7%P*;S(Q(#H@36%TB`]/B`Q7'TI.UQ<"EQE;7!T>4QI +M;F4*;S(T(#H@261E86P@;V8@4UQ<"EQE;F1/=71P=70*3VX@=&AE(&]T:&5R +M(&AA;F0L('1H97)E(&ES(&%L'MD:7-CF%T:6]N +M(&]F('1H92!F;W)M=6QA("@R+C@I(&EN('-E8W1I;VY^,RXR(&]F($-O>"P@ +M3&ET=&QE"F%N9"!/8%-H96%^7&-I=&5[4T,Z0TQ/,GTN("!4;R!A<'!L>2!T +M:&ES(&1E=&5R;6EN86YT86P@9F]R;75L82P@=V4*9FERS`L,2PR?2P@'M[1GU]+"![,"XN +M,GTL('LP?2DI*5\Q.PHE)2!B=70@)V-O969F+6EC:65N=',G(&ES(&1E<')E +M8V%T960N"EQB96=I;D]U='!U=`II,C4@.B!!(#T@8V]N=')A8W0H;6%TWA>,BQX*GDL>5XR+'@J>BQY*GHL>EXR7'UUQ[>"QY+'I4QI;F4*;S(U(#T@7'LQ7'T@?"`S82`R8B!D("`R8R!E("!F("!\ +M7%P*7"`@("`@(%Q[,5Q]('P@8B`@,F0@,V<@92`@,F@@:2`@?%Q<"EP@("`@ +M("!<>S%"!3("`\+2TM +M(%-<7`I<96YD3W5T<'5T"E=E(&%L'MH97-S:6%N?2!O9B`D1B0N"EQB96=I +M;D]U='!U=`II,C8@.B!H97-S(#T@9&5T('-U8FUA=')I>"AJ86-O8FEA;B!I +M9&5A;"!P87)T:6%LS`L,2PR?2P@WA>,BQX*GDL +M>5XR+'@J>BQY*GHL>EXR7'UUQ[>"QY+'I4QI +M;F4*;S(W(#T@7'LQ7'T@?"`M,C1C,F0K,C1B8V4M,3AA93(M,C1B,F8K-S)A +M9&8@("`@("`@("`@("`@("`T8F4R+3$V8F1F+30X("1<8V1O=%QC9&]T7&-D +M;W0D7%P*7"`@("`@(%Q[,5Q]('P@,F)E,BTX8F1F+3(T8S)G*SS%"!3("`\+2TM(%-<7`I<96YD3W5T<'5T"E1O +M(&]B=&%I;B!T:&4@9&ES8W)I;6EN86YT+"!W92!C;VUB:6YE('1H97-E('1W +M;R!M871R:6-E4QI;F4*;S,R(#T@ +M,C`T,%Q<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDS,R`Z(&-L96%R06QL +M7%P*7&5N9$]U='!U=`I(96YC92P@=&AE('-I;F=U;&%R(&QO8W5S(&ES(&=I +M=F5N(&)Y(&$@W-O;'5T:6]N*GT*"D9OU-#.D5(?2X@($9OW-C:&5M92%O=F5R(&$@;G5M8F5R(&9I96QD?2!O=F5R(&YO;BUA;&=E +M8G)A:6-A;&QY"F-L;W-E9"!F:65L9',@87)I2X@($]UT%]7WM,?5Y[;GT@7'1O(%QM871H +M8F)[07U?>TM]7GMN?20N("!&:6YD('1H92!I;6%G97,@:6X*)%QM871H8F)[ +M07U?>UQB8F)Q?5Y[,GTD(&]F('1H92!F;VQL;W=I;F<@<&]I;G1S(&]F"B1< +M;6%T:&)B>T%]7WM<;W9E"`M(%QS<7)T>S)]+"!Y("T@7'-Q"`M(%QS<7)T>S)]+"!Y("T@7'-Q"`M(%QZ971A+"!Y("T@ +M7'IE=&%>>RTQ?2!<S-]>2TQ(%QR86YG;&4D+@I<96YD>V5N +M=6UETQ]7GLR?20L(&%N9"`H,RD@96QI;6EN871E('1H92!N97<*:6YD +M971E&%M<&QE"QY+"!-;VYO;6EA;$]R9&5R +M(#T^($5L:6UI;F%T92`R73M<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II +M,S4@.B!),2`](&ED96%L*'@M82P@>2UA+"!A7C(M,BD[7%P*7&5M<'1Y3&EN +M90IO,S4@.B!)9&5A;"!O9B!37%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70* +M:3,V(#H@:61E86P@2P@>2`@+2`R*5Q<"EQE;7!T>4QI;F4*;S,V(#H@261E86P@ +M;V8@4UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDS-R`Z($DR(#T@:61E +M86PH>"UA+"!Y+6(L(&%>,BTR+"!B7C(M,RD[7%P*7&5M<'1Y3&EN90IO,S<@ +M.B!)9&5A;"!O9B!37%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3,X(#H@ +M:61E86P@2`@+2`S+"!X("`M(#(I7%P*7&5M<'1Y3&EN90IO,S@@.B!)9&5A;"!O9B!3 +M7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3,Y(#H@23,@/2!I9&5A;"AX +M+6$L('DM85XT+"!A7C0K85XS*V%>,BMA*S$I.UQ<"EQE;7!T>4QI;F4*;S,Y +M(#H@261E86P@;V8@4UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDT,"`Z +M(&ED96%L('-E;&5C=$EN4W5B4QI;F4*7"`@("`@("`@("`@("`@("`@("`@("`@,B`@("`R("`@("`@("`@ +M("`@("`@,R`@("`R7%P*;S0P(#T@:61E86P@*'@J>2`M(#$L('@@("L@>2`@ +M*R!X("L@>2`K(#$L('D@("L@>2`@*R!X("L@>2`K(#$I7%P*7&5M<'1Y3&EN +M90IO-#`@.B!)9&5A;"!O9B!37%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70* +M:30Q(#H@230@/2!I9&5A;"AA*G@K8BIY+"!A7C(M,BP@8EXR+3,I.UQ<"EQE +M;7!T>4QI;F4*;S0Q(#H@261E86P@;V8@4UQ<"EQE;F1/=71P=70*7&)E9VEN +M3W5T<'5T"FDT,B`Z(&ED96%L('-E;&5C=$EN4W5B4QI;F4*7"`@("`@("`@("`@("`R("`@,R`@,EQ<"F\T +M,B`](&ED96%L*'@@("T@+2IY("E<7`I<("`@("`@("`@("`@("`@("`R7%P* +M7&5M<'1Y3&EN90IO-#(@.B!)9&5A;"!O9B!37%P*7&5N9$]U='!U=`I<8F5G +M:6Y/=71P=70*:30S(#H@234@/2!I9&5A;"AA*G@K8BIY+3$L(&%>,BTR+"!B +M7C(M,RD[7%P*7&5M<'1Y3&EN90IO-#,@.B!)9&5A;"!O9B!37%P*7&5N9$]U +M='!U=`I<8F5G:6Y/=71P=70*:30T(#H@:61E86P@"`@+2`S>"!Y("`K("TJ>2`@+2!X("`M("TJ>2`@*R`M*5Q<"EP@("`@("`@ +M("`@("`@("`@("`@("`@("`@-"`@("`@("`@("`@,B`@("`@(#1<7`I<96UP +M='E,:6YE"F\T-"`Z($ED96%L(&]F(%-<7`I<96YD3W5T<'5T"EQB96=I;D]U +M='!U=`II-#4@.B!C;&5AW-O +M;'5T:6]N*GT*"DET(&ES('=OUQB8F)Q?5Y[;GTD(&-OUQB8F)Q?7U>>VY])"X@($9OU-#.D5(?2X*"@HE)2TM+2TM+2TM+2TM+2TM+2TM+2TM +M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*7'-E8W1I +M;VY[375L=&EP;&EC:71Y?0H*5&AE(&UU;'1I<&QI8VET>5QI;F1E>'MM=6QT +M:7!L:6-I='E](&]F(&$@>F5R;RUD:6UE;G-I;VYA;"!S8VAE;64@)%@D"F%T +M(&$@<&]I;G0@)'`@7&EN(%@D(&ES(&1E9FEN960@=&\@8F4@=&AE(&QE;F=T +M:"!O9B!T:&4@;&]C86P@U@L<'TD+B`@56YF +M;W)T=6YA=&5L>2P@=V4@8V%N;F]T('=OW!R;V)L96TJ?0I7:&%T(&ES('1H92!M=6QT +M:7!L:6-I='D@;V8@=&AE(&]R:6=I;B!A>S-]*WE> +M>S5]*WI>>S-](#T@>%Y[,WTK>5Y[,WTK>EY[-7T@/0HP)#\*7&5N9'MP2QZ720L('1H96X*=&AE(&UU;'1I<&QI8VET>2!O9B!T:&4@;W)I9VEN(&ES +M"EQ;"EQD:6U?>UQB8F)Q?2!<9G)A8WM<8F)B<5MX+'DL>EU?>UQL86YG;&4@ +M>"QY+'H@7')A;F=L97U]"GM)(%QB8F)Q6W@L>2QZ75][7&QA;F=L92!X+'DL +M>B!<2!I"QY+'I=("\@7'9A"QY +M+'I=7WM<;&%N9VQE('@L>2QZ"EQR86YG;&5]*20@=VAE2QZ72!<=&\*7&)B8G%;>"QY+'I=7WM<;&%N9VQE +M('@L>2QZ(%QR86YG;&5])"!I>RTQ?2A)(%QB8F)Q6W@L>2QZ75][7&QA;F=L92!X+'DL +M>B!<"QY+'H@7')A;F=L95Y[7&EN9G1Y?2E<8FEG*2!<+"`N"EQ="D-A"P@>2P@>ET[7%P*7&5N9$]U='!U +M=`I<8F5G:6Y/=71P=70*:30W(#H@22`](&ED96%L*'A>-2MY7C,K>EXS+"!X +M7C,K>5XU*WI>,RP@>%XS*WE>,RMZ7C4I.UQ<"EQE;7!T>4QI;F4*;S0W(#H@ +M261E86P@;V8@4UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDT."`Z(&UU +M;'1I<&QI8VET>2`](&1E9W)E92A)(#H@EU?>UQL86YG;&4@>"QY+'H@7')A;F=L97TD+B`@ +M5V4*'MS8VAE;64A;F]N+7)E9'5C961](&%R:7-E +M(&YA='5R86QL>2!A'MF;&%T(&QI;6ET?2!O +M9B!A(&9A;6EL>2!O9B!R961U8V5D"G-C:&5M97-<:6YD97A[2!O9B!S:V5W(&QI;F5S(&EN("1<8F)B<%Y[,WTD(&=I=F5S(')IV5M8F5D9&5D('!O:6YT?2X*"EQB96=I;GMPU-#.D5(?5T*3&5T("1,)"!A;F0@)$T@)"!B92!T +M:&4@;&EN97,@:6X@)%QB8F)P7GLS?5][:UMT77TD(&=I=F5N(&)Y("1X/7D] +M,"0*86YD("1X+71Z(#T@>2MT7GLR?7<@/3`D(')E2X@(%-H +M;W<@=&AA="!T:&4@9FQA="!L:6UI="!A4QI;F4*;S4Q(#H@261E86P@;V8@4%`S7%P*7&5N9$]U='!U=`I<8F5G:6Y/ +M=71P=70*:34R(#H@32`](&ED96%L*'@M="IZ+"!Y*W1>,BIW*3M<7`I<96UP +M='E,:6YE"F\U,B`Z($ED96%L(&]F(%!0,UQ<"EQE;F1/=71P=70*7&)E9VEN +M3W5T<'5T"FDU,R`Z(%@@/2!I;G1EF5R;R`]('1R:6T@4QI;F4*;S4T(#H@261E86P@;V8@4%`S7%P*7&5N9$]U='!U +M=`I396-O;F1L>2P@=V4@=F5R:69Y('1H870@=&AI4QI +M;F4*;S4U(#T@=')U95Q<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDU-B`Z +M(&1E9W)E92AI9&5A;"AX7C(L('D@*2`O(&ED96%L*'@L('E>,BP@>BDI7%P* +M7&5M<'1Y3&EN90IO-38@/2`Q7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70* +M:34W(#H@8VQE87)!;&Q<7`I<96YD3W5T<'5T"EQQ960*7&5N9'MS;VQU=&EO +M;BI]"@I396-T:6]N?DE)22XS+C0@:6X@16ES96YB=60@86YD($AA2!F86EL('=I=&AO=70@ +M=&AE"D-O:&5N+4UA8V%U;&%Y7&EN9&5X>T-O:&5N+4UA8V%U;&%Y?2!H>7!O +M=&AEW!R;V)L96TJ?5M%>&5R8VES97Y)24DM.#$@:6X@ +M7&-I=&5[4T,Z14A]70I&:6YD(&ERV%L:6=N*GT*7&5N9'MP"!O9B!T:&4*8V]N92X@($9I +M2!T:&4*)#(@7'1I;65S(#(D(&UI;F]RW-M86QL;6%TW-M86QL;6%T4QI;F4*7"`@("`@("`@("`@("`@("`@("`@("`S("`@("`@,B`@(#(@("`@ +M,UQ<"F\V-"`](&ED96%L("AA+"!B*F,L(&,@("T@8BID("P@8B!D+"!B("E< +M7`I<96UP='E,:6YE"F\V-"`Z($ED96%L(&]F(%-<7`I<96YD3W5T<'5T"DAO +M=V5V97(L('1H:7,@9FER,RP@8EXS*2D@+2T@96UB961D960@<&]I;G1< +M7`I<96UP='E,:6YE"F\V-2`]('1R=65<7`I<96YD3W5T<'5T"EQB96=I;D]U +M='!U=`II-C8@.B!C;&5A7!E'1R +M82!I;G1ET-O +M;G-TV)L;W'M2 +M965S(&%L9V5B>S-]+"!X>2P@>5Y[,GT@ +M7')A;F=L920N("!3:&]W('1H870@)%@D(&ES"FYO;G-I;F=U;&%R(&%N9"!I +M=',@9FEB97(@;W9E2@Q+BYR+"!J("T^("AG96YS('12*5\H +M;BMJ*2UT*D9?*#`L*&HM,2DI*3M<7`I<("`@("`@("`@("!,(#H](&ED96%L +M('-E;&5C=$EN4W5B2P@>5XR*3M<7`I<96UP='E, +M:6YE"F\V.2`Z($ED96%L(&]F(%-<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U +M=`II-S`@.B!*(#T@8FQO=U5P261E86PH22E<7`I<96UP='E,:6YE"EP@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`R("`@("`@("`@,B`@("`@("`@("`S +M("`@("`R7%P*;S"IB("`M(&$J8RP@ +M>"!B("T@>2IA+"!X(&,@+2!Y(&$I7%P*7&5M<'1Y3&EN90IO-S`@.B!)9&5A +M;"!O9B!142!;>"P@>2P@82P@8BP@8UU<7`I<96YD3W5T<'5T"E1H97)E9F]R +M92P@=&AE(&)L;W"QY72E;82QB+&-=?7M<;&%N9VQE('EB+7AC+"!X8EY[,GTM86,L +M"GA>>S)]8BUY82P@>%Y[,WUC+7E>>S)]82!<2!T:&%T('1H +M92!S8VAE;64@)%@D(&ES"FYO;G-I;F=U;&%R7&EN9&5X>W-I;F=U;&%R(&QO +M8W5S?3L*7&)E9VEN3W5T<'5T"FDW,2`Z($H@*R!I9&5A;"!J86-O8FEA;B!* +M(#T](&ED96%L(&=E;G,@5TI +M6V$L8BQC77U[7&QA;F=L92!Y8BUX8RP@>&)>>S)]+6%C+"!X7GLR?6(M>6$L +M"GA>>S-]8RUY7GLR?6$@7')A;F=L97T@7&]T:6UE>S)])"!I>S%])"!M965T:6YG(&%T(&]N92!P;VEN="X@($EN"G!A +M&-E<'1I;VYA;"!F:6)ET$@0VQAPI<8F5G:6Y[<')O8FQE;2I]"E-H;W<@=&AA="!T:&4@9F]L;&]W:6YG +M('9AV5N=6UEV1E=&5R;6EN86YT86P@=F%R +M:65T>7T*9&5F:6YE9"!B>2!T:&4@)#(@7'1I;65S(#(D(&UI;F]RW-M86QL;6%T>S1])"X*7&5N9'MPW-O;'5T:6]N +M*GT*5V4@9FEN9"!T:&4@:61E86P@:6X@<&%R='XD*&$I)"!B>2!E;&EM:6YA +M=&EO;@IT:&5O,BP@0B`M('->,BP@0R`M('(JS!?4%`T+"`P7U!0-"P@,%]04#14QI;F4*7"`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@(#)<7`IO-S<@/2!I9&5A;"`H8RID("T@82IE +M+"!B*F0@+2!C*F4L(&$J8B`M(&,@*5Q<"EQE;7!T>4QI;F4*;S"P@>2P@>BP@=2P@=BP@36]N;VUI +M86Q/"P@7%P*7"`@("`@("`@("`@=BUT +M*GDI*5Q<"EQE;7!T>4QI;F4*;S2IU("T@>"IV*5Q<"EQE +M;7!T>4QI;F4*;S%!0,2P@4BP@,"!\('9A%!0,2D[7%P*7&5M<'1Y3&EN90IO.#$@ +M.B!2:6YG36%P(%!0,GA04#$@/"TM+2!27%P*7&5N9$]U='!U=`I<8F5G:6Y/ +M=71P=70*:3@R(#H@8FQO=U5P(#T@4%`R>%!0,2`O(&5M8F5D*&)L;W=5<$ED +M96%L*3M<7`I<96YD3W5T<'5T"E=E('1H96X@;6%P('1H:7,@%Q[7'MX*G4L>2IU+'HJ +M=2QX*G8L>2IV+'HJ=EQ]7'TI.UQ<"EQE;7!T>4QI;F4*;S@T(#H@4FEN9TUA +M<"!B;&]W57`@/"TM+2!04#5<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II +M.#4@.B!K97(@7!E2P@=V4@8V]M<'5T92!T:&4@UQ[82P@8RP@9%Q]+"!<>V(L(&0L(&54QI;F4*7"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@(#)<7`IO.#@@/2!I9&5A;"`H+2!B*F,@*R!A*F0L("T@ +M8BID("L@82IE+"`M(&0@("L@8RIE*5Q<"EQE;7!T>4QI;F4*;S@X(#H@261E +M86P@;V8@4%`T7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3@Y(#H@UQ[9"P@92P@82P@8RP@8EQ] +M7'TI.UQ<"EQE;7!T>4QI;F4*;S@Y(#H@4FEN9TUA<"!04#0@/"TM+2!04#1< +M7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II.3`@.B!S=7)F86-E0R`]('-I +M9VUA(&1E=&5R;6EN86YT86Q<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`R7%P*;SDP(#T@:61E86P@ +M*&,J9"`M(&$J92P@8BID("T@8RIE+"!A*F(@+2!C("E<7`I<96UP='E,:6YE +M"F\Y,"`Z($ED96%L(&]F(%!0-%Q<"EQE;F1/=71P=70*0GD@:6YC;W)P;W)A +M=&EN9R!A('!E4QI;F4*;SDQ(#T@=')U95Q<"EQE;F1/=71P +M=70*7&)E9VEN3W5T<'5T"FDY,B`Z('-UW-O;'5T:6]N*GT*"D9O2!O9B!R871I;VYA;"!N;W)M +M86P@T9A;F\@4V-H96UE&%M<&QE(&-O;F-ET9A;F\*VM]*%@I)"!O9B!A"G-C:&5M92`D6"!<>VY])"!IU-#.D5(?5T*0V]NV]N92UP87)A;65T97(@9F%M:6QY?2!O9@IQ=6%D5Y[,GTK='I>>S)]*W=>>S)]*2!< +M>S-]7WM<8F)B<5MT77T@/0I<4')O:EQB:6"QY+'HL=UU< +M8FEG*2!<96YS<&%C92`N"EQ="E=H870@:7,@=&AE(&9L870@;&EM:71<:6YD +M97A[9FQA="!L:6UI='T@;V8@=&AE($9A;F\@"P@>2P@>BP@=UT[7%P*7&5N +M9$]U='!U=`I<8F5G:6Y/=71P=70*:3DU(#H@42`](&ED96%L*"!T*GA>,BMT +M*GE>,BMT*GI>,BMW7C(@*3M<7`I<96UP='E,:6YE"F\Y-2`Z($ED96%L(&]F +M(%!0,UQ<"EQE;F1/=71P=70*5&\@<&%R86UE=')I>F4@82!L:6YE(&EN(&]U +MW1UQ[02P@0BP@0RP@1%Q]7'T@ +M*R!V*FUA=')I>%Q[7'M%+"!&+"!'+"!(7'U2`]('!H:2!1.UQ<"EQE;7!T>4QI;F4* +M;SDX(#H@261E86P@;V8@4EQ<"EQE;F1/=71P=70*1F]R(&$@;&EN92!T;R!B +M96QO;F<@=&\@)%$D+"!T:&4@>UQT="!I;6%G949A;6EL>7T@;75S="!V86YI +MS%]*%$I)"!I +MUQT="!I;6%G949A;6EL>7TN"B4E(')E;6]V:6YG(&$@9FEN86P@ +M=7-E(&]F("=C;V5F9FEC:65N=',G"B4E(&-O969F3V9&86UI;'D@/2`H8V]E +M9F9I8VEE;G1S("A[,2PR?2P@9V5N2DI7S$["EQB96=I +M;D]U='!U=`II.3D@.B!C;V5F9D]F1F%M:6QY(#T@8V]N=')A8W0H;6%TW5>,BQU*G8L=EXR7'U2E<7`I<96UP +M='E,:6YE"F\Y.2`]('P@=$$R*W1",BMT0S(K1#(@,G1!12LR=$)&*S)T0T2`]('-U8G-T:71U=&4H8V]E9F9/9D9A +M;6EL>2P@4RD[7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`@,2`@("`@ +M("`S7%P*;S$P,2`Z($UA=')I>"!3("`\+2TM(%-<7`I<96YD3W5T<'5T"EQB +M96=I;D]U='!U=`II,3`R(#H@4V)A2D[7%P*7&5N9$]U='!U=`I.97AT+"!W92!M;W9E('1O('1H92!'>S5])"X@(%)E8V%L;"!T:&4@:&]M;V=E;F5O=7,@ +M8V]OUQ[02P@0BP@0RP@1%Q] +M+"!<>T4L($8L($4QI;F4*;S$P,R`]('P@="`M +M0D4K048@+4-%*T%'("U#1BM"1R`M1$4K04@@+41&*T)(("U$1RM#2"!\7%P* +M7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`@("`@,2`@("`@("`@("`W7%P* +M;S$P,R`Z($UA=')I>"!38F%R("`\+2TM(%-B87)<7`I<96YD3W5T<'5T"EQB +M96=I;D]U='!U=`II,3`T(#H@4%`U(#T@45%;="P@82XN9ET[7%P*7&5N9$]U +M='!U=`I<8F5G:6Y/=71P=70*:3$P-2`Z(&9A;F]/9D9A;6EL>2`]('1R:6T@ +M:V5R(&UA<"A38F%R+"!04#4L('!S:2D[7%P*7&5M<'1Y3&EN90IO,3`U(#H@ +M261E86P@;V8@4%`U7%P*7&5N9$]U='!U=`I.;W4QI;F4*;S$P-R`] +M(%Q[+3)'MS8VAE;64A;F]N+7)E9'5C961].R!I="!H +M87,*;75L=&EP;&EC:71Y7&EN9&5X>VUU;'1I<&QI8VET>7T@='=O+B`@3VX@ +M=&AE(&]T:&5R(&AA;F0L('1H92!G96YE4QI;F4*;S$P."`Z($ED96%L(&]F(%!0-5Q<"EQE;F1/=71P +M=70*7&)E9VEN3W5T<'5T"FDQ,#D@.B!O;F5&:6)R92`]/2!I;G1E,BMF7C(I+"!<7`I<("`@("`@ +M("`@("`@:61E86PH8RMD+"!B+64L(&$K9BP@9%XR*V5>,BMF7C(I*5Q<"EQE +M;7!T>4QI;F4*;S$P.2`]('1R=65<7`I<96YD3W5T<'5T"DAE;F-E+"!F;W(@ +M)'0@7&YE<2`P)"P@)$9?>S%]*%%?>W1]*20@:7,@=&AE('5N:6]N(&]F('1W +M;R!C;VYI8W,@;'EI;F<*:6X@8V]M<&QE;65N=&%R>2!P;&%N97,@86YD("1& +M7WLQ?2A17WLP?2DD(&ES('1H92!D;W5B;&4@8V]N:6,*;V)T86EN960@=VAE +M;B!T:&4@='=O(&-O;FEC`HE(&UO +M9&4Z(')E9G1E>`HE('1E>"UM86EN+69I;&4Z(")C:&%P=&5R+7=R87!P97(N +M=&5X(@HE(')E9G1E>"UK965P+71E;7!O2UB=69F97)S.B!T"B4@'1E"(I("@B8FEB(B`N(")M86ME($9)3$4])68@9FEN9"UB:6(B*2D* +M)2!%;F0Z"EQB96=I;GMT:&5B:6)L:6]GS%]"@I<8FEB:71E;7M3 +M0SI#5GT*3F5I;"!#:')IUQE;2!5U-#.D5]"D1A=FED($5IUQE;2!#;VUM=71A=&EV92!A;&=E8G)A('=I=&@@ +M82!V:65W('1O=V%R9"!A;&=E8G)A:6,@9V5O;65TU-# +M.D5(?0I$879I9"!%:7-E;F)U9"!A;F0@2F]E($AAU-#.DA] +M"DIO92!(87)R:7,Z"EQN97=B;&]C:R![7&5M($%L9V5B2P@02!F:7)S="!C;W5RTUA=&AE;6%T:6-A;"!#;VUP=71A=&EO;G-]"@H*"B4E)24E)24E)24E)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)0HE)24E)0HE)24E +M)2`N+B]C:&%P=&5RTUO;F]M:6%L($ED96%LTUO;F]M:6%L($ED96%L +M2!'+GY3;6ET:`H@("`@("`@("4@7&EN +MUQR +M;69A;6EL>7T*)24@;VQD(&9OU!R;V]F(&]F(%!R;W!OUQO<&5R871OUQD97!T:'U[7&]P97)A=&]R;F%M97MD97!T:'U]"EQN97=C;VUM86YD>UQ' +M3'U[7&]P97)A=&]R;F%M97M'3'U]"EQN97=C;VUM86YD>UQI;FET:6%L?7M< +M;W!EVEN?7T*7&YE=V-O;6UA;F1[7$AI;&)]>UQO<&5R871O +MUQC;V1I;7U[7&]P97)A=&]R;F%M +M97MC;V1I;7U]"EQN97=C;VUM86YD>UQS9WU[>UQS9B!G?7T*7&YE=V-O;6UA +M;F1[7$E0?7M<;W!ETE0?7T*"EQB96=I;GMA8G-T&%M<&QE%][,7TL(%QD;W1S8RP@>%][;GU=)"!I'MM;VYO;6EA;"!I9&5A;'U<:6YD97A[:61E +M86PA;6]N;VUI86Q](&EF(&ET('-A=&ES9FEEUQA;'!H87T*>%Y[7&%L<&AA?20@8F5L;VYG%Y[7&%L<&AA?2!<:6X@220@=VAE;F5V97(*)&M?>UQA;'!H87T@7&YE +M<2`P)"P*7&ET96U;)"AC*21=("1))"!I>RI]*5Y[;GTD+"!T:&5N("1))"!IVE]>%][:7TD(&9OV5N=6UE2!T:&4*;6]N;VUI86QS(&ET +M(&-O;G1A:6YS+B`@36]S="!O<&5R871I;VYS(&%R92!F87(@2!R961U8VEN +M9R!T;R!O2U2 +M96ES;F5R(&ED96%L(&%S'0L('=E('!R97-E +M;G0@='=O(&%L9V]R:71H;7,@9F]R(&9I;F1I;F<@80IP&%M<&QE+"!W90IU&5D(&ED96%L +M>UPL(#1T*S%]*%QB8F)P7GLT?2DD(&ES(&-O;FYE8W1E9"X@($9I;F%L;'DL +M('=E(&QO;VL@870*=&AE(&-H86ENVUO;F]M:6%L"FED96%L?5QI;F1E>'MI9&5A +M;"%M;VYO;6EA;'T@9V5N97)A=&5D(&)Y(&$@,EQ]7%P*7&5M<'1Y3&EN90I< +M("`@("`@("`@("`@("`@("`@("`@,B`@("`@("`@,EQ<"F\S(#T@;6]N;VUI +M86Q)9&5A;"`H82`L(&$J8BP@8B`I7%P*7&5M<'1Y3&EN90IO,R`Z($UO;F]M +M:6%L261E86P@;V8@4UQ<"EQE;F1/=71P=70*5&AE('1Y<&4@>UQT="!-;VYO +M;6EA;$ED96%L?5QI;F1E>&-M9'M-;VYO;6EA;$ED96%L?2!I,BMD*5Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`@("`@ +M("`@(#(@("`@("`@(#)<7`IO-"`](&UO;F]M:6%L261E86P@*&$@+"!A*F(L +M(&(@*5Q<"EQE;7!T>4QI;F4*;S0@.B!-;VYO;6EA;$ED96%L(&]F(%-<7`I< +M96YD3W5T<'5T"@I4:&5R92!AUQT="!)9&5A;'TL('1H92!F=6YC=&EO;B![7'1T(&UO;F]M +M:6%L261E86Q](')E='5R;G,@=&AE(&EN:71I86P*:61E86PN"EQB96=I;D]U +M='!U=`II-2`Z($L@/2!I9&5A;"AA7C(L(&)>,BP@82IB*V(J8RE<7`I<96UP +M='E,:6YE"EP@("`@("`@("`@("`@,B`@(#)<7`IO-2`](&ED96%L("AA("P@ +M8B`L(&$J8B`K(&(J8RE<7`I<96UP='E,:6YE"F\U(#H@261E86P@;V8@4UQ< +M"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDV(#H@;6]N;VUI86Q)9&5A;"!+ +M7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`@("`@("`@,B`@("`@("`@ +M,B`@("`@,EQ<"F\V(#T@;6]N;VUI86Q)9&5A;"`H82`L(&$J8BP@8B`L(&(J +M8R`I7%P*7&5M<'1Y3&EN90IO-B`Z($UO;F]M:6%L261E86P@;V8@4UQ<"EQE +M;F1/=71P=70*5&AIV]]8FYE<@IB87-I'M' +M4QI;F4*7"`@("`@ +M("`@("`@("`@("`@("`@(#(@("`@("`@(#)<7`IO-R`](&UO;F]M:6%L261E +M86P@*&$@+"!A*F(L(&(@*5Q<"EQE;7!T>4QI;F4*;S<@.B!-;VYO;6EA;$ED +M96%L(&]F(%-<7`I<96YD3W5T<'5T"@I/;F4@8V%N(&%L,BIC+"!D7C$Q*5Q<"EQE;7!T>4QI;F4*;SD@/2!T4QI;F4*7"`@("`@("`@("`@("`@("`@("`@("`R("`@("`@("`R +M7%P*;S$P(#T@;6]N;VUI86Q)9&5A;"`H82`L(&$J8BP@8B`L(&$J8RE<7`I< +M96UP='E,:6YE"F\Q,"`Z($UO;F]M:6%L261E86P@;V8@4UQ<"EQE;F1/=71P +M=70*"@HE)2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM +M+2TM+2TM+2TM+2TM+2TM+2TM+2T*7'-U8G-E8W1I;VXJ>T5X86UP;&4Z(%-T +M86YL97DM4F5I2P@80IS:6UP;&EC:6%L(&-O;7!L97@@)%Q$96QT820@;VX@ +M=&AE('9E"!S970@)%Q[('A?>S%]+"!<9&]TVY]"EQ])"!C +M;W)R97-P;VYDUQ$96QT87TD(&EN("13(#T@ +M7&)B8G%;>%][,7TL(%QD;W1S8RP*>%][;GU=)"!G96YE%][:5][,7U](%QD;W1S8B!X7WMI7WMP?7TD('-U8V@* +M=&AA="`D7'MX7WMI7WLQ?7TL(%QD;W1S8RP@>%][:5][<'U](%Q](%QN;W1< +M:6X@7$1E;'1A)"X@5&AE(&ED96%L"B1)7WM<1&5L=&%])"!I'M3=&%N;&5Y+5)E:7-N97(*:61E +M86Q]7&EN9&5X>VED96%L(5-T86YL97DM4F5I&5S+"!W92!C;VYS:61E'MF+79E8W1O +M'MS:6UP;&EC:6%L(&-O;7!L97@A)&8D+79E +M8W1O"P@=&AE"B1F)"UV96-T;W(@;V8@82`D +M9"0M9&EM96YS:6]N86P@S%]+"!<9&]TV1]*2!<:6X@7&)B8FY>>V0K +M,7TD+"!W:&5R92`D9E][:7TD(&1E;F]T97,*=&AE(&YU;6)E'M(:6QB97)T('-E +M"!W:71H("1F)"UV96-T;W(@)"AF7WLP?2P@7&1O +M='-C+`IF7WMD?2DD+"!T:&5N('1H92!(:6QB97)T('-EUQ$96QT87TD(&ES"EQ;"DA?>U,O25][7$1E;'1A?7TH="D@/2!<EY[;GTD+6=R861I;F<*9&5F:6YE9"!B>2`D7&1E9R!X7WMI?2`](%QM +M871H8F9[97U?>VE](%QI;B!<8F)B>EY[;GTD+"!W:&5R90HD7&UA=&AB9GME +M?5][:7TD(&ES('1H92`D:20M=&@@VE](#H@7&%L<&AA7WMI?2`^(#`@ +M7'TD+@I/8G-E>UQA;'!H87T@7&YE<2`P)"!I;B`D4R`O +M($E?>UQ$96QT87TD(&EF(&%N9"!O;FQY(&EF"B1<F5R;R!M;VYO;6EA +M;',*)'A>>UQA;'!H87TD(&9O2!C;W5N=&EN9PIS=6-H(&UO;F]M:6%LW1] +M*2`](%QS=6U?>T8@7&EN(%Q$96QT87T*7'-U;5][7'-U8G-T86-K>UQA;'!H +M82!<:6X@7&)B8FY>>VY](%Q<(%QS=7!P*'A>>UQA;'!H87TI(#T@1GU]"EQM +M871H8F9[='U>>UQA;'!H87T@/2!<S$M=%][:7U](%PL("X*7%T* +M1FEN86QL>2P@8GD@VE])"!W:71H("1T)"P@ +M=V4@8V]M<&QE=&4@=&AE"G!R;V]F+EQQ960*7&5N9'MPUQ$96QT87U]*'0I)"!I7!I8V%L;'D@97APS%]="`K(%QD;W1S8B`K +M(&A?>V1]=%Y[9'U]>R@Q+70I7GMD*S%]?20L('=E(&-A;@IO8G1A:6X@=&AE +M("1F)"UV96-T;W(@8GD@=7-I;F<@=&AE(&ED96YT:71Y("1<>VE](#T*7'-U;5][:CTP?5Y[9'T@9E][:BTQ?71>>VI]*#$M="E> +M>V0M:GTD+B`@26X@<&%R=&EC=6QA2AR979E2AT;TQI%\V73M<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II,3,@.B!O8W1A +M:&5D%\R+"!X7S,J>%\T+"!X7S4J +M>%\V*5Q<"EQE;7!T>4QI;F4*;S$S(#T@;6]N;VUI86Q)9&5A;"`H>"!X("P@ +M>"!X("P@>"!X("E<7`I<("`@("`@("`@("`@("`@("`@("`@(#$@,B`@(#,@ +M-"`@(#4@-EQ<"EQE;7!T>4QI;F4*;S$S(#H@36]N;VUI86Q)9&5A;"!O9B!3 +M7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3$T(#H@9G9E8W1OS8L(#$R+"`X7'U<7`I<96UP +M='E,:6YE"F\Q-"`Z($QIV]C +M=&%H961R;VXN97!S?0I<96YD>V-E;G1E2!C;VYS=')U8W0@%]V73L@7%P*7"`@("`@("`@("`@:68@=B`]/3T@-"!T:&5N(&UO;F]M +M:6%L261E86P@<')O9'5C="!G96YS(%,@7%P*7"`@("`@("`@("`@96QS92`H +M(%Q<"EP@("`@("`@("`@("`@("`@3"`Z/2!<>UQ].UQ<"EP@("`@("`@("`@ +M("`@("`@2AV+6DM,RP@ +M7%P*7"`@("`@("`@("`@("`@("`@("`@("`@("`@:B`M/B!X7VDJ>%\H:2MJ +M*S0I*2D[(%Q<"EP@("`@("`@("`@("`@("`@WA?:2IX7RAI*S$I*GA?*&DK,BE4QI;F4*;S$V(#T@ +M7'M<>S0L(#8L(#16-L:6,@<&]L +M>71O<&4@:&%S('1H92!M87AI;6%L(&YU;6)E2!O;B!T:&5S92!M971H +M;V1S(&9R;VT@8V]M;75T871I=F4@86QG96)R82X*"D]N('1H92!O=&AE0IA;F0@TU2.3AH +M.C`U,#`Q?0ID97-C&5S +M+B`@1VEV96X@=&AE($)E='1I(&YU;6)E2!T:&4*)&8D+79E8W1OTU2.39A +M.C4R,#$Q?2D@8VAA2!O9B!3=&%N;&5Y+5)E:7-N97(@ +M:61E86QS('-E92!"F]G?EQC:71E>TU2.35H.C$S,#(P +M?2!A;F0@4W1A;FQE>7Y<8VET97M-4CDX:#HP-3`P,7TN("!&;W(@;6]R90II +M;F9OV]]2!$96-O;7!O +M2!D96-O;7!O7T@:68@)')?>S%]S)]7GM<96QL?2!<:6X@ +M2B0@9F]R('-O;64@)%QE;&P@/@HP)"X@(%!R;W9I9&EN9R!A;B!A;&=O2!D96-O;7!O2!I9&5A;"!I;B!A('!O;'EN;VUI86P@S%]S%](%QR86YG;&4@7&)I9RD@7&-A<"!<8FEG +M*$D@*R!<;&%N9VQE(')?>S)]"EQR86YG;&4@7&)I9RDD+@I<96YD>V5N=6UE +M2X@("0H,BDD"E-I;F-E("1))"!IS%](%QR86YG;&4@7&)I9RD@7&-A<"!<8FEG*"!)("L@7&QA +M;F=L92!R7WLQ?0I<2!I +M9B`DS%](%QR86YG;&4@ +M7&)I9RD@7$QE9G1R:6=H=&%RR`DS)])`ID:79I9&5S("1R)R0@?2!<3&5F=')I9VAT87)R;W<@7'1E +M>'1[("1R)R!<:6X@221](%PL("X@7'%Q=6%D(%QQ960*7%T*7&5N9'MP:BD[ +M7%P*7"`@("`@("`@("`@("`@("!R,B`Z/2!M("\O('(Q.UQ<"EP@("`@("`@ +M("`@("`@("`@;6]N;VUI86Q$96-O;7!O4QI;F4*;6]N +M;VUI86Q)9&5A;"`H82P@8RE<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@ +M("`@,R`@(#,@("`S7%P*;6]N;VUI86Q)9&5A;"`H82`L(&(@+"!C("E<7`I< +M96UP='E,:6YE"FUO;F]M:6%L261E86P@*&$L(&(I7%P*7&5M<'1Y3&EN90I< +M("`@("`@("`@("`@("`@(#,@("`@("`S7%P*;6]N;VUI86Q)9&5A;"`H82`L +M(&(L(&,@*5Q<"EQE;7!T>4QI;F4*;6]N;VUI86Q)9&5A;"`H82P@8BE<7`I< +M96UP='E,:6YE"EP@("`@("`@("`@("`@("`@("`@,R`@(#-<7`IM;VYO;6EA +M;$ED96%L("AA+"!B("P@8R`I7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70* +M:3(U(#H@22`]/2!I;G1E0IY:65L9"!A;B!I +MT%L97AA;F1E<@ID=6%L?5QI;F1E>'MD=6%L+"!!;&5X86YD +M97)](&]F("1))"X@(%1H92!!;&5X86YD97(@9'5A;"!W87,@9FER>UQV965](#T@7'L@1B`Z($9>>V-] +M(%QN;W1<:6X@7$1E;'1A(%Q])"P@=VAE>V-](#T*7'MX7WLQ?2P@ +M7&1O='-C+"!X7WMN?5Q](%QS971M:6YUTU] +M+'Y<8VET97M-4C$W-SDU.3A]+B`@268*)$D@7'-U8G-E=&5Q(%QB8F)Q6WA? +M>S%]+`I<9&]TVY]720@:7,@82!M;VYO;6EA;"!I9&5A;"!A;F0@ +M)'A>>UQL86UB9&%])"!IUQB971A7WMI?2`^(#!]"GA?>VE]7GM<;&%M8F1A7WMI?2LQ +M+5QB971A7WMI?7T@.B!<8F5G:6Y[=&%B=6QA'1[)%QL86YG +M;&4*>%][:7U>>UQB971A7WMI?7T@.B!<8F5T85][:7T@7&=E<2`Q7')A;F=L +M920@:7,@86X*:7)R961U;F1A;G1](%Q<(%QT97AT>VER2!O9B!C;VUP=71I;F<@)$E> +M>UQV965])"!G:79E;B!A('-E="!O9@IG96YE>UQV965])"!AS%]7GM<;&%M +M8F1A7WLQ?2LQ?2P@7&1O='-C+"!X7WMN?5Y[7&QA;6)D85][;GTK,7T@7')A +M;F=L92`Z($D*7')I9VAT*20@=&AA="!A2`D +M>%][:7U>>UQL86UB9&%?>VE]*S%])"!F;W(@)#$@7&QE<0II(%QL97$@;B0N +M"EQE;F1[<')O<&]S:71I;VY]"@I<8F5G:6Y[<')O;V9]"E-E92!4:&5O&%N9&5R(&1U86P@:7,@979E;B!M +M;W)E(&=E;F5R86P@=&AA;B!T:&4@;VYE"F%B;W9E+B!4:&4@2!D96-O;7!OV1U +M86Q]('-H;W5L9"!B92!L:7-T(&]F(&5X<&]N96YT4QI;F4*;S(V(#T@+2T@+BXO+BXO+BXO;3(O +M;6]N:61E86PN;3(Z,C8P+3(W.%Q<"EP@("`@("!D=6%L*$UO;F]M:6%L261E +M86PL($QI&%N9&5R(&1U86Q<7`I< +M("`@("`@("`@("!2(#H](')I;F<@23M<7`I<("`@("`@("`@("!8(#H](&=E +M;G,@4CM<7`I<("`@("`@("`@("!A22`Z/2!L8VU/9D=E;G,@23M<7`I<("`@ +M("`@("`@("!I9B!A22`](3T@82!T:&5N("A<7`I<("`@("`@("`@("`@("`@ +M(&EF("-A22`](3T@(V$@7%P*7"`@("`@("`@("`@("`@("!T:&5N(&5R41E8V]M<&]S:71I;VX@36]N;VUI86Q)9&5A;"`Z/2`H22D@+3X@ +M*%Q<"EP@("`@("`@("`@(%(@.CT@2@C32P@:2`M/B!F:7)S="!E>'!O;F5N=',@35]I*3M<7`I<("`@("`@ +M("`@("!A<'!L>2A,+"!I("T^(&UO;F]M:6%L261E86P@87!P;'DH(VDL(&H@ +M+3X@*"!<7`I<("`@("`@("`@("`@("`@("`@("`@("`@("!I9B!I(VH@/3T] +M(#`@=&AE;B`P7U(@7%P*7"`@("`@("`@("`@("`@("`@("`@("`@("`@96QS +M92!27VI>*&%)(VHK,2UI(VHI7%P*7"`@("`@("`@("`@("`@("`@("`@("`@ +M("`@*2DI7%P*7"`@("`@("`@("`@*5Q<"EQE;F1/=71P=70*5&AI2!D96-O;7!OUQT=`I)?2!A8F]V92P@=V4@;V)T86EN"EQB96=I +M;D]U='!U=`II,C@@.B!,(#T@<')I;6%R>41E8V]M<&]S:71I;VX@23M<7`I< +M96YD3W5T<'5T"EQB96=I;D]U='!U=`II,CD@.B!S8V%N*$PL($H@+3X@/#P@ +M96YD;"`\/"!*(#P\(&5N9&PI.UQ<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@ +M("`@("`S("`@,R`@(#-<7`IM;VYO;6EA;$ED96%L("AA("P@8B`L(&,@*5Q< +M"EQE;7!T>4QI;F4*;6]N;VUI86Q)9&5A;"`H8BP@8RE<7`I<96UP='E,:6YE +M"FUO;F]M:6%L261E86P@*&$L(&(I7%P*7&5M<'1Y3&EN90IM;VYO;6EA;$ED +M96%L("AA+"!C*5Q<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDS,"`Z($D@ +M/3T@:6YT97)S96-T($Q<7`I<96UP='E,:6YE"F\S,"`]('1R=65<7`I<96YD +M3W5T<'5T"@I&;W(@82!F86UI;'D@;V8@;&%R9V5R(&5X86UP;&5S+"!W92!C +M;VYS:61E6QE(%QP%][:7U<8FEG*5Y[;BU\1GPK,7T@.@I<=&5X='L@)%QE;7!T>7-E="!< +M;F5Q($8@7'-U8G-E=&5Q(%Q[('A?>S%]+"!<9&]TVY](%Q])'T* +M7')I9VAT7')A;F=L92!<+"`N"EQ="E1H97-E(&ED96%L4QI;F4*;S,R(#T@*#(L(#8L(#(T +M+"`Q,C`L(#2X@($=I=F5N +M(&$@9W)A<&@@)$%][,7TL(%QD;W1S8RP@ +M>%][;GUS%]+"!<9&]TVY] +M720*9V5N97)A=&5D(&)Y('1H92!Q=6%DVI])"!S=6-H('1H870@)'A?>VE])"!I%][ +M:GTD+B`@5&AE('!R:6UA%][,7TL"EQD;W1S8RP@ +M>%][;GUUQE;2!V97)T97@@8V]V97)]7&EN9&5X +M>W9E`IC;W9EVQE;6UA?2!<;&%B96Q[;&5M.F=R87!H:61E86Q] +M"DEF("1')"!I2!D96-O;7!OT9>>V-]?20@:7,@=&AE('!R:6UE(&ED96%L"B1<;&%N9VQE('A?>VE] +M(#H@>%][:7T@7&YO=%QI;B!&7GMC?2!<VE](%QI;B!&(%QR86YG;&4D+@I<96YD>VQE;6UA?0H*7&)E9VEN +M>W!R;V]F?0I3:6YC92!E86-H(&=E;F5R871OT=](#T@7&)I9V-A<`I07WM&7GMC?7TD+"!W:&5R +M92`D1B0@:7,@82!V97)T97@@8V]V97(N("!4;R!O8G1A:6X@86X*:7)R961U +M;F1A;G0@9&5C;VUP;W-I=&EO;BP@;VYE(&-L96%R;'D@;F5E9',@;VYL>2!T +M:&4@;6EN:6UA;"!V97)T97@*8V]V97)S+B!<<65D"EQE;F1[<')O;V9]"@I! +MVED96%L(6-O9&EM96YS:6]N?2!O9B!A(&UO;F]M:6%L"FED96%L +M+B`@26X@9F%C="P@9F]L;&]W:6YG($)A>65R(&%N9"!3=&EL;&UA;GY<8VET +M97M-4CDT9CHQ,S`Q.'TL('=E"G!R;W9E"@I<8F5G:6Y[<')O<&]S:71I;VY] +M(%QL86)E;'MP&ET>7T*5&AE(&9O;&QO=VEN9R!D96-IV5Q=6%T:6]N?2!< +M=&%G>WM<S(P +M,'!T?0I':79E;B!A(&UO;F]M:6%L(&ED96%L("1)(%QS=6)S971E<2!<8F)B +M<5MX7S$L(%QD;W1S8RP@>%]N720*86YD("1M(%QI;B!<8F)B;B0L(&ES("1< +M8V]D:6T@22!<;&5Q(&TD/PI<96YD>VUI;FEP86=E?7T*7&5N9'ME<75A=&EO +M;GT*7&5N9'MP'M.4"UC;VUP;&5T97T@ +M:68*86QL(&]T:&5R('!R;V)L96US(&EN('1H92!C;&%S0IA;F0@2F]H;G-O;GY<8VET97M-4C@P9SHV.#`U-GTI+B`@3VYE(&]F +M('1H92!@8'-T86YD87)D($Y0+6-O;7!L971E)R<*<')O8FQE;7,@*'-E92!S +M96-T:6]N?C,N,2!I;B!'87)E>2!A;F0@2F]H;G-O;GY<8VET97M-4C@P9SHV +M.#`U-GTI(&ES"G1H92!F;VQL;W=I;F"!#;W9EUQB96=I;GMM:6YI<&%G97U; +M8UU[,C`P<'1]($=I=F5N(&$@9W)A<&@@)$"!C;W9E2!I;B!P;VQY;F]M:6%L('1I;64@=&AA +M="`D20I<UQS8PI#;V1I;7T@<')O8FQE;2!B96QO;F=S('1O +M('1H92!C;&%S"!C;W9E6YO;6EA;"!T:6UE(&%L9V]R:71H +M;2!F;W(*9FEN9&EN9R!T:&4@8V]D:6UE;G-I;VX@;V8@82!M;VYO;6EA;"!I +M9&5A;"X@($YE=F5R=&AE;&5S2!O9@IE>&%M<&QE%][:2QJ?5TD+B`@3&5T"B1)7WMK?21<:6YD97A[:61E86PA +M;V8@;6EN;W)S?2!B92!T:&4@:61E86P@9V5N97)A=&5D(&)Y('1H92`D:R!< +M=&EM97,*:R0@;6EN;W)S(&]F("18)"X@(%-I;F-E('1H92!(:6QB97)T(&9U +M;F-T:6]N(&]F("13("\@25][:WTD(&5Q=6%LVM]*20@*'-E92!4:&5OTU2.3=A.C$S,#`Q?2DL('=E(&-A;B!D +M971ETU2.3%M.C$T,#VM])"!W:71H(')E +M&EC;V=R87!H:6,@=&5R;2!OS$L;GT@/B!X7WLQ+&XM +M,7T@/B!<9&]T%][,BQN?2`^(%QD;W1S8B`^('A? +M>S(L,7T@/@I<9&]T%\Q+BYX7RAM*FXI+"!-;VYO;6EA;$]R9&5R(#T^ +M($QE>%T[7%P*7"`@("`@("`@("`@22`Z/2!M:6YOF]G?EQC:71E>TU2.35H.C$S,#(P?0H*1F]R(&UOTU2,C`P +M,&$Z,3,P,3!]+@H*7&)E9VEN3W5T<'5T"FDS-2`Z(&5R87-E('-Y;6)O;"!X +M.UQ<"EQE;F1/=71P=70*"B4E+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM +M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+0I<W-T86YD87)D +M<&%IV-E;G1E5XS>BP@>'E>,GI>,BP@ +M>5XS>EXR+`IY7C)Z7C,@7')A;F=L921]"EQE;F1[9FEG=7)E?0H*7&)E9VEN +M>V5X86UP;&5](%QL86)E;'MS=&0M97A](`I,970@)$D@/2!<;&%N9VQE('AY +M7C-Z+"!X>5XR>EXR+"!Y7C-Z7C(L('E>,GI>,R!<"QY+'I=)"X@(%=E(&ED96YT:69Y('1H92!M;VYO;6EA;',@:6X@)%QB +M8F)Q6W@L>2QZ720*=VET:"!T:&4@;&%T=&EC92!P;VEN=',@:6X@)%QB8F)N +M7C,D.R!S964@1FEG=7)E?C(N("!4:&4*'HD+7!L86YE+"`D*&EI:2DD(&UO;F]M:6%L +M20M87AI +M&ES(&-O;G1A:6YI;F<*)"@P+#(L,2DD+"!A;F0@ +M)"AV:2DD('1H92!M;VYO;6EA;"`D>5Y[,GUZ7GLR?20N"EQE;F1[97AA;7!L +M97T*"D9O;&QO=VEN9R!3='5R;69E;',L(%1R=6YG(&%N9"!6;V=E;'Y<8VET +M97M-4CDV:3HQ,S`R.7TL('=E(&UA:V4@=&AE"F9O;&QO=VEN9R!D969I;FET +M:6]N>UQA;'!H87TD(&%N9"!A('-U +M8G-E="`D1@I<%][,7TL(%QD;W1S8RP@>%][;GT@7'TD +M+"!W92!I;F1E>"!T:&4@%Y[7&%L<&AA?2!<8V1O="!X7GM<8F5T87TD('=H97)E("1<2!T:&4@<&%I>UQA;'!H87TL +M($8I)"X@($$@'MS=&%N9&%R9"!P86ER?2!O +M9B!A(&UO;F]M:6%L(&ED96%L("1))"!I6EN9R!T:&4@9F]L;&]W:6YG('1H%Y[ +M7&%L<&AA?2D@7&-A<"!&(#T@7&5M<'1Y"QY7'TI+"`H,2P@7'MX+'I< +M?2DL("AY+%Q[>"QZ7'TI+"`H>BP@7'MY7'TI+"`H>5Y[,GUZ+"!<>WA7-E="D*7%T*:6X@17AA;7!L97Y<W-T9"UE +M>'T@8V]R2!D96-O;7!O +MR`D>%][:7T@7&YO=&EN($8D?2!<>UQA;'!H87TL($8I)"X@($UOVE](#H@7'1E>'1[("1X7WMI?2!< +M;F]T:6X@1B1]"EQR86YG;&4D(&ES(&%N(&%S%Y[7&%L<&AA?20@9F]R('1H92!A +MR`D>%][:7T@7&YO=&EN($8D?2!<2`D*'=?,BP@1BDD(&ES(&YO="!A('-T86YD87)D('!A +M:7(@;V8*=&AI7,G)R!I +M="X@(%1H:7,@;&%R9V5R(&ED96%L(&UI9VAT"FAA=F4@T9])"!I"P@1BD[7%P*7"`@("`@("`@("`@("`@("`@("`@($L@/2!+(#H@;6]N;VUI +M86Q)9&5A;"AG,2`O+R!X*3M<7`I<("`@("`@("`@("`@("`@("`@("`@3"`Z +M/2!S96QE8W0H9FERUQC:&%R8%PE +M?2`H9FERUQ[=S(L($9W-T9"UE>'T@=7-I;F<@=&AIET[7%P*7&5N9$]U='!U +M=`I<8F5G:6Y/=71P=70*:3,X(#H@22`](&UO;F]M:6%L261E86PH>"IY7C,J +M>BP@>"IY7C(J>EXR+"!Y7C,J>EXR+"!Y7C(J>EXS*3M<7`I<96UP='E,:6YE +M"F\S."`Z($UO;F]M:6%L261E86P@;V8@4UQ<"EQE;F1/=71P=70*7&)E9VEN +M3W5T<'5T"FDS.2`Z('-C86XH=&EM92!S=&1086ER4QI;F4*7'MY+"!<>W@L('IS$L(%Q[>"P@>EQ]7'U<7`I<96UP='E,:6YE"EP@(#(@,EQ<"EQ[>2!Z("P@ +M7'MWHL(%Q[>5Q]7'U<7`I<96UP='E,:6YE +M"EP@(#)<7`I<>WD@>BP@7'MX7'U4QI;F4*7'LQ+"!<>W@L +M('E6%M87Y<8VET97M-4C$W,S0U-C9]+B`@5&AE('!R;W!OR!X7WLQ?2Q<9&]TVY](%Q])"P@=V4@=W)I +M=&4@)$E?1B0@9F]R('1H92!M;VYO;6EA;`II9&5A;"!I;B`D7&)B8G%;>%]I +M(#H@7'1E>'1[("1X7WMI?2!<;F]T:6X@1B1]720@;V)T86EN960@8GD@VE](%QI;B!&)"!W:71H("0Q)"!I;B!E=F5R>2!M +M:6YI;6%L(&=E;F5R871OW!R;V]F?0H*5&AE(&1E9FEN:71I;VX@;V8@ +M82!S=&%N9&%R9"!P86ER7&EN9&5X>W-T86YD87)D('!A:7)](&EM<&QI97,@ +M=&AA=`HD*'A>>UQA;'!H87TL(%QE;7!T>7-E="DD(&ES(&$@2!I9@HD>%Y[7&%L<&AA?20@:7,@ +M;VYE(&]F('1H92!F:6YI=&5L>2!M86YY(&UO;F]M:6%L7&EN9G1Y*20@8G5T(&YO="!C;VYT86EN960@:6X@ +M)$E?1B0L('=H97)E("107T8@/2!<;&%N9VQE('A?:3H*>%]I(%QN;W1I;B!& +M(%QR86YG;&4D+B`@4VEN8V4@:61E86P@<75O=&EE;G1S(&%N9"!S871UT9])"!O9B`D +M220N("!/;F4*87!P2!D96-O;7!O +MW-T86YD87)D4&%I2A,+"!R("T^('(@/3X@,2DI.UQ<"EP@("`@("`@("`@("`@("`@("`@("`M +M+2!U%Q[65Q]*3M<7`I<("`@ +M("`@("`@("`@("`@("`@("`@("`@("!3(#T@:F]I;BA3+"!A<'!L>2A"+"!B +M("T^(%Q[<'-I*&(I+"!,7'TI*3M<7`I<("`@("`@("`@("`@("`@("`@("`@ +M("`@("`I*2D[7%P*7"`@("`@("`@("`@4RE<7`I<96YD3W5T<'5T"EQB96=I +M;D]U='!U=`II-#$@.B!T:6UE('-T86YD87)D4&%IU-]7VXD('1O('1H90IC;V]R9&EN871E'1[("1<6UB;VP@>CM<7`I<96YD +M3W5T<'5T"@H*)24M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM +M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM"EQS=6)S96-T:6]N*GM%>&%M<&QE +M.B!);G1E9V5R(%!R;V=R86UM:6YG(%!R;V)L96US?0H*07,@86X@87!P;&EC +M871I;VX@;V8@VEN=&5G97(@<')O9W)A;6UI;F=]+@I,970@ +M)$$D(&)E(&$@)&0@7'1I;65S(&XD(&UA=')I>"!O9B!N;VYN96=A=&EV92!I +M;G1E9V5R"`D +M7&)E=&$@7&EN(%QB8F)Z7GMD?20N("!792!F;V-UF4@)%QO;65G82!<8V1O="!< +M86QP:&$D"G-U8FIE8W0@=&\@)$$@7&%L<&AA(#T@7&)E=&$D+"`D7&%L<&AA +M(%QI;B!<8F)B;EYN)"Y]"EQ=(`I792!V:65W('1H:7,@:6YT96=E2!D97!E;F1I;F<@;VX@=&AE"G9E8W1O +MT$L7&]M96=A?2A<8F5T82DD(&1E<&5N9',@;VX@=&AE('!R +M;W!OW1O'MI9&5A;"%T;W)I8WT@)$E?>T%](%QS=6)S971E<0I3 +M(#T@7&)B8G%;>%][,7TL(%QD;W1S8RP@>%][;GU=)"!A%Y[7&1E;'1A?20@=VAE'MI;FET:6%L(&ED96%L?2!O9B`D25]!)`IW +M:71H(')E%Y[7&=A +M;6UA?2!<<')E8U][7&]M96=A?2!X7GM<9&5L=&%](%Q,;VYG;&5F=')I9VAT +M87)R;W<@7&)E9VEN>V-AR!OR!A;F0@ +M?2!X7GM<86QP:&%]"EQPTU2.3=B.C$S,#,T?2X*"EQB96=I;GMPV5N=6UEUPL +M"EQO;65G87TH25][07TI)"!C;W9ET$L7&]M96=A?2A<8F5T82DD(&-O=F5R960@8GD@=&AE('-T86YD87)D('!A +M:7(@)"AX7GM<9V%M;6%]+`I&*20L('1H96X@=&AE('-E8V]N9"!S=&%T96UE +M;G0@9W5A&ES=',@82!U;FEQ=64*)%QD96QT82!< +M:6X@7&)B8FY>>VY])"!S=6-H('1H870@)$$@7&1E;'1A(#T@7&)E=&$@+2!! +M(%QG86UM820N"E1H97)E9F]R92P@)%QA;'!H82`](%QD96QT82`K(%QG86UM +M820N("!792!P;VEN="!O=70@=&AA="!T:&4*8V]M<&QE>&ET>2!O9B!T:&ES +M(&%L9V]R:71H;2!IUPL(%QO;65G87TH +M25][07TI)"!W:&EC:"!D97!E;F1S(&]N;'D@;VX*)$$D(&%N9"`D7&]M96=A +M)"X@($%S(&$@B!!.UQ<"EP@("`@("`@("`@($H@.CT@:61E86P@ +M87!P;'DH96YT2AL87-T(%`L('(@+3X@:6YD97@@&%M<&QEUQ[,2PQ+#$L,2PQ7'TL7'LQ+#(L +M-"PU+#9S$L,2PQ+#$L +M,5Q].UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDU,B`Z('S,L.5Q]7'U<7`I<96UP='E,:6YE +M"F\U,R`]('P@,R!\7%P*7"`@("`@('P@.2!\7%P*7&5M<'1Y3&EN90I<("`@ +M("`@("`@("`@("`@,B`@("`@("`@,5Q<"F\U,R`Z($UA=')I>"!:6B`@/"TM +M+2!:6EQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDU-"`Z(&(R(#T@=')A +M;G-P;W-E(&UA=')I>%Q[7'LU+#$V7'U4QI;F4*;S4T(#T@ +M?"`U("!\7%P*7"`@("`@('P@,38@?%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@ +M("`@("`@(#(@("`@("`@(#%<7`IO-30@.B!-871R:7@@6EH@(#PM+2T@6EI< +M7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II-34@.B!)4"A!+"!W,2P@8C$I +M7%P*7&5M<'1Y3&EN90IO-34@/2!\(#$@,2`P(#`@,2!\7%P*7&5M<'1Y3&EN +M90I<("`@("`@("`@("`@("`@,2`@("`@("`@-5Q<"F\U-2`Z($UA=')I>"!: +M6B`@/"TM+2!:6EQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDU-B`Z($E0 +M*$$L('4QI;F4*;S4W(#T@?"`R +M(#$@,"`P(#(@?%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`@(#$@("`@ +M("`@(#5<7`IO-3<@.B!-871R:7@@6EH@(#PM+2T@6EI<7`I<96YD3W5T<'5T +M"EQB96=I;D]U='!U=`II-3@@.B!)4"A!+"!W,BP@8C(I7%P*7&5M<'1Y3&EN +M90IO-3@@/2!\(#(@,"`Q(#(@,"!\7%P*7&5M<'1Y3&EN90I<("`@("`@("`@ +M("`@("`@,2`@("`@("`@-5Q<"F\U."`Z($UA=')I>"!:6B`@/"TM+2!:6EQ< +M"EQE;F1/=71P=70*"B4E+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM +M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+0I<2!O;@IT:&4@ +M9VEV96X@8V]O7-T96TN("!">2!M86MI;F<@82!G96YE%][ +M:7T@7&UA<'-T;PI<VI])"X@($9O +MR!<VXK,7TH7&)B +M8G$I)"!C;VYS:7-T:6YG(&]F('5P<&5R"G1R:6%N9W5L87(@;6%TUQE;2!";W)E;"UF +M:7AE9'U<:6YD97A[0F]R96PM9FEX961]7&EN9&5X>VED96%L(4)O&5D?2!I9B!I=`IS871IVI])"!T:&5N"B1<9G)A8WMR>%][:7U]>WA?>VI] +M?2!<:6X@220@9F]R(&%L;"`D:2`\(&HD.PI<:71E;5LD*&,I)%T@)%QI;FET +M:6%L*%QS9R!<8V1O="!)*2`]($DD(&9O2`D7'-G)"!I2!I;B`D0B0N"EQE +M;F1[96YU;65R871E?0I&;W(@82!P&5D+@I<8F5G:6Y/ +M=71P=70*:34Y(#H@4R`](%%16V$L8BQC+&1=.UQ<"EQE;F1/=71P=70*7&)E +M9VEN3W5T<'5T"FDV,"`Z(&ES0F]R96P@;6]N;VUI86Q)9&5A;"AA7C(L(&$J +M8BP@8EXR*5Q<"EQE;7!T>4QI;F4*;S8P(#T@=')U95Q<"EQE;F1/=71P=70* +M7&)E9VEN3W5T<'5T"FDV,2`Z(&ES0F]R96P@;6]N;VUI86Q)9&5A;"AA7C(L +M(&)>,BE<7`I<96UP='E,:6YE"F\V,2`](&9A;'-E7%P*7&5N9$]U='!U=`I4 +M:&4@9G5N8W1I;VX@>UQT="!B;W)E;'U<:6YD97AC;61[8F]R96Q](&=E;F5R +M871E&5D(&ED96%LW1H96]R96U] +M6T=A;&QI9V]=(%QL86)E;'MG86QL:6=O?0I&:7@@82!T97)M(&]R9&5R(&]N +M("13(#T@7&)B8G%;>%][,'TL(%QD;W1S8RP@>%][;GU=)"!S=6-H('1H870@ +M)'A?>S!]"CX@7&1O='-C(#X@>%][;GTD+B`@268@)$DD(&ES(&$@:&]M;V=E +M;F5O=7,@:61E86P@:6X@)%,D+"!T:&5N('1H97)E"FES(&$@6F%R:7-K:2!O +M<&5N('-U8G-E="`D52!<'MI9&5A;"%G96YEW!R;V]F?0I3964@5&AE;W)E;7XQ+C(W +M(&EN($=R965N?EQC:71E>TU2.3EM.C$S,#0P?2X@7'%E9`I<96YD>W!R;V]F +M?0H*5&AE(&9O;&QO=VEN9R!M971H;V0@86QL;W=S(&]N92!T;R!C;VUP=71E +M(&=E;F5R:6,@:6YI=&EA;"!I9&5A;',N"EQB96=I;D]U='!U=`II-C0@.B!G +M:6X@/2!M971H;V0H*3M<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II-C4@ +M.B!G:6X@261E86P@.CT@22`M/B`H7%P*7"`@("`@("`@("`@4R`Z/2!R:6YG +M($D[7%P*7"`@("`@("`@("`@4W1O4R`Z/2!M87`H4RP@4RP@ +M7'LP7'TL(%->7'MN=6UG96YS(%,Z+3%"!I;@IT:&4@6F%R +M:7-K:2!O<&5N('-U8G-E="`D520N("!3:6YC92!W92!AF5R;R!T:&ES(&]C8W5R +M4QI;F4*7"`@("`@("`@("`@("`@ +M("`@("`@("`R("`@("`R("`@-%Q<"F\V.2`](&UO;F]M:6%L261E86P@*&$@ +M+"!A*F(@+"!B("E<7`I<96UP='E,:6YE"F\V.2`Z($UO;F]M:6%L261E86P@ +M;V8@4UQ<"EQE;F1/=71P=70*06QT:&]U9V@@=&AE(&=E;F5R:6,@:6YI=&EA +M;"!I9&5A;"!I4QI;F4*7"`@("`@("`@("`@("`@("`@("`@("`R +M("`@("`@("`R("`@("`R7%P*;S%T[7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:34QI;F4*7"`@("`@("`@ +M("`@("`@("`@("`@("`R("`@("`R("`@-B`@("`@("`R("`@("`V("`@("`@ +M("`@,B`@("`@("`T7%P*;S&%M<&QE.B!#;VYN96-T961N97-S(&]F('1H92!(:6QB +M97)T(%-C:&5M97T*"D=E;F5R:6,@:6YI=&EA;"!I9&5A;',@87)E(&$@<&]W +M97)F=6P@=&]O;"!F;W(@>UPL('`H="E]*%QB +M8F)P7GMN?2DD('!A>VY])"!W:71H($AI;&)E6YO;6EA;"`D<"AT*20N +M("!&;W(@86X*:6YT>UPL +M"G`H="E]*%QB8F)P7GMN?2DD(&-A;B!B92!F;W5N9"!I;B!'TU2,C8Z,S4V-GT@;W(@06QT +M;6%N(&%N9"!+;&5I;6%N?EQC:71E>TU2.#%F.C$T,#(U87TN"E=H:6QE(&UU +M8V@@:7,@:VYO=VX@86)O=70@7-T97)Y +M+B`@26X@<&%R=&EC=6QA2!P87)A;65T97)I>F4@+2TM(&ES(&YO=`IW96QL('5N9&5R +M2!T=V\*=F5R=&EC97,@:6X@ +M=&AE(&EN8VED96YC92!G>UPL('`H="E]*%QB8F)P +M7GMN?2DD(&ES(&%T"FUOTU2.3=A +M.C$S,#`Q?2X@(%1H=7,L(%1H96]R96U^7')E9GMG86QL:6=O?2!S:&]W'MI9&5A;"%G96YE2!S971T:6YG("1X +M7WMN?3TQ)"!A;F0*)'A?>VXM,7T],20@:6X@)$DD+B`@5VET:"!T:&ES(&YO +M=&%T:6]N+"!W92!H879E"@I<8F5G:6Y[=&AE;W)E;7T*268@)$HD(&ES(&$@ +M0F]R96PM9FEX960@:61E86PL('1H96X@=&AE('-E="!O9B!";W)E;"UF:7AE +M9"!I9&5A;',@)$DD+`IW:71H($AI;&)E6YO;6EA;"`D<"AT*20@ +M86YD("1<<&DH22D@/2!*)"P@8V]NW!R;V]F?0I3964@5&AE;W)E +M;7XV(&EN(%)E979E&5D(&ED96%L +M2!D:7-T&5D(&ED96%L +M+"!W92!PV1IF5S('1H90I";W)E;"UF:7AE9"!I9&5A;"X@(%1H +M92!P;VQAF%T:6]N?2!O9B!A(&UO;F]M +M:6%L"FED96%L("1)(%QS=6)S970@4R0@:7,@9&5F:6YE9"!AVE]?2!Z7WMI+&I](#H@7'1E>'1["G=H97)E("1X7WLP?5Y[7&%L<&AA7WLP +M?7U<9&]T%][;GU>>UQA;'!H85][;GU])"!ITU2.3=G.C$T,#`S +M?2!P>UPL('`H="E]*%QB8F)P +M7GMN?2DD(&-A;&QE9"!T:&4@;&5X:6-O9W)A<&AI8R!C;VUP;VYE;G0N("!& +M;W(*;6]R92!I;F9OU@C*&XM,BD@ +M/3X@,2P@6",H;BTQ*2`]/B`Q7'TI*3M<7`I<96YD3W5T<'5T"EQB96=I;D]U +M='!U=`II-S@@.B!P;VQA%\T+"!-;VYO;6EA;$]R9&5R(#T^ +M($=,97A=.UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDX,2`Z($D@/2!M +M;VYO;6EA;$ED96%L*'A?,%XR+"!X7S`J>%\Q7C(J>%\S+"!X7S%>,RIX7S0I +M7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`@("`@("`@(#(@("`@(#(@ +M("`@(#-<7`IO.#$@/2!M;VYO;6EA;$ED96%L("AX("P@>"!X('@@+"!X('@@ +M*5Q<"EP@("`@("`@("`@("`@("`@("`@("`@,"`@(#`@,2`S("`@,2`T7%P* +M7&5M<'1Y3&EN90IO.#$@.B!-;VYO;6EA;$ED96%L(&]F(%-<7`I<96YD3W5T +M<'5T"EQB96=I;D]U='!U=`II.#(@.B!P"!X("P@>"`I7%P*7"`@("`@("`@("`@ +M("`@("`@("`@("`P("`@,"`Q("`@,5Q<"EQE;7!T>4QI;F4*;S@R(#H@36]N +M;VUI86Q)9&5A;"!O9B!37%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3@S +M(#H@<&]L87)I>F%T:6]N($E<7`I<96UP='E,:6YE"F\X,R`](&UO;F]M:6%L +M261E86P@*'H@("`@("!Z("`@("`@+"!Z("`@("`@>B`@("`@('H@("`@("!Z +M("`@("`@+"!Z("`@)%QC9&]T7&-D;W1<8V1O="1<7`I<("`@("`@("`@("`@ +M("`@("`@("`@(%Q[,"P@,%Q](%Q[,"P@,5Q]("`@7'LP+"`P7'T@7'LQ+"`P +M7'T@7'LQ+"`Q7'T@7'LS+"`P7'T@("!<>S$@)%QC9&]T7&-D;W1<8V1O="1< +M7`I<96UP='E,:6YE"F\X,R`Z($UO;F]M:6%L261E86P@;V8@45$@6WH@("`@ +M("`L('H@("`@("`L('H@("`@("`L('H@("`@("`L('H@("`@("`@)%QC9&]T +M7&-D;W1<8V1O="1<7`I<("`@("`@("`@("`@("`@("`@("`@("`@("`@(%Q[ +M,"P@,%Q]("`@7'LP+"`Q7'T@("!<>S$L(#!"`@+2`U.#1X('@@("L@,S8P,#%X("`K(#DR +M.#$V>"!X("`K(#0W,C,Y>"`L("T@)%QC9&]T7&-D;W1<8V1O="1<7`I<("`@ +M("`@("`@("`@("`P("`@("`@(#`@,R`@("`@("`P(#0@("`@("`@("`S("`@ +M("`@("`@,R`T("`@("`@("`@-"`@("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EQE +M;7!T>4QI;F4*;S@T(#H@261E86P@;V8@4UQ<"EQE;F1/=71P=70*"E1O(&EL +M;'5S=')A=&4@4F5E=F5S)R!M971H;V0L('=E('-H;W<@=&AA="!T:&4@:6YC +M:61E;F-E(&=R87!H(&]F('1H90I(:6QB97)T('-C:&5M92`D7$AI;&)>>S1T +M*S%]*%QB8F)P7GLT?2DD(&AAW)A=&EO +M;F%L('%U87)T:6,@8W5R=F5](&EN"B1<8F)B<%Y[-'TD(&AAS`L,2PR7'TL("AI+&HI("T^("AG +M96YS(%,I(RAI*VHI*5Q<"EQE;7!T>4QI;F4*;S@U(#T@?"!X7S`@>%\Q('A? +M,B!\7%P*7"`@("`@('P@>%\Q('A?,B!X7S,@?%Q<"EP@("`@("!\('A?,B!X +M7S,@>%\T('Q<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@(#,@("`@("`@ +M,UQ<"F\X-2`Z($UA=')I>"!3("`\+2TM(%-<7`I<96YD3W5T<'5T"EQB96=I +M;D]U='!U=`II.#8@.B!R871I;VYA;%%U87)T:6,@/2!M:6YO6YO;6EA;"A3+W)A=&EO;F%L475A,BP@>%\P*GA?,2P@>%\P*GA?,BP@>%\Q7C(L('A?,2IX +M7S(L('A?,EX@)%QC9&]T7&-D;W1<8V1O="1<7`I<96YD3W5T<'5T"EQB96=I +M;D]U='!U=`II.3`@.B!S8V%N*"-,+"!I("T^(#P\(&5N9&P@/#P@:2LQ(#P\ +M("(@.B`B(#P\($PC:2`\/"!E;F1L*3M<7`I<96UP='E,:6YE"EP@("`@("`@ +M("`@("`@("`@("`@(#(@("`@("`@("`R("`@("`@("`@("`@("`@,EQ<"C$@ +M.B!M;VYO;6EA;$ED96%L("AX("P@>"!X("P@>"`L('@@>"`L('@@>"`L('@@ +M*5Q<"EP@("`@("`@("`@("`@("`@("`@(#`@("`P(#$@("`Q("`@,"`R("`@ +M,2`R("`@,EQ<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`@("`@("`@,B`@ +M("`@("`@(#(@("`@("`@("`@("`@("`S7%P*,B`Z(&UO;F]M:6%L261E86P@ +M*'@@+"!X('@@+"!X("P@>"!X("P@>"!X("P@>"`L('@@>"`I7%P*7"`@("`@ +M("`@("`@("`@("`@("`@,"`@(#`@,2`@(#$@("`P(#(@("`Q(#(@("`R("`@ +M,"`S7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`@("`@("`@("`@,B`@ +M("`@,B`@(#-<7`HS(#H@;6]N;VUI86Q)9&5A;"`H>"`L('@@+"!X('@@+"!X +M("P@>"!X('@@*5Q<"EP@("`@("`@("`@("`@("`@("`@(#`@("`Q("`@,2`R +M("`@,B`@(#$@,B`S7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`@("`@ +M("`@("`@,B`@("`@("`@(#0@("`S7%P*-"`Z(&UO;F]M:6%L261E86P@*'@@ +M+"!X("P@>"!X("P@>"`L('@@>"`I7%P*7"`@("`@("`@("`@("`@("`@("`@ +M,"`@(#$@("`Q(#(@("`R("`@,B`S7%P*7&5M<'1Y3&EN90I<("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@(#4@("`T(#-<7`HU(#H@;6]N;VUI86Q)9&5A +M;"`H>"`L('@@+"!X("P@>"!X("E<7`I<("`@("`@("`@("`@("`@("`@("`P +M("`@,2`@(#(@("`R(#-<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@("`@ +M("`@("`@("`R("`@("`@("`@-2`@("`@("`@(#0@,EQ<"C8@.B!M;VYO;6EA +M;$ED96%L("AX("P@>"`L('@@>"`L('@@+"!X('@@+"!X('@@*5Q<"EP@("`@ +M("`@("`@("`@("`@("`@(#`@("`Q("`@,2`R("`@,B`@(#$@,R`@(#(@,UQ< +M"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`@("`@("`@,B`@("`@("`@(#(@ +M("`@("`@("`@("`@("`U("`@("`@("`@("`@("`@-%Q<"C<@.B!M;VYO;6EA +M;$ED96%L("AX("P@>"!X("P@>"`L('@@>"`L('@@>"`L('@@+"!X('@@+"!X +M('@@+"!X('@@*5Q<"EP@("`@("`@("`@("`@("`@("`@(#`@("`P(#$@("`Q +M("`@,"`R("`@,2`R("`@,B`@(#`@,R`@(#$@,R`@(#(@,UQ<"EQE;7!T>4QI +M;F4*7"`@("`@("`@("`@("`@("`@("`@("`@(#(@("`@("`@("`U("`@-"`@ +M("`@("`R7%P*."`Z(&UO;F]M:6%L261E86P@*'@@+"!X("P@>"!X("P@>"`L +M('@@>"`L('@@>"`I7%P*7"`@("`@("`@("`@("`@("`@("`@,"`@(#$@("`Q +M(#(@("`R("`@,B`S("`@,2`S7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@ +M("`@("`@("`R("`@("`@("`@,B`@("`@("`@("`@("`@(#0@("`@("`@("`@ +M(#)<7`HY(#H@;6]N;VUI86Q)9&5A;"`H>"`L('@@>"`L('@@+"!X('@@+"!X +M('@@+"!X("P@>"!X("P@>"!X("E<7`I<("`@("`@("`@("`@("`@("`@("`P +M("`@,"`Q("`@,2`@(#`@,B`@(#$@,B`@(#(@("`P(#,@("`Q(#-<7`I<96UP +M='E,:6YE"EP@("`@("`@("`@("`@("`@("`@("`@("`@,B`@("`@,B`@(#0@ +M("`@("`@("`@("`@,EQ<"C$P(#H@;6]N;VUI86Q)9&5A;"`H>"`L('@@+"!X +M('@@+"!X("P@>"!X('@@+"!X('@@*5Q<"EP@("`@("`@("`@("`@("`@("`@ +M("`P("`@,2`@(#$@,B`@(#(@("`Q(#(@,R`@(#$@,UQ<"EQE;7!T>4QI;F4* +M7"`@("`@("`@("`@("`@("`@("`@("`@("`R("`@("`@("`@-"`@("`@,UQ< +M"C$Q(#H@;6]N;VUI86Q)9&5A;"`H>"`L('@@+"!X('@@+"!X("P@>"!X("E< +M7`I<("`@("`@("`@("`@("`@("`@("`@,"`@(#$@("`Q(#(@("`R("`@,2`S +M7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`@("`@("`@("`@("`@("`V +M("`@-2`@("`@-"`R7%P*,3(@.B!M;VYO;6EA;$ED96%L("AX("P@>"`L('@@ +M+"!X('@@+"!X('@@*5Q<"EP@("`@("`@("`@("`@("`@("`@("`P("`@,2`@ +M(#(@("`R(#,@("`R(#-<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II.3$@ +M.B!A;&PH3"P@22`M/B!I"!X("P@ +M>"!X("P@>"`I7%P*7"`@("`@("`@("`@("`@("`@("`@("`P("`@,"`Q("`@ +M,2`@(#`@,B`@(#$@,B`@(#)<7`I<96UP='E,:6YE"F\Y,B`Z($UO;F]M:6%L +M261E86P@;V8@4UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDY,R`Z(&-L +M87-S,B`]('!R;VIE8W1I;VX@3",Q7%P*7&5M<'1Y3&EN90I<("`@("`@("`@ +M("`@("`@("`@("`@("`@("`R("`@("`@("`@,UQ<"F\Y,R`](&UO;F]M:6%L +M261E86P@*'@@+"!X("P@>"!X("P@>"`I7%P*7"`@("`@("`@("`@("`@("`@ +M("`@("`P("`@,2`@(#$@,B`@(#)<7`I<96UP='E,:6YE"F\Y,R`Z($UO;F]M +M:6%L261E86P@;V8@4UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDY-"`Z +M(&-L87-S,R`]('!R;VIE8W1I;VX@3",T7%P*7&5M<'1Y3&EN90I<("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@-%Q<"F\Y-"`](&UO;F]M:6%L261E +M86P@*'@@+"!X("P@>"`I7%P*7"`@("`@("`@("`@("`@("`@("`@("`P("`@ +M,2`@(#)<7`I<96UP='E,:6YE"F\Y-"`Z($UO;F]M:6%L261E86P@;V8@4UQ< +M"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDY-2`Z(&%L;"@Q+BXS+"!I("T^ +M('!R;VIE8W1I;VX@3"-I(#T](&-L87-S,BE<7`I<96UP='E,:6YE"F\Y-2`] +M('1R=65<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II.38@.B!A;&PH-"XN +M,3$L(&D@+3X@<')O:F5C=&EO;B!,(VD@/3T@8VQA4QI +M;F4*;SDV(#T@=')U95Q<"EQE;F1/=71P=70*1FEN86QL>2P@=V4@=7-E('1H +M92!D:7-T&EC;V=R87!H:6,@8V]M<&]N96YT+@H*)24M+2TM +M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM +M+2TM+2TM+2TM"EQS96-T:6]N>U1H92!#:&%I;B!07T*"@I(;UQC +M>W-]=&5N(&%N9"!4:&]M87-^7&-I=&5[35(R,#`P8CHQ,S`S-WT@S%]+"!<9&]TVY]720@:7,*<')I;64@:68@86YD(&]N;'D@ +M:68@:70@:7,@9V5N97)A=&5D(&)Y(&$@S%]+"!<9&]TVY]7'TD+"!T:&4@<&]S970@;V8@ +M87-S;V-I871E9"!PV-H86EN('!R;W!E'1[7&)E9VEN>VUI;FEP86=E?5MT77LS,#!P='T*1F]R +M(&%N>2!E;6)E9&1E9"!PVE](#H@ +M>%][:7T@7&YO=%QI;B!&"EQR86YG;&4D(&]F("1))"P@=&AET=](%QS=6)S970*4%][1GTD('-U +M8V@@=&AA="`D?$=\(#T@?$9\+3$D+@I<96YD>VUI;FEP86=E?7T*7%T*26X@ +M;W1H97(@=V]R9',L('1H97)E(&ES(&$@2!T:&ES('-A='5R871E9"!C:&%I;B!C;VYD:71I;VXN"D)E8V%U2X@(`H*36]R92!R +M96-E;G1L>2P@36EL;&5R+"!3='5R;69E;',@86YD(%EA;F%G87=A?EQC:71E +M>TU2,3'MG96YEVE])"P@=&AES-])"!W:&EC:"!S=')I8W1L>0ID:79I9&5S +M('1H92!L96%S="!C;VUM;VX@;75L=&EP;&4@;V8@)')?>S%])"!A;F0@)')? +M>S)])"X@($EN"G!A&%M<&QE'!E2`]($D@+3X@*%Q<"EP@ +M("`@("`@("`@($P@.CT@87-S($D[7%P*7"`@("`@("`@("`@T%N($EN:71I +M86P@261E86P@;V8@82!4;W)I8R!)9&5A;'T@($%S(&UE;G1I;VYE9"!A8F]V +M92P@2&]<8WMS?71E;@IA;F0@5&AO;6%S('!R;W9E9"!T:&%T(&%N>2!I;FET +M:6%L(&ED96%L(&]F(&$@=&]R:6,@:61E86P@&%M<&QE +M(&1E;6]NS$L,2PQ+#$L,2PQ+#%R`D7&-D;W1<8V1O=%QC9&]T)%Q<"EQE;7!T>4QI;F4* +M;S$P,"`]('P@,2`Q(#$@,2`Q(#$@,2!\7%P*7"`@("`@("!\(#(@,"`P(#`@ +M,2`P(#`@?%Q<"EP@("`@("`@?"`P(#(@,"`P(#`@,2`P('Q<7`I<("`@("`@ +M('P@,B`R(#`@,B`Q(#$@,2!\7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@ +M("`@(#0@("`@("`@(#=<7`IO,3`P(#H@36%T"`@+2!X("P@>"!X("`M('@@+"!X('@@("T@>"`I7%P* +M7"`@("`@("`@("`@("`@(#,@-"`@("`W("`@,B`S("`@(#8@("`Q(#,@("`@ +M-5Q<"EQE;7!T>4QI;F4*;S$P,2`Z($ED96%L(&]F(%-<7`I<96YD3W5T<'5T +M"EQB96=I;D]U='!U=`II,3`R(#H@:6Y)02`](&UO;F]M:6%L261E86P@24%< +M7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@,B`@("`@,B`@("`@,EQ<"F\Q,#(@/2!M;VYO;6EA;$ED +M96%L("AX('@@+"!X('@@+"!X('@@+"!X('@@+"!X('@@+"!X('@@*5Q<"EP@ +M("`@("`@("`@("`@("`@("`@("`@(#$@,R`@(#(@,R`@(#,@-"`@(#(@-2`@ +M(#0@-2`@(#0@-EQ<"EQE;7!T>4QI;F4*;S$P,B`Z($UO;F]M:6%L261E86P@ +M;V8@4UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDQ,#,@.B!H87-#:&%I +M;E!R;W!ET%N($EN:71I86P@261E86P@;V8@ +M82!02X@($)Y(&UO +M9&EF>6EN9R!T:&4@<')E=FEO=7,@97AA;7!L92P@=V4@8V%N('-H;W<*=&AA +M="!T:&ES(&ES(&YO="!T:&4@8V%S92X@($EN('!A2`D>%][-'T@ +M7&UA<'-T;R!X7WLS?2UX7WLT?20L('=E(&]B=&%I;B!A(&YE=R!PWA?,2P@>%\R+"!X7S,L('A?,R`M('A?-"P@>%\U+"!X7S8L('A?-UQ] +M*3M<7`I<96UP='E,:6YE"F\Q,#0@.B!2:6YG36%P(%,@/"TM+2!37%P*7&5N +M9$]U='!U=`I<8F5G:6Y/=71P=70*:3$P-2`Z($H@/2!3=&]3($E!7%P*7&5M +M<'1Y3&EN90I<("`@("`@("`@("`@("`@,B`@("`@("`@("`@,B`@("`@("`@ +M("`R("`@("`@("`@(#)<7`IO,3`U(#T@:61E86P@*'@@("T@>"!X("`M('@@ +M+"!X('@@("T@>"`L('@@>"`@+2!X("E<7`I<("`@("`@("`@("`@("`@,R`@ +M("`S(#0@("`@-R`@(#(@,R`@("`V("`@,2`S("`@(#5<7`I<96UP='E,:6YE +M"F\Q,#4@.B!)9&5A;"!O9B!37%P*7&5N9$]U='!U=`I486MI;F<@=&AE(&EN +M:71I86P@:61E86P@=VET:"!R97-P96-T('1O('1H92!R979E&EC +M;V=R87!H:6,*=&5R;2!O"!X("P@>"!X("P@>"!X('@@+"!X('@@+"!X('@@>"`@)%QC +M9&]T7&-D;W1<8V1O="1<7`I<("`@("`@("`@("`@("`@("`@("`@("`Q(#,@ +M("`R(#,@("`S("`@,B`U("`@,R`U("`@,2`T(#4@("`S(#8@("`Q(#0@-B`D +M7&-D;W1<8V1O=%QC9&]T)%Q<"EQE;7!T>4QI;F4*;S$P-B`Z($UO;F]M:6%L +M261E86P@;V8@4UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDQ,#<@.B!H +M87-#:&%I;E!R;W!E4QI;F4*;S$P-R`](&9A;'-E +M7%P*7&5N9$]U='!U=`H*7'-U8G-U8G-E8W1I;VXJ>T%N("1!)"UGEY[9'TD+6=R861I;F<@ +M9&5F:6YE9"!B>2`D7&1E9R!X7WMI?2`]"EQM871H8F9[87U?>VE])"X@($%N +M(&ED96%L("1)(%QS=6)S970@7&)B8G%;>%][,7TL(%QD;W1S8RP@>%][;GU= +M)"!I'MI9&5A;"$D020M9W)A9&5D +M?2!PU-]>TE](%QR:6=H="E?>UQM871H8F9[8GU](#T@7&)E9VEN>V-A'1[:68@)%QM871H8F9[8GT@7&EN(%QB8F)N($$D?2!<7"`P +M("8@7'1E>'1[;W1H97)W:7-E?0I<96YD>V-AV)](%QI;B!<8F)B;EY[9'TD+B`@4F5M87)K?C$P+C$@:6X*4W1U +MTU2.3=B.C$S,#,T?2!S:&]WT%L=&UA;FY]('-H;W=S('1H870@=VAE +M;@HD020@:&%S(')A;FL@)#(D(&5V97)Y("1!)"UG2X@($AO=V5V97(L($%L=&UA +M;FY^7&-I=&5[06QT;6%N;GT@86QS;R!P&%M +M<&QE('=H96X@)$$D(&AAS(L,"PP+#$L,"PP+#(L,2PQ+#,L,BPR+#(L +M,RPS+#-"!:6B`@/"TM+2!:6EQ<"EQE;F1/=71P=70*26X@7$UT=V\L('1H92!F +M:7)S="!E;G1R>2!I;B!D96=R964@=F5C=&]R(&]F(&5A8V@@=F%R:6%B;&4@ +M;75S="!B90IP;W-I=&EV92X@($AE;F-E+"!W92!A<'!E;F0@=&\@02!T:&4@ +M"!W:&]S90IC;VQU;6YS +M('=I;&P@S!7'LR +M7'T@?'P@05Q<"EQE;7!T>4QI;F4*;S$P.2`]('P@,B`R(#(@,2`Q(#$@-"`T +M(#0@-R`W(#<@."`X(#@@.2!\7%P*7"`@("`@("!\(#(@,"`P(#$@,"`P(#(@ +M,2`Q(#,@,B`R(#(@,R`S(#,@?%Q<"EP@("`@("`@?"`P(#(@,"`P(#$@,"`Q +M(#(@,2`R(#,@,B`S(#(@,R`S('Q<7`I<("`@("`@('P@,"`P(#(@,"`P(#$@ +M,2`Q(#(@,B`R(#,@,R`S(#(@,R!\7%P*7&5M<'1Y3&EN90I<("`@("`@("`@ +M("`@("`@(#0@("`@("`@(#$V7%P*;S$P.2`Z($UA=')I>"!:6B`@/"TM+2!: +M6EQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDQ,3`@.B!$(#T@96YT,BP@9%XR+"!E7C(L(&9> +M,BP@9"IH+"!E*FDL7%P*7"`@("`@("`@("`@9BIG+"!F*F0J:2P@9"IE*F6]U('1H870@)$DD +M(&ES(&%N("1!)"UGU-]>TE](%QR:6=H="E?>UQM871H8F9[ +M87U?>VE]?20@9F]R("0Q(%QL97$*:2!<;&5Q(#$V)"X*7&)E9VEN3W5T<'5T +M"FDQ,3,@.B!A<'!L>2A$+"!D("T^(')A;FL@2X*7&)E9VEN3W5T<'5T"FDQ,30@ +M.B!H87-#:&%I;E!R;W!E`II9&5A;%QI;F1E>'MV97)T97@@:61E86Q]("167WM! +M?20@:7,@9&5F:6YE9"!AT%])"X@ +M($%L=&AO=6=H('1H97)E"F%R92`H:6X@9V5N97)A;"D@:6YF:6YI=&5L>2!M +M86YY(&1I6YO;6EA;`IR:6YG +M+"!A;B!I9&5A;"!H87,@;VYL>2!F:6YI=&5L>2!M86YY(&EN:71I86P@:61E +M86QS.R!S964@5&AE;W)E;7XQ+C(*:6X@4W1UTU2.3=B +M.C$S,#,T?2X@($EN('!A"(*)2!R969T97@M:V5E<"UT96UP;W)A +M"UUTU2.#%F.C$T,#(U87T*06QL96Y^0BX@06QT +M;6%N(&%N9"!3=&5V96Y^3"X@2VQE:6UA;CH*7&YE=V)L;V-K($-O;7!A8W1I +M9GEI;F<@=&AE('M0?6EC87)D('-C:&5M92X*7&YE=V)L;V-K('M<96T@061V +M+B!I;B!-871H+GTL(#,U*#$I.C4P+2TQ,3(L(#$Y.#`N"@I<8FEB:71E;7M! +M;'1M86YN?0I+;&%UU1H92!C:&%I;B!P +M2!F;W(@=&AE(&%STU2.31F.C$S,#$X?0I$879E($)A>65R(&%N9"!-:6ME(%-T +M:6QL;6%N.@I<;F5W8FQO8VL@0V]M<'5T871I;VX@;V8@>TA]:6QB97)T(&9U +M;F-T:6]NTU2.39H.C`U,C$S?0I! +M;F1E2P@)&8D+79E8W1OUQE;2!&;W)M86P@<&]W97(@ +MT5]=6QEUPB=7UR9V5N($AETU]86-A=6QA>2!R:6YG2!0UQE;2!#;VUM +M=71A=&EV92!A;&=E8G)A('=I=&@@82!V:65W('1O=V%R9"!A;&=E8G)A:6,@ +M9V5O;65TTU2.#!G.C8X,#4V?0I-:6-H865L?E(N($=A +MUQE;2!#;VUP +M=71EUQE;2!3:7@@;&5C='5R97,@;VX@8V]M;75T871I=F4@86QG96)R +M82`H0F5L;&%T97)R82P@,3DY-BE]+`H@('!A9V5S(#$Q.2TM,3@V+B!":7)K +M:%PB875S97(L($)AUQE;2!&;VYD96UE +M;G1S(&1E(&QA(&=<)V5O;5PG971R:64@86QG7"=E8G)I<75E+B!;>T5]>'1R +M86ETT)];W5R8F%K:2P@,3DU-RTM,3DV +M,BY=?2X*7&YE=V)L;V-K(%-E8W)<)V5T87)I870@;6%T:%PG96UA=&EQ=64L +M(%!ATA]:6QB97)T('-C +M:&5M92X*7&YE=V)L;V-K('M<96T@26YS="X@2&%U=&5S(%PG171U9&5S(%-C +M:2X@4'5B;"X@36%T:"Y]+"`R.3HU+2TT."P@,3DV-BX*"EQB:6)I=&5M>TAO +M"!I9&5A;"!O9B!A(&QA='1I +M8V4N"EQN97=B;&]C:R`R,"!P86=ETU2,C`P,&(Z,3,P,S=]"E-EUQC>W-] +M?71E;B!A;F0@4F5K:&%^4BX@5&AO;6%S.@I<;F5W8FQO8VL@4W1A;F1ATU]"D5ZT%L +M97AA;F1EG)A($UI;&QEUQE;2!*+B!!;&=E8G)A?2P@,C,Q*#$I.C$X,"TM,C,T+"`R,#`P+@H*7&)I +M8FET96U[35(Q-S8Y-C8Q?0I%>G)A($UI;&QEUQE;2!*+B!3 +M>6UB;VQI8R!#;VUP=70N?2P@,CDH-"TU*3HV.3$M+3TU2,C`P,&$Z,3,P,3!]"DAI9&5F=6UI($]H&EC;V=R87!H:6,@<&]I;G0N"EQN +M97=B;&]C:R![7&5M($HN($%L9V5B7!ETU2.3AH.C`U,#`Q?0I2:6-H87)D?E`N +M(%-T86YL97DZ"EQN97=B;&]C:R![7&5M($-O;6)I;F%T;W)I8W,@86YD(&-O +M;6UU=&%T:79E(&%L9V5BTU2.3%M.C$T,#2!D96-O;7!OUQE;2!- +M871H+B!:+GTL(#(P-2@Q*3HQ,STU2 +M.3=B.C$S,#,T?0I"97)N9"!3='5R;69E;',Z"EQN97=B;&]C:R![7&5M($=R +M7")O8FYE2P@4')O=FED96YC92P@ +M4DDL(#$Y.38N"@I<8FEB:71E;7M-4CDV:3HQ,S`R.7T*0F5R;F0@4W1U;WY6:5Q>970@5')U;FTU2.3%B.C$S,#,Q?0I2869A96Q^2"X@ +M5FEL;&%RUQE;2!-86YU71O<&5S?2X*7&YE=V)L;V-K(%-PW1H96)I8FQI;V=R87!H>7T*7&5G6YO;6EA;"!S>7-T +M96US"B4*)2!&0HE(%!R96QI;6EN87)Y('9E&-U2`R,#`P"B4*)24E)24E)24E)24E)24E)24E)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24*)2`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("4*)2`@(%=!4DY)3D2!T;R!3;VQV:6YG +M($5Q=6%T:6]NT8N(%-O='1I;&5]"B4@7&EN2P@:70@:&%S(&)E96X@:&]P96QE'!L:6-I="!S;VQU +M=&EO;G,@=&\@7-T96US+"!A;F0@;6%T:&5M871I8W,@:&%S(&EN +M6YO;6EA;"!E<75A=&EO;G,N"D5N +M=6UE7T@9VEV97,@ +M;65T:&]D6YO +M;6EA;"!E<75A=&EO;G,N"D)E6YO;6EA;"!S>7-T96US+"!W:&EC:`II +M;F-L=61E(&]V97)D971E7-T96US+"!W92!A9&1R97-S('1H90II;7!O7-T96T@;V8@<&]L>6YO +M;6EA;"!E<75A=&EO;G,@:7,*:71S(&YU;6)E6YO;6EA;"!E<75A=&EO;G-]+@I&;W(@=&AI'M"97IO=70G%\Q+%QL9&]T2`D9%\Q9%\R7&-D;W1S(&1?;B0L('=H97)E("1D7VDZ/5QD96<@9E]I +M)"X*($EF('1H92!P;VQY;F]M:6%L'MF:65L9"%A;&=E8G)A:6-A +M;&QY(&-L;W-E9'TN"EQE;F1[=&AE;W)E;7T*"DAEF]U="!4 +M:&5OT)E>F]U="!N=6UB97)`0EPG97IO=70@;G5M8F5R +M?2!O9B!S;VQU=&EO;G,@:7,@8V%L;&5D"GM<:70@9&5F:6-I96YT?5QI;F1E +M>'MP;VQY;F]M:6%L(&5Q=6%T:6]N&%M<&QE+"!F +M97=EF]U="!N=6UB97(L('=H:6-H +M(&%P<&QI97,@=VAE;@IA;&P@;6]N;VUI86QS(&%R92!PV%R=&EN:6%N+"![7&ET('-E92!A;'-O?2!I9&5A;"P*>F5R;RUD:6UE +M;G-I;VYA;'U<:6YD97A[:61E86PA>F5R;RUD:6UE;G-I;VYA;'TN(`I4:&4@ +M>UQI="!D96=R965]7&EN9&5X>VED96%L(61E9W)E97T@;V8@)$DD(&ES("1< +M9&EM7VL@:UM872]))"P@=&AE(&1I;65NVED96%L(7)A9&EC86Q]+B`*"EQB96=I;GME>&%M<&QE?5QL +M86)E;'ME>#IO;F5]"E=E(&EL;'5S=')A=&4@=&AIS$Q?2QY7WLQ,GTL>5][,C%] +M+'E?>S(R?5TD+@HE"EQB96=I;D]U='!U=`II,2`Z(%(@/2!:6B\Q,#%;>3$Q +M+"!Y,3(L('DR,2P@>3(R73M<7`I<96YD3W5T<'5T"B4*7&)E9VEN3W5T<'5T +M"FDR(#H@4&]L>6YO;6EA;%-Y4QI;F4*;S0@.B!397%U96YC95Q<"EQE;F1/ +M=71P=70*)0I)9B!W92!R97-TS$R?2Q<.UP@>5][,C%]+%P[7"!Y7WLR,GTL7#M<("`*("!Y +M7WLQ,7UY7WLR,GTL7#M<(%QM8F]X>R!A;F0@?5P[7"`@>5][,3)]>5][,C%] +M+`HD)`IT:&5N('1H92!I9&5A;"!T:&5Y(&=E;F5R871E(&%G86EN(&AA3(Q+"!Y,C(L('DQ,2IY,C(L('DQ,BIY,C%4QI;F4*;S8@.B!397%U96YC95Q<"EQE;F1/=71P=70* +M)0I)9B!W92!F=7)T:&5R(')E<75I%Q[7'LQ+"!Y,3$L +M('DQ,BP@>3(Q+"!Y,C(L('DQ,2IY,C(@+2!Y,3(J>3(Q7'U4QI;F4*;S<@.B!)9&5A;"!O9B!27%P*7&5N9$]U='!U=`HE"EQB96=I +M;D]U='!U=`II."`Z(&1I;2!++"!D96=R964@2UQ<"EQE;7!T>4QI;F4*;S@@ +M/2`H,"P@,BE<7`I<96UP='E,:6YE"F\X(#H@4V5Q=65N8V5<7`I<96YD3W5T +M<'5T"B4*26X@17AA;7!L97Y<V5X.DF%T:6]N(&ES"F=E;VUE=')I8V%L;'D@ +M;65A;FEN9V9U;"X*7&5N9'ME>&%M<&QE?0H*"D9O&5D(&9I9W5R97-]+@I4:&%T(&ES +M+"!C;W5N=&EN9R!T:&4@2!M +M96%N:6YG9G5L"G-Y'MP;VQY;F]M:6%L(&5Q=6%T:6]NVED96%L(61E +M9W)E97T@;V8@=&AE(`HH,"UD:6UE;G-I;VYA;"D@:61E86P@9V5N97)A=&5D +M(&)Y('1H92!P;VQY;F]M:6%LU-O;'9I;F<@4WES=&5M +M2!D:7-C=7-S('-O;64@87-P +M96-T6YO;6EA;`IE<75A=&EO +M;G-<:6YD97A[U-/.D-#4RQ33SI#3$\Y,GTN"@I':79E;B!A;B!I9&5A +M;"`D220@:6X@82!P;VQY;F]M:6%L(')I;F<@)&M;6%TD+"!S970@"B1[7&UA +M=&AC86P@5GTH22DZ/2![7')M(%-P96-]7"QK6UA=+TDD+@I7:&5N("1))"!I +MV5Q +M=6%T:6]N?5QL86)E;'ME<3IS>7-T96U]"B`@9E\Q*%@I7"`]7"!<8V1O='-< +M(#U<(&9?3BA8*5P@/5P@,`I<96YD>V5Q=6%T:6]N?0IA(&=E;VUE=')I8R!S +M=')U8W1U2!T:&4@;65A;FEN +M9V9U;"!R;V]T6YO;6EA;"`D9B0@=F%N +M:7-H:6YG(&]N('1H92!E>'1R86YE;W5S"G)O;W1S+B`*5&AI>RTQ?5TD+"!T:&4@8V]O +MV5X86UP;&5]7&QA8F5L>V5X.G1W;WT*5V4@:6QL=7-TUQM871H8F(@1GU?-UMX+'E=)"X*)0I<8F5G:6Y/=71P=70*:3D@ +M.B!2(#T@6EHO-UMY+"!X+"!-;VYO;6EA;$]R9&5R/3Y,97A=.UQ<"EQE;F1/ +M=71P=70*)0I<8F5G:6Y/=71P=70*:3$P(#H@22`](&ED96%L("AY7C,J>%XR +M("L@,BIY7C(J>"`K(#,J>"IY+"`@,RIY7C(@*R!X*GD@+2`S*GDI.UQ<"EQE +M;7!T>4QI;F4*;S$P(#H@261E86P@;V8@4EQ<"EQE;F1/=71P=70*)0I3:6YC +M92!T:&4@9V5N97)A=&]R2!M86YY('!O:6YT2!T:&4@ +M=F%R:6%B;&4@)'DD('1O(&]B=&%I;B!T:&4@:61E86P@)$HD(&]F(&ES;VQA +M=&5D(')O;W1S+B`*)0I<8F5G:6Y/=71P=70*:3$Q(#H@2B`]('-A='5R871E +M*$DL(&ED96%L*'DI*5Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`@-"`@ +M("`S("`@("`R7%P*;S$Q(#T@:61E86P@*'@@("L@>"`@*R`S>"`@*R`S>"P@ +M>2`M(#)X("T@,2E<7`I<96UP='E,:6YE"F\Q,2`Z($ED96%L(&]F(%)<7`I< +M96YD3W5T<'5T"B4*5&AE(&9I"`K(#(I*'@@*R`Q*5Q<"EQE;7!T>4QI;F4*;S$R(#H@4')O9'5C=%Q< +M"EQE;F1/=71P=70*)0IA;F0@&%M<&QE?0H*2&5R92P@=&AE(&5X=')A;F5O=7,@V5L:6UI;F%T:6]N('1H +M96]R>7T@8V%N(&)E('5S960@=&\@F5R +M;RUD:6UE;G-I;VYA;"!I9&5A;"`D25QS=6)S970@:UM8721<:6YD97A[5U< +MUQR;2!3<&5C?5PL:UM8 +M75QT=V]H96%D5TD(&]F('1H92`*:V5R;F5L7&EN9&5X>VME2!T:&%T("1[7&UA=&AC86P@5GTH +M9RD]:"A[7&UA=&AC86P@5GTH22DI)"X*5VAE;B`D:"0@:7,@82!C;V]R9&EN +M871E(&9U;F-T:6]N("1X7VDD+"!W92!M87D@8V]NV9I +M96QD(7-P;&ET=&EN9WT@;V8@)&VED96%L(7)A9&EC86Q](&EF(&%N9"!O;FQY(&EF("1G)"!I%\R/%QC9&]TT=R;V)N97(@8F%S:7-`1W)<(F]B;F5R +M(&)AV5Q=6%T:6]N?5QL86)E +M;'MT%\Q*2P@ +M7"!<(%QL9&]T%]N+6=?;BAX7S$I7"PL"EQE;F1[97%U871I;VY] +M"B4*=VAE6YO;6EA;"`D:"0@=VEL;"!S871I5QI;F1E>'ME;G5M97)A +M=&EV92!G96]M971R>7T@8V]U;G1S('-O;'5T:6]N#IT=V]]+@I)=',@96QI;6EN86YT+"!W +M:&EC:"!I6YO;6EA;"![7'1T($I[7&-H87)@7%]],'TL(&9A +M8W1O2`*;W9E6YO;6EA;"`D:"0@ +M:6X@82!Z97)O+61I;65NUQT="!E;&EM:6YA;G0H:"P@:UMY72E](&9I;F1S(&$@;&EN96%R +M(')E;&%T:6]N(&UO9'5L;R`D220@"F%M;VYG('1H92!P;W=E,BP@7&QD;W1S+"!H7F0D(&]F("1H)"!W:71H("1D)"!M:6YI;6%L"F%N +M9"!R971UWU<+R!P86-K +M86=E(`I[7'1T(')E86QR;V]TUQT="!- +M?2!I"!W:&]S92!R;W=S(&%R92!T:&4@;F]R;6%L(&9OUQT="!0?2!C;VYV +M97)TUQT="!.?2!I2!O9B![7'1T(%!](`II2!C;VUP=71I;F<@=&AE(&MEUQT="`@96QI;6EN86YT3F%I=F4H:"P@6BE]+BD*"E-U +M<'!O&EC;V=R87!H:6,@1W)<(F]B;F5R(&)AW1R:6%N9W5L87)]*2X@"E1H96X@=&AE(')O;W1S(&]F("1))"!AW1R:5]R;V]T&E?,2DL(%QL9&]TV5Q=6%T:6]N?0H*"E-U<'!OUQM871H8F(@47TD(&%N9"!W92!S965K(&9L;V%T:6YG('!O:6YT(&%P +M<')O>&EM871I;VYS"F9OU-O;'9I;F<@=VET:"!,:6YE87(@06QG96)R87T* +M5V4@9&5S8W)I8F4@86YO=&AE7T@1W)<(F]B +M;F5R(&)A"!O9B`D;5]H)"!I;@IT +M97)MV5L:6UI;F%N='T@8V]R +MUQT="!C:&%R4&]L +M>2AH+"!:*7T@:6X@>UQT="!R96%L6YO;6EA;"`H=&AE('-I='5A=&EO;B!O9B!T +M:&4@4VAA<&4@3&5M;6$I+`IT:&ES('!R;V-E9'5R92!O9G1E;B!C;VUP=71E +M7-T96US(&]F(&UO9&5R871E(&1E9W)E92P@;75C +M:"!F87-T97(@=&AA;@IN85PB7&D@=F5L>2!C;VUP=71I;F<@=&AE(&ME'MS;VQV:6YG('!O;'EN;VUI86P@97%U871I;VYS(79I +M82!E:6=E;G9E8W1OU-T:6-K96QB97)G97(GUQI=`I,970@)&A<:6X@020@86YD("1M7V@D(&)E(&%S(&%B +M;W9E+@I4:&5N('1H97)E(&ES(&$@;VYE+71O+6]N92!C;W)R97-P;VYD96YC +M92!B971W965N(&5I9V5N=F5C=&]RUQB9B!V?5]<>&DD(&]F("1M7V@D +M(&%N9"!R;V]TUQB9B!V?5]<>&DD(&ES('1H92!V86QU92`D:"A<>&DI)"!O +M9B`D:"0@870@)%QX:20L(&%N9"!T:&4@;75L=&EP;&EC:71Y"F]F('1H:7,@ +M96EG96YV86QU92`H;VX@=&AE(&5I9V5N=F5C=&]R("1[7&)F('9]7UQX:20I +M(&ES('1H90IM=6QT:7!L:6-I='D@;V8@=&AE(')O;W0@)%QX:20N"GU<;65D +MUQB +M9B!V?5]<>&DD(&]F("1M7WMX7S%])"X*5&AE;B!T:&4@6EN9PHE"EQB96=I;GME<75A=&EO;GU<;&%B96Q[ +M96EG96YV?0H@("!M7WMX7VE]7&-D;W0@>UQB9B!V?5]<>&E<(#U<(%QX:5]I +M(%QC9&]T('M<8F8@=GU?7'AI7"PN"EQE;F1[97%U871I;VY]"B4*06X@861V +M86YT86=E(&]F('1H:7,@;65T:&]D(&ES('1H870@=V4@;6%Y('5S92!S=')U +M8W1UWA?:7TD(&%R92!P&%C="!A +M7!I8V%L;'D@&E?:20@ +M87)E('M<:70@;&EN96%R?2!F=6YC=&EO;G,@;V8@=&AE(&9L;V%T:6YG"G!O +M:6YT(&5N=')I97,@;V8@)'M<8F8@=GU?7'AI)"P@=VAI8V@@869F;W)D2!O;F4@;V8@=&AE +M("1<9&5G*$DI)"!C;VUP;VYE;G1S(&]F('1H92!V96-T;W)S"FEN?BA<V5I9V5N=GTI(&YE960@8F4@8V]M<'5T960L(&%V97)A9VEN9R!T:&4@W-O;'9I;F<@<&]L>6YO;6EA;"!E<75A=&EO;G,AV5N=6UEUQT +M="!R96%L4QI;F4*;S$W(#T@+2T@UQC:&%R8%PE?2!C(RAI+3$I*3M<7`I<("`@("`@ +M("`@("`@("`@("`@("`@*2D[7%P*7"`@("`@("`@("`@=&],:7-T(&,I7%P* +M7&5N9$]U='!U=`HE"E1H92!L87-T(&9E=R!L:6YE"DL7&QD;W1S*20@;V)T86EN960@8GD*979A;'5A=&EN9R!T:&4@ +M4W1U0IC;VUP=71E('1H92!T;W1A;"!N=6UB97(@;V8@UQT="!S:6=N071])"HD>UQT="`H +M9BE]+"!W:&EC:"`*9VEV92!T:&4@UQT="!F?20*870@)"HD +M+@HH2&5R92P@)"HD(&ES(&]N92!O9B`@>UQT="!);F9I;FET>7TL('M<='0@ +M>F5R;WTL(&]R('M<='0@36EN=7-);F9I;FET>7TN*0I!;'-O('M<='0@=F%R +M:6%T:6]N"`M/B!I9B!X("$](#`@=&AE +M;B`H7%P*7"`@("`@("`@("`@("`@("`@("`@(&EF(&QAV)I;&EN96%R(&9OUQR;2!T6UM971R:6,@8FEL:6YE87(@9F]R;5QI;F1E>'MB:6QI;F5A<@IF;W)M(7-Y +M;6UE=')I8WT@;VX@)$$D+@I4:&4@<')O8V5D=7)E('M<='0@=')A8V5&;W)M +M*&@I?2!I;B![7'1T(')E86QR;V]TW1R86-E(&9O4QI;F4*;S(Q(#T@+2T@ +M"E%\Q+%QL9&]TUQM871H8F(@0WU>;B0N(`I4:&5N+"!F;W(@)&A< +M:6X@:UMX7S$L7&QD;W1S+'A?;ETD+"!T:&4@V5Q;F%RV%<:6Y[7&UA=&AC86P@5GTH +M22E<8V%P>UQM871H8F(@4GU>;CIH*&$I/#!V%<:6Y[7&UA=&AC86P@5GTH22DZ:"AA*5QN97$P7'U<+"X*7&5N9'ME +M<6YA2I]"EQE;F1[=&AE;W)E;7T*"E1H870@:7,L('1H92!R86YK(&]F +M("137V@D(&-O=6YTUQM871H +M8V%L(%9]*&@I)"P@86YD(&ET*&YU;6=E;G,@4QI;F4* +M;S(S(#T@+2T@&%M<&QE?0I792!I;&QU%XR*GD@*R`R*G@J>5XR+"`@>2`M(#(J +M>"`M('@J>2`K('A>,BD[7%P*7&5M<'1Y3&EN90IO,C4@.B!)9&5A;"!O9B!2 +M7%P*7&5N9$]U='!U=`HE"E1H92!I9&5A;"`D220@:&%S(&1I;65N"0@:6X@"G1H92!R:6YG("12+TDD+@HE"EQB96=I;D]U='!U=`II,C<@.B!! +M(#T@4B]).UQ<"EQE;F1/=71P=70*)0I<8F5G:6Y/=71P=70*:3(X(#H@=&EM +M92!G(#T@96QI;6EN86YT*'@L(%%16UI=*5Q<"EP@("`@("TM('5S960@,"XP +M.2!S96-O;F1S7%P*7&5M<'1Y3&EN90I<("`@("`@(#4@("`@(#0@("`@(#,@ +M("`@,EQ<"F\R."`](%H@("T@-5H@("L@-EH@("L@6B`@+2`R6B`K(#%<7`I< +M96UP='E,:6YE"F\R."`Z(%%1(%M:75Q<"EQE;F1/=71P=70*)0I<8F5G:6Y/ +M=71P=70*:3(Y(#H@=&EM92!G(#T@8VAA"P@6BE<7`I<("`@("`M +M+2!U4QI;F4*7"`@("`@("`U("`@ +M("`T("`@("`S("`@(#)<7`IO,CD@/2!:("`M(#5:("`K(#9:("`K(%H@("T@ +M,EH@*R`Q7%P*7&5M<'1Y3&EN90IO,CD@.B!142!;6EU<7`I<96YD3W5T<'5T +M"B4*5&AE(&5L:6UI;F%N="!H87,@,R!R96%L(')O;W1S+"!W:&EC:"!W92!T +M97-T(&EN('1W;R!D:69F97)E;G0@=V%Y4QI;F4*;S,P(#H@4V5Q=65N8V5< +M7`I<96YD3W5T<'5T"B4*5V4@=7-E(%1H96]R96U^7')E9GMT.E!24WT@=&\@ +M:7-O;&%T92!T:&5S92!R;V]T20M<&QA;F4N"B4*7&)E +M9VEN3W5T<'5T"FDS,2`Z('1R86-E1F]R;5-I9VYA='5R92AX*GDI.UQ<"E1H +M92!T#XR +M)"!A;F0@;VYE(&QI97,*:6X@=&AE('1H:7)D+@I&:6YA;&QY+"!O;F4@;V8@ +M=&AE(')O;W1S(&QI97,@:6X@=&AE('1R:6%N9VQE("1Y/C`D+"`D>#XR)"P@ +M86YD("1X*WD\,R0N"B4*7&)E9VEN3W5T<'5T"FDS,R`Z('1R86-E1F]R;5-I +M9VYA='5R92AX("L@>2`M(#,I.UQ<"E1H92!T2`M(#,@:&%S(')A;FL@-2!A;F0@S`N.'!T?0H@(%QB96=I;GMP:6-T=7)E?2@R,C`L,3$P*2@M-C`L+34P*0H@ +M("4@>2`M(&%X:7,*("`@7'!U="@P+"TU,"E[7'9E8W1OS$Q,'U] +M(%QP=70H,"PP*7M<=F5C=&]R*#`L+3$I>S4P?7T*("`@7'!U="@M,3$L-#R1Y)'T*("`@7'!U="@M-2PM-#`I>UQL:6YE*#$L,"E[,3!]?2!<<'5T*#8L +M+30R+C@I>R0M,21]"B`@(%QP=70H+34L-#`I>UQL:6YE*#$L,"E[,3!]?2`@ +M7'!U="@V+"`S-BXU*7LD,21]"B`@)2!<<'5T*"TU+#@P*7M<;&EN92@Q+#`I +M>S$P?7T@(%QP=70H-BP@-SR0R)'T*("`E('@@+2!A>&ES"B`@(%QP=70H +M+38P+#`I>UQV96-T;W(H,2PP*7LR,C!]?2!<<'5T*#`L,"E[7'9E8W1OS$P?7T@7'!U +M="@M-3`L+3$U*7LD+3$D?0H@("!<<'5T*#0P+"TU*7M<;&EN92@P+#$I>S$P +M?7T@(%QP=70H,SR0Q)'T*("`@7'!U="@Q,C`L+34I>UQL:6YE +M*#`L,2E[,3!]?2!<<'5T*#$Q-RPM,34I>R0S)'T*("`@7'!U="@M-3$L-2E[ +M)'@D?0H@(`H@(%QT:&EC:VQI;F5S"B`@7'!U="@X,"PM-3`I>UQL:6YE*#`L +M,2E[,3$P?7T@(%QP=70H.#4L+3,U*7LD>#TR)'T*("!<<'5T*#$V,"PM-#`I +M>UQL:6YE*"TQ+#$I>S$P,'U])5QP=70H,34L-3`I>R1X*WD],R1]"B`@7'!U +M="@Q,#`L,C4I>R1X*WD],R1]"B`@"B`@7'!U="@M,C8N,BP@+30R+C$I>UQC +M:7)C;&4J>S)]?0H@(%QP=70H.#8N,RP@,3$N."E[7&-I&%M<&QE?0H*"EQS=6)S96-T:6]N +M>TAO;6]T;W!Y($UE=&AO9'-]"E=E(&1EVAO;6]T;W!Y(&-O;G1I;G5A=&EO;GT@"F9O&EM +M871E(&-O;7!L97@@'MS;VQV:6YG('!O;'EN;VUI86P@97%U871I;VYS(79I82!N=6UE +M'!L;VET('1H92!TV5N=6UEV5N=6UEUQI="!S=&%R="!S>7-T96U]("1(*%@L,"D],"0@87)E(&MN;W=N +M+@H@(%QI=&5M(%1H92!S>7-T96T@)$@H6"QT*3TP)"!D969I;F5S(&9I;FET +M96QY(&UA;GD@*&-O;7!L97@I(&-U'0L +M(&-H;V]S92!A(&=E;F5R:6,@2!P;VEN=',@:6X@)'M<;6%T:&)B +M($-])"!O=F5R"G=H:6-H('1H92!C=7)V97,@87)E('-I;F=U;&%R(&]R(&UE +M970@;W1H97(@8V]M<&]N96YT2!IVAO;6]T;W!Y(6]P +M=&EM86Q]('=H96X@=&AI'MH;VUO=&]P>2%"7"=E>F]U='T@ +M"B0D"B`@2"A8+'0I7'%U860@.CU<<75A9"!T1BA8*5P@*UP@"B`@*#$M="E' +M*%@I"B0D"FES(&]P=&EM86PN"E1H:7,@:&]M;W1O<'D@9G5R;FES:&5S(&%N +M(&5F9F5C=&EV92!D96UO;G-TF]U="=S(%1H96]R96U<:6YD97A[0F5Z;W5T)W,@5&AE;W)E;4!"7"=E>F]U +M="=S(%1H96]R96U](&9O2X* +M26X@96ET:&5R(&-AVAO +M;6]T;W!Y(6]P=&EM86Q]('1H870@97AP;&]I=',@82!S<75AVEN:71I86P@:61E86PA7-T96T@:&%S('1H92!F;W)M"B0D"B`@1EP@.CU< +M(&=?,2A8*2Q<;&1O=',L9U]M*%@I+%P@7$QA;6)D85\Q*%@I+%QL9&]TUQI="!A;F1]7"\@=V4@87-S +M=6UE('1H870@"G1H92!I;FET:6%L(&ED96%L("1[7')M(&EN?5]<<')E8R!) +M)"!IU-/.DU2.3=A.C$S,#`Q?2P@=&AE6YO;6EA;',*)&=?:2A8+'0I)"!I;G1EV%N9'U<<7%U860*("!G7VDH6#LP*2!<(#U<('M<UQR;2!I;GU?7'!R96,@220N"E1H92![7&ET($=R7")O8FYE7T@:7,*)"0*("!(*%@L="E<(#H]7"`*("!G7S$H6"QT*2Q<;&1O=',L9U]M +M*%@L="DL7"!<3&%M8F1A7S$H6"DL7&QD;W1S+%Q,86UB9&%?9"A8*2X*)"0* +M4VEN8V4@)'M<2!S:6UP;&4@:&]M;W1O<'D@:7,@:6X@9V5N97)A;"!N;W0* +M969F:6-I96YT(&%S(&ET(&ES('1Y<&EC86QL>2!O=F5R9&5T97)M:6YE9"X* +M7&5N9'ME>&%M<&QE?0H*7'-E8W1I;VY[4V]M92!%;G5M97)A=&EV92!'96]M +M971R>7U<;&%B96Q['!L;W)E('1H92!E;G5M97)A=&EV +M92!G96]M971R:6,*<')O8FQE;7,@;V8@8WEL:6YD97)S(&UE971I;F<@-2!G +M96YEV5N=6UET-Y;&EN9&5RUQI="!C>6QI;F1E'M''!E8W0@=&AA="`U('!O:6YT2!M86YY(&-Y;&EN9&5R +M'T@8WEL:6YD97)S(`IA;F0@3&EC:'1B;&%U?EQC:71E>U-/.DQI,#!](&]B +M7)A;6ED(&-O;G-IF%T:6]N("1[7&)F(%!]*W1[7&)F(%9])"DL +M(&%N9"!I9B`D6QI;F1E'MC>6QI;F1EUQB9B!6?5QC9&]T*'M< +M8F8@6'T@+2![7&)F(%!]*7TE"B`@("`@>UQ\>UQB9B!6?5Q\7C)]7"Q[7&)F +M(%9](%QR:6=H=%Q\7C)<("X*)"0*17AP86YD:6YG(&%N9"!C;&5AUQB9B!6?5Q\7C(D('EI96QD,B`K(`H@("`@("`@("!;>UQB9B!6?5QC9&]T*'M<8F8@ +M6'T@+2![7&)F(%!]*5U>,B`M(`H@("`@("`@(%Q\>UQB9B!8?2`M('M<8F8@ +M4'U,EPL+@I<96YD>V5Q=6%T:6]N?0HE"E=E +M(&-O;G-I9&5R(&-Y;&EN9&5RS$Q?2QY7WLQ +M,GTI)"!A;F0@)'M<8F8@5GT]*#$L>5][,C%]+'E?>S(R?2DD+@HE"EQB96=I +M;D]U='!U=`II,S4@.B!2(#T@45%;3$Q+"!Y,3(L('DR,2P@>3(R73M< +M7`I<96YD3W5T<'5T"B4*7&)E9VEN3W5T<'5T"FDS-B`Z(%`@/2!M871R:7A< +M>UQ[,"P@>3$Q+"!Y,3)4QI;F4*7"`@("`@("`@("`@ +M("`@,2`@("`@("`S7%P*;S,V(#H@36%T%Q[7'LQ+"!Y +M,C$L('DR,EQ]7'T[7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`Q("`@ +M("`@(#-<7`IO,S<@.B!-871R:7@@4B`@/"TM+2!27%P*7&5N9$]U='!U=`HE +M"E=E(&-O;G-T6YO;6EA;'XH7')E9GME<3IC>6QI;F1E2@P+BXT+"!I("T^("A<7`I<("`@("`@("`@("`@("`@(%@@.CT@4&]I;G1S +M7EQ[:5Q].UQ<"EP@("`@("`@("`@("`@("`@,BD@+5Q<"EP@("`@("`@("`@("`@("`@("@H6"`M(%`I("H@=')A +M;G-P;W-E*%@@+2!0*2D@*B`H5B`J('1R86YS<&]S92!6*5Q<"EP@("`@("`@ +M("`@("`@("`@*3M<7`I<96UP='E,:6YE"F\S.2`Z($ED96%L(&]F(%)<7`I< +M96YD3W5T<'5T"B4*5&AI4QI;F4*;S0R(#T@-EQ< +M"EQE;F1/=71P=70*)0H*7'-U8G-E8W1I;VY[3&EN97,@5&%N9V5N="!T;R`T +M(%-P:&5R97-]7&QA8F5L>W-E8SHQ,FQI;F5S?0I792!N;W<@87-K(&9O'!E8W0@=&AE2!F:6YI=&5L>2!M86YY('-U8V@@ +M;&EN97,N"DUA8V1O;F%L9"P@4&%C:"P@86YD(%1H96]B86QD?EQC:71E>U-/ +M.DU05#`P?2!S:&]W('1H870@=&AE2!B92!R96%L+@I4:&ES('!R;V)L96T@;6%K +M97,@9V5O;65T0IC;&]S +M961<:6YD97A[9FEE;&0A86QG96)R86EC86QL>2!C;&]S961](`IF:65L9',@ +M;F]T(&]F(&-H87)A8W1E2`D>UQM871H8V%L(%9]*'$H,2Q[7&)F('A]*2DD+"!W:&5R +M92`*)'$D(&ES('-O;64@<75A9')A=&EC(&9OUQB9B!X?5QI;B!K7C,D(&%N9"!W +M92!N;W1E('1H870@;F]T(&%L;"!Q=6%DUQB9B!U?2D]>UQB9B!U?4U[7&)F +M('5]7G0D+@H*02!L:6YE("1<96QL)"!H879I;F<@9&ER96-T:6]N("1[7&)F +M(%9])"!A;F0@8V]N=&%I;FEN9R!T:&4@<&]I;G0@)'M<8F8@4'TD(`II2`D<20@=VAE;B!T:&4@ +M=6YI=F%R:6%T92!P;VQY;F]M:6%L(&EN("1S)"`*)"0*("!Q*"`H,2Q[7&)F +M(%!]*2MS*#`L>UQB9B!6?2D@*5P@/5P@"B`@<2@Q+'M<8F8@4'TI("L@,G,@ +M*#$L>UQB9B!0?2E-("@P+'M<8F8@5GTI7G0@*R!S7C)Q*#`L>UQB9B!6?2E< +M+"P*)"0*:&%S(&$@9&]U8FQE(')O;W0N"E1H=7,@:71S(&1I'MD:7-CV5Q=6%T:6]N?5QL86)E;'ME<3IS<&AEUQB9B!0?2E-("@Q+'M<8F8@4'TI7G1<8V1O="@P+'M<8F8@ +M5GTI32`H,"Q[7&)F(%9]*5YT(`H@("`@(%P@/5P@,%PL+@I<96YD>V5Q=6%T +M:6]N?0HE"@I4:&4@;6%TUQ[ +M85XR("L@8EXR("L@8UXR("T@R`@("`@("`@("UB +M("`@("`@("`@+"`P("P@,2`L(#`@7'TL7%P*7"`@("`@("`@("`@("`@("`@ +M("`@(%Q[("`@("`@("`@+6,@("`@("`@("`L(#`@+"`P("P@,2!5][,3%]+'E? +M>S$R?2DD(`IA;F0@)%QE;&PD(&AA5][,C)]*20L('1H96X@"GM<='0@=&%N9V5N=%1O*$TI?2!I +M2!T:&4@;6%T3$R+"!Y +M,C$L('DR,ET[7%P*7&5N9$]U='!U=`HE"EQB96=I;D]U='!U=`II-#4@.B!T +M86YG96YT5&\@/2`H32D@+3X@*%Q<"EP@("`@("`@("`@(%`@.CT@;6%TS$L(#`L('DQ,2P@>3$R7'U%Q[7'LP+"`Q+"!Y,C$L('DR,EQ]7'T[7%P*7"`@("`@("`@("`@*%`@ +M*B!-("H@=')A;G-P;W-E(%8I7C(@+2!<7`I<("`@("`@("`@("`@("A0("H@ +M32`J('1R86YS<&]S92!0*2`J("A6("H@32`J('1R86YS<&]S92!6*5Q<"EP@ +M("`@("`@("`@("D[7%P*7&5N9$]U='!U=`I4:&4@:61E86P@;V8@;&EN97,@ +M:&%V:6YG(&1I4QI +M;F4*;S0Y(#T@,3)<7`I<96YD3W5T<'5T"B4*4VEN8V4@;F\@96QI;6EN86YT +M7&EN9&5X>V5L:6UI;F%N='T@9VEV96X@8GD@82!C;V]R9&EN871E(&9U;F-T +M:6]N('-A=&ES9FEE5][,3%]("T@>5][,3)]("L@>5][,C%]("L@>5][ +M,C)])"X*"E1H:7,@97AA;7!L92!IU-/.DU05#`P?2X*5&AE,B\S5B0L('=H:6-H(&ES('1H92!C87-E(&%B;W9E+@H* +M"EQS96-T:6]N>U-C:'5B97)T($-A;&-U;'5S?0I4:&4@8VQAU-C:'5B97)T(&-A;&-U;'5S?2!O9B!E +M;G5M97)A=&EV90IG96]M971R>5QI;F1E>'ME;G5M97)A=&EV92!G96]M971R +M>7T@8V]N8V5R;G,@;&EN96%R('-U8G-P86-E&5D('-U8G-P +M86-E&%M<&QE +M?EQR969[97@Z1S(R?2XI(`I-;W)E(&=E;F5R86QL>2P@;&5T("0Q/'(\;B0@ +M86YD('-U<'!O;B0@=VET:"`D7&1I +M;2!,7VD];BUR*S$M;%]I)"X*5VAE;B`D;%\Q*UQC9&]T2X@"E1H:7,@;G5M8F5R(&UA>2!B +M92!C;VUP=71E9"!U&5D("0H +M;GLM?7)[*WTQ>RU];"DD+7!L86YE"FYO;BUTUQI="`HW-E8SIGUQB9B!'?5]['1E;B0@9VEV +M97,@82!L:6YE"B0D"B`@:UP@7'-I;65Q7"!<=V5D9V5>>VY]7"!<>UQB:6YO +M;7MN?7MR?7U<+"X*)"0*5&AIU!L=6-K97(@96UB961D:6YG0%!L7")U8VMEW(L;GU<:&]O:W)I9VAT87)R;W=[7&UA=&AB +M8B!0?5Y[7&)I;F]M>VY]>W)]+3%])"X*268@)$@D(&ES('1H92!R;W<@RU],5Q])"P@ +M"B1[7&UA=&AB8B!9?5][UQT="!S=6)S971S*&XL"!0;%PB=6-K97(@8V]OUQB9B!'?5][&EM86P@;6EN;W)S(&]F(&$@9V5N97)I8R`D"X@"@I792!CUQM871H8F(@67U?>S(L-7U=)"!O9B`D>UQM871H +M8F(@4'U>.20@86YD('1H90I0;%PB=6-K97(@:61E86P@;V8@)'M<8F8@1WU? +M>S(L-7TD+@I4:&4@1W)AWT@=7-E +M2AS=6)S971S*#4L,BDL(&D@ +M+3X@<%]I("E=.UQ<"EQE;F1/=71P=70*)0I<8F5G:6Y/=71P=70*:34Q(#H@ +M22`]($=R87-S;6%N;FEA;B@Q+"`T+"!2*5Q<"EQE;7!T>4QI;F4*;S4Q(#T@ +M:61E86P@*'`@("`@("!P("`@("`@("T@<"`@("`@('`@("`@("`@*R!P("`@ +M("`@<"`@("`@("P@<"`@("`@("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@ +M("`@("`@("`@(%Q[,BP@,UQ](%Q[,2P@-%Q]("`@(%Q[,2P@,UQ](%Q[,BP@ +M-%Q]("`@(%Q[,2P@,EQ](%Q[,RP@-%Q]("`@7'LR+"`S7'T@)%QC9&]T7&-D +M;W1<8V1O="1<7`I<96UP='E,:6YE"F\U,2`Z($ED96%L(&]F(%)<7`I<96YD +M3W5T<'5T"B4*5&AIUQM871H8F(@67U?>W(L;GTD +M(&%S(&%N(&EN8W)E87-I;F<*UQM871H8F(@67U?>W(L;GTD+"!C;VYS:61E2!W:71H("1<86QP:&$D('=R:71T96X@86)O=F4@)%QB971A)"X*5V4@ +MUQM871H8F(@67U?>W(L;GTD('=I=&@@=&AE('-TUQM871H8F(@67U?>S(L-7TD+@I<8F5G:6Y[9FEG=7)E +M?0HD)`H@7&5P'M9,C4N97!S?0HD)%QC +M87!T:6]N>R1[7&UA=&AB8B!9?5][,BPU?21<;&%B96Q[9FEG,GU]"EQE;F1[ +M9FEG=7)E?0H*5V4@9VEV92`D:UMP7UQA;'!H85TD('1H92!D96=R964@W1H96]R +M96U]7&QA8F5L>U!L=6-K97))9&5A;'T*5&AE(')E9'5C960@1W)<(F]B;F5R +M(&)AT=R;V)N97(@8F%S:7-`1W)<(F]B;F5R(&)A&EC;V=R87!H:6,@=&5R;2!O6YO;6EA;',@"B0D"B`@9RA< +M86QP:&$L7&)E=&$I7'%U860]7'%U860*("!P7UQA;'!H85QC9&]T('!?7&)E +M=&$@7"`M7"`@<%][7&%L<&AA7'9E95QB971A?5QC9&]T('!?>UQA;'!H85QW +M961G95QB971A?2`*("!<("M<(%QH8F]X>VQO=V5R('1E2`D7&=A;6UA7&QE<2!<86QP:&%<=V5D +M9V5<8F5T820@86YD("1<86QP:&%<=F5E7&)E=&%<;&5Q(%QD96QT820N"EQE +M;F1[=&AE;W)E;7T*"E1H92!F;W)M(&]F('1H:7,@1W)<(F]B;F5R(&)A2!I;F1E +M<&5N9&5N="P@=&AIUQT="!O-3%]+"`*)"0*("!P7WM<>S(L,UQ]?7!? +M>UQ[,2PT7'U]7"`M7"!P7WM<>S$L,UQ]?7!?>UQ[,BPT7'U]7"`M7`H@('!? +M>UQ[,2PR7'U]<%][7'LS+#1T=R87-S;6%N;FEA;B%N;W0@82!C;VUP;&5T92!I;G1EV-O;7!L971E(&EN=&5R'MP;VQY;F]M:6%L"F5Q +M=6%T:6]NW(L;BUR?20@87,@9F]L;&]WUQR;2!R;W<@2!I9@HD)`H@(%QM8F]X>VUA>&EM86P@;6EN;W)S(&]F +M('U<(`H@(%QL969T6UQB96=I;GMA7U[8WU,7%Q87&5N9'MA7U< +MW(L;BUR7'TD+@I4:&5S92!E<75A=&EO;G,@9V5N97)A=&4@ +M82!PVAO;6]T;W!Y +M(4=R7")O8FYE&%M<&QE.D=R;V5B;F5R +M?2!M87D@8F4@"G5S960@=&\@V5X86UP;&5]7&QA8F5L>V5X.DS(L-'U<UQM871H8F(@4'U>-20@:&%S(&5Q=6%T:6]N"B4*7&)E +M9VEN>V5Q=6%T:6]N?5QL86)E;'ME<3I',C)]"B`@('!?>UQ[,2PR7'U]<%][ +M7'LP+#-S`L,EQ]?2L@<%][7'LR+#-S`L,5Q]?0H@("!<(#U<(#!<+"X*7&5N9'ME<75A=&EO;GT*)0I4:&4@ +M8V]N9&ET:6]N(&9OS(L-'TD('1O(&UE970@82`R +M+7!L86YE("1,)"!IV5Q.FAY<&5RUQ[,2PR7'U]3%][ +M,S1]+7!?>UQ[,2PS7'U]3%][,C1]*W!?>UQ[,BPS7'U]3%][,31](`H@("L@ +M<%][7'LQ+#1VEJ?20@:7,@ +M=&AE("0H:2QJ*21T:"!M87AI;6%L(&UI;F]R(&]F("1,)"X*"DEF("1L7S$] +M7&-D;W1S/6Q?-#TQ)"P@=V4@:&%V92`U(&5Q=6%T:6]NUQM871H +M8F(@4'U>-20L(&]N92!Q=6%DT)E>F]U="=S(%1H96]R96U` +M0EPG97IO=70GUQM871H8F(@4'U>,R0@;65E=&EN9R`T(&=E;F5R86P@;&EN97,N(`I);B!L +M;V-A;"!C;V]R9&EN871ES$T?7E?>S$Q?2M,7WLQ,WUY7WLQ,GTM +M3%][,C1]>5][,C%](`H@("L@3%][,C-]>5][,C)]("L@3%][,3)]*'E?>S$Q +M?7E?>S(R?2UY7WLQ,GUY7WLR,7TI7"PN"B0D"E1H:7,@<&]L>6YO;6EA;"!H +M87,@=&AE(&9OV5X.F]N97TN(`I<96YD>V5X86UP;&5]"@H*7'-U8G-E8W1I +M;VY[4F5A;&ET>2!I;B!T:&4@4V-H=6)EW-E +M8SIS:&%P:7)O?0I,:6ME('1H92!O=&AE0IR96%L7&EN9&5X>V5N=6UE&ES="`*'MR871I;VYA +M;"!N;W)M86P@8W5R=F5]+`HD7&=A;6UA*',I(#T@*#$L(',L('->,BP@7&QD +M;W1S+"!S7GMN+3%]*20N"E1H96X@=&AE("1I)"UP;&%N92`*)$Q?:2AS*3H] +M7&QA;F=L92!<9V%M;6$HUQT="!O4QI;F4*;S4U +M(#T@?"`Q(',@UQT="!S,GTN"EQ-='=O>WT@=7-EW1H96]R96U]6UQC:71E>U-/.E-O.3EA?5U<;&%B96Q[=&AM.G-P96-I +M86PM7T*1F]R(&%N>2!38VAU8F5R="!D871A("0HW1H96]R96U]"@I4:&4@:6YS<&ER871I;VX@9F]R(&QO;VMI;F<@ +M870@'MR871I;VYA;"!N;W)M86P@8W5R=F5]('1O"G-T=61Y(')E +M86P@96YU;65R871I=F4@9V5O;65T'1E;G-I=F4@8V]M +M<'5T97(@97AP97)I;65N=&%T:6]N(&)AUQI +M="`*1F]R(&%N>2!38VAU8F5R="!D871A("0H7TL("AW +M:&EC:"!R97!L86-EUQI="!F;W(@86QL?5PO +M(&)Y("![7&ET('1H97)E(&5X:7-T?2DL('1H92!S=')O;F=EW1H96]R +M96U]"@I792!T97-T(&%N(&5X86UP;&4@;V8@=&AI,RD]-B0N"E1H92!F=6YC=&EO;B![7'1T('-P4V-H=6(H:2P@4%\H4U]5*2`J(&1E="A<7`I<("`@("`@("`@("`@("`@("`@UQM871H8F(@0WU>-B0N"B4* +M7&)E9VEN3W5T<'5T"FDU-R`Z(%(@/2!145MA<'!L>2AS=6)S971S*#8L,RDL +M(&D@+3X@<%]I("E=.UQ<"EQE;F1/=71P=70*)0I4:&4@:61E86P@)$DD(&-O +M;G-IS`L,2PU>UQC:&%R8%Q]?2`M(#%]('1O(&UA:V4@=&AE(&ED96%L"GIEF5R;RUD:6UE;G-I;VYA;'TN"D%S +M(&)E9F]R92P@>UQT="!'S,L-GTD+@HE"EQB +M96=I;D]U='!U=`II-3@@.B!)(#T@9F]L9"@H2BP@:2D@+3X@2B`K7%P*7"`@ +M("`@("`@("`@('-P4V-H=6(H,RP@4QI;F4*;S4X(#H@261E86P@;V8@4EQ<"EQE +M;F1/=71P=70*)0I4:&ES(&AAU-/.E-O +M7W-H87`M=W=W+%-/.E-O,#!B+%-/.E9EU-/.E-O7V9L86=S?2X*"E1H92!Q=65S=&EO;B!R96UA:6YS(&9O&%C=&QY("1D)"!O9B!T:&5M(&%R92!R96%L+@I"97-I +M9&5S(%1H96]R96U^7')E9GMT:&TZ2!K;F]W;B!C87-E+"!E=F5R>2!P;W-S:6)I +M;&ET>2!O8V-U2!R96%L?5QF +M;V]T;F]T97M&;W(@97AA;7!L92P@;V8*=&AE(#$R(')A=&EO;F%L('!L86YE +M(&-U8FEC7-T96US +M"G1H96]R>7Y<8VET97M33SI24SDX?2Y<9F]O=&YO=&5[069T97(@=&AI>S1N +M+31]*20@86YD("`D*#)N+3(L,FXL,5Y[-&XM-'TI)"Y]"@I<2!I;B!T:&4@4V-H=6)E2`Q+@I4:&ES(&)A0I4:&5OU-/.DU2-3`Z,3,P-C-](&5S=&%B;&ES:&5S +M('1H:7,@<')I;F-I<&QE+@I7:&5N("1R)"!OU-/.E-O.3=A?2!EUQT="!T97-T5')A;G-V97)S92A& +M*7T@=&5S=',@=')A;G-V97)S86QI='D*9F]R('1H:7,@96YU;65R871I=F4@ +M<')O8FQE;2P@9F]R(&$@9VEV96X@9FEE;&0@)$8D+B`*270@9&]EUQT="!'F5R;R!D:6UE;G-I;VYA;"!A;F0@:&%S(&1E9W)E92`V("AT +M:&4@97AP96-T960@9&5GUQT="!G?2!O9B!A(&=E;F5R:6,@;&EN96%R +M(&9OU-H87!E($QE;6UA?0IG=6%R86YT965S('1H870@=&AE(&ED +M96%L('=A&ET&%M<&QEUQM871H8F(@1GU?-#TD('M<='0@1T8@-'TN"B4*7&)E +M9VEN3W5T<'5T"FDV-2`Z('1E2!F;W(@)'M<;6%T +M:&)B($9]7ST%F=&5R('1H:7,@=V%S('=R:71T96XL('=E(&1I2!P2!F;W(@=&AE(&5N=6UE +M>W(H;BUR +M*7TI)"P@=VAEU-/.E-O7W1R86YS?2Y]"@H*7'-E8W1I;VY[5&AE(#$R($QI +M;F5S.B!297!R:7-E?0I4:&4@96YU;65R871I=F4@<')O8FQE;7,@;V8@4V5C +M=&EO;GY<W-E8SIE;G5M97)A=&EV97T@=V5R92!F;W)M=6QA=&5D"FEN +M(&QO8V%L(&-O;W)D:6YA=&5S?BA<V5Q.FQO8V%L?2D@9F]R('1H92!' +M-"0I +M+@I7:&5N('=E(&9OU!L=6-K97(@8V]OW-E8SIGV5N=6UE +MW%U861R871I8R!F;W)M?2`D<20@;VX@82!V96-T;W(@UQB9B!U?2D]*%QV87)P:&DH>UQB9B!U?2DL>UQB9B!U?2DD +M+"!W:&5R92`D7'9A*B0@:7,*82![7&ET('-Y +M;6UE=')I8WT@;&EN96%R(&UA<"P@=&AA="!I*B0@:7,@=&AE(&QI;F5A +M*EQT;R!K)"X@"E1H92!M87`@)%QV87)P:&DD(&EN9'5C97,@82!Q=6%D*B0N"E1H92!A8W1I;VX@;V8@)%QW961G95YR +M5EXJ)"!O;B`D7'=E9&=E7G)6)"!I0HE"EQB96=I;GME<75A +M=&EO;GU<;&%B96Q[97$Z=V5D9V5]"B`@*'M<8F8@>'U?,5QW961G97M<8F8@ +M>'U?,EQW961G95QC9&]T'U?7U<(5\R7'=E9&=E7&-D;W1S7'=E9&=E>UQB9B!Y +M?5PA7W(I7"`]7"`*("`@7&1E='PH>UQB9B!X?5]I+"![7&)F('E]7"%?:BE\ +M7"PL"EQE;F1[97%U871I;VY]"B4*=VAE'U?:5QI;B!67BHD +M(&%N9"`D>UQB9B!Y?5PA7VI<:6X@5B0N"@I7:&5N('=E(&9I>"!I*B0L('1H92!M87`@)%QV87)P +M:&DD(&ES(&=I=F5N"F)Y(&$@"`D320@87,@:6X@4V5C=&EO;GY<W-E8SHQ,FQI;F5S?2X*4W5P<&]S +M92`DUQB9B!V?5QI;B!K7FXD+`HD +M)`H@(%QW961G95XR<2A[7&)F('5]7'=E9&=E>UQB9B!V?2E<(#T@"B`@("`@ +M("`@("`@("`@7&1E=%QL969T6UQB96=I;GMA7U[8V-]"B`@("`@("`@ +M("`@("`@("`@("`@>UQB9B!U?4U[7&)F('5]7G0@)GM<8F8@=7U->UQB9B!V +M?5YT7%P*("`@("`@("`@("`@("`@("`@("![7&)F('9]37M<8F8@=7U>="`F +M>UQB9B!V?4U[7&)F('9]7G0*("`@("`@("`@("`@("`@("`@7&5N9'MA7U<V5Q.G-P +M:&5R97TI(&]F("!396-T:6]N?EQR969[W!R;W!OU!L=6-K97(@ +M8V]O +M,EQE;&Q<:6Y[7&UA=&AB8B!0?5Y[7&)I;F]M>VY]>S)]+3%])"!L:65S(&]N +M('1H92!Q=6%D,G$I)"X*7&5N +M9'MP'!E8W0@ +M=&AE($)<)V5Z;W5T(&YU;6)E'M"97IO=70@;G5M8F5R0$)<)V5Z +M;W5T(&YU;6)E-3TS,B0@6UM971R:6-- +M871R:7@@/2`H4BP@;BD@+3X@*%Q<"EP@("`@("`@("`@96YT +M"A2+"`T*2DI.UQ<"EQE;7!T>4QI;F4* +M;S'!E8W1E9"P@ +M=&AIW-P:&5R97T_(`I4;R!I;G9E4QI;F4*;SUQM871H8V%L(%9]*$DI)"X*)0I<8F5G +M:6Y/=71P=70*:3'MS871UUQ[,"PQ7'U])"!T;R!O8G1A:6X@=&AE(&1E4QI;F4*;SF5R;V5S(&]F(%-E8W1I;VY^7')E9GMS96,Z,3)L:6YE2!T +M86MI;F<@=&AE(&ED96%L"G%U;W1I96YT(&]F("1))"!A;F0@=&AE(&ED96%L +M(&]F(&QI;F5S+@I!4QI;F4*;S4QI;F4*;S4QI;F4*7"`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@,B`@("`@("`@(#(@("`@("`@("`R +M7%P*;SS`L(#-S$L(#)S$L(#-S(L(#-4QI;F4*;S'1R86YE;W5S(&-O;7!O;F5N="!IUQM871H8F(@4'U>,B0@;V8@;&EN97,@ +M870@:6YF:6YI='DN"EQS;6%L;'-K:7`*"E1O('5N9&5R,G=>,EPL+@HD)`I!="!I;F9I;FET>2P@ +M)'<],"0L('1H:7,@:&%S(&5Q=6%T:6]N"B0D"B`@>%XR*WE>,BMZ7C)<(#U< +M(#!<+"X*)"0*5&AE(&5X=')A;F5O=7,@8V]M<&]N96YT(&ES('-U<'!OU-/.D%&?2!S='5D +M:65D"G1H:7,@<')O8FQE;2P@=7-I;F<@9V5O;65T'1R86YE;W5S(&ED96%L(&%N9"!T:&4@97AC97-S(&EN=&5RU-/.D9--S9]('1O(&]B=&%I;B!T:&4@86YS +M=V5R(&]F(#$R+B`*5&AE:7(@=&5C:&YI<75E'0@UQM +M871H8F(@4GTD('-H87)I;F<@80IN;VXM2!S;R!T:&%T('=E(&UA +M>2!U2`D>UQM871H8V%L(%9] +M*'$I7'-U8G-E='M<;6%T:&)B(%!]7C-?>UQM871H8F(@4GTD(&]F(&$*;F]N +M9&5G96YE2!T:&4*86)S;VQU=&4@=F%L=64@;V8@=&AE +M('-I9VYA='5R95QI;F1E>'MB:6QI;F5AUQM871H8F(@4GU>,R0@:7,@86X@96QL:7!S;VED7&EN9&5X +M>V5L;&EP2!IUQM871H8F(@4GU>,R0@ +M:7,@"F$@:'EP97)B;VQO:61<:6YD97A[:'EP97)B;VQO:61](&]F('1W;R!S +M:&5E=',N"E=H96X@)%QS:6=M83TP)"P@=V4@:&%V92`D>UQM871H8V%L(%9] +M*'$I7'-I;65Q(%->,5QT:6UEUQM871H8F(@4GU>,R0@:7,@ +M"F$@:'EP97)B;VQO:60@;V8@;VYE('-H965T(&%N9"!T:&4@8V]N:6,@870@ +M:6YF:6YI='D@:7,@"!T;W!O;&]G:6-A;&QY(&1IW!R;V]F?0I">2!T:&4@8V]M<'5T871I;VX@:6X@4V5C=&EO;GY<W-E8SHQ,FQI;F5S?2P@"G=E(&YE960@;VYL>2!C:&5C:R!T:&4@9FEV92!P +M;W-S:6)I;&ET:65S(&9O7!E5XR+7I>,CTP)"X*5&AE;B!T:&4@9V5N97)A;"!H>7!EV5Q=6%T:6]N?5QL86)E;'ME +M<3IT=V]3:&5E='T*("`H>"UA*5XR*RAY+6(I7C(M*'HM8RE>,BMR7"`]7"`P +M7"PL"EQE;F1[97%U871I;VY]"B4**'=I=&@@)'(^,"0I+@I4:&4@8V]M;6%N +M9"![7'1T(%1W;RAA+&(L8RQR*7T@9V5N97)A=&5S('1H92!A6UM971R:6,@;6%TR`@("`@("`@("UA("`@("`@("`@+"`Q("P@,"`L(#`@ +M7'TL7%P*7"`@("`@("`@("`@("`@("`@(%Q[("`@("`@("`@+6(@("`@("`@ +M("`L(#`@+"`Q("P@,"!5XR+7I>,CTP +M)"!A="!I;F9I;FET>2!H87,@97%U871I;VX@:6X@)'M<;6%T:&)B(%)]7C,D +M"B4*7&)E9VEN>V5Q=6%T:6]N?5QL86)E;'ME<3IO;F53:&5E='T*("`H>"UA +M*5XR*RAY+6(I7C(M*'HM8RE>,BUR7"`]7"`P7"PL"EQE;F1[97%U871I;VY] +M"B4**'=I=&@@)'(^,"0I+@I4:&4@8V]M;6%N9"![7'1T($]N92AA+&(L8RQR +M*7T@9V5N97)A=&5S('1H92!A6UM971R:6,@;6%TR`@("`@ +M("`@("UA("`@("`@("`@+"`Q("P@,"`L(#`@7'TL7%P*7"`@("`@("`@("`@ +M("`@("`@(%Q[("`@("`@("`@+6(@("`@("`@("`L(#`@+"`Q("P@,"!V5Q.G1W;U-H965T?2D@86YD("0T+6DD"G%U861R:6-S(&]F(&]N92!S:&5E +M='XH7')E9GME<3IO;F53:&5E='TI+@I&;W(@96%C:"!O9B!T:&5S92!C87-E +MS$S96U]1&%T85Q<7&AL +M:6YE"B0P)"8D7&AS<&%C97LN.3$U96U]*#4L,RPS+#$V*2Q<:'-P86-E>S(N +M,3@U96U]*#4L+30L,BPQ*2Q<:'-P86-E>S$N,C=E;7T*("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`H+3,L+3$L,2PQ*2Q<:'-P86-E>RXX.&5M?2@R +M+"TW+#`L,2DD7%Q<:&QI;F4*)#$D)B1<:'-P86-E>RXS.#5E;7TH,RPM,BPM +M,RPV*2Q<:'-P86-E>RXX.#5E;7TH+3,L+3S$N,C8U96U]"B`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M*"TW+"TR+#,L,RDL7&AS<&%C97LN-65M?2@M-BPW+"TR+#4I)%Q<7&AL:6YE +M"B0S)"8D*"TQ+"TT+"TQ+#$I+%QHS$N,#-E;7T*("`@("`@("`@("`@ +M("`@("!<:'-P86-E>RXT96U]*"TW+#$L-BPQ*2Q<:'-P86-E>S$N-C5E;7TH +M,RPQ+#`L,2DD7%Q<:&QI;F4*7&5N9'MT86)U;&%R?0I<96YD>V-E;G1ES$P<'1]?"0*"@I792!T97-T(&5A8V@@;V8@=&AE3$R+"!Y,C$L('DR,ET[7%P*7&5N9$]U='!U=`HE"EQB96=I +M;D]U='!U=`II.#(@.B!)(#T@:61E86P@*'1A;F=E;G14;RA/;F4H(#4L(#,L +M(#,L,38I*2P@7%P*7"`@("`@("`@("`@("`@("`@=&%N9V5N=%1O*$]N92@@ +M-2PM-"P@,BP@,2DI+"`@7%P*7"`@("`@("`@("`@("`@("`@=&%N9V5N=%1O +M*$]N92@M,RPM,2P@,2P@,2DI+"!<7`I<("`@("`@("`@("`@("`@("!T86YG +M96YT5&\H3VYE*"`R+"TW+"`P+"`Q*2DI.UQ<"EQE;7!T>4QI;F4*;S@R(#H@ +M261E86P@;V8@4EQ<"EQE;F1/=71P=70*)0I<8F5G:6Y/=71P=70*:3@S(#H@ +M;G5M4F5A;%-T=7)M*&-H87)0;VQY*'!R;VUO=&4H>3(R+"!2+TDI+"!:*2E< +M7`I<96UP='E,:6YE"F\X,R`](#$R7%P*7&5N9$]U='!U=`HE"EQB96=I;D]U +M='!U=`II.#0@.B!)(#T@:61E86P@*'1A;F=E;G14;RA/;F4H(#,L+3(L+3,L +M(#8I*2P@7%P*7"`@("`@("`@("`@("`@("`@=&%N9V5N=%1O*$]N92@M,RPM +M-RPM-BP@-RDI+"`@7%P*7"`@("`@("`@("`@("`@("`@=&%N9V5N=%1O*$]N +M92@M-BP@,RPM-2P@,BDI+"!<7`I<("`@("`@("`@("`@("`@("!T86YG96YT +M5&\H5'=O*"`Q+"`V+"TR+"`U*2DI.UQ<"EQE;7!T>4QI;F4*;S@T(#H@261E +M86P@;V8@4EQ<"EQE;F1/=71P=70*)0I<8F5G:6Y/=71P=70*:3@U(#H@;G5M +M4F5A;%-T=7)M*&-H87)0;VQY*'!R;VUO=&4H>3(R+"!2+TDI+"!:*2E<7`I< +M96UP='E,:6YE"F\X-2`](#$R7%P*7&5N9$]U='!U=`HE"EQB96=I;D]U='!U +M=`II.#8@.B!)(#T@:61E86P@*'1A;F=E;G14;RA/;F4H(#8L(#0L(#8L(#0I +M*2P@(%Q<"EP@("`@("`@("`@("`@("`@('1A;F=E;G14;RA/;F4H+3$L(#,L +M(#,L(#8I*2P@7%P*7"`@("`@("`@("`@("`@("`@=&%N9V5N=%1O*%1W;R@M +M-RPM,BP@,RP@,RDI+"!<7`I<("`@("`@("`@("`@("`@("!T86YG96YT5&\H +M5'=O*"TV+"`W+"TR+"`U*2DI.UQ<"EQE;7!T>4QI;F4*;S@V(#H@261E86P@ +M;V8@4EQ<"EQE;F1/=71P=70*)0I<8F5G:6Y/=71P=70*:3@W(#H@;G5M4F5A +M;%-T=7)M*&-H87)0;VQY*'!R;VUO=&4H>3(R+"!2+TDI+"!:*2E<7`I<96UP +M='E,:6YE"F\X-R`](#$R7%P*7&5N9$]U='!U=`HE"@I<8F5G:6Y/=71P=70* +M:3@X(#H@22`](&ED96%L("AT86YG96YT5&\H3VYE*"TQ+"TT+"TQ+"`Q*2DL +M7%P*7"`@("`@("`@("`@("`@("`@=&%N9V5N=%1O*%1W;R@M,RP@,RPM,2P@ +M,2DI+"`@7%P*7"`@("`@("`@("`@("`@("`@=&%N9V5N=%1O*%1W;R@M-RP@ +M-BP@,BP@.2DI+"!<7`I<("`@("`@("`@("`@("`@("!T86YG96YT5&\H5'=O +M*"`U+"`V+"TQ+#$R*2DI.UQ<"EQE;7!T>4QI;F4*;S@X(#H@261E86P@;V8@ +M4EQ<"EQE;F1/=71P=70*)0I<8F5G:6Y/=71P=70*:3@Y(#H@;G5M4F5A;%-T +M=7)M*&-H87)0;VQY*'!R;VUO=&4H>3(R+"!2+TDI+"!:*2E<7`I<96UP='E, +M:6YE"F\X.2`](#$R7%P*7&5N9$]U='!U=`HE"EQB96=I;D]U='!U=`II.3`@ +M.B!)(#T@:61E86P@*'1A;F=E;G14;RA4=V\H(#4L(#(L+3$L,C4I*2P@7%P* +M7"`@("`@("`@("`@("`@("`@=&%N9V5N=%1O*%1W;R@@-BPM-BP@,BPR-2DI +M+"!<7`I<("`@("`@("`@("`@("`@("!T86YG96YT5&\H5'=O*"TW+"`Q+"`V +M+"`Q*2DL(%Q<"EP@("`@("`@("`@("`@("`@('1A;F=E;G14;RA4=V\H(#,L +M(#$L(#`L(#$I*2D[7%P*7&5M<'1Y3&EN90IO.3`@.B!)9&5A;"!O9B!27%P* +M7&5N9$]U='!U=`HE"EQB96=I;D]U='!U=`II.3$@.B!N=6U296%L4W1U4QI;F4* +M;SDQ(#T@,3)<7`I<96YD3W5T<'5T"B4*7'%E9`I<96YD>W!R;V]F?0H*"DEN +M(&5A8V@@;V8@=&AET=E;F5R86QI +M>F%T:6]N('1O($AI9VAE'U?UQB9B!Y?5PA +M7W(D(`ID969I;F4@;6%P'U?:2Q<+'M<8F8@>7U<(5]J*5TD(&ES('1H92!M871R:7@@;V8@=&AE(&)I +M;&EN96%R(&9OUQB9B!U +M?2Q<+'M<8F8@=GU<2!A('-Y;6UE=')I8R!M87`@"B1<=F%R<&AI7&-O;&]N(%9< +M=&\@5EXJ)"X*5&AIUQM871H8V%L(%9]*'$I)"X*4VEN8V4@82!Q=6%DUQM871H8V%L(%9]*'$I)"XI"E=E('-U;6UA'M0;'5C:V5R(&-O;W)D:6YA=&5`4&Q<(G5C:V5R(&-O;W)D:6YA +M=&5](&%R90IIUQM871H8F(@4'U> +M;B0N"D9R;VT@=&AE(&-A;&-U;&%T:6]N'!E8W0@=&AIT)E +M>F]U="!N=6UB97)`0EPG97IO=70@;G5M8F5R?2P@87,@)%QD96=[7&)F($=] +M7WLR+#5]/34D"B!A;F0@=&AE(&-O;F1I=&EO;B!T;R!B92!T86YG96YT('1O +M(&$@<75A9')I8R!H87,@9&5GUQM871H8F(@4'U>;B0@ +MUQM871H8F(@4'U>-"0@=&%N9V5N="!T;R`V"F=E;F5R86P@'MS<&AE2`D320N"B4*7&)E9VEN3W5T +M<'5T"FDY,B`Z('1A;E%U860@/2`H32P@6"D@+3X@*%Q<"EP@("`@("`@("`@ +M('4@.CT@6%Y<>S!7'LQ7'T[7%P* +M7"`@("`@("`@("`@*'4@*B!-("H@=')A;G-P;W-E('8I7C(@+2!<7`I<("`@ +M("`@("`@("`H=2`J($T@*B!TUQT="!6?2!A;F0@>UQT="!R?2!G:79E(')A;F1O;0ID871A(&9O +M;BE<7`I<("`@("`@("`@ +M("`@("`@*3M<7`I<96YD3W5T<'5T"B4*7&)E9VEN3W5T<'5T"FDY-"`Z(%8@ +M/2`H*2`M/B!M871R:7@@=&%B;&4H,2P@;BP@*&DL:BD@+3X@UQM871H8F(@4'U>-"0@=&%N9V5N="!T;R`V(')A;F1O;2!S<&AE4QI;F4*;SDX(#T@?"`Q(#`@ +M>E\H,"PP*2!Z7R@P+#$I('I?*#`L,BD@?%Q<"EP@("`@("!\(#`@,2!Z7R@Q +M+#`I('I?*#$L,2D@>E\H,2PR*2!\7%P*7&5M<'1Y3&EN90I<("`@("`@("`@ +M("`@("`R("`@("`@(#5<7`IO.3@@.B!-871R:7@@4B`@/"TM+2!27%P*7&5N +M9$]U='!U=`HE"EQB96=I;D]U='!U=`II.3D@.B!)(#T@:61E86P@*&%P<&QY +M*#$N+B@R*FXM,BDL(%Q<"EP@("`@("`@("`@("`@("`@("`@("!I("T^('1A +M;E%U860H;E-P:&5R92A6*"DL('(H*2DL(%@I*2D[7%P*7&5M<'1Y3&EN90IO +M.3D@.B!)9&5A;"!O9B!27%P*7&5N9$]U='!U=`HE"E=E(&9I;F0@=&AE4QI;F4*;S$P,"`]("@P+"`R-"E<7`I<96UP='E, +M:6YE"F\Q,#`@.B!397%U96YC95Q<"EQE;F1/=71P=70*)0I4:&4@97AP96-T +M960@;G5M8F5R2!A65D"FEN('1H92!T86)L92!B96QO=RX*5&AE +M(&YU;6)ET%S('1H:7,@=V%S"F=O:6YG('1O('!R97-S+"!T:&4@ +M;V)V:6]U>VXM,7TD(&-O;7!L97@@;&EN97,@=&%N9V5N="!T;R`D,FXM,B0@"F=E +M;F5R86P@UQM871H8F(@4GU>;B0L(&%N9"!A;&P@;6%Y +M(&)E(')E86Q^7&-I=&5[4T\Z4U1H,#%]+GT*"EQB96=I;GMC96YT97)]"EQB +M96=I;GMT86)U;&%R?7M\8WQC?&-\8WQC?&-\?5QH;&EN90H@("1N)"8R)C,F +M-"8U)C9<7%QH;&EN90H@(%PC(&5X<&5C=&5D7#LF7#M[7&)F(#1]7#LF7#M[ +M7&)F(#$R?5P[)EP[,C1<.R9<.S0X7#LF7#LY-EP[7%Q<:&QI;F4*7&5N9'MT +M86)U;&%R?0I<96YD>V-E;G1E7-T>6QE>W-I86U]"B5<8FEB +M;&EO9W)A<&AY>RXN+RXN+V)I8FPO8FEB;&EO9W)A<&AY+"XN+RXN+V)I8FPO +MV1O8W5M96YT?0H*7&)E9VEN>W1H96)I8FQI;V=R +M87!H>7U[,3!]"@I<8FEB:71E;7M33SI!1GT*4"Y^06QU9F9I(&%N9"!7+GY& +M=6QT;VXZ"EQN97=B;&]C:R!,:6YEU-/.D)-351]"D4N?D)E8VMEU-]:&%P92![3'UE;6UA+@I<;F5W8FQO8VL@26X@>UQE;2!02!A;F0@<75A9')A=&EC"B`@9F]R;7,@*$)E +MU-/.D)E2!A;F0@0V]M;75T871I=F4@06QG96)R87TN"EQN +M97=B;&]C:R!55$TN(%-P2X*7&YE=V)L;V-K('M<96T@57-P96MH:2!-870N($YA=6M]+"`U-2@T*#,S +M-"DI.C$R.2TM,C$R+"`R,#`P+@H*7&)I8FET96U[4T\Z35(Y-V$Z,3,P,#%] +M"D0N?D5IUQE;2!#;VUM=71A=&EV92!!;&=E +M8G)A(%=I=&@@82!6:65W(%1O=V%R9',@06QG96)R86EC($=E;VUE=')Y?2X* +M7&YE=V)L;V-K($YU;6)ETU]+GY[4WUH +M87!IU-/.D5'+4Y2?0I!+GY%&%M<&QEU-/.D9U.#1A?0I7+GY&=6QT;VXZ"EQN97=B;&]C +M:R![7&5M($EN=&5RU-/.D9--S9]"E6-L97,@;VX@86X@86QG96)R86EC('9A"!3:6YG=6QAU-/.DA34WT*0BY^2'5B97(L($8N?E-O='1I;&4L(&%N9"!"+GY3 +M='5R;69E;',Z"EQN97=B;&]C:R!.=6UEU-]8VAU8F5R="!C86QC +M=6QUU-/.DU2-3`Z,3,P-C-]"E,N?DML +M96EM86XZ"EQN97=B;&]C:R!4:&4@=')A;G-V97)S86QI='D@;V8@82!G96YE +M7TL(#U)]7C,D+@I<;F5W8FQO8VL@37-S +M+BP@96UA:6P@861DV1A;FQ`=V]L9G)A;2YC;VU]+"`R,#`Q+@H* +M7&)I8FET96U[4T\Z35!4,#!]"DDN1RX@36%C9&]N86QD+"!*+GY086-H+"!A +M;F0@5"Y^5&AE;V)A;&0Z"EQN97=B;&]C:R!#;VUM;VX@=&%N9V5N=',@=&\@ +M9F]UU)]7C,D+@I<;F5W8FQO8VL@ +M5&\@87!P96%R(&EN('M<96T@1&ES8W)E=&4@86YD($-O;7!U=&%T:6]N86P@ +M1V5O;65TG!I"!O=71P=70@9F5E9&)A8VLN"EQN97=B;&]C:R![7&5M(%-Y2!F;W(@=&AE(')E86P@>T=]UQE;2!$=6ME($UA=&@N($HN?2P@.#U-]:&%P:7)O+@I<;F5W8FQO +M8VL@06X@87)C:&EV92!O9B!C;VUP=71A=&EO;G,@86YD(&-O;7!U=&5R(&%L +M9V5B'!M871H+F]R9R]E>'1R +M82\Y+C(OU-/.E-O,#!B?0I&+GY3;W1T:6QE.@I<;F5W8FQO8VL@4F5A;"![ +M4WUC:'5B97)T(&-A;&-U;'5S.B!0;VQY;F]M:6%L('-YU-]:&%P:7)O+@I<;F5W +M8FQO8VL@>UQE;2!%>'!E2!F;W(@ +M9FQA9R!M86YI9F]L9',N"EQN97=B;&]C:R![7&5M($UI8V@N($UA=&@N($I] +M+"`T.#HU-S,M+34Y,BP@,C`P,"X*"EQB:6)I=&5M>U-/.E-4:#`Q?0I&+GY3 +M;W1T:6QE(&%N9"!4+GY4:&5O8F%L9#H*7&YE=V)L;V-K($QI;F5S('1A;F=E +M;G0@=&\@)#)N+3(D('-P:&5R97,@:6X@)%QM871H8F)[4GU>;B0N"EQN97=B +M;&]C:R!M871H+D%'+S`Q,#4Q.#`L(#(P,#$N"@I<8FEB:71E;7M33SI3='5R +M;69E;'-?1T)#4'T*0BY^4W1UUQE;2!'UQE;2!%>'!EUQR;7T*7&YE=W1H96]R96U[;F]T871I;VY]6W1H96]R96U=>TYO=&%T +M:6]N?7M<8F9S97)I97-]>UQR;7T*7&YE=W1H96]R96U[8V]NW-296UAW-U8G-E8W1I;VY]"EQN97=T:&5OW-% +M>&%M<&QE?5MS4F5M87)K77M%>&%M<&QE?7M<8F9S97)I97-]>UQR;7T*7&YE +M=W1H96]R96U[T-O9&5]>UQB9G-EU)E7-O;B4*("`@("`@("`E7&EN2!T:&4@3E-&+"!GW%U87-I+6ES;RUM;W(M<&AIWM<=6YD97)S971[(S%]>UQS=6U[7'9P +M:&%N=&]M7'-U;7U>>UQS8W)I<'1S8W)I<'1S='EL92M]?7U]"@I<9&5F7&%N +M;GM[7&]P97)A=&]R;F%M97MA;FY]?7T*7&1E9EQI;G9[>UQO<&5R871OWM<;W!EW)E9WU]?0I<9&5F +M7&=R>WM<;W!EV=R?7U]"EQD969<8G5[>UQS8W)I<'1S8W)I +M<'1S='EL95QB=6QL971]?0I<9&5F7$A(>WM<;W!ETA]?7T* +M7&1E9EQ4;W)[7&]P97)A=&]R;F%M97M4;W)]?0I<9&5F7$5X='M<;W!ET5X='U]"EQD969<V5X='U]"EQD +M969<1&5G>UQO<&5R871OU!]?0I<9&5F +M7$)A>WM)?7T*7&1E9EQG96Y[>T=]?0I<9&5F7&1E<'1H>UQO<&5R871OUQO<&5R871OUQO<&5R871OUQO<&5R871OTAO;7U] +M"EQD969<0V]K97)[7&]P97)A=&]R;F%M97M#;VMEUQO +M<&5R871OWM<;6%T:&)B($9]?0I<9&5F +M7$Y[>UQM871H8F(@3GU]"EQD969<6GM[7&UA=&AB8B!:?7T*7&1E9EQ$1'M[ +M7&UA=&AS9B!$?7T*7&1E9EQ34WM[7&UA=&AS9B!3?7T*7&1E9EQ7961G97M[ +M7'1E>'1S='EL95QB:6=W961G95QL:6UI='-]?0I<9&5F7&%[7&%L<&AA?0I< +M9&5F7&)[7&)E=&%]"EQD969<9WM<9V%M;6%]"EQD969<9'M<9&5L=&%]"EQD +M969<97M<97!S:6QO;GT*7&1E9EQO>UQO=&EM97-]"@I<;6%K971I=&QE"EQB +M96=I;GMA8G-T'0D"FUO9'5L97,@2!T=V\@9FEN:71E;'D@ +M9V5N97)A=&5D(&=R861E9"`D0B0M;6]D=6QE'1>7&)U7T(H32Q.*20@87,@ +M82!B:6=R861E9"!M;V1U;&4@;W9E<@IA;B!A<'!R;W!R:6%T96QY(&)I9W)A +M9&5D('!O;'EN;VUI86P@2!T:&4@=7-E(&]F('M<:70@ +M8V]H;VUO;&]G>0IO<&5R871I;VYS7"]]+"!A('1E8VAN:7%U92!UUQI="!P;VQY;F]M:6%L(')I;F=<+WT@)%,D.R!T:&ES(&UA>0IA +M8V-O=6YT(&9O6=Y(&UO9'5L97,@;V8@)$TD(&5X:&EB:70*8'-I;6EL87(G('!R +M;W!E&%M<&QE+"!AGEG:65S(&%R92!T:&5N(&%L;"!E<75A;`IT;R`D,"0L +M(&%N9"!S;RTM+69O%\Q+%QD;W1S+'A? +M92E")"P*86YD(')E9W5L87)I='D@)%QR96=?0BA-*3T@7'-U<%][;BQS?5Q[ +M0E][;G-]*$TI7&YE,%Q])"X*7&)E9VEN>VET96UI>F5] +M"EQI=&5M6R1<8G5L;&5T)%T*>UQI="!)5PO?2X*1F]R(&5A8V@@)')<9V4R)"!T:&5R92!E +M>&ES=',@82!R:6YG("1"*'(I)"!W:71H("1<8EY[0BAR*7U?>VYS?2AK*3TP +M)`IF;W(@)'-<;F4@;B0@86YD("0P7&QE(&Y<;&4@W(L2!E;&5M96YT20L('-E92!<8VET97M#23I!4'TN"EQI=&5M6R1<8G5L;&5T)%T*>UQI +M="!3:7IE7"]]+@I4:&5R92!AT-).G)EVET96UI>F5]"@I4 +M:&5S92!O8G-T2!W:&5N("1" +M)"!I0E][;BTR8WTH32DL"EQD;W1S+%QB7D)?>VY]*$TI +M)"X@268@)$(D(&ES(&=E;F5R871E9"!I;B!D96=R964@;VYE+"!T:&5N"B1< +M0E]N*$TI7&QE7&)E=&$H32EN7GMC+3%])"!F;W(@86QL +M"B1N7&=E,20@86YD(&9OT-).DU2-3$Z-#@W?2P@=VAO('!R;W9E6YO;6EA;"![7&ET(')I;F<@ +M;V8@8V]H;VUO;&]G>0IO<&5R871OVAIT-O:&]M;VQO9WD*;W!E6YO;6EA;"!R:6YG+2TM=&AA="!E;F-O9&5S"B1# +M)"!A;F0@86QL('1H92!N=6QL+6AO;6]T;W!I97,@;V8@)$,D(&-OUQS;"!A9"!H;V-<+WT@:6X@ +M4V5C=&EO;B!<T=R861E9"!A;&=E8G)AT-O;7!U=&%T:6]N(&]F($5X="!M +M;V1U;&5S?2!W92!P2!C;&]S92!T;R!T:&4*<')O;V9S(&EN(%-E8W1I;VYS(%QR969[56YI=F5R +MT-O:&]M;VQO9WD*;W!E7&)U +M7T(H:RQ-*20L('=H;W-E(&-O;7!U=&%T:6]N(&ES(&%L2`D7'9ATUA=')I>"!&86-T;W)I>F%T +M:6]NTUA=')I>"!F86-T;W)I>F%T:6]N2!S<&5C:6%L(&-A +M2!I;B!M871R +M:7@@=&5R;7,N"@I,970@)&8D(&)E(&$@;F]N+7IEV%N9'U<<7%U860@5EQC +M9&]T(%4]+69<8V1O="!)7UQE;&P*7%T*=VAE>RTQ?5QC9&]T(%4D(&%N9"`D5B0@87)E +M(&EN=F5R"!F86-T;W)I>F%T:6]N+"!W:71H("1F/7AY+7=Z)#H* +M7%L*7&)E9VEN>W!M871R:7A]('<@)B!X(%Q<('D@)B!Z(%QE;F1[<&UA=')I +M>'U<8V1O=`I<8F5G:6Y[<&UA=')I>'T@>B`F("UY(%Q<("UX("8@=R!<96YD +M>W!M871R:7A]/0HM*'AY+7=Z*5QC9&]T"EQB96=I;GMP;6%TW!M871R:7A]/0I<8F5G:6Y[<&UA=')I>'T@>B`F +M("UY(%Q<("UX("8@=R!<96YD>W!M871R:7A]7&-D;W0*7&)E9VEN>W!M871R +M:7A]('<@)B!X(%Q<('D@)B!Z(%QE;F1[<&UA=')I>'T*7%T*"DQE="!N;W<@ +M)$-?,20@86YD("1#7S`D(&)E(&9R964@)$$D+6UO9'5L97,@;V8@'1[86YD?5QQ<75A9"!S7S!<8V]L;VX@0U\P7'1O($-?,0I<70IB92`D020M +M;&EN96%R(&AO;6]M;W)P:&ES;7,@9&5F:6YE9"!B>2!T:&4@;6%T2P@869T97(@8F%S97,@:&%V92!B +M965N('1A8VET;'D@8VAO"!F86-T;W)I>F%T:6]N(&1E +M9FEN97,@82!C;VUM=71A=&EV92!D:6%G'EM871R:7AR;W=S97![,W!C?0I<>'EM871R:7AC;VQS97![-'!C?0I< +M>'EM871R:7A["C`*7&%R6W)="B8@0U\Q"EQAV1?,7T*7&%R6V1= +M7WLM9EQC9&]T(#%?>T-?,7U]"B8@0U\P"EQA>RUF7&-D +M;W0@,5][0U\P?7T*7&%R6V1L75\M>W-?,'T*)B!,"EQAS!?3#U]7GLM9EQC9&]T,5],?0HF(#`*7%P*,`I<87);'!R97-S97,@=&AE(&9O;&QO=VEN9R!F86-T2`D9B0L(&%N9"`D2P@ +M:68@86X@)$$D+6UO9'5L92`D3"0@86YN:6AI;&%T960@8GD@)&8D(&AA2!C:&]I8V4@;V8@ +M:&]M;W1O<'D@)'-?,"0@8F5T=V5E;B`D+69<8V1O="`Q7T,D(&%N9"`D,%]# +M)"!P"!F86-T;W)I>F%T:6]N(&]F("0M9B0N"@I7 +M:&5N('=E(&%L"`D520*=&AA="!D969I;F5S(&%N(&EN:F5C +M=&EV92`D020M;&EN96%R(&UA<"P@=V4@8V%N('5S92!<371W;R!T;R!CV9A;6EL:6%R?0I792!R979I&%M<&QE(&9R;VT@82!H:6=H97(@<&5R2QZ75Q<"EQE;7!T>4QI +M;F4*;S$@/2!!7%P*7&5M<'1Y3&EN90IO,2`Z(%!O;'EN;VUI86Q2:6YG7%P* +M7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3(@.B!5(#T@;6%TWDL>EQ]7'U<7`I<96UP='E,:6YE"F\R(#T@?"!W('@@?%Q<"EP@ +M("`@('P@>2!Z('Q<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@,B`@("`@ +M("`R7%P*;S(@.B!-871R:7@@02`@/"TM+2!!7%P*7&5N9$]U='!U=`I<8F5G +M:6Y/=71P=70*:3,@.B!#(#T@8VAA:6Y#;VUP;&5X(%5<7`I<96UP='E,:6YE +M"EP@("`@("`R("`@("`@,EQ<"F\S(#T@02`@/"TM($%<7`I<("`@("`@("`@ +M("`@(%Q<"EP@("`@(#`@("`@("`Q7%P*7&5M<'1Y3&EN90IO,R`Z($-H86EN +M0V]M<&QE>%Q<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDT(#H@3"`]($A( +M7S`@0UQ<"EQE;7!T>4QI;F4*;S0@/2!C;VME"!\7%P*7"`@ +M("`@("`@("`@("`@?"!Y('H@?%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`R7%P*;S0@.B!!+6UO9'5L92P@<75O=&EE;G0@ +M;V8@05Q<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDU(#H@9B`]("UD970@ +M55Q<"EQE;7!T>4QI;F4*;S4@/2!X*GD@+2!W*GI<7`I<96UP='E,:6YE"F\U +M(#H@05Q<"EQE;F1/=71P=70*3&5T)W,@=F5R:69Y('1H870@)&8D(&%N;FEH +M:6QA=&5S("1,)"X*7&)E9VEN3W5T<'5T"FDV(#H@9B`J($P@/3T@,%Q<"EQE +M;7!T>4QI;F4*;S8@/2!TS%2!W("!\7%P*7&5M<'1Y3&EN90IO-R`Z +M($-H86EN0V]M<&QE>$UA<%Q<"EQE;F1/=71P=70*3&5T)W,@=F5R:69Y('1H +M870@)',D(&ES(&$@;G5L;"UH;VUO=&]P>2!F;W(@)"UF)"P@=7-I;F<@>UQT +M=`I#+F1D?5QI;F1E>&-M9'MD9'T@=&\@;V)T86EN('1H92!D:69F97)E;G1I +M86P@;V8@=&AE(&-H86EN(&-O;7!L97@@>UQT=`I#?2!A4QI;F4*;S@@/2!TF%T:6]N+@I<8F5G:6Y/=71P +M=70*:3D@.B!6(#T@B`@ +M+7@@?%Q<"EP@("`@(%Q[,5Q]('P@+7D@=R`@?%Q<"EQE;7!T>4QI;F4*7"`@ +M("`@("`@("`@("`R("`@("`@(#)<7`IO.2`Z($UA=')I>"!!("`\+2TM($%< +M7`I<96YD3W5T<'5T"EQE;F1[17AA;7!L97T*"D9O2`D9B0@86YD +M(&5V97)Y("1R7&=E,20@=&AEU)E +M;6%R:WT*7&QA8F5L>V9A8W1O6YO;6EA;"!R:6YG(&EN("1E)"!V87)I86)L97,@;V8@<&]S:71I +M=F4@9&5G2`D0B0M;6]D=6QE("1-)"!O9B!I;F9I;FET92!PV=E;F5R871E2!(:6QB97)T)W,@4WEZ>6=Y(%1H +M96]R96TL('1H92!M:6YI;6%L(&=R861E9`IF2!T:&4*075S +M;&%N9&5R+4)U8VAS8F%U;2!%<75A;&ET>2P@)$-?;CTP)"!F;W(@)&X^7&1E +M<'1H($$M7&1E<'1H7T%,/3$D+@H*5&AE(&UI;FEM86QI='D@;V8@)$8D(&5N +MF5R;R!E;G1R:65S(&]F('1H90IP2!<8VET95M396-T+GXP +M77M#23I%:7T@=&AE(&UO9'5L92`D3"0@:&%S(&YO(&1IF5R;R!F&%M<&QE?0I<;&%B96Q[%XS("L@,WE>,R`M(#)Y>EXR("L@-7I>,R!<:6Y<;6%T:&)B(%%;>"QY+'I= +M/4$*7%T*9V5N97)A=&5D(&)Y('1H92!M;V1U;&4@)$T]0B][7&UA=&AFBE")"X*7&)E9VEN3W5T<'5T"FDQ,"`Z($$@/2!145MX+'DL>ET[7%P* +M7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3$Q(#H@9B`]('A>,R`K(#,J>5XS +M("T@,BIY*GI>,B`K(#4J>EXS.UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T +M"FDQ,B`Z($(@/2!!+V8[7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3$S +M(#H@;2`](&ED96%L*'@L>2QZ*5Q<"EQE;7!T>4QI;F4*;S$S(#T@:61E86P@ +M*'@L('DL('HI7%P*7&5M<'1Y3&EN90IO,3,@.B!)9&5A;"!O9B!"7%P*7&5N +M9$]U='!U=`I,970G,2]M7C([7%P*7&5N9$]U='!U=`I<8F5G:6Y/ +M=71P=70*:3$U(#H@1B`](')EF%T:6]N +M?0I<8F5G:6Y/=71P=70*:3$W(#H@3"`](')E2!X,B`@("`@("!Y,B`@("`P("`@("`@("`P("`@("`@ +M("`P("`@("`@("!Y>BTU+S)Z,B`P("`@("`@?%Q<"EQ[-%Q]('P@,"`@>#(@ +M+3-Y,B`@("`@>'D@("`@>7HM-2\R>C(@,"`@("`@("`@>7HM-2\R>C(@,"`@ +M("`@("`@,"`@("`@('Q<7`I<>S17HK-7HR(#`@("`@ +M('DR+34O,GEZ('EZ+34O,GHR("TU+S)Y>B`@(#`@("`@("`@(#`@("`@("!\ +M7%P*7'LU7'T@?"`P("`P("`P("`@("`@("`Q+S-Z("`P("`@("`@("`P("`@ +M("`@("`P("`@("`@("`Q+S)Y("`@("!X("`@("`@?%Q<"EQ[-5Q]('P@,"`@ +M,"`@+7H@("`@("`@,"`@("`@,2\R>2`@("`@,"`@("`@("`@,2\R>2`@("`@ +M+3$O,G@@("`@,"`@("`@('Q<7`I<>S5"`P("`@("`@("`Q +M+S)Y("`@("`M,2\S>B`@("`P("`@("`@("`P("`@("`@?%Q<"EQ[-5Q]('P@ +M+7H@>2`@>"`@("`@("`@,"`@("`@,"`@("`@("`@+3$O,G@@("`@,"`@("`@ +M("`@,"`@("`@("`@,"`@("`@('Q<7`I<>S52LU>B!\7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3(Q(#H@2`H+68@*B!I9%]#*3M<7`I<96YD3W5T<'5T"EQB96=I;D]U +M='!U=`II,C(@.B!6(#T@4QI;F4*7"`@("`@("`@("`@ +M("`@.2`@("`@("`Y7%P*;S(R(#H@36%TS9"`@,"`@("`@("`@(#`@("`@("`@("`M,GDR*S5Y>B`P("`@("`@ +M("`@+3)Y>BLU>C(@+3-Y,B!\7%P*7'LV7'T@?"`P("`@+7@@,"`@(#`@("`@ +M("`@("`P("`@("`@("`@+3)Y>BLU>C(@+3-X>2`@("`@("TS>3(@("`@("TS +M>7H@?%Q<"EQ[-EQ]('P@+7@@('D@(#`@("`P("`@("`@("`@+3)Y>BLU>C(@ +M(#`@("`@("`@(#`@("`@("`@("`P("`@("`@("`P("`@('Q<7`I<>S92`P("`P("`@-GEZ+3$U>C(@(#`@("`@("`@("`P("`@("`@("`S>#(@ +M("`@("`@,WAY("`@("`@,WAZ("!\7%P*7'LV7'T@?"`P("`@,GH@+3-Y("TQ +M-7AZ("`@("`M,35Y>B`@("`@,G@R("`@("`@-GEZ+3$U>C(@(#`@("`@("`@ +M(#-X,B`@?%Q<"EQ[-EQ]('P@+3)X(#`@(#)Z("`P("`@("`@("`@+31Y>BLQ +M,'HR(#`@("`@("`@("TV>3(@("`@("`R>#(@("`@("`P("`@('Q<7`I<>S9< +M?2!\(#`@("`P("`S>2`@+39X>2LQ-7AZ("TV>3(K,35Y>B`P("`@("`@("`M +M-GEZ*S$U>C(@,"`@("`@("`@+3-X,B!\7%P*7'LV7'T@?"`R>B`@,"`@,"`@ +M("TV>3(@("`@("`R>#(@("`@("`@,GAY("`@("`@,"`@("`@("`@(#`@("`@ +M("`@(#`@("`@?%Q<"EQ[-EQ]('P@,"`@(#`@(#`@("`M>#(@("`@("`@+7AY +M("`@("`@("UY,B`@("`@("UX>B`@("`@("`M>7H@("`@("`M>C(@('Q<7`I< +M96YD3W5T<'5T"EQB96=I;D]U='!U=`II,C0@.B!5*E8K9CT],%Q<"EQE;7!T +M>4QI;F4*;S(T(#T@=')U95Q<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDR +M-2`Z(%8J52MF/3TP7%P*7&5M<'1Y3&EN90IO,C4@/2!TV-O9&5]"EQL86)E;'MF86-T;W)I>F%T:6]N(&-O9&5]"E1H +M92!F=6YC=&EO;B![7'1T(&UA=')I>$9A8W1OUQT="!AV%S2!O=7(@V-O9&5]"@I,970GV-U +M8F5]"E=I=&@@=&AE('-A;64@)$$D+"`D9B0L("1")"P@86YD("1<;6%T:&9R +M86L@;20@87,@:6X@17AA;7!L90I<W-Q=6%R97TL('=E('!R;V1U8V4@ +M82!M871R:7@@9F%C=&]R:7IA=&EO;B!G96YE$9A8W1O,RD[ +M7%P*7"`@("`@+2T@=7-E9"`P+C(Q('-E8V]N9'-<7`I<96YD3W5T<'5T"E1H +M92!P87)A;&QE;"!A2!A<'!E;F1I;F<@ +M82!S96UI8V]L;VX@=&\@=&AE"F%P<')O<')I871E(&-O;6UA;F0N"EQB96=I +M;D]U='!U=`II,C@@.B!5.UQ<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`@ +M,34@("`@("`@,35<7`IO,C@@.B!-871R:7@@02`@(#PM+2T@05Q<"EQE;F1/ +M=71P=70*7&)E9VEN3W5T<'5T"FDR.2`Z(%8[7%P*7&5M<'1Y3&EN90I<("`@ +M("`@("`@("`@("`Q-2`@("`@("`Q-5Q<"F\R.2`Z($UA=')I>"!!("`@/"TM +M+2!!7%P*7&5N9$]U='!U=`I<96YD>T5X86UP;&5]"@I-871R:7@@9F%C=&]R +M:7IA=&EO;G,@=V5R92!I;G1R;V1U8V5D('1O(&-O;G-T7T*268@)"A5+%8I)"!I2`D:UQT:6UE2P*=&AE +M;B!T:&4@W-?,%QO(#%?0GT*0U\Q7&]T:6UE')I9VAT87)R;W=[9%\Q +M7&\@,5]"?0I#7S!<;W1I;65S7T%"7'1O,`I<70IO9B`D0B0M;&EN96%R(&UA +M<',@:7,@82!FT-?,7TD+B`@268@)'A< +M:6X@0U\Q)"!S871I20@9F]R('-O;64@)'E<:6X@0U\P)"P*:&5N +M8V4@)&1?,7@]9%\Q2!S>6UM971R>2X*(%QE;F1[4F5M87)K +M?0H*4&]O;&EN9R!296UAT-).D5I?2X*"EQB96=I;GMT:&5O6YO;6EA;"!I;B`D020N("!4:&4@;6EN +M:6UA;`IG&%M<&QE(%QR969[2!T +M:&4@<&5R:6]D:6-I='D@;V8@)$8D('=E('-U8G1R86-T('!A:7)S(&]F(&1I +M9F9E0IO9B`D1B0@=&AA="!I7IY9WD@;6]D +M=6QEUQI=`IE<75A;&ET>5PO?2P@4QI;F4*;S,U(#T@=')U +M95Q<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDS-B`Z($2!P86ED(&]F9BP@&%M<&QE?0H*7'-E8W1I;VY[1W)A9&5D($%L9V5B +M*CU<2&]M7T$H42Q!*20N"E=E +M(&%S"0@:7,@86X@96QE;65N="!O +M9B`D420L('1H96X@)'A>7'=E9&=E)`ID96YO=&5S('1H92!C;W)R97-P;VYD +M:6YG(&5L96UE;G0@;V8@)%%>7'=E9&=E)"X*"E=E('5S92`D7&$@/2`H7&%? +M,2`L(%QD;W1S("P@7&%?8R`I(%QI;B!<6EYC)"!A8R0@ +M8GD@=&AE(')U;&4Z("1<82!<9V4@7&(D(&UE86YS"B1<85]I(%QG92!<8E]I +M)"!F;W(@96%C:"`D:20N("!792!L970@)&\D(&1E;F]T92!T:&4@=')I=FEA +M;"!E;&5M96YT"F]F("1<6EYC)"P@86YD("1<95]I)"!T:&4@)&DD)W1H(&5L +M96UE;G0@;V8@:71S('-T86YD87)D(&)AV-O;G-TV%L9V5BV=A=&AEW=I=&@@8F%S:7-]7'%U860@7&)I +M9UQ[6%Y[7&%](#H@?%QA?#U[;7U<8FEG7'U<7`I<1$1>>VU]*%$I(%QQ=6%D +M7'1E>'1[=VET:"!B87-IVU]7&)I9UQ]7%P*7%=E9&=E7GMM?2A17EQW961G92D@7'%U861<=&5X='MW +M:71H(&)AV%N9'U<<75A9%QA7&QE*%QE7S$K7&-D;W1S*UQE7V,I +M7&)I9UQ]"EQE;F1[9V%T:&5R*GT*1F]R("1M/#`D('=E(&1E8VQA>VU]*%$I)"P*86YD("1< +M5V5D9V5>>VU]*%%>7'=E9&=E*20@=&\@8F4@97%U86P@=&\@)#`D+"!A;F0@ +M9&5F:6YE('1H92!S>6UB;VQS"B187GM<87TD+"`D65Y[*%QA*7TD+"!A;F0@ +M)%E>>UQW961G95QA?20@86-C;W)D:6YG;'D[(&EN(&%D9&ET:6]N+`IW92!S +M970@)%Q7961G95Y[;7TH45Y<=V5D9V4I/3`D(&%N9"`D65Y[7'=E9&=E7&%] +M/3`D(&EF("1\7&%\7&YO=%QL90HH7&5?,2M<8V1O=',K7&5?8RDD+"!A;F0@ +M=V4@>RA<95]I*7U<<7%U860@65]I7EQW961G93U97GM<=V5D9V5<95]I?0I< +M<7%U861<=&5X='MF;W)]7'%Q=6%D(&D],2Q<9&]T>VU]*%%>*BDD+"`D7$1$7GMM?2A1*20L(&%N9"`D +M7%=E9&=E>WU>>VU]*%%>7'=E9&=E*20@87,*:&]M;V=E;F5O=7,@8V]M<&]N +M96YT2P*=V4@:6YT*BE<<7%U860*1"`](%Q$1"A1*5QQ<75A9`I%(#T@7%=E9&=E*%%>7'=E +M9&=E*0I<70IB>2!D969I;FEN9R!P2!T:&4@9F]R;75L87,*7&)E9VEN>V=A=&AE>UQA?5QC9&]T +M(%A>>UQB?3U87GM<82M<8GU<7`I97GLH7&$I?5QC9&]T(%E>>RA<8BE]/0I< +M<')O9%][:3TQ?5YC7&9R86-[*%QA7VDK7&)?:2DA?7M<85]I(5QB7VDA?5E> +M>RA<82M<8BE]7%P*65Y[7'=E9&=E7&%]7&-D;W0@65Y[7'=E9&=E7&)]/5QI +M;G8H7&$L7&(I65Y[7'=E9&=E7"Q<82M<8GT*7&5N9'MG871H97(J?0IW:&5R +M92`D7&EN=BA<82Q<8BDD(&1E;F]T97,@=&AE(&YU;6)EV1I=FED960*<&]W97)S(&%L9V5BUQI=%QI97ME>'1E6YO;6EA;"!R:6YG("1! +M6UA?,2Q<9&]TVAO;6]G96YE;W5S(&1ETQE:6)N +M:7H@G5L?0I%86-H('-E<75E;F-E("1F7S$L7&1O=',L9E]C +M7&EN($$D('EI96QDG5L(&UA<'U<+WT*7%L*7&)E +M9VEN>V=A=&AE'1[ +M9&5F:6YE9"!B>2!T:&4@9F]R;75L87U<7`ID7T4H65Y[7'=E9&=E7&)]*2`] +M"EQS=6U?>VD],7U>8R`H+3$I7GM<8E\Q*UQC9&]TV=A=&AEV-O;G-TV%C=&EO;G-]"D9O2`D6%]I7&EN7%-37C$H +M45XJ*20@86YD(&5A8V@@)%E>>RA<8BE](%QI;B!<1$1>>VU]*%$I)"!W92!S +M970*7%L*6%]I(%QL8V]N=')A8W0@65Y[*%QB*7T@/2!97GLH7&(M7&5?:2E] +M(%QI;B!<1$1>>WMM?2TQ?2A1*0I<70I%>'1E;F1I;F<@=&AI2P@=V4@9&5F:6YE("1G7&QC;VYT*BDD(&%N9"!A;&P@)'E<:6X@1"0N +M("!)="!I2!T;R!A;&P@)'5<:6X@ +M4R0L(&1E9FEN97,@;VX@)$0D(&$@UQE +M;&PM,FL];GU<4U->>VM]*%%>*BE<;W1I;65S7T$@7%=E9&=E>WU>>UQE;&Q] +M*%%>7'=E9&=E*5Q<"BA$7&]T:6UEEQC9&]T('HG*20N"B`@7&5N9'MC;VYS=')U8W1I;VY]"@I< +M8F5G:6Y[8V]N2!T:&4@9F]R;75L87U<7`ID7WM$17TH +M('D@7&\@>B`I(#T@=UQC9&]T*'D@7&\@>BD*/2!<7'=E9&=E7&-D;W0@>BD*7&5N9'MG +M871H97)E9'T*7%T*270@:7,@86X@)$4D+6QI;F5AT1%?5XR(#T@,"0*8F5C875S92`D=UXR +M/3`D+B`@"B!<96YD>V-O;G-TW-P;&ET?0I&;W(@96%C:"!I;G1E9V5R("1S)"!D969I;F4@82!C;VUP +M;&5X("1'7G,D(&%S(&9O;&QO=W,Z"EQ;"EQC9&]T>VM]*%$I +M7&]T:6UE')I9VAT87)R;W=[ +M=WT*7$1$7GMK+3%]*%$I7&]T:6UE7'=E +M9&=E*2!<=&\@7&-D;W1S(`I<70IW:71H("1<1$1>>S!]*%$I7&]T:6UE&ES="!I&5S"B1<8FEG;W!L=7-? +M>W,],7U>7&EN9G1Y($=>`I<6PI<8V1O='-<=&\* +M05E>>RAK*S$I?5]I7&]T:6UEW=?:7TH05E> +M>RAK*7U?:2E<;W1I;65S*$%97EQW961G95]I*0I<>')I9VAT87)R;W=[,'TH +M05E>>RAK*7U?:2E<;W1I;65S7T$@00I<=&]<8V1O=',*7%T*86YD("1W7VDD +M(&ES(&QE9G0@;75L=&EP;&EC871I;VX@=VET:"`D6%]I7&\@65]I7EQW961G +M920N("!4:&ES(&UA<`IB:6IE8W1I=F4L('-O(&5A8V@@8V]M<&QE>"`D1RAI +M*5][7&=E,7TD(&ES('-P;&ET(&5X86-T+B`@5&AE(&%SU5N:79E6UB;VP@ +M9EQN95QV87)N;W1H:6YG)"P@=&AE;B!T:&4@;F5W"G)EUQB;VQD2P@86YD(&ES('-I;6EL87(@=&\L(&]N92!D=64@ +M=&\@4VAA;6%S:`I<8VET97M#23I3:'T@86YD($5IT-) +M.D5I?3H@87-S=6UI;F<@=&AA="!T:&4@96QE;65N=',@;V8*)%QB;VQDUQB;VQD2!C;VYT7!O=&AE2`D9E]I)"!F;W(*)&D] +M,2Q<9&]T2!O +M9B!H;VUO9V5N96]UV9A;6EL>7T*7&)E9VEN>V%L:6=N +M961]"F1?;R`F/2!D7T,*7'%U861<=&5X='MI'1[:69<<75A9'T@7&<]7&5?:2!<=&5X='L@9F]R +M('T@:3TQ+%QD;W1S+&-<7`HM7'-S=6U[7&$K7&(]7&=]9%]<82!D7UQB("`@ +M("`@)EQT97AT>VEF7'%U861]('Q<9WQ<9V4R"EQE;F1[8V%S97-]"EQE;F1[ +M86QI9VYE9'T*7&5N9'ME<75A=&EO;GT*=VAE>UQS8W)I<'1S +M8W)I<'1S='EL92`K?20@9&5N;W1E2!F86UI;'D@)%Q[9%]<9UQ]7WM<9UQI;EQ.7F-])"!AV5Q=6%T:6]N?0I<8F5G:6Y[9V%T:&5R961]"EQL86)E;'MD0T1]"F1?>T-$ +M?2!<8V]L;VX@0UQO=&EM97-?040@7'1O($-<;W1I;65S7T%$(`I<<7%U861< +M=&5X='MG:79E;B!B>7U<7`ID7WM#1'TH>%QO('DI(#T@7'-U;5][7&<@7&EN +M7$Y>8WT@9%]<9RAX*2!<;R`H6%Y[7&=](%QL8V]N=')A8W0@>2D*7&5N9'MG +M871H97)E9'T*7&5N9'ME<75A=&EO;GT*=VAET5])"!A;F0@)&1?>T1%?20@9&5F:6YE9"!I;B!#;VYS=')U +M8W1I;VYS(%QR969[:V]S>G5L?2!A;F0*7')E9GMC87)T86Y](&%N9"!T:&4@ +M=&5NV=R861E9"UM87`M=&5NV1I9F9]"F1<8V]L;VX@0R!<;W1I;65S7T$@1"!<;W1I;65S7T$@12!<=&\@ +M0R!<;W1I;65S7T$@1"!<;W1I;65S7T$@10I<<7%U861<=&5X='MG:79E;B!B +M>7U<7`ID(#T@9%][0T1]7&\@,5]%("L@,5]#7&\@9%][1$5]("L@,5]#7&\@ +M,5]$7&\@9%]%(`I<96YD>V=A=&AEV5Q=6%T:6]N?0IIV=A=&AE7U<7`IQ +M*'A<;R!Y7&\@>BD]"EQB96=I;GMC87-E7I<8V1O="!R*'@I("9<<75A +M9%QT97AT>VEF('T@7&1E9RAY*3U<9&5G*'HI/3!<7`HP("`@("`@)EQQ=6%D +M7'1E>'1[;W1H97)W:7-E?0I<96YD>V-AV=A=&AEUQI=%QI97MB;W5N9&5D(&9I;'1R871I +M;VY]7"]](&]F(&$@8VAA:6X@8V]M<&QE>"`D1B0@:7,@82!S97%U96YC90I< +M6PHP/49>,%QS=6)S971E<2!&7C%<&5S('-U8V@@=&AA="!F;W(@96%C:"`D;B0@=&AE"!O9@HD020M;6]D=6QE>W,M,7TD+@H*7&)E9VEN>VQE;6UA?0I<;&%B96Q[9FEL=')A=&EO +M;GT*3&5T("1Q7&-O;&]N($8@7'1O($8G)"!B92!A(&UOWU>VQE;6UA?0H*7&)E9VEN>W!R;V]F +M?0I$96YO=&EN9R`D<5YS)"!T:&4@6UA=')I>'L*("`@("`@ +M,"!<87);>UQPS`N-C5P8WT*("`@(%QX>6UA=')I>'L*("`@("`@ +M7$A(7WMN*S%]*%QGUQ(2%][;BLQ?2A<9W)>7&-O;F<@7&%R6W)=("8*("`@("`@ +M7$A(7VX@("`@*$9>UQ(2%]N +M*%QG7&-O;F<@7&%R6W)=("8*("`@("`@7$A(7WMN+3%]*$9> +M>W,M,7TI("!<87);9%U?>UQ(2%][;BTQ?2AQ7GMS+3%]*7U>7&-O;F<*("`@ +M("`@7%P*("`@("`@7$A(7WMN*S%]*%QG>UQPT8G?2D@("`@("`@ +M("!<87);VXM,7TH1EY[7'!R:6UE7"QS+3%]*0H@ +M("`@("!]"EQ=("`*=&AE(&9O=7(@;W5T97(@=F5R=&EC86P@;6%PVM]/49?>VM](%QQ<75A +M9%QT97AT>V%N9'U<<7%U860*1EY[7'!R:6UE7"P@VM]/48G7WMK?5QQ +M<75A9%QT97AT>VAO;&0@9F]R?5QQ<75A9`IK/6XM,2QN+&XK,5PL+@I<70I4 +M:&4@8VAO:6-E(&]F("1S)"!I;7!L:65S('1H870@)%Q(2%]N*$9>>W-]*2`] +M(%Q(2%]N*$8I)"P*)%Q(2%]N*$9>>UQP>UQD96<@9UQC9&]T(%QD96<@ +M:'T@:"!G"EQ="D-O;6UU=&%T:6]N(&ES(&$@9W)A9&5D(&1E6-L97,@87)E('1H92!C:&%I;B!M87!S("1&7'1O($8D+"!A;F0@:71S(&)O +M=6YD87)I97,@87)E('1H90IN=6QL+6AO;6]T;W!I8R!M87!S+@H@7&5N9'M2 +M96UA>UQD96<*<2!<8V1O=%QD +M96<@9GTH('`H9BD@7&]T:6UEVQE;6UA?0H*7&)E9VEN>W!R;V]F?0I4:&4@875G +M;65N=&%T:6]N("1R7&-O;&]N($,@7'1O($TD(&1E9FEN97,@82!C:&%I;B!M +M87`@;V8@9&5G7&=R7T$H0RQ#*5QT;UQ(;VU>7&=R7T$H0RQ-*0I<70I4:&4@;6%P(&EN +M9'5C960@:6X@:&]M;VQO9WD@:7,@86X@:7-O;6]R<&AI2!T:&4*8&-O;7!A*B0L +M"G-E92!#;VYS=')U8W1I;VX@7')E9GMA;&=E8G)A>S%]*%%> +M*BDD+@H*5V4@9FER2!I +M;F1U8W1I;VX@;VX@)'Q<9WPD+@H*268@)'Q<9WP],"0L('1H96X@)%QG/6\D +M+"!S;R`D9%]O/61?0R0@:7,@<')E9&5F:6YE9"X@($EF("1\7&=\/3$D+`IT +M:&5N("1<9SU<95]I)"!F;W(@2P@ +M=&AA="!I"`D7&=<:6Y<3EYC)"!W:71H("1\7&=\/6XD+B`@57-I;F<@4F5M87)K(%QR +M969[8V]M;75T871OUQA)WT@9%][7&$G)WU<8FEG9RED7UQB"BUD7UQA7&)I9VUQB)WT@9%][7&(G)WU<8FEG9RE<8FEG9RE<7`HF/5QS +MUQA)RM<82UQA)WT@9%][7&$G)WT@9%][7&)]"BU< +MV%L:6=N*GT*5&AE(&UA<"`D+5QS=6U>*U][7&$K7&(]7&=] +M(&1?7&$@9%]<8B0@:&%S(&1E9W)E92`D,GQ<9WPM,B0L('-O(&)Y"DQE;6UA +M(%QR969[<75IT1%?5TK"EQ< +M"B8Q7T-<;R!D7WM$17U>,B`K"C%?0UQO(#%?1%QO(&1?15XR("L*6V1?>T-$ +M?5QO(#%?15PL+%PL,5]#7&\@,5]$7&\@9%]%70I<96YD>V%L:6=N*GT*0V]N +MV-AG5L?2P@86YD(%)E +M;6%R:PI<V=R861E9"UM87`M=&5N,B`F(#T@+69<8V1O="`Q7WM#7&\@1'T@7%P*7&QA8F5L +M>W-E8V]N9'T*("`@("`@("!;9%][1$5]7"PL7"PQ7T1<;R!D7T5=("8@/2!F +M7&-D;W0@,5][1%QO($5]7%P*7&QA8F5L>W1H:7)D?0H@("`@("`@(%MD7WM# +M1'U<;R`Q7T5<+"Q<+#%?0UQO(&1?>T1%?5T@)B`]("`P"EQE;F1[86QI9VY] +M"@I!(&1IV9A +M;6EL>7T@<')O=F5S(&5Q=6%L:71Y"EQE<7)E9GMF:7)S='T@86)O=F4Z"EQB +M96=I;GMA;&EG;BI]"F1?>T-$?5XR*'A<;R!Y*0HF/61?>T-$?5QB:6=G*%QS +M=6U?>UQB7&EN7$Y>8WT@9%]<8BAX*5QO7&)I9RA87GM<8GU<;&-O;G1R86-T +M('E<8FEG*5QB:6=G*5Q<"B8]7'-U;5][7&)<:6Y<3EYC?5QB:6=G"BA<2!#;VYS=')U8W1I;VYS(%QR969[:V]S>G5L?2!A;F0@ +M7')E9GMC87)T86Y]+"!T:&4@;6%PT1% +M?20@87)E(&1ET1%?2PQ7T1<;R!D7T5=)"!I2!E;&5M96YT(&]F"B1$(%QO=&EM97-? +M02!%)"!IW-E8V]N +M9'T@87,@9F]L;&]WV%L:6=N*GT*6V1?>T1%?5PL+%PL)C%? +M15QO(&1?15U<8FEG*%E>>RAK*7U?:B!<;R`Q7&)I9RE<7`HF/61?>T1%?5QB +M:6>RAK*7U?:B!<;R`Q7&)I9RE<8FEG*2`K +M"B@Q7T5<;R!D7T4I7&)I9RAD7WM$17U<8FEG*%E>>RAK*7U?:B!<;R`Q7&)I +M9RE<8FEG*5Q<"B8]("@Q7T5<;R!D7T4I7&)I9RA97GLH:RTQ*7U?:B!<;R!9 +M7VI>7'=E9&=E7&)I9RE<7`HF/2!97GLH:RTQ*7U?:B!<;R!F7VI<7`HF/2!F +M7&-D;W1<8FEG*%E>>RAK*7U?:B!<;R`Q7&)I9RD*7&5N9'MA;&EG;BI]"@I4 +M;R!D97)I=F4@97%U871I;VX@7&5QW1H:7)D?2!W92!UVMO%QO('E<;R!Z*5Q<"CTF*"TQ*5Y[7&1E9R!X?2!D +M7WM#1'U<8FEG9R@*7'-U;5][:3TQ?5YC('A<;RA87VE<;&-O;G1R86-T('DI +M7&\H65Y<=V5D9V5?:5QC9&]T('HI7&)I9VVD],7U>8R!<"E<;UQB:6 +M7'=E9&=E7VE<8V1O="!Z*5Q<"CTF+5QS=6U?>UQG7&EN7$Y>8WT@7'-U;5][ +M:3TQ?5YC(`HH+3$I7GM<9&5G*&1?7&"DI?61?7&"E<;UQB:6"E<;RA87GM<9WU<;&-O;G1R86-T +M('DI(%QO('I<8FEG9RE<7`H])BU<8FEG*"@Q7T-<;R!D7WM$17TI*&1?>T-$ +M?5QO(#%?12E<8FEG*2AX7&\@>5QO('HI"EQE;F1[86QI9VXJ?0H*270@VLK7&5L;"!<;&4@7'=E +M9&=E*0I<<7%U861<=&5X='MF;W)]7'%Q=6%D('-<:6Y<6@I<70IW92!O8G1A +M:6X@82!B;W5N9&5D(&9I;'1R871I;VX@;V8@=&AE(&-O;7!L97@@)$8]("A# +M(%QO=&EM97-?02!$"EQO=&EM97-?02!%+&0I)"X@($]N('1H92!O=&AE>UQP"!D969I;F5D(&EN($QE +M;6UA(%QR969[,"AQ*3UR)"P@=V4@87)E(&1O;F4N"B!<<65D +M(%QE;F1[<')O;V9]"@I<T-O:&]M;VQO9WD@;W!EV9?,2`L(%QD;W1S+"!F7V-TMO"`D*$4L9%]% +M*20@;V8@0V]NG5L?2P@:&%S("1<2$A?;BA% +M*3TP)"!F;W(@)&X^,"0N("!!('-U9F9I8VEE;G0@8V]N9&ET:6]N(&9O<@I+ +M;W-Z=6PM2!IUQB +M;VQDW)EUQB;VQDUQB;VQD2!PV1?7&=<8V]L;VX@0UQT;R!#7'U? +M>UQG7&EN7$Y>8WTD(&)E(&$@9F%M:6QY(&]F("1!)"UL:6YE87(@;6%P2!4:&5OV=A=&AE'1[9VEV96X@8GE]7%P*7'!A%QO +M('DG*2`](%QS=6U?>UQG(%QI;EQ.7F-](&1?7&"D@7&\@*%A>>UQG?2!< +M;&-O;G1R86-T('DI)PI<96YD>V=A=&AEV5Q=6%T:6]N?0II +MG5L+7)E9W5L87(L('1H96X@ +M=&AE(&UA<"`*7&)E9VEN>V=A=&AE'1[9VEV96X@8GE]7%P*("`@('$G +M*'A<;R!Y)RD](%QB96=I;GMC87-E"D@)EQQ=6%D7'1E>'1[:68@)%QD962V]T +M:&5R=VES97T*("`@("`@("`@("`@("`@(%QE;F1[8V%S97-]"EQE;F1[9V%T +M:&5R*GT*:7,@82!R97-O;'5T:6]N(&]F("1-)"!B>2!PU)E;6%R:WT*7&QA8F5L>VAY<&5RV9?,5Q] +M)"X@(%1H92!M;V1U;&4*)$1?7&5L;"0@:7,@=&AE;B!T>RA<96QL+S(I?20@:68@)%QE +M;&PD(&ES(&5V96XN"E1H=7,L('1H92!R97-O;'5T:6]N("1#7&]T:6UES)N*S%]?0I<8FEG;W!L=7-?>VH],'U>7&EN9G1Y($-?>S)J?5QO=&EM +M97-?02!"65\Q7GLH;BUJ*7T*7'AR:6=H=&%RUQP87)T:6%L7WLR;GU] +M"EQB:6=O<&QU7TN"B!< +M96YD>U)E;6%R:WT*"EQB96=I;GMPV%N9'U<<7%U860* +M7'!A,CTP)"X@($9OV]F?5QQ<75A9"!&/4,@7&]T:6UE&5S("1&)"!A;F0@ +M)$8G)"P*>UQP6UB;VP@9B0@:7,@2V]S>G5L(')E9W5L87(L('1H96X@ +M)'!<8V]L;VX@15QT;R!")"!IVUA:6Y] +M(&9A8W1O;E]"*$TL3BDD(&%R92!A2!P7T@9F]R"G-O;64@*CT* +M7$AO;5]"*%QP87)T:6%L+$XI)"!O9B!T:&ES(&-O;7!L97@L(&AE;F-E('!A +M:RA1*20@9&5T97)M:6YE'1>;E]" +M*$TL3BE<>')I9VAT87)R;W=[7"!U7"!]7$5X=%Y[;BLR:WU?0BA-+$XI"EQQ +M<75A9%QT97AT>V9O2!T:&4*2V]S>G5L+7)E9W5L87(@U)E;6%R +M:WT*7&QA8F5L>V-A;F]N:6-A;'T*5&AE(&-A;F]N:6-A;"!I&5S(&]F("1!)"UM;V1U;&5S"EQB96=I;GME<75A=&EO +M;BI]"EQ(;VU?0BA#(%QO=&EM97-?02!$)RP@3BD]4R!<;W1I;65S7T$@7$AO +M;5]!*$,L($XI/0I3(%QO=&EM97-?02!<2&]M7T$H0RP@02D@7&]T:6UEU)E;6%R:WT*"E1H92!F;VQL;W=I;F<@9G5N9&%M96YT +M86P@2!I;7!O2!O<&5R871OV9I;FET +M96YE0IO<&5R871O2`D7&)O;&1S>6UB;VP@9B0N"@I) +M9B`D320@86YD("1.)"!A6UB;VP*9GTI)"P@86YD("1-)"!H87,@9FEN +M:71E('!R;VIE8W1I=F4@9&EM96YS:6]N(&]V97(@)$$D("AI;B!P87)T:6-U +M;&%R+`II9B`D020@:7,@2!296UAV-A;F]N:6-A +M;'TL('1H92!G2!G96YEW!R;V]F?0H*7&)E9VEN>U)E;6%R +M:WT*7&QA8F5L>VAIVAY<&5RT-).E-H?2P@=&AA="!O9B!4:&5OT-).D5I +M?2X@(%1H92!N97<@87-P96-T(&]F(&]UUQS;"!A9"!H;V-<+WTN("!);B!F86-T+"!I="!I'!E8W1E9&QY(&1E;&EC871E"G!R;V)L96TN("!)="!W87,@9FEN86QL +M>2!R97-O;'9E9"!I;B!<8VET97M#23I-4C(P,#!E.C$S,#(Q?2P@=VAE'1>7&)U7T$H32Q.*20@:7,@;F]E=&AEVYO=&%T:6]N?0I<;&%B96Q[9W)A9&5D('-T +M=69F?0I4:&4@9F]L;&]W:6YG(&ES(&%SVET96UI>F5]"EQI=&5M6R1<8G5L;&5T)%T* +M)$LD(&ES(&$@9FEE;&0N"EQI=&5M6R1<8G5L;&5T)%T*)%Q[>%]H7"Q<=F5R +M=%PL7&1E9R%]H*3XP7'U?>V@],2Q<9&]T%\Q +M+%QD;W1S+'A?92E>,B0N"B4E"B4E($QU8VAO+"!W:'D@9&\@=V4@=V%N="!T +M:&4@9B=S('1O(&)E(&]F(&1E9W)E92!A="!L96%S="`R/PHE)0I<:71E;5LD +M7&)U;&QE="1="B1R7VD]7&1E9RVD],2Q<9&]T%]E*4(D+"!W:71H(&1E9W)E92!I;F1U8V5D(&)Y("1<9&5G)R0N"EQI=&5M +M6R1<8G5L;&5T)%T*)%(]4UQO=&EM97-?02!K7&-O;F<@2UM87S$L7&1O=',L +M6%]C720L('=I=&@@8FED96=R964@:6YD=6-E9"!B>0HD7$1E9R0N"EQE;F1[ +M:71E;6EZ97T*(%QE;F1[;F]T871I;VY]"@I<8F5G:6Y[4F5M87)K?0I5;F1E +MW)EUQI=`IM:6YI +M;6%L7"]]("1!)"UF2!F;VQL;W=S+@H@7&5N +M9'M296UAV-U8F5]+@I<8F5G:6Y/ +M=71P=70*:3,X(#H@32`]($)>,2]M7C,[7%P*7&5N9$]U='!U=`I<8F5G:6Y/ +M=71P=70*:3,Y(#H@1B`](')EVAY<&5R'0@86-Q=6ER92!A;B!E>'1R82!G"X*5&AE(&YO=&EO;G,@8F5L;W<@ +M87)E('5S960L(&)U="!N;W0@;F%M960L(&EN(%QC:71E>T-).D%",GT@:6X@ +M82!L;V-A;`IS:71U871I;VXN"@I<8F5G:6Y[4F5M87)K?0I<;&%B96Q['1]"E=E(&1E9FEN92!T:&4@>UQI=%QI97MR961U8V5D($5X="!M +M;V1U;&5]7"]](&9O'1>7&)U7T(H32Q.*3U<17AT7EQB=5]"*$TL3BE<;W1I;65S7T%K"EQ="E=I +M=&@@=&AE(&EN9'5C960@8FEG2!M:6YI;6%L('-E="!O9@IG96YEUQI=%QI97M% +M>'0M9V5N97)A=&]R('-EV=A=&AE'1>;E]"*$TL3BE?>W-]7"P@=%YN('5>>RUS?0I<:6Y<6EMU+'5>>RTQ +M?5U;6W1=75Q<"EQG96Y?0EY[32Q.?2AT*3T*7'-U;5][;CTP?5Y<:6YF='E< +M9&EM7TL@7')%>'1>;E]"*$TL3BE<+"!T7FX*7&EN7%I;6W1=70I<96YD>V=A +M=&AE>TTL3GTH="PQ +M*20N"B!<96YD>U)E;6%R:WT*"EQB96=I;GMC;W)O;&QA>TTL3GTH="QU*7U[*#$M=%XR=5Y['1[=VET:'U<<7%U860@9U]"7GM-+$Y] +M*'0L=2E<:6Y<6EMT+'4L=5Y[+3%]70I<96YD>V5Q=6%T:6]N*GT*7&5N9'MC +M;W)O;&QAT-O;7!U=&%T:6]N +M(&]F($5X="!-;V1U;&5S?0I<;&%B96Q[0V]M<'5T871I;VX@;V8@17AT(&UO +M9'5L97-]"@I4:&ES('-E8W1I;VX@8V]N=&%I;G,@=&AE(&UA:6X@;F5W(&-O +M;7!U=&%T:6]N86P@2!I +M;B!A;&P@9&5GV%C=&EO;GTN +M"@I-;W)E('!R96-I2P@=&AE(&EN<'5T(&-O;G-I2!G96YE2!O;F4@;V8@=&AE;E]"*$TL3BDD(&AA=F4*:&]M;VQO9VEC86P@ +M9&5G6EN9R!E<75A=&EO +M;B!<97%R969[9F%M:6QY?2!F;W(@)%QG7&EN7$Y>8R0@=VET:"`D?%QG?#XP +M)"!AUQT="!N=6QL:&]M +M;W1O<'E](&]F('1H92!<371W;R!L86YG=6%G92!I;@IA(&QO;W`@=&AA="!F +M;VQL;W=S('1H92!F:7)S="!P87)T(&]F('1H92!P"`D +M9%XJ7WM<9RQN?20@>6EE;&1S(&%N(&5N9&]M;W)P:&ES;2!O9B!T:&4@9G)E +M90IB:6=R861E9"`D020M;6]D=6QE("1#7BH]7&)I9V]P;'5S7WMN/3!]7F4@ +M7$AO;5]!*$-?;BQ!*20@;V8@VX] +M,'U>95QR86YK7T$@0U]N)"X@(%1H92`D;5QT:6UEUQG+&Y])"!D97-CUQT="!TVX],'U>92@M,2E>>VXK,GQ<9WPM,7T*7'-U +M;5][7'-U8G-T86-K>UQG7&EN7$Y>8UQ<('Q<9WQ<;&4H92UN*S$I+S)]?0I8 +M7GM<9WU<8V1O=%QW:61E=&EL9&4@9%][7&*@I<70IW:71H(&5N=')I +M97,@:6X@)%,]05M87S$L7&1O=',L6%]C720@9&5F:6YEUQT=`IH;VUO;&]G>7U<:6YD97AC;61[:&]M;VQO +M9WE]+@H@7&5N9'M296UA>UQT97AT>V]D9'U])"!O9B!B:6=R861E9"`D4R0M;6]D +M=6QE"DD+@H*5V4@8F5G:6X@=VET:"!A;B!E>&%M<&QE(&EN(&-O9&EM +M96YS:6]N(#$L('=H97)E(&ET(&ES('!O&%M<&QE?0I#;VYS:61E%TD('=H97)E('1H92!V87)I86)L92`D>"0@:7,@87-S +M:6=N960@9&5G,RDD+B`@5&AE +M(&)I9W)A9&5D(')I;F<@;V8@8V]H;VUO;&]G>2!O<&5R871O%TD+"!W:&5R92`D7$1E9RA8*3TH+3(L+3$U*20@86YD("1< +M1&5G('@]*#`L-2DD+@H*1F]R('1H92`D0B0M;6]D=6QE +M,BDD(&%N9"`D3B`]($(O*'@I)"P@=&AE(&)I9W)A9&5D"B13)"UM;V1U;&4@ +M)$@]7$5X=%Y<8G5?0BA-+$XI)"!I"DI7&]P;'5S("A3+RAX*2E;,2PQ +M,%T*7%T*"D$@;6EN:6UA;"!F%PL?2!"6RTR +M-5T@7'AR:6=H=&%RUP@>%XR7"Q](`H@0ELM,35=(%QX%PL?2!"6RTQ,%T@7'AR:6=H=&%RUP@>%XR7"Q](`H@0B!<;&]N +M9W)I9VAT87)R;W<@,`I<72`*5&AI7!E')I9VAT87)R;W=[7"!X7C)<+'T@00I< +M;&]N9W)I9VAT87)R;W<@,`I<70IO9B`D320@;W9EUQE7S%])"!D:7-P;&%Y960@:6X@=&AE(&1I86=R +M86T*7%L*7'AY;6%TPHP(%QA+7MX +M7C)](%QA,WT@)B!!(%QA>RUX7C-]"B`@ +M("`@("`@7&%R6V1L75\M>RUX?2`F(#`@7%P*,"!<87);%XR?2`@("`@("`@("`@("`@)B!!(%QA2!O9B!T:&4*8V]M<&QE>`I<6PI<2&]M7U(H1BQ.*2`](%QQ=6%D +M(#`@7'AR:6=H=&%RUP@7"!]"DX@7'AR:6=H=&%RUP@,%P@?2!. +M6S$P72!<>')I9VAT87)R;W=[7"`P7"Q]"DY;,35=(%QXUP@,%PL?2`*3ELS,%T@7&QO;F=R +M:6=H=&%R2P@)$Y;,3!I*S$P720@=&\@)$Y; +M,3!I*S(U720I(&)Y('1H92!I9&5N=&ET>2!M87`N("!4:&ES"F1E,BD[ +M7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:30V(#H@3B`]($)>,2\H>"D[ +M7%P*7&5N9$]U='!U=`I5'0H32Q.*3M<7`I< +M96YD3W5T<'5T"E=E(&UA>2!L;V]K(&%T('1H92!R:6YG+@I<8F5G:6Y/=71P +M=70*:30X(#H@4QI;F4*;S0X(#H@4&]L>6YO;6EA;%)I;F=< +M7`I<96YD3W5T<'5T"EQ-='=O(&AA2P@ +M;V)T86EN('1H92!V87)I86)L92!B>2!E;G1E&EN9R!I;B!<371W;R!S=&%R=',@=VET +M:"`D,"0@UQ[+3(L("TQ-5Q]+"!<>S`L(#5S`L(#!"!\7%P*7"`@("`@("`@("`@("`@(%Q[+3$L +M("TQ,%Q]('P@>"`P('Q<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@(#)<7`IO-3$@.B!3+6UO9'5L92P@<75O=&EE;G0@;V8@ +M4UQ<"EQE;F1/=71P=70*16%C:"!R;W<@:6X@=&AE(&1IT5X86UP +M;&5]"@I,970G2!T;R!D;R!B>2!H86YD+"!B=70@8V%N(&)E(&-H96-K960@=7-I;F<@=&AE +M('1H96]R>2!I;@I<8VET97M#23I-4C$W-S0W-3=]+@H*7&)E9VEN>T5X86UP +M;&5]"D)E9VEN(&)Y(&-O;G-T5TD+@I<8F5G:6Y/=71P=70*:34R(#H@02`]($M;>"QY73M<7`I< +M96YD3W5T<'5T"DYO=R!W92!P%XS+'E>,BDD+@I<8F5G:6Y/=71P +M=70*:34S(#H@2B`](&ED96%L*'A>,RQY7C(I.UQ<"EQE;7!T>4QI;F4*;S4S +M(#H@261E86P@;V8@05Q<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDU-"`Z +M($(@/2!!+TH[7%P*7&5N9$]U='!U=`I792!T86ME("1.)"!T;R!B92!T:&4@ +M)$(D+6UO9'5L92`D0B\H>%XR+'AY*20N"EQB96=I;D]U='!U=`II-34@.B!. +M(#T@8V]K97)N96P@;6%TWA>,BQX*GE'1>7&)U7T(H3BQ.*20@:7,@82!B:6=R +M861E9"!M;V1U;&4*;W9EV%L:6=N870J?7LR +M?0I<1&5G*%A?,2DF/2@M,BPM,RE<<75A9"`F7$1E9RA87S(I)CTH+3(L+3(I +M7%P*7$1E9RAX*28]*#`L,2D@("`@("`@("9<1&5G*'DI)CTH,"PQ*0I<96YD +M>V%L:6=N870J?0I5'1[979E;GU]7&-O;F<@7&9R86-[4WU[*'A>,BQX>2QY +M7C(L>%A?,2QY6%\Q*7T*("`@("`@("!<;W!L=7,@7&9R86-[4WU[*'@L>2E] +M6S(L,EU<7`I(7GM<=&5X='MO9&1]?2!<8V]N9R!<;&5F="A<9G)A8WM3?7LH +M>"QY+%A?,2E]"EQO<&QU"QY*7U<V=A=&AE +M>VE]7&]P;'5S"EQB:6=O<&QU>VDM:'U<;W!L=7,*7&)I9V]P;'5S7WMH/3!]7GMI+3%]:ULR75QC9&]T +M(%A?,5Y[:'U87S)>>VDM,2UH?5Q<"EQ%>'1?0EY[,FDK,7TH3BQ.*5QC;VYG +M"EQB:6=G*&M;,5U<8V1O="!87S)>>VE]7&]P;'5S"EQB:6=O<&QU2!T:&4@=')A;G-P;W-E(&]F('1H92!M871R:7@@;V8@=F%R +M:6%B;&5S+@I<8F5G:6Y/=71P=70*:34Y(#H@=')A;G-P;W-E('9A4QI;F4*;S4Y(#T@7'LR+"`R7'T@('P@7"187S$@?%Q<"EP@("`@ +M("!<>S(L(#-S`L("TQ7'T@?"!Y("`@('Q<7`I<96UP='E,:6YE +M"EP@("`@("`@("`@("`@(#0@("`@("`@,5Q<"F\U.2`Z($UA=')I>"!3("`\ +M+2TM(%-<7`I<96YD3W5T<'5T"E1H92!I;G1E2!C;VUE"F%S +M(&$@4QI;F4*7"`@("`@ +M("`@("`@("`@,B`@(#-<7`IO-C`@/2!I9&5A;"`H>2`L('@@*5Q<"EQE;7!T +M>4QI;F4*;S8P(#H@261E86P@;V8@05Q<"EQE;F1/=71P=70*3F]T:6-E('1H +M870@7$UT=V\@:&%S(')E;W)D97)E9"!T:&4@;W)I9VEN86P@,R0L(&ES"F1E;F]T960@ +M>UQT="!87&-H87)@7%\R?2!B>2!<371W;RP@86YD('1H870@)%A?,B0L('=H +M:6-H(&-OUQT="!87&-H +M87)@7%\Q?2X@(%1H:7,@97AP;&%I;G,@=&AE(&)I9&5G2`D2"0N"EQB96=I;D]U='!U=`II-C$@ +M.B!(7%P*7&5M<'1Y3&EN90IO-C$@/2!C;VMERTR+"`M,EQ]('P@ +M,"`P(#`@,"`P(#`@,"`P(#`@(#`@(#`@('D@>"`P("`@(#`@("`@,"`@("`@ +M)%QC9&]T7&-D;W1<8V1O="1<7`I<("`@("`@("`@("`@("`@7'LM,2P@+3%< +M?2!\('D@,"`P(#`@,"!X(#`@,"`P("`P("`P("`P(#`@7"187S$@,"`@("`P +M("`@("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("!<>RTQ +M+"`M,5Q]('P@,"`P(#`@>2`P(#`@,"!X(#`@(#`@(#`@(#`@,"`P("`@(%PD +M6%\Q(#`@("`@("1<8V1O=%QC9&]T7&-D;W0D7%P*7"`@("`@("`@("`@("`@ +M(%Q[+3$L("TQ7'T@?"`P('D@,"`P('@@,"`P(#`@,"`@,"`@,"`@,"`P(#`@ +M("`@,"`@("`P("`@("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@ +M("`@("!<>RTQ+"`M,5Q]('P@,"`P('D@,"`P(#`@>"`P(#`@(#`@(#`@(#`@ +M,"`P("`@(#`@("`@,"`@("`@)%QC9&]T7&-D;W1<8V1O="1<7`I<("`@("`@ +M("`@("`@("`@7'LP+"`P7'T@("!\(#`@,"`P(#`@,"`P(#`@,"!Y,B!X>2!X +M,B`P(#`@,"`@("`P("`@(%PD6%\Q>2`D7&-D;W1<8V1O=%QC9&]T)%Q<"EQE +M;7!T>4QI;F4*7"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@-EQ<"F\V +M,2`Z(%,M;6]D=6QE+"!Q=6]T:65N="!O9B!37%P*7&5N9$]U='!U=`I4:&%T +M)W,@82!B:70@;&%R9V4L('-O('=E('=A;G0@=&\@;&]O:R!A="!T:&4@979E +M;B!A;F0@;V1D('!A2!I;B!T:&4@<')E9&EC871E('1O(&)E(&%P<&QI960L('=E(&-A;B!G +M96YE'1[979E;GU])"P@S`L(#!3(@ +M>'D@>#(@,"`P(%PD6%\Q>2!<)%A?,7@@?%Q<"EQE;7!T>4QI;F4*7"`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@,EQ<"F\V-2`Z(%,M;6]D=6QE+"!Q +M=6]T:65N="!O9B!37%P*7&5N9$]U='!U=`I$;R!T:&4@'1[;V1D?7TD+@I<8F5G:6Y/=71P +M=70*:38V(#H@;V1D4&%R="!(7%P*7&5M<'1Y3&EN90IO-C8@/2!C;VMERTQ+"`M,5Q]('P@,"`P('D@,"`P(#`@>"`P(#`@("`@,"`@("!\7%P* +M7"`@("`@("`@("`@("`@(%Q[+3$L("TQ7'T@?"`P('D@,"`P('@@,"`P(#`@ +M,"`@("`P("`@('Q<7`I<("`@("`@("`@("`@("`@7'LM,2P@+3%"`P("`@(%PD6%\Q('Q<7`I<("`@("`@("`@("`@("`@ +M7'LM,2P@+3%UQT="!%>'1]+B`@270@:7,*:6YC;W)P;W)A=&5D(&EN=&\@7$UT +M=V\N"@I<8F5G:6Y[8V]D97T*7&QA8F5L>VUA2!O9B!T:&4@T5X='T*7&)E +M9VEN3W5T<'5T"FDV-R`Z('!R:6YT(&-O9&4H17AT+$UO9'5L92Q-;V1U;&4I +M7%P*+2T@+BXO+BXO+BXO;3(O97AT+FTR.C@R+3$W,5Q<"D5X="A-;V1U;&4L +M36]D=6QE*2`Z/2!-;V1U;&4@/3X@*$TL3BD@+3X@*%Q<"EP@(&-A8VAE36]D +M=6QE(#H]('EO=6YG97-T*$TL3BD[7%P*7"`@8V%C:&5+97D@.CT@*$5X="Q- +M+$XI.UQ<"EP@(&EF(&-A8VAE36]D=6QE(S]C86-H94ME>2!T:&5N(')E='5R +M;B!C86-H94UO9'5L92-C86-H94ME>3M<7`I<("!"(#H](')I;F<@33M<7`I< +M("!I9B!"(#TA/2!R:6YG($Y<7`I<("!T:&5N(&5R'!E8W1E9"!M +M;V1U;&5S(&]V97(@=&AE('-A;64@'0G(&YO="!I;7!L96UE +M;G1E9"!Y970@9F]R(&YO;F-O;6UU=&%T:79E(')I;F=S+B([7%P*7"`@:68@ +M;F]T(&ES2&]M;V=E;F5O=7,@0EQ<"EP@('1H96X@97)R;W(@(B=%>'0G(')E +M8V5I=F5D(&UO9'5L97,@;W9E'0G(')E8V5I=F5D(&%N(&EN:&]M +M;V=E;F5O=7,@;6]D=6QE(CM<7`I<("!I9B!.(#T](#`@=&AE;B!"7C!<7`I< +M("!E;'-E(&EF($T@/3T@,"!T:&5N($)>,%Q<"EP@(&5L2!F;W(@8V]M<&QE=&4@:6YT97)S96-T:6]NUQC:&%R8%QUQC:&%R8%Q6UB;VQS+%Q<"EP@("`@("!$96=R965S(#T^(%Q[7%P* +M7"`@("`@("`@87!P;'DH,"`N+B!C+3$L(&D@+3X@7'LM,BP@+2!F:7)S="!D +M96=R964@9E]I7'TI+%Q<"EP@("`@("`@(&%P<&QY*#`@+BX@;BTQ+"!J("T^ +M(%Q[(#`L("`@9FERRT@9G5D9V4@*B!V(S`@*R!V(S$L +M("T@=B,P7'TL7%P*7"`@("`@(%)E<&%IS)UQ]+"!<>UQ]*2!2AF86-T;W)I>F%T:6]N'!O;F5N=',@>UQC:&%R8%QUQC:&%R8%QF5R;R!N=6QL:&]M;W1O<&EE2AT;TQI2!M +M;V1U;&5<7`I<("`@(&-A8VAE36]D=6QE(V-A8VAE2V5Y(#T@<')U;F4@:&]M +M;VQO9WDH1&5L=&%"87(L1&5L=&%"87(I*2E<7`I<96YD3W5T<'5T"EQE;F1[ +M8V]D97T*"EQB96=I;GM296UAW)E +MV)I9W)A9&EN9WT@'1>7&)U7T(H32Q.*20N("!)9B!O;F4@ +M;V8@=&AE(&UO9'5L97,@:&%S(&9I;FET92!L96YG=&@L('1H96X*96%C:"`D +M7%1OF5D(&%S('9E8W1O<@IS<&%C92!D=6%L:71Y(&]V97(@=&AE(&9I96QD +M("1+)"X@($AO=V5V97(L(&EN(&AO;6]L;V=Y('1H97)E(&ES(&YO"F5Q=6EV +M86QE;G0@9F]R('1H92!F:6YI=&5N97-S('!R;W!EU)E;6%R +M:WT*"EQS96-T:6]N>TEN=F%R:6%N=',@;V8@36]D=6QETEN +M=F%R:6%N=',@;V8@;6]D=6QE2!O=7(@=&5C:&YI<75E2!M;V1U;&5S+"!0;VEN8V%R7"=E"G-E2!T:')O=6=H;W5T +M('1H92!S96-T:6]N+@H*7'-U8G-E8W1I;VY[0V]H;VUO;&]G>2!-;V1U;&5S +M?0I<;&%B96Q[0V]M<'5T871I;VX@;V8@8V]H;VUO;&]G>7T*"E=E(&-A;&P@ +M=&AE(&)I9W)A9&5D("12)"UM;V1U;&4@)%`]7$5X=%Y<8G5?0BA-+&LI)"!T +M:&4*>UQI=%QI97MC;VYTV-O=F%R:6%N=`IC +M;VAO;6]L;V=Y(&UO9'5L97U<+WT@;V8@)$TD+B`@($-O9&5S('1H870@9&ES +M<&QA>2!PET[7%P*7&5N +M9$]U='!U=`I<8F5G:6Y/=71P=70*:38Y(#H@2B`]('1R:6T@:61E86PH>%XS +M+'E>-"QZ7C4I7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`S("`@-"`@ +M(#5<7`IO-CD@/2!I9&5A;"`H>"`L('D@+"!Z("E<7`I<96UP='E,:6YE"F\V +M.2`Z($ED96%L(&]F($%<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II-S`@ +M.B!"(#T@02]*.UQ<"EQE;F1/=71P=70*5V4@=')I;6UE9"!T:&4@:61E86PL +M('-O('1H870@=V4@:VYO=R!T:&4@9V5N97)A=&]R3(M,C-X>BTV>7HM,3EZ,B`S.'@R>2TS-'AY,BLT>3,K>#)Z*S$V>'EZ+7DR +M>BTU>'H@)%QC9&]T7&-D;W1<8V1O="1<7`I<("`@("`@?"`M-7@R*S0T>'DK +M,SAY,BLT,'AZ*S$U>7HK-'HR("TS-W@R>2LU,7AY,BTS-GDS*S(V>#)Z+3,X +M>'EZ+3$W>2`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@("!\(#(Q>#(M,S!X +M>2LS,GDR+30W>'HK-WEZ+34P>C(@+39X,GDM,31X>3(M,C9Y,RTW>#)Z*S0Q +M>'EZ*S4P>3)Z("1<8V1O=%QC9&]T7&-D;W0D7%P*7&5M<'1Y3&EN90I<("`@ +M("`@("`@("`@("`S("`@("`@(#)<7`IO-S$@.B!-871R:7@@0B`@/"TM+2!" +M7%P*7&5N9$]U='!U=`I792!C86XG="!R96%D('1H92!S96-O;F0@8V]L=6UN +M(&]F('1H870@;6%T#)Y+3,T>'DR*S1Y,RMX,GHK,39X>7HM>3)Z+35X>C(M-GEZ +M,BLT-WHS("`@("`@("!\7%P*7"`@("`@('P@+3,W>#)Y*S4Q>'DR+3,V>3,K +M,C9X,GHM,SAX>7HM,3=Y,GHK,3=X>C(M,3%Y>C(K.'HS('Q<7`I<("`@("`@ +M?"`M-G@R>2TQ-'AY,BTR-GDS+3=X,GHK-#%X>7HK-3!Y,GHK,C9X>C(K-#9Y +M>C(M-#1Z,R`@?%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`@,R`@("`@ +M("`Q7%P*;SV=A=&AE>UQT97AT>V5V96Y]?2!<8V]N9R!26S0L,3!= +M(%QO<&QUU)]>RA87S$L6%\R+%A?,RE]7')I9VAT*5XS7&]P;'5S(%)>-%LR+#== +M7%P*4%Y[7'1E>'1[;V1D?7T@7&-O;F<@7&9R86-[4GU[*%A?,2Q87S(L6%\S +M*7U;,2PR70H@("`@("`@(%QO<&QUU)]>RA87S$I?5QR +M:6=H="E>,ULS+#E="B`@("`@("`@7&]P;'5S(%QFU)]>RA87S$L6%\R +M*7U;,2PS72!<;W!L=7,@4EXV6S,L.5T*7&5N9'MG871H97(J?0IO=F5R('1H +M92!P;VQY;F]M:6%L(')I;F<@)%(]2UM87S$L6%\R+%A?,UTD(&]V97(@)$LD +M+"!B:6=R861E9"!B>0I<6PI<1&5G*%A?,2D]*"TR+"TS*5QQ<75A9"!<1&5G +M*%A?,BD]*"TR+"TT*2!<<7%U860@7$1E9RA87S,I/2@M,BPM-2D*7%T*"DQE +M="=S(&-O;7!U=&4@)%Q%>'1>7&)U7T(H32Q"+RAX+'DL>BDI)"!B>2!T:&4@ +MBDI.UQ<"EP@("`@("TM('5S960@,2XV-"!S96-O;F1S7%P* +M7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3UQI="!O<'!OS(L(#5S`L("TQ7'T@?"!Y("`@('Q<7`I< +M("`@("`@7'LP+"`M,5Q]('P@>B`@("!\7%P*7&5M<'1Y3&EN90I<("`@("`@ +M("`@("`@("`V("`@("`@(#%<7`IO-S8@.B!-871R:7@@4R`@/"TM+2!37%P* +M7&5N9$]U='!U=`I4:&4@=F%R:6%B;&5S("1X)"P@)'DD+"!A;F0@)'HD(&]F +M("1!)"!A;FYI:&EL871E("10)"P@86YD('-O(&%P<&5AF4@;V8@RTR+"TU7'UUA? +M,2Q87S(L6%\S+#`L,"PP7'TI7%P*7&5M<'1Y3&EN90IO-S@@/2!M87`H4BQ3 +M+%Q[6"`L(%@@+"!8("P@,"P@,"P@,%Q]*5Q<"EP@("`@("`@("`@("`@("`@ +M,2`@(#(@("`S7%P*7&5M<'1Y3&EN90IO-S@@.B!2:6YG36%P(%(@/"TM+2!3 +M7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3S(L(#-< +M?2!\(%A?,2!\7%P*7"`@("`@(%Q[,BP@-%Q]('P@6%\R('Q<7`I<("`@("`@ +M7'LR+"`U7'T@?"!87S,@?%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`@ +M,R`@("`@("`Q7%P*;S@P(#H@36%T"0L +M("1Y)"P@)'HD+"!W:&EC:"!A8W0*=')I=FEA;&QY(&]N('1H92!C;VAO;6]L +M;V=Y+"!A4QI;F4*;S@Q(#T@8V]K97)N96P@7'LM-"P@ +M+3$P7'T@?"`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P +M("`@('Q<7`I<("`@("`@("`@("`@("`@7'LM-"P@+3$P7'T@?"`P("`@,"`@ +M(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`M6%\R('Q<7`I<("`@("`@ +M("`@("`@("`@7'LM-"P@+3$Q7'T@?"`P("`@,"`@(#`@("`P("`@,"`@(#`@ +M("`P("`@,"`@(#`@("!87S$@('Q<7`I<("`@("`@("`@("`@("`@7'LP+"`P +M7'T@("`@?"`P("`@,"`@(%A?,R`P("`@,"`@(%A?,B`P("`@6%\Q(#`@("`P +M("`@('Q<7`I<("`@("`@("`@("`@("`@7'LP+"`P7'T@("`@?"`P("`@6%\S +M(#`@("`P("`@6%\R(#`@("!87S$@,"`@(#`@("`P("`@('Q<7`I<("`@("`@ +M("`@("`@("`@7'LP+"`P7'T@("`@?"!87S,@,"`@(#`@("!87S(@,"`@(#`@ +M("`P("`@,"`@(%A?,2`P("`@('Q<7`I<("`@("`@("`@("`@("`@7'LM,BP@ +M+3=RTS+"`M.5Q]('P@,"`@(#`@("`P("`@,"`@(#`@ +M("!87S$@,"`@(#`@("!\7%P*7"`@("`@("`@("`@("`@(%Q[+3,L("TY7'T@ +M?"`P("`@,"`@(#`@("`P("`@6%\Q(#`@("`P("`@,"`@('Q<7`I<("`@("`@ +M("`@("`@("`@7'LM,2P@+3-RTS+"`M.5Q]('P@,"`@ +M(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("!\7%P*7"`@("`@("`@("`@ +M("`@(%Q[+3,L("TY7'T@?"`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@ +M,"`@('Q<7`I<("`@("`@("`@("`@("`@7'LM,RP@+3ERTS+"`M.5Q]('P@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("!\ +M7%P*7"`@("`@("`@("`@("`@(%Q[+3,L("TY7'T@?"`P("`@,"`@(#`@("`P +M("`@,"`@(#`@("`P("`@,"`@('Q<7`I<("`@("`@("`@("`@("`@7'LM,RP@ +M+3E4QI;F4*7"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@,3%<7`IO +M.#(@.B!2+6UO9'5L92P@<75O=&EE;G0@;V8@4EQ<"EQE;F1/=71P=70*5&AE +MW-%>&%M<&QE?0H* +M5&AE('!R;V-E9'5R92!A8F]V92!C86X@8F4@875T;VUA=&5D(&)Y(&EN7&)U*$TL:RDD(&%S(&$@8FEGV-H86YG97T*5&AE(&9U;F-T:6]N('M< +M='0@8VAA;F=E4FEN9R!(?2!T86ME2!C;VYS=')U +M8W1I;F<@)%(D(&%N9"!A(')I;F<@:&]M;VUOV-O:&]M;VQO9WE]"E1H92!F=6YC=&EO;B![7'1T +M($5X="A-+&LI?2!C;VUP=71E'!E8W1E +M9"!T:&4@'0H32QC;VME'1[;V1D?7TD+@I<8F5G:6Y/=71P=70*:3@U(#H@=7-E($([ +M7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3@V(#H@:R`]($(O*'@L>2QZ +M*3M<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II.#<@.B!URTS+"`M.5Q]('P@ +M,"`@(#`@("`P("`@,"`@(#`@("`P("`@6%\Q(#`@("!\7%P*7"`@("`@("`@ +M("`@("`@(%Q[+3,L("TY7'T@?"`P("`@,"`@(#`@("`P("`@,"`@(%A?,2`P +M("`@,"`@('Q<7`I<("`@("`@("`@("`@("`@7'LM,RP@+3ERTQ+"`M,UQ]('P@,"`@(%A?,B`P("`@6%\Q(#`@("`P("`@,"`@(#`@ +M("!\7%P*7"`@("`@("`@("`@("`@(%Q[+3,L("TY7'T@?"`P("`@,"`@(#`@ +M("`P("`@,"`@(#`@("`P("`@,"`@('Q<7`I<("`@("`@("`@("`@("`@7'LM +M,RP@+3ERTS+"`M.5Q]('P@,"`@(#`@("`P("`@,"`@ +M(#`@("`P("`@,"`@(#`@("!\7%P*7"`@("`@("`@("`@("`@(%Q[+3,L("TY +M7'T@?"`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@('Q<7`I<("`@ +M("`@("`@("`@("`@7'LM,RP@+3ERTS+"`M.5Q]('P@ +M,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("!\7%P*7&5M<'1Y3&EN +M90I<("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`D7&-D;W1<8V1O=%QC9&]T +M)%Q<"F\X.2`Z($L@6U@@+"!8("P@6"`L($1E9W)E97,@/3X@7'M<>RTR+"`M +M,UQ]+"!<>RTR+"`M-%Q]+"!<>RTR+"`M-5Q]7'U=+6UO9'5L92`D7&-D;W1< +M8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@,2`@(#(@("`S("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("1<8V1O +M=%QC9&]T7&-D;W0D7%P*7&5N9$]U='!U=`I<96YD>W-%>&%M<&QE?0H*5V4@ +M86QS;R!I;G1R;V1U8V4@8V]D92!F;W(@8V]M<'5T:6YG('1H92!C;W9A2!M;V1U;&5S+@H*7&)E9VEN>W-#;V1E?0I<;&%B96Q[ +M8V]V87)I86YT+6-O:&]M;VQO9WE]"E1H92!F=6YC=&EO;B![7'1T($5X="AK +M+$TI?2!C;VUP=71E'!E8W1E9"!T:&4@ +M'0H8V]K97(@=F%RW-%>&%M<&QE?0I&;W(@)$(D(&%N9"`D +M320@9G)O;2!%>&%M<&QE(%QR969[RTQ+"`U7'T@?"`S6%\S("`@+30P6%\S(#A87S,@("`X +M6%\S("`@,"`@("`@,"`@("`@(#`@("`@)%QC9&]T7&-D;W1<8V1O="1<7`I< +M("`@("`@("`@("`@("`@7'LM,2P@-5Q]('P@+5A?,R`@(#,W6%\S("`M,3-8 +M7S,@+3,U6%\S(#`@("`@(#`@("`@("`P("`@("1<8V1O=%QC9&]T7&-D;W0D +M7%P*7"`@("`@("`@("`@("`@(%Q[+3$L(#1RTQ+"`T7'T@?"`P("`@("`@-3%8 +M7S(@(#`@("`@("`M,S!87S(@,"`@("`@-3%87S$@(#`@("`@)%QC9&]T7&-D +M;W1<8V1O="1<7`I<("`@("`@("`@("`@("`@7'LM,2P@-%Q]('P@,"`@("`@ +M(#$R6%\R("`P("`@("`@+3-87S(@(#`@("`@(#$R6%\Q("`P("`@("1<8V1O +M=%QC9&]T7&-D;W0D7%P*7"`@("`@("`@("`@("`@(%Q[+3$L(#1RTQ+"`T7'T@ +M?"`T-5A?,B`@,C187S(@("TQ-%A?,B`M,S587S(@-#587S$@,C187S$@("TQ +M-%@@)%QC9&]T7&-D;W1<8V1O="1<7`I<("`@("`@("`@("`@("`@7'LM,2P@ +M-%Q]('P@,"`@("`@(#`@("`@("!87S(@("`@,"`@("`@(#`@("`@(#`@("`@ +M("!87S$@("1<8V1O=%QC9&]T7&-D;W0D7%P*7"`@("`@("`@("`@("`@(%Q[ +M+3$L(#1RTQ+"`T7'T@?"`P("`@("`@+30P6%\R(#`@("`@("`Q,%A?,B`@,"`@ +M("`@+30P6%\Q(#`@("`@)%QC9&]T7&-D;W1<8V1O="1<7`I<("`@("`@("`@ +M("`@("`@7'LM,2P@-%Q]('P@,"`@("`@(%A?,B`@("`P("`@("`@,"`@("`@ +M(#`@("`@(%A?,2`@("`P("`@("1<8V1O=%QC9&]T7&-D;W0D7%P*7"`@("`@ +M("`@("`@("`@(%Q[+3$L(#-4QI;F4*7"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@)%QC9&]T7&-D +M;W1<8V1O="1<7`IO.3,@.B!+(%M8("P@6"`L(%@@+"!$96=R965S(#T^(%Q[ +M7'LM,BP@+3-U!O:6YC87)<)V4@4V5R:65S?0I<;&%B96Q[4&]I +M;F-A +M0BA-*20@;V8@9&ER96-T('-U;6UA;F1S(&ES;VUO;E]"*$TL:RE?>W-]"EQ="E1H92![7&ET7&EE>V=R +M861E9"!0;VEN8V%R7"=E('-E0E]-*'0L=2D]7'-U +M;5][;EQI;EQ.7"PL7"QS7&EN7%I]7&)?>VYS?5Y"*$TI7"P@=%YN('5>>RUS +M?0I<:6Y<6EMU+'5>>RTQ?5U;6W1=70I<70I)="!IVAI;&)E +M+3%W-#;V1E?0H*5&AE("1N)'1H('M< +M:71<:65[0F5T=&D@;G5M8F5R?5PO?2`D7&)>0E]N*$TI)"!O9B`D320@;W9E +MU!O:6YC87)<)V4@5QB7D)?>VYS?2A-*0I<<7%U861<=&5X='MA;F1] +M7'%Q=6%D"EQ0;VE>0E]-*'0I/5Q0;VE>0E]-*'0L,2D*7%T*06-C;W)D:6YG +M;'DL('1H92!C;V1E(&9O0E]-*'0L=2DD('1H92!V87)I86)L92`D=20@8GD@)#$D+@H* +M7&)E9VEN>W-#;V1E?0I4:&4@9G5N8W1I;VX@>UQT="!P;VEN8V%R95-EW-#;V1E?0H*3F]W(&QE="=S('5S92!T:&5S92!C;V1EGEG +M>7T*5&\@9V5T(&$@;6]D=6QE('=H;W-E($)E='1I('-E<75E;F-E(&EN:71I +M86QL>2!D96-R96%S97,L('=E(&9O6=Y"FEN(&$@;6EN:6UA;"!I;FIE8W1I=F4@2!T86MI;F<@82!S>7IY9WD@ +M;V8@)&LD+"!T:&5N"G1R86YS<&]S:6YG(&ET2QZ73M< +M7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II.3@@.B!")R`]($$G+RAX7C(L +M>5XR+'I>,RD[7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3DY(#H@0R<@ +M/2!R97,H0B=>,2\H>"QY+'HI+"!,96YG=&A,:6UI="`]/B`V*5Q<"EQE;7!T +M>4QI;F4*7"`@("`@("`@,2`@("`@("`S("`@("`@(#8@("`@("`@,3`@("`@ +M("`@,34@("`@("`@,C$@("`@("`@,CA<7`IO.3D@/2!")R`@/"TM($(G("`\ +M+2T@0B<@(#PM+2!")R`@(#PM+2!")R`@(#PM+2!")R`@(#PM+2!")UQ<"EP@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@7%P*7"`@("`@(#`@("`@("`@,2`@("`@("`R("`@("`@ +M(#,@("`@("`@(#0@("`@("`@(#4@("`@("`@(#9<7`I<96UP='E,:6YE"F\Y +M.2`Z($-H86EN0V]M<&QE>%Q<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDQ +M,#`@.B!-)R`](&-O:V5R('1R86YS<&]S92!#)RYD9%\U7%P*7&5M<'1Y3&EN +M90IO,3`P(#T@8V]K97)N96P@7'LM-5Q]('P@+7D@,"`@(#`@(#`@('H@(#`@ +M,"`P("`P(#`@(#`@(#`@,"`@,"`P('Q<7`I<("`@("`@("`@("`@("`@(%Q[ +M+35RTU7'T@?"`P("!X("`@+7D@,"`@ +M,"`@,"!Z(#`@(#`@,"`@,"`@,"`P("`P(#`@?%Q<"EP@("`@("`@("`@("`@ +M("`@7'LM-5Q]('P@,"`@,"`@('@@("UY(#`@(#`@,"!Z("`P(#`@(#`@(#`@ +M,"`@,"`P('Q<7`I<("`@("`@("`@("`@("`@(%Q[+35"`P("`P(#`@,"`@>B`P("`P("`P(#`@(#`@,"!\7%P*7"`@("`@("`@ +M("`@("`@("!<>RTU7'T@?"`P("`P("`@,"`@,"`@>2`@,"`P(#`@(#`@,"`@ +M,"`@,"`P("`P(#`@?%Q<"EP@("`@("`@("`@("`@("`@7'LM-5Q]('P@,"`@ +M,"`@(#`@(#`@("UX('D@,"`P("`P(#`@(#`@(#`@,"`@,"`P('Q<7`I<("`@ +M("`@("`@("`@("`@(%Q[+35RTU7'T@ +M?"`P("`P("`@,"`@,"`@,"`@,"!X('D@(#`@,"`@,"`@,"`P("`P(#`@?%Q< +M"EP@("`@("`@("`@("`@("`@7'LM-5Q]('P@,"`@,"`@(#`@(#`@(#`@(#`@ +M,"`M>"!Y(#`@(#`@(#`@,"`@,"`P('Q<7`I<("`@("`@("`@("`@("`@(%Q[ +M+35"`P("`P("`P(#`@(#`@ +M,"!\7%P*7"`@("`@("`@("`@("`@("!<>RTV7'T@?"`P("`P("`@,"`@,"`@ +M,"`@,"`P(#`@(#`@+7D@,"`@>B`P("`P(#`@?%Q<"EP@("`@("`@("`@("`@ +M("`@7'LM-EQ]('P@,"`@,"`@(#`@(#`@(#`@(#`@,"`P("`P('@@("UY(#`@ +M>B`@,"`P('Q<7`I<("`@("`@("`@("`@("`@(%Q[+39"`P(#`@('H@,"!\7%P*7"`@("`@("`@ +M("`@("`@("!<>RTV7'T@?"!Z,B`P("`@,"`@,"`@,"`@,"`P(#`@(#`@,"`@ +M,"`@>2`P("`P(#`@?%Q<"EP@("`@("`@("`@("`@("`@7'LM-EQ]('P@,"`@ +M+7HR(#`@(#`@(#`@(#`@,"`P("`P(#`@(#`@('@@>2`@,"`P('Q<7`I<("`@ +M("`@("`@("`@("`@(%Q[+39RTV7'T@ +M?"`P("`P("`@,"`@>C(@,"`@,"`P(#`@(#`@,"`@,"`@,"`P("!X(#`@?%Q< +M"EP@("`@("`@("`@("`@("`@7'LM-UQ]('P@,"`@,"`@(#`@(#`@(#`@(#`@ +M,"`P("`P(#`@(#`@(#`@,"`@,"!Z('Q<7`I<("`@("`@("`@("`@("`@(%Q[ +M+3=2!\7%P*7"`@("`@("`@("`@("`@("!<>RTW7'T@?"`P("`P("`@,"`@,"`@ +M,"`@,"`P(#`@(#`@,"`@>C(@,"`P("`P('@@?%Q<"EQE;7!T>4QI;F4*7"`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@,C%<7`IO,3`P(#H@0B0E]-*'0I)"!F;W(@=&AE +M(&UO9'5L92`D320@9G)O;2!%>&%M<&QE(%QR969[;B0@:6X@=&AE"F1E;F]M:6YA=&]R+"!F86-T;W)S(&]U="`D,2UT)"P@ +M86YD(&9A8W1O2!P7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`@("`R("`@("`S +M("`@("`T("`@("`U("`@(#9<7`I<("`@("`@(#,@+2!T("T@-'0@("L@.'0@ +M("L@-'0@("T@,W0@("T@=%Q<"F\Q,#0@/2`M+2TM+2TM+2TM+2TM+2TM+2TM +M+2TM+2TM+2TM+2TM+2TM7%P*7"`@("`@("`@("`@("`@("`@("`@("`@,B`@ +M("`@("`S7%P*7"`@("`@("`@("`@("`@("`H,2`K('0I("@Q("T@="E<7`I< +M96UP='E,:6YE"F\Q,#0@.B!$:79I9&5<7`I<96YD3W5T<'5T"DEN('1H:7,@ +M8V%S92P@:70@'!A;G-I;VXH,C`L<"E<7`I<96UP +M='E,:6YE"EP@("`@("`@("`@("`@("`@("`R("`@("`@,R`@("`@(#0@("`@ +M("`U("`@("`@-B`@("`@(#<@("`@("`X("`@("`@.2`@("1<8V1O=%QC9&]T +M7&-D;W0D7%P*;S$P-R`](#,@*R`R="`K(#1T("`K(#$P="`@*R`Q-70@("L@ +M,C5T("`K(#,R="`@*R`T-G0@("L@-35T("`K(#4QI;F4*;S$P-R`Z(%0G7%P*7&5N9$]U='!U=`I* +M=7-T('1O(&UA:V4@S`L(#`L(#!'1>:2A-+&-O:V5R('9A4QI;F4*;S$P.2`](%Q[ +M,RP@,BP@-"P@,3`L(#$U+"`R-2P@,S(L(#0V+"`U-2P@-S-4QI;F4*;S$P.2`Z($QIW-%>&%M<&QE?0H*7'-U +M8G-E8W1I;VY[0V]M<&QE>&ET>7T*"E1H92![7&ET7&EE>V-O;7!L97AI='E] +M7"]](&]F("1-)"!I'1>;E]"*$TL:RD* +M7%T*:7,@8F]U;F1E9"!A8F]V92!B>2!A('!O;'EN;VUI86P@;V8@9&5G6YO;6EA;"!H87,@9&5G%]"*$TI)"P@=V%S(&EN=')O9'5C960@:6X*7&-I=&5[0TDZ35(Y +M,&6YO;6EA;"!S8V%L92!T +M:&4@2!I9B`D320@:&%S(&9I;FET92!PW-#;V1E?0I4:&4@9G5N8W1I;VX@>UQT="!C;VUP;&5X +M:71Y($U]('EI96QD&ET>2!O9B!A(&=R861E9`IM;V1U +M;&4@)$TD(&]V97(@82!G'0H32QC;VME&%M<&QE(%QR969[T-R:71I8V%L($1E9W)E97T*"E1H92![7&ET7&EE>V-R:71I8V%L(&1E +M9W)E97U<+WT@;V8@)$TD(&ES('1H92!L96%S="!I;G1E9V5R("1<96QL)"!F +M;W(*=VAI8V@@=&AE(&UI;FEM86P@VTK;GU<=&\@1E]N +M)"!I0IG +MVET96UI>F5] +M"EQI=&5M6R1<8G5L;&5T)%T*:68@)%QC>%]"35QL93$D+"!T:&5N("1<8EY" +M7VXH32D@/5QB7D)?>VXK,7TH32DD(&9O%]"33TR)"P@=&AE +M;B`D7&-R9&5G7T)-7&QE(&@K,2M<;6%X7'LR7&)E=&%>0E]H*$TI+3%<+"Q< +M+`HR7&)E=&%>0E][:"LQ?2A-*5Q])"X*7&5N9'MI=&5M:7IE?0I4:&4@9FER +M2P@ +M=&AE('-E8V]N9"!P87)T(&ES"G!R;W9E9"!I;B!<8VET95M396-T+GXV77M# +M23I%:7TL('1H92!T:&ER9"!I&ES="!E>&%M<&QE&%M<&QE%]235QG93,D+"!T:&5N(&ET(&ES(&%N('M<8F8@;W!E;B!PF5R;R!E;&5M96YT"FEN('1H92!S;V-L92!O9B!T:&4@ +M)%(D+6UO9'5L92`D7$5X=%Y<8G5?0BA-+&LI)"P@=&AA="!I&%M +M<&QE(%QR969[4QI;F4*;S$Q-"`] +M(#!<7`I<96UP='E,:6YE"F\Q,30@.B!+(%M<)%@@+"!<)%@@+"!X+"!Y+"!$ +M96=R965S(#T^(%Q[7'LM,BP@+3)65D(&%B;W9E('-H +M;W<@=&AA="`D7&-R9&5G7U)-/3$D+@I<;65DW-#;V1E?0I4:&4@9G5N8W1I;VX@>UQT="!C +M'0H32QK*3M<7`I<("`@("`@("`@(&L@(#T@8V]K +M97(@=F%R4QI;F4*;S$Q-B`](#%<7`I<96YD3W5T +M<'5T"FEN(&%C8V]R9&%N8V4@=VET:"!W:&%T('=A&%M<&QE(%QR +M969[8V]S>7IY9WE]('=E(&]B=&%I;@I<8F5G:6Y/=71P=70*:3$Q-R`Z(&-R +M:71I8V%L1&5GU-U<'!O7T*7&QA8F5L>U-U<'!O7T*"DQE="`D7&]V97)L:6YE +M($LD(&1E;F]T92!A;B!A;&=E8G)A:6,@8VQOUQI=%QI97MS=7!P;W)T('9A2!I&ET>2`D7&-X7U(H32DD+"!T:&%T('=E(&-A +M;@IA;')E861Y(&-O;7!U=&4N("!4:&5R92!I2!C +M;VYE(&EN("1[7&]V97)L:6YE($M]>WU>8R0@=&AA="!C86X@8F4@9&5F:6YE +M9"!O=F5R("1+)"!I2!O9B!S;VUE("1")"UM;V1U;&4@ +M)$TD+B`@0GD@7&-I=&5;4V5C="Y^-EU[0TDZ35(Y,&2P@8G5T(&QI='1L90IM;W)E(&ES(&MN;W=N(&EN(&=E;F5R +M86PN"@I&965D:6YG(&]U6YO;6EA;`IE<75A=&EO;G,@=VET:"!C;V5F9FEC:65N=',@:6X@)$LD+"!D +M969I;FEN9R!T:&4@'!L:6-I="!C;VUP +M=71A=&EO;G,N("!);@IV:65W(&]F('1H92!O<&5N('!R;V)L96T@;65N=&EO +M;F5D(&%B;W9E+"!W92!F:7@@82!R:6YG(&%N9"!A('1Y<&4@;V8*<')E2!T:&4@<')EETO*'A>-RQY +M7CEXW*20N"EQB96=I;D]U='!U=`II,3$Y(#H@2R2QZ +M73M<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II,3(Q(#H@2B%XW+'E>-RQZ7C4QI;F4*;S$R,2`Z($ED96%L(&]F +M($$G)UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDQ,C(@.B!")R<@/2!! +M)R2P@9F]R('-O;64@=F%R:65T:65S+B`@57-I +M;F<*>UQT="!S8V%N?5QI;F1E>&-M9'MS8V%N?2!W92!PRUD7'TI.UQ<"EP@("`@("`@("`@("`@("`\/"`B+2TM+2TM +M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM +M("1<8V1O=%QC9&]T7&-D;W0D7%P*7"`@("`@("`@("`@("`@(#P\(&5N9&Q< +M7`I<("`@("`@("`@("`@("`@/#P@(E8@/2`B(#P\(%8@/#P@96YD;%Q<"EP@ +M("`@("`@("`@("`@("`\/"`B"LS>2LR>B!\7%P*#(M,GAY*WAZ+3-Y>B!\7%P*#,K,W@R>2MY,RUX,GHM,WDR>BUX>C(M +M,WHS('Q<7`IS=7!P;W)T('9A2LS>B!\7%P*7"`@("`@ +M("`@("`@("!\("TR>"TR>2!\7%P*BMY>BLS>C(@?%Q<"EP@("`@("`@ +M("`@("`@?"`R>'DM,WAZ+3-Y>BTR>C(@("!\7%P*#,M,G@R>2UX>3(M,GAY>BLS>3)Z*S)X>C(M>7HR+3)Z,R!\7%P* +M7"`@("`@("`@("`@("!\(#)X>3(K,WDS+3-X,GHM,GDR>BLR>'HR*S)Y>C(@ +M("`@("`@('Q<7`IS=7!P;W)T('9AB`@('Q<7`I< +M("`@("`@("`@("`@('P@+3-X+7DK,GH@?%Q<"EP@("`@("`@("`@("`@?"!X +M+3)Y*S-Z("!\7%P*'DK,GDR*S)X +M>BTS>C(@("!\7%P*7"`@("`@("`@("`@("!\("UX,BLR>'DK>3(K,WAZ*S-Y +M>BUZ,B!\7%P*7"`@("`@("`@("`@("!\("TR>'HK,GEZ*S)Z,B`@("`@("`@ +M("!\7%P*#,M>#)Y*S)X>3(M>3,M,GAY +M>BLS>3)Z*WAZ,BLS>7HR*WHS("!\7%P*7"`@("`@("`@("`@("!\("TS>#,M +M,W@R>2LS>'DR*S)X,GHK,WAY>BTS>3)Z+7AZ,B`@("`@('Q<7`I<("`@("`@ +M("`@("`@('P@+3-X,RTR>#)Y+7AY,BTR>3,M,GAY>BMY,GHK>'HR*S-Y>C(M +M>C,@?%Q<"G-U<'!O2!I9&5A;"`](#!<7`I<("`@("`@("`@ +M("`@("`@("`@("`@("`@+2T@,2XY,B!S96-O;F1S7%P*7&5N9$]U='!U=`I< +M96YD>W-%>&%M<&QE?0H*7&)E9VEN>W-296UA2X@(%1H:7,@UQI +M="!E=F5R>5PO?2!C;VYE(&EN("1[7&]V97)L:6YE(%Q&7S=]>WU>,R0@:7,@ +M=&AE('-U<'!O2!O9@IS;VUE("1")R6-L:6,@9W)O=7`@;V8@;W)D97(@)#*E][ +M0BT-).DU2.#5A +M.C(P,#`T?2!B>2!#87)LT-).DU2 +M.#9B.C(P,#`Y?0IT:&%T(&EF("1+)"!IUQO=F5R;&EN92!+?7M]7F,D(&ES('1H92!R86YK('9A2!G96YEV=R861E9"!"87-S(&YU;6)E>VYS?5]"*$TI/5QD:6U?2UQ%>'1>;E]"*&LL32E?>W-]"EQ="E1H +M92![7&ET7&EE>V=R861E9"!"87-S('-E>VYS?5]"*$TI7"P@=%YN +M=5YS"EQI;EQ:6W4L=5Y[+3%]75M;=%U="EQ="DET(&ES(&5A2!C;VUP +M=71A8FQE('=I=&@@7$UT=V\@9G)O;2!T:&4@8V]V87)I86YT(&-O:&]M;VQO +M9WD@;6]D=6QE+`IB>2!UUQT="!H:6QB97)T4V5R:65S?5QI +M;F1E>&-M9'MH:6QB97)T4V5R:65S?2!R;W5T:6YE+@H*7&)E9VEN>W-#;V1E +M?0I4:&4@9G5N8W1I;VX@>UQT="!B87-S4V5R:65S,B!-?2!C;VUP=71EW-#;V1E?0H*07,@=VET:"!"971T:2!N=6UB97)S(&%N9"!0 +M;VEN8V%R7"=E('-E32AT*3U<0F%?0EY-*'0L,2D*7%T*"EQB96=I;GMS0V]D97T*5&AE +M(&9U;F-T:6]N('M<='0@8F%SW-%>&%M<&QE?0I& +M;W(@)&LD+"!T:&4@2!M;V1U;&5S(&-O:6YC +M:61E+B`@1F]R(&-O;7!A2!S:61E +M"G1H92!0;VEN8V%R7"=E('-E2QZ72\H>%XS+'E>-"QZ7C4I)"!IBD[7%P*7&5N9$]U='!U=`I<8F5G:6Y/ +M=71P=70*:3$R."`Z('`@/2!P;VEN8V%R95-E4QI +M;F4*7"`@("`@("`@("`@("`@("`@("`@("`@(#(@,B`@("`S(#-<7`I<("`@ +M("`@("`@("`Q("L@,W0J=2`K(#-T('4@("L@="!U7%P*;S$R."`]("TM+2TM +M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+5Q<"EP@("`@("`@("`@("`@,B`S +M("`@("`@(#(@-"`@("`@("`R(#5<7`I<("`@("`@("@Q("T@="!U("DH,2`M +M('0@=2`I*#$@+2!T('4@*5Q<"EQE;7!T>4QI;F4*;S$R."`Z($1I=FED95Q< +M"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDQ,CD@.B!B(#T@8F%S4QI;F4*7"`@("`@("`@("`@("`@("`@("TQ("`@("`R +M("TR("`@(#,@+3-<7`I<("`@("`@("`@(#$@*R`S="IU("`@*R`S="!U("`@ +M*R!T('5<7`IO,3(Y(#T@+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM +M+2TM7%P*7"`@("`@("`@("`@("`R("TS("`@("`@(#(@+30@("`@("`@,B`M +M-5Q<"EP@("`@("`@*#$@+2!T('4@("DH,2`M('0@=2`@*2@Q("T@="!U("`I +M7%P*7&5M<'1Y3&EN90IO,3(Y(#H@1&EV:61E7%P*7&5N9$]U='!U=`I4:&4@ +M2!T:&4@&%M<&QE(%QR969[4QI;F4*;S$S,"`Z($1I=FED95Q<"EQE;F1/=71P +M=70*7&)E9VEN3W5T<'5T"FDQ,S$@.B!B,2`](&)A4QI;F4*;S$S,B`Z($1I=FED95Q<"EQE;F1/=71P=70*(%QE;F1['1]+B`@5&AE('1R96%T;65N="!H +M97)E(&ES('!ATEN=F%R +M:6%N=',@;V8@;6]D=6QEU)E9'5C +M960@17AT($UO9'5L97T*"E1H92!R961U8V5D($5X="!M;V1U;&4@)%QR17AT +M7EQB=5]"*$TL3BD]7$5X=%Y<8G5?0BA-+$XI7&]T:6UE2!A<'!L>6EN +M9R!T:&4@9G5N8W1I;VX@>UQT="!C:&%N9V52:6YG?0ID969I;F5D(&EN($-O +M9&4@7')E9GMC:&%N9V5]+@H*7&)E9VEN>W-#;V1E?0I<;&%B96Q['0H32Q.*3M<7`I<96YD3W5T<'5T"B!<96YD>W-#;V1E?0H*7&)E9VEN +M>W-%>&%M<&QE?0I<;&%B96Q[;F5W(&UO9'5L97T*57-I;F<@=&AE(')I;F<@ +M)$(]2UMX+'DL>ETO*'A>,RQY7C0L>EXU*20@86YD('1H92!M;V1U;&4@)$TD +M(&-R96%T960*:6X@17AA;7!L92!<W)A;F1O;7TL('=E(&UA:V4@;F5W +M(&UO9'5L97,@"EQ;"DX]0B\H>%XR*WI>,EPL+%PL>5XS*2!<<7%U861<=&5X +M='MA;F1]7'%Q=6%D"DXG/4(O*'A>,BMZ7C)<+"Q<+'E>,RTR>EXS*0I<70I< +M8F5G:6Y/=71P=70*:3$S-"`Z('5S92!".UQ<"EQE;F1/=71P=70*7&)E9VEN +M3W5T<'5T"FDQ,S4@.B!.(#T@0EXQ+RAX7C(@*R!Z7C(L>5XS*3M<7`I<96YD +M3W5T<'5T"EQB96=I;D]U='!U=`II,3,V(#H@=&EM92!R2"`](&5X="A-+$XI +M.UQ<"EP@("`@("TM('5S960@,34N.3$@4QI;F4* +M;S$S-R`](&-O:V5R;F5L(%Q[+30L("TY7'T@?"`P("`@,"`@(#`@("`P("`@ +M,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@("1<8V1O=%QC9&]T7&-D;W0D +M7%P*7"`@("`@("`@("`@("`@("!<>S`L(#)S`L(#)S`L(#)RTR+"`M-%Q]('P@,"`@(#`@("`P("`@,"`@(#`@("`P +M("`@,"`@(#`@("`P("`@,"`@(#`@("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@ +M("`@("`@("`@("`@("`@7'LM,BP@+31RTR+"`M-%Q]('P@,"`@(#`@("`P +M("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`D7&-D;W1<8V1O +M=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("`@7'LM,BP@+31S`L(#%4QI;F4*7"`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@)%QC9&]T7&-D;W1<8V1O="1<7`IO,3,W(#H@2R!; +M6"`L(%@@+"!8("P@1&5GUQ[+3(L("TS7'TL(%Q[+3(L("TT +M7'TL(%Q[+3(L("TU7'URTS+"`M-EQ] +M('P@,"`@("`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@ +M("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("`@7'LM,RP@ +M+39RTQ+"`M,5Q]('P@+3,Y6%\S(#`@("`P("`@,"`@(#`@("`P("`@,"`@ +M(#`@("!87S(@,"`@("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@ +M("`@("`@7'LM,2P@+3%RTQ+"`M,5Q]('P@+3,U6%\S(#`@("`P("`@,"`@ +M(#`@("!87S(@,"`@(#`@("`P("`@,"`@("`D7&-D;W1<8V1O=%QC9&]T)%Q< +M"EP@("`@("`@("`@("`@("`@7'LM,2P@+3%RTQ+"`M,5Q]('P@+3A87S,@ +M(#`@("!87S(@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@("`D7&-D;W1< +M8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("`@7'LM,2P@+3%5XS("T@,BIZ7C,I.UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T +M"FDQ-#`@.B!T:6UE(')()R`](&5X="A-+$XG*3M<7`I<("`@("`M+2!URTT+"`M.5Q]('P@,"`@(#`@("`P("`@,"`@(#`@("`P("`@ +M,"`@(#`@("`P("`@,"`@(#`@("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@ +M("`@("`@("`@("`@7'LM-"P@+3ERTT+"`M.5Q]('P@,"`@(#`@("`P("`@ +M,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`D7&-D;W1<8V1O=%QC +M9&]T)%Q<"EP@("`@("`@("`@("`@("`@7'LM-"P@+3ES`L(#)RTR+"`M-%Q]('P@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P +M("`@,"`@(#`@("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@("`@ +M("`@7'LM,BP@+31RTR+"`M-%Q]('P@,"`@(#`@("`P("`@,"`@(#`@("`P +M("`@,"`@(#`@("`P("`@,"`@(#`@("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@ +M("`@("`@("`@("`@("`@7'LM,BP@+31S`L(#)RTR+"`M-%Q] +M('P@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@ +M("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("`@7'LM,BP@ +M+31S`L(#)RTR+"`M-%Q]('P@,"`@(#`@("`P("`@,"`@(#`@ +M("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`D7&-D;W1<8V1O=%QC9&]T)%Q< +M"EP@("`@("`@("`@("`@("`@7'LM,BP@+31RTR+"`M-%Q]('P@,"`@(#`@ +M("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`D7&-D;W1< +M8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("`@7'LP+"`R7'T@("!\(%A? +M,R`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@)%QC +M9&]T7&-D;W1<8V1O="1<7`I<("`@("`@("`@("`@("`@(%Q[,"P@,5Q]("`@ +M?"`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@6%\R(#`@("`P("`@,"`@ +M("1<8V1O=%QC9&]T7&-D;W0D7%P*7"`@("`@("`@("`@("`@("!<>S`L(#%< +M?2`@('P@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("!87S(@,"`@ +M(#`@("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@)%QC9&]T7&-D;W1<8V1O="1<7`IO,30Q(#H@ +M2R!;6"`L(%@@+"!8("P@1&5GUQ[+3(L("TS7'TL(%Q[+3(L +M("TT7'TL(%Q[+3(L("TU7'U4QI;F4*;S$T,B`](&-O:V5R;F5L(%Q[+3,L("TV7'T@?"`P +M("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@("TT,EA?,B`R,5A?("1< +M8V1O=%QC9&]T7&-D;W0D7%P*7"`@("`@("`@("`@("`@("!<>RTS+"`M-EQ] +M('P@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`M-EA?,B`@+3,R +M6"`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("`@7'LM,RP@ +M+39RTS+"`M-EQ]('P@,"`@(#`@("`P("`@,"`@(#`@("`P("`@,"`@(#`@ +M("`U,%A?,B`@,3A87R`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@ +M("`@("`@7'LM,RP@+39RTS+"`M-UQ]('P@,"`@(#`@("`P("`@,"`@(#`@ +M("`P("`@,"`@(#`@("`P("`@("`@,"`@("`D7&-D;W1<8V1O=%QC9&]T)%Q< +M"EP@("`@("`@("`@("`@("`@7'LM,RP@+3=RTS+"`M-UQ]('P@,"`@(#`@ +M("`P("`@,"`@(#`@("`P("`@,"`@(#`@("`P("`@("`@6%\Q("`D7&-D;W1< +M8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("`@7'LM,RP@+3=RTQ+"`M +M,EQ]('P@,"`@(#`@("!87S(@,"`@(#`@("`P("`@6%\Q(#`@("`P("`@("`@ +M,"`@("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("`@7'LM +M,2P@+3)W-%>&%M<&QE?0H*7'-U8G-E +M8W1I;VY[17AT+6=E;F5R871O>TTL3GU?0BAT+'4I)"!D969I;F5D(&EN(%)E;6%R +M:PI<W)E9'5C960@97AT?2!G96YE>TTL3GU?0BAT+'4I)"!W +M:&5N"B1-)"!A;F0@)$XD(&%R92!G,G5>>W)?,7TI7&-D;W1S*#$M=%XR=5Y['1G96Y397)I97,Q(#T@*$TL +M3BD@+3X@*%Q<"EP@("`@("`@("`@'1G96Y397)I97,R +M*$TL3BDL(%Q[=3T^,5]47'TI7%P*7"`@("`@("`@("`I.UQ<"EQE;F1/=71P +M=70*7&5N9'MS0V]D97T*"EQB96=I;GMS17AA;7!L97T*1F]R("1-)"P@)$XD +M+"!A;F0@)$XG)"!A&%M<&QE(%QR969[;F5W(&UO9'5L97T@=V4@ +M;V)T86EN"EQB96=I;D]U='!U=`II,30U(#H@=&EM92!E>'1G96Y397)I97,R +M*$TL3BE<7`I<("`@("`M+2!U4QI +M;F4*7"`@("`@("`@("TR("`@("TQ("`@("`@("`@("`@,B`@("`@(#(@,B`@ +M("`@,B`S("`@("`R(#0@("`@(#,@-"`@("`@,R`@)%QC9&]T7&-D;W1<8V1O +M="1<7`I<("`@("`@(#AU("`@*R!U("`@*R`X="IU("T@.'0@=2`M(#ET('4@ +M("T@.70@=2`@*R`W="!U("`M(#AT('4@("T@.'0@=2`D7&-D;W1<8V1O=%QC +M9&]T)%Q<"F\Q-#4@/2`M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM +M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T@)%QC9&]T7&-D;W1< +M8V1O="1<7`I<("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`D7&-D;W1<8V1O +M=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("1<8V1O=%QC +M9&]T7&-D;W0D7%P*7&5M<'1Y3&EN90IO,30U(#H@1&EV:61E7%P*7&5N9$]U +M='!U=`I<8F5G:6Y/=71P=70*:3$T-B`Z(&<]=&EM92!E>'1G96Y397)I97,Q +M*$TL3BE<7`I<("`@("`M+2!U4QI +M;F4*7"`@("`@("`@("`@("`@("`@("`R("`@("`@,R`@("`@(#0@("`@(#4@ +M("`@(#8@("`@-UQ<"EP@("`@("`@.2`K(#AT("T@,3ET("`M(#$Q="`@*R`Q +M-W0@("L@-'0@("T@-W0@("T@=%Q<"F\Q-#8@/2`M+2TM+2TM+2TM+2TM+2TM +M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+5Q<"EP@("`@("`@("`@("`@ +M("`@("`@("`@(#(@("`@("`@,B`@("`@("`R7%P*7"`@("`@("`@("`@("`@ +M("`@*#$@+2!T("DH,2`M('0@*2@Q("T@="`I7%P*7&5M<'1Y3&EN90IO,30V +M(#H@1&EV:61E7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3$T-R`Z('-I +M;7!L:69Y(&=<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@("`@(#(@("`@ +M(#,@("`@-%Q<"EP@("`@("`@.2`M('0@+2`Y="`@*R`V="`@*R!T7%P*;S$T +M-R`]("TM+2TM+2TM+2TM+2TM+2TM+2TM+2U<7`I<("`@("`@("`@("`@("`@ +M("`@("`@("`@(#)<7`I<("`@("`@("`@("`H,2`K('0I*#$@+2!T*5Q<"EQE +M;7!T>4QI;F4*;S$T-R`Z($1I=FED95Q<"EQE;F1/=71P=70*7&)E9VEN3W5T +M<'5T"FDQ-#@@.B!T:6UE(&5X=&=E;E-E4QI;F4*7"`@("`@("`@("TR +M("`@("`M,2`@("`@("`R("`@("`R("`@("`@,B`R("`@("`R(#,@("`@("`R +M(#0@("`@(#,@-2`@("`@)%QC9&]T7&-D;W1<8V1O="1<7`I<("`@("`@(#=U +M("`@*R`R=2`@("L@-'0J=2`@+2`W="!U("T@.70@=2`@+2`Y="!U("`K(#$V +M="!U("`M(#1T('4@("L@,B`D7&-D;W1<8V1O=%QC9&]T)%Q<"F\Q-#@@/2`M +M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM +M+2TM+2TM+2TM+2TM+2TM+2T@)%QC9&]T7&-D;W1<8V1O="1<7`I<("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("1<8V1O=%QC9&]T7&-D;W0D7%P*7&5M +M<'1Y3&EN90IO,30X(#H@1&EV:61E7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P +M=70*:3$T.2`Z(&4QI;F4*;S$U,"`Z($1I=FED95Q<"EQE;F1/=71P=70* +M7&5N9'MS17AA;7!L97T*"EQS=6)S96-T:6]N>T-O;7!L97AI='E]"@I4:&4@ +M>UQI=%QI97MC;VUP;&5X:71Y?5PO?2!O9B!A('!A:7(@;V8@)$(D+6UO9'5L +M97,@)"A-+$XI)`II'1>;E]"*$TL3BD],"0@9F]R(&%L;"`D;EQG9S`D+B`@0V]R;VQL87)Y +M"EQR969[V@H="E]>R@Q+71>,BE>8WT*7'%Q=6%D7'1E>'1[9F]R('-O;65]7'%Q=6%D +M(&@H="E<:6Y<6EMT70I<70IS;R!D96-O;7!O&ET>2!O9B!A('!A:7(*)"A-+$XI)"!O9B!G'0H32Q.*3M<7`I<96YD3W5T<'5T"B!<96YD>W-#;V1E +M?0H*7&)E9VEN>W-%>&%M<&QE?0I&;W(@)$TD+"`D3B0L(&%N9"`D3B&ET +M>5!A:7(H32Q.)RE<7`I<("`@("`M+2!U4QI;F4*;S$U,R`](#-<7`I<96YD3W5T<'5T"EQE;F1['1>7&)U7T(H32Q.*20@;W9E<@HD4CU+6UA?,2Q<9&]T +M*E]"*$TI)"!D969I;F5D(&EN"EQR969[4W5P<&]R="!V87)I971Y?2X@($]N +M92!O9B!T:&4@;6%I;B!R97-U;'1S(&]F"EQC:71E6U-E8W0N?C5=>T-).D%" +M,GT@*E]"*$TL3BDD(&ES(&5Q=6%L('1O('1H90IC;VUP +M;&5X:71Y("1<8WA?4BA-+$XI)"P@86QR96%D>2!C;VUP=71E9"!A8F]V92X* +M"D9E961I;F<@;W5R(&-O;7!U=&%T:6]N(&]F("1<W-#;V1E?0I4:&4@9G5N8W1I;VX@>UQT +M="!S=7!P;W)T5F%R:65T>5!A:7))9&5A;"A-+$XI?2!Y:65L9',@82!S970@ +M;V8@<&]L>6YO;6EA;`IE<75A=&EO;G,@=VET:"!C;V5F9FEC:65N=',@:6X@ +M)$LD+"!D969I;FEN9R!T:&4@=F%R:65T>0HD7'9AVYE=R!M;V1U;&5]('=E(&AA=F4*7&)E9VEN +M3W5T<'5T"FDQ-34@.B!T:6UE('-U<'!O4QI;F4* +M;S$U-2`](&ED96%L(%A<7`I<("`@("`@("`@("`@("`Q7%P*7&5M<'1Y3&EN +M90IO,34U(#H@261E86P@;V8@2R!;6"`L(%@@+"!8("P@1&5GUQ[+3(L("TS7'TL(%Q[+3(L("TT7'TL(%Q[+3(L("TU7'U5!A:7))9&5A;"A- +M+$XG*5Q<"EP@("`@("TM('5S960@,2XW,R!S96-O;F1S7%P*7&5M<'1Y3&EN +M90IO,34V(#T@,%Q<"EQE;7!T>4QI;F4*;S$U-B`Z($ED96%L(&]F($L@6U@@ +M+"!8("P@6"`L($1E9W)E97,@/3X@7'M<>RTR+"`M,UQ]+"!<>RTR+"`M-%Q] +M+"!<>RTR+"`M-5Q]7'U=7%P*7"`@("`@("`@("`@("`@("`@("`@,2`@(#(@ +M("`S7%P*7&5N9$]U='!U=`I<96YD>W-%>&%M<&QE?0H*7&%P<&5N9&EX"@I< +MT=R861I;F=S?0H*3W5R('!U2!O<&5R871O&EB;&5<+WT@86YD('M< +M:70@8V]N2!AUQS;"!R86ES +M;VX@9"=<7F5TT=R861E9`IA;&=E8G)AV=R861E9`IS='5F9GT[('=H +M96X@;F5E9&5D+"!I="!W:6QL(&)E(')E9F5RUQI +M=%QI97MI;G1E6UB;VP@9GT] +M7'MF7S$L"EQD;W1S+"!F7V-UQB;VQDV0K97TD+B`@5V4@=&%K92!A('!R;VIE8W1I=F4* +M`H](&XD('1O(&EN9&EC871E('1H870@)'@D(&ES(&%N(&5L96UE;G0@ +M:6X@)$-?;B0[('=E(')E9F5R('1O('1H:7,*VAO;6]L;V=I8V%L(&1E9W)E +M95PO?7T*)'@D+B`@5V4@8V]M8FEN92!B;W1H(&1E9W)E97,@:6X@82!S:6YG +M;&4@>UQI=%QI97MB:61E9W)E95PO?7TL(&1E;F]T960*)%Q$96V0K92QD)RME)WTD +M+@H*0F5C875S92`D7&1E9R!97VD@/2`R)"P@=&AE(&5L96UE;G1S(&]F('1H +M92!F6UM971R:6,@86YD"F5X=&5R:6]R('!O=V5R>UQW961G95QB?2`](%QS=6T@ +M7&)?:2!R7VDD+B`@5&AU0HD7$1E9R!A/2@P +M+"!H*20@9F]R(&%L;"!E;&5M96YT0I4:&5O"`D7$AO;5]"*$-<;W1I;65S7T$@1"V)I9W)A9&EN +M9WTN"@I<8F5G:6Y[4F5M87)K?0I<;&%B96Q[9W)A9&5D(&%C=&EO;GT*268@ +M)$$D(&ES(&$@9W)A9&5D(')I;FV9?,2P@7&1O=',L(&9?8UQ])"!I +MUQB +M;VQD2!S971T:6YG("1<1&5G(&$@/2`H,"P*7&1E9RU)E;6%R:WT*7&QA8F5L>VUA8V%U;&%Y(&=R861I +M;F=]"E1H92!C;W)E(&%L9V]R:71H;7,@;V8@=&AE('!R;V=R86T@8V%N(&AA +M;F1L92!M=6QT:2UGUQT +M="!%>'1]+"!D:7-C=7-S960@86)O=F4L"FEN8V]R<&]R871E2!O<&5R871O +M`HE +M(&UO9&4Z(')E9G1E>`HE(&-O;7!I;&4M8V]M;6%N9#H@(FUA:V4@8VDM=W)A +M<'!E"UK965P+71E;7!O2UB=69F97)S.B!T"B4@'1E"(I("@B8FEB(B`N(")M86ME($9)3$4])68@9FEN9"UB:6(B*2D*)2!%;F0Z +M"EQB96=I;GMT:&5B:6)L:6]GS$P?0H*7&)I8FET96U[0TDZ35(X +M-FDZ-34P,3%A?0I$879I9'Y*+B!!;FEC:SH*7&YE=V)L;V-K($$@8V]U;G1E +MT-).DU2 +M.3!G.C$S,#(W?0I,=6-H97IAF%R?DPN($%VUQE;2!3:7@@;&5C='5R97,@;VX@8V]M;75T871I=F4@86QG96)R +M82`H0F5L;&%T97)R82P@,3DY-BE]+`H@('!A9V5S(#$M+3$Q."X@4')O9W)E +MF%R?DPN($%VCH*7&YE=V)L;V-K($AO;6]L +M;V=I8V%L(&%L9V5BUQE;2!*+B!!;&=E8G)A?2P@,C,P*#$I.C(T+2TV-RP@,C`P,"X* +M"EQB:6)I=&5M>T-).D%",GT*3'5C:&5Z87)^3"X@079R86UO=B!A;F0@4F%G +M;F%R+4]L868@0G5C:'=E:71Z.@I<;F5W8FQO8VL@4W5P<&]R="!V87)I971I +M97,@86YD(&-O:&]M;VQO9WD@;W9EUQE;2!);G9E;G0N($UA=&@N?2P@,30R*#(I.C(X-2TM +M,S$X+"`R,#`P+@H*7&)I8FET96U[0TDZ35(Y.6,Z,3,P,S-]"DQU8VAE>F%R +M?DPN($%VUQE;2!);G-T+B!(875T97,@7"=%='5D97,@ +M4V-I+B!0=6)L+B!-871H+GTL(#@V.C8W+2TQ,30L(#$Y.32!A;F0@>TM];W-Z=6P@86QG +M96)R87,N"EQN97=B;&]C:R![7&5M($%M97(N($HN($UA=&A]+"`Q,C,H,BDZ +M,C2!R:6YG(&]F(&$@;6]D=6QE+@I<;F5W8FQO8VL@>UQE;2!*+B!!;&=E +M8G)A?2P@.#4H,2DZ,3`T+2TQ-#,L(#$Y.#,N"@I<8FEB:71E;7M#23I-4C@V +M8CHR,#`P.7T*2F]N?D8N($-A2!O9B!A;B!I;F1E8V]M<&]S86)L92!M;V1U;&4@:7,@8V]N;F5C=&5D+@I< +M;F5W8FQO8VL@>UQE;2!);G9E;G0N($UA=&@N?2P@-SUQE;2!42!O9B!#86QI9F]R;FEA+"!"97)K96QE>2P@0T$L(#$Y-S4N"@I<8FEB +M:71E;7M#23I-4CDT8CHQ-C`T,'T*2F%N+45R:6L@4F]O2X*7&YE=V)L;V-K('M<96T@0RX@4BX@06-A9"X@4V-I+B!087)IUQM871H8F)[0WU]"EQD969<3GM<;6%T:&)B +M>TY]?0I<9&5F7%)[7&UA=&AB8GM2?7T*7&1E9EQ0>UQM871H8F)[4'U]"EQD +M969<6EI[7&UA=&AB8GM:?7T@"@I<=&ET;&5[06QG;W)I=&AMU1OT%L9V]R:71H;7,@9F]R('1H92!4 +M;W)I8R!(:6QB97)T(%-C:&5M97T*7&%U=&AOT-O2P@1&5P87)T;65N="!O +M9B!-871H96UA=&EC2P@0T$@.30W,C`L(%5300HE("`@("`@("`@7&%N9"!5;FEV +M97)S:71Y(&]F(%=A0IW96QL('5N +M9&5R7,@8V]N;F5C +M=&5D+B!);B!T:&ES(&-H87!T97(@=V4*:6QL=7-T=0H]('A?,5Y[ +M=5\Q?5QC9&]T>W5?;GTD('=I=&@@9&5G2!T:&%T +M("0H4B])*5]B)"!I'MI9&5A;"$D020M +M9W)A9&5D?2!I9&5A;"X*17%U:79A;&5N=&QY+"`D220@:7,@)$$D+6=R861E +M9"!I9B!I="!I=2`M('A>=B!<+"`Z(%PL($%U(#T* +M078@7')A;F=L92!<UQI="!<:65[=&]R:6,@ +M:61E86Q]?2!O9B`D020N($%N("1!)"UG=20@86YD("1X +M7G8D(&]F('1H92!S86UE(&1E9W)E92`D074@/2`*078D(&UU2!D97!E;F1E;G0@;6]D=6QO('1H92!I9&5A;"X*"E=E(')E +M8V]M;65N9"!<8VET95M<4R`T+"!<4R`Q,%U[2%,Z4W0R?2!ATA3.E-T,7T@86YD +M(%QC:71E6UQ3(#$P77M(4SI3=#)]*2X@"E!E979A(&%N9"!3=&EL;&UA;B!< +M8VET97M(4SI04S%](&EN=')O9'5C960@=&AE('-C:&5M92!S=')U8W1U2!D97)I=F4@82!F +M;W)M=6QA(&9OTA3.E!3,7TN"D)O=&@@;V8@=&AETA3.E!3,GT*86YD('1H92!C;VUB:6YA=&]R:6%L(&%P<')O86-H(&]F +M($UA8VQA9V%N(&%N9"!4:&]M87,@:6X@7&-I=&5[2%,Z351]+@H*5V4@8F5G +M:6X@=VET:"!T:&4@8V]M<'5T871I;VX@;V8@82!T;W)I8R!I9&5A;"!UT]U'T*02`](%QL969T +M*"!<8F5G:6Y[;6%TUQ[,2PQ+#$L,2PQ7'TL7'LP+#$L,BPW+#A< +M?5Q].R!<7`I<96YD3W5T<'5T"E1H92!T;W)I8R!I9&5A;"!O9B`D020@;&EV +M97,@:6X@=&AE(&UU;'1I9W)A9&5D(')I;F<@)%(@.CT@7&L@6V$L8BQC+&0L +M95TD+@I<8F5G:6Y/=71P=70*:3(@.B!2(#T@45%;82XN92Q$96=R965S/3YT +MS$L(#!S$L(#=TA3.E-T,GT@=&\@ +M8V]M<'5T92`D25]!)"X@5&AE(&9I"!!(%Q< +M"EQE;7!T>4QI;F4*;S0@/2!\(#$@+3(@,2`@,"`P('Q<7`I<("`@("!\(#`@ +M-2`@+38@,2`P('Q<7`I<("`@("!\(#`@-B`@+3<@,"`Q('Q<7`I<96UP='E, +M:6YE"EP@("`@("`@("`@("`@(#,@("`@("`@(#5<7`IO-"`Z($UA=')I>"!: +M6B`@/"TM+2!:6EQ<"EQE;F1/=71P=70*"D%L=&AO=6=H(&EN('1H96]R>2!A +M;GD@8F%S:7,@;V8@)&MEUQT="!,3$Q](`IW:&5N(&%P<&QI960@=&\@=&AE(&]U='!U="!O9B![ +M7'1T('-Y>B!M871R:7@@07T@=VEL;"!R971UF4@=VAOB!M871R:7@@02!<7`I<96UP='E,:6YE"F\V +M(#T@?"`P("`Q("`R("!\7%P*7"`@("`@?"`Q("`M,2`P("!\7%P*7"`@("`@ +M?"`M,2`P("`M,R!\7%P*7"`@("`@?"`M,2`M,2`R("!\7%P*7"`@("`@?"`Q +M("`Q("`M,2!\7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@("`U("`@("`@ +M("`S7%P*;S8@.B!-871R:7@@6EH@(#PM+2T@6EI<7`I<96YD3W5T<'5T"@I7 +M92!R96-O;7!U=&4@)$(D('5S:6YG('1H:7,@<&%C:V%G92!T;R!G970@=&AE +M(&9O;&QO=VEN9R`D,R!<=&EM97,@-20@;6%T4QI +M;F4*7"`@("`@("`@("`@("`@,R`@("`@("`@-5Q<"F\W(#H@36%T&%M +M<&QEF4@;V8@)$$D(&EN8W)E87-E"`H7')E +M9GMN;VXM;F]R;6%L?2D@9G)O;2`*4V5C=&EO;GXT+BD*"D$@>V)>*WTM>%Y[8EXM?2!<:6X@4B0L(&%N9"!W92!L970@)$HD(&)E +M('1H92!I9&5A;"!G96YE*"UB7VDI*3M<7`I<("`@ +M("`@("`@('1O<"`M(&)O='1O;2D[(%Q<"EQE;F1/=71P=70*"EQB96=I;D]U +M='!U=`II.2`Z($H@/2!I9&5A;"!A<'!L>2AE;G1R:65S($(L(&(@+3X@=&]" +M:6YO;6EA;"AB+%(I*2!<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`R(#(@("`@,UQ<"F\Y(#T@:61E86P@ +M*"T@8RID("L@8BIE+"`M(&(J9"`K(&$J92P@82!D("`M(&,@92E<7`I<96UP +M='E,:6YE"F\Y(#H@261E86P@;V8@4EQ<"EQE;F1/=71P=70*5&AE('1O%\Q(%QC9&]T2DD +M+"!W:&EC:"!IB!M871R:7@@03M< +M7`I<("`@("`@("`@($H@.CT@:61E86P@87!P;'DH96YT,F1>,BUC7C-E+&->-"UA7C-E+&)C7C,M +M85XS9"P*861>-"UC7C)E7C,L9%XV+6-E7C4@7')A;F=L920L('=H:6-H('=E +M(&YO=R!C;VUP=71E('5S:6YG('1H:7,*<')O8V5D=7)E+B`@"@I<8F5G:6Y/ +M=71P=70*:3$R(#H@22`]('1ORTR+"`M.5Q]("!\(&-D+6)E("`@('Q<7`I<("`@("`@7'LM,BP@+3ARTT+"`M,31RTU+"`M,CA,20@87,@82!D96=R964@)#@D(&-UUQE;2!F;&EP(&=R87!H +M?2!O9B`D020@=VAO2!O9B`D2&EL8E]!)"X@5V4*9&5S8W)I8F4@:&]W +M(&%L;"!N96EG:&)O'!L86EN +M('1H92!R;VQE(&]F('!O;'EH961R86P@9V5O;65T&5S('-U<'!OUQE;2!<:65[0F%U97,@9W)A<&A]?2!O9B`D020N("!&;W(*=6YI;6]D=6QA +M'!L;W)E2!O9B!T:&4@1W)<(F]B;F5R(&9A;B!O9B`D25]!)"X@5V4* +M8V]N8VQU9&4@=&AE(&-H87!T97(@=VET:"!T=V\@87!P96YD:6-ET=E;F5R871I;F<@ +M36]N;VUI86P@261E86QS?0I792!S=&%R="!O=70@8GD@8V]M<'5T:6YG('1H +M92![7&ET(%QI97M'%Y[=2=]("T@>%Y[=B=](%QQ=6%D +M(%QI9F8*7'%U860@7&AB;WA[("1X7G4D(&1I=FED97,@)'A>>W4G?20@7"!A +M;F0@7"`D>%YV)"!D:79I9&5S("1X7GMV)WTD+GT*)"0@5&AE('-E="`D1W)? +M020@:7,@82![7&5M('5N:79ET=R;V)N97(@8F%S:7-`1W)<(F]B;F5R(&)ATA3.E-T,GTL(&$@ +M7$UT=V\@=F5RUQT="!T;U-]("0Z(%(@7')I9VAT87)R;W<*("`@ +M4R0@96UB961S('1H92!T;W)I8R!I9&5A;"`D220@:6X@)%,D(&%N9"!C;VQL +M96-T82`M('A>8B0@;&EE87E>8BUX7F)Y7F$D(&ES(&$@;6EN:6UA;"!G96YE +MV%RW=H:6QE?2!L;V]P('1O(&AO;6]G96YI>F4@=&AE +M(&)I;F]M:6%L%YA+7A>8B!<:6XD('M< +M='0@;7T@=&\@=&AE(&)I;F]M:6%L"B`@("1X7F%Y7F(M>%YB>5YA)"X@(%1H +M92!I9&5A;"!G96YE2!S871UUQT="!T;U)]"B`@("0Z(%,@7')I9VAT87)R;W<@4B0@5]I(%QM87!S=&\@,20*("`@ +M:7,@<')E8VES96QY('1H92!'UQT +M="!F?2!A;F0@:7,@;W5T<'5T(&)Y('1H92!PUQI="!<:65[1W)A=F5R(&1E9W)E97U](&EF('1H +M97)E(&5X:7-TUQI="!<:65[1W)A +M=F5R"B`@9FEB97)]?2X@($EN(&]U%YB("!<:6X@1W)?02!<2`D020L('=E(&-A;B!O8G1A:6X@2!S:6UP;'D@87-K:6YG +M(&9O2A<7`I<("`@("`@("`@("`@("`@=6YI<75E +M(&1E9W)E97,@4QI;F4*;S$W(#T@2&%S:%1A +M8FQE7'M<>S(L(#)S,L(#$V7'T@/3X@?"!A +M93(@8F1E(&-D,B!\7%P*7"`@("`@("`@("`@("`@("!<>S0L(#$T7'T@/3X@ +M?"!A,F0R(&,S92!\7%P*7"`@("`@("`@("`@("`@("!<>S0L(#=S4L(#$P7'T@/3X@ +M?"!A,V-E(&$R8C)E(&$R8F-D(&%B,V0@8S4@?%Q<"EP@("`@("`@("`@("`@ +M("`@7'LU+"`Q-%Q](#T^('P@83-D,B!A8S-E(&(R8S)E(&)C,V0@?%Q<"EP@ +M("`@("`@("`@("`@("`@7'LU+"`Q-EQ](#T^('P@83-E,B!A,F-D,B!A8C)D +M,B!C-&4@?%Q<"EP@("`@("`@("`@("`@("`@7'LU+"`R,5Q](#T^('P@83)D +M,R!B8S)E,B!C,V1E('Q<7`I<("`@("`@("`@("`@("`@(%Q[-2P@,C)S4L +M(#(X7'T@/3X@?"!A9#0@8S)E,R!\7%P*7"`@("`@("`@("`@("`@("!<>S4L +M(#=S8L(#$R7'T@/3X@?"!A,V,R92!A,F)C,F0@86(T92!B-60@ +M8S8@?%Q<"EP@("`@("`@("`@("`@("`@7'LV+"`Q-%Q](#T^('P@831D,B!A +M,F,S92!A8F,S9"!B-&-E(&(S8S)D('Q<7`I<("`@("`@("`@("`@("`@(%Q[ +M-BP@,3AS8L(#ASSSSUPL"EQU;F1EV%>-B!B(&1]+%PL("!<=6YD97)L:6YE +M>V%>-"!C7C1]+"!<+`IA7C,@8EXR(&->,RQ<+"!A7C(@8EXT(&->,BQ<+"`@ +M82!B7C8@8RP@7"P@7'5N9&5R;&EN97MB7CA](%PL7&)I9W)UQT="`@?"!A-V4@839B9"!A-&,T +M(&(X('Q]+B!4:&4@=&AR964@;F]N+75N9&5R;&EN960@"FUO;F]M:6%LVQE;6UA?5M[7&-I=&5;3&5M;6$@,3`N-5U[2%,Z4W0R?7U= +M"E1H92!M=6QT:61E9W)E92!O9B!A;GD@;6EN:6UA;"!G96YEVQE;6UA?0H*5&AE(&YE>'0@>UQA2!S8V%L:6YG('9A%\Q+"!<;&1O=',L(%QL +M86UB9&%?;B!X7VXI)"XI("!4:&5S92!F:7AE9"!P;VEN=',@87)E('1H90IM +M;VYO;6EA;"!I9&5A;',@)$TD(&QY:6YG(&]N("1(:6QB7T$D+B`@179EUQE;2!T;W)UVED96%L(71O>UQA +M'MI9&5A;"%C +M;VAETA3.E-T,GT@87!P;&EE9"!T;R`D +M25]!)"X@02!R969I;F5M96YT(&%N9"!F87-T"FEM<&QE;65N=&%T:6]N(&-A +M;B!B92!F;W5N9"!I;B!T:&4@UQT="!S96QE8W13=&%N9&%R9'T@=&\@9V5N97)A=&4@80IC86YD:61A +M=&4@9F]R(&$@;6]N;VUI86P@:61E86P@;VX@)$AI;&)?020N"@I<8F5G:6Y/ +M=71P=70*:3$X(#H@9V5N97)A=&5!;6]N;W,@/2`H1W)A=F5R*2`M/B`H7%P* +M7"`@("`@("`@("`@=')U94A3(#H]('!O:6YC87)E(&-O:V5R($=R879E2AS;W)T('!A:7)S(&9I8F5R +MUQ].UQ<"EP@("`@ +M("`@("`@('-E;&5C=%-T86YD87)D(#H]("AF:6)EUQC:&%R8%PE?2!**3M<7`I<("`@("`@("`@ +M("`@("!N4"`Z/2!N=6UG96YS('-O=7)C92!0.R!<7`I<("`@("`@("`@("`@ +M("`M+2!N4"!IUQT="!S96QE8W13 +M=&%N9&%R9'T*87)E('1H92!'2!A9&1I;F<@=&AE(&]T:&5R +M(&UO;F]M:6%LUQT="!G96YE2!T:&4@<')O9W)A;2`*:68@:71S($AI;&)E +MUQT="!M;VYO2!O9B![7'1T(&UO;F]S?2!A;F0@:71S(`IF:7)S="!T +M96X@96QE;65N=',N"EQB96=I;D]U='!U=`II,3D@.B!G96YE,BP@8UXS*F4L(&->-"P@8BIC +M7C,L(&->,BIE7C,L(&(J8UXR*F5>,BP@8BIC*F5>-"P@9%XV7'U<7`I<>V,J +M9"P@8BID+"!B7C(L(&->,RIE+"!C7C0L(&(J8UXS+"!C7C(J95XS+"!B*F-> +M,BIE7C(L(&,J95XU+"!B*F,J95XT+"`D7&-D;W1<8V1O=%QC9&]T)%Q<"EQ[ +M8RID+"!B*F0L(&)>,BP@8UXS*F4L(&->-"P@8BIC7C,L(&->,BIE7C,L(&(J +M8UXR*F5>,BP@8RIE7C4L(&(J8RIE7C0L("1<8V1O=%QC9&]T7&-D;W0D7%P* +M7'MC*F0L(&(J9"P@8EXR+"!C7C,J92P@8UXT+"!B*F->,RP@8UXR*F5>,RP@ +M8BIC7C(J95XR+"!C*F5>-2P@8BIC*F5>-"P@)%QC9&]T7&-D;W1<8V1O="1< +M7`I<>V,J9"P@8BID+"!B7C(L(&->,RIE+"!C7C0L(&(J8UXS+"!C7C(J95XS +M+"!B*F->,BIE7C(L(&1>-BP@82ID7C5,BP@ +M8UXS*F4L(&->-"P@8BIC7C,L(&(J8UXR*F5>,BP@82ID7C0L(&1>-EQ]7%P* +M7'MC*F0L(&(J9"P@8EXR+"!C7C,J92P@8UXT+"!B*F->,RP@82ID7C0L(&%> +M,BID7C,L(&1>-EQ]7%P*7'MC*F0L(&(J9"P@8EXR+"!A7C(J9%XR+"!C7C0L +M(&(J8UXS+"!A*F1>-"P@9%XV7'U<7`I<>V,J9"P@8BID+"!B7C(L(&%>,BID +M7C(L(&%>,RID+"!C7C0L(&$J9%XT+"!D7C9 +M,BP@85XS*F4L(&%>,BID7C(L(&%>,RID+"!A*F1>-"P@9%XV7'U<7`I<96YD +M3W5T<'5T"@I4:&4@;6]N;VUI86P@:61E86QS("AT;W)U&5D(&-U%YV(%QN;W1<:6X@320@86YD("1! +M=2`]($%V)"X@1F]R;2!T:&4@>UQI="!<:65[=V%L;"!I9&5A;'U]+`IW:&EC +M:"!I=2`M('A>=B0@86YD(&%L;"!M:6YI;6%L +M(&=E;F5R871O=20L(&%N9"!L970@ +M)$TG)"!B92!T:&4@:6YI=&EA;"!M;VYO;6EA;"!I9&5A;"!O9B!T:&4*=V%L +M;"!I9&5A;"!W:71H(')E=B!<'!V96-T;W(@.CT@9FER'!V +M96-T;W([7%P*7"`@("`@("`@("`@:2`Z/2!F:7)S="!P;W-I=&EO;G,H,"XN +M;BTQ+"!J("T^(&5X<'9E8W1OUQT="!R97-U;'1]+B!&;W(@96%C:"!M;VYO;6EA;"`D>%YU +M)"!I;B![7'1T"FUO;F]M6EE;&1S(&$@9FQI<"!N96EG:&)OUQT="!M?2!B92!T +M:&4@)&DD+71H"FUO;F]M:6%L(&EN('M<='0@;6]N;VUS?2X@5&AE(&QIUQT="!R97-T?2!C;VYT86EN&-E<'0@>UQT="!M?2X@5V4@8V]M<'5T92!T:&4@UQT=`IS?2!O9B`D320@;V8@=&AE('-A;64@9&5G2!C;VUP87)I;F<@:71S"DAI;&)E2P@;VYE(&-O=6QD(&-H +M96-K('=H971H97(*)$TD(&ES('1H92!I;FET:6%L(&ED96%L(&]F('1H92!W +M86QL(&ED96%L('=I=&@@,BIB*F0L85XS*F0L8UXR*F5>,RQ<7`I<("`@("`@("`@("`@ +M("`@(&->,RIE7C(L8UXT*F4L8UXU+&,J95XU+&$J9%XU+&(J95XV*3M<7`I< +M96UP='E,:6YE"F\R-2`Z($ED96%L(&]F(%)<7`I<96YD3W5T<'5T"EQB96=I +M;D]U='!U=`II,C8@.B!&(#T@9FQI<',@35Q<"EQE;7!T>4QI;F4*7"`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@(#(@,B`@(#,@("`@-"`@(#(@,R`@ +M(#,@,B`@("`@-2`@("`@-2`@("`@)%QC9&]T7&-D;W1<8V1O="1<7`IO,C8@ +M/2!<>VED96%L("AA*F4L(&,J9"P@82IC+"!A(&0@+"!A(&0L(&,@+"!C(&4@ +M+"!C(&4@+"!A*F0@+"!C*F4@+"!B*B`D7&-D;W1<8V1O=%QC9&]T)%Q<"EQE +M;7!T>4QI;F4*;S(V(#H@3&ES=%Q<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T +M"FDR-R`Z("-&7%P*7&5M<'1Y3&EN90IO,C<@/2`T7%P*7&5N9$]U='!U=`I< +M8F5G:6Y/=71P=70*:3(X(#H@-2P@ +M8RIE7C4L("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EQ[7'MC*F0L(&$J92P@82IC +M+"!A7C(J9%XR+"!A7C(J8BID+"!A7C,J9"P@8UXS*F5>,BP@8UXT*F4L(&-> +M-2P@82ID7C0L("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EQ[7'MA*F4L(&,J9"P@ +M82IC+"!A7C(J9%XR+"!A7C,J9"P@85XR*F(J9"P@8UXR*F5>,RP@8UXS*F5> +M,BP@8UXT*F4L(&->-2`D7&-D;W1<8V1O=%QC9&]T)%Q<"EQ[7'MA*F4L(&$J +M8RP@8RID+"!A7C(J8BID+"!A7C,J9"P@85XR*F1>,BP@8UXR*F5>,RP@8UXS +M*F5>,BP@8UXT*F4L(&->-2`D7&-D;W1<8V1O=%QC9&]T)%Q<"EQE;F1/=71P +M=70*"DET(&ES(&%N(&]P96X@<')O8FQE;2!W:&5T:&5R('1H92!T;W)I8R!( +M:6QB97)T('-C:&5M92`D2&EL8E]!)"!ITA3.E-A;GT@ +MW1H96]R96U](`I4:&4@=&]R:6,@2&EL8F5R="!S8VAE;64@)$AI;&)?020@ +M:7,@8V]N;F5C=&5D(&EF(&%N9"!O;FQY(&EF('1H92`*9FQI<"!GW1H96]R96U]"@I792!N;W<@:&%V +M92!T=V\@86QG;W)I=&AMUQI="!<:65[8F%C +M:W1R86-K:6YG(&%L9V]R:71H;7U]('=H;W-E(%Q-='=O"FEM<&QE;65N=&%T +M:6]N('=A2!C87)R>6EN9R!O=70@ +M;&]C86P@9FQI<',@87,@86)O=F4N("!4:&ES('!R;V-E9'5R92!I2!I9B`D2&EL8E]!)"!I>W5?"!A;&=O +MUQT="!P;VQA"!<T9-97TL('=H:6-H(&ES +M(&)A6AE9')O;B!T;R!I=',@:6YE<75A;&ET>0IR97!R97-E +M;G1A=&EO;B!A;F0@=FEC92!V97)S82X@02!S:6UP;&4@97AA;7!L92!I`I<T9-97TN($EN('!A'1R96UE(')A>7,@;V8@=&AE('M<96T*1W)<(F]B;F5R(&-O;F5< +M:6YD97A[1W)O8FYE;B!<+#H@7"QW(%QC9&]T("AU7VD@+2!V7VDI(%QG97$@,%PL)`IF +M;W(@96%C:"`D>%Y[=5]I?2UX7GMV7VE](%QI;B![7&UA=&AC86P@1WU2AN=6UG +M96YS($TL(&D@+3X@*%Q<"EP@("`@("`@("`@("`@("`@(',@.CT@8F%S:7,H +M9&5G&%M<&QE+"!C;VYS:61E +M,BIB*F0L(&%>,BID7C(L(&$J8EXS*F0L(&$J +M8EXR*F1>,BP@82IB*F1>,RP@7%P*7"`@("`@("`@("`@("`@("!A*F,L(&$J +M9%XT+"!A*F4L(&)>-2ID+"!B7C0J9%XR+"!B7C,J9%XS+"!B7C(J9%XT+"!< +M7`I<("`@("`@("`@("`@("`@(&(J9%XU+"!B*F4L(&,J95XU*3L@7%P*7&5M +M<'1Y3&EN90IO,S$@.B!)9&5A;"!O9B!27%P*7&5N9$]U='!U=`I<8F5G:6Y/ +M=71P=70*:3,R(#H@=&]3=')I;F<@V(J8UXS+"!C7C0L(&->,RIE+"!C7C4L(&->-"IE+"!C +M7C,J95XR+"!B7C(L(&->,BIE7C,L(&(J9"P@8UXV+"`D7&-D;W1<8V1O=%QC +M9&]T)%Q<"EQE;F1/=71P=70*"D9R;VT@=&AE('!A:7)S("1X7G4L>%YV)"!O +M9B!M:6YI;6%L(&=E;F5R871O=20@86YD"G1H92!C;W)R97-P;VYD +M:6YG('-T86YD87)D(&UO;F]M:6%L%YV)"P@=&AE(&9U;F-T:6]N('M< +M='0@:6YE<75A;&ET:65S?0IC'!O;F5N=',H"!:6B`@/"TM+2!:6EQ<"EQE;F1/=71P=70*"DET +M(&ES(&-O;G9E;FEE;G0@=&\@2A,+"!I("T^(&D@+R\@9RDI.UQ<"EQE;F1/=71P=70*"EQB96=I;D]U +M='!U=`II,S8@.B!L;V%D(")P;VQAW@@7&EN('M<;6%T:&)B(%)]7FX@.B!G(%QC9&]T('@@7&QE<2`P +M)"P*9F]R(&%L;"!C;VQU;6YS("1G)"!O9B![7'1T(&EN97%S?2!UQT=`IP;VQA2!T:&4@8V]L=6UN +M"![ +M7'1T('!R;V1S?2!AF5R;RX@5&AIUQT +M="!M?2!A;F0@;W1H97)W:7-E(')E='5R;G,@=&AE(&)O;VQE86X@>UQT="!F +M86QS97TN($YO=&EC92!T:&%T(`II9B`D320@:7,@8V]H97)E;G0L('1H92!C +M;VYE("0M2R0@:7,@=&AE($=R7")O8FYEUQT="!I,CE] +M(&ES(&-O:&5R96YT+@H*7&)E9VEN3W5T<'5T"FDS."`Z(&1E8VED94-O:&5R +M96YC92!-7%P*7&5M<'1Y3&EN90IO,S@@/2!<>S`L(#`L(#$L(#$U+"`Q.%Q] +M7%P*7&5M<'1Y3&EN90IO,S@@.B!,:7-T7%P*7&5N9$]U='!U=`H*2&5N8V4L +M("1-)"!I&%M +M<&QE("A<T]U'TI+B!(97)E(&ES(&]N92!O9B!T:&4@-34@ +M;F]N8V]H97)E;G0*;6]N;VUI86P@)$$D+6=R861E9"!I9&5A;',@;V8@=&AI +M,RIE+&%>,RID+&->-"QA*F1>-"QA7C(J9%XS+&,J95XU+%Q< +M"EP@("`@("`@("`@("`@("`@(&->,BIE7C0L9%XW*3M<7`I<96UP='E,:6YE +M"F\S.2`Z($ED96%L(&]F(%)<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II +M-#`@.B!D96-I9&5#;VAE4QI;F4*;S0P(#T@9F%L +M&5S(&1E9FEN960@;VX@)$$D +M+B`@5&AI0IR96QA=&5S('1H92!F;&EP(&=R87!H(&]F('1H92!T +M;W)I8R!(:6QB97)T('-C:&5M92!T;R!T:&4@0F%U97,*9W)A<&@@;V8@=&AE +M(&-O;F9I9W5R871I;VX@)$$D+B`@("`@("`@("`@("`@("`@("A3964@7&-I +M=&5[2%,Z4F5I;F5R?2!F;W(@80IS=7)V97D@;V8@=&AE($)A=65S('!R;V)L +M96T@86YD(&ET9"0N($$@>UQE;2!< +M:65[<&]L>6AE9')A;"!S=6)D:79IUQS:6=M87TI)"!O9B`D<&]S*$$I)`IS=6-H('1H870@=&AE('5N +M:6]N(&]F('1H97-E('-U8F-O;F5S(&ES("1P;W,H02DD(&%N9"!T:&4@:6YT +M97)S96-T:6]N"F]F(&%N>2!T=V\@S$L7&QD;W1S+&YR!<2!T:&%T("1<1&5L=&$D(&ES(&$@>UQE;0H@(%QI97MTUQS:6=M87TD(&)E('1H92!P6AE9')A;`IS=6)D:79ITA3.E-T,GU]75QL86)E;'MP;VQYUQS +M:6=M87TD(&ES(&$*("!PUQS:6=M87TD+@I<96YD>W1H96]R96U]"@I792!S87D@ +M=&AA="`D7$1E;'1A*$DI)"!S=7!P;W)TUQE;2!C;VAE +M'MTW-E +M8V]N9&%R>2!P;VQY=&]P97U](&]F("1!)"!<8VET97M(4SI"1E-]+`I<8VET +M97M(4SI'2UI]+B`@"@I)="!IUQE;2!3 +M=&%N;&5Y+5)E:7-N97)](&ED96%L7&EN9&5X>U-T86YL97DM4F5IUQ$96QT87T@.CT@7&QA;F=L92!X7WMI7S%]>%][:5\R?0I< +M8V1O=',@>%][:5]K?2`Z(%Q[(&E?,2P@:5\R+"!<;&1O=',L(&E?:R!UQ$96QT82A-*7TD +M(&ES('1H92`*2U2 +M96ES;F5R(&ED96%L"!I;@IO +M=7(@&%M<&QE(&AAS(L,UQ]+%Q[,RPT7'TL7'LT+#5S$L,UQ]+%Q[,RPT7'TL7'LT+#5< +M?5Q])'T@)EPL7"Q<+%PL)%QL969TS$L,EQ] +M+%Q[,BPT7'TL7'LT+#5R1<>UQ[,2PR7'TL7'LR+#-S,L-5Q]7'TD?2`F7"Q<+%PL7"PD +M7&QE9G1R:6=H=&%RR1<>UQ[,2PS7'TL7'LS+#5S$L-%Q]+%Q[-"PU7'UR1<>UQ[,2PR7'TL7'LR+#5S$L-5Q]7'TD?2`F7"Q<+%PL +M7"PD7&QE9G1R:6=H=&%RTA3.E)E:6YE2!A +M2!P;VQY=&]P92!O9B`D020@8V]R +M71O<&4@;V8@)$$D+B`@5&AE($)A=65S('!R +M;V)L96T@=V%S"G)E8V5N=&QY('-E='1L960@8GD@4V%N=&]S(%QC:71E>TA3 +M.E-A;GT@=VAO(&=A=F4@86X@97AA;7!L92!O9B!A('-I>`ID:6UE;G-I;VYA +M;"!P;VEN="!C;VYF:6=UTA3 +M.E-T,GTI+B!(96YC92P@=&AE(&UA<"!F&ES=&5N8V4@;V8*82!D:7-C;VYN96-T +M960@0F%U97,@9W)A<&@@:6UP;&EE"`D020@;V8@ +M9G5L;"!R;W<@VUA=')I>"%U +M;FEM;V1U;&%R?2!I9B!T:&4@86)S;VQU=&4@=F%L=64@;V8@96%C:"!O9B!I +M=',@;F]N+7IE'!E8W0L(%-A;G1OTA3.E-T,GU]75QL86)E;'MU;FEM;V1U;&%R +M?0I)9B`D020@:7,@=6YI;6]D=6QA"!S:6YC92!T:&5Y(&%R92!P&5S('-U<'!OV-C8V-C8V-C8WT*,28Q)C$F,"8P)C`F,"8P +M)C!<7`HP)C`F,"8Q)C$F,28P)C`F,%Q<"C`F,"8P)C`F,"8P)C$F,28Q7%P* +M,28P)C`F,28P)C`F,28P)C!<7`HP)C$F,"8P)C$F,"8P)C$F,%Q<"C`F,"8Q +M)C`F,"8Q)C`F,"8Q(%QE;F1[87)R87E](%QR:6=H="`I+B0D"E=E(&-A;B!N +M;W<@=7-E(&]UUQ[,2PQ+#$L,2PQ+#$L +M,2PQ+#%S`L,"PP+#$L,2PQ+#`L,"PP7'TL7'LP+#`L,"PP+#`L,"PQ +M+#$L,5Q]+%Q<"EP@("`@("`@(%Q[,2PP+#`L,2PP+#`L,2PP+#!S`L +M,2PP+#`L,2PP+#`L,2PP7'TL7'LP+#`L,2PP+#`L,2PP+#`L,5Q]7'T[(%Q< +M"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDT,B`Z($DR,B`]('1O +M,B!<=&EM97,@7%!>,B0*96UB961D960@:6X@)%Q07C@D('9I82!T:&4@4V5G +M4QI;F4*7"`@("`@("`@("`@("`@,2`@("`@ +M("`Q-5Q<"F\T,R`Z($UA=')I>"!2("`\+2TM(%)<7`I<96YD3W5T<'5T"EQB +M96=I;D]U='!U=`II-#0@.B!G96YEV8J:"P@9"IH+"!C*F@L(&8J9RP@8RIG+"!B*FV4J:2P@9"II+"!C*F@L(&4J9RP@8RIG+"!B +M*FV4J:2P@8RIH+"!F +M*FV4J:2P@8RIH+"!F*FV4J:2P@9"II+"!C*F@L(&4J9RP@8RIG+"!B*FUQT="!D +M96-I9&5#;VAEV5Q=6%T:6]N?0I<;&%B96Q[1W)O8FYE>W9?,7T@7"P@+"!<+%PL('A>>W5?,GT@ +M+2`@>%Y[=E\R?2!<+"P@7"Q<+"!<;&1O=',@7"P@+"!<+%PL"GA>>W5?%Y[=E]R?5PL(%QB:6=R7'T@+@I<96YD>V5Q=6%T:6]N?0I4:&4@:6YI +M=&EA;"!I9&5A;"`D7"Q-(#T@:6Y?=RA)7T$I(#T@7&QA;F=L92!X7GMU7S%] +M+"!X7GMU7S)]+"!<;&1O=',L"GA>>W5?*BE>;B0M9FEX960@<&]I;G0@;VX@=&AE('1O +M&5D('!O:6YT+B`@02!V87)I86YT(&]F +M('1H:7,@;65T:&]D(&%L65T(&9U;&QY(&EM<&QE;65N=&5D(&EN(%Q- +M='=O+B!3964@7&-I=&5[2%,Z4%,R?0IF;W(@9&5T86EL +M*BE>;B0M9FEX960@<&]I;G1S("1-)"!A;F0@:71S(&5D9V5S"F-O*BE>;B0M9FEX960@8W5R=F5S+B`@0GD@8V]M<'5T +M:6YG(&%N9`ID96-O;7!OT9L871&86UI;'E] +M"B!X7GMU7S%]("T@('I?,2!<8V1O="!X7GMV7S%](%PL+"!<+%PL"B!X7GMU +M7S)]("T@>E\R("!<8V1O="!X7GMV7S)](%PL+%PL(%PL(%QL9&]T%Y[=5]R?2`M("`@>E]R(%QC9&]T('A>>W9?ETD(&EN("`D +M;BMR)"!I;F1E=&5R;6EN871E'1E;F1E9"!T;R!A;B!E;&EM:6YA=&EO;B!T97)M(&]R9&5R"FEN("1< +M:UMX+'I=)"!S;R!T:&%T("1X7GMU7VE])"!I%Y[=5]I?2`M("!Z7VD@7&-D;W0@>%Y[=E]I?2`D(&9OT9L871& +M86UI;'E]*2X*1F]R(&5A8V@@)%,D+7!A:7(*)"0*7&9R86-[;&-M*'A>>W5? +M:7TL>%Y[=5]J?2E]>WA>>W5?:7U](%QC9&]T("AX7GMU7VE]("T@>E]I(%QC +M9&]T"GA>>W9?:7T@*2!<+%PL7"P@+2!<+%PL7"P@7&9R86-[;&-M*'A>>W5? +M:7TL>%Y[=5]J?2E]>WA>>W5?:GU](%QC9&]T"BAX7GMU7VI]("T@>E]J(%QC +M9&]T('A>>W9?:GTI("0D"G=E(&-O;7!U=&4@82!N;W)M86P@9F]R;2!W:71H +M(')E7TI('5S:6YG('1H92!E>'1E +M;F1E9"!T97)M(&]R9&5R("1W)"X@(%1H92!R97-U;'0*:7,@82!B:6YO;6EA +M;"!I;B`D7&M;>"QZ720@=&AA="!F86-T;W)S(&%S(`HD)"`@>%Y<86QP:&$@ +M7&-D;W0@>EY<8F5T82!<8V1O="`@*"!Z7EQG86UM82`M('I>7&1E;'1A("D@ +M+"`D)`IW:&5R92`D7&%L<&AA(%QI;B!<3EYN)"!A;F0@)%QB971A+%QG86UM +M82Q<9&5L=&$@7&EN(%Q.7G(D+@I.;W1E('1H870@=&AIE]R720@9V5N97)A=&5D(&)Y(&%L;"`* +M8FEN;VUI86QS("1<+"!Z7EQB971A(%QC9&]T("`H('I>7&=A;6UA("T@>EY< +M9&5L=&$@*2!<+"0*9V]T=&5N(&9R;VT@;F]R;6%L(&9OTA3.E!3,GU=7&QA8F5L>VQO8V%L97%N2!T:&ES('1E8VAN +M:7%U92!T;R!C;VUP=71E(&$@<&%R=&EC=6QA2I]"B8@7&)I9VQ<>R!<+&$@92`M('I?,2!B +M(&0@+"`@7"P*(&,@9"`M('I?,B!B(&4@+"!<+`H@82!C("T@>E\S(&)>,B`L +M(%PL"B!A7C(@9%XR("T@>E\T(&->,R!E("P@7"P*(&%>,B!B(&0@+2!Z7S4@ +M8UXT("P@7%P@)@H@85XS(&0@+2!Z7S8@8B!C7C,@+"!<+`H@8UXR(&5>,R`M +M('I?-R!A(&1>-"`L(%PL(`H@8UXS(&5>,B`M('I?."!A(&(@9%XS("P@7"P* +M(&->-"!E("T@>E\Y(&$@8EXR(&1>,B`L(%Q<("8*(&->-2`M('I?>S$P?2!A +M(&)>,R!D("P@7"P*(&,@95XU("T@>E][,3%](&1>-B`L(%PL"B!A(&1>-2`M +M('I?>S$R?2!B(&,@95XT("P@7"P*(&(@95XV("T@>E][,3-](&1>-R`@7"P@ +M7&)I9W)2I]"DEF('=E('-E="`D7"P@>E\Q(#T@ +M>E\R(#T@7&-D;W1S(#T@>E][,3-](#T@,5PL)`IT:&5N('=E(&=E="!A(&=E +M;F5R871I;F<@2!S971T:6YG"B1<+"!Z7S$@/2!Z +M7S(@/2!<8V1O=',@/2!Z7WLQ,WT@/2`P(%PL)`IG96YE&%M +M<&QE+B!4:&4@86)O=F4@ETD(&=I=F4@=&AE('5N:79EE\Q+"!<;&1O +M=',L('I?>S$S?20L('=H;W-E"F1E9FEN:6YG(&5Q=6%T:6]N7IY9WD@;V8@)$TD+"!F;W)M('1H96ER("13)"UP86ER(&%N +M9"!T:&5N(')E9'5C92!I="!T;R!A(`IN;W)M86P@9F]R;2!W:71H(')E-B`@ +M+2!Z7WLQ,'T@82!B7C,@9"!E7C4*7"P@7&QO;F=R:6=H=&%R +M-"!D7C(@95XT(%QC9&]T("AZ7S)>-"!Z7WLQ,7T@+2!Z7S$@>E][,3!]*2X* +M)"0*16%C:"!S=6-H(&YOE\Q+"!<;&1O=',L('I? +M>S$S?20N("!4:&4@B0M=F%R:6%B;&5S+"!G96YE2`D,CE]N+"!<7`I<("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("!796EG:'1S(#T^(&9L871T96X@ +MF4]/C$V73M<7`I<("`@("`@("`@("!- +M(#T@7H@32D[7%P*7"`@("`@("`@("`@9R`Z/2!F;W)C94="(&=E;G,@ +M2CM<7`I<("`@("`@("`@("!"(#T@*&-O969F:6-I96YT4FEN9R!2*5MZ7S$@ +M+BX@>E]N+$UO;F]M:6%L4VEZ93T^,39=.UQ<"EP@("`@("`@("`@($9O;F5S +M(#H](&UA<"A"+%0L(&UA=')I>"A"+%Q[2`D=R0N(%1H:7,@:7,@9&]N92!A4QI;F4*;S0X(#H@261E86P@;V8@4EQ<"EQE;F1/=71P=70* +M7&)E9VEN3W5T<'5T"FDT.2`Z(%D@/2!145MA+BYE+"!-;VYO;6EA;%-I>F4@ +M/3X@,38L7%P*7"`@("`@("`@("`@("`@("`@($1E9W)E97,@/3X@=')A;G-P +M;W-E($$L(%=E:6=H=',@/3X@7'LY+#,L-2PP+#!4QI;F4*;S4P(#H@261E86P@;V8@65Q<"EQE;F1/=71P=70*"E1H +M92!I;FET:6%L(&ED96%L("1-)"!IUQT="!3?2!U2!F;W(@)$AI;&)?020@86)O=70@)$TD+"!T:&4@6=I97,@;V8@)$TD+B!4:&4@8V]M;6%N9"![ +M7'1T(&9OUQT +M=`H@($9O;F5S?2!IUQT="`H6YO;6EA;',@:6X@>UQT="!S<&%I +MUQT="!):&EL8GT@;V8@;&]C86P@ +M97%U871I;VYS(&ES(&=E;F5R871E9"!B>0IT:&4@:6UA9V4@;V8@=&AEB`@+2!Z("P@>B!Z("`M('H@+"`M('H@>B`@*R!Z("P@+2!Z +M('H@("L@>B`L("T@>B!Z("`K("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@ +M("`@("`@("`@(#$@,B`@("`S("`@,2`R("`@(#,@("`@(#0@-R`@("`R("`@ +M("`U(#@@("`@,B`@("`@,2`U("`@("1<8V1O=%QC9&]T7&-D;W0D7%P*7&5M +M<'1Y3&EN90IO-3$@.B!)9&5A;"!O9B!"7%P*7&5N9$]U='!U=`H*4F5M;W9I +M;F<@9'5P;&EC871I;VYS(&%M;VYG('1H92!G96YEE][,3!]>E][,3%]+`IZ7S(M>E\T +M>E\W+`IZ7S(M>E\U>E\X+`IZ7S(M>E][,3%]>E][,3)]+`IZ7S(M>E\Q>E][ +M,3%]>E][,3-]+%Q<"GI?,RUZ7S%Z7S(L"GI?,RUZ7S5Z7SDL"GI?-"UZ7S%Z +M7S4L"GI?-BUZ7S-Z7S4L"GI?-BUZ7S%Z7S)Z7S4L"GI?-RUZ7S%Z7WLQ,'TL +M"GI?."UZ7S%Z7SE\Y+7I?,7I?."P*>E][,3)]+7I?,7I?>S$S?2P* +M>E\Q>E\R+7I?-7I?.2P*>E\Q>E\R+7I?,7I?-7I?."P*>E\Q>E\R+7I?,5XR +M>E\T>E][,3!]+`IZ7S%Z7S(M>E\Q7C)Z7S5Z7SE\Q>E\R+7I?,7I? +M>S$Q?7I?>S$R?2P*>E\Q>E\R+7I?,GI?>S$P?7I?>S$Q?2P*>E\Q7C-Z7S0M +M>E\S>E][,3%]+`IZ7S%Z7S5Z7S@M>E\T>E\X+`IZ7S)Z7WLQ,'TM>E\Q>E][ +M,3)]+%Q<"GI?,WI?-"UZ7S%Z7S8L"GI?,WI?-RUZ7S)Z7S@L"GI?,WI?."UZ +M7S)Z7SDL"GI?,WI?>S$P?2UZ7S)Z7S<*7')A;F=L920N"EQS;6%L;'-K:7`* +M"DYO=&EC92!T:&%T('1H97)E(&%R92!M86YY(&=E;F5R871OUQT="!M:6Y06YO;6EA;"!Q=6]T +M:65N="!R:6YGUQT="!M:6Y06YO;6EA;"!R:6YG("AN;W0@<75O=&EE;G0@6EN9R!T:&ES('1O(&]U +MWH@('H@("P@>B!Z("!Z("`L('H@>B`@>B`@+"!Z('H@('H@ +M("P@>B`L('H@>B`@>B`@+"!Z("`@)%QC9&]T7&-D;W1<8V1O="1<7`I<("`@ +M("`@("`@("`@("`@(#$P(#$Q("`@-2`Q,"`Q,2`@(#4@,3`@,3$@("`U(#$P +M(#$Q("`@-2`@(#4@,3`@,3$@("`Q,"`D7&-D;W1<8V1O=%QC9&]T)%Q<"EQE +M;7!T>4QI;F4*;S4S(#H@4FEN9TUA<"!"(#PM+2T@0EQ<"EQE;F1/=71P=70* +M7&)E9VEN3W5T<'5T"FDU-"`Z(&ED96%L(&=E;G,@9V(H1R!*32E<7`I<96UP +M='E,:6YE"EP@("`@("`@("`@("`@("`S("`R("`@("`@("`R7%P*;S4T(#T@ +M:61E86PH>B!Z("!Z("`@+2!Z("!Z("!Z("`I7%P*7"`@("`@("`@("`@("`U +M(#$P(#$Q("`@(#$P(#$Q(#$S7%P*7&5M<'1Y3&EN90IO-30@.B!)9&5A;"!O +M9B!"7%P*7&5N9$]U='!U=`H*5&AUS$S?5TO2E]-(%PL7"P@7'-I;65Q(%PL7"P*7&9R86-[7&M; +M>E\U+'I?>S$P?2QZ7WLQ,7TL>E][,3-]77U[(%QL86YG;&4@>E\U('I?>WLQ +M,'U]7C,@>E][,3%]7C(@+0H@('I?>S$P?7I?>S$Q?5XR('I?>S$S?2!<UQK6WI?-2QZ7WLQ,'TL>E][,3%]+'I?>S$S?5U]"GM< +M;&%N9VQE("AZ7S4@>E][,3!]7C(@+7I?>S$S?2D@>E][,3!]>E][,3%]7C(@ +M7')A;F=L97TN)"0*2&5N8V4L('=E('-E92!I;6UE9&EA=&5L>2!T:&%T('1H +M97)E(&%R92!T:')E90IC;VUP;VYE;G1S('1HS$S?2E>7&EN9G1Y*2`D +M(&%N9"!H96YC92!T:&4@9FERE\U('I?>S$P?5XR("T@>E][,3-](#T@,"0@:6X@)%Q! +M7C0D+B`*270@:7,@E][,3!](#T@ +M,"0L(&ES(&%L2`D>E][,3%] +M7C(@/2`P)"!IW!R +M;W!O"`*)"1!(#T@7&QE9G0H(%QB96=I;GMM871R:7A]"B`@ +M("`@("`@("`@,2`F(#$@)B`Q("8@,2`F(#$@(%Q<(`H@("`@("`@("`@(#`@ +M)B`Q("8@,B`F(#<@)B`X(`I<96YD>VUA=')I>'T@7')I9VAT*20D"FES(&YO +M="!R961U8V5D+@I<96YD>W!R;W!OUQT="!'?2!FE\U+"!Z7WLQ,'TL>E][,3%])"!A;F0@)'I?>S$S?20N"@I<8F5G:6Y/=71P +M=70*:34U(#H@0U@@/2!145MA+BYE+"!Z7S4L>E\Q,"QZ7S$Q+'I?,3,L(%=E +M:6=H=',@/3Y<7`I<("`@("`@("`@("`@7'LY+#,L-2PP+#`L,"PP+#`L,%Q] +M73M<7`I<96YD3W5T<'5T"B`*7&)E9VEN3W5T<'5T"FDU-B`Z($8@/2!M87`H +M0U@L(')I;F<@2BP@;6%TV$L8BQC+&0L95Q]7'T@?"!<7`I<("`@ +M("`@("`@("`@("`@("`@"Q#6"DI7%P*7&5M +M<'1Y3&EN90I<("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@,R`@,B`@("`@(#0@(#,@("`@("`@("`@("`@("`D7&-D;W1<8V1O +M=%QC9&]T)%Q<"F\U-B`](&UA<"A#6"Q4+%Q[82P@8BP@8RP@9"P@92P@>B`@ +M>B`@+"!Z('H@('H@("P@>B!Z("!Z("`L('H@>B`@>B`@+"!Z("1<8V1O=%QC +M9&]T7&-D;W0D7%P*7"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M,3`@,3$@("`U(#$P(#$Q("`@-2`Q,"`Q,2`@(#4@,3`@,3$@("`@)%QC9&]T +M7&-D;W1<8V1O="1<7`I<96UP='E,:6YE"F\U-B`Z(%)I;F=-87`@0U@@/"TM +M+2!47%P*7&5N9$]U='!U=`I!<'!L>6EN9R!T:&ES(&UA<"!T;R![7'1T($I] +M('=E(&=E="!T:&4@:61E86P@>UQT="!*,7TL(`I<8F5G:6Y/=71P=70*:34W +M(#H@2C$@/2!&($I<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@(#,@(#(@("`@("`@("`@,B`@(#0@ +M(#,@("`@("1<8V1O=%QC9&]T7&-D;W0D7%P*;S4W(#T@:61E86P@*&,J9"`M +M(&(J92IZ("!Z("`L(&$J92`M(&(J9"IZ('H@('H@("P@82IC("T@8B!Z('H@ +M('H@("P@82`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("`@ +M("`@("`@("`Q,"`Q,2`@("`@("`@("`@("`U(#$P(#$Q("`@("`@("`@("`U +M(#$P(#$Q("`@("1<8V1O=%QC9&]T7&-D;W0D7%P*7&5M<'1Y3&EN90IO-3<@ +M.B!)9&5A;"!O9B!#6%Q<"EQE;F1/=71P=70*"EQN;VEN9&5N="!A;F0@861D +M:6YG('1H92!I9&5A;"`D7&QA;F=L92!Z7WLQ,7U>,B!<4QI;F4*;S4X +M(#H@261E86P@;V8@0UA<7`I<96YD3W5T<'5T"@I);B!T:&4@0IO9B![7&ET(%QI97MI;G1E9V5R('!R;V=R86UM:6YG?7TN(%-E +M92P@9F]R(&ENVUI;FEM86P@=&5S="!S971]?2!F;W(*=&AE(&9A +M;6EL>2!O9B!I;G1E9V5R('!R;V=R86US"EQB96=I;GME<75A=&EO;GT*7&QA +M8F5L>TE0?0I[7')M($UI;FEM:7IE?2!<<75A9`IW(%QC9&]T('4@7"Q<+%QQ +M=6%D"GM<UQR;2!A;F1]"B!<+%PL7"QU(%QI;B!<3EYN +M+"`*7&5N9'ME<75A=&EO;GT*=VAE;B0@87)E(&9I>&5D(&%N9"`D8B0@2!F96%S:6)L +M92!S;VQU=&EO;@IT;R`H7')E9GM)4'TI+"!T:&5N('1H92!C;W)R97-P;VYD +M:6YG(&]P=&EM86P@%YU("0@:7,@=&AE('5N:7%U +M92!N;W)M86P@9F]R;2!O9B`D>%Y[=2=])"!M;V1U;&\*=&AE($=R7")O8FYE +M>W4G?20*;6]D=6QO('1H92!B:6YO;6EA;',@*%QR969[ +M1FQA=$9A;6EL>7TI(&ENB0M9F%C=&]R('1H870@9&5P96YD +M%Y[=E][7&UU7VI]?0HD+B!4:&5N('=E('=O=6QD(&]B=&%I +M;B!T:&4@;F]R;6%L(&9OE][7&UU7S%]('I?>UQM=5\R?2!Z +M7WM<;75?,WT@7&-D;W1S('I?>UQM=5]M?2!<8V1O="!X7G4N)"0*4F5D=6-T +M:6]N('!A=&AS(&-A;B!H879E(&1I9F9E%Y[=5][7&YU7VI]?2!<E][7&YU7VI] +M(%QC9&]T('A>>W9?>UQN=5]J?7T@7"PD"F%T('1H92`D:B0M=&@@UQN=5\Q?2!Z7WM< +M;G5?,GT@>E][7&YU7S-](%QC9&]TVTG?7T@7&-D;W0@>%YU +M("`N)"0*"EQB96=I;GMT:&5OE][7&UU7S%]('I?>UQM +M=5\R?2!Z7WM<;75?,WT@7&-D;W1S('I?>UQM=5]M?2`M(`IZ7WM<;G5?,7T@ +M>E][7&YU7S)]('I?>UQN=5\S?2!<8V1O=',@>E][7&YU7WMM)WU]("0D(&5A +M8V@@96YC;V1I;F<@80IP86ER(&]F(&1IVQC;2AX7GMU7VE]+'A>>W5?:GTI?2`D+`IF +M;W(@)#$@7&QE<2!I+&H@7&QE<2!R("0N($-O;G9E2!R961U +M8W1I;VX*UQM=5\Q?2`@7&-D;W1S('I?>UQM +M=5]M?2`M"B!Z7WM<;G5?,7T@(%QC9&]TVTG?7T@(%PL)"!A +MT=R;V)N97)"87-IF5](%QQ +M=6%D"G<@7&-D;W0@=2!<+%PL7'%U860*>UQR;2!S=6)J96-T?2!<+%PL('M< +MS$P?7LU-GT@("!< +M+%PL7"P@>UQR;2!A;F1]"B!<+%PL7"QU(%QI;B!<3EXU+B0D"E1H97)E(&%R +M92`D,3DD(&1I9F9E2!T:&4@;6]N;VUI86P@"B1<+"!B7C,@9%XS(&5>-"`D+B!4 +M:&4@9V5N97)A=&EN9R!F=6YC=&EO;B!F;W(@=&AE2I]"B8@>E\Q7C(@*R`S('I?,2!Z7S)>,B!Z7S4@>E\W +M("L@,B!Z7S$@>E\R('I?-2!Z7S=>,B!Z7WLQ,GT*("L@,B!Z7S$@>E\R('I? +M-2!Z7S@@7%P@)B![?2`K(#(@>E\Q('I?,B!Z7WLQ,GT@>E][,3-]("L@>E\Q +M('I?-2!Z7SD@"B`K('I?,EXS('I?-"!Z7S4@>E\W7C(@*R!Z7S)>,R!Z7S0@ +M>E][,3-]("L@>E\R7C,@>E\U('I?>S$Q?2!<7"`F('M](`H@*R`R('I?,B!Z +M7S,@>E\U('I?-R`K('I?,R!Z7S4@>E\W7C(@>E][,3)]("L@>E\S('I?-2!Z +M7S@@*R!Z7S,@>E][,3)]('I?>S$S?2X*7&5N9'ME<6YA2I]"E1H92!D +M:69F97)E;F-E(&]F(&%N>2!T=V\@;6]N;VUI86QS(&EN('1H:7,@9V5N97)A +M=&EN9R!F=6YC=&EO;B`*:7,@82!V86QI9"!L;V-A;"!E<75A=&EO;B!F;W(@ +M=&AE('1OT]U'TI +M+B!&;W(@:6YS=&%N8V4L('1H92!B:6YO;6EA;"`*)%PL("!Z7S,@>E\U('I? +M-UXR('I?>S$R?2`M('I?,R!Z7WLQ,GT@>E][,3-](%PL)"!L:65S(&EN("1* +M7TTD+`IA;F0L(&-O;G9E2!B +M:6YO;6EA;',@;V)T86EN960@:6X@=&AIF5R;RUD:79IE\W7C(@>E][,3)]("T@>E\S('I?>S$R?2!Z7WLQ,WT*7&EN($I? +M32!<+"0L('=E(&=E="`*)%PL('I?-2!Z7S=>,B!Z7WLQ,GT@+2!Z7WLQ,GT@ +M>E][,3-](%PL)"P*=VAI8V@@9&]E>VE?,GT@8UY[:5\S +M?2!D7GMI7S1](&5>>VE?-7T@7"PD"F9O,B!Z7WLQ,GT@)"!A;F0*)"!Z7WLQ,GT@>E][,3-]("0@ +M87)E('5S960@=&\@E][ +M7&UU7S%]('I?>UQM=5\R?2!<8V1O=',@>E][7&UU7VU](%PL("T@7"P*('I? +M>UQN=5\Q?2!Z7WM<;G5?,GT@(%QC9&]TVTG?7T@("0*:6X@ +M5&AE;W)E;7Y<W!A=&AS?2!D;R!N;W0@9F]R;2!A('9E8W1OV%R7T@7')I +M9VAT("DD(&%N9"!T:&4@"G5N:79EPIA(&,@("`@+2!Z7S$@8EXR+"!<+`IA(&0@("`@ +M+2!Z7S(@8B!C+%PL"F$@92`@("`M('I?,R!C7C(L7"P*8B!D("`@("T@>E\T +M(&->,BQ<+`IB(&4@("`@+2!Z7S4@8R!D+%PL"F,@92`@("`M('I?-B!D7C(* +M7&)I9W)E\S("T@>E\R("!Z7S4L +M('I?,B`M('I?,2`@>E\T+"!Z7S4@("T@>E\T('I?-B!<E\Q('I?-2`M('I?,2!Z7S0@ +M>E\V(%PL)"!L:65S(&EN("1*7TTD"F)U="!T:&5R92!IE\Q("0@=&\@;W!T:6UA;&ET>2X@($EN9&5E9"P@86YY(&UO;F]M:6%L +M"G1H870@861M:71S('1H92!R961U8W1I;VYS("1Z7S$@>E\U)"!OE\U +M('I?,20@;75S="!B90ID:79IE\S(%PL("L@7"P@>E\Q('I?-"!Z7S4@ +M7"P@*UPL('I?,B!Z7S4I(%QC9&]T(&(@8UXR("0D"B0D(&%C92!<<75A9"!< +ME\S(%PL*R!<+'I?,2!Z7S0@>E\U(%PL*UPL +M"GI?,B!Z7S0@>E\V*2!<8V1O="!C7C,@+B`D)`I4:'5S(&5V97)Y(')E9'5C +M=&EO;B!T;R!O<'1I;6%L:71Y('5S:6YG("1Z7S$D(&%N9"`D>E\U)"!M=7-T +M"F%LE\U("T@>E\Q('I?-"!Z7S8@7"PD"FES(&YO="!I;B!T:&4@)%QK)"US<&%N +M(&]F('1H92!B:6YO;6EA;',@;&ES=&5D(&EN"E1H96]R96U^7')E9GMP871H +M2!T:&4@8V]M<&]N96YT(&]F('1H92!T;W)I8R!(:6QB97)T('-C:&5M90HD +M2&EL8E]!)"!T:&%T(&-O;G1A:6YS('1H92!P;VEN="!C;W)R97-P;VYD:6YG +M('1O('1H92!T;W)I8R!I9&5A;`HD25]!)"X@06X@)$$D+6=R861E9"!I9&5A +M;"!I2!I9B!I="!I2!T97)M(&]R9&5R(&9OF5D(&)Y(&$@=V5I +M9VAT('9E8W1O>VXM9'TD+B`@5'=O('=E:6=H=`IV96-T;W)S("1W)"!A;F0@)'UQI="!E<75I=F%L96YT?5QI;F1E +M>'MW96EG:'0@=F5C=&]R2!O<&5N(&-O;F5S(&]F(&$@<')O:F5C=&EV92!F86X*)%Q3:6=M +M85]!)"!C86QL960@=&AE('M<96T@1W)<(F]B;F5R(&9A;EQI;F1E>'M'TA3.E-4?2X@5&AIW1H96]R96U]"@I<8F5G:6Y[<')O;V9]"E1H92![7&ET +M(%QI97MD:79ITA3.E-T,GTN"@I4:&4@8VQO*BE>;B0@:7,@82!C +M;VYN96-T960@9W)O=7`N($ET(&ES(&$@8V]M<&]N96YT"F]F("1(:6QB7T$D +M(&)E8V%UV-O:&5R96YT(&-O;7!O;F5N='U](&]F("1(:6QB7T$D+@H*261E;G1I9GEI +M;F<@)"A<:UXJ*5YN)"!W:71H("1(;VU?7%I:*%Q:6EYN+"!<:UXJ*20L('=E +M(&YO=&4*=&AA="!T:&4@2!O9B!T:&4@ +M1W)<(F]B;F5R(&9A;BX@"@I&:7@@82!M87AI;6%L(&-O;F4@)%QS:6=M820@ +M:6X@=&AE($=R7")O8FYE%Y[=5\Q?2P@7&QD;W1S+"!X7GMU7W)](%QR86YG;&4D(`IB +M92!T:&4@8V]R +M>W5?,7T@+2`@>E\Q(%QC9&]T('A>>W9?,7T@7"PL(%PL7"P*('A>>W5?,GT@ +M+2!Z7S(@(%QC9&]T('A>>W9?,GT@7"PL7"P@7"P@7&QD;W1S(%PL("P*7"Q< +M+"!X7GMU7W)]("T@("!Z7W(@7&-D;W0@>%Y[=E]R?2!<7&EN9G1Y("0N"DET('1H +M96X@9F]L;&]W%Y[=5\Q+2!V7S%]+"!<;&1O=',L('A>>W5? +MW5V+6%L9V5B>W5?,BUV7S)]+"`@7&QD;W1S+`H@>%Y[ +M=5]R+79?%Y[=5]I +M?2`M('A>>W9?:7TD(&=E;F5R871E('1H92!T;W)I8R!I9&5A;"`D25]!)"X* +M5&AE(&-O;F4@9V5N97)A=&5D(&)Y('1H92!V96-T;W)S("1<+"!U7S$M=E\Q +M+"!<;&1O=',L('5?F%T +M:6]N(&]F('1H92!A9F9I;F4@=F%R:65T>0HH7')E9GMU=BUA;&=E8G)A?2D@ +M:7,@=&AE(&YO0I<8F5G:6Y[97%U +M871I;VY]"EQL86)E;'MN;W)M86PM=78M86QG96)R87T*('M<VYO0H@*%QR969[;F]R;6%L+75V+6%L9V5BW5V+6%L9V5B2P@=&AIF%T:6]N(&UO&EM86P@8V]N92`D7'-I +M9VUA)"!O9B!T:&4@"D=R7")O8FYEW5V+6%L9V5BF%T:6]N(&UA<"!FVYO;BUN;W)M86Q]"D$@/2!<;&5F="@@7&)E +M9VEN>V%R7T@7')I9VAT*2X*7&5N9'ME<75A=&EO;GT*"E1H92!L871T +M:6-E("1<+$X@/2`@2&]M7UQ:6B`H(&MEUQ[,2PQ+#$L,2PQ+#$L,5Q]+%Q[,"PV+#S8L-2PR+#8L-2PP +M+#!0H@("A<W5V+6%L9V5BVYO;BUN;W)M86Q]*2P@:7,@;F]T(&YOR8@85XR95Y[,35]9UY[,3A]+7I?,6)>,V-> +M-F1>>S$P?69>>S$V?2P@7"Q<+`IB7GLQ,WUD7GLQ-7UF7GLQ-GTM>E\R85XX +M8V5>>S(Q?6=>>S$T?2P@7%P@)@IC7GLU.7T@9%Y[-3=](&9>>S$Q,'T@+2!Z +M7S,@(&5>>SDR?2!G7GLQ,S1]+`IA(&->>S$T?2!D7GLQ,7T@9EY[,C-]("T@ +M>E\T("!B(&5>>S$Y?2!G7GLR.7TL(%Q<("8*8EXW(&->,B!G7C0@+2!Z7S4@ +M(&1>-"!E7C,@9EXV+"!<+%PL"EQL9&]T>S,T?2!D7GLS +M,GT@9EY[-C)]("T@>E][-#1]("!E7GLU,WT@9UY[-S9](%Q]+@I<96YD>V5Q +M;F%RW5V+6%L +M9V5BVI]("T@"GI?,5Y[ +M:5\Q?0IZ7S)>>VE?,GT*>E\S7GMI7S-]"GI?-%Y[:5\T?2!<:6X@($I?32`Z +M("AZ7S$@7&-D;W1S('I?>S0T?2E>7&EN9G1Y("0N"DAE;F-E('1H92!S96UI +M9W)O=7`@86QG96)R82!I;B`H7')E9GMU=BUA;&=E8G)A?2D@:7,Z"B0D(%QK +M(%QB:6=L6PH@7&9R86-[85XR(&5>>S$U?2!G7GLQ.'U]>R!B7C,@8UXV(&1> +M>S$P?2!F7GLQ-GU]+"`*(%QFR!B7GLQ,WT@9%Y[,35](&9>>S$V?2!] +M>V%>."!C(&5>>S(Q?2!G7GLQ-'U]+`H@7&9R86-[(&->>S4Y?2!D7GLU-WT@ +M9EY[,3$P?7T@>V5>>SDR?2!G7GLQ,S1]?2P@"B!<9G)A8WL@82!C7GLQ-'T@ +M9%Y[,3%](&9>>S(S?7T@>V(@95Y[,3E](&=>>S(Y?7T*7&)I9W)=(%PL7"Q< +M+"!<UQK6WI?,2QZ7S(L>E\S+'I?-%U]>UQL +M86YG;&4@>E\Q7C4@('I?,B!Z7S,@+2!Z7S1>,B!<7!E2!T +M:&4*3&%UWI?,5XR?2!<+%PL(#T@7"Q<+"`**"!Z7S$@ +M>E\R('I?,RE>>UQFS%]>S)]?2`@7"Q<+"`](%PL7"P@"EQFR!B +M7C4@8UY[,C9](&1>>S,Q?2!F7GLU-7U]>V%>,R!E7GLT.7T@9UY[-C5]?2X* +M7&5N9'ME<75A=&EO;GT*2&5N8V4@=&AE(&%F9FEN92!C:&%R="`H7')E9GMN +M;W)M86PM=78M86QG96)R87TI(&]F('1H92!T;W)I8R!V87)I971Y"F]F('1H +M92!'E\R+'I?,RQY72\@7&QA;F=L +M90IZ7S$@('I?,B!Z7S,@+2!Y7C(@7')A;F=L920L(`IW:&5R92`D>20@;6%P +M&%M:6YE('1H92!L;V-A;"!E<75A=&EO;G,@;V8@)$AI;&)?020@86)O +M=70@)$TD(&9O&%M<&QE+@I<8F5G:6Y/=71P=70*:38T(#H@ +M2DT@/2!L;V-A;$-O:&5R96YT17%U871I;VYS*$E!*5Q<"EQE;7!T>4QI;F4* +M7"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@)%QC9&]T7&-D;W1<8V1O="1< +M7`IO-C0@/2!I9&5A;"`H>B!Z("`M('H@+"!Z('H@("T@>B`L('H@>B`@+2!Z +M("P@>B!Z("`M('H@+"!Z('H@("T@>B`L('H@("1<8V1O=%QC9&]T7&-D;W0D +M7%P*7"`@("`@("`@("`@("`@,2`R("`@(#,@("`Q(#(@("`@,R`@(#$@-2`@ +M("`T("`@,2`S("`@(#8@("`Q(#,@("`@-B`@(#$@)%QC9&]T7&-D;W1<8V1O +M="1<7`I<96UP='E,:6YE"F\V-"`Z($ED96%L(&]F($)<7`I<96YD3W5T<'5T +M"EQB96=I;D]U='!U=`II-C4@.B!'(#T@4QI;F4*;S8U(#H@4FEN9TUA<"!"(#PM+2T@0EQ< +M"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDV-B`Z('1O4W1R:6YG(&ED96%L +M(&=E;G,@9V(H1R!*32E<7`I<96UP='E,:6YE"F\V-B`](&ED96%L*'I?,S(J +M>E\T,EXR*GI?-#0M>E\S-UXR*GI?-#(L>E\S,EXS*GI?,S4J>E\S-UXR+7I? +M-#)>,BIZ7S0@)%QC9&]T7&-D;W1<8V1O="1<7`I<96YD3W5T<'5T"@I4:&ES +M(&ED96%L(&AAE\T,EXR>E\T-"UZ7S,W7C)Z7S0R+`HE)24@ +M>E\S,EXS>E\S-7I?,S=>,BUZ7S0R7C)Z7S0T+`HE)24@>E\S,EXT>E\S-7I? +M,SE\S-WI?-#(L"B4E)2!Z7S,R7C)Z7S,U>E\S-UXT>E\T,BUZ7S0R7C1Z +M7S0T7C(L"B4E)2!Z7S,R>E\S-7I?,S=>-GI?-#(M>E\T,EXU>E\T-%XS+`HE +M)24@>E\S-7I?,S=>.'I?-#(M>E\T,EXV>E\T-%XT(%QR86YG;&4D"G=E('-E +M92!T:&%T('1H97)E(&%R92!F:79E(&-O;7!O;F5N=',@"G1H2!T:&4@:61E86QS.B`*7&)E9VEN +M>VET96UI>F5]"EQI=&5M("1<;&%N9VQE('I?>S,R?7I?>S0R?7I?>S0T?2UZ +M7WLS-WU>,BQZ7WLS,GU>-'I?>S,U?2UZ7WLT,GTL"GI?>S,R?5XS>E][,S5] +M>E][,S=]7C(M>E][-#)]7C)Z7WLT-'TL"GI?>S,R?5XR>E][,S5]>E][,S=] +M7C0M>E][-#)]7C-Z7WLT-'U>,BQ<7`I<:6YD96YT(%QI;F1E;G0@>E][,S)] +M>E][,S5]>E][,S=]7C8M>E][-#)]7C1Z7WLT-'U>,RP*>E][,S5]>E][,S=] +M7C@M>E][-#)]7C5Z7WLT-'U>-"!<E][-#1]+'I?>S,W?2!<E][-#)]7C(@7')A;F=L920*7&ET96T@)%QL86YG;&4@>E][-#)]+'I?>S,U +M?2!<E][-#)]+'I?>S,R?5XS(%QR +M86YG;&4D+@I<96YD>VET96UI>F5]"D%L;"!F:79E(&-O;7!O;F5N=',@87)E +M('1HE\T-"UZ7S,W7C(L>E\S,EXT +M*GI?,S4M>E\T,BQ<7`I<("`@("`@("`@('I?,S)>,RIZ7S,U*GI?,S=>,BUZ +M7S0R7C(J>E\T-"QZ7S,R7C(J>E\S-2IZ7S,W7C0M>E\T,EXS*GI?-#1>,BQ< +M7`I<("`@("`@("`@('I?,S(J>E\S-2IZ7S,W7C8M>E\T,EXT*GI?-#1>,RQZ +M7S,U*GI?,S=>."UZ7S0R7C4J>E\T-%XT*3M<7`I<96UP='E,:6YE"F\V-R`Z +M($ED96%L(&]F($)<7`I<96YD3W5T<'5T"@I!<'!L>6EN9R![7'1T(')E;6]V +M95)E9'5N9&%N=%9AW=I=&YE4QI +M;F4*7"`@("`@("`@("`@("`U("`@("`@("`@("`R7%P*;S8Y(#T@:61E86PH +M>B`@>B`@>B`@("T@>B`@*5Q<"EP@("`@("`@("`@("`@,S(@,S4@-#0@("`@ +M,S=<7`I<96UP='E,:6YE"F\V.2`Z($ED96%L(&]F($)<7`I<96YD3W5T<'5T +M"@I4:&5R92!ITA3.D1*?2!F;W(@"F-O;7!U=&EN9R!T:&4@7&EE>VYO2!A9F9I;F4@=F%R:65T>2X@"DEN('1H92!T;W)I8R!C +M87-E+"!T:&4@<')O8FQE;2!O9B!N;W)M86QI>F%T:6]N(&%M;W5N=',@=&\@ +M(`IC;VUP=71I;F<@=&AE(&UI;FEM86P@>UQE;2!<:65[2&EL8F5R="!B87-I +M&-M9'M.;W)M86QI>GT@8GD@0G)U;G,@86YD"DMO8V@@ +M7&-I=&5[2%,Z0DM]+@H*3W5R(&-O;7!U=&%T:6]N86P@7-T96T@;V8@97%U +M871I;VYS('1E;F1S('1O(&)E('1O;R!L87)G92`*9F]R(&UO'1R82!I;F1E=&5R;6EN871E("1Z +M)"P@86YD('=E(&-O;G-I9&5R('1H92`D7$XD+6=R861E9"!S96UI9W)O=7`* +M86QG96)R82`D7"Q<:UMZ('M<;6%T:&)F($=]72`D+"!W:&EC:"!I%]I*2`](#`D+B!,86)E;&EN9R!T:&4@96QE;65N=',@;V8@)'M< +M;6%T:&)F($=])"!W:71H"FEN9&5T97)M:6YA=&5S("1Y7VDD+"!W92!C86X@ +M=W)I=&4*)"0@7&M;>B![7&UA=&AB9B!'?5T@("`](`I<:UMY7S$L>5\R+%QL +M9&]T>VXK,7TD+@I792!N;W1E('1H870@ +M=&AE('1O*BE>;B0@86-TV%RUQ[ +M,2PQ+#$L,5Q]+%Q[,"PQ+#(L,UQ]7'T[7%P*7&5N9$]U='!U=`I<8F5G:6Y/ +M=71P=70*:3"!2("`\+2TM(%)<7`I<96YD +M3W5T<'5T"EQB96=I;D]U='!U=`II-S,@.B!F:6)EUQ[,BP@ +M,EQ](#T^('P@86,@8C(@?"`@("`@7'U<7`I<("`@("`@("`@("`@("`@(%Q[ +M,BP@,UQ](#T^('P@860@8F,@?%Q<"EP@("`@("`@("`@("`@("`@7'LR+"`T +M7'T@/3X@?"!B9"!C,B!\7%P*7"`@("`@("`@("`@("`@("!<>S,L(#-6YO;6EA;"!R:6YG(&EN("0R,B0@=F%R:6%B;&5S"B1Y7S$L>5\R +M+%QL9&]T2`D,3@P)"!B:6YO;6EA;"!Q=6%DB`]('-Y;6)O;"!Z.UQ<"EQE;F1/ +M=71P=70*7&)E9VEN3W5T<'5T"FDW."`Z(%,@/2!145MA+&(L8RQD+'I=.UQ< +M"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDW.2`Z('I'(#T@>B`J*B!S=6)S +M=&ET=71E*&=E;G,@1RP@4RD[7%P*7&5M<'1Y3&EN90I<("`@("`@("`@("`@ +M("`Q("`@("`@(#(R7%P*;S5\R,ET[ +M7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3@Q(#H@1B`](&UA<"A3+%(L +M>DBP@82!B(&,J9"!Z+"!A(&(@ +M("1<8V1O=%QC9&]T7&-D;W0D7%P*7&5M<'1Y3&EN90IO.#$@.B!2:6YG36%P +M(%,@/"TM+2!27%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3@R(#H@4$$@ +M/2!T2`@>2`@("T@>2`@>2`@+"!Y +M("!Y("`@+2`@)%QC9&]T7&-D;W1<8V1O="1<7`I<("`@("`@("`@("`@("`R +M,2`@("`R,"`R,B`@(#$Y(#(Q("`@(#$X(#(R("`@,3@@,C$@("`@,3<@,C(@ +M("`Q-R`R,2`@("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EQE;7!T>4QI;F4*;S@R +M(#H@261E86P@;V8@4EQ<"EQE;F1/=71P=70*"E1H97-E(&5Q=6%T:6]N4QI;F4*;S@T(#T@,S!<7`I< +M96YD3W5T<'5T"@I4:&4@TA3.D5I5]I(%QN97$@,"0N(`H*7&)E9VEN3W5T<'5T"FDX-2`Z($%F9B`](&%P<&QY +M*#$N+C(R+"!V("T^("A<7`I<("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("!+(#T@5\Q7C0J>5\V7C8J>5\R,2TQ*5Q<"FED96%L*"E<7`II +M9&5A;"AY7S%>,BIY7S$Q7C(J>5\Q-RTQ*5Q<"FED96%L*'E?,5XS*GE?.5XR +M*GE?,C%>,BTQ*5Q<"FED96%L*'E?-EXS*GE?,C$M>5\Q,"QY7S$J>5\Q,%XS +M+7E?-EXR+'E?,2IY7S8J>5\Q,%XR*GE?,C$M,2E<7`II9&5A;"AY7S8J>5\Q +M-2TQ+'E?,BIY7S$U7C(M>5\V*GE?,30L>5\V7C(J>5\Q-"UY7S(J>5\Q-2E< +M7`II9&5A;"@I7%P*:61E86PH>5\Q,2IY7S$S+3$L>5\Q7C(J>5\R,5XS+7E? +M,3->,BE<7`II9&5A;"AY7S%>,BIY7S$T7C,J>5\R,5XS+3$I7%P*:61E86PH +M>5\Q,%XR*GE?,C$M,2QY7S$J>5\Q-5XT+7E?,3!>,RE<7`II9&5A;"@I7%P* +M:61E86PH>5\Q,2IY7S(P+3$L>5\S*GE?,C!>,BUY7S$Q*GE?,35\Q,5XR +M*GE?,35\S*GE?,C`I7%P*:61E86PH>5\Q,2IY7S$X*GE?,C$M,2QY7S$J +M>5\R,5XS+7E?,3$J>5\Q.%XR+'E?,3%>,BIY7S$X7C,M>5\Q*GE?,C%>,BE< +M7`II9&5A;"AY7S$J>5\Q.5XT*GE?,C%>-"TQ*5Q<"FED96%L*'E?,34J>5\R +M,BTQ*5Q<"FED96%L*"E<7`II9&5A;"AY7S(P*GE?,C(M,2E<7`II9&5A;"@I +M7%P*7&5N9$]U='!U=`H*0GD@97AA;6EN:6YG('1H97-E(&QO8V%L(&5Q=6%T +M:6]N5\Q+'E?,BQY7S,L>5\V+'E? +M>S$Q?2QY7WLQ-7TL>5][,C!])"!A;F0@)'E?>S(R?20N(`I">2!S971T:6YG +M(&%N>2!O9B!T:&5S92!E:6=H="!V87)I86)L97,@=&\@)#$D(&EN('1H90HD +M,3@P)"!Q=6%D&%M +M<&QE?0H*7&)E9VEN>W1H96]R96U](%QL86)E;'MIUQM871H8F8@1WU=)"X*7&5N9'MT:&5OW!R;V]F?2!4:&4@9FERUQM871H8F8@1WTI(#T@ +M4')O:B!<+"!<:UMY7S$L>5\R+%QL9&]T6YO;6EA;',*:6X@)%QK6WA?,2Q<;&1O=',L>%]N720@=&AA="!L:64@:6X@ +M=&AE("1I)"UT:"`@1W)A=F5R(&1E9W)E92X*5&AE(&1E9FEN:71I;VX@;V8@ +M)$$D+6=R861E9"!I9&5A;"!I;7!L:65S('1H870*)$D@7&-A<"!<:R!'7VDD +M(&ES(&$@;&EN96%R('-U8G-P86-E(&]F(&-O9&EM96YS:6]N("0Q)"!I;B`D +M7&L@1U]I)"X*5V4@W4@7&EN($=?:2!](&-?=2!X7G4@ +M7"PD+"!W:&EC:"!I6YO +M;6EA;"!T:&%T(&ES('-U<'!OUQM871H8F8@1WT@/2!'7S$@ +M1U\R(%QC9&]T*BE>;B0M86-T:6]N"F]N(&)O=&@@B![7&UA=&AB9B!'?5U<+"0*;V8@)%Q0*'M<;6%T:&)F($=]*20N +M(%1H:7,@:6YC;'5S:6]N"FES(&%N(&ES;VUOW4@7&EN($=?:2!]("!X7G4@7"PI("0D"F5Q=6%LF5R(&]F("1G*$E?02DD(&EN("0H7&M>*BE>;B0@"F-O;G-IUQM871H8F8@1WU=)"P*=V4@8V]N%YQ)"P@86YD(&QE="`@)%QS +M:6=M820@(&)E('1H92!C;VYE(&]F('1H90I'"`D<20@;V8@"G1H92!S=&%T92`@<&]L>71O<&4@9&5S8W)I8F5D +M(&%B;W9E("!<8VET95M<4R`S77M(4SI3=#)]+@I#;VYS:61EW5V+6%L9V5BV5Q=6%T:6]N?0I<;&%B96Q[;W1H97(M=78M86QG96)R87T*4W!E8R!< +M+%PL("!<:UM<+"!X7GMP+7%](%PL(#H@7"QX7G`@7&EN('M<;6%T:&)F($=] +M(%PL(%T*7&5N9'ME<75A=&EO;GT*3VX@=&AE(&]T:&5R(&AA;F0L('1H92!S +M96UI9W)O=7`@86QG96)R82!I;B`H7')E9GMO=&AEB![7&UA=&AB9B!'?5TD+@I<<65D"EQE;F1[<')O;V9]"@I<87!P96YD:7@* +M"EQS96-T:6]N>T9O=7)I97(M36]T>FMI;B!%;&EM:6YA=&EO;GU<:6YD97A[ +M1F]U6AE9')O;B!T;R!T:&4@;W1H97(N($ET(&ES"F)A7-T96T@;V8@ +M:6YE<75A;&ET:65S(%QC:71E('M(4SI::65]+B!4:&ES(&-O9&4@=V%S"G=R +M:71T96X@8GD@1W)E9R!3;6ET:"X*"D=I=F5N(&%N>2!C;VYE("1#(%QS=6)S +M970@7%)>9"0L('1H92!P;VQAR!X(%QI;B!<4EYD(%QM:60@>"!<8V1O="!Y +M(%QL97$@,"P@7&UB;WA[9F]R(&%L;%P@?2!Y"EQI;B!#7'TN)"0*"EQN;VEN +M9&5N="!&;W(@82`D9"!<=&EM97,@;B0@;6%T"!<:6X@7%)?>UQG97$@,'U>;B!V%F9FEN97TH6BD@/2!<>R!: +M('@@7&UI9"!X(%QI;B!<4EYN(%Q](%QS=6)S970@7%)>9"XD"D9O"!<;&5Q(#`L($5>="!X(#T@,%Q] +M+B0D(`I%<75I=F%L96YT;'DL("0H8V]N92A:*2`K(%QM871H:71[869F:6YE +M?2A(*2E>7'9E92`](&-O;F4H02D@*R!<;6%T:&ET>V%F9FEN97TH12DN)`H* +M5V4@;F]W(&1EUQT="!PUQT=`IR;W1A=&5-871R:7A]+B`*"EQM961S +M:VEP"E1H92!R;W5T:6YE('M<='0@<')I;6ET:79E?2!T86MEUQT="!,?2P@86YD(&1I=FED97,*96%C:"!E;&5M96YT +M(&]F('1H:7,@;&ES="!B>2!T:&5I2A, +M+"!I("T^(&D@+R\@9RDI.UQ<"EQE;F1/=71P=70*"EQM961S:VEP"E1H92!R +M;W5T:6YE('M<='0@=&]:6GT@8V]N=F5R=',@82!L:7-T(&]F(')A=&EO;F%L +M(&YU;6)E2A,+"!E("T^(&1E;F]M:6YA=&]R(&4I.UQ<"EP@ +M("`@("`@("`@(%(@.CT@"!O9B!T:&4@2`*6FEE9VQE7,@=&AA="!D;R![ +M7'-L(&YO='T@=F%N:7-H"F%T('1H92!C;W)R97-P;VYD:6YG(')O=R!V96-T +M;W(N("![7'1T('9E"LQ.UQ<"EP@("`@("`@("`@("`@("`@:R`](&LK,3LI.R`@("`@7%P* +M7"`@("`@("`@("`@>"`]/3T@,2D[7%P*7&5N9$]U='!U=`H*7&UE9'-K:7`* +M5&AE(&UA:6X@=V]R:R!H;W)S92!O9B![7'1T('!O;&%R0V]N92YM,GT@:7,@ +M=&AE('-U8G)O=71I;F4@"GM<='0@9F]U2!C;W)R97-P;VYD:6YG('1O(&$@UQS;`H@(&YO='T@=F%N:7-H(&%T('1H92!C;W)R97-P;VYD:6YG(')O=R!V +M96-T;W(@:6X@>UQT="!!?2X@($YO=&4@=&AA=`IT:&ES('-E="!IUQS;"!C;VUP;&5M96YT?2!O9B!T:&4@&5R8VES92`R+C$U(&EN(%QC:71E>TA3.EII97TN(%1H92!A2!C;W)R97-P;VYD7-T96T@;V8@:6YE<75A;&ET:65S+B`@5&AE(&QI +MUQT="!PUQT=`H@('!R;VI!?2X@"@I<8F5G:6Y/ +M=71P=70*:3DQ(#H@8V]D92!F;W5R:65R36]T>FMI;EQ<"EQE;7!T>4QI;F4* +M;SDQ(#T@+2T@<&]L87)#;VYE+FTR.C@Y+3$Q.%Q<"EP@("`@("!F;W5R:65R +M36]T>FMI;B`]("A!+"!6+"!S<&]T*2`M/B`H7%P*7"`@("`@("`@("`@+2T@ +M:6YI=&EA;&EZ:6YG(&QO8V%L('9AUQ].R`@("`@("`@("`@("`@("`@('!R;VI!(#H](%Q[7'T[("`@("!< +M7`I<("`@("`@("`@("!PUQ].R`@("`@("`@("`@("`@("!K +M(#H](#`[7%P*7"`@("`@("`@("`@+2T@9&EV:61E('1H92!I;F5Q=6%L:71I +M97,@:6YT;R!T:')E92!GS$N+BAN=6U#;VPM +M,2EUQT="!!+"!%?2`*7'9E92`]"EQO +M<&5R871OV%F9FEN97TH +M12DN)`H*7&)E9VEN3W5T<'5T"FDY,B`Z(&-O9&4H<&]L87)#;VYE+$UA=')I +M>"Q-871R:7@I7%P*7&5M<'1Y3&EN90IO.3(@/2`M+2!P;VQA'!E +M8W1E9"!M871R:6-E'!R97-S:6YG("=C;VYE*%DI*V%F +M9FEN92A"*2<@87,@)UQ[>"`Z($%X(#P](#!"!L96%D5&5R;2!!.UQ<"EP@("`@ +M("`@("`@($$@/2!R;W1A=&5-871R:7@@03M<7`I<("`@("`@("`@("`M+2!F +M:6YD('!I=F]T*"TQ*2D@*B!!.UQ< +M"EP@("`@("`@("`@("TM(&-O;G9EUQ].R`@("`@("`@("`@("`@("`@("`@5"`Z/2!T +M;TQIV5< +M?2D[*2DI.UQ<"EP@("`@("`@("`@("TM('-E<&%R871I;F<@:6YE<75A;&ET +M:65S("=!)R!A;F0@97%U86QI=&EEUQ].UQ< +M"EP@("`@("`@("`@('-C86XH;G5M4F]W+"!I("T^("AI9B!P:79O=$-O;"-I +M(#X](&X@=&AE;B!<7`I<("`@("`@("`@("`@("`@("`@("`@97%N4F]W(#T@ +M87!P96YD*&5Q;E)O=RP@:2E<7`I<("`@("`@("`@("`@("`@("`@("`@96QS +M92!I;F5Q;E)O=R`](&%P<&5N9"AI;F5Q;E)O=RP@:2D[*2D[("`@(%Q<"EP@ +M("`@("`@("`@($4@.CT@87!P;'DH97%N4F]W+"!I("T^($$C:2D[7%P*7"`@ +M("`@("`@("`@12`](&%P<&QY*$4L(&4@+3X@95]<>VXN+BAN*V0M,2EUQ]('1H96X@FMI;BA! +M+"!6+"!T*3M<7`I<("`@("`@("`@("`@("`@("`@("`@02`]($0C,#L@("`@ +M("`@("`@5B`]($0C,3LI*3M<7`I<("`@("`@("`@("`M+2!O=71P=70@9F]R +M;6%T:6YG7%P*7"`@("`@("`@("`@02`](&%P<&QY*$$L(&4@+3X@<')I;6ET +M:79E(&4I.UQ<"EP@("`@("`@("`@(&EF($$@/3T](%Q[7'T@=&AE;B!!(#T@ +M;6%P*%I:7F0L(%I:7C`L(#`I7%P*7"`@("`@("`@("`@96QS92!!(#T@=')A +M;G-P;W-E(&UA=')I>"!!.UQ<"EP@("`@("`@("`@(&EF($4@/3T](%Q[7'T@ +M=&AE;B!%(#T@;6%P*%I:7F0L(%I:7C`L(#`I7%P*7"`@("`@("`@("`@96QS +M92!%(#T@=')A;G-P;W-E(&UA=')I>"!%.UQ<"EP@("`@("`@("`@("A!+"!% +M*2D[(%Q<"EQE;F1/=71P=70*"DEF('1H92!I;G!U="!M871R:7@@)$@D(&AA +M%Q[7%P*7"`@("`@(%Q[,2PR+#-< +M?2Q<7`I<("`@("`@7'LQ+#,L,EQ]+%Q<"EP@("`@("!<>S(L,2PS7'TL7%P* +M7"`@("`@(%Q[,BPS+#%S,L,BPQ7'UUQT="!P;VQA +M"!I;B!T:&4@9FER +M4QI;F4*;SDU(#T@*'P@,2`@,2`@,2`@+3$@+3$@+34@?"P@,"E< +M7`I<("`@("`@('P@+3$@,2`@+34@,2`@+3$@,2`@?%Q<"EP@("`@("`@?"`M +M,2`M-2`Q("`M,2`Q("`Q("!\7%P*7&5M<'1Y3&EN90IO.34@.B!397%U96YC +M95Q<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDY-B`Z(%$@/2!P;VQA65T +M"G5S969U;"!S=6)R;W5T:6YE('M<='0@"P@=V4@<')EVUI;E!R97,N;3)]+`IW +MUQT="!)?2!I;@IA('!O;'EN;VUI86P@,BTQ+"!B+6->,BP@8RUD7C(L(&%>,BUE7C(I7%P*7&5M<'1Y3&EN90I< +M("`@("`@("`@("`@("`@(#(@("`@("`@("`@("`@,B`@("`@("`@(#(@("`@ +M("`@,B`@("`R7%P*;SDX(#T@:61E86P@*"T@8B`@*R!A("T@,2P@+2!C("`K +M(&(L("T@9"`@*R!C+"!A("`M(&4@*5Q<"EQE;7!T>4QI;F4*;SDX(#H@261E +M86P@;V8@05Q<"EQE;F1/=71P=70*("!<8F5G:6Y/=71P=70*:3DY(#H@1B`] +M(')E;6]V95)E9'5N9&%N=%9A4QI;F4*;S$P,"`Z($ED96%L(&]F +M($%<7`I<96YD3W5T<'5T"E1H92!O%]I)`H@(&EN('1H +M92!R:6YG(&]F("1F)"!S=6-H('1H870@)&8@/2!C('A?:2`K(&%]I)"X@ +M($EF('1H97)E(&ES(&YO('-U8V@@=F%R:6%B;&4L('M<='0@;G5L;'T@:7,* +M("!R971UVDL(&->>RTQ?2!G7'TD +M(&ES(')E='5R;F5D+@H*7&)E9VEN3W5T<'5T"FDQ,#(@.B!C;V1E(&9I;F12 +M961U;F1A;G1<7`I<96UP='E,:6YE"F\Q,#(@/2`M+2!M:6Y0 +M*"TQ*2HH9BUC*G8I*5Q]7%P*7"`@("`@("`@("`@("`@("`@*5Q<"EP@("`@ +M("`@("`@("`I7%P*7&5N9$]U='!U=`H*5&AE(&UA:6X@9G5N8W1I;VX@>UQT +M="!R96UO=F52961U;F1A;G1687)I86)L97-](')E<75I6YO;6EA;"!R:6YG("AN;W0@82!Q=6]T:65N="!R:6YG*2!A +M'1] +M(&9I;F1S('1H92!F:7)S="!E;G1R>2!O9B!T:&4@*&]N92!R;W"![7'1T($U]"G1H870@8V]N=&%I;G,@82!R961U;F1A;F-Y+B`@5&AI&UA +M<'TL('=H:6-H(&-O;G1A:6YS('1H92!I;6%G97,@;V8@=&AE(')E9'5N9&%N +M="!V87)I86)L97,N"E1H92!M871R:7@@>UQT="!-?2P@86YD('1H92!L:7-T +M('M<='0@>&UA<'T@87)E(&)O=&@@=7!D871E9"P@86YD(`IT:&5N('=E(&-O +M;G1I;G5E('1O(&QO;VL@9F]R(&UO4QI;F4*;S$P,R`]("TM(&UI;E!R97,N;3(Z,30M,SE<7`I<("`@ +M("`@(')E;6]V95)E9'5N9&%N=%9A'0@.CT@,#M<7`I<("`@("`@("`@("`@("`@ +M("!D;VYE(#H](&9A;'-E.UQ<"EP@("`@("`@("`@("`@("`@(&YG96YS(#H] +M(&YU;6=E;G,@&UA<"D[ +M7%P*7"`@("`@("`@("`@("`@("`@1C(@.CT@;6%P*$$L02P@1C$@*$8Q+FUA +M=')I>"DI.UQ<"EP@("`@("`@("`@("`@("`@('AM87`@/2!N97<@375T86)L +M94QI#M<7`I<("`@("`@ +M("`@("`@("`@("!-(#T@8V]M<')E&UA<"DI.UQ<"EQE;F1/ +M=71P=70*7&)E9VEN>W1H96)I8FQI;V=R87!H>7U[,3!]"@I<8FEB:71E;7M( +M4SI!TA3.D),4GT*07Y" +M:6=A='1I+"!2+GY,87Y38V%L82P@86YD($PN?E)O8F)I86YO.@I<;F5W8FQO +M8VL@0V]M<'5T:6YG('1O6UB;VQI8R!#;VUP=71A=&EO;GTL(#(W.C,U,2TM,S8U+"`Q +M.3DY+@H*7&)I8FET96U[2%,Z0D93?0I,+GY*+B!":6QL97)A+"!0+GY&:6QL +M:6UA;BP@86YD($(N?E-T=7)M9F5LTU]871H96UA=&ECTA3.D-,3WT*1"Y^0V]X+"!*+GY,:71T;&4L(&%N9"!$ +M+GY/)U-H96$Z"EQN97=B;&]C:R![7&5M($ED96%LTA3.D1*?0I4+GYD97Y*;VYG.@I<;F5W8FQO8VL@06X@ +M86QG;W)I=&AM(&9OTA3.D5I7TN"EQN97=B +M;&]C:R!3<')I;F=EUQE;2!-=6QT:61I;65NU!]UQC>W-]?71E;B!A;F0@2BY^4VAA<&ER +M;SH*7&YE=V)L;V-K(%!R:6UA6UB +M;VQI8R!#;VUP=71A=&EO;GTL(#(Y.C8R-2TM-C,Y+"`R,#`P+@H*7&)I8FET +M96U[2%,Z2%1]"D(N?DAU8F5R(&%N9"!2+E(N(%1H;VUAVAT='`Z+R]W=WF5D("1[07TD+6=R861E +M9"!A;&=E8G)ATA3.DU4?0I$+GY-86-L86=A +M;B!A;F0@4BY2+B!4:&]M87,Z"EQN97=B;&]C:R!#;VUB:6YA=&]R:6-S(&]F +M('1H92!T;W)I8R![2'UI;&)EUQE;2!$ +M:7-C7TN"EQN97=B;&]C +M:R!4;R!A<'!E87(N"@I<8FEB:71E;7M(4SI-4GT*5"Y^36]R82!A;F0@3"Y^ +M4F]B8FEA;F\Z"EQN97=B;&]C:R!4:&4@>T=]UQE;2!*;W5R;F%L(&]F(%-Y;6)O;&EC($-O +M;7!U=&%T:6]N?2P@-CHQ.#,M+3(P."P@,3DY."X*"EQB:6)I=&5M>TA3.E!3 +M,GT*22Y^4&5E=F$@86YD($TN?E-T:6QL;6%N.@I<;F5W8FQO8VL@3&]C86P@ +M97%U871I;VYS(&9OTA]:6QB97)T('-C:&5M92X*7&YE +M=V)L;V-K('M<96T@061V86YC97,@:6X@07!P;&EE9"!-871H96UA=&ECTA3.E)E:6YEF5D('M"?6%U97,@<')O8FQE;2X*7&YE=V)L;V-K($EN($PN?D)I;&QEUPB;WUR;F5R+"!#+GY'UQE;2!.97<@>U!]97)S<&5C=&EV97,@ +M:6X@06QG96)R86EC($-O;6)I;F%T;W)I8W-]+B!#86UB2U);G1E2!O9B`D>T%])"UG71O<&5S?2P@=F]L=6UE?C@N +M"EQN97=B;&]C:R!!;65R:6-A;B!-871H96UA=&EC86P@4V]C:65T>2P@56YI +M=F5R2!,96-T=7)ETA3.E-4?0I"+GY3 +M='5R;69E;',@86YD(%(N4BX@5&AO;6%S.@I<;F5W8FQO8VL@5F%R:6%T:6]N +M(&]F(&-OUQE;2!!<'!L:6-A=&EO;G,@;V8*("!#;VUP=71A=&EO;F%L($%L +M9V5B7TN($%-4R!06UP;W-I +M82!I;B!!<'!L:65D"B`@36%T:&5M871I8W,L(#$Y.3U-H96%F($%L9V]R:71H;7,@ +M57-I;F<@=&AE($5X=&5R:6]R($%L9V5BU-H96%F($%L9V]R:71H;7,@57-I +M;F<@=&AE($5X=&5R:6]R($%L9V5BT9"($UA=&AE +M;6%T:6LL(%5N:79E`HE7'9S:7IE/3$S+C9T +M6UB+&%M6TL97!S9FEG+&5P:6,L965P:6,L9W)A<&AI8W-]"@HE(%QUV%M'1R82QL +M871E>'-Y;2QE<'-F:67T*)0H*7&1E9B!<9FEX(S$@>WM<<&%R +M(%QB9B`H*"`C,2`I*5QP87)]?0I<9&5F(%Q";W@@>UQH9FEL;%QH8F]X>WU< +M;F]B7U]"EQD968@7&-O:V5R('M<;6%T:&]P +M>UQR;2!C;VMEUQM871H;W![7')M(&EM?7T*7&1E9B!<9&5G("![7&UA=&AO<'M< +MUQM871H;W![7')M(&1E<'1H?7T*7&1E +M9B!<UQR;2!S;V-L97U]"EQD968@7&1I;7M[7')M(&1I;7U]"EQD968@7&-O +M9&EM>WM<UQM871H;W![7')M($EM?7T* +M7&1E9B!<86YN("![7&UA=&AO<'M<UQM871H;W![7')M(%-I;F=] +M?0I<9&5F(%QIUQC;VYG?0I<9&5F(%QT96YS;W(@>UQO=&EM97-]"EQD +M968@7&1S=6T@>UQO<&QUWM<;6%T:&]P>UQR;2!(;VU]7&YO;&EM:71S?7T*7&1E9B!<:&]M +M('M[7&UA=&AO<'M<UQR +M;2!%>'1]?0I<9&5F(%QE>'1[>UQR;2!%>'1]?0I<9&5F(%Q4;W(@>WM<WM<UQM871H;W![7')M +M($5N9'U<;F]L:6UI='-]?0I<9&5F(%QS>6U[>UQR;2!3>6U]?0I<9&5F(%Q' +M3'M[7')M($=,?7T*7&1E9B!<4')O:GM[7')M(%!R;VI]?0I<9&5F(%QH('M[ +M7')M(&A]?0H*7&1E9B!<8V]H>WM<UY[7')M +M('1H?7U]"EQD968@7'-T('M[7GM<WM<8F8@07U]"EQD968@7$(@>WM<8V%L($)]?0I< +M9&5F(%Q#('M[7&-A;"!#?7T*7&1E9B!<0T,@>WM<8F8@0WU]"EQD968@7$1$ +M("![>UQB9B!$?7T*7&1E9B!<12`@>WM<8V%L($5]?0I<9&5F(%Q&('M[7&-A +M;"!&?7T*7&1E9B!<1D8@>WM<8F8@1GU]"EQD968@7$<@>WM<8V%L($=]?0I< +M9&5F(%Q'1R![>UQB9B!'?7T*7&1E9B!<2R![>UQC86P@2WU]"EQD968@7$@@ +M>WM<WM<8F8@3'U]"EQD968@7$U->WM<8F8@37U]"EQD968@ +M7$X@>WM<8V%L($Y]?0I<9&5F(%Q/('M[7&-A;"!/?7T*7&1E9B!<4"![>UQB +M9B!0?7T*7&1E9B!<4%`@>WM<8F8@4'U]"EQD968@7%)2('M[7&)F(%)]?0I< +M9&5F(%Q45"![>UQB9B!4?7T*7&1E9B!<6B![>UQB9B!:?7T*"EQD968@7&=M +M('M[7&=O=&@@;7U]"@H*"B4*)24E)24E)24E)24E)24E)24E)24E)24E)24E +M)0HE)254:&4@8FQA8VL@8F]AUQ!?7M[7&UA=&AB8B!!?7T*)5QN97=C +M;VUM86YD>UQ"?7M[7&UA=&AB8B!"?7T*)5QN97=C;VUM86YD>UQ#?7M[7&UA +M=&AB8B!#?7T*)5QN97=C;VUM86YD>UQ$?7M[7&UA=&AB8B!$?7T*)5QN97=C +M;VUM86YD>UQ%?7M[7&UA=&AB8B!%?7T*)5QN97=C;VUM86YD>UQ&?7M[7&UA +M=&AB8B!&?7T*)5QN97=C;VUM86YD>UQ'?7M[7&UA=&AB8B!'?7T*)5QN97=C +M;VUM86YD>UQ(?7M[7&UA=&AB8B!(?7T*)5QN97=C;VUM86YD>UQ)?7M[7&UA +M=&AB8B!)?7T*)5QN97=C;VUM86YD>UQ*?7M[7&UA=&AB8B!*?7T*)5QN97=C +M;VUM86YD>UQ+?7M[7&UA=&AB8B!+?7T*)5QN97=C;VUM86YD>UQ,?7M[7&UA +M=&AB8B!,?7T*)5QN97=C;VUM86YD>UQ-?7M[7&UA=&AB8B!-?7T*)5QN97=C +M;VUM86YD>UQ.?7M[7&UA=&AB8B!.?7T*)5QN97=C;VUM86YD>WM<;6%T:&)B +M($]]?0HE7&YE=V-O;6UA;F1[>UQM871H8F(@4'U]"EQN97=C;VUM86YD>UQ1 +M47U[>UQM871H8F(@47U]"B5<;F5W8V]M;6%N9'M<4GU[>UQM871H8F(@4GU] +M"B5<;F5W8V]M;6%N9*=[>UQM871H8F(@4WU]"B5<;F5W8V]M;6%N9'M<5'U[ +M>UQM871H8F(@5'U]"B5<;F5W8V]M;6%N9'M<57U[>UQM871H8F(@57U]"B5< +M;F5W8V]M;6%N9'M<5GU[>UQM871H8F(@5GU]"B5<;F5W8V]M;6%N9'M<5WU[ +M>UQM871H8F(@5WU]"B5<;F5W8V]M;6%N9'M<6'U[>UQM871H8F(@6'U]"B5< +M;F5W8V]M;6%N9'M<67U[>UQM871H8F(@67U]"B5<;F5W8V]M;6%N9'M<6GU[ +M>UQM871H8F(@6GU]"@HE7&YE=V-O;6UA;F1[7$Q,?7M[7&UA=&AB8B!,?7T* +M)5QN97=C;VUM86YD>UQ45'U[>UQM871H8F(@5'U]"B5<;F5W8V]M;6%N9'M< +M2$A]>WM<;6%T:&)B($A]?0H*7&1E9EQP<",Q>WM<=&5X='LD7'1E>'1[25PA +M4'U?(S$D?7U]"B5<;F5W8V]M;6%N9'M<4%!]>WM<;6%T:&)B(%!]?0H*)5Q$ +M96-L87)E36%T:$]P97)A=&]R>UQG:6Y]>V=I;GT*"B5<;F5W8V]M;6%N9'M< +M4WEZ?7M[7')M>U-Y>GU<.WU]"B5<;F5W8V]M;6%N9'M<U-Y +M;7U]?0HE7&YE=V-O;6UA;F1[7%-3>7I]>WM<WM<UQ3<&5] +M>WM<UQO<&5N0WU[>UQM871H8F(@0WU] +M"B5<;F5W8V]M;6%N9'M<;7-]>WM<WM<UQ)4WU[>UQR;7M)?7U]"B5<;F5W +M8V]M;6%N9'M<3&]C?7M[7')M>TQO8WU<+'U]"B5<;F5W8V]M;6%N9'M<;&-M +M?7M[7')M>VQC;7U]?0HE7&YE=V-O;6UA;F1[7&QC?7M[7')M>VQC?7U]"B5< +M;F5W8V]M;6%N9'M<;&U]>WM<UQC;VY] +M>WM<UQR;7ME?7U]"B5<;F5W +M8V]M;6%N9'M<96-]>WM<UQA;FY]>WM< +MT5X='U]?0HE7&YE +M=V-O;6UA;F1[7&5Q=6E]>WM<W)K?7U]"@HE)24E)24E)24E)24E)24E)24E)24E)24E)24E)0HE +M)24@;F5W(&-O;6UA;F1S(&9OUQK8GU[ +M>UQM871H8V%L($)]?0I<;F5W8V]M;6%N9'M<:V-]>WM<;6%T:&-A;"!#?7T* +M7&YE=V-O;6UA;F1[7&MD?7M[7&UA=&AC86P@1'U]"EQN97=C;VUM86YD>UQK +M97U[>UQM871H8V%L($5]?0I<;F5W8V]M;6%N9'M<:V9]>WM<;6%T:&-A;"!& +M?7T*7&YE=V-O;6UA;F1[7&MG?7M[7&UA=&AC86P@1WU]"EQN97=C;VUM86YD +M>UQK:'U[>UQM871H8V%L($A]?0I<;F5W8V]M;6%N9'M<:VE]>WM<;6%T:&-A +M;"!)?7T*7&YE=V-O;6UA;F1[7&MJ?7M[7&UA=&AC86P@2GU]"EQN97=C;VUM +M86YD>UQK:WU[>UQM871H8V%L($M]?0I<;F5W8V]M;6%N9'M<:VQ]>WM<;6%T +M:&-A;"!,?7T*7&YE=V-O;6UA;F1[7&MM?7M[7&UA=&AC86P@37U]"EQN97=C +M;VUM86YD>UQK;GU[>UQM871H8V%L($Y]?0I<;F5W8V]M;6%N9'M<:V]]>WM< +M;6%T:&-A;"!/?7T*7&YE=V-O;6UA;F1[7&MP?7M[7&UA=&AC86P@4'U]"EQN +M97=C;VUM86YD>UQK<7U[>UQM871H8V%L(%%]?0I<;F5W8V]M;6%N9'M<:W)] +M>WM<;6%T:&-A;"!2?7T*7&YE=V-O;6UA;F1[7&MS?7M[7&UA=&AC86P@4WU] +M"EQN97=C;VUM86YD>UQK='U[>UQM871H8V%L(%1]?0I<;F5W8V]M;6%N9'M< +M:W5]>WM<;6%T:&-A;"!5?7T*7&YE=V-O;6UA;F1[7&MV?7M[7&UA=&AC86P@ +M5GU]"EQN97=C;VUM86YD>UQK=WU[>UQM871H8V%L(%=]?0I<;F5W8V]M;6%N +M9'M<:WA]>WM<;6%T:&-A;"!8?7T*7&YE=V-O;6UA;F1[7&MY?7M[7&UA=&AC +M86P@67U]"EQN97=C;VUM86YD>UQK>GU[>UQM871H8V%L(%I]?0HE)24E)24E +M)24E)24E)24E)24E)24E)24E)24E)24*)24E5&AE(&UA=&AS8W)I<'0@9F]R +M('-H96%V97,*)24E)24E)24E)24E)24E)24E)24E("4E)24E)24E)0I<;F5W +M8V]M;6%N9'M<UQS07U[>UQS($%] +M?0I<;F5W8V]M;6%N9'M<WM<UQS1'U[>UQS($1]?0I<;F5W8V]M;6%N9'M< +MWM<UQS1WU[>UQS($=]?0I<;F5W8V]M;6%N9'M<WM<UQS2GU[>UQS($I] +M?0I<;F5W8V]M;6%N9'M<WM<UQS37U[>UQS($U]?0I<;F5W8V]M;6%N9'M< +MWM<UQS4'U[>UQS(%!]?0I<;F5W8V]M;6%N9'M<WM<UQS4WU[>UQS(%-] +M?0I<;F5W8V]M;6%N9'M<WM<UQS5GU[>UQS(%9]?0I<;F5W8V]M;6%N9'M< +MWM<UQS67U[>UQS(%E]?0I<;F5W8V]M;6%N9'M<WM<UQC3WU[>UQS($]]?0I<;F5W8V]M;6%N9'M<8TE]>WM<WM<0I<;F5W8V]M;6%N9'M<8TY]>WM<UQC6'U[>UQS(%A]?0HE)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E)0HE)2!!UQS=7)J?7M<;')A(%QLUQLUQL;VYGUQ#?0I<;F5W8V]M +M;6%N9'M<;W!E;E!]M@I<;F5W8V]M;6%N9'M<=69]>WM<8F8@1GU]"EQN97=C +M;VUM86YD>UQU8WU[>UQB9B!#?7T*)5QN97=C;VUM86YD>UQT96YS;W)]>UQO +M=&EM97-]"EQN97=C;VUM86YD>UQM:7U[>UQB9B!M?7T*7&YE=V-O;6UA;F1[ +M7'18?7M<=VED971I;&1E>UA]?0I<;F5W8V]M;6%N9'M<<'5N:W1]>UQH"!T;S%E>'M<2'5G92Y]?0I<;F5W +M8V]M;6%N9'M<='!U;FMT?7M<:'-P86-E>RTN,V5X?5QH8F]X('1O,65X>UQ( +M=6=E+GU]"EQN97=L96YG=&A[7&)R?0I<;F5W;&5N9W1H>UQH;WT*)5Q$96-L +M87)E36%T:$]P97)A=&]R>UQ'3'U[1TQ]"B5<1&5C;&%R94UA=&A/<&5R871O +MT]]"B5< +M1&5C;&%R94UA=&A/<&5R871OUQ(;VU]>TAO;7T*)5Q$96-L87)E36%T:$]P97)A=&]R>UQ4 +M;W)]>U1OUQS>7I]>W-Y>GT*)5Q$ +M96-L87)E36%T:$]P97)A=&]R>UQOV]R9'T*)5Q$96-L87)E36%T:$]P +M97)A=&]R>UQW;W)D?7MW7"QOUQ+97)]>TMEUQI;7U[:6U]"B5<1&5C;&%R94UA=&A/ +M<&5R871OUQ#;VMETY&?0HE7$1E8VQA +MUQ33'U[4TQ]"B5<1&5C;&%R94UA=&A/<&5R871OU-/?0HE7$1E +M8VQAUQ3<&5Z?7M3<'T*)5Q$96-L87)E36%T:$]P97)A=&]R>UQ04TQ]>U!3 +M3'T*)5Q$96-L87)E36%T:$]P97)A=&]R>UQW9&EM?7MW9&EM?0HE7$1E8VQA +MV-D:6U]"B5<1&5C;&%R94UA=&A/<&5R +M871OUQC;V1I;7U[8V]D:6U] +M"B5<1&5C;&%R94UA=&A/<&5R871OUQH96EG:'1]>VAE:6=H='T*)5Q$96-L87)E36%T:$]P +M97)A=&]R>UQ!T%SUQ,:65] +M>TQI97T*7')E;F5W8V]M;6%N9'M<;&%B96QE;G5M:7U[*%QAWU<7"!<=G-P86-E>RTP+C=C;7U]"@HE)25T:&5OUQM871H9G)A:R!M?0HE;F5W8V]M;6%N9'M< +M:6YT96=EUQP'U[7$-]"B5N97=C;VUM86YD>UQR96%L?7M<;6%T:&)B(%)]"B5N +M97=C;VUM86YD>UQG<'U[7&UA=&AFUQG<7U[ +M7&UA=&AFUQS8W)]>UQC86Q]"B5N97=C;VUM +M86YD>UQO<&5N1GU[7$9]"B5<;F5W8V]M;6%N9'M<0T-]>UQM871H8F(@0WT* +M)6YE=V-O;6UA;F1[7%I:?7M<6GT*)6YE=V-O;6UA;F1[7%%1?7M<47T*)6YE +M=V-O;6UA;F1[7$9&?7M<1GT*"B4E)24E)24E)24E)24E)4))0DQ)3T=205!( +M60HE;F5W8V]M;6%N9'M<8GE]>WT*)6YE=V-O;6UA;F1[7'!A<&5R?7LZ(%QB +M96=I;GMI='U]"B5N97=C;VUM86YD>UQJ;W5R('U[+"!<96YD>VET?7T*)6YE +M=V-O;6UA;F1[7'9O;'U[?0HE;F5W8V]M;6%N9'M<<&%G97-]>WT*)6YE=V-O +M;6UA;F1[7'ER?7M]"B5<;F5W8V]M;6%N9'M<96YD6EN9R!T:&4@V%B2!T +M86MI;F<@96QE;65N=',@;V8@)%2`D7%!>;B`](%Q0*%6=I97,@;W9E<@HD4R0@;VYE(&-A;B!C;VUP=71E('1H92!C;VAO;6]L;V=Y +M(&]F("1<=&EL9&4@320@"G-T87)T:6YG(&9R;VT@=&AE(&UI;FEM86P@9G)E +M92!R97-O;'5T:6]N(&]F("1-)"`HV-O:&]L +M9'T@8F5L;W2!C +M;VUP=71E"G1H92!4871E(')ET)E:6QI;G-O;B!M;VYA9'T@7&EN9&5X>VUO;F%D(4)E:6QI +M;G-O;GT*9F]R("1<;6%T:&-A;"!&)"X@5&AE($)E:6QI;G-O;B!M;VYA9`IP +M2!O +M9B!A('-H96%F"FES('1Y<&EC86P@;V8@;W5R(&UE=&AO9',Z(%-U<'!O2!G96YE>VDM,7U<:3U-7VD@7&]T:6UE>VDK,7TD('1O(&)E('1H90IM87`@=&%K:6YG("1M7&]T:6UEVE]7&]T:6UE%]J7'TD(&%N9"`D7'ME7VI2`D:20@*'1H92!R96%D97(@;6%Y(&5A2!C:&5C:R!T:&ES(&)Y(&1I65R(%LR,#`P72X*268@=V4@ +M2!L87)G92!I;G1E9V5R('1H96X*=&AE('1R +M=6YC871I;VX@;V8@=&AE(%1A=&4@>W,K,7U<&%C="!A;F0@:7,@ +M=&AU'!L;VETT5!.F5I65R(%LR,#`P72P*=&AA +M="!T:&4@)&I>7'1H)"!C;VAO;6]L;V=Y("1<2%YJ7$8D(&]F("1<1B0@"FEN +M('1H92!:87)I:E\J7&UA=&AC +M86P@1B`Z/2!<;W!L=7-?>VE<:6Y<;6%T:&)B(%I]7"P@7$A>:B`@7&UA=&AC +M86P@1BAI*5P@+@HD)`I);B!M86YY(&-A2X*"E-E +M8W1I;VX@,B!O9B!T:&ES('!A<&5R(&ES(&1E=F]T960@=&\@82!S:V5T8V@@ +M;V8@=&AE"D5IUQO?7ES=&%D+5-C:')E>65R(&%P<')O86-H +M"G1O('1H92!"97)N2!I="!O=70L +M(&ES(&5X<&QA:6YE9"!I;B!396-T:6]N(#,N(`H*"E1H92!R96UA:6YD97(@ +M;V8@=&AI'!O'!L86YA=&EO +M;B!O9B!T:&5S92!M871T97)S(&]N(&$@;&5V96P@=&AA="!C86X@8F4@=6YD +M97)S=&]O9"!B>2`*86X@861V86YC960@=6YD97)G2!C;VUP +M87)I;F<@=&AE;2!W:71H(&1I'1E2!I;B!N871UF%T:6]N(&]F(')E2!E;&5M96YT87)Y(&%C8V]U;G0@=VAI8V@@8V]N2!S<&5C:6%L(&-A'!L:6-I="!A<'!L +M:6-A=&EO;G,*;V8@=&AE('1H96]R>2!D979E;&]P960N($EN('1H92`@9FER +M2!H860@97AC;'5D960A(%5S +M:6YG('1H92!R;W5T:6YE2!S:&]R=&5N('-O +M;64@;V8@=&AE(&]R:6=I;F%L(&%R9W5M96YT71H:6YG(&9O;&QO=W,@96%S:6QY"G=I=&@@ +M8V]M<'5T871I;VXL(&]N8V4@82!C97)T86EN("0R7'1I;65S(#4D(&UA=')I +M>"!O9B!E>'1E2!(;W)R;V-KGEG:65S*2!O9B!T:&4@2&]R2P@=V%S(&YE8V5S2!T;R!D97)I=F4@7IY9VEE2!A(&UA8VAI;F4N(%1H;W5G:`IS>7IY9VEE65A6=I97,@;&5A9"!T;R!A<'!L:6-A=&EO;G,L"G1O;RP@ +M;6]S=&QY('1H2!U2!C;VYD +M:71I;VX@9F]R('-U2!G:79E;B!T:&5R93\*2&]W(&%B;W5T +M(&$@8W)I=&5R:6]N(&9O&%C=&YE'M"97)N@I396-T:6]N?C$L(&-O;G-I9&5R('1H92!C87-E("1-/5,]7'-Y +M;5]+*%6U?:5&%C=&QY +M('1H92!S;V-L92`D7&)I9W=E9&=E7GMN*S%](%9<>VXK,7T@5R0@*'=H:6-H(&ES(&-O;F-E;G1R871E9"!I +M;B!D96=R964@)&XK,20I+`IW92!O8G1A:6X@=&AE(&UI;FEM86P@:6YJ96-T +M:79E(')E'M#87)T86X@2!F:6YI=&5L>2!G96YE +M`HD)`I<4E(H32DZ7'%U860@7&-D;W1S(%QR5&\@ +M35]I7&]T:6UEVDK,7U<;W1I;65S7&]M96=A +M7T5<2!C87-E+"!I="!D +M:69F97)S(&9R;VT@)%Q&1BA-*20*;VYL>2!B>2!T96YS;W)I;F<@;W9E65R(%LR,#`P70IF;W(@82!T2`*97AA8W0@ +M*&%N9"!T:'5S(`HD)`I&7FE<>VDK,7U<'ML +M:6YE87(@9G)E92!R97-O;'5T:6]N?0IT:&%T(&ES+"!I=',@9FER6=I97,@87)E"F=E;F5R871E9"!I;B!D96=R964@)'(K,20L(&ET6=I97,@:6X@9&5GW1H96]R96U]6UQC:71E>T5!.F5I'1B9GM4:&5O"`D7%)2*$TI)"!I&%C="!A="`D7$AO;5]+*$4L35]I*20*9F]R(&%L;"`D:5QG97$@T5!.F5I'TN("5"=6-H=V5I='H@6S$Y.#5=("X*"D9O +M2!O +M9B`D320*:7,@=&AE(&QA2!4:&5O7T@9&ER +M96-T;'D@:6X@82!S:6UP;&4@97AA;7!L93H*"B5<8F5G:6Y[17AA;7!L97T* +M7&)E9VEN>V5X86UP;&5]"DQE="`D4SU+6WA?,"QX7S$L>%\R720L(&%N9"!L +M970*)$T]4R\H>%\P7C(L>%\Q7C(L>%\R7C(I)"X@5&AE(&UO9'5L90HD35][ +M7&=E<2`S?3T@2UQC9&]T('A?,'A?,7A?,B0@:7,@82!T%\R)"P@=VAI8V@@:7,@;&EN96%R +M+@I4:'5S('1H92!#87-T96QN=6]V;RU-=6UF;W)D(')E9W5L87)I='D@;V8@ +M)$TD"FES("1<;&5Q(#,D+B!/;B!T:&4@;W1H97(@:&%N9"`D35][7&=E<2`R +M?20@:7,L('5P('1O('1W:7-T+`II%\Q+'A?,BE>,B0L(&%N9"!I="!F;VQL;W=S('1H870*=&AE +M(')EUQG97$@,GTD(&AA2!O9@HD320@:7,@97AA +M8W1L>2`S+B!.;W1E('1H870@=&AE(')E9W5L87)I='D@:7,@;&%R9V5R('1H +M86X@=&AE(&1E9W)E97,*;V8@=&AE(&=E;F5R871OW!M871R:7A](&5? +M,%Q<(&5?,5Q<(&5?,B!<96YD>W!M871R:7A]?2`*,UPZ7"$@12@M,BD*7')4 +M;UY[7&)E9VEN>W!M871R:7A](#`F95\R)F5?,5Q<(&5?,B8P)F5?,%Q<(&5? +M,29E7S`F,"!<96YD>W!M871R:7A]?2`*,UPZ7"$@12@M,2D*7')4;UY[7&)E +M9VEN>W!M871R:7A]95\P)B!E7S$F(&5?,B!<96YD>W!M871R:7A]?2`*15QR +M5&\@,"X*)"0*3VYE(&-H96-K&%C="!A="`@979EV5X86UP;&5] +M"B5<96YD>V5X86UP;&5]"@I!;F]T:&5R(&-A0IO8V-UV5X86UP;&5](`I486ME("1- +M/5,O220@=VAE2!A(&-O9&EM96YS:6]N +M(#$@"!O;B`D;B0@;&EN96%R(&9O2`D +M:20@=&AE('1E85QO;65G85]%*"TR*5QR +M5&]>85QC9&]T2!L:6YE87(@ +M9F]R;2!I;B`D120L('1H92!A;FYI:&EL871O2`D820L(&%N9"!I="!F;VQL;W=S(&1IV5X86UP;&5]"B5<96YD>V5X86UP;&5]"@H*5V4@<')E'1T='MS>6U%>'1]?2!A;F0@"GM< +M=&5X='1T>V)G9WU]+"!W:&EC:"!C;VUP=71E(&$@9&EF9F5R96YT:6%L(&]F +M('1H92!C;VUP;&5X"B1<4E(H32DD(&9O6YO +M;6EA;"!R:6YG("13/4M;>%\P+%QD;W1S+'A?;ETD('=I=&@@=F%R:6%B;&5S +M("1X7VDD(&]F(`ID96=R964@,2X@0F]T:"!F=6YC=&EO;G,@97AP96-T(&%S +M(&%N(&%D9&ET:6]N86P@:6YP=70@=&AE(&YA;64@;V8@86X@"F5X=&5R:6]R +M(&%L9V5B2!D:6%G2!L;V]K:6YG('=H +M96X@<')I;G1E9"!I;B`*7$UT=V\L(&YE8V5SVE<9V5Q(#!]($U?:20L(&%N9"`*RAR86YK('1ARAR86YK('-O=7)C92!A +M;G,I.C!2![7'1E>'1T='MS>6U%>'1]?2!T +M;R!A(&AI9V@@=')U;F-A=&EO;B!O9B`D320Z"EQV%\R73M<7`I<96YD3W5T +M<'5T"EQB96=I;D]U='!U=`II,R`Z($4]6EHO,S(P,#-;95\P+BYE7S(L4VME +M=T-O;6UU=&%T:79E/3YTWA?,%XR+"!X7S%>,EQ]7'T[7%P* +M7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:34@.B!M/7!R97-E;G1A=&EO;B!T +MRTQ7'T@?"`P("`@95\R(#`@("!E7S`@?%Q<"EP@("`@(%Q[+3%'1T='MS>6U%>'1] +M?2!I2!T;V]L('=H:6-H(')E<75I2!.3U0@8V]M<&]S92!T;R!Z97)O"F)E8V%UUQT97AT='1[8F=G?7TL(&UA:V5S('1H92!C;VUP=71A=&EO +M;B!I;B!S=6-H(&$@=V%Y"G1H870@=&AE(&)A2!G96YE'1[=&A]?20@;6%P(&EN("1<4E(@*$TI +M)"P*=VAI8V@@:7,@86X@8&!A9&IO:6YT)R<@;V8@=&AE(&UU;'1I<&QI8V%T +M:6]N"FUA<"!B971W965N("1-7VDD(&%N9"`D35][:2LQ?20N(`I<=G-K:7`P +M+C-C;0H*7&)E9VEN3W5T<'5T"FDW(#H@8F=G(#T@*&DL32Q%*2`M/BA<7`I< +M("`@("`@("`@(%,@.CUR:6YG*$TI.UQ<"EP@("`@("`@("`@;G5M=F%RRAR86YK('1AUQ[>%\P7C(L('A?,5XR+"!X7S)>,EQ]7'T[7%P*7&5N9$]U='!U=`I< +M8F5G:6Y/=71P=70*:3D@.B!B9VRTR7'T@?"!E7S(@ +M,"`@(&5?,"!\7%P*7"`@("`@7'LM,EQ]('P@,"`@(&5?,B!E7S$@?%Q<"EQE +M;7!T>4QI;F4*7"`@("`@("`@("`@("`S("`@("`@(#-<7`IO.2`Z($UA=')I +M>"!%("`\+2TM($5<7`I<96YD3W5T<'5T"@I<=G-K:7`P+C-C;0H*)5QT97AT +M8F9[14E314Y"540@14Y$17T*"B5[7&)F(#0N($-O:&]M;VQO9WD@86YD(%1A +M=&5]"@H*"B5<=&5X=&)F>T5)4T5.0E5$?0H*"@I<2!A;F0@=&AE(%1A=&4@4F5S;VQU=&EO;B!O9B!A(%-H96%F?0H* +M7&EN9&5X>W-H96%F(&-O:&]M;VQO9WE]7&EN9&5X>V-O:&]M;VQO9WDA2!I;F9I;FET92D*)$4D +M+69R964@8V]M<&QE>"`D7%14*$TI)"!W:71H('9A;FES:&EN9R!H;VUO;&]G +M>2P*8V%L;&5D('1H92![7&ET(%1A=&4@U1A +M=&4@SYR?2DD+B!792!C;VUP;&5T92!T:&ES('1O(&%N(&5X86-T"F-O;7!L +M97@@8GD@861J;VEN:6YG(&$@;6EN:6UA;"!P&%M<&QE+"`D320@:&%S(&9I +M;FET92!L96YG=&@@87,@:6X@17AA;7!L92`R+C(L('1H92!4871E(`IR97-O +M;'5T:6]N(&]F("1-)"!I`HD)`I<8V1O='-<=&\@,%QT +M;R`P7'1O(#`@7'1O7&-D;W1S+@HD)`I!="!T:&4@;W!P;W-I=&4@97AT'M<8F8M+2U]+"!+*20L(&%N9"!U'EM871R:7A["EQC9&]T*EQO=&EM97,@12!<87);85QO;65G85]%*&DM,2E<2!TSYS?2DD('=I=&@@)'-< +M9V5Q('(D+B!4:'5S"G1H92!4871E(')E2!O;B!T:&4@F4@=&AI'1T='MS>6U%>'1]?0IO9B!T +M:&4@;&%S="!S96-T:6]N+"!O;F4@8V%N(&-O;7!U=&4@86YY(&9I;FET92!P +M:65C92!O9B!T:&4@5&%T92!R97-O;'5T:6]N+@I<=G-K:7`P+C-C;0H*7&)E +M9VEN3W5T<'5T"FDQ,"`Z('1A=&5297-O;'5T:6]N(#T@*&TL12QL;T1E9RQH +M:41E9RDM/BA<7`I<("`@("`@("`@("!-(#H](&-O:V5R(&T[7%P*7"`@("`@ +M("`@("`@RAR86YK('1ARAR86YK('-O=7)C92!O +M*3IB;F1UQT97AT='1[=&%T95)E6YO;6EA;"!R:6YG("13/4M;>%\P+%QD;W1S+'A?;ETD('=I=&@@=F%R +M:6%B;&5S("1X7VDD(&]F(`ID96=R964@,2P@=&AE(&YA;64@;V8@86X@97AT +M97)I;W(@86QG96)R82`D120@=VET:"!T:&4@2`D;"0@86YD("1H)"X@268@)'(D +M(&ES('1H92!R96=U;&%R:71Y(&]F("1-)"P@=&AE;@I[7'1T>W1A=&5297-O +M;'5T:6]N*&TL12QL+&@I?7T@8V]M<'5T97,@=&AE('!I96-E"B0D"EQ45%Y[ +M7"QL?2A-*5QT;R!<9&]TUQ[>%\P+'A?,5Q]7'T[7%P*7&5M<'1Y3&EN90I<("`@("`@ +M("`@("`@("`Q("`@("`@(#)<7`IO,3$@.B!-871R:7@@4R`@/"TM+2!37%P* +M7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3$R(#H@2!C;VME +M4QI;F4*7"`@("`@("`Q("`@("`@,2`@("`@(#$@("`@("`Q("`@("`@ +M,2`@("`@(#$@("`@("`Q7%P*;S$S(#T@12`@/"TM($4@(#PM+2!%("`\+2T@ +M12`@/"TM($4@(#PM+2!%("`\+2T@15Q<"EP@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@7%P*7"`@("`@(#`@("`@ +M("`Q("`@("`@,B`@("`@(#,@("`@("`T("`@("`@-2`@("`@(#9<7`I<96UP +M='E,:6YE"F\Q,R`Z($-H86EN0V]M<&QE>%Q<"EQE;F1/=71P=70*7&)E9VEN +M3W5T<'5T"FDQ-"`Z(&)E='1I(%1<7`I<96UP='E,:6YE"F\Q-"`]('1O=&%L +M.B`Q(#$@,2`Q(#$@,2`Q7%P*7"`@("`@("`@("TT.B`Q(#$@,2`Q(#$@,2`Q +M7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3$U(#H@5"YD9%\Q7%P*7&5M +M<'1Y3&EN90IO,34@/2!<>RTT7'T@?"!E7S(@?%Q<"EQE;7!T>4QI;F4*7"`@ +M("`@("`@("`@("`@,2`@("`@("`Q7%P*;S$U(#H@36%T,%QT:6QD92!-*&DI)"!F;W(*;&%R9V4@)&DD +M+"!S;R!T:&4@8V]R,"A<=&EL9&4@32AI*2E< +M;W1I;65S(%QO;65G85]%)"X@"E1H92!F;VQL;W=I;F<@F5S(`IT:&ES('1O(&$@9&5S8W)I<'1I;VX@;V8@86QL('1H92!T97)M +MW1H96]R96U]6UQC:71E>T5!.F5I'1B9GM4:&5O"`D7%14*$TI/5Q45"A<=&EL9&4@32DD('=I=&@@8V]H;VUO +M;&]G:6-A;"!D96=R964@)&DD(&ES(`HD)`I<;W!L=7-?:B!<2%YJ7'1I;&1E +M($TH:2UJ*5QO=&EM97,@7&]M96=A7T4@7"`L"B0D"G=H97)E("1<2%YJ7'1I +M;&1E($TH:2UJ*20@:7,@"`*)"0* +M7&-D;W1S(%QT;R!<2%YJ7'1I;&1E($TH:2UJ*5QO=&EM97,@7&]M96=A7T4* +M7'1O"EQ(7FI<=&EL9&4@32AI*S$M:BE<;W1I;65S(%QO;65G85]%"EQT;R!< +M8V1O=',*)"0*:7,@"B1<4E(H7$A>:E\J*%QT:6QD92!-*"UJ*2DI("AJ*20@ +M*'5P('1O('1W:7-T:E\J(%QT +M:6QD92!-*2XD("E<<65D"B5]"EQE;F1[=&AE;W)E;7T*"B5<=G-K:7`P+C-C +M;0I4:'5S(&5A8V@@8V]H;VUO;&]G>2!G2!O;F-E*2!I +M;@IA('1E:E\J7'1I;&1E($TD"FEN('1H92!S +M96YS92!T:&%T("!T:&4@;&EN96%R(&UA<',@:6X@=&AI2!A(&9U +M;F-T:6]N('-I;6EL87(@=&\@>UQT97AT='1[8F=G?7TI+B`*5&AE(&AI9VAE +M"`D7%14*$TI)`ID971E2!O<&5R871I;VYS+"!W:&EC +M:"!W92!U;F1ET5!.D5I65R.D-H;W=&;W)MUQT='MB971T:2!T871E4F5S +M;VQU=&EO;BAM+$4L;"QH*7U]('!R:6YT +M:B!<=&EL9&4@32AI+6HI(#T@7&1I;5PL7$A>:B!<=&EL9&4@32AI+6HI)"!F +M;W(*)%QM87@H'MS:&5A9B!C;VAO;6]L +M;V=Y?5QI;F1E>'MC;VAO;6]L;V=Y(7-H96%F?0I<=G-K:7`P+C-C;0H*7&)E +M9VEN3W5T<'5T"FDQ-B`Z('-H96%F0V]H;VUO;&]G>2`]("AM+$4L;&]$96UQT='MB971T:2!S:&5A9D-O:&]M;VQO9WDH +M;2Q%+&PL:"E]?2!PUQA6-O;'-E +M<'U[+C1C;7T*7&)E9VEN>V%R;EQT:6QD +M92!-("AL+6XI7"`N"EQE;F1[87)R87E]?0HD)`I!&%M +M<&QE('=E(&-O;G-I9&5R('1H92!C;W1A;F=E;G0@8G5N9&QE(&]N('!R;VIE +M8W1I=F4@"C,MG5L(')E%\P+BYX7S-=.UQ< +M"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDQ."`Z($4]6EHO,S(P,#-;95\P +M+BYE7S,L4VME=T-O;6UU=&%T:79E/3YTG5L*#,L=F%R"!3("`\+2TM(%-<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U +M=`II,C`@.B!R96=U;&%R:71Y(&-O:V5R(&U<7`I<96UP='E,:6YE"F\R,"`] +M(#)<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II,C$@.B!B971T:2!T871E +M4F5S;VQU=&EO;BAM+$4L+38L,BE<7`I<96UP='E,:6YE"F\R,2`]('1O=&%L +M.B`T-2`R,"`V(#$@-"`Q-2`S-B`W,"`Q,C`@,3@Y(#(X,%Q<"EP@("`@("`@ +M("`M-#H@-#4@,C`@-B`N("X@("X@("X@("X@("`N("`@+B`@("Y<7`I<("`@ +M("`@("`@+3,Z("`N("`N("X@,2`N("`N("`N("`N("`@+B`@("X@("`N7%P* +M7"`@("`@("`@("TR.B`@+B`@+B`N("X@+B`@+B`@+B`@+B`@("X@("`N("`@ +M+EQ<"EP@("`@("`@("`M,3H@("X@("X@+B`N(#0@,34@,S8@-S`@,3(P(#$X +M.2`R.#!<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II,C(@.B!B971T:2!S +M:&5A9D-O:&]M;VQO9WDH;2Q%+"TV+#(I7%P*7&5M<'1Y3&EN90IO,C(@/2!T +M;W1A;#H@-B`Q(#0@,34@,S8@-S`@,3(P(#$X.2`R.#!<7`I<("`@("`@("`@ +M+3(Z(#8@+B`N("`N("`N("`N("`@+B`@("X@("`N7%P*7"`@("`@("`@("TQ +M.B`N(#$@+B`@+B`@+B`@+B`@("X@("`N("`@+EQ<"EP@("`@("`@("`@,#H@ +M+B`N("X@("X@("X@("X@("`N("`@+B`@("Y<7`I<("`@("`@("`@(#$Z("X@ +M+B`T(#$U(#,V(#7U<:6YD97A[8V]H;VUO;&]G>2%S +M:&5A9GT*7&)E9VEN>W)E;6%R:WU<;&%B96Q[8V]H;VQD?2`@5&AEUQT +M97AT='1[2$A]?2!I;B!<371W;R!W:&EC:"!IW-H96%F0V]H;VUO;&]G>7U]+B`*5&\@86-C97-S(&ET+"!F:7)S +M="!E>&5C=71E"EQB96=I;GMV97)B871I;7T*("`@("!-/7-H96%F(&-O:V5R +M(&T["EQE;F1[=F5R8F%T:6U]"EQN;VEN9&5N=`IA;F0@<&EC:R!I;G1E9V5R +M +M:BA-*#X]9"DI"EQE;F1[=F5R8F%T:6U]"EQN;VEN9&5N=`IR971U>UQT97AT>W1H?7TD(&-O:&]M;VQO9WD@;6]D=6QE +M(`HD7$A>:E][:5QG97$@9'T@7'1I;&1E($TD+B`@26X@=&AE(&%B;W9E(&5X +M86UP;&4@;V8@=&AE(&-O=&%N9V5N=`IB=6YD;&4@)%QM871H8V%L($8D(&]N +M('!R;VIE8W1I=F4@,RUS<&%C92!W92!O8G1A:6X@=&AE"DMO,2!<;6%T:&-A;"!&(%QC;VYG($LD(&-O;G-I9&5R +M960@87,@86X@)%,D+6UO9'5L92`*4QI;F4*;S(T(#T@8V]K97)N96P@?"!X7S,@>%\R('A?,2!X +M7S`@?%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@,5Q<"F\R-"`Z(%,M;6]D=6QE+"!Q=6]T:65N="!O9B!37%P*7&5N9$]U +M='!U=`I<<65D"EQE;F1[2!C:&5C +M:RP*<')E8VES96QY('1H92!D;W5B;'D@:6YF:6YI=&4L(&=R861E9"P@97AA +M8W0@8V]M<&QE>&5S(&]F(&9I;FET96QY+6=E;F5R871E9`IF2!E>&%C="!G&%M +M<&QE('=H870@:68@=V4@=&%K92!T:&4@9'5A;"!O9B!T:&4@5&%T90IR97-O +M;'5T:6]N(&]F(&$@2!L:6YE87(N"E=H870@:7,@:70_"@I4;R!E>'!L86EN('1H +M:7,@=V4@;75S="!G96YE>VDM,7U<"!O9B`D4R0M;6]D=6QE6EN9R!T:&4@9G5N8W1O +M<@HD7%)2)"!G:79E2!F65R(%LR,#`P70IF;W(@;6]R92!I;F9O7&)U;&QE="0@:7,@ +M82!B;W5N9&5D(&-O;7!L97@@;V8@9FEN:71E;'D@9V5N97)A=&5D"FUO9'5L +M97,L('1H96X@87,@8F5F;W)E"F]N92!S:&]W"!O9B!C;VAE2!M:6YI;6%L(&=R +M861E9"!D;W5B;'D@:6YF:6YI=&4@97AA8W0@"!O9B!C;VAE0IB>2!A(&9O +M2!O9B!S:&5A +M=F5S?0I&;W(@2P*=W)I=&4@)%Q/)"!F;W(@=&AE('-T"!O9B!S:&5A=F5S(')A=&AEW1H96]R96U]7&QA8F5L +M>V1U86QI='E]"B5<;F]I;F1E;G0*)5QT97AT8F9[5&AE;W)E;2`T+C(N?0HE +M>UQE;2`*)5QT:&5OV1U86QI='E](`HD7$AO;5]+*%Q45"A<1BDL($LI +M(%QIUQR;2!O;7TH7$8L(%Q/*2E;,5TD+EQQ960*)7T*7&5N +M9'MT:&5O0HD)`I<>'EM871R:7@@ +M0%(],&UM($!#/39M;7L*7%14*%Q/*3I<<75A9%QC9&]TV1U86QI='E](`II9B`D +M7$8]7$\H82DD(&9O2!T86MI;F<@9G)E92!R97-O;'5T:6]N'1B +M9GM%25-%3D)51"!%3D1%?0H*"EQS96-T:6]N>T-O:&]M;VQO9WD@86YD(%9E +M8W1OW9E8W1O2!A(&-R:71EUQM871H8V%L($9]*20@:7,@ +M9FEN:71E;'D@9V5N97)A=&5D(&%N9"!I=',@"GM<:70@>VEN=&5R;65D:6%T +M92!C;VAO;6]L;V=Y(&UO9'5L97-]?2!<:6YD97A[8V]H;VUO;&]G>2%I;G1E +M2!V96-T;W(@8G5N9&QE(&]N('1H92!P2!'T5!.DU2.#%B.C$T +M,#`Q?2DN("!);F1U8W1I;VX@>6EE;&1S($AO2!T;R!A(&UOT5!.DU2.3EF +M.C$T,#8T?2DN"@I*=7-T(&$@;&ET=&QE(&)I="!M;W)E(&-O;7!L:6-A=&5D +M(&%R92!T:&4@8G5N9&QEUQ0("A7*7TH,2DD(&9O'1S='EL95QB +M:6=W961G97U>:2!5(#T@>UQT97AT:5][7%!0("A7*7TH:2D*)"0*9F]R +M('1H92`D:5Y[7'1E>'1[=&A]?20@8G5N9&QE(&]F("!D:69F97)E;G1I86QS +M('1W:7-T960@8GD@)&DD.R!I;B!P87)T:6-U;&%R(`HD55XP(#T@7&UA=&AC +M86P@3R0L("`D55YN7&-O;F<@7&UA=&AC86P@3R`H+3$I)"P@86YD("157FD] +M,"0@:68@)&D\,"0@;W(@)&D^;B0N"@I<8F5G:6Y[6)D?2!&;W(@96%C:"`D,"!<;&5Q(&D@7&QE<2!N)"!T:&4@<&%I +M;B!<8V]N9R!<;6%T:&-A;"!/("@M,2D*)"0*:6YD +M=6-E +M*B`H+3$I7"P@+EQQ<75A9%QQ960*)"0*7&5N9'MR96UAUQI="!T +M875T;VQO9VEC86P@&%C="!S97%U +M96YC97,*)"0*,%QR:6=H=&%R>VDK,7T@7')I9VAT87)R;W<@>UQT +M97AT:5QO=&EM97,@7&UA=&AC86P@3R`H,2D@7')I9VAT +M87)R;W<@,%P@+@HD)`I4=VES=&EN9R!T:&4@)&E>7'1H)"!S97%U96YC92!B +M>2`D+6DM,20L(&%N9"!G;'5I;F<@=&AE;0IT;V=E=&AE6UA=')I>$`Q0$,]-FUM>PHP("!<87); +M"!T;R`R;6U[?7U]"E=<;W1I +M;65S(%QM871H8V%L($\H+6XM,2D@7&%R6W)=("9<+%QC9&]T>S!]7WM<=F)O>"!T;R`R;6U[?7U]"E=<;W1I;65S +M(%QM871H8V%L($\@7&%R6W)=)B`P7"`N"GT*)"0*5&AI:2`]"EQB96=I;GMC87-E2!V +M96-T;W(@8G5N9&QE("1<;6%T:&-A;"!&)"!O;B`*)%Q04"A7*20@=VET:"!T +M:&ES(&EN=&5R;65D:6%T92!C;VAO;6]<+6QO9WD@:7,@>UQI="![:20[('1H870@:7,L('1H97)E(&5X:7-T2!C;VUP87)I;F<@=&AE('-H96%F:69I960@2V]S>G5L(&-O;7!L97@@ +M=VET:"!T:&4@;6EN:6UA;"!F,"0@=VAI8V@@:7,@=&AE(&-O +M;7!O:3U<8FEG=V5D9V5>:54@7'1O(%5<;W1I;65S(%5> +M>VDM,7TD+"!E86-H(&5L96UE;G0@;V8@)%8D(`II;F1U8V5S(&$@:&]M;VUO +M>VDM,7T@7'1O(%=<;W1I;65S(%5> +M>VDM,7T@7'1O($M<;W1I;65S(%5>>VDM,7T@/2!57GMI+3%]+@HD)`I)="!I +MT5!.DU2.3=A.C$S,#`Q +M?2DN"E1H=7,@=V4@9V5T(&UA<',@)%QB:6=W961G95YJ5EQT;R!<:&]M*%5> +M:2P@55Y[:2UJ?2DD"G=H:6-H('1O9V5T:&5R(&=I=F4@82!G:2DD+@I);B!F86-T('1H:7,@8V]NVAO;6)D?2!4 +M:&4@;6%P'1S='EL97M<=&5X='-T>6QE7&)I9W=E9&=E?7U> +M:E9<=&\@7&AO;2A57FDL(%5>>VDM:GTI+%QQ=6%D(#`@7&QE<2!I+"!I+6H@ +M7&QE<2!N7"P@+`HD)`ID97-C:E8D(&%C=',@8GD@8V]N=')A8W1I;VX@;VX@=&AE(&9I8F5R +M:20Z"B0D"EQX>6UA=')I>'L*7&)I9W=E9&=E7FDH5B]< +M;&%N9VQE(&$@7')A;F=L92E>*EP[7&%R6V1=7&%R0'M>*"T^?5MR728@7&)I +M9W=E9&=E7GMI?2!7(%QA>VDM:GTH5B]< +M;&%N9VQE(&$@7')A;F=L92E>*EP[7&%R0'M>*"T^?5MR72`F7&)I9W=E9&=E +M7GMI+6I](%=<("X*?0HD)`I<96YD>VQE;6UA?0H*7&)E9VEN>W!R;V]F?2!% +M=F5R>2!H;VUO;6]R<&AI>VDM:GTD +M(&QI9G1S('5N:7%U96QY('1O(&$*:&]M;VUO&5S.@HD)`I<>'EM871R:7A`,4!#/31M;7L* +M,"`@7&%R6W)=("8@>UQB:6=W961G95Y[;BLQ?5][7'9B;W@@=&\@,FUM>WU] +M?0I77&]T:6UEWU]?0I77&]T:6UE2`*9VEV96X@8GD@ +M8V]N=')A8W1I;VX@=VET:"!A;B!E;&5M96YT(&EN"B0D"EQ(;VT@*'M<=&5X +M='-T>6QE7&)I9W=E9&=E?5Y[:GT@5R!<;W1I;65S(%QM871H8V%L($\@*&DM +M:BDL(%QM871H8V%L($\@*&DM:BDI7&-O;F<@('M<=&5X='-T>6QE7&)I9W=E +M9&=E?5YJ5EPL("Y<<75A9%QQ960*)"0*7&5N9'MP2!T:&%T(&$@;6%P"B15 +M7FD@7&]V97)S971[97U<;&]N9W)I9VAT87)R;W<@55Y[:2UJ?20@:7,@PI<8FEG=V5D9V5>>VDK,7T@5R!< +M;W1I;65S(%QM871H8V%L($\@*"TQ*2!<87);9%U>92!<87)`>RT^/GU;:2!<87);9%U<7`I<8FEG=V5D9V5>>VDM:BLQ?2!7(%QO=&EM97,@7&UA +M=&AC86P@3R`H+3$I(%QAPI<8FEG=V5D9V5>>VDK,7T@5R!<;W1I;65S(%QM871H +M8V%L($\@*"TQ*2!<87)`>RT^/GU;:5P[(%QA95Q<"B957C`@7&%R0'M]6W)=?'L]?2`F7&UA=&AC86P@3UP*?0HD)`II +M9B`D,"`](&DM:B`\(&D@7&QE<2!N)"X@"@I!(&UA<"!F2X@5V4@=VEL;"!A<'!L>2!I="!L871EW!R;W!O"!W +M:71H(&5N=')I97,@"FEN("16)"P@=&AE;B!T:&4@9F]L;&]W:6YG(&-O;F1I +M=&EO;B!IW!R;V]F?2`D0B0@:7,@2!I +M9B!I=',@9'5A;"!M87`@:7,@:6YJ96-T:79E(&]N(&9I8F5RUQT97AT="0@;V8@=&AE(&-O +M;'5M;G,@;V8@)'M"7G1])"P*86YD('=R:71E("1D(#T@7&1I;5PL(%QS<&%N +M("AB7S$L7&1O=',L(&)?2!P;VEN="`*;V8@)%Q0("A7*20@8V]R +MUQD969<W-P86Y]?2!<T)>='TD(&ES(&YO="!I;FIE8W1I=F4@870@86YY +M('!O:6YT(&]F("1<4"`H5RDD+EQQ960*7&5N9'MPT-O:&]M;VQO9WD@86YD($UO;F%D'MM;VYA9',A87!P;&EC +M871I;VYS(&]F?0I4:&4@=&5C:&YI<75E(&]F(&UO;F%D2!R979I97=I;F<@=&AE"F-L87-S:69I8V%T:6]N(&]F +M('-T86)L92!R86YK(#(@=F5C=&]R(&)U;F1L97,@;VX@=&AE('!R;VIE8W1I +M=F4@<&QA;F4**'-E92!<8VET97M%03I-4C4W.C,R-'TE0F%R=&@@6S$Y-S== +M"BP@7&-I=&5[14$Z35(X,&TZ,30P,3)])4QE(%!O=&EET5! +M.DU2-38Z.#4V-WTL(&%N9"!<8VET97M%03I-4C@R:#HQ-#`Q,7TE36%R=7EA +M;6$@6S$Y-S'0@>RTQ?2!<;&]N9W)I9VAT +M87)R;W<@>UQM871H8V%L($M]7GLP?0I<;&]N9W)I9VAT87)R;W<@>UQM871H +M8V%L($M]7GLQ?2!<;&]N9W)I9VAT87)R;W<@7"P@7&-D;W1S"B0D"F]F(&-O +M:&5R96YT('-H96%V97,@;VX@)%Q0("A7*20@=VAI8V@@:7,@97AA8W0@97AC +M97!T("!A=`HD>UQM871H8V%L($M]7GLP?20N(%1H92!H;VUO;&]G>2`D7&UA +M=&AC86P@1B0@870@)'M<;6%T:&-A;"!+?5Y[,'TD(`IIVAO;6]L;V=Y(&]F('1H92!M;VYA9'U]+"!<:6YD97A[;6]N860A +M:&]M;VQO9WD@;V9](`IA;F0@=&AE(&UO;F%D(&ES('-A:60@=&\@8F4@82!M +M;VYA9"!F;W(@)%QM871H8V%L($8D+B!792!S87D@=&AA="!T:&4@"GM<:70@ +M>W1Y<&4@;V8@82!M;VYA9'U](%QI;F1E>'MM;VYA9"%T>7!E(&]F?2!IUQM871H8V%L($M]7GMI?20@ +M87)E(&1E=&5R;6EN960N7'%E9`I<96YD>V1E9FEN:71I;VY]"@I<;F]I;F1E +M;G0*5&AE2!O9B`*82!M;VYA9"P@86YD +M('1H92!T>7!E(&]F('1H92!M;VYA9"!D97!E;F1S(&]N('1H92!W87D@8VAO +MUQI='M3=&5P(#$N?7U<.R!#;VUP=71E(&-O:&]M +M;VQO9VEC86P@:6YF;W)M871I;VX@=VAI8V@@9&5T97)M:6YEUQI='M3=&5P(#(N?7U<.R!#;VYS=')U8W0@;W(@8VQAUQI='M3=&5P(#,N?7U< +M.R!$971ET5!.DU2-32!I;B!W:&%T +M(&9O;&QO=W,**'-E92!<8VET97M%03I-4C@P;3HQ-#`Q,GTL(%QC:71E>T5! +M.DU2.#!M.C$T,#$Q?2P@86YD(%QC:71E>T5!.DU2.#%B.C$T,#`Q?2!F;W(* +M9G5L;"!D971A:6QS(&%N9"!PW-E;&8M9'5A;'U]+%QI;F1E>'MB=6YD;&4A +M6UP;&5C=&EC('-T +M6QE7&)I9W=E9&=E?5XR(%QM871H8V%L($8@7&-O;F<@7&UA +M=&AC86P@3U][7%!0("A7*7T@*&-?,2D*)"0@"FEN9'5C97,@86X@:7-O;6]R +M<&AIUQC;VYG?5QT +M;R!<;6%T:&-A;"!&7GM<87-T?2`H8U\Q*20@"G=I=&@@)%QV87)P:&D@/2`M +M(%QV87)P:&E>*B`H8U\Q*20@*&AE2!397)R92!D=6%L:71Y+EQI;F1E>'MB=6YD;&4A4V5R7T@ +M7'%E9`I<96YD>W)E;6%R:WT*"@I792!W:6QL(&YO="!G:79E(&$@9V5N97)A +M;"!D969I;FET:6]N(&]F('-T86)I;&ET>2!H97)E+B!&;W(@2!C86X@8F4@8VAAW)E;6%R:RTU+C-]($EF("1<;6%T:&-A;"!&)"!I +MV)U;F1L92%S=&%B +M;&5]"FEF(&%N9"!O;FQY(&EF("1<2&]M("A<;6%T:&-A;"!&+"!<;6%T:&-A +M;"!&*5QC;VYG($LD+@I);B!T:&ES(&-A2!D971E2!T96YS;W)I;F<@=VET:"!A(&QI;F4@8G5N9&QE('=E(&-A;B![7&ET('MN +M;W)M86QI>F5]?2`D7&UA=&AC86P@1B0*7&EN9&5X>V)U;F1L92%N;W)M86QI +M>F5D?0IS;R!T:&%T(&ETV5X +M86UP;&5]($)Y('1H92!R97-U;'1S(&]F('1H92!P&%M<&QE?0H*7&)E9VEN>W)E;6%R:WU<;&%B96Q[UQB9B!296UA:B!<:%YJ(%QM871H8V%L($8D(&9O&%M<&QE+"!O;F4@;V)T86ENW)E;6%R:WU<;&%B96Q[2!296UA:B!<;6%T:&-A;"!&("AI*20@:6X@=&AE(')A;F=E +M("0M,B!<;&5Q(&D@7&QE<2`P)"!A2!T86)L92`H82!Z97)O(&ES(')E<')E"DZ"EQVUQH;WT*)0HE)24E)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E"@I["B0D("5$:6%GF]N +M=&%L('5N9"!<:&\@=F5R=&EK86P*>PI<UQBS9M;7T*7&9O;G1S:7IE>S$P<'1]>SAP='T*7'-E +M;&5C=&9O;G0*7&)E9VEN>WAY?0HE)24E)24E)24E)24E)24E)24E)24E)24E +M)24E)24E)24E)24E)24*)0HE($%C:'-E;FMR975Z(&EM(%!U;FMT92`H,"PP +M*0HE"B4@>"U!8VAS92!V;VX@+3-<8G(@8FES(#%<8G(*)2!M:70@96EN96T@ +M(FHB(&%N(#`N.3@@9&5R($SD;F=E('5N9"`S;6T@=6YT97(@9&5R($%C:'-E +M.@HE"BP\+3,N-5QBVE]"B4*)2!Y+4%C:'-E('9O;B`P7&AO(&)IVI]"B4E)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)0HE"B4@-2!W86%G +MRU]"BPP*SPM,UQBRU]"BPP*SPM,EQBV-? +M,BTQ?0HL,"L\+3$N-5QBV-?,BTQ?0HE"B4E)24E)24E)24E)24E)24E)24E)24E)24E)24E +M)24E)24E)24E)0HL,"L\+3(N-5QBS!]"B4E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)0HL,"L\+30N +M,%QBWAY?0I]"B0D"EQQ=6%D7'%E9`I] +M"B4E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24*)5QVW)E;6%R:WT*"E=E(&%B8G)E=FEA=&4@)%QM +M871H8V%L($\@/2!<;6%T:&-A;"!/7WM<4%!>,B`H7$-#*7TD(&%N9"!G;R!T +M:')O=6=H('1H92`*=&AR964@UQI='M3=&5P(#$N?7U<.R!);B!T:&ES('-T97`@=V4@,2!<;6%T:&-A;"!&("@M +M,BE<;W1I;65S(%5>,B`*7')I9VAT87)R;W<@7$A>,2!<;6%T:&-A;"!&("@M +M,2D@7&]T:6UE'0@8VAA<'1E,B!<;6%T:&-A +M;"!&("AI+3(I(#T@7$A>,"!<;6%T:&-A;"!&*"UI*2`](#`D(`IF;W(@)#)< +M9V5Q(&E<9V5Q(#`D("AS964@4F5M87)K(%QR969[2`*7&EN9&5X>VMI;&QI;F<@8V]H;VUO;&]G>7T@7&-I=&5[14$Z +M35(X-&HZ,30P,C9]+"`@=VAI8V@@"G)E<75I7!I +M8V%L;'D@;V)T86EN960@"F)Y(')EG5L(&-O;7!L97@@;VX@=&AE(&5Q=6%T:6]N'EM871R:7@@0$,],3%M +M;7L*,%QA>UQQ=6%D*'A<('A>>UQP2!W92!F:6YD('1H870@"B1<2%XQ(%QM871H8V%L($8D(&=E +M;F5R871E,5][7&=E<2`P?5PL(%QM871H8V%L($8D+B!);F1E960L +M('1H92!C;VUP;W-I=&4@;6%P(`HD)'M<8F5G:6Y[<&UA=')I>'T@>"`F('A> +M>UQPW!M871R:7A]?3H@,B!<7%Q(7C%<;6%T:&-A;"!&*&DI +M(`I<;&]N9W)I9VAT87)R;W<@7$A>,2`H7&UA=&AC86P@2E]P7&]T:6UE,2!<;6%T:&-A;"!&*&DI +M(#T@(#`D(&9O2!F +M;W(@=&AE"G1W:7-TV-O:&)D?2!S:6YC92!B;W1H(&)U;F1L97,@:&%V92!T:&4@2X@"@I)9B`D8U\R +M7&=E<2`R)"!T:&5N("1<2%XQ(%QM871H8V%L($9<;F5Q(#`D+"!A;F0@=&AE +M(&ED96YT:71Y(&EN(`HD)%Q(;VT@*%Q(7C$@7&UA=&AC86P@1BP@7$A>,2!< +M;6%T:&-A;"!&*5QC;VYG7$5X=%XQ*%Q(7C$@7&UA=&AC86P@1B`*7&]T:6UE +M,5][ +M7&=E<2`P?5PL7&UA=&AC86P@1R`](#`D+"!A;F0@=VAE2P@8GD@=&%K:6YG(%-E,2!<;6%T:&-A;"!&("@M,BE<;W1I;65S +M("!57C(@7')I9VAT87)R;W<@7&UA=&AC86P@2`I<>S%]7WM<;&5Q("TR?2!< +M;6%T:&-A;"!((#T@,"0N(`I4:&4@='=O(&5X=&5NPHF)C!<87);9%TF,%QA +MWU;9%U\>UQS8W)I<'1S8W)I<'1S='EL92!\?'U<87);>UQQ<75A9"!<<75A9"!<86QP:&%])B`*7&UA=&AC86P@0B!< +M87);9%U>>UQB971A?5QA,2!<;6%T:&-A;"!&7&]T:6UE2!T;R!A;B!E>'1E;G-I;VX@"F%S(&EN('1H92!M:61D;&4@7T*7&EN9&5X>VUO;F%D(61I +M,2!<;6%T:&-A;"!&("@M,2D@7&]T:6UEUQB971A?5QL +M;VYG,2!<;6%T:&-A;"!&(%QO=&EM97,@7&UA=&AC +M86P@3R!<;&]N9W)I9VAT87)R;W<@,`HD)`IF;W(@)%QM871H8V%L($8D+B`* +M"EQVU-T97`@,BY]?5P["D]U,2!<;6%T:&-A;"!&("@M,BDD+"`* +M)$(]7$A>,2!<;6%T:&-A;"!&("@M,2DD(&%N9"`D05XJ7&-O;F<@7$A>,2!< +M;6%T:&-A;"!&)"X@0GD@8VAA7,@"F]F(&$@;6]N +M860@87,@86)O=F4@86YD(&ET6UP +M;&5C=&EC('-T'EM871R:7A["C!< +M87);,B!<87);9%U>>UQ0:&E]7&%R6W)=7GM<86QP +M:&%])@I"(%QO=&EM97,@52!<87);9%U>>UQ0*EQO=&EM97-<;6%T:&-A;"!/(%QA>RU<4&AI7BHH +M+3$I?2`F(#!<7`HP7&%R6W)=)D%<;W1I;65S(%QM871H8V%L($\H+3$I(%QA +MUQB971A7BI]*"TQ*7T@)B!"7BH@7&]T:6UE>WM<86QP:&%>*GTH+3$I?28@05XJ7&]T:6UE*B@M,2DD+B!) +M;F1E960L('1H92!C;W)R97-P;VYD:6YG(&]BT5!.DU2.#%B.C$T,#`Q?2!F;W(@82!D:7-C=7-S:6]N(&]F(`IT:&ES(&%R +M9W5M96YT(&EN(&$@9V5N97)A;"!C;VYT97AT*2X@)%Q06UM971R:6,@*B@M,2D]<5XJ7&]T:6UEVUO;F%D(7-E;&8M9'5A;'T*=VAE +M*B`H+3$I7&-I9"0@:7,@86X@97!I;6]R<&AI&DI(%QO=&EM97,@>"0@;VX@=&AE(&9I8F5R,B0N(%-I;6EL87)L>2!W92!C;VYS:61E%QM87!S=&\@7&%L<&AA7BHH>"D@7&-I"D@7&-I>UQP9"AX +M7GM<<')I;65]*2!<8VER8UQA;'!H82AX*20@9F]R(&%L;"`D>"P@>%Y[7'!R +M:6UE?5QI;B!7)"P@86YD"EQV>UQP2`D7'AI7&EN($%<"DH7'AI +M*20@:&%S(')A;FL@)%QG97$@,B0N"@H*7&YO:6YD96YT"B4@7&YO:6YD96YT +M"B5<8F5G:6Y[17AA;7!L97T@"EQB96=I;GME>&%M<&QE?5QL86)E;'ME>&,R +M,GT*268@)&-?,CTR)"P@=&AE;B`@=&AE(&UO;F%D>UP@7&QE9G0H7'-U8G-T86-K>V%<7&)]7')I +M9VAT*7T*)C)<.EPA55QA'1R +M82!C;VYD:71I;VX@86YD(`HH)%QA;'!H85\R)"D@;65A;G,@=&AA="`D820@ +M86YD("1B)"!A2!G:79E;BP@=&AE;B!W92!C86X@8V]M<'5T +M92!T:&4*:&]M;VQO9WD@;V8@=&AE(&UO;F%D('=I=&@@=&AE(&AE;'`@;V8@ +M7$UT=V\Z"@I<=G-K:7`P+C-C;0I<8F5G:6Y/=71P=70*:3(U(#H@4R`](%I: +M+S,R,#`S6WA?,"XN>%\R73M<7`I<96YD3W5T<'5T"EQVG5L(&-O;7!L +M97@@%\R*20@8GD*=&5N +M,R!77&]T:6UEG5L*#,L=F%R +MG5L*#(L=F%R4QI;F4*;S(W(#T@ +M7'LQ7'T@?"`M>%\Q("UX7S(@,"`@("!\7%P*7"`@("`@(%Q[,5Q]('P@>%\P +M("`P("`@("UX7S(@?%Q<"EP@("`@("!<>S%%\P("!X7S$@ +M('Q<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@(#,@("`@("`@,UQ<"F\R +M-R`Z($UA=')I>"!3("`\+2TM(%-<7`I<96YD3W5T<'5T"EQVUQT='MK;W-Z=6PH,BQV87)S +M(%,I?7T@8V]M<'5T97,@82!M871R:7@@%\P7'=E9&=E('A?,2P@>%\P(%QW961G92!X7S(L('A?,2!<=V5D9V4@>%\R +M)"`*;V8@)%QB:6=W961G95XR5R0@86YD("1X7S`L('A?,2P@>%\R)"!O9B`D +M5R0N"E=E('!I8VL@)"AA+&(I(#T@*&5?,2P@95\R*20@86YD(')E<')E7'LM,5Q]+"!TUQ[,"PM,2PP+#$L,"PP7'U< +M?2D[7%P*7&5M<'1Y3&EN90IO,C@@.B!-871R:7A<7`I<96YD3W5T<'5T"EQB +M96=I;D]U='!U=`II,CD@.B!A;'!H860@/2!M87`H4UXQ+"!5("LK(%4L(&UA +M=')I>%Q[7'LP+#$L,"PP+#`L,5Q]7'T@*B`H:S(@*RL@:S(I*3M<7`I<96UP +M='E,:6YE"F\R.2`Z($UA=')I>%Q<"EQE;F1/=71P=70*7'9S:VEP,"XQ8VT* +M"EQN;VEN9&5N=`I02AA;'!H860L(&%L<&AA*3M<7`I<96YD3W5T<'5T"EQB96=I +M;D]U='!U=`II,S$@.B!B971T:2`@1EQ<"EQE;7!T>4QI;F4*;S,Q(#T@'0@&%M<&QE?0H*5V4@9V\@8F%C:R!T;R!T:&4@9V5N97)A;"!C87-E(&%N9"!R +M979E'0@>R!A;F0@?7T@*%QA;'!H85\R7GM<<')I;65]*5Q]7"`N"B0D"E1H96X@ +M979EUQC86Q[37U])"!D969I;F5S +M(&$@,BA<0T,I +M)"!W:71H(`I#:&5R;B!C;&%S&-E<'1I +M;VX@;V8@=&AE(&-AU-T97`@,RY]?5P[($-O;G-TUQT97AT +M>T]]?2A"*20N(%1H96X@)$UQC86Q[ +M37U])"!B>2`D*"A<4&AI+"!<4'-I*2Q<86QP:&$I(%QM87!S=&\@7%!S:5QA +M;'!H85Q0:&E>>RTQ?20L"G=H97)E("1<4'-I7&%L<&AA7%!H:5Y[+3%]*'@I +M(#H](%Q0"E<4&AI7GLM,7TD+B!792!M87D@8V]N2`D7%!S:5QA;'!H85Q0:&E>>RTQ +M?20N"D)Y(&=O:6YG(&)A8VL@86YD(&9OUQP;2`Q7'TD+"!A;F0@=&AA="!O=7(@8V]NUQC86Q[37U])"!O;F4@<')O=F5S('1H870@ +M=&AE(&%N86QY=&EC('-TUQC +M86Q[37U])"!S;R!T:&%T(`HD>UQC86Q[37U])"!I*B!<;W1I;65S(%QM871H8V%L($8@ +M/2`T8U\R+30D(`II;B!E86-H('!O:6YT("AT:&4@;V)S=')U8W1I;VYS(&9O +M*B!<;W1I;65S +M(%QM871H8V%L($8D('=H:6-H(&ES('IEUQC86Q[37U])"`H:&5R92!O;F4@;F5E9',@)&-?,3TM +M,20I+B!);B!O=&AEUQC86Q[37U])"!I2!A;'=A>7,@>6EE +M;&1S(#,M=&5R;2!M;VYA9',N"DEN(&=E;F5R86PL('1H92!B=6YD;&4@:6X@ +M=&AE(&UI9&1L92!C86X@8F4@<')E='1Y(&-O;7!L:6-A=&5D+EQQ960*7&5N +M9'MR96UAT5)4T5.0E5$?0H*"B5<'MM;VYA9"%"96EL:6YS;VY]"E=E(&-A +M;B!U2!"96EL:6YS;VX@7&-I=&5[14$Z35(X,&,Z,30P,3!B +M?2P@=VAI8V@@9VEV97,@82`*<&]W97)F=6P@;65T:&]D(&9O:0HD"FEN("1<020N +M"D=I=F5N(&$@9W)A9&5D(')I;F<@:&]M;VUO2!O9B`*9G)E92`D120M +M;6]D=6QER!<8F5G:6Y[8V%S97-](%5>:2`F(%QT97AT>V9O'1[ +M;W1H97)W:7-E+GU<96YD>V-AV%L:6=N961]"EQ(;VU? +M12A<;VUE9V%?12AI*2Q<;VUE9V%?12AJ*2DF/0I<2&]M7T4H12AI*2Q%*&HI +M*5Q<"B8]($5?>VHM:7T*7&QO;F=R:6=H=&%R:2Q57FHI7"`N"EQE;F1[ +M86QI9VYE9'T*)"0**$YO=&4@=&AA="!W92!C;W5L9"!H879E('1A:V5N(&%N +M>2!T=VES="!O9B`D120@:6X@<&QA8V4@;V8@"B1<;VUE9V%?15QC;VYG($4H +M+6XM,2DD.R!T:&4@8VAO:6-E(&]F("1<;VUE9V%?120@:7,@;6%D92!T;R`* +MB!<T)E:6QI;G-O;B!T:&5O:2`](%Q/;65G85][7%`H5RE]7FD@*&DI)"!A7'1H)"!E>'1EW1A=&5]+"!W92!G970@"F$@8V]M +M<&QE>`HD)`I<3VUE9V$H7$8I.EQQ=6%D"EQC9&]T:EQ&*&DM:BE<;W1I;65S(%5>>VHM:7U<:EQ&*&LI)"!W:71H"B0M;EQL97$@:UQL97$@ +M,"0[("1<3VUE9V$H7$8I)"!I7!E"B0D"EQX>6UA=')I>$`Q0$,] +M,VUM>PHP7&%R6W)=)B!<2%XP(%QM871H8V%L($8@*"UN*5QO=&EM97,@55YN +M7&%R0'M]6V1=?'M<WU;9%U\>UQS8W)I<'1S8W)I<'1S='EL92!\ +M?'U<87);,%QA6QE('Q\?5QA2!B965N(&-O;7!U=&5D+"!A;F0@=V4@:&%V92!S965N +M('1H870@:70@9&5P96YD>VXM,7U<82!57C%<:20@:6X@ +M8V]H;VUO;&]G:6-A;"!D96=R964@)"UI)"X@"@I792!H879E(&%LUQ0 +M*%UQ0*%UQ0*%UQ0*%UQ0*%2!O9B!T:&4@8V]M<&QE>`HD7$]M96=A*%Q/ +M7W`I)"!A="`D55XP)"!I"!A +M:20@:7,@,"!F;W(@)&D^,"0N"E1H92!F;VQL;W=I +M;F<@7!I8V%L+@H*7&)E9VEN +M>W1H96]R96U]6UQC:71E>T5!.F5IT)E:6QI;G-O;B!T:&5O2!N;VXM=F%N:7-H:6YG(&AO;6]L;V=Y(&]F("!T +M:&4*8V]M<&QE>"`D7$]M96=A*%Q&*20@:7,@"B0D"EQ(7C`H7$]M96=A*%Q& +M*2D]7$9<+"`N7'%Q=6%D7'%E9`HD)`HE?0I<96YD>W1H96]R96U]"@I4:&4@ +M97AI"!S871I0I"96EL:6YS;VX@:6X@7&-I=&5[14$Z35(X +M,&,Z,30P,3!B?2P*86YD('1H=7,@=V4@=VEL;"!C86QL("1<3VUE9V$H7$8I +M)"!A('M<:70@0F5I;&EN'M"96EL:6YS;VX@;6]N860A9&EF9F5R96YT:6%L +M +M>RAR*7U<:6X@7$AO;2@@7$A>:B!<;6%T:&-A;"!&("AI+6HI(%QO=&EM97,@ +M55Y[:BUI?2P@"EQ(7GMJ+7(K,7T@7&UA=&AC86P@1B`H:2UJ*W(I(%QO=&EM +M97,@55Y[:BUI+7)]*5Q<"EQC;VYG('M<=&5X='-T>6QE7&)I9W=E9&=E?5YR +M(%9<;W1I;65S("!<2&]M("A<2%YJ(%QM871H8V%L($8@*&DM:BDL("`*7$A> +M>VHMUQT +M97AT2!O8V-UW)E;6%R:WU< +M;&%B96Q[9&EF9C%]7#L@5&AE(&-O;G-T86YT(&UA<',@)&1?>VEJ?5Y[*#`I +M?20@:6X@"B1<3VUE9V$H7$8I)"!AF5R;R!S:6YC92`D7%14*%QM871H +M8V%L($8I)"!IW!R;W!OW!R;W!O65T('=E;&PM +M=6YD97)S=&]O9"X*"E-I;F-E("0H7%14*%QM871H8V%L($8I*5LQ72`](%Q4 +M5"A<;6%T:&-A;"!&*#$I*20@=V4@8V%N(&-O;7!AW!R;W!O +M>RAR*7TD(&EN("1<3VUE9V$H7$8I)"!A;F0@)&1?>VDM,2QJ?5Y[*'(I?20@ +M:6X@)%Q/;65G82A<1B@Q*2DD(`IB;W1H(&%C='5A;&QY(&]C8W5R+"!T:&5N +M('1H97D@8V]R6QE7&)I9W=E9&=E?5YR(%9<;W1I;65S("!<2&]M("A<2%YJ(%QM +M871H8V%L($8@*&DM:BDL("`*7$A>>VHM&%M<&QE(%QR969[97AC,C)]("X@"@I4:&4@97AP&%M<&QE.@I<=G-K:7`P+C%C;0H*7&)E9VEN3W5T +M<'5T"FDS,R`Z(%,]6EHO,S(P,#-;>%\P+BYX7S-=.UQ<"EQE;F1/=71P=70* +M7&)E9VEN3W5T<'5T"FDS-"`Z($4]6EHO,S(P,#-;95\P+BYE7S,L4VME=T-O +M;6UU=&%T:79E/3YTS%< +M?2!\("UX7S$@+7A?,B`P("`@("UX7S,@,"`@("`P("`@('Q<7`I<("`@("`@ +M7'LQ7'T@?"!X7S`@(#`@("`@+7A?,B`P("`@("UX7S,@,"`@("!\7%P*7"`@ +M("`@(%Q[,5Q]('P@,"`@("!X7S`@('A?,2`@,"`@("`P("`@("UX7S,@?%Q< +M"EP@("`@("!<>S%%\Q("!X7S(@ +M('Q<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@(#0@("`@("`@-EQ<"F\S +M-2`Z($UA=')I>"!3("`\+2TM(%-<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U +M=`II,S8@.B!S;W)T961"87-I"!%("`\+2TM($5<7`I<96YD3W5T<'5T"@I<=G-K:7`P+C%C;0I< +M;F]I;F1E;G0*268@)&5<:6X@120@:7,@:&]M;V=E;F5O=7,@;V8@9&5GUQT="![8F5I;&EN:2!<;W9E>VDM:BLQ?5=<;W1I;65S(%,H+3$I)"!D969I;F5D(&)Y(&-O +M;G1R86-T:6]N('=I=&@@)&4D+B!)9B`D,"`](&DM:B`\(&D@7&QE<2!N)"P@ +M"G1H96X@=&AE(')E"!R97!R97-E;G1I;F<@=&AE +M(&-O;7!O>VE]5R!<;W1I;65S +M(%,@7&]V97)S971[95QO=&EM97,@,7T*7&QO;F=R:6=H=&%R>VDK,7U7 +M(%QO=&EM97,@4R@M,2D@7')I9VAT87)R;W<@7&)I9W=E9&=E7GMI?5<@7&]T +M:6UE,"P@,"E<7`I<("`@("`@ +M("`@("`@("`@("!E;'-E(&EF(&D@/3T](#`@=&AE;B!I9%\H15XQ*5Q<"EP@ +M("`@("`@("`@("`@("`@(&5L4QI;F4*7"`@("`@("`@("`@("`@ +M-"`@("`@("`Q7%P*;S,X(#H@36%T4QI;F4*;S,Y(#T@7'LM,EQ]('P@,"`@,"`@,"`P('Q<7`I<("`@ +M("`@7'LM,EQ]('P@+3$@,"`@,"`P('Q<7`I<("`@("`@7'LM,EQ]('P@,"`@ +M,"`@,"`P('Q<7`I<("`@("`@7'LM,EQ]('P@,"`@+3$@,"`P('Q<7`I<("`@ +M("`@7'LM,EQ]('P@,"`@,"`@,"`P('Q<7`I<("`@("`@7'LM,EQ]('P@,"`@ +M,"`@,"`Q('Q<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@(#8@("`@("`@ +M-%Q<"F\S.2`Z($UA=')I>"!3("`\+2TM(%-<7`I<96YD3W5T<'5T"EQB96=I +M;D]U='!U=`II-#`@.B!B96EL:6YS;VXQ*&5?,2PQ+#$L4RE<7`I<96UP='E, +M:6YE"F\T,"`]('P@>%\P(#`@+7A?,B`P("UX7S,@,"!\7%P*7&5M<'1Y3&EN +M90I<("`@("`@("`@("`@("`Q("`@("`@(#9<7`IO-#`@.B!-871R:7@@4R`@ +M/"TM+2!37%P*7&5N9$]U='!U=`H*7'9S:VEP,"XQ8VT*7&YO:6YD96YT"E1H +M92!F=6YC=&EO;B![7'1T('M5?7T@8V]M<'5T97,@=&AE(&)U;F1L97,@)%5> +M:20@;VX@4')O:B1<+%,D.@H*7'9S:VEP,"XQ8VT*7&YO:6YD96YT"EQB96=I +M;D]U='!U=`II-#$@.B!5(#T@*&DL4RD@+3X@*%Q<"EP@("`@("`@("`@(&EF +M(&D@/"`P(&]R(&D@/CT@;G5M9V5NVEUQT="![8F5I +M;&EN>V%?:7T@7'1O(%QO<&QU&%M<&QE(%QR969[97AC +M,C)](&-A;B!B92!R97=R:71T96X@87,@9F]L;&]W4QI;F4*7"`@("`@("`@("`@("`@,2`@("`@("`R7%P* +M;S0U(#H@36%T7'LM,2PM,5Q]+$5>7'LM,EQ]+%Q[ +M7'ME7S%V5?,EQ]7'TI7%P*7&5M<'1Y3&EN90IO-#8@/2!<>S%"!%("`\+2TM +M($5<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II-#<@.B!A;'!H860]8F5I +M;&EN%Q< +M"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDT."`Z(&%L<&AA/6)E:6QI;G-O +M;BAA;'!H82Q3*3M<7`I<96UP='E,:6YE"F\T."`Z($UA=')I>%Q<"EQE;F1/ +M=71P=70*7&)E9VEN3W5T<'5T"FDT.2`Z($8@/2!P2AA +M;'!H860L86QP:&$I.UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDU,"`Z +M(&)E='1I("!&7%P*7&5M<'1Y3&EN90IO-3`@/2!R96QA=&EO;G,@.B!T;W1A +M;#H@,R`Q7%P*7"`@("`@("`@("`@("`@("`@("`@("`Q.B`R("Y<7`I<("`@ +M("`@("`@("`@("`@("`@("`@(#(Z(#$@,5Q<"EQE;F1/=71P=70*"EQVUQ04%XT*%Q#0RE])"X*"B5<8F5G:6Y[17AA;7!L97U<;&%B96Q[=V%S-RXQ +M?0I<8F5G:6Y[97AA;7!L97U<;&%B96Q[=V%S-RXQ?0HE7&YO:6YD96YT"B5[ +M7&ET>T5X86UP;&4@-RXQ+GU]7"P@"D]U&%M<&QE(&ES('1A +M:V5N(&9R;VT@=&AE(&-L87-S:69I8V%T:6]N"F]F('M<:70@>V-O;FEC(&)U +M;F1L97-]?2`*7&EN9&5X>V-O;FEC(&)U;F1L97T*:6X@("1<4%!>-"A<0T,I +M)"P@=&AA="!I +M-"A<0T,I)"!W:&EC:"!AF\@2P@8V]NV-O;FEC(&)U;F1L92%E;&QI +M<'1I8WT**&-O;FEC(&)U;F1L97,@;W9EUQI='M3=&5P(#$N?7U<.R!);B!T +M:&ES('-T97`@=V4@7!E(&]F('1H92!"96EL:6YS;VX*;6]N860@9F]R('1H92!S=6ET86)L +M>2!T=VES=&5D(&ED96%L('-H96%F("1<;6%T:&-A;"!*7U@D+@I792!K;F]W +M(&9R;VT@=&AE(&-L87-S:69I8V%T:6]N(&]F('-M;V]T:"!S=7)F86-E7!ET5!.F%U,"!<;6%T:&-A;"!*7U@@*&DI +M(#T@,"0@9F]R("1I7&QE<2`S)"X@"DET(&9O;&QO=W,@9G)O;2!G96YE"DZ"EQVPHD)"`E1&EA9W)A;6T@>F5N=')I97)E +M;@HE"B4@5^1H;&4@9&EE($5I;FAE:71E;B!<8G(@:&]R:7IO;G1A;"!U;F0@ +M7&AO('9ESEM;7T*7'-E=&QE;F=T +M:'M<:&]]>S9M;7T*7&9O;G1S:7IE>S$P<'1]>SAP='T*7'-E;&5C=&9O;G0* +M7&)E9VEN>WAY?0HE)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E +M)24E)24*)0HE($%C:'-E;FMR975Z(&EM(%!U;FMT92`H,"PP*0HE"B4@>"U! +M8VAS92!V;VX@+3-<8G(@8FES(#5<8G(*)2!M:70@96EN96T@(FHB(&%N(#`N +M.34@9&5R($SD;F=E('5N9"`S;6T@=6YT97(@9&5R($%C:'-E.@HE"BP\+3(N +M-5QBVE]"B4*)2!Y+4%C:'-E('9O;B`P7&AO(&)ISY]"C\H,"XY."DJ(2]>,VUM+WMJ?0HE)24E)24E)24E)24E)24E +M)24E)24E)24E)24E)24E)24E)24E)24*)0HE(#4@=V%A9W)E8VAT92!,:6YI +M96X@=F]N("TR7&)R(&)IRU]"BPP*SPM,EQBRU]"B4E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)0HE +M"B4@,3$@RU]"B4*+#`K/#%<8G(L,%QH;SX[/#%< +M8G(L-5QH;SXJ*D![+7T*+#`K/#)<8G(L,%QH;SX[/#)<8G(L-5QH;SXJ*D![ +M+7T*+#`K/#-<8G(L,%QH;SX[/#-<8G(L-5QH;SXJ*D![+7T*+#`K/#1<8G(L +M,%QH;SX[/#1<8G(L-5QH;SXJ*D![+7T*)0HE)24E)24E)24E)24E)24E)24E +M)24E)24E)24E)24E)24E)24E)24*)0HE($5I;G1RY&=E(&EN(&1E;B!-:71T +M96X@9&5R($ODSA]"BPP*SPM,"XU7&)R+#,N-5QH;SXJ +M>S1]"B4*+#`K/#`N-5QBS%]"BPP*SPR+C5<8G(L,BXU7&AO/BI[87T*+#`K/#,N-5QBV$K,7T*+#`K/#,N-5QBRTQ?0HL,"L\,"XU7&)R+"TP+C9<:&\^*GLP?0HL,"L\ +M,2XU7&)R+"TP+C9<:&\^*GLQ?0HL,"L\,BXU7&)R+"TP+C9<:&\^*GLR?0HL +M,"L\,RXU7&)R+"TP+C9<:&\^*GLS?0HE)24E)24E)24E)24E)24E)24E)24E +M)24E)24E)24E)24E)24E)24*+#`K/"TS+C!<8G(L-"XU7&AO/BI[-'T*+#`K +M/"TS+C!<8G(L,RXU7&AO/BI[,WT*+#`K/"TS+C!<8G(L,BXU7&AO/BI[,GT* +M+#`K/"TS+C!<8G(L,2XU7&AO/BI[,7T*+#`K/"TS+C!<8G(L,"XU7&AO/BI[ +M,'T*7&5N9'MX>7T@"GT*)"0*?0HE)24E)24E)24E)24E)24E)24E)24E)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E +M)24E)24E)24E"EQV,B!<;6%T:&-A;"!* +M7U@H,RDD('-T:6QL('1O"F)E(&1E=&5R;6EN960N(%1H92!"96EL:6YS;VX@ +M;6]N860@9F]R("1<;6%T:&-A;"!*7U@H,BDD(&ES('1H=7,@;V8@='EP90HD +M)`HP(%QR:6=H=&%RV1I9F8Q?2DL(`IA;F0@ +M=VAEF4@=&AA;B!T:&]S92!O9B!T:&4@"FUO;F%D(&9O +M,R!<;6%T:&-A;"!*7U@H+3$I)"X@3&5T('5S('=R:71E("1<;VUE9V%?6"0@ +M9F]R"G1H92!D=6%L:7II;F<@-"A<0T,I)"`*6EE;&1S +M(&-A;F]N:6-A;"!IV%L:6=N961]"EHF +M(#H]("!<17AT7C$H7&UA=&AC86P@2E]8*"TQ*2Q<;6%T:&-A;"!/*"TU*2E< +M7`HF7&-O;F<@*%Q(7C,@7&UA=&AC86P@2E]8*"TQ*2E>*@I<8V]N9R`H7$A> +M,B!<;6%T:&-A;"!/7U@H+3$I*5XJ7&-O;F<@7$A>,"A<;VUE9V%?6"@Q*2E< +M("X*7&5N9'MA;&EG;F5D?0HD)`I4:&4@:61E;G1I='D@:6X@"B0D"EQ(;VT@ +M*%HL(%HI(%QC;VYG(%Q%>'1>,2A<;6%T:&-A;"!*7U@H+3$I+"!:7BH@7&]T +M:6UE'1E;G-I;VX@ +M=VAI8V@L('1W:7-T960@8GD@-"P@8V%N(&)E('=R:71T96X@87,*)"0*,"!< +M-"A<0T,I)"`HT5! +M.DQA;G1E2!T:&4@ +M861J;VEN="!L:6YE87(@"G-Y,"A<;VUE9V%?6"@Q*2DD("AS +M964@7&-I=&5;0V]R;VQL87)Y(#DN,BXR77M%03IA9&HM=&AE;W)Y?2DN($ET +M(&9O;&QO=W,@8GD*4V5RT5!.DU2,38Z +M.34S8WTL('-E92!A;'-O(%QC:71E6U1H96]R96T@,BXR77M%03IO:W)E9FQE +M>&EV?2D*=&AA="`D7&UA=&AC86P@1R0@:7,@;&]C86QL>2!F2!C +M;VYS=')U8W1I;VX@)%QM871H8V%L($F]N=&%L('5N9"!V97)T:6MA;`HE($YUF]N +M=&%L('5N9"!<:&\@=F5R=&EK86P*>PI<UQBUQH;WU[-FUM?0I<9F]N='-I>F5[,3!P='U[.'!T?0I<'E]"B4E)24E)24E)24E)24E)24E)24E)24E)24E +M)24E)24E)24E)24E)0HE"B4@06-HSY] +M"C\H,"XY."DJ(2]>,VUM+WMI?0HE"B4@>2U!8VAS92!V;VX@,%QH;R!B:7,@ +M-EQH;PHE(&UI="!E:6YE;2`B:2(@86X@,"PY(&1ESY]"C\H,"XY."DJ(2]>,VUM+WMJ?0HE)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24*)0HE(#4@=V%A +M9W)E8VAT92!,:6YI96X@=F]N("TU7&)R(&)IRU]"BPP*SPM-5QBRU] +M"BPP*SPM-%QBRU]"BPP*SPP7&)R+#!<:&\^.SPP7&)R+#5<:&\^*BI` +M>RU]"B4*)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E +M"B4*)2!%:6YTRTR?0HL,"L\+3$N-5QB7T*?0HD)`I]"B4E)24E)24E)24E)24E)24E)24E)24E)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E +M)24E)24E)24*7'9S:VEP,"XQ8VT*7&YO:6YD96YT"E-O('1H92`@0F5I;&EN +M7!E"B0D"C`@7')I +M9VAT87)R;W<@55XS(%QO=F5R2!A2!L;V-U2`@8V%N(&)E(&5A +M2!F;W5N9"X*0GD@3&5M;6$@7')E9GMH;VUB9'T@)%QA;'!H820@8V]R +M,B!6)"`N +M($)Y(&1U86QI>FEN9R`HV1U86QI='EB9'TI('=E +M(&9I;F0@=&AA="!I="`*:7,@82!V96-T;W(@8G5N9&QE(&UO;F]M;W)P:&ES +M;2`@:68@86YD(&]N;'D@:68@(`HD55XR7&]P;'5S(%5>,UQO=F5RUQA +M;'!H85YT?5QL;VYG,B`H5B]<;&%N9VQE(%QA;'!H85\Q(%QR86YG;&4I)"!I2!P:6-K"B0D +M"EQA;'!H83T*7&)E9VEN>W!M871R:7A]"F5?-%Q<"F5?,%QW961G92!E7S(@ +M*R!E7S%<=V5D9V4@95\S"EQE;F1[<&UA=')I>'T*)"0*86YD"B0D"EQB971A +M/0I<8F5G:6Y[<&UA=')I>'T*("`@(&5?,%QW961G92!E7S(@*R!E7S%<=V5D +M9V4@95\S7"P@+"8M95\T"EQE;F1[<&UA=')I>'T@+`HD)`IW:&5R92`D95\P +M("P@7&1O=',@+"!E7S0D(&ES(&$@8F%S:7,@;V8@)%8D+"!A;F0@=&AA="!U +M<"!T;R!I2!P;W-S:6)I;&ET +M>2X@5V4@9FEX("1<;6%T:&-A;"!')"!A6=I97,@;V8@)%QM871H8V%L +M($7'LM,UQ] +M+%Q[7'ME7S1V5?,"IE7S(K95\Q*F5?,UQ]7'TI7%P*7&5M<'1Y3&EN +M90IO-30@/2!<>S)S%< +M?2!\(&5?,&5?,BME7S%E7S,@?%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@ +M("`@,B`@("`@("`Q7%P*;S4T(#H@36%T2!L;V-U&%M<&QE('9I82!T:&4@8G5I;'0M:6X@2F%C;V)I86X@8W)I=&5R:6]N"BAS +M964@7&-I=&5[14$Z1%-*4T-](&9O4QI;F4* +M7"`@("`@("`@("`@("`@-"`@("`@("`Y7%P*;S4Y(#H@36%TUQT='MT4QI;F4*;S8P(#H@ +M261E86P@;V8@4UQ<"EQE;F1/=71P=70*(`I<8F5G:6Y/=71P=70*:38Q(#H@ +M8V]D:6T@25A<7`I<96UP='E,:6YE"F\V,2`](#)<7`I<96YD3W5T<'5T"EQB +M96=I;D]U='!U=`II-C(@.B!D96=R964@25A<7`I<96UP='E,:6YE"F\V,B`] +M(#A<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II-C,@.B!C;V1I;2!S:6YG +M=6QA7-T96T@)%Q(7C`H7&]M96=A7U@H,2DI)"!I,R0@:7,@ +M82!M;W)P:&ES;2!W:&EC:"!E>&AI8FET2!T;R!S964L +M("18)"!A,R0@"BAS964@7&-I=&5;4')O<&]S:71I;VX@,BXQ +M77M%03IC;VYI8V)U;F1L97TI+B`*"EQVU-T97`@,RY]?5P[($]U&5D(&EN(%-T97`@,BY<<65D"B5<96YD>T5X86UP;&5] +M"EQE;F1[97AA;7!L97T*"B5<8F5G:6Y[17AA;7!L97T*7&)E9VEN>V5X86UP +M;&5]"B5<;F]I;F1E;G0*)7M<:70@>T5X86UP;&4@-RXR?7U<+"`*5&AI&%M<&QE(&ES(&-O;F-ETAOU-T97`@,2Y]?5P[($AO&ES=&5N8V4@;V8@82!F86UI;'D@ +M;V8@86)E;&EA;B!S=7)F86-ET5!.F9U;'1O;FET?2DN"E1H92!S86UE +M(&%R9W5M96YT&%M<&QE(%QR969[=V%S-RXQ?2!S:&]W('1H +M870@)%@D(&%R:7-EF5R;R!S8VAE;64@;V8@82`*'1E +M;G-I;VX@"B0D"C`@7')I9VAT87)R;W<@(%QM871H8V%L($\@7')I9VAT87)R +M;W<@7&UA=&AC86P@1B`H,RD*7')I9VAT87)R;W<@7&UA=&AC86P@2E]8*#4I +M(%QR:6=H=&%R65D(&EN($9I9W5R92!<V-O:'1A8FQE?2X*7&)E9VEN>V9I9W5R97T* +M)0HE"B4E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24*"B4@3F5U +M92!,Y&YG96X@9OQR($%BUQH;WT*)0HE)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E +M"GL*)"0@)41I86=R86UM('IE;G1R:65R96X*)0HE(%?D:&QE(&1I92!%:6YH +M96ET96X@7&)R(&AO7T*)24E)24E)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E"B4*)2!!8VAS96YKB!I;2!0=6YK=&4@*#`L,"D*)0HE('@M06-HVE]"B4*)2!Y+4%C +M:'-E('9O;B`P7&AO(&)IVI]"B4E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E +M)24E)24E)0HE"B4@-2!W86%GRU]"BPP*SPM-5QBRU]"BPP*SPM +M-2XU7&)R+#5<:&\^.SPN-5QBRU]"BPP +M*SPM,EQBS5]"BPP*SPM,BXU7&)R+#(N-5QH;SXJ>S)] +M"BPP*SPM,"XU7&)R+#$N-5QH;SXJ>S5]"B4*)24E)24E)24E)24E)24E)24E +M)24E)24E)24E)24E)24E)24E)24E"BPP*SPM-"XU7&)R+"TP+C9<:&\^*GLM +M-'T*+#`K/"TS+C5<8G(L+3`N-EQH;SXJ>RTS?0HL,"L\+3(N-5QBS!]"B4E)24E)24E)24E)24E)24E)24E)24E)24E)24E +M)24E)24E)24E)0HL,"L\+38N,%QBWAY?0I]"B0D"GT*)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E)24E +M)0I<8V%P=&EO;GM]7&QA8F5L>V-O:'1A8FQE?0I<96YD>V9I9W5R97T*26X@ +M<&%R=&EC=6QA6UA=')I>'L*,%QA>UQA;'!H87TF"D(@7&]T:6UE9'TF($%>*EQO=&EM97-<;6%T:&-A;"!/(%QA2P*86YD('=I=&@@ +M)%QA;'!H85YD(#T@7&%L<&AA7BHH+3$I7&-I2!S=7!P;W-E"G1H +M870@)%QA;'!H820@:7,@82`D,EQT:6UE,B!6)"!A;F0@=&AA=`HD7&%L<&AA7F0@/2!< +M86QP:&%>=%QC9&]T(%QB96=I;GMP;6%T2!AUQI92!(96ES96YB97)G(&=R;W5P?2`D2%\U)"!I;B!I=',@4V-HF5R("1. +M7S4D(&EN(`HD7%-,*#4L(%Q#0RDD('1O(&9I;F0@"B0D"EQA;'!H82`](`I< +M8F5G:6Y[<&UA=')I>'T*95\R7'=E9&=E(&5?,UP[)F5?,UQW961G92!E7S1< +M.R9E7S1<=V5D9V4@95\P7#LF95\P7'=E9&=E(&5?,5P[)F5?,5QW961G92!E +M7S)<7`IE7S%<=V5D9V4@95\T7#LF95\R7'=E9&=E(&5?,%P[)F5?,UQW961G +M92!E7S%<.R9E7S1<=V5D9V4@95\R7#LF95\P7'=E9&=E(&5?,PI<96YD>W!M +M871R:7A]7"`L"B0D"G=H97)E("1E7S`@+%QD;W1S("P@95\T)"!I'1[ +M2$U]?20@;VX@)%Q04%XT*%Q#0RDD(&ES(&5S2!R86YK(#(@=F5C=&]R(&)U;F1L92!K;F]W;B!O;B`D7%!07FXH7$-#*20L +M("1N7&=E<2`T)"P@=VAI8V@@9&]EGEG:65S(&]F(`HD7&UA=&AC86P@1E][7'1E>'1[2$U]?20@=VET:"!<371W +M;RX*7'9S:VEP,"XS8VT*"EQB96=I;D]U='!U=`II-C0@.B!A;'!H860@/2!M +M871R:7A<>UQ[95\T*F5?,2P@95\R*F5?,UQ]+%Q[95\P*F5?,BP@95\S*F5? +M-%Q]+%Q<"EP@("`@("`@("`@("`@("`@("`@("`@7'ME7S$J95\S+"!E7S0J +M95\P7'TL7'ME7S(J95\T+"!E7S`J95\Q7'TL7%P*7"`@("`@("`@("`@("`@ +M("`@("`@("!<>V5?,RIE7S`L(&5?,2IE7S)4QI;F4* +M7"`@("`@("`@("`@("`@-2`@("`@("`R7%P*;S8T(#H@36%T7'LM,BPM,EQ]+&%L<&AA9"E<7`I<96UP='E,:6YE"F\V-2`] +M('P@+65?,65?-"!E7S)E7S,@('Q<7`I<("`@("`@?"!E7S!E7S(@(&5?,V5? +M-"`@?%Q<"EP@("`@("!\(&5?,65?,R`@+65?,&5?-"!\7%P*7"`@("`@('P@ +M95\R95\T("!E7S!E7S$@('Q<7`I<("`@("`@?"`M95\P95\S(&5?,65?,B`@ +M?%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`@-2`@("`@("`R7%P*;S8U +M(#H@36%TB!A;'!H861<7`I<96UP='E,:6YE"F\V-B`](%Q[ +M,EQ]('P@95\R95\S(&5?,&5?-"!E7S%E7S(@+65?,V5?-"!E7S!E7S$@('Q< +M7`I<("`@("`@7'LR7'T@?"!E7S%E7S0@95\Q95\S(&5?,&5?,R!E7S!E7S(@ +M("UE7S)E7S0@?%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`@,B`@("`@ +M("`U7%P*;S8V(#H@36%T4QI;F4*;S8W(#H@36%T4QI;F4*;S8X(#H@36%T4QI;F4*;S,"!<;6%T:&-A;"!&7WM<=&5X +M='M(37U]*&DI(#T@,"0@9F]R("1I/#,D(&5V97)Y(&YO;BUZ97)O('-E8W1I +M;VX@;V8@"B1<;6%T:&-A;"!&7WM<=&5X='M(37U]*#,I)"!V86YI'1[2$U]?2@S*20@:7,@;F]T(&=L;V)A;&QY(&=E;F5R871E9"DN($]U'!L:6-I="!C;VYS=')U8W1I;VX@"F%L;&]W&%M<&QE+@I< +M=G-K:7`P+C-C;0H*7&)E9VEN3W5T<'5T"FDW,R`Z('-E8W0@/2`@;6%P*%-> +M,2Q37C$U+#`I('P@,2P@4UXT*3M<7`I<96UP='E,:6YE"EP@ +M("`@("`@("`@("`@(#$@("`@("`@,3E<7`IO-S,@.B!-871R:7@@4R`@/"TM +M+2!37%P*7&5N9$]U='!U=`I<=G-K:7`P+C%C;0H*7&YO:6YD96YT"E=E(&-O +M;7!U=&4@=&AE(&5Q=6%T:6]N4QI +M;F4*7"`@("`@("`@("`@("`@,S8@("`@("`@,3E<7`IO-S0@.B!-871R:7@@ +M4R`@(#PM+2T@4UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDW-2`Z(&9M +M87!C;VYE(#T@4QI;F4*;S-"A<0T,I)"!A'1[2$U]?2@S*20N +M($EN(&9A8W0L(&]N92!C86X@7-I2!S=&%B;&4@-"A<0T,I)"!W:71H($-H97)N(&-L87-S97,@)&-?,3TM,20@ +M86YD("1C7S(]-"0*:7,@=&AE(&AO;6]L;V=Y(&]F(&$@;6]N860@;V8@=&AE +M('1Y<&4@87,@:6X@4W1E<"`Q+B!&'1[2$U]?20N(%1O9V5T:&5R('=I=&@@T5! +M.F1E8VME&%M +M<&QE?0I<96YD>V5X86UP;&5]"@HE7'1E>'1B9GM%25-%3D)51"!%3D1%?0H* +M)2!<T5!.DU2.3)G +M.C$T,#$S?2!I;G-T96%D+@HE(%QN;VEN9&5N=%QT97AT8F9[06YC;VYA+"!6 +M+B!<)B!/='1A=FEA;FDL($T5!.DU2-3'1B9GM"87)T:"P@5RY].B`*)2`@("`@("`@('M<UQB9B`T,GTL(#8S+3DQ("@Q.3T5!.DU2.#!F.C$T,#`U?2!I;G-T96%D"B5<;F]I +M;F1E;G1<=&5X=&)F>T)AUQS;"!-;VYA9',@86YD($UO9'5L:2!O9B!696-T;W(@0G5N9&QET5!.DU2.#!C.C$T,#$P8GT@:6YS=&5A +M9`HE(%QN;VEN9&5N=%QT97AT8F9[0F5I;&EN;B0@86YD('!R;V)L96US +M(&]F(&QI;F5A'1B9GM"97)NUQS;"!!;&=E8G)A:6,@8G5N9&QE;B0@86YD('!R +M;V)L96US(&]F(&QI;F5AT)U8VAW96ET>BP@4BXM3RY].@HE("`@("`@ +M("`@07!P96YD:7@@=&\@0V]H96XM36%C875L87D@;6]D=6QEBP@1"X@16ES96YB +M=60L(&%N9"!*+B!(97)Z;VUQS;"!#;VUM=71A=&EV92!!;&=E8G)A('=I=&@@ +M82!6:65W(%1O=V%R9"!!;&=E8G)A:6,@1V5O;65TT5IT5! +M.D5I65R.D-H;W=&;W)MT5!.F5I +MT5I65R+"!&+BU/+GTZ(`HE("`@("`@("`@>UQS +M;"!3:&5A9B!#;VAO;6]L;V=Y(&%N9"!&'1B9GM':65S96MEUQS;"!/ +M;B!T:&4@;6]D=6QI(&]F('9E8W1OUQB9B`Q,#9] +M+"`T-2TV,"`H,3DW-RD*"B4@=7-E(%QC:71E>T5!.DU2.#!M.C$T,#$Q?24@ +M:6YS=&5A9`HE(%QN;VEN9&5N=%QT97AT8F9[2'5L96LL($ML875S?3H*)2`@ +M("`@("`@('M<TAOUQS;"!696-T;W(@8G5N9&QE'1B9GM(;W)R;V-K2P@2BXM3"X@5F5R9&EEUQB9B`W,2TW,GTL(#$Y-RTR,#(@*#$Y.#`I"@H*)2!U'1B9GM+87!R +M86YO=BP@32X@32Y].@HE("`@("`@("`@>UQS;"!/;B!T:&4@9&5R:79E9"!C +M871E9V]R:65S(&]F(&-O:&5R96YT('-H96%V97,@;VX@UQB9B`Y +M,GTL(#0W.2TU,#@@*#$Y.#@I"@HE('5S92!<8VET97M%03I-4C@P;3HQ-#`Q +M,GT@:6YS=&5A9`HE(%QN;VEN9&5N=%QT97AT8F9[3&4@4&]T:65R+"!*+GTZ +M"B4@("`@("`@("![7'-L($9I8G)<)V5S('-T86)L97,@9&4@'1B9GM-87)U>6%M82P@32Y].@HE +M("`@("`@("`@>UQS;"!-;V1U;&D@;V8@6]T;R!5;FEV+B![7&)F(#$W?2P@.3$M,3(V +M("@Q.3'1B9GM-87)U>6%M82P@32Y].@HE("`@("`@("`@ +M>UQS;"!-;V1U;&D@;V8@T5!.DU2.#%B.C$T,#`Q?24@:6YS=&5A9`HE(%QN +M;VEN9&5N=%QT97AT8F9[3VMO;F5K+"!#+BP@4V-H;F5I9&5R+"!-+B!<)B!3 +M<&EN9&QE"!PT5!.DU2,38Z.34S8WTE(&ENU-E"!A;&=<)V5BT5!.DU2.3EF.C$T,#8T?24@:6YS=&5A9`HE(%QN;VEN9&5N=%QT97AT +M8F9[5V%L=&5R+"!#:&%R;&5S($@N?3H*)2`@("`@("`@("![7'-L(%!F869F +M:6%N('-U8G-C:&5M97-]+"`*)2`@("`@("`@($HN($%L9V5BUQB9B`U?2P@-C`HE("4@;6]D93H@"(*)2`E(')E9G1E>"UK965P +M+71E;7!O2UB=69F97)S.B!T"B4@)2!R969T97@M=7-E+65X=&5R;F%L +M+69I;&4M9FEN9&5R'1ET5!.F-O;FEC8G5N9&QE?0I(+GY!8F\L(%S1])"!AUQE;2!-871H+B!:+GTL(#(R.3HW,C4M+3T5!.DU2.3)G.C$T,#$S?0I6+GY!;F-O;F$@86YD($UQE;2!!='1I($%C8V%D+B!096QOUQE;2!);G9E;G0N($UA=&@N?2P@-#(Z-C,M+3DQ+"`Q.3UQE;2!-86YUUQC:&%R(#@P?7U<UQE;2!&=6YC=&EO;F%L($%N +M86PN($%P<&PN?2P@,3(Z,C$T+2TR,38L(#$Y-S@N"@I<8FEB:71E;7M%03IA +M9&HM=&AE;W)Y?0I-+D,N($)E;'1R86UE='1I(&%N9"!!+GY3;VUM97-E.@I< +M;F5W8FQO8VL@>UQE;2!4:&4@861J=6YC=&EO;B!T:&5O"!PR=]9F%N9#H*7&YE=V)L;V-K($%L9V5BUQB9B![7&-H87(@.#!]?5QS<'MN?21<(&%N9"!P +MUQE;2!& +M=6YC=&EO;F%L($%N86PN($%P<&PN?2P@,3(Z,C$R+2TR,30L(#$Y-S@N"@I< +M8FEB:71E;7M%03I"4GT*4BY^0G)A=6X@86YD($LN?E)A;F5S=&%D.@I<;F5W +M8FQO8VL@0V]N:6,@8G5N9&QET5!.DU2.#EG.C$S,#`U.F%P<&5N9&EX +M?0I2+BU/+B!"=6-H=V5I='HZ"EQN97=B;&]C:R!!<'!E;F1I>"!T;R![0WUO +M:&5N+7M-?6%C875L87D@;6]D=6QET5!.F1E8VMETA];W)R;V-KT)]7")U;F1E;"!U;F0@9&%S('M-?6]D +M=6PM>U-]8VAE;6$@9EPB=7(*("!S=&%B:6QE("0R)"U[5GUE:W1OUQB9B![7&-H87(@.#!]?5\T)"!M:70@)&-?,20]+3$L +M"B`@)&-?,B0]-"X*7&YE=V)L;V-K('M<96T@36%T:"X@6BY]+"`Q.#@Z,3`Q +M+2TQ,3`L(#$Y.#0N"@I<8FEB:71E;7M%03IU;FEQ=65N97-S:&TQ?0I7+GY$ +M96-K97(Z"EQN97=B;&]C:R!3=&%B;&4@T-]:&5R;BUC;&%SUQE;2!-871H+B!!;FXN?2P@,C2!M;V1U;&5S(&]F(')A;FL@,B!V96-T;W(@8G5N9&QE +MUQC:&%R(#@P?7U>-"0Z(%-O;64@T5! +M.DU2,30X-#DW,SIE:7-E;F)U9'T*1"Y^16ES96YB=60Z"EQN97=B;&]C:R!# +M;VUP=71I;F<@8V]H;VUO;&]G>2X*7&YE=V)L;V-K($$@8VAA<'1EUQE;2!#;VUM=71A=&EV92!A;&=E8G)A('=I +M=&@@82!V:65W('1O=V%R9"!A;&=E8G)A:6,@9V5O;65TT5!.F5I65R.@I<;F5W8FQO8VL@4VAE868@8V]H;VUO +M;&]G>2!A;F0@9G)E92!R97-O;'5T:6]NT5!.D5I65R.D-H;W=&;W)M65R.@I<;F5W8FQO8VL@4F5S=6QT86YTT5!.D53?0I0+GY%;&QI +M82!A;F0@1RY^4V%C8VAI97)O.@I<;F5W8FQO8VL@4VUO;W1H('-US1])%P@UQE;2!!;&=E +M8G)A:6,@9V5O;65TT5!.F9U;'1O;FET?0I7+GY&=6QT;VXZ +M"EQN97=B;&]C:R![7&5M($EN=&5RT5!.DU2.#%H.C$T,#$T?0I$+GY':65S96MET5!.DU2,S`Z,3(P?0I'+GY(;W)R +M;V-KUQE;2!0 +MT5!.DU2.#1J.C$T,#(V?0I'+GY(;W)R;V-KVY])"X*7&YE=V)L;V-K($EN($$N?D1O=6%D>2!A;F0@2BXM +M3"X@5F5R9&EEUQE;2!,97,@7"=E<75A=&EO;G,@9&4* +M("![67UA;FTU]:6QLS1])%P@=VET:"`Q-2PP,#`* +M("!S>6UM971R:65S+@I<;F5W8FQO8VL@>UQE;2!4;W!O;&]G>7TL(#$R.C8S +M+2TX,2P@,3DW,RX*"EQB:6)I=&5M>T5!.DU2.#!M.C$T,#$Q?0I+;&%UUQC:&%R(#@P?7U<UQE;0H@($%L9V5B2`H3&!!7"UQ=6E< +M+6QA(#$Y.#@I?2P@<&%G97,@,3,X+2TQ-30N(%-PT5!.D)E2!O;B!G&ES=&5N8V4@;V8@UQB9B![7&-H87(@.#!]?5QS<'LT?20N"EQN97=B;&]C:R![7&5M +M($%T=&D@06-C860N($YA>BX@3&EN8V5I+"!624E)+B!397(N+"!296YD+BP@ +M0VPN(%-C:2X@1FES+B!-870N"B`@3F%T+GTL(#8Y.C(R,RTM,C(W+"`Q.3@P +M+@H*7&)I8FET96U[14$Z35(X,&TZ,30P,3)]"DHN?DQE?E!O=&EEUQB +M9B![7&-H87(@.#!]?5QS8GLR?2A[7&)F('M<8VAA<@H@(#8W?7TI)"X*7&YE +M=V)L;V-K('M<96T@36%T:"X@06YN+GTL(#(T,3HR,3T5!.FYI8V]]"DXN?DUA;F]L86-H93H*7&YE=V)L;V-K(%-Y +M>GEG:65S(&]F(&%B96QI86X@UQC:&%R(#@P?7U>-"A[7&)F"B`@>UQC:&%R(#8W?7TI)"X*7&YE=V)L;V-K +M('M<96T@2BX@6%M83H*7&YE +M=V)L;V-K($UO9'5L:2!O9B!S=&%B;&4@T5!.DU2.#)H.C$T,#$Q?0I-+GY-87)U>6%M83H*7&YE +M=V)L;V-K($UO9'5L:2!O9B!S=&%B;&4@&EV?0I#:"X@3VMO;F5K.@I< +M;F5W8FQO8VL@4F5F;&5X:79E('M'?6%R8F5N(&%U9B`D>UQB9B![7&-H87(@ +M.#!]?5QS<'LT?20N"EQN97=B;&]C:R![7&5M($UA=&@N($%N;BY]+"`R-C`Z +M,C$Q+2TR,SUQB +M9B![7&-H87(@.#!]?5QS<'LT?20N"EQN97=B;&]C:R![7&5M($UA=&@N(%HN +M?2P@,3DQ.C(P-RTM,C(S+"`Q.3@V+@H*7&)I8FET96U[14$Z35(X,6(Z,30P +M,#%]"D-H+B!/:V]N96LL($TN?E-C:&YE:61EUQE;2!696-T;W(@8G5N9&QEUQE;2!0"!A;&=< +M)V5BUQE;2!!;FXN(&]F +M($UA=&@N("@R*7TL(#8Q.C$Y-RTM,CUQE;2!*+B!3>6UB +M;VQI8R!#;VUP=70N?2P@,CDH-"TU*3HW,CDM+3T5!.E9!4WT*5V]L;65R?E8N(%9AUQE;2!#;VUP=71A=&EO;F%L(&UE=&AO9',@:6X@8V]M;75T871I=F4@86QG +M96)R82!A;F0@86QG96)R86EC"B`@9V5O;65T7-O;BP@ +M2EPB=7)G96X@2&5R>F]G"B`@86YD($UI8VAA96P@4W1I;&QM86XN"@I<8FEB +M:71E;7M%03I-4CDY9CHQ-#`V-'T*0RY^2"X@5V%L=&5R.@I<;F5W8FQO8VL@ +M4&9A9F9I86X@UQ`87)A8FEC7&-`7-T86-K.EQ<4W!E8VEA;"!687)I971I97,@=FEA(%-M86QL +M($9I96QD7)E=71H+"!$+3DU-#0P($)A>7)E=71H+"!'97)M +M86YY"B4@("`@("`@("!<86YD"B4@("`@("`@("!-871H96UA=&ES8VAEU1H96]R96U]"B4@7&YE=W1H96]R96U[8V]R;VQL87)Y +M?5ML96UM85U[0V]R;VQL87)Y?0I<;F5W=&AE;W)E;7MC;VYJ96-T=7)E?5MT +M:&5O6QE>V1E9FEN:71I;VY]"B4@7&YE=W1H96]R96U[9&5F:6YI=&EO;GU; +M=&AE;W)E;5U[1&5F:6YI=&EO;GT*)2!<;F5W=&AE;W)E;7MR96UAU)E +M;6%R:WU;&%M<&QE?7M%>&%M<&QE +M?5MS96-T:6]N70HE(%QN97=T:&5OV5X97)C:7-E?7M%>&5R8VES97U; +MT%L9V]R:71H;7U; +MWT*"@I<;F5W8V]M;6%N9'M<04%!?7M[7&UA=&AB8B!!?7T*7&YE=V-O;6UA +M;F1[7$)"?7M[7&UA=&AB8B!"?7T*7&YE=V-O;6UA;F1[7$-#?7M[7&UA=&AB +M8B!#?7T*7&YE=V-O;6UA;F1[7$1$?7M[7&UA=&AB8B!$?7T*7&YE=V-O;6UA +M;F1[7$5%?7M[7&UA=&AB8B!%?7T*7&YE=V-O;6UA;F1[7$9&?7M[7&UA=&AB +M8B!&?7T*7&YE=V-O;6UA;F1[7$='?7M[7&UA=&AB8B!'?7T*)5QN97=C;VUM +M86YD>UQ(2'U[>UQM871H8F(@2'U]"EQN97=C;VUM86YD>UQ)27U[>UQM871H +M8F(@27U]"EQN97=C;VUM86YD>UQ*2GU[>UQM871H8F(@2GU]"EQN97=C;VUM +M86YD>UQ+2WU[>UQM871H8F(@2WU]"B5<;F5W8V]M;6%N9'M<3$Q]>WM<;6%T +M:&)B($Q]?0I<;F5W8V]M;6%N9'M<34U]>WM<;6%T:&)B($U]?0I<;F5W8V]M +M;6%N9'M<3DY]>WM<;6%T:&)B($Y]?0HE7&YE=V-O;6UA;F1[>UQM871H8F(@ +M3WU]"EQN97=C;VUM86YD>UQ04'U[>UQM871H8F(@4'U]"EQN97=C;VUM86YD +M>UQ147U[>UQM871H8F(@47U]"EQN97=C;VUM86YD>UQ24GU[>UQM871H8F(@ +M4GU]"EQR96YE=V-O;6UA;F1[7%-3?7M[7&UA=&AB8B!3?7T*7&YE=V-O;6UA +M;F1[7%-S?7M[7&UA=&AB9B!3?7T*7&YE=V-O;6UA;F1[7%14?7M[7&UA=&AB +M8B!4?7T*7&YE=V-O;6UA;F1[7%55?7M[7&UA=&AB8B!5?7T*7&YE=V-O;6UA +M;F1[7%96?7M[7&UA=&AB8B!6?7T*7&YE=V-O;6UA;F1[7%=7?7M[7&UA=&AB +M8B!7?7T*7&YE=V-O;6UA;F1[7%A8?7M[7&UA=&AB8B!8?7T*7&YE=V-O;6UA +M;F1[7%E9?7M[7&UA=&AB8B!9?7T*7&YE=V-O;6UA;F1[7%I:?7M[7&UA=&AB +M8B!:?7T*"EQN97=C;VUM86YD>UQ,3'U[>UQM871H8F(@3'U]"EQN97=C;VUM +M86YD>UQ(2'U[>UQM871H8F(@2'U]"EQN97=C;VUM86YD>UQ3>7I]>WM<UQR;7M3>6U]7#M]?0I<;F5W +M8V]M;6%N9'M<4U-Y>GU[>UQR;7M3>7I]?7T*7&YE=V-O;6UA;F1[7'-P;VQY +M?7M[7')M>W-P;VQY?7U]"EQN97=C;VUM86YD>UQ3<&5]>WM3<'U]"EQN97=C +M;VUM86YD>UQO<&5N0WU[>UQM871H8F(@0WU]"EQN97=C;VUM86YD>UQMUQR;7MM?7U]"EQN97=C;VUM86YD>UQ,4WU[>UQR;7M,?7U]"EQN97=C;VUM +M86YD>UQ)4WU[>UQR;7M)?7U]"EQN97=C;VUM86YD>UQ,;V-]>WM<UQR;7ML8VU]?7T*7&YE=V-O;6UA +M;F1[7&QC?7M[7')M>VQC?7U]"EQN97=C;VUM86YD>UQL;7U[>UQR;7ML;7U] +M?0I<;F5W8V]M;6%N9'M<8V]N?7M[7')M>V-]?7T*7&YE=V-O;6UA;F1[7&5X +M='U[>UQR;7ME?7U]"EQN97=C;VUM86YD>UQE8WU[>UQR;7ME8WU]?0I<;F5W +M8V]M;6%N9'M<86YN?7M[7')M>V%N;GU]?0HE(%QN97=C;VUM86YD>UQ%>'1] +M>WM<UQE<75I?7M[7')M>V5Q=6E]?7T* +M7&YE=V-O;6UA;F1[7%1OUQR;7M4;W)]?7T*7&YE=V-O;6UA;F1[7')A +M9'U[>UQR;7MR861<.WU]?0I<;F5W8V]M;6%N9'M<:6YI?7M[7')M>VEN?7U] +M"EQN97=C;VUM86YD>UQ(:6QB?7M[7')M>TAI;&)]?7T*7&YE=V-O;6UA;F1[ +M7&EM86=E?7M[7')M>VEM86=E?7U]"EQN97=C;VUM86YD>UQC;&EF9GU[>UQR +M;7MC;&EF9GU]?0I<;F5W8V]M;6%N9'M<4&EC?7M[7')M>U!I8WU]?0I<;F5W +M8V]M;6%N9'M<4%)]>WM<2TL@6WA?,2P@7&1O=',@+"!X7VY=?7T*)24E)24E +M)24E)24E)24E)24E)24E)24E)24E)24*)24E(&YE=R!C;VUM86YDUQK87U[>UQM871H +M8V%L($%]?0I<;F5W8V]M;6%N9'M<:V)]>WM<;6%T:&-A;"!"?7T*7&YE=V-O +M;6UA;F1[7&MC?7M[7&UA=&AC86P@0WU]"EQN97=C;VUM86YD>UQK9'U[>UQM +M871H8V%L($1]?0I<;F5W8V]M;6%N9'M<:V5]>WM<;6%T:&-A;"!%?7T*7&YE +M=V-O;6UA;F1[7&MF?7M[7&UA=&AC86P@1GU]"EQN97=C;VUM86YD>UQK9WU[ +M>UQM871H8V%L($=]?0I<;F5W8V]M;6%N9'M<:VA]>WM<;6%T:&-A;"!(?7T* +M7&YE=V-O;6UA;F1[7&MI?7M[7&UA=&AC86P@27U]"EQN97=C;VUM86YD>UQK +M:GU[>UQM871H8V%L($I]?0I<;F5W8V]M;6%N9'M<:VM]>WM<;6%T:&-A;"!+ +M?7T*7&YE=V-O;6UA;F1[7&ML?7M[7&UA=&AC86P@3'U]"EQN97=C;VUM86YD +M>UQK;7U[>UQM871H8V%L($U]?0I<;F5W8V]M;6%N9'M<:VY]>WM<;6%T:&-A +M;"!.?7T*7&YE=V-O;6UA;F1[7&MO?7M[7&UA=&AC86P@3WU]"EQN97=C;VUM +M86YD>UQK<'U[>UQM871H8V%L(%!]?0I<;F5W8V]M;6%N9'M<:W%]>WM<;6%T +M:&-A;"!1?7T*7&YE=V-O;6UA;F1[7&MR?7M[7&UA=&AC86P@4GU]"EQN97=C +M;VUM86YD>UQKUQM871H8V%L(%-]?0I<;F5W8V]M;6%N9'M<:W1]>WM< +M;6%T:&-A;"!4?7T*7&YE=V-O;6UA;F1[7&MU?7M[7&UA=&AC86P@57U]"EQN +M97=C;VUM86YD>UQK=GU[>UQM871H8V%L(%9]?0I<;F5W8V]M;6%N9'M<:W=] +M>WM<;6%T:&-A;"!7?7T*7&YE=V-O;6UA;F1[7&MX?7M[7&UA=&AC86P@6'U] +M"EQN97=C;VUM86YD>UQK>7U[>UQM871H8V%L(%E]?0I<;F5W8V]M;6%N9'M< +M:WI]>WM<;6%T:&-A;"!:?7T*)24E)24E)24E)24E)24E)24E)24E)24E)24E +M)24E"B4E)51H92!M871HUQM871HWM<UQS0WU[>UQS($-]?0I<;F5W8V]M;6%N9'M< +MWM<UQS1GU[>UQS($9]?0I<;F5W8V]M;6%N9'M<WM<UQS27U[>UQS($E] +M?0I<;F5W8V]M;6%N9'M<WM<UQS3'U[>UQS($Q]?0I<;F5W8V]M;6%N9'M< +MWM<UQS3WU[>UQS($]]?0I<;F5W8V]M;6%N9'M<WM<UQS4GU[>UQS(%)] +M?0I<;F5W8V]M;6%N9'M<WM<UQS57U[>UQS(%5]?0I<;F5W8V]M;6%N9'M< +MWM<UQS6'U[>UQS(%A]?0I<;F5W8V]M;6%N9'M<WM<UQC3WU[>UQS +M($]]?0I<;F5W8V]M;6%N9'M<8TE]>WM<WM<WM<UQC5'U[>UQS(%1]?0I< +M;F5W8V]M;6%N9'M<8UA]>WM<UQLUQLUQL +M;VYGUQL969T87)R;W=]"B4E)24E)24E)24E)24E)24E)24E +M)24E)24E)24E)24E)24E)0HE7&YE=V-O;6UA;F1[7$-]>UQ#?0HE7&YE=V-O +M;6UA;F1[7&]P96Y0?7M<4'T*7&YE=V-O;6UA;F1[7'5F?7M[7&)F($9]?0I< +M;F5W8V]M;6%N9'M<=6-]>WM<8F8@0WU]"EQN97=C;VUM86YD>UQT96YS;W)] +M>UQO=&EM97-]"EQN97=C;VUM86YD>UQM:7U[>UQB9B!M?7T*7&YE=V-O;6UA +M;F1[7'18?7M<=VED971I;&1E>UA]?0I<;F5W8V]M;6%N9'M<<'5N:W1]>UQH +M"!T;S%E>'M<2'5G92Y]?0I< +M;F5W8V]M;6%N9'M<='!U;FMT?7M<:'-P86-E>RTN,V5X?5QH8F]X('1O,65X +M>UQ(=6=E+GU]"B4@7&YE=VQE;F=T:'M<8G)]"B4@7&YE=VQE;F=T:'M<:&]] +M"EQD969<1&5C;&%R94UA=&A/<&5R871OUQO<&5R871O +MT=,?0I<1&5C;&%R94UA=&A/<&5R +M871OUQ/;WU[3WT* +M7$1E8VQAU-P96-]"EQ$96-L87)E36%T +M:$]P97)A=&]R>UQ(;VU]>TAO;7T*7$1E8VQAGU[UQW;W)D?7MW7"QOUQS=7!P?7MS=7!P?0I<1&5C;&%R94UA=&A/<&5R871OUQI;7U[:6U]"B5<1&5C;&%R +M94UA=&A/<&5R871OV1E<'1H?0I<1&5C;&%R94UA=&A/<&5R871OUQ#;VMEUQ.1GU[3D9]"EQ$96-L87)E36%T:$]P97)A +M=&]R>UQP9'U[<&1]"EQ$96-L87)E36%T:$]P97)A=&]R>UQ33'U[4TQ]"EQ$ +M96-L87)E36%T:$]P97)A=&]R>UQ33WU[4T]]"EQ$96-L87)E36%T:$]P97)A +M=&]R>UQ/T]]"EQ$96-L87)E36%T:$]P97)A=&]R>UQ3<&5Z?7M3<'T* +M7$1E8VQAUQW9&EM +M?7MW9&EM?0I<1&5C;&%R94UA=&A/<&5R871OVMD:6U] +M"EQ$96-L87)E36%T:$]P97)A=&]R>UQH96EG:'1]>VAE:6=H='T*7$1E8VQA +MUQR:WU[UQS;VUEUQH9FEL;'M] +M7%P@7'9S<&%C97LM,"XW8VU]?0HE7&1E9EQP87)T:71L92,Q>WM<;65DUQS=6)S=6)S96-T:6]N?0H*)24E=&AE;W-D969I;FET:6]N96X* +M7&YE=V-O;6UA;F1[7&=M?7M<;6%T:&9R86L@;7T*7&YE=V-O;6UA;F1[7&=- +M?7M<;6%T:&9R86L@37T*7&YE=V-O;6UA;F1[7&EN=&5G97)]>UQ:6GT*7&YE +M=V-O;6UA;F1[7'!R;VI]>UQ04'T*7&YE=V-O;6UA;F1[7&-O;7!L97A]>UQ# +M0WT*7&YE=V-O;6UA;F1[7')E86Q]>UQM871H8F(@4GT*7&YE=V-O;6UA;F1[ +M7&=P?7M<;6%T:&9R86L@<'T*7&YE=V-O;6UA;F1[7&=Q?7M<;6%T:&9R86L@ +M<7T*)2!<;F5W8V]M;6%N9'M<9V]]>UQM871H9G)A:R!S;WT*)5QN97=C;VUM +M86YD>UQO<&5N1GU[7$9]"@HE)24E)24E)24E)24E)25B971T:2!T86)L92!M +M;W)E('=I9&4A"EQT86)C;VQS97`@,W!T"@H*"B4E)24E)24E)24E)24E)4)) +M0DQ)3T=205!(60I<;F5W8V]M;6%N9'M<8GE]>WT*7&YE=V-O;6UA;F1[7'!A +M<&5R?7LZ(%QB96=I;GMI='U]"EQN97=C;VUM86YD>UQJ;W5R('U[+"!<96YD +M>VET?7T*7&YE=V-O;6UA;F1[7'9O;'U[7&)E9VEN>V)F?2!]"EQN97=C;VUM +M86YD>UQYRDL?0H* +M7&UA:V5T:71L90H*7&)E9VEN>V%B2!Q=65S=&EO;G,N"DEN('1H92!F:7)S="!P87)T +M('=E(&1E=F5L;W`@82!PGEG:65S(&]F(&-A;F]N:6-A;"!C=7)V97,@86YD(&-O;7!A-B0N("`@("`* +M7&5N9'MA8G-T7-T96US(&=A=F4@"FQI9F4@=&\@=&AE(&ED96$@ +M;V8@VUO9'5L:2!S<&%C +M97TL(&]R(&$@2!A;F0@=VAE=&AE'!L:6-I="!E<75A=&EO;G,@9F]R("1<34T@7'-U8G-E="!<1T0IS;6%L;"!C;VUP87)E9"!T;R`D<5YC +M)"X*5&AE(&9IT-/.E-C:#%]('1O(&-O;G-T-"0[('-E92!<8VET97M#3SI%;%!E+$-/.D13 +M?2!F;W(@;6]T:79A=&EO;BX*"@I);B!T:&ES(&9I2!P96]P +M;&4@;6EG:'0@;V)J96-T(`IT:&%T('1H:7,@;F]T(&$@<')O;V8@8F5C875S +M92!W92!C86YN;W0@8V]N=')O;"!E=F5R>2!S:6YG;&4@2!F'!E8W1A=&EO;BP@:&5N8V4@:70@ +M:7,@96%S>2!T;R!S<&]T+B`@"D$@6=I97,@;V8@8V%N;VYI8V%L(&-U'!L;VET(&]U2!AV%C:VYO=VQE9&=M96YT?2`*5V4@ +M=&AA;FL@2&%NV%C:VYO=VQE9&=M96YT?2`*"@I<<&%R=&ET;&5[3F]T871I;VY](`I& +M;W(@82!F:6YI=&5L>2!G96YE6YO;6EA;"!R:6YG(`HD4SUK6WA?,"Q<;&1O=',L>%]R720@ +M=V4@2!I +M4RA-+&LI7WMI*VI] +M+B0D"D%S(&EN('1H92!<371W;R!C;VUM86YD('M<='0@8F5T=&E]('=E('-U +M<'!R97-S('IEGEG:65S(&]F('1H +M92!R871I;VYA;"!N;W)M86P@8W5R=F4@:6X@)%Q04%XS)"`*:&%V92!T:&4@ +M9F]L;&]W:6YG($)E='1I('1A8FQE+@HD)%QB96=I;GMT86)U;&%R?7M\8V-C +M?0I<:&QI;F4*,2`F("T@)B`M(%QC<@HM("8@,R`F(#(@7&-R"EQE;F1[=&%B +M=6QAW1A8G5L87)]>WQC8V-C?0I< +M:&QI;F4*,2`F("T@)B`M("8@+2!<8W(*+2`F(#4@)B`U("8@+2!<8W(@"BT@ +M)B`M("8@+2`F(#$@7&-R"EQE;F1[=&%B=6QA'MR +M86YD;VT@8W5R=F5S?0I4:&4@7&EE>VUO9'5L:2!S<&%C92!O9B!C=7)V97-] +M("1<9TU?9R0@:7,@:VYO=VX@=&\@8F4@;V8@9V5N97)A;"!T>7!E(&9O2!IT-/ +M.D%#1TA](&5V97)Y(&-UF4@=&AIT-/.D%#?2X@"D-H;V]S92`D9"`](&V0M,7U[,GT@+2!G)"0*9&]U8FQE +M('!O:6YTUQT86)C;VQS97`@-7!T"EQB96=I;GMT86)U;&%R +M?7ML?')RW1A8G5L87)]?0HD)`I4:'5S(&9O,BDD(`IO9B!D;W5B;&4@<&]I;G1S(&]F(&YO9&%L(&=E;G5S +M("1G)"!C=7)V97,L('1H92!P;&%N92!M;V1E;"!A<'!R;V%C:"!C;VQL87!S +M97,@9F]R("1G/C$P)"X*"EQP87)T:71L97M286YD;VT@4&]I;G1S?0I<:6YD +M97A[,BA<1D9?<2E\/3$K<2MQ7C(D+@I7:&%T('=E('-H;W5L9"!D;R!I +MVLK,GTR)"P* +M=VAI8V@@9VEV97,@)%QD96QT83T@7&)I;F]M>VLK,7U[,GT@*R!<97!S:6QO +M;B0@('=I=&@@("0P(%QL92!<97!S:6QO;B!<;&4@:R0N"E1H=7,@)&L]7&QC +M96EL("A[+3,K7'-QS(M-'T*,"`F(#$@)B`M("8@+2!<8W(*,2`F +M("T@)B`M("8@+2!<8W(*7'9D;W1S("8@7'9D;W1S("8@7'9D;W1S("8@7'9D +M;W1S(%QC<@HD:RTR)"`F("T@)B`M("8@+2!<8W(*)&LM,20@)B`M("8@)&LK +M,2U<97!S:6QO;B0@)B`D:RTR7&5PW1A8G5L87)]"B1<<75A9#)<97!S:6QO;B!<9V4@:R`Z)`I<8F5G:6Y[=&%B +M=6QAS(M-'T*,"`F(#$@)BT@)B`M(%QC<@HQ("8@ +M+2`F("T@)B`M(%QC<@I<=F1O=',@)B!<=F1O=',@)B!<=F1O=',@)B!<=F1O +M=',@7&-R"B1K+3(D("8@+2`F("T@)B`M(%QC<@HD:RTQ)"`F("T@)B`D:RLQ +M+5QE<'-I;&]N)"`F("T@7&-R"B1K)"`F("T@)B`D,EQE<'-I;&]N+6LD("8@ +M7&AB;W@@=&\@,C!P='M<:&9I;"1<97!S:6QO;B1<:&9I;'T@7&-R"EQE;F1[ +M=&%B=6QA2!A(&-O;&QE8W1I;VX@)%Q'86UM820@;V8@)%QD96QT820@<&]I;G1S(&)Y +M('!I8VMI;F<@"G1H92!(:6QB97)T+4)U"!O9B!T:&5IF4@)%QE<'-I;&]N)"`H)&LM +M7&5P*&LK,2UE +M<',I+%)>7'MK+3(J97!S.BTQ+&5P7'MK +M*S$M97!S.C`L,BIE<',M:SHM,5Q]+%)>7'ME<',Z+3)2!N96%R+@I<8F5G:6Y/=71P=70*:3(@.B!D:7-T +M:6YC=%!O:6YT,2Q27EQ[+612!P;VEN=',@:6X@82!P +M87)A;65T97(@,BDD(&%N9"!P:6-K,BDD.@HD)%QX>6UA=')I>'M<2&EL +M8E][*&0L9RE]*%Q04%XR*2!<87);,BE]+B0D"E-O('1H92!Q=65S=&EO;B!IUQT:6QD92!#?5QI;EQG35]G)"!IW1H96]R96U]6TAAUQT:6QD92!#?5QI;EQG35]G)"P@=&AE +M(&EN=F5RUQT:6QD92!#?2DD+@I-;W)E;W9E,B0@"F%N +M9"!A(&QI;F4@8G5N9&QE("1,/5QN=5Y[+3%]7&MO7WM<4%!>,GTH,2DD+"!W +M:&5R92`D>UQT:6QD92!#?20@:7,@=&AE(`IN;W)M86QI>F%T:6]N(&]F('1H +M92`H;F]D86PI(&-U'!E8W1E9"!D:6UE;G-I;VX@)#,H9RTQ*2M<,"A,*5QO=&EM97,@2%XP*$M?>UQT:6QD92!# +M?5QO=&EM97,@3%Y[+3%]*2!<UQLUQT:6QD92!#?2DL"B0D"G=H:6-H(&-A;B!B92!E87-I;'D@8VAE8VME9"!I +M;B!O=7(@8V%S97,L"G-E92!<8VET95MP+B`Q.#E=>T-/.D%#1TA]+@I);B!O +M=7(@8V%S97,@)%QM=5],)"!C86X@8F4@,GTH,2DI7&]T:6UEUQM=5],?7M<;')A?0I(7C`H25]<1V%M;6$H9"TS*2DN"B0D"E-O +M('=E(&YE960@='=O(&-O;F1I=&EO;G,Z(`I<8F5G:6Y[96YU;65R871E?0I< +M:71E;2`D2%XP*$E?7$=A;6UA*&0M-2DI/3`D.PI<:71E;2!T:&5R92!AV5N +M=6UE,"A)7UQ'86UM82AD +M+30I*3TP)"!F;W(@)&<],BPS)"!A;F0*)%QD:6T@2%XP*$E?7$=A;6UA*&0M +M,RDI/3$D(&9O,"A)7UQ'86UM82@R*2D],B0@ +M86YD(`IT:&4@0F5T=&D@;G5M8F5RW1A8G5L87)]>WQC8V-]7&AL:6YE"C$@)B`M("8@+2!<8W(*+2`F(#(@)B`M +M(%QC<@HM("8@+2`F(#$@7&-R"EQE;F1[=&%B=6QA,"A)7UQ'86UM82AD+3,I*3U<9&EM($A>,"A) +M7UQ'86UM82@U*2D],R0@86YD('1H92!"971T:2!N=6UB97)S(&]F("1<1V%M +M;6$D(&%R90HD)`I<8F5G:6Y[=&%B=6QA,"A#+%QO;65G85Y[7'1E;G-O*B0D"B4E(&ES('-UUQS8W)I<'1S:7IE"B4E(%QB +M96=I;GMV97)B871I;7T*)24@2V]D86ER82U3<&5N8V5R36%P(#T@*$DI("T^ +M(#\_/PHE)2!<96YD>W9E2!N;W)M86PL +M(&)E8V%UVUA>&EM86P@ +M,"A#+%QK;U]#*&TI*20D"FAA,2A<4%!>,RQ<:VE?0RAM*2DD+"`* +M:&%S($AI;&)E2!A(&-O;G-T7IY9WD@ +M"FUO9'5L92!O9B`D25]#)#H@"B0D(#`@7&QT;R!<:VE?0R!<;'1O(%QO<&QU +M,E\J*%QK9RD]2%XQ7RHH7&MI7T,I)"X@"E1H=7,@ +M)%QK9R0@:7,L('5P('1O(&1I6=Y(`IM;V1U;&4@;V8@)$TD.R!S +M964@92YG+BP@7&-I=&5;4')O<"X@,2XU77M#3SI$15-]+@H*5&AE(&5X<&5C +M=&5D($)E='1I(&YU;6)EFEN9R!T:&4@7IY9VEE*BDD+@I#;VUP87)I;F<@=VET:"!T:&4@6=I +M97,@;V8@)$TD('=E(&]B=&%I;B!T:&4@9F]L;&]W:6YG(&ES;VUO*BDD(&=I=F5S(&$@<&]I;G0@:6X@)%Q'1R@V+#@I)`IA;F0@=&AE +M($AI;&)ET-/.DAA,GTN"@I<;65DS,Z +M.%Q]+%)>7'LV.C7H@*$=T*G)A;F1O;2AS;W5R8V4@1W0L4EY<>S8Z-5Q] +M*2D[7%P*7"`@("`@("`@("`@("`@(&-O2!I;G1E&%M<&QE2!T:&ES(&ES('1R=64@;W9E&%M<&QE(&]V97(@ +M=&AE(&EN=&5G97)S"G=O=6QD(&)O=6YD('1H92!N=6UB97(@;V8@97AC97!T +M:6]N86P@8VAA2!M86YY(&EN=&5G97(@97AA;7!L97,N"@I!W5N:7)A=&EO;F%L:71Y?2!O +M9B`D7&=-7WLQ,7TD(&)Y(&-O;7!U=&5R"F%I9&5D(&-O;7!U=&%T:6]N,"A,*5QO +M=&EM97,@2%XP*$M?>T-]7&]T:6UEUQ04%XS?2@Q*20@=&\@=&AE(&-U%\S73M<7`I<96YD3W5T<'5T +M"EQB96=I;D]U='!U=`II,3`@.B!#/7)A;F1O;4=E;G5S,3%#=7)V92A2*3M< +M7`I<96UP='E,:6YE"F\Q,"`Z($ED96%L(&]F(%)<7`I<96YD3W5T<'5T"EQB +M96=I;D]U='!U=`II,3$@.B!I'1>,BAC;VMERTT7'TI +M.UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDQ,R`Z(&)E='1I($]M96=A +M7%P*7&5M<'1Y3&EN90IO,3,@/2!R96QA=&EO;G,@.B!T;W1A;#H@-2`Q,%Q< +M"EP@("`@("`@("`@("`@("`@("`@("`M,3H@,B`@+EQ<"EP@("`@("`@("`@ +M("`@("`@("`@("`@,#H@,R`Q,%Q<"EQE;F1/=71P=70*"EQN;VEN9&5N=`I7 +M92!S964@=&AA="!T:&5R92!A2!#;VUP=71E<@HE)2!A:61E9"!C;VUP=71A=&EO;G,@=V4@ +M:&%V92!T;R!S:&]W('1H870@=&AE($MO9&%I,2A#+%QK=%]#*2`D)`HE +M)2!I&%M<&QE+B`*)24@5&AE(&9O;&QO=VEN9R!P +M0HE)2`H;V8@8V]D:6UE;G-I;VX@870@;&5AUQT="!C;VME7IY9VEEW1A8G5L +M87)]"EQQ<75A9`IG/3$U.B!<.PI<8F5G:6Y[=&%B=6QA'!E8W1E9"!S>7IY9VEEW1A8G5L87)]>WQC8V-C?5QH;&EN90H@,2`F("T@)B`M("8@+2`@ +M7&-R"B`M("8@+2`F("T@)B`M("!<8W(*("T@)B`M("8@+2`F("T@(%QC<@H@ +M+2`F("T@)B`M("8@+2`@7&-R"B`M("8@-R`F(#4@)B`M(%QC<@H@+2`F("T@ +M)B`S("8@,B`@7&-R"EQE;F1[=&%B=6QAW1A8G5L87)]>WQC8V-C +M?0I<:&QI;F4*(#$@)B`M("8@+2`F("T@(%QC71H:6YG(&ES(&1E=&5R;6EN960@8GD@=&AE($AAT-O;G-T7'LS.BTR7'TL4EY<>SB`H1W0J7IY9WDN(`I#;VYS:61E#H*)"0V4B@M,BD@7'-T86-KUQK87!P87U[ +M7&QT;WT@-%(H+3,I(%QL=&\@4B@M,2D@7&QT;R`P+B0D"D%N>2!PGEG>2P@"F%N9"!C;VYC871E;F%T960@=VET:"!A(&=E;F5R86P@;6%P("0T +M4B@M,BD@7'-T86-KUQB971A?7M<;'1O?2`U4B@M,RDD"F=I=F5S(&$@ +M<')E"!O9B!A(&UO9'5L92!-(&]F(&1ES0Z+3)7'LT.BTR7'TL4EY<>S4Z+3-,RDK*VED +M7RA27C8I.UQ<"EP@("`@("`@("`@("`@("`@23H]:61E86P@GEG:65S(&)Y('1H92!S86UE(&UE=&AO9"!A +M"`*)#52 +M*"TR*2!<UQL=&]](#A2*"TS*20@"GEI96QDR!<;'1O?2`S4B@M,RDD('1H92!C;VMEGEG:65S"B0D"EQB96=I;GMT86)U;&%R +M?7M\8V-C8V-]7&AL:6YE"C4@)B`Q,2`F(#(@)B`M("8@+2`@7&-R"BT@)B`M +M("8@,B`F("T@)B`M(%QC<@HM("8@+2`F(#$W("8@,C,@)B`X("!<8W(*+2`F +M("T@)B`M("8@+2`F("T@7&-R"EQE;F1[=&%B=6QA2X*26X@=&AE('-P86-E +M(&]F('1H92!M871R:6-E2`Q(&AA=F4@97AP96-T960@8V]D:6UE;G-I;VX@ +M,RX*2&5N8V4@;W9E'!E8W0@=&\@9FEN9"!T:&4@9&5S:7)E9"!M;V1U;&5S("1-)`IW:71H(&$@ +M<')O8F%B:6QI='D@;V8@)#$O<5XS)"X@"E1H92!C;V1E('1O(&1E=&5C="!B +M860@;6]D=6QE#M<7`I<("`@("`@("`@("!2(#H](%I: +M+W!;>%\P+BYX7S-=.UQ<"EP@("`@("`@("`@(&DZ/3`[:CH],#M<7`I<("`@ +M("`@("`@("!K87!P83H]:V]S>G5L*#,L=F%RS4Z+3)S4Z+3)&%M<&QE&EM871E(&5S +M=&EM871I;VX@;V8@=&AE($-052UT:6UE(')E<75I'!E8W0@=&\@;V)T86EN(&5X86UP;&5S('=I +M=&AI;B`*9F5W(&UI;G5T97,N"D%C='5A;&QY('1H92!C;VUP=71A=&EO;G,@ +M9F]R("1Q/3(D(&%N9"`D<3TS)"!T86ME(&QO;F=EF4@8F]X("TM=&5X="!M;V1E +M"EQB96=I;GMT86)U;&%R?7ML?')RS$S?5QC<@I<:&QI;F4*W1A8G5L87)]"B0D"@I<;65D7'LQ,CHM,EQ] +M*3M<7`I<("`@("`@("`@("`@("`@("`@("`@8F5T83UR86YD;VTH4EY<>S4Z +M+3)2!D96=R965S +M(&9-7S(I7UQ[-%Q]/3TR(&%N9%Q<"EP@("`@("`@("`@("`@("`@("`@("`@ +M("`@(&-O9&EM($T]/30@86YD(&1E9W)E92!-/3TR,SLI.UQ<"EP@("`@("`@ +M("`@("`@("`@("`@("!C;W5N=#UC;W5N="LQ.RD[7%P*7"`@("`@("`@("`@ +M("`@("!'=#H]=')A;G-P;W-E("AR97,@32DN9&1?,SM<7`I<("`@("`@("`@ +M("`@("`@($DZ/6ED96%L('-Y>B`H1W1?7'LU+BXQ-UQ]*3M<7`I<("`@("`@ +M("`@("`@("`@(&-O,%QK;R@Q*2DM7&1I;2!33"@S*3T@-UQC9&]T-2TX/3,V)"!P87)A;65T +M97)S+"`*86YD('1H92!F86UI;'D@;V8@8W5R=F5S(&AA'!E8W1E9"!D:6UE +M;G-I;VX@)#4V/31<8V1O="`Q-#TS.2LR*S$U)"`*;V8@=&AE($AI;&)ET-/.DAA,GTN(`I);F1E960@=&AE(&-O;G-T +MS$Q?20L(`IW:&EL92!I;B!C87-E("1G/3$T)"!W +M92!D;VXG="!K;F]W('1H92!U;FER871I;VYA;&ET>2!O9B`*=&AE('!AT-O;7!A6=I97,@;V8@ +M0V%N;VYI8V%L($-UT=R965N)W,@8V]N:F5C='5R97T* +M7&EN9&5X>U-Y>GEG:65S(&]F(&-A;F]N:6-A;"!C=7)V97-]"D]N92!O9B!T +M:&4@;6]S="!O=71S=&%N9&EN9R!C;VYJ96-T=7)E7IY +M9VEEV-A;F]N:6-A;"!C +M=7)V97T*)$,@7'-U8G-E="!<4%!>>V2!A(')E6UM971R:6,L('1H870@:7,L("1<8F5T85][:BQJ*S%]/5QB +M971A7WMG+3(M:BQG+6I])"P@"F%N9"!E2!O;FQY('1W;R!R +M;W=S(&]F($)E='1I(&YU;6)ES$R,2XX<'1]("1<8G5L;&5T)%QH +M"!T;R`U;6U[7&AF:6PC,5QH9FEL?7T@"EQB +M96=I;GMT86)U;&%R?7M\8V-C8V,@8V-C8V,@8V-]"EQH;&EN90HQ("8@+2`F +M("T@)B`M("8@+2`F(%QS8GLM?2`F(%QS8GLM?2`F("T@)B`M("8@+2`F("T@ +M)B`M(%QC<@HM("8@)%QB971A7WLQ+#)])"`F("1<8F5T85][,BPS?20@)B`D +M7&-D;W1S)"`F("1<8F5T85][<"QP*S%])"`F("1<8V1O=',D(`HF("1<8V1O +M=',D("8@)%QB971A7WMP+'`K,GTD("8@+2`F("T@)B`M("8@+2!<8W(*+2`F +M("T@)B`M("8@+2`F("1<8F5T85][<"QP*S)])"`F("1<8V1O=',D(`HF("1< +M8V1O=',D("8@)%QB971A7WMP+'`K,7TD("8@)%QC9&]TS(L,WTD("8@)%QB971A7WLQ+#)])"`F("T@7&-R"BT@)B`M("8@+2`F("T@ +M)B`M("8@+2`F("T@)B`M("8@+2`F("T@)B`M("8@,2!<8W(*7&5N9'MT86)U +M;&%R?0HD)`HE)20D"B4E7&1E9EQH9",Q>UQH8F]X('1O(#$T+C5M;7M<:&9I +M;"0C,21<:&9I;'U]("5F;W(@:&]D9V4@9&EA9W)A;7,@+2UM871H(&UO9&4* +M)25<UQU;FET;&5N9W1H?7LQ;6U]"B4E7&)E9VEN>W!I8W1U +MUQH9'LQ +M?7T*)25<<'5T("@M-#,N-2PQ+C4I>UQH9'M<8F5T85][,2PR?7U]"B4E7'!U +M="`H+3(Y+#$N-2E[7&AD>UQL9&]TUQL9&]TUQH9'M<;&1O='-]?0HE +M)5QP=70@*#(Y+"TT+C4I>UQH9'M<8F5T85][9RTS+&UQH9'LQ?7T*)24E:&]R(&QI;F5S"B4E7'!U="`H+34X +M+#$R*2![7&QI;F4H,2PP*7LQ,39]?0HE)5QP=70@*"TU."PV*2![7&QI;F4H +M,2PP*7LQ,39]?0HE)5QP=70@*"TU."PP*2![7&QI;F4H,2PP*7LQ,39]?0HE +M)5QP=70@*"TU."PM-BD@>UQL:6YE*#$L,"E[,3$V?7T*)25<<'5T("@M-3@L +M+3$R*2![7&QI;F4H,2PP*7LQ,39]?0HE)25V97)T(&QI;F5S"B4E7'!U="`H +M+34X+"TQ,BD@>UQL:6YE*#`L,2E[,C1]?0HE)5QP=70@*"TT,RXU+"TQ,BD@ +M>UQL:6YE*#`L,2E[,C1]?0HE)5QP=70@*"TR.2PM,3(I('M<;&EN92@P+#$I +M>S(T?7T*)25<<'5T("@M,30N-2PM,3(I('M<;&EN92@P+#$I>S(T?7T*)25< +M<'5T("@P+"TQ,BD@>UQL:6YE*#`L,2E[,C1]?0HE)5QP=70@*#$T+C4L+3$R +M*2![7&QI;F4H,"PQ*7LR-'U]"B4E7'!U="`H,CDL+3$R*2![7&QI;F4H,"PQ +M*7LR-'U]"B4E7'!U="`H-#,N-2PM,3(I('M<;&EN92@P+#$I>S(T?7T*)25< +M<'5T("@U."PM,3(I('M<;&EN92@P+#$I>S(T?7T*)24E;6%R:R!T:&4@S%P='T*)25<<'5T("@M-#,N-2PV +M*2![7&QI;F4H,2PP*7LU.'U]"B4E7'!U="`H+30S+C4L,"D@>UQL:6YE*#$L +M,"E[,CE]?2!<<'5T("@Q-"XU+#`I('M<;&EN92@Q+#`I>S(Y?7T*)25<<'5T +M("@M,30N-2PM-BD@>UQL:6YE*#$L,"E[-3A]?0HE)5QP=70@*"TT,RXU+#`I +M('M<;&EN92@P+#$I>S9]?0HE)5QP=70@*#0S+C4L+38I('M<;&EN92@P+#$I +M>S9]?0HE)5QP=70@*"TQ-"XU+"TV*2![7&QI;F4H,"PQ*7LV?7T*)25<<'5T +M("@Q-"XU+#`I('M<;&EN92@P+#$I>S9]?0HE)24@9&5S8W)I<'1I;VX*)25< +M<'5T("@M-3@L,3,I('LD7&]V97)BS$Q-FUM?7U>>UQD +M:7-P;&%YR1<=6YD97)B +MS0S+C5M;7U]7WM<9&ES<&QA>7-T>6QE('!])'T*)25< +M96YD>W!I8W1U2`*=&AE(%QI97M#;&EF9F]R9"!I;F1E>'T@;V8@=&AE(&-UV-O;FIE8W1UT-/.D=R,GU=7&QA8F5L +M>T=#;VYJ?2`*3&5T("1#)"!B92!A('-M;V]T:"!C86YO;FEC86P@8W5R=F4@ +M;W9EVHL:BLR +M?3T@,"0@9F]R("1J(%QL92!<;&9L;V]R(%QFVV-O +M;FIE8W1U2!'GEG:65S(&]F("0R9RTR +M)"!P;VEN=',@:6X@)%Q04%Y[9RTR?20@"BAH>7!E6=I97,@;V8@82!G2!AT-/.D5I4&]]+B`* +M5&AU"`*)$$]*&%?>VEJ +M?2DD+"!T:&5N("1!)"!C86X@8F4@8VAOT-/.D5I +M4&]]+@H*5&\@V1I9F9EUQP87)T:6%L +M('A?:7TD+B`*5&AE(')I;F<@)%,D(&%C=',@;VX@)%Q&1EMX7S`L7&QD;W1S +M+'A?;ETD(&)Y(&1I9F9E,BM<;&1O=',K>%]N7C(D(&ES(&$@:&]M;V=E;F5O=7,@:61E +M86P@"B1*(%QS=6)S970@4R0@6=Y(&YU +M;6)EVXK,WU[,GTD("8D7&-D;W1S)"`F)%QFW`H;BLQ+7`I +M?7MN*S)]7&)I;F]M>VXK,WU[<"LQ?20*)B1<8V1O=',D("8D7&9R86-[;GU[ +M;BLR?5QB:6YO;7MN*S-]>VXK,7TD("8M7&-R"BT@)BT@)BT@)BT@)BT@)BT@ +M)C%<8W(@(`I<96YD>W1A8G5L87)]"B0D"@H*02!C;VQL96-T:6]N("1(7S`L +M7&QD;W1S+$A?;B0@;V8@:'EP97)P;&%N97,@:6X@)%Q04%YN)"!I"!T;R`D<20@"FEF(&%N9"!O;FQY +M(&EF('1H92!C;VQL96-T:6]N("1<1V%M;6$]7'MP7S`L7&QD;W1S+'!?;EQ] +M(%QS=6)S970@7&-H96-K(%Q04%YN)"`*;V8@=&AE(&-O"P@8F5C875S92`*)%QP87)T:6%L7VE<<&%R=&EA;%]J)"!A +M;FYI:&EL871E2!P;VQAU,O2GTD+B!'V-O;FIE8W1UU!#;VYJ?2`@1F]R(&$@9V5N +M97)A;`HD7$=A;6UA)"!A;F0@=&AE(&=I=F5N("`D7$QA;6)D820@=&AE(&-O +M4U]K*%,O25]<1V%M;6$L +M7$9&*5][:RLQ?2!<8V%P(%Q4;W)>4U]K*%,O25]<3&%M8F1A+%Q&1BE?>VLK +M,7T*7'-U8G-E="!<5&]R7E-?:RA3+THL7$9&*5][:RLQ?20D"FEN=&5R7IY +M9VEES)])"`F)%QC9&]TVXK,7U[:RLQ?20*)B1<8V1O=',D("8D;B0*7&5N9'MT86)U +M;&%R?0HD)`H*4VEN8V4@8F]T:"!4;W(@9W)O=7!S(&%R92!C;VYT86EN960@ +M:6X@)%Q4;W)>4U]K*%,O2BQ<1D8I7WMK*S%])"P@"G1H92!C;&%I;2!I6EN9R!T:&%T(&9O"`D7$=A;6UA)"`*=&AE(&5X<&5C=&5D(&1I;65NVLK,7TK7&1I;5Q4;W)>4U]K*%,O7UQ'86UM82Q<1D8I7WMK*S%] +M"BU<9&EM7%1OVLK,7TD+"!W:&EC:"!IVLK,7TM7&9R86-[:RAG+3$M:RE]>V=]7&)I;F]M>V4U]K*%,O25]<1V%M;6$L7$9&*5][:RLQ?2!<8V%P(%Q4;W)>4U]K*%,O +M25]<3&%M8F1A+%Q&1BE?>VLK,7T@"CU<5&]R7E-?:RA3+TE?>UQ'86UM85QC +M=7!<3&%M8F1A?2Q<1D8I7WMK*S%]+"0D"F%N9"!'4U]K*%,O25][7$=A;6UA7&-U +M<%Q,86UB9&%]+%Q&1BE?>VLK,7T*/5QB971A7WMK+&LK,7TH7$=A;6UA7&-U +M<%Q,86UB9&$I"CUK7&)I;F]M>VVW!M871R:7A])"0* +M9&5P96YD:6YG(&]N("`@("`*82!S>6UM971R:6,@;6%TVEJ?3UB7WMJ:7TD(&%S('!A4U]N*%,O25]<3&%M8F1A+%Q&1BE?>VXK,7TD+B`*"@H*"@I<VLL:RLQ?2A#*2!<;F4@,"!<4FEG:'1A2!A'L@:7,@6=Y('-P96-I86Q] +M(%Q])"0*=VAE2!O9B!P;VQASVLL:RLQ?20@;VX@82!G96YE2X*7&5N9'MC +M;VYJ96-T=7)E?2`*"E=E(&-A;B!P2!C +M;VUP=71E&%M +M<&QE6UM971R:6,*;6%T'1R82!S>7IY9VEE +MGEG:65S('=I;&P@;V-C=7(@:6X@:&EG:&5R(`IC;V1I;65N2!W:71H(&$@<')O8F%B:6QI='D@;V8@)#$O<5XR)"X@"E-O;64@ +M979I9&5N8V4@9F]R(&ERGEG:65S(&EN(&$@=&5S="!O9B`Q,#`P(&5X86UP;&5S(&9O'1R80IS>7IY9VEEUQH8F]X('1O("XX8VU[7&AF:6PD +M(S$D?7T@)7-M86QL(&9I>&5D('-I>F4@8F]X("TM=&5X="!M;V1E"EQB96=I +M;GMT86)U;&%R?7MR?')\UQS8W)I<'1S +M='EL92`Q,#`P?2]Q)"`F(%QS8GMS7WM<W-?,WT@)B!<UQH +M8F]X('1O("XX8VU[7&AF:6PD(S$D?7T@)7-M86QL(&9I>&5D('-I>F4@8F]X +M("TM=&5X="!M;V1E"EQB96=I;GMT86)U;&%R?7MR?')\UQS8W)I<'1S='EL92`Q,#!]+W$D("8@7'-B>W-?>UQR;2!T +M;W1]?2`F(%QS8GMS7S%]("8@7'-B>W-?,GT@)B!<7IY9WD@UQB9B!!('1EVLL:RLQ?2A#*2!<;F4@,"0@=&AE('9A;'5E(&UI9VAT"F)E("1<8F5T85][ +M:RQK*S%]/3$D(&-O;G1R861I8W1I;F<@1W)E96XG6=Y(`IE>&-E<'1I;VYA;"!L;V-U +MW1EVLL:RLQ +M?20*=6YT:6P@82!C97)T86EN(&%M;W5N="!O9B!S<&5C:6%L(&-U"!T;R`N-C5C;7M<:&9I;"0C,21]?2`EW1A8G5L87)]>W)\S9]>W)]>W!OVLL:RLQ?21]7'9R=6QE7&-R"B1G)"`F +M7"!S96-O;F1S("9<(&-UUQL92`R?29<2!A9G1E6=Y('-P +M96-I86P@8W5R=F5S(&QI92!O;B!T:&4@9&EV:7-O<@HD1#U<>R!#(%QI;B!< +M9TU?9R!\(%=>,5][:RLQ?2A#*2!<;F4@7&5M<'1Y2!T:&%T(&ET(&EN=&5R6=Y +M('-P96-I86P@&%M<&QE.R!S964@7&-I=&5[0T\Z0F%%:7TN +M"@HE)7M<8F8@5&AE(&5N9"!O9B!T:&4@'!A;F1E9"Y]("`*)254:&4@9F]L;&]W:6YG('-C%]A73L*)24@("`@(&UU;'0Q5VET:',R/6UA=')I>"AA<'!L>2@H:RTR*2LQ +M+&DM/BAA<'!L>2@H82TQ+6LI*S$L:BT^>%\H:2MJ*S$I*2DI*3L*)24@("`@ +M(&UU;'0Q5VET:'-T/6UA=')I>"AA<'!L>2@H:RTR*2LQ+&DM/BAA<'!L>2@H +M82TQ+6LI*S$L:BT^>%\H:2MJ*S(I*2DI*3L*)24@("`@(&UU;'0Q5VET:'0R +M/6UA=')I>"AA<'!L>2@H:RTR*2LQ+&DM/BAA<'!L>2@H82TQ+6LI*S$L:BT^ +M>%\H:2MJ*S,I*2DI*3L*)24@("`@("TM=&AE($MO>G-U;"!M871R:7@@7'=E +M9&=E7BAK+3$I($9A("T^7'=E9&=E7FL@1F$@*BH@1F%>(&ES(&=I=F5N(&)Y +M"B4E("`@("!Y/7-Y;6)O;"!Y.UD]2UMY7S$N+GE?85T["B4E("`@("!A;'!H +M83UTG5L*&LL=F%R*&LM,2D@1F$@+3X@7'=E9&=E7FL@1F$@*BH@1F%> +M*B`J*B`H4U\H:RTR*2E>*B`J*B!&82D@:7,@5]I)W,L('=H:6-H(&%R92!O9B!B:61E +M9W)E92`H,2PQ*0HE)2`@("`@86QP:&$Q/7-U8G-T:71U=&4H8V]N=')A8W1- +M87`H86QP:&$Q*2QM871R:7@H2RQ[=&],:7-T*&YU;6=E;G,@6#HQ*7TI*3L* +M)24@("`@("TM86YD('1H92!S86UE(&9OW1O3&ES="AN=6UG96YS +M(%@Z,2E]*2D["B4E("`@("!A;'!H83,]6UB;VP@=SM7 +M/4M;=U\Q+BYW7V)=.PHE)2`@("`@;75L=#)7:71HCUS>6UB;VP@>CM:/4M; +M>E\Q+BYZ7V)=.PHE)2`@("`@8F5T83UTG5L*&PL=F%R +M6UM971R:6-0;W=EB!D:69F*%%7+"!S>6UM971R:6-0;W=E7-I8VES +M=',*8F5C875S92!T:&5Y(&-A;B!S97)V92!A7-I8W,*:7,@ +M=&AE(&1I2!O9B!M:7)R;W(@2X*"D%L=&AO=6=H('1H97)E(&ES(&%N +M(&5N;W)M;W5S(&%M;W5N="!O9B!E=FED96YC92!A="!P6]N9"!T:&4@=&]R:6,O:&]M;V=E;F5O=7,@-B0N(`I(97)E(&5X +M86UP;&5S(&-A;B!B92!O8G1A:6YE9"!B>2!T:&4@4&9A9F9I86X*8V]N'T@8F5L;W7,@"G1H870@86YY('-M;V]T:"!#86QA +M8FDM66%U(&EN("1<4%!>-B0@8V%N(&)E(&]B=&%I;F5D(&EN('1H:7,@=V%Y +M+B`*26X@=&AI-"0@=&AE('=O2!A;&P@=&AE(#4P(&MN;W=N(&9A;6EL:65S(`IO9B!S;6]O=&@@;F]N +M+6=E;F5R86P@='EP92!S=7)F86-E2!I;B!V97)Y(&9E=R!K;F]W;B!E>&%M<&QEF5D('-M86QL(&9I;FET92!F:65L9"!C;VYS +M=')U8W1I;VYS(&%S(&$@U1H92!09F%F9FEA;B!#;VUP;&5X?0I<:6YD97A[4&9A9F9I86X@8V]M<&QE +M>'T*3&5T("1<:V8D(&)E(&$@=F5C=&]R(&)U;F1L92!O9B!O9&0@>RAR*7T@/2!<9G)A8WLQ?7MR(7TH +M7'9A +M>W(K,7T]7&1E="A<:V8I7'1E;G-O*BD@7'1E;G-O>RUR+3%](%QS=6)S970@7&MO7TTD"FES(&-A +M;&QE9"!T:&4@>UQS;"!09F%F9FEA;B!I9&5A;'T@;V8@)%QV87)P:&DD+"!B +M96-A=7-E('=O0IW:71H(&9R86UE2!T:&4@("0R*BDD+@H*7&)E9VEN>W1H96]R96U] +M6T)U8VAS8F%U;2U%:7-E;F)U9"!<8VET97M#3SI"17U=7&QA8F5L>U!F869F +M:6%N(&-O;7!L97A]"E=I=&@@=&AIUQL;VYG7=H97)E(&%L;VYG +M("18)"D@=&AE;B`*=&AI2!T:&ES('1O(&-O;G-TT-/.E=A?2!F;W(@)%Q0 +M4%YN)"!G=6%R86YT965S('1H92!E>&ES=&5N8V4@"F]F(&$@4&9A9F9I86X@ +M<')E-B0@9F]R(&5V97)Y('-U8F-A;F]N:6-A +M;"!E;6)E9&1E9"`S+69O;&0N(`I-;W)E;W9E,"A8+%QK;U]8 +M*&TI*20D"G1H92!(87)TF5R;R!F;W(@ +M)&0]7&1E9R!8(%QI;B!<>S$R+#$S+#$T7'TD(&%N9"`*86X@87)I=&AM971I +M8V%L;'D@0V]H96XM36%C875L87D@)%@D(&ES(')E861I;'D@9F]U;F0N(`I& +M;W(@)&0@7&EN(%Q[,34L,38L,3>RUR?20N"E=E('1R>2!T +M;R!C;VYS=')U8W0@)%QK9E\Q)"!A7IY9WD@;6]D=6QE(&]F("1-)"X@"E1H92!C;VYS=')U8W1I;VX@;V8@82!M +M;V1U;&4@=VET:"!T:&4@9&5S:7)E9"!(:6QB97)T(&9U;F-T:6]N(&ES('-T +MV)]>UQL;VYG;&5F=&%RV)]>UQL;VYGUQR;2!S:V5W?2A<:V9?,5XJ*"TW*2Q<:V9?,2DD(&ES('IE7IY9VEEW1A8G5L +M87)]"B0D"EQN;VEN9&5N=`I!;GD@;6%P("1<=F%R<&AI(%QC;VQO;B!<:V9? +M,5XJ*"TW*2!<=&\@7&MF7S$D(&EN9'5C97,@82!M87`@;VX@=&AE(&9R964* +M6UA=')I>'L*,"`F7&MF7S$@7&%R6VQ=("8R +M.%QK;R@M-"D@7&%R6VQ=("8W,%QK;R@M-BD@7&%R6VQ=("8Q,3)<:V\H+3W1A8G5L87)]>WQC +M8V-C8V-C8WT*7&AL:6YE"C,@)B`Q-B`F(#(X("8@)&LD("8@+2`F("T@)B`M +M(%QC<@HM("8@+2`F("1K)"`F(#2!C;VYS +M=&%N="`*:6X@82!S=6)V87)I971Y(&]F(&-O9&EM96YS:6]N(&%T(&UO,B0N(`I4;R!C:&5C:R!F;W(@7IY9VEE2!R +M871H97(@96%S>2!T87-K+@I4:&4@9F]L;&]W:6YG('!R;V-E9'5R92!T97-T +M#H]%\V +M73M<7`I<("`@("`@("`@("!N=6UB97)/9D=O;V1-;V1U;&5S.CTP.VDZ/3`[ +M7%P*7"`@("`@("`@("`@=7-E9%1I;64Z/71I;6EN9R!W:&EL92`H:3Q.*2!D +M;R`H7%P*7"`@("`@("`@("`@("`@("!B.CUR86YD;VTH4EXS+%)>7'LQ-CHM +M,5Q]*3M<7`I<("`@("`@("`@("`@("`@("TM=V4@<'5T(%-Y>GEG>4QI;6ET +M/3XV,"!B96-A=7-E('=E(&5X<&5C="!<7`I<("`@("`@("`@("`@("`@("TM +M:SPQ-B!S>7IY9VEE7IY9WE,:6UI=#T^-C`L3&5N9W1H3&EM:70@ +M/3XS*3M<7`I<("`@("`@("`@("`@("`@(&EF(')A;FL@9F)?,SX]:R!A;F0@ +M*&1I;2!C;VME&%M<&QE+@I(96YC92!W92!C86X@:&]P92!T;R!F +M:6YD(&5X86UP;&5S('=I=&@@)&L],R0@=VET:&EN(&$@&%M<&QE'1R82!S>7IY9VEE2!A(&!@2!C;VUP=71I;F<@=&AE('-E;6DM=6YI=F5RR!-(%QM:60@7%1O'1R82!S>7IY9VEE,RQ27EQ[,38Z+3%7IY9WE,:6UI=#T^-C`@8F5C875S92!W92!E +M>'!E8W0@7%P*7"`@("`@("`@("`@("`@("`M+6L\,38@6=I97,L('-O +M(#$V*S(X*VL\/38P7%P*7"`@("`@("`@("`@("`@("!F8CH]6=Y3&EM:70]/C8P+$QE;F=T:$QI;6ET(#T^,RD[7%P*7"`@("`@("`@ +M("`@("`@("!I9B!R86YK(&9B7S,^/6L@86YD("AD:6T@8V]K97(@8BD]/3`@ +M=&AE;B`H7%P*7"`@("`@("`@("`@("`@("`@("`@(&9B/7)E'0@=V4@8V]M<'5T92!T:&4@=&%N9V5N="!C;V1I;65N&%M<&QE(`HD33U<0V]K97(@ +M8B0@8GD@8V]M<'5T:6YG('1H92!C;V1I;65NUQE +M<'-I;&]N7C)])"`*;&5T("1B7S$K7&5PGEG:65S7%P*7"`@("`@("`@("`@8C$Z/69B+F1D7S$[8C(Z/69B +M+F1D7S)?7'LP+BXR-UQ].V(R)SH]9F(N9&1?,E]<>S(X+BXR."MK+3%S`N+FLM,5Q]7EQ[,"XN,C=< +M?3M<7`I<("`@("`@("`@("`M+71H92!E<75A=&EO;B!F;W(@9C(@:7,@8C$J +M9C(K9C$J8C(],"P@7%P*7"`@("`@("`@("`@+2US;R!F,B!I7'LR."XN,C@K:RTQ7'TI.UQ<"EQE;F1/=71P=70*3F]W('=E +M(&IUF4@86QL('!OF5R;R!M87`Z +M"EQB96=I;D]U='!U=`II,C(@.B!C;V1I;4EN9D1E9DUO9'5L949O"!P87)A;65T2@S+&TM/F%P<&QY*#$V+&XM/EQ< +M"EP@("`@("`@("`@("`@("`@("`@("`@("`@("`@(&EF(&T]/6D@86YD(&X] +M/6H@=&AE;B!X7VL@96QS92`P*2DI.UQ<"EP@("`@("`@("`@("`@("`@("`@ +M("`@("!$96QT83H]E\Q*$TI)"!W92!F:6YD"B0D7&1I;2!<2&]M7WM<*B@M-RDL7&MF7S$I(#UK/2!<9&EM(%Q4;W)?,UY3*$TL +M7$9&*5\U+B0D"B1<2&]M7WM<*B@M-RDL7&MF7S$I +M)"!IS$V?3)<=&EM97-<9&EM(%Q(;VU?>UQR;2!S +M:V5W?2A<:V9?,5XJ*"TW*2Q<:V9?,2DD"G=H;W-E("1I)"UT:"!C;VQU;6X@ +M9VEV97,@=&AE(&5N=')I97,@;V8@82`D,39<=&EM97,Q-B0@6UM +M971R:6,@;6%T6UB;VP@=3M5.CU+6W5?,"XN=5\H8FEN;VUI86PH +M,38L,BDM,2E=.UQ<"EP@("`@("`@("`@("TM;F]W('=E(&-O;7!U=&4@=&AE +M(&5Q=6%T:6]NBAE<75A=&EO;G,L1&5G2!A(&-O +M;'5M;B`D7'1T('-K97=3>6U-;W)P:&ES;20@:7,@=&AE;B!R96-O=F5R960* +M8GD@=&AE(&9O;&QO=VEN9R!C;V1E+@I<8F5G:6Y/=71P=70*:3(T(#H@9V5T +M36]R<&AI6U-;W)P:&ES;2D@+3X@*%Q< +M"EP@("`@("`@("`@('4Z/7-Y;6)O;"!U.U4Z/4M;=5\P+BYU7RAB:6YO;6EA +M;"@Q-BPR*2TQ*5T[7%P*7"`@("`@("`@("`@9CUM87`HV1E9FEN:71I;VY]($$@9&5C;VUP;W-A +M8FQE(&5L96UE;G0@;V8@)$U?,B!<=&5NGEG +M>7T@;V8@)$TD+@I4:&4@*'!R;VIE8W1I=F4I('-P86-E(&]F(')A;FL@,2!S +M>7IY9VEE-BD@7&-A<"!<4%!> +M>S$U?2!< +M*BDL7%!07C8]7%!0*%9>*BDD(&%N9"`D7%!07GLQ-7T]7%!0*%QK97(H7&UU +M*5XJ*20*:6YS:61E('1H92!396=R92!S<&%C92`D7%!0*"A-7S(@7'1E;G-O +M7,@=&AA="P@9F]R +M("1<9&EM($U?,B!<;&4@:B0L"G1H92!E>&ES=&5N8V4@;V8@82`D:EY[=&A] +M)"!L:6YE87(@6=Y(&EM<&QI97,@)%QD:6T@62!<9V4@:BTQ)"X@"E1H +M:7,@:7,@875T;VUA=&EC86QL>2!S871I,B0@:&%S(&QI;F5AW!M +M871R:7A]"C`@)B`P("8@,"`F("H@)B!<;&1O=',@7&-R"C`@)B`P("8@,"`F +M("H@)B!<;&1O=',@7&-R"FQ?,2`F(&Q?,B`F(&Q?,R`F("HF(%QL9&]TW1A8G5L87)]>WQC8V-C8V-C8WT*7&AL:6YE"C$@)B`S("8@,R`F(#$@ +M)B`M("8@+2`F("T@)BT@7&-R"BT@)B`M("8@+2`F("T@)B`M("8@+2`F("T@ +M)B`M(%QC<@I<96YD>W1A8G5L87)]"B0D"G-U8F-O;7!L97@@:6X@=&AE(&9R +M964@GEG>2!M871R:7@*)"0*7&)E9VEN>W!M871R:7A]"C`@)B`M +M;%\S("8@;%\R("!<8W(*;%\S("8@,"`F("UL7S$@(%QC<@HM;%\R("8@;%\Q +M("8@,"`@7&-R(`I<96YD>W!M871R:7A]"B0D"FES('-K972`D:%XP*%Q04%XV +M+%Q,86UB9&%>,B!<:V9?,2!<=&5N2!T:&4*)&LD('-E8W1I;VYS(&-O2DN"EQB96=I;D]U='!U=`II,C4@.B!C:&5C:T)AGEG:65S7%P*7"`@("`@("`@("`@9F(Z/7)E7H@=')A;G-P;W-E(&IA8V]B:6%N(&(L02D[ +M7%P*7"`@("`@("`@("`@8F%S95!T'0@=V4@8VAE +M8VL@=&AA="`D2%XP*%Q04%XV+%Q,86UB9&%>,B!<:V9?,2!<=&5N,B0@,B!<:V9?,2!<=&5N6=I97-<7`I<("`@("`@("`@ +M("!F8CH]S-6U-;W)P:&ES;7,I(3UK('1H96X@*%Q<"EP@ +M("`@("`@("`@("`@("`@97)R;W(@(G1H92!N=6UB97(@;V8@6T@ +M;6]R<&AI6U-;W)P:&ES;7,L5U,2Q+7FLI.UQ< +M"EP@("`@("`@("`@("`@("`@("`@("!I='-)9&5A;#H]:61E86PH7%P*7"`@ +M("`@("`@("`@("`@("`@("`@("`@("`@=F%RF4@=&AE('-K97-B!<=&EM97,@ +M7%!07GMK+3%])"X@5V4@87)E(&EN=&5R97-T960@:6X*<&]I;G1S("1P(%QI +M;B!<4%!>>VLM,7TD('-U8V@@=&AA="!T:&4@=VAO;&4@9FEB97(@"B1<4%!> +M-B!<=&EM97,@7'L@<"!'0@='=O(&QI;F5S +M('!R;V1U8V4@=&AE(&ED96%L(&]F('1H97-E('!O:6YT2!K;F]W(&]F("1K)"!D:7-T:6YC="!P +M;VEN=',@8GD@=&AE"G!R979I;W5S(&-H96-K+"!I="!S=69F:6-E2!T;R!G=6%R86YT964@-2!S<&5C:6%L +M(&9I8F5R2!S=6ET86)L92!C:&]I8V4*;V8@=&AE('!R97-E;G1A=&EO +M;B!M871R:7@N(`I3;R!T:&4@8V]N9&ET:6]N("1K(%QG92`V)"!I7'LS.BTQ7'TI*RM<7`I<("`@("`@("`@("`@("`@("`@("`@ +M,2Q27EQ[,SHM,5Q]*2LK7%P*7"`@("`@("`@("`@("`@("`@ +M("`@(')A;F1O;2A27C$L4EY<>S,Z+3%"A2+%Q[7'LQ7'TL7'LQ7'TL7'LQ7'US,Z+3%,2Q27EQ[,SHM,5Q]*7Q<7`I<("`@ +M("`@("`@("`@("`@("`@("`@,RQ27EQ[,3HM,5Q]*2D[7%P* +M7"`@("`@("`@("`@("`@("`M+7=E('!U="!3>7IY9WE,:6UI=#T^-C`@8F5C +M875S92!W92!E>'!E8W0@7%P*7"`@("`@("`@("`@("`@("`M+6L\,38@6=I97,L('-O(#$V*S(X*VL\/38P7%P*7"`@("`@("`@("`@("`@("!F8CH] +M2!T;V\@:&5A=GD@9F]R(&$@8V]M;6]N(&-O;7!U=&5R +M('1O9&%Y+@I&;W(@82!W87D@=&\@,B!<:V9?,2!<=&5N2!L:65S(&EN('1H92!C;&]S=7)E(`IO +M9B!A;F]T:&5R+@H*02!D969O,BD@/2`R,R0N(`I(96YC92!A +M(&-O;7!U=&%T:6]N(&]F('1H92!(;V1G92!N=6UB97)S("1H7G$H6"Q<3VUE +M9V%><"DD(&=I=F5S('1H92!D:6%M;VYD"B0D"EQB96=I;GMM871R:7A]"B8F +M)B`Q("8F)EQC<@HF)B`P("8F(#`@)B9<8W(*)B`P("8F(#$@)B8@,"`F7&-R +M"B`Q("8F>S(S?2`F)GLR,WT@)B8@,5QC<@HF(#`@)B8@,2`F)B`P("9<8W(* +M)B8@,"`F)B`P("8F7&-R"B8F)B`Q("8F)EQC%\P+BYX7S9=.UQ<"EQE;F1/=71P=70* +M7&)E9VEN3W5T<'5T"FDS,2`Z('1I;64@8CUR86YD;VU-;V1U;&4R1F]R1&5G +M,3=#62@X+%(I.UQ<"EP@("`@("TM(%1R:6%L(&XN(#$W-36U- +M;W)P:&ES;7,]2P@=&AE6=Y+@I<8F5G:6Y/=71P=70*:3,X +M(#H@8F5T=&D@*&YN/7-Y>B!N*5Q<"EQE;7!T>4QI;F4*;S,X(#T@=&]T86PZ +M(#$V(#1<7`I<("`@("`@("`@(#$Z(#$V(#-<7`I<("`@("`@("`@(#(Z("`N +M("Y<7`I<("`@("`@("`@(#,Z("`N(#%<7`I<96YD3W5T<'5T"EQB96=I;D]U +M='!U=`II,SD@.B!N,G0]=')A;G-P;W-E('-U8FUA=')I>"AN;BQ<>S`N+C$U +M7'TL7'LS7'TI.UQ<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`@,2`@("`@ +M("`Q-EQ<"F\S.2`Z($UA=')I>"!2("`\+2TM(%)<7`I<96YD3W5T<'5T"EQB +M96=I;D]U='!U=`II-#`@.B!B,CH]4QI;F4*;S0Q(#H@261E86P@;V8@4EQ<"EQE;F1/=71P +M=70*7&)E9VEN3W5T<'5T"FDT,B`Z(&1E9W)E92!J7%P*7&5M<'1Y3&EN90IO +M-#(@/2`Q-UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDT,R`Z(&-O9&EM +M(&I<7`I<96UP='E,:6YE"F\T,R`](#-<7`I<96YD3W5T<'5T"EQB96=I;D]U +M='!U=`II-#0@.B!B971T:2!R97,@:EQ<"EQE;7!T>4QI;F4*;S0T(#T@=&]T +M86PZ(#$@,C`@-S4@,3$S(#@T(#,R(#5<7`I<("`@("`@("`@(#`Z(#$@("X@ +M("X@("`N("`N("`N("Y<7`I<("`@("`@("`@(#$Z("X@("X@("X@("`N("`N +M("`N("Y<7`I<("`@("`@("`@(#(Z("X@("X@("X@("`N("`N("`N("Y<7`I< +M("`@("`@("`@(#,Z("X@,3(@(#4@("`N("`N("`N("Y<7`I<("`@("`@("`@ +M(#0Z("X@(#@@-S`@,3$S(#@T(#,R(#5<7`I<96YD3W5T<'5T"EQE;F1[97AA +M;7!L97T*"@H*"EQS=6)S96-T:6]N>TQI9G0@=&\@0VAA'ML:69T('1O(&-H87)A8W1E +M>UQR;2!S<&5C:6%L?2!<:6X@7$U-*%Q&1E]P*20@=&AE(&-O9&EM96YS:6]N +M(&ES(&%C:&EE=F5D(&%N9"!T:&%T("1<34U?:R0*:7,@>UQR;2!S<&5C:6%L?20@:7,@=&AE +M('-P96-I86QI>F%T:6]N(&]F(&%N("1/7WM++%QG<'TD+79A;'5E9"!P;VEN +M="!O9B`D7$U-7VLD+B`*3W9EUQT="!C:&5C:T)AUQT="!C:&5C:TUO,"A<4%!>-BQ<3&%M8F1A +M7C(@7&MF7S%>>UQR;2!S<&5C:6%L?2!<=&5N,B!<:V9?,2!<=&5NTLL7&=P?20N"DAE;F-E("1<=F%R +M<&AI7GM<TLL7&=P?20@87,@ +M=V5L;"P*86YD(&)Y('-E;6DM8V]N=&EN=6ET>2!W92!O8G1A:6X@82!S;6]O +M=&@@0V%L86)I+5EA=2`S+69O;&0@9&5F:6YE9"!O=F5R"B1+(%QS=6)S970@ +M7$-#)"X*"EQB96=I;GMT:&5OW1H96]R96U]"@I3964@7&-I=&5[0T\Z5&]](&9O2!W92!AVUIT-/.G9"?0H*"@H*)2!,;V-A;"!687)I86)L +M97,Z"B4@;6]D93H@;&%T97@*)2!M;V1E.B!R969T97@*)2!T97@M;6%I;BUF +M:6QE.B`B8VAA<'1E"(*)2!R969T97@M:V5E<"UT96UP +M;W)A"UUT-/.D%#?0I%+GY!T$@9F5W(')E;6%R:W,@86)O=70@ +M=&AE('9A2!O9B!A;&=E8G)A:6,@8W5R=F5S+"!V;VP@27TN"EQN97=B;&]C:R![ +M7&5M(%-P7)E=CH*7&YE=V)L;V-K('M$=6%L +M('!O;'EH961R82!A;F0@;6ERU)I8F)O;G,@86YD('1H96ER(&-A;F]N:6-A;"!E;6)E9&1I;F=S +M?2X*7&YE=V)L;V-K('M<96T@5')A;G,N($%M+B!-871H+B!3;V,N?2P@,S0W +M+#HW,3DM+3T-/.G9"?0I(+BU#+GYV+B!" +M;W1H;65R.@I<;F5W8FQO8VL@>T=E;VUE=')I7IY9VEE;B!K86YO +M;FES8VAEUQE;2!4:&5S:7,@0F%Y65R.@I<;F5W8FQO8VL@ +M>T$@<75I8VL@86YD(&1IUQE;2!);G9E;G0N($UA=&@N?2P@ +M-S8Z-#$M+34T+"`Q.3@T+@H*7&)I8FET96U[0T\Z0TM]"D0N?D-O>"!A;F0@ +M4RY^2V%T>CH*7&YE=V)L;V-K('M-:7)R;W(@7TN"EQN97=B;&]C:R![7&5M($%-4RP@36%T:&5M871I +M8V%L(%-U7,@86YD($UO;F]G&EI*S0V.2P@,3DY +M.2X*"EQB:6)I=&5M>T-/.D1%4WT*5RY^1&5C:V5R+"!,+GY%:6XL(&%N9"!& +M+BU/+B!38VAR97EE7!E('-UUQE;2!*+B!3>6UB;VQI8R!# +M;VUP+GTL(#(Y.C4T-2TM-3@U+"`R,#`P+@H*7&)I8FET96U[0T\Z16E]"D0N +M?D5IT-O;6UU=&%T:79E($%L9V5B'9I*ST-/.D5(?0I$+GY% +M:7-E;F)U9"!A;F0@2BY^2&%RU1H92!+;V1A:7)A +M(&1I;65NUQE;2!);G9E;G0N($UA +M=&@N?2P@.#UQE;2!);G9E;G0N($UA=&@N?2P@,3,V.C0Q.2TM +M-#0Y+"`Q.3DY+@H*7&)I8FET96U[0T\Z16Q097T*1RY^16QL:6YGT-/.D=R +M,GT*32Y^1W)E96XZ"EQN97=B;&]C:R![2V]S>G5L(&-O:&]M;VQO9WD@86YD +M('1H92!G96]M971R>2!O9B!PU1H92!% +M:7-E;F)U9"U+;V@M4W1I;&QM86X@8V]N:F5C='5R92!O;B!L:6YE87(@6=I97-]+@I<;F5W8FQO8VL@>UQE;2!);G9E;G0N($UA=&A]+"`Q-C,Z-#$Q +M+2TT,3@L(#$Y.3DN"@I<8FEB:71E;7M#3SI'3'T*32Y^1W)E96X@86YD(%(N +M?DQA>F%RG5L(&-O +M:&]M;VQO9WD@86YD('1H92!G96]M971R>2!O9B!PT-/.DAA,GT*2BY^2&%RT-UUQE +M;2!37"=E;6EN86ER92!D92!-871H7"=E;6%T:7%U97,@4W5P7"=ET-/ +M.DAA,7T*2BY^2&%RT]N('1H92!3979ET-/.DA-?0I*+GY(87)R:7,@86YD($0N +M?DUU;69OUQE;2!);G9E +M;G0N($UA=&@N?2P@-CTYE +M=R!E=FED96YC92!F;W(@1W)E96XGF=Y:65S +M(&]F(&-A;F]N:6-A;`H@(&-UT=E;VUE=')Y(&]N($=R87-S;6%N;FEA;G,@86YD(&%P<&QI8V%T:6]N('1O +M('-P;&ET=&EN9R!B=6YD;&5S(&%N9`H@('-M;V]T:&EN9R!C>6-L97-]+@I< +M;F5W8FQO8VL@>UQE;2!);G-T+B!(875T97,@7"=%='5D97,@4V-I+B!0=6)L +M+B!-871H+B!.;RY]+"`S-CHR.#$M+3(X-RP@,3DV.2X*"EQB:6)I=&5M>T-/ +M.DU$4'T*32Y^36%R=&EN+41EU-UT-UUQE;2!!;65R+B!*+B!-871H+GTL(#$Q-SHQ-C(W+2TQ-C0T+"`Q.3DU +M+@H*7&)I8FET96U[0T\Z4&]]"E,N?E!O<&5S8W4Z"EQN97=B;&]C:R![4V]M +M92!E>&%M<&QEUQM871H8F(*("![7&-H87(@.#!]?5XT)'TN"EQN97=B;&]C:R![ +M7&5M(%1H97-IT-/.E-C:#1]"D8N +M+4\N(%-C:')E>65R.@I<;F5W8FQO8VL@>U-Y>GEG:65S(&]F(&-A;F]N:6-A +M;"!C=7)V97,@86YD('-P96-I86P@;&EN96%R('-E2`H5')E;G1O(#$Y.#@I?2X*7&YE=V)L;V-K('M<96T@3&5C='5R92!. +M;W1EGEG:65S(&]F(&-A;F]N:6-A;"!C +M=7)V97-]+@I<;F5W8FQO8VL@>UQE;2!*+B!296EN92!!;F=E=RX@36%T:"Y] +M+"`T,C$Z.#,M+3$R,RP@,3DY,2X*"EQB:6)I=&5M>T-/.E-C:#%]"D8N+4\N +M(%-C:')E>65R.@I<;F5W8FQO8VL@4VUA;&P@9FEE;&1S(&EN(&-O;G-TUQE +M;2!!;FXN(%-C=6]L82!.;W)M+B!3=7`N(%!IT-/.E1O?0I&+GY4;VYO;&DZ +M"EQN97=B;&]C:R![0V%N;VYI8V%L('-UT-/.E=A?0I#+GY786QT97(Z"EQN97=B;&]C:R![4&9A9F9I +M86X@R1$)"UM;V1U;&5S(&%N9"!# +M;VAO;6]L;V=Y(&]F(%9AR1$)"UM;V1U;&5S +M(&%N9"!#;VAO;6]L;V=Y(&]F(%9ATUA=&AE;6%T:6-A;"!38VEE;F-ET%L9V]R:71H;7U[7&)F7!O=&AEV-O;GU;=&AE +M;W)E;5U[0V]NV-O;FI]6W1H96]R +M96U=>T-O;FIE8W1UV%N;GU]"EQD969< +M87-S>UQO<&5R871OV-O9&EM?7T*7&1E9EQC9'M<;W!EV-D?7T*7&1E9EQD +M97!T:'M<;W!EV1E<'1H?7T*7&1E9EQ$97)[7&]P97)A=&]R +M;F%M97M$97)]?0I<9&5F7&5N9&][7&]P97)A=&]R;F%M97M%;F1]?0I<9&5F +M7&5X='M<;W!ET5X='U]"EQD969<9W)[7&]P97)A=&]R;F%M +M97MGUQO<&5R871OUQO<&5R871OVQC9'U]"EQD969<;&-M>UQO<&5R871OUQO<&5R871OUQO<&5R +M871OUQO<&5R871OUQO<&5R871OUQM +M871H8V%L($Y]?0I<9&5F7&1E;'M<<&%R=&EA;'T*7&1E9EQE<'-[7'9AUQM871H8F(@07U]"EQD969<0WM[7&UA=&AB8B!#?7T*7&1E9EQ&>WM< +M;6%T:&9R86L@1GU]"EQD969<37M[7&UA=&AC86P@37U]"B5<9&5F7$U,9GM[ +M>UQM871H8V%L($U]7DQ?9GU]"EQD969<3GM[7&UA=&AB8B!.?7T*7&1E9EQ/ +M3WM[7&UA=&AC86P@3WU]"EQD969<4'M[7&UA=&AB8B!0?7T*7&1E9EQ1>WM< +M;6%T:&)B(%%]?0I<9&5F7%)[>UQM871H8F(@4GU]"EQD969<6GM[7&UA=&AB +M8B!:?7T*"@I<9&5F7&%C=&EO;GM<8G5L;&5T?0I<9&5F7&]R9&5R>UQP6EN9&5X(S%[7&EN9&5X>R,Q?2!<;6%R9VEN +M<&%R>R,Q?7T*7&1E9EQM>6EN9&5X(S%[7&EN9&5X>R,Q?7T*7&1E9EQH>UQH +MRTS<'1]?0I<9&5F7&)AUQO=F5R;&EN97LC,7U]"@I<;G5M +M8F5R=VET:&EN>V5Q=6%T:6]N?7MS96-T:6]N?0H*)2!<6YO;6EA;',@86YD('1H96ER(&%L9V5B65A2!O9@I'2!M;V1U;&5S(&]F('1H92!V87)I +M971Y(&1E9FEN960@8GD@=&AE('9A;FES:&EN9R!O9B!T:&4*<&]L>6YO;6EA +M;',N($UO2`*:6X@=&AE('-I;7!L97-T"G)I;F<@ +M;V8@9&EF9F5R96YT:6%L(&]P97)A=&]R6P@86QG96)R82P@ +M86YD(&1E=F5L;W`*86QG;W)I=&AM6YO;6EA;"`D8E]F +M*',I)"P@=&AE('-E="!O9@ID:69F97)E;G1I86P@(&]P97)A=&]R2`D9E\Q +M+%QL9&]T"!A&%M<&QE6YO;6EA;',@;W(@=F%R:65T:65S(&%R92!K +M;F]W;B!T;R!B92!C;VUP=71A8FQE(&%T('1H:7,@<&]I;G0@86YD"FQI6MI;BP*32Y<(%-T:6QL +M;6%N"F%N9"!(+EP@5'-A:2!W:&EL92!W2`M+2!$969I;FET:6]N'M#96-H +M(&-O;7!L97A`7'8*0V5C:"!C;VUP;&5X?2!O9B`D4B0M;6]D=6QEUQT97AT>V1E9W)E97U<(#!]7&EN=&\@"EQU;F1EU);9EY[+3%]77U?>UQT97AT>V1E9W)E97U<(#%]7'1O(#`I"EQE;F1[97%N +M87)R87E]"G=H97)E"G1H92!I;FIE8W1I;VX@:7,@=&AE(&YA='5R86P@;6%P +M('-E;F1I;F<@)&=<:6X@4B0@=&\@)'MG?2][,7U<:6X*4EMF7GLM,7U=)"!A +M;F0@8&!D96=R964G)R!R969EV5Q;F%RV5Q;F%RUQE;2!L;V-A;`IC;VAO;6]L;V=Y(&9U;F-T;W)] +M7&EN9&5X>VQO8V%L(&-O:&]M;VQO9WE]"B!W:71H(')E:5])*"TI)"X@ +M5&AI2!O;B!T:&4@*')A9&EC86P@;V8@=&AE*2!I9&5A +M;"!G96YE2!W +M87,@:6YT2!!+GY'2X@1F]R(&EN:2A5+%Q&*5QT;R!( +M7GMI*S%]7UDH6"Q<1BE<=&]<8V1O=',*7%T*9F]R(&%L;"!Q=6%S:2UC;VAE +M,%]9*"TI.B!<1EQT;RA57'1O7'MF7&EN7$8H52DZ7'-U<'`H +M9BE<2!B92!F;W5N +M9"!I;B!<8VET97M$33I"+5-]+B`*"E1H92![7&5M"F-O:&]M;VQO9VEC86P@ +M9&EM96YS:6]N(&]F("1))"!I;B`D4B1]+"!<:6YD97A[8V]H;VUO;&]G:6-A +M;`ID:6UE;G-I;VY](&1E;F]T960@8GD@)%QC9"A2+$DI)"P@:7,@=&AE"G-M +M86QL97-T(&EN=&5G97(@)&,D('-U8V@@=&AA="`*)$A>:5])*$TI/3`D(&9O +MUQE;2!L;V-A;`IC;VAO;6]L;V=I8V%L(&1I;65N2!T:&4@9F]L +M;&]W:6YG(&5X86UP;&5S+B!,970@)$E<2!F +M97=ET1-.D(M4WTN"@I,970@)$A> +M:5][>UQR;2!3:6YG?7TH+3M<0RDD('-T86YD(&9O7!EWM<:5][ +M>UQR;2!3:6YG?7TH63M<0RDD(&ES(&%N(&ES;VUO7!E+@I&;W(@97AA;7!L92P@;&5T("197'-U8G-E=&5Q(%Q0 +M7UQ#7FXD(&)E(%IA%\P+%QL9&]T:5][>UQR;2!3:6YG?7TH7%!>;E]<0SM<0RE<=&\@2%YI +M7WM[7')M(%-I;F=]?2A9.UQ#*20@:7,@86X@:7-O;6]R<&AIT1-.D]G?2P@,BXR+"`R+C,@86YD(%QC:71E>T1-.D120T%6?2P@5&AE +M;W)E;2!)5BXS+C$I(&ES('1H90IF;VQL;W=I;F;E]<0R0L('1H96X@)%DD(&-A;FYO="!B92!D:7-C;VYN +M96-T960@8GD*=&AE(')E;6]V86P@;V8@8VQO"`D7&-H96-K"D->7&)U;&QE="A2.V9?,2Q<;&1O=',L9E]R*20@9F]R +M("12/5Q#6WA?,2Q<;&1O=',L>%]N720@9&5T97)M:6YEWM<2!A=71H;W)S+B!&;W(@86X*97AT96YS +M:79E(&QI +M:5])*%(I/3`D(&9O2P*8V%L8W5L871I;VYS(&%R92!C;VUP;&EC871E9"!B>2!T:&4@ +M9F%C="!T:&%T("1(7FE?22A-*20@:7,@%\Q +M+%QL9&]T2!A"GM<96T@ +M8V]M<'5T86)L92!F:65L9'U<:6YD97A[8V]M<'5T86)L92!F:65L9'T@"G=E +M(&UE86X@82!S=6)F:65L9"`D2R0@;V8@)%Q#)"!S=6-H('1H870@)$LD(&ES +M"F1E2!A(&9I;FET92!S970@;V8@9&%T82!A;F0@9F]R('=H +M:6-H(&%D9&ET:6]N+"!S=6)T2!O9B!T:&5S92!O<&5R871I;VYS(&ES('IE&5C=71E9"!B>2!T:&4*5'5R:6YG(&UA8VAI;F4N +M($9O&%M<&QE+"`D2R0@8V]U;&0@8F4@)%Q16UQS<7)T(#)=)"!S=&]R +M960@87,@80HR+61I;65NU!< +M:6Y<:&]M7TLH4BQ2*3I0'1[(&9O +M:5])*%)?;BDD(&AA=F4@82!N871U2!G96YET1-.D)]*3H@"EQB96=I;GME<6YA7T* +M7&QA8F5L>V5Q;BUL;V,M:7-O?0I27VY;9EY[+3%]73U$*%)?;BQ+*5QA8W1I +M;VX@9EY[87TN"EQE;F1[97%N87)R87E]"@I52!T:&4@=&AE;W)Y(&]F"D=R7")O8FYE:5]<;2`H +M2%YJ7TDH4E]N*2DD"F9O:5]<;2A(7GMN+6I]7TDH4E]N*2DI +M"EQ="FEN=')O9'5C960@:6X*7&-I=&5[1$TZ3"U$;6]D?2X*"@I!="!T:&4@ +M8F%S:7,@9F]R('1H92!C;VUP=71A=&EO;B!O9B!L;V-A;"!C;VAO;6]L;V=Y +M(&%R92!A;&=OF%T:6]N +M(&]F(&$@)$0H4E]N+$LI)"UM;V1U;&4@870@82!H>7!E9"],)"!I2!M96%N9"0*=&AE;B!W92!W86YT('1O(&-O;7!U=&4@ +M82!F:6YI=&4@;G5M8F5R(&]F(&=E;F5R871OT0H4E]N+$LI?5Y[9"=])"!W:&EC:"!S871I +M>V0G?2],)UQC;VYG(`HH>T0H4E]N+$LI +M?5YD+TPI7&]T:6UEW-E8RUL;V-]+B`@"@I,970@)$PD(&)E(&$@ +M;&5F="!I9&5A;"!O9B`D1"A27VXL2RDD+B`*5&AE(&-O;7!U=&%T:6]N(&]F +M('1H92!L;V-A;&EZ871I;VX@;V8@"B1-/40H4E]N+$LI+TPD(&%T("1F7&EN +M(%)?;B0@:7,@8VQO2!R96QA=&5D('1O('1H90HD1"A27VXL2RE;V5Q;F%R6YO;6EA;"`D8E]F*',I)"`*;V8@)',D(&]N('1H +M92!Q=6]T:65N="!O9B`D7$U?9B0@8GD@:71S('-U8FUO9'5L92`D7$U?9EQC +M9&]T(&8D"F=E;F5R871E9"!O=F5R("1$*%)?;BQ+*5MS720@8GD@)%QB87(@ +M,5QO=&EM97,@9EQO=&EM97,@9EYS)"P@(`H@8V8N7"!396-T:6]N(%QR969[ +M'!O;F5N=',@)&$D('1H870*8V%N(&)E('5S +M960@:6X@=&AE(&ES;VUOV5Q;BUL;V,M:7-O?2D@"F)E +M='=E96X@)%)?;EMF7GLM,7U=)"!A;F0@=&AE"B1$*%)?;BQ+*20M;6]D=6QE +M(&=E;F5R871E9"!B>2`D9EY[87TD+B!-;W)E;W9E2!A('-U:71A8FQE(&!@<&QU +M9V=I;F<@:6XG)R!PV9?,2Q<;&1O=',L9E]R7'TD+`IA;F0@=&AE;B!A'0@6P@86QG96)R +M82`D1"A27VXL2RDD(&%N9"`D1"0M;6]D=6QE2!O9B!'6P@86QG96)R +M82X*"DEN(%-E8W1I;VX@7')E9GMS96,M;&]C?2!W92!I;G9EF%T:6]N"X*5&AE('!U6-L:6,@)$0H4E]N+$LI)"UM;V1U;&4@"FEF +M("1-/40H4E]N+$LI+TPD"FES(&$@9VEV96X@:&]L;VYO;6EC("1$)"UM;V1U +M;&4@*&9O2`D +M:2QJ+&LL220@"F1E=&5R;6EN92!T:&4@S(N=&5X?0I<6QA8F5L>W-E8RUW97EL?0H*)$0D+6UO9'5L +M97,L('1H870@:7,L(')I;F=S(&]R('-H96%V97,@;V8@9&EF9F5R96YT:6%L +M(&]P97)A=&]R6%M82X*"E1H92!S:6UP;&5S="!E>&%M<&QE(&]F(&$@F5R;RP@ +M=&AITYO=&%T:6]N?2!4:')O=6=H;W5T('=E('-H86QL('5S92!T:&4@9F]L +M;&]W:6YG(&YO=&%T:6]N.@HD2R0@=VEL;"`*9&5N;W1E(&$@8V]M<'5T86)L +M92!F:65L9"`*;V8@8VAAF5R;R!A;F0@)%)?;CU+6WA? +M,2Q<;&1O=',L>%]N720@=&AE(')I;F<@;V8@<&]L>6YO;6EA;',*;W9E6P@86QG96)R87U< +M;7EI;F1E>'M797EL(&%L9V5B%]I)"!D96YO=&5S('1H92!O<&5R871O%]I)"%]I +M)"2I]"GA?:7A?:B8])GA?:GA?:5QQ=6%D(%QT97AT +M>R!F;W(@86QL('T@,5QL92!I+&I<;&4@;BQ<7"`*7&1E;%]I7&1E;%]J)CTF +M7&1E;%]J7&1E;%]I(%QQ=6%D(%QT97AT>R!F;W(@86QL('T@,5QL92!I+&I< +M;&4@;BQ<7`IX7VE<9&5L7VHF/29<9&5L7VIX7VD@7'%U860@7'1E>'1[(&9O +M'1[(&%N9"!]7"P@ +M>%]I7&1E;%]I*S$F/29<9&5L7VEX7VD@7'%U860@7'1E>'1[(&9OWA?,7U>>UQA;'!H85\Q?5QC9&]T%]N?5Y[7&%L<&AA +M7VY]7&-D;W0*>UQD96Q?,7U>>UQB971A7S%]7&-D;W1S>UQD96Q?;GU>>UQB +M971A7VY]"EQ="F%N9"`D?%QA;'!H87P]7&%L<&AA7S$K(%QD;W1S("M<86QP +M:&%?;B0N(`H@"DEN(&]R9&5R('1O(&ME97`@=&AE('!R;V1U8W0@)%QD96Q? +M:2!X7VE<:6X@1%]N)"`*86YD('1H92!A<'!L:6-A=&EO;B!O9B`D7&1E;%]I +M7&EN($1?;B0@=&\@)'A?:5QI;B!27VXD(&%P87)T+"!W92!S:&%L;`IW6EN9&5X>V%C=&EO;B`H;V8@82!D:69F97)E;G1I86P@ +M;W!E&%M<&QE("1<9&5L7S)<86-T:6]N("AX7S$I>%\R/3!<8V1O="!X7S(],%QI +M;B!27VXD+@H*5&AE('-Y;6)O;`HD7&TD('=I;&P@&EM86P@;&5F="!I +M9&5A;"`D1%]N7&-D;W0@"BA<9&5L7S$L7&QD;W1S+%QD96Q?;BDD"F]F("1$ +M7VXD(&%N9"`@)$DD('=I;&P@'LD1%]N)"UM;V1U;&5S?0H@=VEL;"!B92!L969T(&UO9'5L97,@*')E6P@86QG96)R82X*"E1H92!E;&5M96YT'!R97-S:6]N?5QM>6EN9&5X>VYO +M%Y<86QP:&%<9&5L +M7EQB971A"EQ="G=H97)E("1%)"!I"Q<>&E=7'1O($1?;@I<70HH=VET +M:"`D7'AI/5QX:5\Q+%QL9&]T&E?;B0I(`IS96YD:6YG("1X7EQA;'!H +M85QX:5Y<8F5T820@=&\@)'A>7&%L<&AA7&1E;%Y<8F5T820N(%=E('=I;&P@ +M87-S=6UE"G1H870@979E2!O>S)N?20@:7,@ +M82![7&5M('=E:6=H="!V96-T;W(@9F]R"B1$7VXD?5QM>6EN9&5X>W=E:6=H +M="!V96-T;W(@9F]R("1$7VXD?0II9B`D=2MV7&=E<2`P)"P@=&AA="!I6EN9&5X>W=E:6=H='T*(&]F('1H92!M;VYO +M;6EA;"`D>%Y<86QP:&%<9&5L7EQB971A)"!U;F1E<@HD*'4L=BDD('1O(&)E +M("1U7&-D;W1<86QP:&$K=EQC9&]T7&)E=&$D("AS8V%L87(@<')O9'5C="DN +M(%1H92!W96EG:'0*;V8@86X@;W!EF5R;PIM;VYO;6EA;',@87!P +M96%R:6YG(&EN('1H92!N;W)M86QL>2!ORAU +M+'8I?2A$7VXI)"!W:71H(`I<6PI<9W)?>RAU+'8I?5YR*$1?;BD]7&9R86-[ +M7'M07&EN($1?;B`Z('U!<:6X@1%]N(#H@=RA0*3P* +M%]I.C%<;&4@:5QL92!N7'U<8W5P +M"EQ[7&1E;%]I.G5?:2MV7VD],%Q]7&-U<%Q[7'AI7VDZ=5]I*W9?:3XP7'TD +M+B!(97)E(&%L;"!V87)I86)L97,*8V]M;75T92!W:71H(&5A8V@@;W1H97(@ +M97AC97!T("1<9&5L7VDD(&%N9"`D>%]I)"!F;W(@=VAI8V@@=&AE"DQE:6)N +M:7H@UQE;2!I +M;FET:6%L(&9OUQE;2!S +M>6UB;VQ](%QM>6EN9&5X>W-Y;6)O;'T@)%QI;FE?>RAU+'8I?2A0*20@"FEN +M("1<9W)?>RAU+'8I?2A$7VXI)"!D969I;F5D(&)Y"G1A:VEN9R!A;&P@;6]N +M;VUI86QS(&EN('1H92!N;W)M86QL>2!O2`D=5]I*W9?:5QG97$* +M,"0@:7,@"FYE961E9"!T;R!A2`D+74]=CTH,2Q<;&1O=',L,2PP+%QL9&]TRAU+'8I?2A$7VXI7&-O;F<@1%]N)"X@3VX@=&AE +M(&]T:&5R(&AA;F0L(&EF("1U*W8D(&ES"F-O;7!O;F5N='=I%]I7&1E;%]I)"D@86YD"FES;VUO6UB;VQS(&]F("1X7S$L7&QD;W1S+'A?;BQ<9&5L7S$L7&QD;W1S+%QD96Q? +M;B0N(`H*"DEF("1,)"!IRAU+'8I?2A, +M*21]"B!F;W(@)%Q[7&EN:5][*'4L=BE]*%`I.E!<:6X@3%Q])"X@5&AI6EN9&5X>R0H=2QV*20M1W)<(F]B +M;F5R(&)A2!T:&4@:6YI=&EA;"!F;W)M6EN9&5X>VUO;F]M:6%L(&]R9&5R"F]N("1$7VXD?2`*:7,@82!T +M;W1A;"!O +M7&%L<&AA7&1E;%Y<8F5T85QO>UQB971A +M)WTD(&EM<&QI97,@"B1X7GM<86QP:&$K7&%L<&AA)R=]7&1E;%Y[7&)E=&$K +M7&)E=&$G)WU<;W)D97(*>%Y[7&%L<&AA)RM<86QP:&$G)WU<9&5L7GM<8F5T +M82 +M;B0N(`I<96YD>V5N=6UE'MT97)M(&]R +M9&5R(&]N("1$7VXD?0H@:68@)#$D(&ES('1H92`H=6YI<75E*2!S;6%L;&5S +M="!M;VYO;6EA;"X@"DUU;'1I<&QI8V%T:79E(&UO;F]M:6%L(&]R9&5R7,@;6]N;VUI86QS +M+"!A;F0@86QW87ES(&5L96UE;G1S(&]F("1+6W@L7'AI720**&1U92!T;R!T +M:&4@=&]T86P@;W)D97(@0IT;R!T:&4@=V5I9VAT('9E8W1O +M2I]"GA>7&%L<&AA7&1E;%Y<8F5T85QO>UQA;'!H +M82=]7&1E;%Y[7&)E=&$G?29<3&5F=')I9VAT87)R;W'1[(&]R('U<7`HF)EQL969T6RA<86QP:&$M7&%L<&AA)RE< +M8V1O=`IU*RA<8F5T82U<8F5T82%Y<86QP:&%<9&5L7EQB971A7&]R9&5R('A>>UQA;'!H82=]7&1E;%Y[7&)E +M=&$G?5QR:6=H=%TN"EQE;F1[97%N87)R87DJ?0I.;W1E('1H870@)%QORAU+'8I?2A,*20@=VET:`IR97-P +M96-T('1O("1<;W)D97(D+EQQ960*7&5N9'ME;G5M97)A=&5]"EQE;F1[=&AE +M;W)E;7T*5V4@96YD('1H:7,@7IY9VEE2!A +MR1$ +M)"UM;V1U;&5S?2!<;7EL86)E;'MS=6)S96,M1"UM;V1U;&5S?0I!(&=O;V0@ +M:6YTT1- +M.D)]+"!T:&4@;FEC92!I;G1R;V1U8W1I;VX@7&-I=&5[1$TZ0V]U=&EN:&]] +M(&)Y(%,N?D-O=71I;FAO+"`*86YD('1H92!L96-T=7)E(&YO=&5S(&)Y($HN +M?D)EF%T:6]N'1E;G-I;VX@;V8@=&AE(&%C=&EO;@HD7&%C=&EO;B1<;7EI +M;F1E>'MA8W1I;VX@*&]F(&$@9&EF9F5R96YT:6%L(&]P97)A=&]R*7TZ(`I< +M8F5G:6Y[97%N87)R87DJ?0IX7VE<86-T:6]N("A<9G)A8WMG?7MF7FM]*3U< +M9G)A8WMX7VEG?7MF7FM]+"9<<75A9"8*7&1E;%]I7&%C=&EO;B`H7&9R86-[ +M9WU[9EYK?2D]7&9R86-[7&1E;%]I7&%C=&EO;BAG*68M"B`@(&M<9&5L7VE< +M86-T:6]N*&8I9WU[9EY[:RLQ?7TN"EQE;F1[97%N87)R87DJ?2`*5&AIU)?;GT@4E]N6V9>>RTQ +M?5TD(`IB96-O;65S(&$*)$1?;B0M;6]D=6QE('9I82!T:&4@>UQE;2!P6EN9&5X>V%C=&EO +M;GT*7&)E9VEN>V5Q;F%R%]I7&%C=&EO;B`H;5QO=&EM97,@7&9R +M86-[9WU[9EYK?2D];5QO=&EM97,@*%QFWA?:6=]>V9>:WTI+`HF7'%U +M860F"EQD96Q?:5QA8W1I;VX@*&U<;W1I;65S(%QFV=]>V9>:WTI/0H@ +M;5QO=&EM97,@7&1E;%]I7&%C=&EO;BA<9G)A8WMG?7MF7FM]*2M<9&5L7VD@ +M;5QO=&EM97,@7&9R86-[9WU[9EYK?2X*7&5N9'ME<6YA2I]"@I/9B!P +M87)T:6-U;&%R(&EN=&5R97-T(&%R92!T:&4@>UQE;0IH;VQO;F]M:6-](&UO +M9'5L97-<;7EI;F1E>'MH;VQO;F]M:6,@;6]D=6QE?0H@=VAI8V@@87)E('1H +M;W-E(&9I;FET96QY(&=E;F5R871E9"`D1%]N)"UM;V1U;&5S("1-)`IF;W(@ +M=VAI8V@@)%QE>'1>:E][1%]N?2A-+$1?;BDD('9A;FES:&5S(`IU;FQE2`D,5QI;B!27VXD+B!)="!I +M0IT:&%T(&YO="!A;&P@96QE;65N +M=',@;V8@)%)?;B0@87)E(&MI;&QE9"!B>2`D7$1E;'1A)"`M+2!Q=6ET90II +M;7!O6-L:6,@86YD(&]F(&9I;FET92!L +M96YG=&@@;W9E6EN9&5X>T)E%Y<86QP:&%<9&5L7EQB971A)"!W:71H"B1\7&%L<&AA?"M\7&)E=&%\ +M7&QE(&LD('=H;W-E(&-O0II +M;F1E<&5N9&5N="X@5&AE(&9I;'1R871I;VX@)&M<;6%PWA>7&%L<&AA7&1E;%Y<8F5T85QM;V0@3#H*?%QA;'!H87PK?%QB971A?%QL +M92!K7'TD(&ES(&-A;&QE9"!T:&4@7&UY:6YD97A[0F5R;G-T96EN(&9I;'1R +M871I;VY](`I[7&5M($)E6UP=&]T:6-A;&QY(&$*<&]L>6YO;6EA;"!I;B`D:R0@;V8@9&5G'MD:6UE;G-I;VX@ +M*&]F(&$*)$0D+6UO9'5L92E]+@I!(&AO;&]N;VUI8R!M;V1U;&4@:7,@;VYE +M(&]F(&1I;65NF%T:6]N +M(&]F(&AO;&]N;VUI8VET>2!C86X@8F4@=7-E9"!Q=6ET92!E87-I;'D@=&\* +M8VAE8VL@=VET:"!<371W;R!T:&%T("127VXD(&ES(&AO;&]N;VUI8RX@3F%M +M96QY+"!L970G6Q!;&=E8G)A(#T^(%Q[>#T^1'@L('D]/D1Y+"!Z/3Y$>EQ] +M75Q<"EQE;7!T>4QI;F4*;S(@/2!$7%P*7&5M<'1Y3&EN90IO,B`Z(%!O;'EN +M;VUI86Q2:6YG7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:3,@.B!$96QT +M82`](&ED96%L*$1X+$1Y+$1Z*5Q<"EQE;7!T>4QI;F4*;S,@/2!I9&5A;"`H +M1'@L($1Y+"!$>BE<7`I<96UP='E,:6YE"F\S(#H@261E86P@;V8@1%Q<"EQE +M;F1/=71P=70*5&AE(&9IBQ<9&5L7W@L7&1E;%]Y+%QD96Q?>EQR86YG;&4D+"`*=VAI;&4@=&AE +M('1H:7)D(&-O;6UA;F0@9&5F:6YEUQT="!$?2!A6YO;6EA;',N(%1H:7,@ +M:7,*=7-I;F<@=&AE('9E8W1O"E>,EQ<"EQE;7!T>4QI;F4*7"`@("`@ +M(#(@(#)<7`IO-"`]('@@1'@@("L@,W@J1'@@*R`Q7%P*7&5M<'1Y3&EN90IO +M-"`Z($1<7`I<96YD3W5T<'5T"D%L;"!797EL(&%L9V5B2!A(&UO;F]M:6%L(&]R9&5R:6YG('1O(&)E('5S960@:6X@=&AE +M(%=E>6P*86QG96)R82P@=&AE;B!<371W;R!U"`H>UQT="!'4F5V3&5X?2DL(&%S('=E(&-A;B!S964@8GD*97AA;6EN +M:6YG('1H92!O<'1I;VYS(&]F('1H92!R:6YG+@I<8F5G:6Y/=71P=70*:34@ +M.B!O<'1I;VYS($1<7`I<96UP='E,:6YE"F\U(#T@3W!T:6]N5&%B;&5<>T%D +M:G5S="`]/B!I9&5N=&ET>2`@("`@("`@("`@("`@("`@("`@("`@(%Q]7%P* +M7"`@("`@("`@("`@("`@("`@1&5GUQ[,5Q]+"!<>S%S%5Q<"EP@("`@("`@("`@("`@("`@(%-K97=#;VUM=71A=&EV92`]/B!F +M86QS95Q<"EP@("`@("`@("`@("`@("`@(%9A"P@1'DL +M($1Z7'U<7`I<("`@("`@("`@("`@("`@("!796EG:'1S(#T^(%Q[7'U<7`I< +M("`@("`@("`@("`@("`@("!797EL06QG96)R82`]/B!<>W@@/3X@1'@L('D@ +M/3X@1'DL('H@/3X@1'I4QI;F4*;S4@.B!/<'1I;VY486)L +M95Q<"EQE;F1/=71P=70*"E1O(&-O;7!U=&4@=&AE(&EN:71I86P@:61E86P@ +M;V8@)%Q$96QT820@=VET:"!R97-P96-T('1O('1H92!W96EG:'0*=&AA="!A +M2P@1'@I7%P*7&5M<'1Y3&EN90IO-B`Z($ED96%L(&]F +M(%%1(%MX+"!Y+"!Z+"!$>"P@1'DL($1Z75Q<"EQE;F1/=71P=70*5&AE(&-O +M;6UA;F0@>UQT="!I;G=](&-A;B!B92!U2!M;W)E+`IB=70@:6X@82!R:6YG(&]F('!O;'EN;VUI86QS +M+"!A6UB;VP@)&9>'MA8W1I;VX@ +M*&]F(&$@9&EF9F5R96YT:6%L(&]P97)A=&]R*7T@)%QA8W1I;VXD(`IO9B`D +M1%]N6W-=)"!O;B`*)%)?;EMF7GLM,7TLV9>:WU<;W1I;65S(&9>W-G*'@L +MV9>:WU<;W1I;65S(&9>V9>:WU<;W1I;65S(&9>V9>>VLK +M,7U]7')I9VAT*5QO=&EM97,@9EYS+@I<96YD>V5Q;F%R7T*7$U>3%]F/41?;EMS75QA8W1I +M;VXH7&)A'MP3%]F)`II7T*7&QA8F5L>V1E9BUB+7!O;'E]"E`H7T*:6X@)%Q-7DQ? +M9B0N"E1H:7,@96YT97)T86EN:6YG(&5Q=6%L:71Y+"!O9G1E;B!W2`D8E]F7DPH2!O<&5R871O7TI('=I=&@*)&(HUQE;2!"97)N3"AS*20@87,@>UQE;2!"97)N6YO;6EA;"!O9B`D6YO;6EA;"`D9B0@ +M87)E('-O;65W:&%T(&UY&%M<&QE +M+"!T:&4*;6]N;V1R;VUY(&]F("1F)"`HT1-.DU]*2P@=&AE +M($EG=7-A('IE=&$@9G5N8W1I;VX@*'-E92!<8VET97M,;V5S97)]*2P@86YD +M('1H92!L;VT1-.DMO +M;&QAT1-.D%++$1-.D)R:6%N8V]N971A;"Q$33I-86ES +M;VYO8F4L1$TZ4V%T;V5T86Q]"F%L9V]R:71H;7,@=V5R92!G:79E;B!T:&%T +M(&-O;7!U=&4@)&)?9BAS*20@=6YD97(@8V5R=&%I;B!C;VYD:71I;VYS"F]N +M("1F)"X@5&AE(&=E;F5R86P@86QG;W)I=&AM('=E(&%R92!G;VEN9R!T;R!E +M>'!L86EN('=A0I4+EP@3V%K=2X@($AEV5X86UP;&5]"DQE="`D9CU<WA?:7U>,B0@86YD("1-/5)?;B0@=VET:"`D3#U<1&5L=&$D+B!/ +M;F4@8V%N(&-H96-K"G1H870@"EQ;"EQS=6U?>VD],7U>;GM<9&5L7VE]7C)< +M86-T:6]N*%QB87(@,5QO=&EM97,@,5QO=&EM97,@9EY[>W-]"EQ= +M"F%N9"!H96YC92!T:&%T(`HD7&9R86-[,7U[-'U<S)])"!A +M;F0@=&AE($)EVY]>S)]*20N"EQE;F1[97AA;7!L97T*7&)E9VEN>V5X86UP;&5]"D%L=&AO +M=6=H(&EN('1H92!P&%M<&QE('1H92!"97)NS%]>S(W?5PL>UQD96Q?>7U>,RL* +M7&9R86-[>7U[-GU[7&1E;%]X?5XR7&1E;%]Y*UQFWA]>SA]>UQD96Q? +M>'U>,UQR:6=H="DH>%XR*WE>,RE>>W,K,7T]"BAS*UQFS5]>S9]*2AS +M*S$I*',K7&9R86-[-WU[-GTI("AX7C(K>5XS*5YS+@I<70I);B!T:&4@8V%S +M92!O9B!N;VXM<75A6YO;6EA;',L('1H97)E +M(&ES('5S=6%L;'D@;F\*2!"97)N2!O9B!H;VQO;F]M:6,@;6]D=6QEF%T:6]N(&]F(&$*:&]L;VYO;6EC(&UO9'5L92`D33U$7VXO3"0@870@ +M82!S:6YG;&4@96QE;65N="`**&%N9"!H96YC92!A="!A;GD@9FEN:71E(&YU +M;6)E<@IO9B!E;&5M96YT6-L:6,@;W9E +M>V%])"!F +M;W(*F%T:6]N"!W92!S964@=&AA="!T:&4@8V]M<&QE>"`D7&-H96-K"D->7&)U;&QE="A- +M.V9?,2Q<;&1O=',L9E]R*20@("`*8V]N2`*;V8@:&]L;VYO;6EC("1$7VXD+6UO9'5L +M97,@86YD('1H96ER("1$7VXD+6QI;F5A2!O9B`D2%YK7TDH4E]N*20* +M9F]L;&]W:E])*%)?;BDD(&ES(&AO;&]N;VUI8RDN("`*5&AEW-U8G-E8RUL86UB9&%]+"!AT1-.D7-T96US"BAW:&EC:"!W92!W:6QL(&UE970@86=A:6X@:6X@=&AE(&9I +M;F%L(&-H87!T97(I('!R;W9I9&4@82!V97)Y"FEN=&5R97-T:6YG(&-L87-S +M(&]F(&]B:F5C=',@=VET:"!F87-C:6YA=&EN9R!C;VUB:6YA=&]R:6%L(&%N +M9`IA;F%L>71I8R!PT1-.E-35'TN(`H*"B5<:6YP +M=71[,RYT97A]"EQS96-T:6]N>T)E6QA8F5L>W-E8RUL;V-]"E=E(&UE;G1I +M;VYE9"!I;B!T:&4@:6YTU1H92!,:6YE(&]F($%T=&%C:WT* +M4F5C86QL(&9OW-U8G-E8RU$+6UO9'5L97-]+B`*5V4@8F5G:6X@ +M=VET:"!D969I;FEN9R!A;B!I9&5A;"!O9B!O<&5R871O3"AF7G,I)"X@1F]R(&5X86UP +M;&4L('1H97)E(&%R92`D9EQD96Q?:2U<9&5L7VE<86-T:6]N*&8I7$1E;'1A*&9>2P@979E;B!F;W(@3"AF7G,I)"P@=V4@=VEL;"!C;VYS:61E>RTQ?2QS75QO=&EM97,@9EYS)"!O=F5R +M('1H92!R:6YG("1$7WMN*S%]/41?;EQL86YG;&4*="Q<9&5L7W1<2!D969I;FEN9R!A;B!A<'!R;W!R:6%T92!A8W1I;VX@;V8@)'0D(&%N +M9"`D7&1E;%]T)`IO;B!I="X@270@:7,@=&AE;B!N;W0@:&%R9"!T;R`*8V]M +M<'5T92!T:&4@:61E86P@)$I>3%][;BLQ?2AF7G,I7'-U8G-E=&5Q($1?>VXK +M,7TD(&-O;G-I +MVXK,7U>3"AF7G,I)"X@"@I4:&ES(&-O;G-TV1E9FEN:71I;VY]"E=E +M('-A>2!T:&%T(&$@<')O<&5R='D@9&5P96YD:6YG(&]N("1A7&EN($M>;20@ +M>UQE;2!H;VQD;20@2!H;VQD +M3"AF7G,I)`I@8&ES)R<@=&AE(&%N;FEH:6QA=&]R(&9O2!E>'!L:6-I=&QY(`II9&5N=&EF>2!A(&-O=6YT86)L92!N +M=6UB97(@;V8*97AC97!T:6]N86P@=F%L=65S"FEN("1+)"!S=6-H('1H870@ +M:68@)&$D(&ES(&YO="!E<75A;"!T;R!O;F4@;V8@=&AE;2P@=&AE;B`D2EY, +M*&9>>RTQ?5TD(&)U="!T:&4@:6YC;'5S:6]N(&UA>2!B92!S=')I8W0**&4N +M9RXL(&9OW!R;W`M:V%S:&EW87)A?0IS:&]WU5N9&5T97)M:6YE9"!%>'!O;F5N='-]"D-O;G-I9&5R("1$ +M7WMN*S%]/41?;EQL86YG;&4@="Q<9&5L7W1<VXK,7TD?2`*=&AE(%=E>6P@86QG96)R82!I;@HD>%\Q+%QL9&]T'MA8W1I;VY](`IA +M8W1I;VX@)%QA8W1I;VXD(&]F("1$7WMN*S%])"!O;B`*)"A$7VXO3"E<;W1I +M;65S(%)?;EMF7GLM,7TL2I]"EQD96Q?:5QA8W1I;VXH +M7&)AV9>:WU<;W1I;65S(&9>V9>:WTI*UQFW-<9&5L7VE<86-T:6]N*&8I +M9RAX+',I?7MF7GMK*S%]?5QR:6=H="D@(`I<V"QS*7U[9EYK?5QR:6=H="E<;W1I;65S(&9>V"QS*7U[9EYK?5QO=&EM97,@9EYS*28]"B`@ +M)EQB87(@4%QO=&EM97,@7&9R86-[9RAX+',K,2EF?7MF7FM]7&]T:6UEV"QS +M*7U[9EYK?5QO=&EM97,@9EYS*28]"B`@)EQB87(@4%QO=&EM97,@7&9R86-[ +M+7-G*'@L0ID969I;F5S(&$@ +M;&5F="`D1%][;BLQ?20M;6]D=6QE('-T2`DV1E9FEN:71I;VY]"E=E(&1E;F]T92!B>2`D2EY,7WMN*S%]*&9>VXK +M,7TD(&%C=&EN9PIAVXK,7TD+6UO9'5L97,@)$1?>VXK +M,7TO2EY,7WMN*S%]*&9>>RTQ +M?2QS75QO=&EM97,@9EYS)"!S96YD:6YG"B10*TI>3%][;BLQ?2AF7G,I)"!T +M;R`*)%!<86-T:6]N("A<8F%R(#%<;W1I;65S(#%<;W1I;65S(&9>6EN9&5X>W-A +M='5R871E9$`D9B0M2!T:&%T("1$7VXO3"0@:7,@>UQE +M;2`D9B0M=&]R6EN9&5X>W1OT1-.DU](`IW:&5R92!T:&4@T1-.E6QA8F5L>VQE;2UM86QG3%][;BLQ +M?2AF7G,I)"!IVXK,7TD(&EN9'5C960@8GD@)'A? +M:5QM87!S=&\@>%]I)"!F;W(@86QL"B1I)"P@86YD("1T(%QM87!S=&\@="UF +M)"X@"EQE;F1[;&5M;6%]"@I<8F5G:6Y[<')O;V9]"E1H92!A=71O;6]R<&AI +M%\Q+%QL9&]T3%][;BLQ?2AF7G,I)"!A;F0@)%QP:&DH4%]J*5QI +M;B!*7DQ?>VXK,7TH9EYS*20@9F]R("1J/3$L7&QD;W1S+'(D+@H*0V]N=F5R +M2!L970@)%!<86-T:6]N("A<8F%R(#%<;W1I;65S(#%<;W1I;65S(&9> +MVXK,7TK1%][ +M;BLQ?5QC9&]T('0I)"!R96QI97,@;VX*86X@96QI;6EN871I;VX@:61E82!A +M;F0@:&%S('-O;64@1W)<(F]B;F5R(&)AVXK,7U<8V1O="`H7'!H:2A07S$I+%QL +M9&]T7&%L<&AA"GA>7&)E=&$*45][7&%L<&AA+%QB971A?0HH +M7&1E;%\Q*UQD96Q?,5QA8W1I;VXH9BE<9&5L7W0L7&QD;W1S+%QD96Q?;BM< +M9&5L7VY<86-T:6]N*&8I7&1E;%]T*20L(`IW:&5R92!T:&4@)%%?>UQA;'!H +M82Q<8F5T87U<:6X@2UMY7S$L7&QD;W1S+'E?;ETD(&%R92!P;VQY;F]M:6%L +M"F5X<')EUQA;'!H82Q<8F5T87T@"EQD96Q?=%Y< +M86QP:&%<86-T:6]N*`I<8F%R>WA>7&)E=&$*45][7&%L<&AA+%QB971A?2A< +M9&5L7S$L7&QD;W1S+%QD96Q?;BE]7&]T:6UEUQA;'!H82Q< +M8F5T87TD(&]C8W5R%Y<8F5T82!17WM<86QP:&$L7&)E=&%]*%QD96Q?,2M< +M9&5L7S%<86-T:6]N*&8I7&1E;%]T+%QL9&]TUQB87)<86QP:&$L +M7&)E=&%]*%QD96Q?,2Q<;&1O=',L7&1E;%]N*0I<;W1I;65S("@M,2]F*5Y[ +M7&)A>RTQ +M?2QS75QO=&EM97,@9EYS)"!A>RTQ?2QS720@:7,@)%)?;EMS +M720M9FQA="X*270@9F]L;&]W7&)E=&$* +M45][7&)A>UQB87)<86QP:&%]"GA>7&)E=&$*45][7&)A%Y< +M8F5T80I17WM<8F%R7&%L<&AA+%QB971A?2A<9&5L7S$K7&1E;%\Q7&%C=&EO +M;BAF*5QD96Q?="Q<;&1O=',L7&1E;%]N*UQD96Q?;@I<86-T:6]N*&8I7&1E +M;%]T*20@:VEL;',*)%QB87(@,5QO=&EM97,@,5QO=&EM97,@9EYS)"P@8G5T +M(&ES(&]F(`IS;6%L;&5R(&1E9W)E92!I;B`D7&1E;%]T)"!T:&%N("10)"!W +M87,N"@I4:&4@8VQA:6T@9F]L;&]W2!I;F1U8W1I;VX@;VX@)%QB87)< +M86QP:&$D+EQQ960*7&5N9'MP2`D1%]N6RU<9&5L7W1T720@=VET:"`D1%]N6W-=)"!T:&5N("1*7DQ? +M>VXK,7TH9EYS*5QC87`*1%]N6RU<9&5L7W1T720@:7,@:61E;G1I9FEE9"!W +M:71H("`D2EY,*&9>VXK,7TH9EYS*5QC87`@1%]N6W-=)"X@5V4@'!]+"`D2EY,*&9>VXK,7TH9EYS*20@=VET:"`D1%]N6RU<9&5L7W1T +M720N(`I52!C +M86QC=6QA=&4@)$I<8V%P"D1?;ELM7&1E;%]T=%TD('=H96YE=F5R("1*7'-U +M8G-E=&5Q($1?>VXK,7TD(&ES(&%N>2!G:79E;B!I9&5A;"P@86YD(&%S(&$* +M8V]R;VQL87)Y(&1E=F5L;W`@86X@86QG;W)I=&AM('1H870@9F]R("1F)"US +M871U'MW96EG:'0@=F5C=&]R?0H@)'%]I*3UW*%QD96Q?:2D],"0@ +M86YD('=E(&5X=&5N9"!I="!T;PHD1%][;BLQ?5MY7S$L>5\R720@8GD@)'5\Q*3TM=RAY7S(I/3$D+B!)9B`D4#U<VXK,7U; +M>5\Q+'E?,ETD(&%N9"!A;&P@)%!?:20@87)E(&UO;F]M:6%L:"0@9F]R('1H92!O<&5R871OF%T:6]N?5QM>6EN9&5X>R1Y7S$D+6AO;6]G96YI>F%T:6]N?2`*;V8@)%`D +M+@H*3F]T92!T:&%T('1H90I"=6-H8F5R9V5R(&%L9V]R:71H;2!P2!I;7!O6QA8F5L>W!R;W`M;V%K=7T*3&5T("1*/41?>VXK +M,7U<8V1O="A17S$L7&QD;W1S+%%?2!T:&4*)'E? +M,20M:&]M;V=E;FEZ871I;VYS("0H45]I*5YH)"!O9B!T:&4@)%%?:20L(')E +M;&%T:79E('1O('1H92!W96EG:'0*)'5\Q+'E?,B0N +M($9O<@IE86-H("107&EN($=<8V%P($1?>VXK,7TD(`IS970@)%`G/71>>RUW +M*%`I?5`D(&EF("1W*%`I/#`D(&%N9"`D4"<]7&1E;%]T7GMW*%`I?5`D(&EF +M"B1W*%`I7&=E<2`P)"X@4V5T("1'7S`]7'L@4"T1-.D]A,GTN("A3964@=&AE(')E;6%R:W,@"FEN(%-U +M8G-E8W1I;VX@7')E9GMS=6)S96,M1T)](&]N(&AO=R!T;R!C;VUP=71E('-U +M8V@@1W)<(F]B;F5R"F)AW!R;V]F?0H*07,@82!C +M;W)O;&QA7$1E;'1A*&9>V%L9WU;4&%R86UE=')I8R!!;FYI:&EL871OUQS8R!);G!U='TZ("1F7&EN +M(%)?;B0[("1,7'-U8G-E=&5Q($1?;B0@'LD2EY,*&9>%]I +M)"P@)'1<;6%PVXK,7U;>5\Q+'E?,EU<8V1O="@H7'!H:2A1 +M7S$I*5YH+"!<;&1O=',L("A<<&AI*%%?5\Q>5\R*0I<70II +M;B`D1%][;BLQ?5MY7S$L>5\R720*=7-I;F<@86X@;W)D97(@=&AA="!E;&EM +M:6YA=&5S("1Y7S$L>5\R)"X*"EQI=&5M(%-E;&5C="!T:&4@;W!ER!07VI5\R)"X@"@I<:71E;2!&;W(@96%C:"`D4%]J)"P@)#%< +M;&4@:EQL92!B)"P@:68@)'>RUW*%!?:BE]4%]J)"X@"@I<:71E;2!2971U8B0N"EQE;F1[96YU;65R +M871E?0I%;F0N"EQE;F1[86QG?0I4:&4@;W5T<'5T('=I;&P@8F4@;W!E3%]F)"DN"E1H:7,@86QG;W)I=&AM(&ES(&EN(&5F9F5C="!0"Q$>2Q$>BQ$ +M=RP@7%P*7"`@("`@("`@("`@(%=E>6Q!;&=E8G)A(#T^(%Q[>#T^1'@L('D] +M/D1Y+"!Z/3Y$>BP@=ST^1'=%XR*WE>,BMZ7C(K=UXR7%P*7&5M<'1Y3&EN90I<("`@ +M("`@,B`@("`R("`@(#(@("`@,EQ<"F\Y(#T@>"`@*R!Y("`K('H@("L@=UQ< +M"EQE;7!T>4QI;F4*;SD@.B!$7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70* +M:3$P(#H@06YN1G,H9BE<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("1<8V1O=%QC9&]T7&-D;W0D7%P*;S$P(#T@:61E86P@*'2I$=RP@>BI$>2`M('DJ1'HL('"P@>2P@>BP@=RP@1'@L($1Y+"!$>BP@1'UQT="!!;FY)1G-].@I<8F5G:6Y/=71P=70*:3$Q(#H@3#UI9&5A +M;"AX+'DL1'HL1'"P@>2P@ +M1'HL($1W*5Q<"EQE;7!T>4QI;F4*;S$Q(#H@261E86P@;V8@1%Q<"EQE;F1/ +M=71P=70*7&)E9VEN3W5T<'5T"FDQ,B`Z($%N;DE&4QI;F4*;S$R(#H@261E86P@;V8@ +M45$@6W@L('DL('HL('2P@1'HL($1W+"!<)',L(%=E>6Q!;&=E +M8G)A(#T^(%Q[>"`]("1<8V1O=%QC9&]T7&-D;W0D7%P*7&5N9$]U='!U=`I) +M="!S:&]U;&0@8F4@96UP:&%S:7IE9"!T:&%T('-A='5R871E9&YE3"AF7G,I)"!A;&QO=W,@=7,@=&\@9V5T(&]U +M6YO;6EA;"!O9B`D +M9B0@;VX@)$TD.@H*7&)E9VEN>V-O7T*7&UY;&%B96Q[8V]R+6(M +M<&]L>7T*4W5P<&]S92`D3"0@:7,@82!H;VQO;F]M:6,@:61E86P@:6X@)$1? +M;B0@*&DN92XL("1$7VXO3"0@:7,@:&]L;VYO;6EC*2X@"E1H90I"97)N6YO;6EA;"`D8E]F7DPHV5Q;F%RW!R;V]F?0I">2!D969I;FET:6]N(&]F("1B7DQ?9BAS*20@=V4@:&%V90HD +M*&)?9EY,*',I+5!?9EY,*',I7&-D;W0@9BE<86-T:6]N("A<8F%R(#%<;W1I +M;65S(#%<;W1I;65S(&9>3%]F*',I +M7&EN($1?;EMS720N($AE;F-E"B1B7V9>3"AS*20@:7,@:6X@)$M;7TI(&%N9`IH96YC92!I3"AF7G,I)"!C86X@8F4@8V]M<'5T960*86-C;W)D:6YG('1O(%!R +M;W!OT1- +M.D]A?2X*"EQB96=I;GMA;&=]6T)E2U,?0I<;F]I;F1E;G0@>UQS8R!);G!U +M='TZ("1F7&EN(%)?;B0[("0@3%QS=6)S971E<2!$7VXD('-U8V@@=&AA="`* +M)$1?;B],)"!I"0@86YD("1<9&5L)"X@ +M"@I<:71E;2!0:6-K('1H92!U;FEQ=64@96QE;65N="`D8BAS*5QI;B!+6W-= +M)"!C;VYT86EN960@:6X@=&AA="!B87-IV5N=6UEV%L9WT*"E=E(&EL;'5S=')A=&4@=&AE +M(&%L9V]R:71H;2!W:71H('1W;R!E>&%M<&QE4QI;F4*7"`@("`@("`R("`@(#(@("`@,B`@("`R7%P*;S$S(#T@>"`@*R!Y +M("`K('H@("L@=UQ<"EQE;7!T>4QI;F4*;S$S(#H@1%Q<"EQE;F1/=71P=70* +M3F]W('=E(&-O;7!U=&4@=&AE($)EUQT="!G;&]B86Q"1G5N8W1I;VY](&-O;7!U=&5S('1H90I"97)N +M5XS*WI> +M,RMW7C-<7`I<96UP='E,:6YE"EP@("`@("`@,R`@("`S("`@(#,@("`@,UQ< +M"F\Q-2`]('@@("L@>2`@*R!Z("`K('=<7`I<96UP='E,:6YE"F\Q-2`Z($1< +M7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II,38@.B!F86-T;W)"1G5N8W1I +M;VX@9VQO8F%L0D9U;F-T:6]N*&W)E;6%R:WT*7&UY;&%B +M96Q[7,@82!F86-T;W(@;V8@86YY($)E2!T:&4@ +M8V%S92!I9B`D3%QN;W0@/0I<1&5L=&$D+B!&;W(@97AA;7!L92P@"B1B7DQ? +M9BAS*3US)"!F;W(@)&X],20L("1F/7@D(&%N9"`D3#UX7&1E;%]X*S$D("AI +M;B!W:&EC:"!C87-E"B1$7S$O3%QC;VYG(%)?,5MX7GLM,7U=)"P@9V5N97)A +M=&5D(&)Y("1[,7TO>WA])"DN(`I);B!P87)T:6-U;&%R+"!I="!I2!A('-I;7!L92!S:&EF="P@86YD('-O('1H90I"97)N"Q$>"Q797EL06QG96)R82`]/B!<>W@]/D1X7'U=.UQ< +M"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDQ."`Z($DQ(#T@:61E86PH*'@J +M1'@I7C(K,2E<7`I<96UP='E,:6YE"EP@("`@("`@("`@("`@,B`@,EQ<"F\Q +M."`](&ED96%L*'@@1'@@("L@>"I$>"`K(#$I7%P*7&5M<'1Y3&EN90IO,3@@ +M.B!)9&5A;"!O9B!$,5Q<"EQE;F1/=71P=70*5&AI#M<7`I<96YD3W5T +M<'5T"EQB96=I;D]U='!U=`II,C`@.B!B/6=L;V)A;$(H23$L(&8Q*5Q<"EQE +M;7!T>4QI;F4*7"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M,EQ<"F\R,"`]($AA"I$>"`@*R`R +M1'@J7"1S("L@1'A6YO;6EA;"`]/B!<)',@ +M("L@,EPDUQT="!G;&]B86Q"?2!I6YO;6EA;`IIW)E;6%R:WT*"EQS=6)S96-T +M:6]N>U-P96-I86QI>FEN9R!%>'!O;F5N='-]"EQM>6QA8F5L>W-U8G-E8RUS +M<&5C:6%L+65X<'T*26X@=&AIT1-.DM]*0H@F%T:6]N('!R;V)L +M96TN"@I<8F5G:6Y[<')O<&]S:71I;VY]"EQM>6QA8F5L>W!R;W`M:V%S:&EW +M87)A?0I)9B`D3"0@:7,@:&]L;VYO;6EC(&%N9"`D85QI;B!+)"!IV5Q;BUS/6$M:7-O?0HH1%]N+TPI7&]T:6UE82DN"EQE;F1[97%U871I;VY]"EQQ960* +M7&5N9'MP2!I;G1E9V5R +M('-M86QL97(@=&AA;B`D820N(%1H:7,*;6]T:79A=&5S('1H92!F;VQL;W=I +M;F<@"EQB96=I;GMD969I;FET:6]N?0I4:&4@>UQE;2!S=&%B;&4@:6YT96=R +M86P@97AP;VYE;G0@;V8@)&8D(&]N("1,)'T@:7,@=&AE('-M86QL97-T"FEN +M=&5G3%]F*',I)"P@86YD(&1E;F]T960@)&%>3%]F +M)"X*7&5N9'MD969I;FET:6]N?0I);B!T97)M>V%>3%]F?20N(`I)9B`D3#U<1&5L=&$D('1H +M96X@2V%S:&EW87)A)W,@3%]F*',I +M)"!W:6QL"F9A8W1O2!T;R!F:6YD('1H92!S=&%B;&4*:6YT96=R86P@97AP +M;VYE;G0N($EF('=E(&QO8V%L:7IE(&$@;6]R92!G96YE6YO;6EA;"X@5V4@;&5T("1\"!A8G-O;'5T90IV86QU92X@"EQB96=I;GML96UM87T*4W5P<&]S92!T +M:&%T(&EN('1H92!S:71U871I;VX@;V8@0V]R;VQL87)Y(%QR969[8V]R+6(M +M<&]L>7TL(`I<6PIB7DQ?9BAS*3US7F0K8E][9"TQ?7->>V0M,7TK7&1O=',K +M8E\P+`I<70IA;F0@9&5F:6YE(`HD0CU<;6%X7WMI?5Q[?&)?:7Q>>S$O*&0M +M:2E]7'TD+@I4:&4@3"AS*20N(%=E(&9I;F0*7&)E +M9VEN>V5Q;F%R9#U\W-?,'U>:7P*)29<;&4F7'-U;5\P7GMD+3%]?&)?:7Q< +M8V1O='QS7S!\7FD@7%P*7&QE7'-U;5][:3TP?5Y[9"TQ?4)>>V0M:7U\:0I<;&4@0EYD +M*"@R7')H;RE>9"TQ*2P*7&5N9'ME<6YA2I]"G5S:6YG("1<T1-.DM]('=H97)E"FAE('!R;W9E3"AS*20@87)E(')A=&EO;F%L(&%N9"!N96=A=&EV +M92P@86YD(&AE;F-E(`HD+6)?>VXM,7TD(&ES(&$@"FQO=V5R(&)O=6YD(&9O +M'ML +M;V-A;&EZ871I;VXA86QG;W)I=&AM(&9OU)?;GT*(%)? +M;EMF7GLM,7U=7&-O;F<@1%]N+THD+@H*7&)E9VEN>V5N=6UEV%L9RUA;FXM9G-]+B`*7&ET96T@1FEN9"!T:&4@0F5R;G-T96EN('!O +M;'EN;VUI86P@)&)?9EY,*',I)"!U2`D +M820@:6X@86QL(&=E;F5R871OV5N=6UEV%L9WT*06QG;W)I=&AMV%L9RUB+7!O;'DM3'T@86YD(%QR969[ +M86QG+40O3"UL;V,M9GT@87)E(`I4:&5O&%M<&QE?0I& +M;W(@)&8]>%XR*WE>,BMZ7C(K=UXR)"P@=V4@9F]U;F0@82!S=&%B;&4@:6YT +M96=R86P@97AP;VYE;G0@;V8@)"TR)`II;B!T:&4@<')E=FEO=7,@4QI;F4*;S(Q(#T@1%Q<"EQE;7!T>4QI;F4*;S(Q(#H@ +M4&]L>6YO;6EA;%)I;F=<7`I<96YD3W5T<'5T"DAE +M,2]I9&5A;"A$>"Q$>2Q$>BQ$=RDI7%P*7&5M<'1Y3&EN90IO,C(@/2!C;VME +M41W('I$>2UY1'H@=T1X+7A$=R!Z1'@M>$1Z('E$ +M>"UX1'D@>$1X*WE$>2MZ1'HK=T0@)%QC9&]T7&-D;W1<8V1O="1<7`I<96UP +M='E,:6YE"EP@("`@("`@("`@("`@(#$@("`@("`@,3!<7`IO,C,@.B!-871R +M:7@@1"`@/"TM+2!$7%P*7&5N9$]U='!U=`I4:&4@;W5T<'5T('M<='0@86YN +M,GT@:7,@82`D,5QT:6UET1?-'TH9EY[+3)]*20N(`I<96YD>V5X86UP;&5]"@I< +M8F5G:6Y[2!A;B!A<'!R;W!R:6%T90IS>7IY9WD@8V]M<'5T +M871I;VXN($9O&%M<&QE+"!W92!S87<@86)O=F4*=&AA="!T:&4@0F5R +M;G-T96EN+5-A=&\*<&]L>6YO;6EA;"!O9B`D9CUX7C(K>5XR*WI>,BMW7C(D +M(&]N("127S0D(&ES("0H6EE;&0* +M)%QA;FY?>T1?-'TH9EY[+3%]*20L(&%S('=I;&P@8F4@9&]C=6UE;G1E9"!I +M;B!T:&4@;F5X="!R96UA>RTR?2DD+B!)="!I +M>RTR?0I<V9"!$("`\+2TM($1<7`I<96YD3W5T +M<'5T"E1O(&9I;F0@)%QA;FY?>T1?-'TH9EY[+3%]*20L('=E('5S92!T:&4@ +M8V]M;6%N9"![7'1T(&UO9'5L;WT@=VAI8V@*8V]M<'5T97,@41W('I$>2UY1'H@ +M1'A>,BM$>5XR*T1Z7C(K1'=>,B!W1'@M>$1W('I$>"UX1"`D7&-D;W1<8V1O +M=%QC9&]T)%Q<"EQE;7!T>4QI;F4*;S(U(#H@1W)O96)N97)"87-I2!I;G1E2`D1%\T7&%C=&EO;B!F7GLM,7TD('=E(&5X96-U=&4*7&)E9VEN3W5T<'5T +M"FDR-B`Z(&=B*"AI9&5A;"!A;FXR*2`K("AI9&5A;"!&*2E<7`I<96UP='E, +M:6YE"F\R-B`]('P@=R!Z('D@>"!\7%P*7&5M<'1Y3&EN90IO,C8@.B!'2QZ+'2`D1%\T7&%C=&EO;B!F7GLM,7TD+B!4:&ES(&ES(&YO="!S +M=7)P2!S:6YG +M=6QA2!O9B`D9B0@86YD(&AE;F-E('1H90ID:69F97)E;F-E(&)E='=E +M96X@)$1?-%QA8W1I;VX@9EY[+3)])"!A;F0@)$1?-%QA8W1I;VX@9EY[+3%] +M)"!M=7-T(&)E"G-U<'!O5XS*WI>,RMW +M7C,D(&%N9"`D83UA7EQ$96QT85]F/2TR)"X@"D$@8V]M<'5T871I;VX@>V%]?2DO*'M$7VY<86-T:6]N(&9>>V$K,7U] +M*20@:7,@80HD*'@L>2QZ+'2QZ+'BQW)"X*7&5N9'MR96UA2QZ+$1X+$1Y+$1Z+"!797EL06QG96)R82`]/B!<>W@]/D1X+"!Y +M/3Y$>2P@>CT^1'I"Q$>2Q$>BD[7%P*7&5M<'1Y3&EN90IO,C@@ +M.B!)9&5A;"!O9B!$7%P*7&5N9$]U='!U=`I792!N;W<@9&5F:6YE(&$@<&]L +M>6YO;6EA;"!A;F0@8V]M<'5T92!T:&4@;&]C86QI>F%T:6]N(&]F("127S,D +M"F%T('1H90IP;VQY;F]M:6%L+@I<8F5G:6Y/=71P=70*:3(Y(#H@9CUX7C,K +M>5XS*WI>,SM<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II,S`@.B!),3U$ +M;&]C86QI>F5!;&PH1%XQ+T1E;'1A+&8L4W1R871E9WD]/D]A:W4I7%P*7&5M +M<'1Y3&EN90I<("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`Q("`@ +M("`@("`Q("`@("`@("`Q("`@("`@("`@("`@(#(@("`@("`D7&-D;W1<8V1O +M=%QC9&]T)%Q<"F\S,"`]($AA"I$>"`K("TJ>2I$>2`K("TJ>BI$>B`M(%PDB!$>2`M("`D7&-D;W1< +M8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M(#,@("`@("`@(#,@("`@("`@(#-<7`I<("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@(#(@("`@("`U("`@("`@(#1<7`I<("`@("`@("`@ +M("`@("`@($)F=6YC=&EO;B`]/B`H7"1S("L@,2D@*%PDB!$>"`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@(#@Q("`@("`@("`@("`@("`@(#@Q("`@("`@("`@ +M("`@(#(T,R`@("`@("1<8V1O=%QC9&]T7&-D;W0D7%P*7"`@("`@("`@("`@ +M("`@("!'96YE#8K,G@S>3,K>38K,G@S>C,K,GDS>C,K>C8@?%Q<"EP@ +M("`@("`@("`@("`@("`@3&]C36]D=6QE(#T^(&-O:V5R;F5L('P@,2\S>$1X +M*S$O,WE$>2LQ+S-Z1'HK,B!Z,D1Y+7DR("1<8V1O=%QC9&]T7&-D;W0D7%P* +M7&5M<'1Y3&EN90IO,S`@.B!(87-H5&%B;&5<7`I<96YD3W5T<'5T"EQB96=I +M;D]U='!U=`II,S$@.B!),CU$;&]C86QI>F5!;&PH1%XQ+T1E;'1A+&8I7%P* +M7&5M<'1Y3&EN90IO,S$@/2!(87-H5&%B;&5<>T=E;F5R871O#-Y,RMY +M-BLR>#-Z,RLR>3-Z,RMZ-B!\7%P*7"`@("`@("`@("`@("`@("!,;V--;V1U +M;&4@/3X@8V]K97)N96P@?"!X1'@K>41Y*WI$>BLV('HR1'DM>3)$>B!Z,D1X +M+7@@)%QC9&]T7&-D;W1<8V1O="1<7`I<96UP='E,:6YE"F\S,2`Z($AA2QZ+$1X+$1Y+$1Z +M+"!797EL06QG96)R82`]/B![>#T^1'@L('D]/D1Y+"!Z/3Y$>GU="B5I,R`Z +M($1E;'1A/6ED96%L*$1X+$1Y+$1Z*0HE:30@.B!F/7A>,RMY7C,K>EXS"B5I +M-2`Z($DQ/41L;V-A;&EZ94%L;"A$7C$O1&5L=&$L9BQ3=')A=&5G>3T^3V%K +M=2D*)6DV(#H@23(]1&QO8V%L:7IE06QL*$1>,2]$96QT82QF*0HE7&5N9'MV +M97)B871I;7T*5&AE(&QAV%L9RU$+TPM;&]C+69]('=H:6QE +M('1H92!L871T97(@9F]L;&]WUQT="!,;V--87!](&=I=F5S('1H92!E;&5M96YT('1H870@:6YD +M=6-EUQT="!,;V--;V1U;&5](&=I=F5S"G1H +M92!L;V-A;&EZ960@;6]D=6QE(&%S(&-O:V5R;F5L(&]F('1H92!D:7-P;&%Y +M960@;6%T'!O;F5N="!IUQT=`I'96YEF%T:6]N(&%L9V]R:71H;2!O9B!<8VET97M$33I/+50M5WT@ +M:7,@=7-E9"X@26X*=&5R;7,@;V8@8V]M<&QE>&ET>2P@=7-I;F<@=&AE($]A +M:W4@&%M +M<&QE+"!E>&5C=71I;F<*7&)E9VEN3W5T<'5T"FDS,B`Z($DQ+DQO8TUO9'5L +M95Q<"EQE;7!T>4QI;F4*;S,R(#T@8V]K97)N96P@?"`Q+S-X1'@K,2\S>41Y +M*S$O,WI$>BLR('HR1'DM>3)$>B!Z,D1X+7@R1'H@>3)$>"UX,D1Y('Q<7`I< +M96UP='E,:6YE"EP@("`@("`@("`@("`@("`@("`@("`@("`@("`@(#%<7`IO +M,S(@.B!$+6UO9'5L92P@<75O=&EE;G0@;V8@1%Q<"EQE;F1/=71P=70*;VYE +M(&-A;B!S964@=&AA="`*)%)?,UMF7GLM,7U=)"!IUQT="!,;V--;V1U;&5]"F5N=')Y('=H +M:6-H("AF;W(@96ET:&5R(&QO8V%L:7IA=&EO;B!M971H;V0I(&ES"EQB96=I +M;GME<6YA2I]"D1?,R\F1%\S7&-D;W0H)GA<9&5L7W@K>5QD96Q?>2MZ +M7&1E;%]Z*S8L7"Q<+%PL>EXR7&1E;%]Y+7E>,EQD96Q?>BQ<+%PL7"QX7C-< +M9&5L7WDK>5XS7&1E;%]Y*WE>,GI<9&5L7WHK-GE>,BQ<7"`*("`@("`@("`@ +M)B8@("`@("!Z7C)<9&5L7W@M>%XR7&1E;%]Z+%PL7"Q<+'E>,EQD96Q?>"UX +M7C)<9&5L7WDL7"Q<+%PL(`H@("`@("`@("`@("`@("!X7C-<9&5L7WHK>5XS +M7&1E;%]Z*WI>,UQD96Q?>BLV>EXR*2X*7&5N9'ME<6YA2I]"E1H92!F +M:7)S="!L:6YE(&]F('1H92!H87-H=&%B;&4@>UQT="!),7T@>RTR?20@;W9E +MUQT="!),2Y,;V--87!]('-H;W=S('1H870@=&AE +M(&YA='5R86P@:6YC;'5S:6]N"B1$7S,O7$1E;'1A/5)?,UQI;G1O(%)?,UMF +M7GLM,7U=/41?,R]*7EQ$96QT82AF7G,I?%][6YO;6EA;"![7'1T($DQ+D)F=6YC=&EO +M;GT@8V%N(&)E(&-O;7!U=&5D(&)Y"B4\/&9A8W1O2!O9B!H87-H=&%B;&4*>UQT +M="!),GT@:7,@82!R96QA=&EV92!O9B!T:&4@0F5R;G-T96EN+5-A=&\@<&]L +M>6YO;6EA;"!O9B`D9B0L(&%N9"!IV5X86UP;&5] +M"@I<8F5G:6Y[UQE;2!I'!E8W1E +M9"!R97-U;'1S+B!#;VYS:61E"0N(%1H +M96X@)$I>7$1E;'1A*&9>W!R;W`M:V%S:&EW87)A?2P@"EQ;"EQL969T*$1?,5MS72]*7EQ$96QT +M82AF7G,I7')I9VAT*7Q?>W,]87T*7&-O;F<@4E\Q6WMX7S%]7GLM,7U=7&]T +M:6UE%\Q?5YA7&-O;F<@1%\Q7&%C=&EO;B![>%\Q?5YA"EQ="F9O*R0L('=E(&%L +M7$1E;'1A*&9>WA?,7U>>RTQ?5TD(&)U="!J=7-T("127S$D+B`*"D9O7$1E;'1A*&9>%\Q)"UT;W)S:6]N(2!)=`IE<75A;',@:6X@9F%C="!W:&%T +M(&ES(&-A;&QE9"!T:&4@1F]U%\Q +M?5Y[+3%]720@86YD(&9I=',@:6YT;R!A;B!E>&%C="!S97%U96YC92`*7%L* +M,%QT;R!(7C%?>WA?,7TH4E\Q*5QT;WM<;6%T:&-A;"!&?2A27S%;>WA?,7U> +M>RTQ?5TI7'1O(%)?,5QT;R`P+@I<70I<96YD>W)E;6%R:WT*"@H*7&)E9VEN +M>W)E;6%R:WT*268@)$1?;B],)"!IRAF*7TH1%]N+TPI*5QO=&EM97,@4E]N6V9> +M>RTQ?5TD(&%R92!O9B!C;W5RF5D('1O(&%L;"!H;VQO;F]M:6,@;6]D=6QET1-.D\M5#%](&%N +M9"!I;B!<8VET97M$33I42!O9B`D9B0@*&ER>RTQ?5TD(&ES('1H +M96X@:&]L;VYO;6EC+"!A;F0@:6X@7&-I=&5[1$TZ3RU4+5=](&%N(&%L9V]R +M:71H;2!B87-E9`IO;B!I;G1E9W)A=&EO;B!IS4N=&5X?0I<VDL:GTH4E]N+TDI)"!A2!M;V1U;&5S +M+B`*7'-U8G-E8W1I;VY[3&]C86P@0V]H;VUO;&]G>7T*7&UY;&%B96Q[:U])*%)?;BDD +M(&ES('IEF5R;PIPV1E9FEN:71I;VY]"DQE="`D +M7%1H971A7G)?:R1<;7EI;F1E>'LD7%1H971A7G)?:R1]"F)E('1H92!S970@ +M;V8@)&LD+65L96UE;G0@"`D7&-H96-K($->7&)U;&QE=#U<8VAE8VL*0UY<8G5L;&5T*&9?,2Q<;&1O +M=',L9E]R*20@87-S;V-I871E9"!T;R`D9E\Q+%QL9&]TV5Q=6%T:6]N?0HE)2!<;&%B96Q[8V5C:&-O;7!L97A] +M"C!<=&\@4E]N7'1O(%QB:6=O<&QU>RTQ?5U<=&\@"B!<8FEG;W!L=7-?>UQT:&5T85QI +M;EQ4:&5T85YR7S)]4E]N6WM&7UQT:&5T87U>>RTQ?5T*(%QT;UQC9&]TRAF7S%<8V1O=',@9E]R*7U>>RTQ?5U<=&\@,"X*7&5N9'ME<75A +M=&EO;GT*271S("1K)"UT:"!C;VAO;6]L;V=Y(&=R;W5P(&ES(`HD2%YK7TDH +M4E]N*20N"E1H92!M87`@"EQB96=I;GME<75A=&EO;GT*7&QA8F5L>V-E8VAM +M87!]"DU?:SI<;&5F="A<8VAE8VL@0UYK/5QB:6=O<&QUUQT +M:&5T85QI;EQ4:&5T85YR7VM]"B`@(%)?;EM[1E]<=&AE=&%]7GLM,7U=7')I +M9VAT*5QT;R`*7&QE9G0H7&)I9V]P;'5S7&QI;6ETT9?>UQT:&5T82=]?5Y[+3%]73U<8VAE +M8VL@0UY[:RLQ?2!<V5Q=6%T:6]N?0I<;&%B96Q[8V5C:&UA<"UP87)T +M>RTQ?5U<=&\@4E]N +M6WLH9E][:E\Q?5QD;W1S8@IF7WMJ7WMK*S%]?2E]7GLM,7U="EQE;F1[97%U +M871I;VY]"G=H:6-H(&%R92!Z97)O(&EF("1<>VE?,2Q<;&1O=',L:5]K7'U< +M;F]T7'-U8G-E=&5Q"EQ[:E\Q+%QL9&]TS%]>S%])"`H=7`@=&\@VE?,7U<8V1O=',@9E][:5]K?2E]7GLM,7U=)"!W:71H"B1$7VXO2EY< +M1&5L=&$H*&9?>VE?,7U<8V1O=',@9E][:5]K?2E>VI?,7U<8V1O=',@9E][:E][:RLQ?7TI?5Y[+3%]720@=VET +M:`HD1%]N+TI>7$1E;'1A*"AF7WMJ7S%]7&-D;W1S(&9?>VI?>VLK,7U]*5YS +M*7Q?>W,]82=])"!W:&5R90HD82QA)R0@87)E('-U9F9I8VEE;G1L>2!S;6%L +M;"!I;G1E9V5R&%M<&QE+"!C;VYS:61E"Q<9&5L7WDI/5)?,EMX7GLM,7U=7&EN=&\*4E\R6RAX>2E> +M>RTQ?5T]1%\R+T1?,EQC9&]T("A<9&5L7WAX+`I<9&5L7WEY*2X*7%T*4VEN +M8V4@)%QFS%]>WA]"CU<9G)A8WMY?7MX>7TD+"!T:&4@:6YC;'5S:6]N +M(&]N('1H92!L979E;"!O9B`D1%\R)"UM;V1U;&5S(`IM87!S("10*UQA;FXH +M>%Y[+3%]*20@=&\@)%!Y*UQA;FXH*'AY*5Y[+3%]*20N("`*"DET(&9O;&QO +M=W,@=&AA="!T:&4@;6%TV%L +M9WU;3&]C86P@8V]H;VUO;&]G>5QI;F1E>'ML;V-A;"!C;VAO;6]L;V=Y(6%L +M9V]R:71H;2!F;W)]77X*"EQM>6QA8F5L>V%L9RUL8WT*"EQN;VEN9&5N="![ +M7'-C($EN<'5T?3H@)&9?,2Q<;&1O=',L9E]R7&EN(%)?;CL@:UQI;B!<3B0N +M"@I<;F]I;F1E;G0@>UQS8R!/=71P=71].B`D2%])7FLH4E]N*20@:6X@=&5R +M;7,@;V8@9V5N97)A=&]RV5N=6UE7$1E;'1A*"A&7UQT:&5T82E> +MT9?7'1H971A?20L(`H@;&5T("1A)`IB +M92!T:&5I2`D820@:6X@86QL +M('1H92!A;FYI:&EL871OVLM,7TL35]K)"!R97!R97-E;G1I;F<@=&AE"B1$ +M7VXD+6QI;F5A>VLM,7U<=&\@7&-H96-K($-> +M:R0@86YD("1<8VAE8VL@0UYK7'1O(%QC:&5C:R`*0UY[:RLQ?20@87,@97AP +M;&%I;F5D(&%B;W9E+@H*7&ET96T@0V]M<'5T92!A($=R7")O8FYEUQT:&5T85QI;EQ4:&5T85YR7VM](`I$7VXO2EY<1&5L=&$H>T9?7'1H +M971A?5YS*7Q?>W,]87U<T9?>UQT:&5T82=]?5YS*7Q?>W,]87TN(`I<70H*7&ET96T@0V]M +M<'5T92!A($=R7")O8FYEVLM,7TI"EQS=6)S971E<2!<8FEG;W!L +M=7-?>UQT:&5T85QI;EQ4:&5T85YR7VM](`I$7VXO2EY<1&5L=&$H*$9?7'1H +M971A*5YS*7Q?>W,]87U<;&5F=&%RUQT:&5T85QI;EQ4:&5T85]K7G)]1%]N"EQ="G5N9&5R +M('1H92!I;F1I8V%T960@<')O:F5C=&EO;BX*7&ET96T@0V]M<'5T92!T:&4@ +MF5R;R!E;&5M96YT:U])*%)?;BDD('-O('1H870@:6X@<&%R=&EC=6QA +M<@HD2%YK7TDH4E]N*3TP)"!I9B!A;F0@;VYL>2!I9B!A;&P@F5R;RX@"@I<8F5G:6Y[97AA;7!L97T*7&UY;&%B +M96Q[97@M;6EN;W)S?0I,970@)$DD(&)E('1H92!I9&5A;"!I;B`D4E\V/4M; +M>"QY+'HL=2QV+'==)"!T:&%T(&ES(&=E;F5R871E9"!B>2!T:&4*)#)<=&EM +M97,@,B0@;6EN;W)S("1F+&`HD7&QE9G0H7&)E +M9VEN>V%R"9Y)GI<7'4F=B9W7&5N9'MA7U<2!O<&5N(&-A,U]) +M*%)?-BDD+B!4:&ES(&UO9'5L90H@:6X*9F%C="!D;V5S(`IN;W0@=F%N:7-H +M+"!A;F0@;W5R(&%L9V]R:71H;2!PBQU+'8L=RQ$>"Q$>2Q$>BQ$=2Q$=BQ$=RP@5V5Y;$%L9V5B#T^1'@L('D]/D1Y+"!Z/3Y$>BP@=3T^ +M1'4L('8]/D1V+"!W/3Y$=UQ]73M<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U +M=`II,S0@.B!$96QT83UI9&5A;"A$>"Q$>2Q$>BQ$=2Q$=BQ$=RD[7%P*7&5M +M<'1Y3&EN90IO,S0@.B!)9&5A;"!O9B!$7%P*7&5N9$]U='!U=`I<8F5G:6Y/ +M=71P=70*:3,U(#H@4CU$7C$O1&5L=&$[7%P*7&5N9$]U='!U=`I<8F5G:6Y/ +M=71P=70*:3,V(#H@9CUX*G8M=2IY.UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T +M<'5T"FDS-R`Z(&<]>"IW+74J>CM<7`I<96YD3W5T<'5T"EQB96=I;D]U='!U +M=`II,S@@.B!H/7DJ=RUV*GH[7%P*7&5N9$]U='!U=`I4:&5S92!C;VUM86YD +MBP@>"I$=2`K +M('DJ1'8L('DJ1'D@+2!U*D1U+"!X*D1Y("1<8V1O=%QC9&]T7&-D;W0D7%P* +M7"`@("`@("`@("`@("`@("!"9G5N8W1I;VX@/3X@*%PD2I$=2`K +M($1X*D1V7%P*7"`@("`@("`@("`@("`@("!'96YE3)U,BTR>'EU=BMX +M,G8R('Q<7`I<("`@("`@("`@("`@("`@($QO8TUO9'5L92`]/B!C;VME41Y+75$=2!X1'DK=41V("`D7&-D;W1<8V1O +M=%QC9&]T)%Q<"EQE;7!T>4QI;F4*;S,Y(#H@2&%S:%1A8FQE7%P*7&5N9$]U +M='!U=`IO9B`D4E\V6V9>>RTQ?5TD(&%T"B1G)#H*7&)E9VEN3W5T<'5T"FDT +M,"`Z(%)F9SU$;&]C86QI>F5!;&PH4F8N3&]C36]D=6QE+&BI$ +M=RP@>BI$("1<8V1O=%QC9&]T7&-D;W0D7%P*7"`@("`@("`@("`@("`@("!" +M9G5N8W1I;VX@/3X@*%PDG4K>'<@?%Q<"EP@("`@("`@("`@("`@("`@3&]C36]D +M=6QE(#T^(&-O:V5R;F5L('P@1'I$=BU$>41W('A$=2MY1'8K>D1W('I$>BUU +M1'4M("1<8V1O=%QC9&]T7&-D;W0D7%P*7&5M<'1Y3&EN90IO-#`@.B!(87-H +M5&%B;&5<7`I<96YD3W5T<'5T"F%N9"!O9B`D4E\V6RAF9RE>>RTQ?5TD(&%T +M("1H)#H@("`*7&)E9VEN3W5T<'5T"FDT,2`Z(%)F9V@]1&QO8V%L:7IE06QL +M*%)F9RY,;V--;V1U;&4L:"P@4W1R871E9WD@/3X@3V%K=2E<7`I<96UP='E, +M:6YE"EP@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("1<8V1O=%QC9&]T7&-D +M;W0D7%P*;S0Q(#T@2&%S:%1A8FQE7'MA;FY&4R`]/B!I9&5A;"`H>"I$=2`K +M('DJ1'8@*R!Z*D1W+"!Z*D1Z("T@=2I$=2`M('8J1'8@)%QC9&]T7&-D;W1< +M8V1O="1<7`I<("`@("`@("`@("`@("`@($)F=6YC=&EO;B`]/B`H7"1S("T@ +M,2DH7"1S("L@,2E<7`I<("`@("`@("`@("`@("`@($)O<&5R871OG8K +M>7<@?%Q<"EP@("`@("`@("`@("`@("`@3&]C36]D=6QE(#T^(&-O:V5R;F5L +M('P@>$1U*WE$=BMZ1'<@>D1Z+75$=2UV1'8M,B!Y1'DM("1<8V1O=%QC9&]T +M7&-D;W0D7%P*7&5M<'1Y3&EN90IO-#$@.B!(87-H5&%B;&5<7`I<96YD3W5T +M<'5T"D9R;VT@=&AE(&]U='!U="!O9B!T:&5S92!C;VUM86YD>RTQ?5TD(&ES(&=E;F5R871E9"!B>0HD>S%] +M+WMF7C)G:'TD+B!4:&ES(&9O;&QO=W,@9G)O;2!C;VYS:61EF%T:6]N('!R;V-E9'5R97,L(`IE;F-O9&5D(&EN('1H92!H87-H=&%B;&4@ +M96YTUQT="!'96YE&%M<&QE+"`*7&)E9VEN3W5T<'5T"FDT,B`Z(%)F+D=E;F5R +M871O>RTQ?5TD(&ES +M("1F7GLM,GTD+@I.;W<@=V4@8V]M<'5T92!T:&4@86YN:6AI;&%T;W(@;V8@ +M)$A>,U])*%)?-BDD+@I&,U])*%)?-BDD(&ES('1H92!Q=6]T:65N="!O9B!T +M:&4@;W5T<'5T(&]F('M<='0@4F9G:"Y,;V--;V1U;&5]"B`H:7-O;6]R<&AI +M8R!T;R`D4E\V6RAF9V@I7GLM,7U=)"D*8GD@=&AE('-U8FUO9'5L97,@9V5N +M97)A=&5D(&)Y("1F7C(D+"`D9R0@86YD("1H)"X@*%1H97-E('-U8FUO9'5L +M97,*(')E<')E>RTQ?5TD+"`D4E\V6RAF:"E>>RTQ +M?5TD(&%N9"`D4E\V6RAF9RE>>RTQ?5TD"B!R97-P96-T:79E;'DN*2`@"EQB +M96=I;D]U='!U=`II-#,@.B!*9F=H/6ED96%L(')E;&%T:6]N$1U*WE$=BMZ1'<@>41Y +M+75$=2UW1'"MV1'DK=T0@)%QC9&]T7&-D;W1<8V1O +M="1<7`I<96UP='E,:6YE"F\T-2`Z($=R;V5B;F5R0F%S:7-<7`I<96YD3W5T +M<'5T"E-O('M<='0@2D@S?2!I2I]"B9W+%PL7"Q<+"!Z+%PL7"Q<+"!U +M7&1E;%]U*W9<9&5L7W8K=UQD96Q?=RLT+%PL7"Q<+`IX7&1E;%]U*WE<9&5L +M7W8K>EQD96Q?=RQ<+%PL(%PL(`IY7&1E;%]Y+75<9&5L7W4M=UQD96Q?=RTQ +M+"9<7"`*)GA<9&5L7WDK=5QD96Q?=BQ<+%PL7"P@"B`@("`@("`@("`@('5< +M9&5L7W@K=EQD96Q?>2MW7&1E;%]Z+%PL7"Q<+"!Y7&1E;%]X*W9<9&5L7W4L +M7"Q<+%PL"GA<9&5L7W@M=EQD96Q?=BUW7&1E;%]W+3$L)EQ<("8@=EXR+%PL +M7"Q<+"!U=BQ<+%PL('EV+%PL7"Q<+`IU7C(L7"Q<+%PL('EU*WAV+%PL7"P@ +M7"P@"B`@("`@("`@("`@('AU+%PL7"Q<+"!Y7C(L7"Q<+"!<+'AY+"9<7"`F +M>%XR+%PL7"Q<+"!X=EQD96Q?=BLR>"Q<+%PL7"P*=EQD96Q?>5QD96Q?=2MW +M7&1E;%]Z7&1E;%]U+79<9&5L7WA<9&5L7W8M=UQD96Q?>%QD96Q?=RTS7&1E +M;%]X)@I<96YD>V5Q;F%R,U])*%)?-BDD(&ES"B0H>"QY+'HL=2QV+'2QZ+'4L=BQW*5XR)"X*5&AE(&9O;&QO +M=VEN9R!S97%U96YC92!O9B!C;VUM86YDUQT="!T +M97-T;51OV9]+RA[=WIX7C)Y7C)U7C)V7C)] +M*20@:6X*)%)?-ELH>'EZ=79W*5Y[+3%]72]27S9<8V]N9R`*1%\V+T1?-EQC +M9&]T*'@L>2QZ+'4L=BQW*20L(&%N9"!T:&%T('1H92!F%\Q+%QD;W1S+'A?-BDD(&ES"FES;VUOU)?-GTH4E\V+U)?-EQC9&]T*'A?,2Q<9&]T%\V*3U+)"!I;@IT:&4@8V%T96=O,U])*%)?-BE<8V]N9R!%7WM27S9]*$LI +M)"X@*$EN('1H92!N97AT('-U8G-E8W1I;VX@=V4@=VEL;"!D:7-P;&%Y"F$@ +M=V%Y('1O('5S92!<371W;R!T;R!F:6YD('1H92!L96YG=&@@;V8@86X@)%QM +M)"UT;W)S:6]N(&UO9'5L92XI"@H*"DEN(&-O;G1R87-T+"!L970@)$DD(&)E +M(&1E9FEN960@87,@9V5N97)A=&5D(&)Y('1H92!T:')E90IM:6YOF5R;R!B96-A=7-E(%!E +M2!I;7!L:65S('1H870@)$A>:U])*%)?-BDD(&ES(&YO;GIE2!I9B`D:SU<8V]D:6TH22DD+@H*06QS;R!O<'!O2!C:&%R86-T97)I2QZ+'==)`ID97-C,B0L(`HD9SUY +M=RUZ7C(D+`HD:#UX=RUY>B0N(`I4:&4@<')O:F5C=&EV92!V87)I971Y("16 +M7S(D(&1E9FEN960@8GD@)$DD(&ES(&ES;VUOBQW+$1X+$1Y+$1Z+$1W+%=E>6Q!;&=E +M8G)A(#T^(%Q[>#T^1'@L('D]/D1Y+"!Z/3Y$>BQ<7`I<("`@("`@=ST^1'=< +M?5T[7%P*7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:34P(#H@9CUY7C(M>"IZ +M.UQ<"EQE;F1/=71P=70*7&)E9VEN3W5T<'5T"FDU,2`Z(&<]>EXR+7DJ=SM< +M7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II-3(@.B!H/7@J=RUY*GH[7%P* +M7&5N9$]U='!U=`I<8F5G:6Y/=71P=70*:34S(#H@1&5L=&$]:61E86PH1'@L +M1'DL1'HL1'4QI;F4*;S4S(#H@261E86P@;V8@1%Q<"EQE +M;F1/=71P=70*7&)E9VEN3W5T<'5T"FDU-"`Z(%(]1%XQ+T1E;'1A.UQ<"EQE +M;F1/=71P=70*7&)E9VEN3W5T<'5T"FDU-2`Z(%)F/41L;V-A;&EZ94%L;"A2 +M+&8L4W1R871E9WD@/3X@3V%K=2D@(%Q<"EQE;7!T>4QI;F4*7"`@("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@(#$@("`@("`@("`@("`@)%QC9&]T7&-D;W1<8V1O="1<7`IO-34@/2!( +M87-H5&%B;&5<>V%N;D93(#T^(&ED96%L("A$=RP@>"I$>2`K(#)Y*D1Z+"!Y +M*D1X("L@+2IZ*D1Y+"!X*D1X("`D7&-D;W1<8V1O=%QC9&]T)%Q<"EP@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ +M("`@("`@("`R("`@("`@("`@("`@("1<8V1O=%QC9&]T7&-D;W0D7%P*7"`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@,UQ<"EP@("`@("`@ +M("`@("`@("`@0F9U;F-T:6]N(#T^("A<)',@*R`M*2A<)',@*R`Q*5Q<"EP@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(#)<7`I<("`@("`@ +M("`@("`@("`@("`@("`@("`@("`@("`Q("`@,EQ<"EP@("`@("`@("`@("`@ +M("`@0F]P97)A=&]R(#T^("TJ1'D@("T@1'@J1'I<7`I<("`@("`@("`@("`@ +M("`@("`@("`@("`@("`@("`T7%P*7"`@("`@("`@("`@("`@("!'96YE3(M>'H@?%Q<"EP@("`@("`@("`@("`@("`@3&]C36]D=6QE(#T^(&-O:V5R +M;F5L('P@1'<@>$1Y*S)Y1'H@>41X*S$O,GI$>2!X1'@M>D1Z("1<8V1O=%QC +M9&]T7&-D;W0D7%P*7&5M<'1Y3&EN90IO-34@.B!(87-H5&%B;&5<7`I<96YD +M3W5T<'5T"B`@("`@("`@"EQB96=I;D]U='!U=`II-38@.B!29F<]1&QO8V%L +M:7IE06QL*%)F+DQO8TUO9'5L92QG+"!3=')A=&5G>2`]/B!/86MU*3M<7`I< +M96YD3W5T<'5T"B`@("`@("`@("`*7&)E9VEN3W5T<'5T"FDU-R`Z(%)F9V@] +M1&QO8V%L:7IE06QL*%)F9RY,;V--;V1U;&4L:"P@4W1R871E9WD@/3X@3V%K +M=2D[7%P*7&5N9$]U='!U=`H@("`@("`@("`@"EQB96=I;D]U='!U=`II-3@@ +M.B!)9F=H/6ED96%L(')E;&%T:6]N4QI;F4*;S8P(#H@1W)O96)N97)"87-IT1-.D-$058L1$TZ +M2"U3<"Q$33I(=2U,?3H@:68@82!H;VUO9V5N96]U>VXM,7U?22A27VXI/4A>>VY]7TD@*%)?;BD],"0N"EQE;F1[97AA +M;7!L97T*"@I<6P@86QG96)R82!W90IS:&]W(&YO=R!H;W<@=&\@8V]M<'5T92!T:&4@ +M)%QM)"UT;W)S:6]N(&UO9'5L97,@)$A>:5]<;2`H2%YJ7TDH4E]N*2DD+@I. +M;W1E('1H870@=V4@8V%N;F]T(&%P<&QY($QE;6UA(%QR969[;&5M+6UA;&=R +M86YG97T@=&\@)$1?;B],/4A>:E])*%)?;BDD"G-I;F-E("1(7FI?22A27VXI +M)"!M87D@=V5L;"`*8V]N=&%I;B!S;VUE('1O +M:BA27VX[9E\Q+%QL9&]T>UQB=6QL970L7&)U;&QE='TD(&EN9'5C +M960@8GD@=&AE(&ED96YT:71Y(&]N('1H90IF:7)S="!F86-T;W(@86YD('1H +M92`*=7-U86P@7'8@0V5C:"!M87!S(&]N('1H92!S96-O;F0L(&%N9"`@:&]R +M:7IO;G1A;"!M87!S"B1<>&E>>UQB=6QL970L7&)U;&QE='T@)"`@:6YD=6-E +M9`IB>2!T:&4@7'8@0V5C:"!M87!S(&]N('1H92!F:7)S="!F86-T;W(@86YD +M('1H92!I9&5N=&ET>2!O;B!T:&4*%][7&%L<&AA7S%]7&-D;W1S('A?>UQA;'!H85]I?5QC +M9&]T"F9?>UQB971A7S%]7&-D;W1S(&9?>UQB971A7VI])"X@4V\@=&AE('=H +M;VQE(&1O=6)L92!C;VUP;&5X"F-A;B!B92!R97=R:71T96X@:6X@=&5R;7,@ +M;V8@)$1?;B0M;6]D=6QE>VDK,2QJ*S%]7%P*7&-H +M96-K($->>VDM,2QJ?5QR=&]>>UQX:5Y[:2TQ+&I]?5QU=&]?>UQP:&E>>VDM +M,2QJ?7TF(`H@("`@("`@(%QC:&5C:R!#7GMI+&I]7')T;UY[7'AI7GMI+&I] +M?5QU=&]?>UQP:&E>>VDL:GU])B`*("`@("`@("`@("`@("`@(%QC:&5C:R!# +M7GMI*S$L:GU<=71O7WM<<&AI7GMI*S$L:GU]7%P*7&-H96-K($->>VDM,2QJ +M+3%]7')T;UY[7'AI7GMI+3$L:BTQ?7U<=71O7WM<<&AI7GMI+3$L:BTQ?7TF +M"B`@("`@("`@7&-H96-K($->>VDL:BTQ?5QR=&]>>UQX:5Y[:2QJ+3%]?5QU +M=&]?>UQP:&E>>VDL:BTQ?7TF(`H@("`@("`@("`@("`@("`@7&-H96-K($-> +M>VDK,2QJ+3%]7'5T;U][7'!H:5Y[:2LQ+&HM,7U]"EQE;F1D:6%G:2A27VX[>%\Q+%QL9&]T:E]) +M*%)?;BDD(&%N9"!T:&4@:6YD=6-E9"!H;W)I>F]N=&%L(&UA<',*:6X@=&AE +M("1J)"UT:"!R;W<@87)E"G-I;7!L>2!T:&4@;6%P:E])*%)?;BD[>%\Q+%QL +M9&]T>VI?,'U?22A27VXI*20L('1H92!O8FIE8W0@;V8@ +M;W5R(&EN=&5R97-T+@H*5V4@:&%V92P@9&5N;W1I;F<@8GD@)%A?>UQT:&5T +M82=])`II;B!A;F%L;V=Y('1O("1&7UQT:&5T820@=&AE('!R;V1U8W0@)%QP +M%]I)"P*('1H92!F;VQL;W=I;F<@"EQB96=I +M;GMA;&=]6TET97)A=&5D(&QO8V%L(&-O:&]M;VQO9WE=?@H*7&UY;&%B96Q[ +M86QG+6QC;&-]"EQM>6EN9&5X>VQO8V%L(&-O:&]M;VQO9WDA86QG;W)I=&AM +M(&9O2%I=&5R871E9'T*7&YO +M:6YD96YT('M<7$1E;'1A*"A&7UQT:&5T85QC9&]T(%A?>UQT:&5T82=] +M*5YS*20L($)ET9?7'1H +M971A7&-D;W0@6%][7'1H971A)WU]*',I)"P@86YD('-T86)L90II;G1E9W)A +M;"!E>'!O;F5N=',@)&%>7$1E;'1A7WM&7UQT:&5T85QC9&]T(%A?>UQT:&5T +M82`G?7TD("`*;V8@)$9?7'1H971A7&-D;W0*6%][7'1H971A)WTD(`IW:&5R +M92`D7'1H971A(%QI;B!<5&AE=&%> +M7$1E;'1A7WM&7UQT:&5T85QC9&]T(%A?>UQT:&5T82`G?7TD"F%N9"!R97!L +M86-E("1S)"!B>2`D820@:6X@86QL('1H92!A;FYI:&EL871O&E>>VLL;'TZ7&-H96-K($->>VLL;'U<=&\@7&-H96-K($->>VLK,2QL?20L +M(&9O<@HD*&DL:BE<:6Y<>RAI7S`L:E\P*2PH:5\P*S$L:E\P+3$I+"AI7S`L +M:E\P+3$I+"AI7S`M,2QJ7S`I7'TD(&%N9"`*)"AK+&PI7&EN(%Q[*&E?,"QJ +M7S`I+"AI7S`M,2QJ7S`I7'TD+B`*7&ET96T@0V]M<'5T92!A($=R7")O8FYE +M>VE?,"LQ+&I?,"TQ?2DI7')I9VAT72M<:6TH7'!H +M:5Y[:5\P+&I?,"TQ?2D*7%T@"F%N9"!A($=R7")O8FYEV5N=6UEV%L9WT*"DYO=&4@=&AA="`D +M*$1?;EQC9&]T($UQX:5Y[:5\P +M+&I?,'U]>UQL;VYG7-T>6QE7&EM*%QP:&E>>VE?,"LQ+&I?,"TQ?2E]7')I9VAT*7T*('M< +M>&E>>VE?,"TQ+&I?,'U<;&5F="@*("`@("`@7&9R86-[7&1IUQD:7-P;&%Y +M +M>VE?,'U?7&TH2%Y[:E\P?5])*%)?;BDI+@I<70I4:&4@96QE;65N=',@;V8@ +M)$>VE?,'U?7&T**$A>>VI? +M,'U?22A27VXI*20@86YD(`IT:&4@96QE;65N=',@;V8@)$=?,"0@9V5N97)A +M=&4@=&AE(&5X=')A(')E;&%T:6]N6=I97,N +M"@I4:&4@86QG;W)I=&AM(&-A;B!O9B!C;W5R2!G2!R97!L +M86-I;F<*=&AE(&=E;F5R871O%]N)"!F;W(@)%QM +M)"!B>2!T:&]S92!F;W(@)$HD+B!-;W)E;W9E&5S+@H* +M06=A:6X@=V4@=V]U;&0@;&EK92!T;R!P;VEN="!O=70@=&AA="!W:71H('1H +M92!M971H;V1S(&]F(%QC:71E>T1-.D\M5#%]"F]R(%QC:71E>T1-.D\M5"U7 +M?2!O;F4@8V]U;&0@86-T=6%L;'D@8V]M<'5T92!F:7)S="`D2%YI7TDH4E]N +M*20@86YD(&9R;VT*=&AA="`D2%YJ7THH2%YI7TDH4E]N*2DD+"!B=70@<')O +M8F%B;'D@=&AA="!I6QA8F5L>W-U8G-E8RUL86UB9&%]"D75B +M97IN:6L@<')O=F5D(&EN(%QC:71E>T1-.DPM1&UO9'T@=&AA="!I9B`D2R0@ +M:7,@82!F:65L9"P@"B12/4M;>%\Q+%QL9&]TFYI:R!P>UQL86UB9&%?>VDL;BUJ?2A!*7TD('=H97)E("1% +M7WM27VY]*$LI)"!IFYI:R!N=6UB97)S7&EN9&5X>TQY +M=6)E>FYI:R!N=6UB97)S?5U^"@I<;7EL86)E;'MA;&UQS8R!);G!U='TZ("1F7S$L7&QD;W1S+&9?UQS8R!/=71P=71].B`D7&QA;6)D85][ +M:2QN+6I]*%)?;B]27VY<8V1O="AF7S$L7&QD;W1S+&9?V%L9RUL +M8VQC?2!F:6YD("1G7S$L7&QD;W1S+&=?;%QI;B![1%]N?5YD)`IA;F0@)&A? +M,2Q<;&1O=',L:%]E7&EN('M$7VY]7F0D('-U8V@@=&AA="`D2%YI7UQM*$A> +M:E])*%)?;BDI)"!I7IY9WD@8V]M<'5T871I;VXI(`IT +M;R!F:6YD('1H92!M;VYO;6EA;"`D;20@:6X@4W1E<"`S+@I4:&4@96QE;65N +M="`D;6=?,2!<;6]D($A<:6X@1%]N+T@D(&AAU)?;GTH2RDD(&ES("`*:6YJ96-T:79E(&%N9"!S;R!T:&4@8V]K97)N +M96P@"B1$7VY<8V1O="`H9U\Q+%QL9&]T2!TUQC +M:&%R8%PE?2!,*3M<7`I<("`@("`@("`@("`@("`@(&EF(&%L;"AW+'1E;7`@ +M+3X@=&5M<"`]/2`P*2!T:&5N(&UY9FQA9R`](&9A;'-E7%P*7"`@("`@("`@ +M("`@("`@("!E;'-E("A<7`I<("`@("`@("`@("`@("`@("`@("`@<"`]('!O +M&%M<&QE+"!I +M9B!W92!W86YT('1O(&%P<&QY('1H:7,@V5X+6UI;F]R4QI;F4*;S8S(#T@1%Q<"EQE;7!T>4QI +M;F4*;S8S(#H@4&]L>6YO;6EA;%)I;F=<7`I<96YD3W5T<'5T"BAABQW720I"EQB96=I;D]U='!U=`II-C0@.B!F:6YD +M4V]C;&4H2D@S+#%?1"E<7`I<96UP='E,:6YE"F\V-"`]('@J=EQ<"EQE;7!T +M>4QI;F4*;S8T(#H@1%Q<"EQE;F1/=71P=70*3VYE(&-A;B!T:&5N(')E<&5A +M="!T:&4@2!F;W5N9"!E +M;&5M96YT"F%S('-U9V=EUQT="!*2#-](&]F('1H92!P6EE;&1S"EQB96=I;D]U='!U=`II-C<@.B!F:6YD +M3&5N9W1H($I(,UQ<"EQE;7!T>4QI;F4*;S8W(#T@,5Q<"EQE;F1/=71P=70* +M86YD(&AE;F-E('M<='0@2D@S?2!D;V5S(&EN9&5E9"!D97-CTEM<&QE;65N=&%T:6]N+"!% +M>&%M<&QETEM<&QE;65N=&%T:6]NFEN9WT*5&AE +M($%L9V]R:71H;7,@7')E9GMA;&V%L9RU$+TPM;&]C+69](`IH879E(&9I6P@86QG96)R82!A;F0@:6X*<&]L>6YO;6EA;"!R:6YG2U,?2!A;F0@7')E9GMA;&2!! +M+GY,97EK:6XL($TN?E-T:6QL;6%N(&%N9"!(+GY40II;7!L96UE;G1E9"!A('=E86QT:"!O9B`D1"0M;6]D=6QE(')O +M=71I;F5S('1H870*6QA8F5L>V5F9FEC:65N8WE] +M"D-O;7!U=&%T:6]N(&]F($=R7")O8FYE2!E>'!O;F5N=&EA;"!I;B!T:&4@;G5M8F5R(&]F('9A2D@"UM:6YO5\R720@8V]N=&%I;G,@,38*=F%R:6%B +M;&5S+B!);B!V:65W(&]F('1H97-E(&9A8W1S('1H92!F;VQL;W=I;F<@:61E +M82`*:&%S('!R;W9E9"!UVQE;2UM86QGW!R;W`M:V%S:&EW87)A?2!W97)E('-T871E9"!A;&QO=W,@ +M>RTQ?5TD(&%C8V]R9&EN9R!T;PI!;&=O7$1E;'1A*&9>>RTQ?5TD(&UA +M>2!B90IC;VUP=71E9"!UV%L9RU$+TPM +M;&]C+69](&%G86EN('-I;F-E("127VY;*&9G*5Y[+3%]75QC;VYG"E)?;EMG +M7GLM,7U=7&]T:6UE7$1E;'1A*&9>F%T:6]N2`D9B0M=&]R2!F:6YI=&4@;G5M8F5R(&]F(&9A8W1O6YO;6EA +M;',*)6]F("1F)"!A;F0@)&>RTQ?2E<=&\@1%]N+UQA +M;FXH9EY[+3)]7&-D;W0@9UY[+3%]*20@>RTQ?5T]1%]N7&%C=&EO;B@@9UY[+3)] +M*20@86YD("127VY;*&9G*5Y[+3%]73U$7VY<86-T:6]N*"!F7GLM,7UG7GLM +M,GTI)"X@*$EN"B5F86-T+"!T:&4@9&5G>RTQ?20@:7,@;F]T(&$*)6=E;F5R871O,B0N(`HE"B54:&4@ +M='=O(&5X86UP;&5S(&EN9&EC871E(&AO=R!T;R!W'!L:6-I="!U&%M<&QE(%QR +M969[97@M;6EN;W)S?2P@=&AI7T*7&QA8F5L>V5Q+6EN97%]"F%> +M3%]F/5QM:6Y<>W-<:6Y<6CIB7V9>3"AS*3TP7'U<;&4@7&UI;EQ[7T*5&AI +M,BMX7S)>,BMX7S->,BMX7S1>,BMX7S5>,B0N($]N92!M +M87D@8VAE8VL@=&AA="!T:&5N"B1B7EQ$96QT85]F*',I/2AS*S$I*',K-2\R +M*20N($AE;F-E("127S5;9EY[+3%]73U$7S5<86-T:6]N(&9>>RTQ?20L(&QE +M=`HD3#U<:V5R*$1?-5QT;R!$7S5<86-T:6]N(&9>>RTQ?2DD+B!3970@)&<] +M>%\Q)"X@5&AE;@HD8EY<1&5L=&%?9RAS*3US*S$D+"!L970@)$PG/5QK97(H +M1%\U7'1O($1?-5QA8W1I;VX@9UY[+3%]*20N"@I4:&5N"B1B7GM,)WU?9BAS +M*3TH6UB;VP@ +M1'@[7%P*7&5N9$]U='!U=`I4:&5S92!T=V\@8V]M;6%N9',@97-S96YT:6%L +M;'D@8VQE87(@=&AE(&AI2AT;TQI%]I(#T^($1X7VDI73M< +M7`I<96YD3W5T<'5T"EQB96=I;D]U='!U=`II-S$@.B!F(#T@>%\Q7C(@*R!X +M7S)>,B`K('A?,UXR("L@>%\T7C(@*WA?-5XR.UQ<"EQE;F1/=71P=70*7&)E +M9VEN3W5T<'5T"FDW,B`Z(&<@/2!X7S$[7%P*7&5N9$]U='!U=`I<8F5G:6Y/ +M=71P=70*:3,2]I9&5A;"A$>%\Q+$1X7S(L1'A?,RQ$>%\T +M+$1X7S4I.UQ<"EQE;F1/=71P=70*07,@=7-U86PL('1H97-E(&-O;6UA;F1S +M(&1E9FEN960@=&AE(&)AF5!;&PH4F8N3&]C36]D=6QE+&F5!;&PH4BQG+%-T4QI;F4*7"`@ +M("`@("`@("`@("`@("`@("`@("`@("`@("`U7%P*;S@Q(#T@*%PD%]I*5T*)6DR,2`Z(&8@/2!X7S%>,B`K +M('A?,EXR("L@>%\S7C(@*R!X7S1>,B`K>%\U7C(*)6DR,B`Z(&<@/2!X7S$* +M)6DR,R`Z(%(@/2!$7C$O:61E86PH1'A?,2Q$>%\R+$1X7S,L1'A?-"Q$>%\U +M*0HE:3(T(#H@33$@/41L;V-A;&EZ94%L;"A2+&8L4W1R871E9WD@/3X@3V%K +M=2D*)6DR-2`Z($TQ,B`]($1L;V-A;&EZ94%L;"A-,2Y,;V--;V1U;&4L9RQ3 +M=')A=&5G>2`]/B!/86MU*0HE:3(V(#H@33(@/2!$;&]C86QI>F5!;&PH4BQG +M+%-TF5!;&PH +M33(N3&]C36]D=6QE+&8L4W1R871E9WD@/3X@3V%K=2D*)5QE;F1[=F5R8F%T +M:6U]"E1H92!O=71P=70@>RTQ?5TD(&ES +M(&=E;F5R871E9"!B>2`D9EY[+3)]9UY[+3%])"!OUQT +M="!"9GT@:7,@)"TQ)"!A;F0@=&AA="!O9@I[7'1T($)F9WT@:7,@)"TS)"P@ +M)%)?,UMF7GLM,7U=)"!I>RTQ?20@86YD"B12 +M7S-;*&9G*5Y[+3%]720@8GD@)&9>>RTQ?6=>>RTS?20N"E1H:7,@97AA;7!L +M92!N;W0@;VYL>2!D:7-P2!A9'9A;G1A9V5O=7,L(&%P +M<&%R96YT;'D@9F]R('1W;R!R96%S;VYS+B!&;W(@"F]N92P@:70@86QL;W=S +M('1H92!E>'!O;F5N=',@;V8@=&AE('9A"UM:6YO>RTQ?5TD(&%S("1$ +M7S9<86-T:6]N(`HH9EY[+3%](&=>>RTR?2DD(&EN2!E>'!O;F5N=&EA;"!I=`IS965MF%T:6]N(&%T(&$*<')O +M9'5C="D@:6YT;R!S979E2"UM:6YO>RTQ?5TD(&%S("0H*%)?;EMF7GLM +M,7U=*5MG7GLM,7U=*5MH7GLM,7U=)"P@"G1H92!C86QC=6QA=&EO;B!U&EM871E;'D@-DU"(&%N9"!L87-TT1-.DPM1FUO9'TL"DFYI:R!G879E(&%N"F%L +M9V]R:71H;2!F;W(@9&5C:61I;F<@=VAE=&AE%\Q+%QL9&]T +M6QA8F5L>W-I;F=U;&%R+7-P86-E +M:5])*$$I)"!F;W(@86QL("1I7&EN(%Q.)"!A;G-W97)S(&]F(&-O=7)S92!T +M:&4*<75E2P@:68@)$HD('-T86YD>VDM8WU?>TE]*%(I +M/5QH;VU?02A2+$A>:5])*$$I*20@9F]R(&%L;"`D:5QI;EQ.)"X*07,@)$A> +M:5])*$$I)"!IVE<:6X*7$XZ2%Y[:2UC?5])*%(I7&YO="`],%Q])"X@"@I) +M9B!H;W=E=F5R("17/5QS<&5C*%(I)"!IT1E(%)H86T@0V]H;VUO;&]G>7T@26X@7&-I=&5[1$TZ3RU4,2Q$33I7 +M,GT@86QG;W)I=&AM2!O +M9B!C;VUP;&5M96YT7!E&%M<&QE?0I,970@)&8]>%XS*WE>,RMZ7C,D(&EN("127S,D+B!/;F4@ +M8V%N(&-O;7!U=&4@=VET:"!<371W;PIT:&4@9&4@4FAA;2!C;VAO;6]L;V=Y +M(&]F('1H92!C;VUP;&5M96YT(&]F("1<=F%R*&8I)"P@86YD(`II="!T=7)N +M2!I;B!D96=R965S(#`@86YD(#$@ +M:7,@,2UD:6UE;G-I;VYA;"P@:6X@9&5G%XS*WE>,RMZ7C,[7%P*7&5N9$]U='!U=`I< +M8F5G:6Y/=71P=70*:3@U(#H@2#UD95)H86U!;&PH9BD[7%P*7&5N9$]U='!U +M=`HE7&)E9VEN>W9E2QZ70HE:3(Y +M(#L@9CUX7C,K>5XS*WI>,PHE:3,P(#H@9&52:&%M06QL*&8I"B5<96YD>W9E +MF5-87!]+"`*>UQT +M="!64F5S;VQU=&EO;GTL(`I[7'1T(%1R86YS9F5R0WEC;&5S?2P@"GM<='0@ +M4')E0WEC;&5S?2P@"GM<='0@3VUE9V%297-](&%N9"`*>UQT="!#;VAO;6]L +M;V=Y1W)O=7!S?2X@1F]R(&5X86UP;&4L"G=E(&AA=F4*7&)E9VEN3W5T<'5T +M"FDX-B`Z($@N0V]H;VUO;&]G>4=R;W5P4QI;F4*7"`@("`@ +M("`@("`@("`@("`@("`@("`@,5Q<"F\X-B`]($AA4QI +M;F4*;S@V(#H@2&%S:%1A8FQE7%P*7&5N9$]U='!U=`IS:&]W:6YG('1H870@ +M=&AE(&1I;65N'1R86-T"FEN9F]R;6%T:6]N(&]N('1H92!G96YE2!C;&%S%\Q7C8K,EPD>%\Q7C-<)'A?,EXS +M*UPD>%\R7C8K,EPD>%\Q7C-<)'A?,UXS*S)<)'A?,EXS7"1X7S->,RM<)'A? +M,UXV('Q<7`I<96UP='E,:6YE"F\X-R`Z($UA=')I>%Q<"EQE;F1/=71P=70* +M=VAI8V@@<')O=F5S('1H870@=&AE(&=E;F5R871OS`@/3X@?"`M,2\Q,EPD>%\Q7C1<)'A?,EXS7"1$7S$M,2\S +M7"1X7S%<)'A?,EXV7"1$7S$M,2\Q,EPD>%\@)%QC9&]T7&-D;W1<8V1O="1< +M7`I<("`@("`@("`@("`@("`@(#$@/3X@?"`R+S-<)'A?,5XU*S(O,UPD>%\Q +M7C)<)'A?,EXS*S(O,UPD>%\Q7C)<)'A?,UXS("!\7%P*7"`@("`@("`@("`@ +M("`@("`@("`@('P@+3(O,UPD>%\Q7C-<)'A?,EXR+3(O,UPD>%\R7C4M,B\S +M7"1X7S)>,EPD>%\S7C,@?%Q<"EP@("`@("`@("`@("`@("`@("`@("!\(#(O +M,UPD>%\Q7C-<)'A?,UXR*S(O,UPD>%\R7C-<)'A?,UXR*S(O,UPD>%\S7C4@ +M('Q<7`I<("`@("`@("`@("`@("`@(#(@/3X@?"`T.%PD>%\Q7"1X7S)<)'A? +M,UXR(#8P,%PD>%\S7C0@("`@('Q<7`I<("`@("`@("`@("`@("`@("`@("`@ +M?"`T.%PD>%\Q7"1X7S)>,EPD>%\S(#8P,%PD>%\R7"1X7S->,R!\7%P*7"`@ +M("`@("`@("`@("`@("`@("`@('P@-#A<)'A?,5XR7"1X7S)<)'A?,R`V,#!< +M)'A?,5PD>%\S7C,@?%Q<"EP@("`@("`@("`@("`@("`@,R`]/B!\("U<)'A? +M,5PD>%\R7"1X7S,@+5PD>%\S7C,@?%Q<"EQE;7!T>4QI;F4*;S@X(#H@2&%S +M:%1A8FQE7%P*7&5N9$]U='!U=`I3;RP@9F]R(&5X86UP;&4L('1H92!L969T +M(&-O;'5M;B!O9B!T:&4@=&AR964@,E][>UQR;2!D4GU]*%Q#7C-<WAY>B@T.'ID>&1Y*S0X>61Z9'@K-#AX9'ED +M>BE]*2][9EXR?20N(`I)9B!W92!A<'!L>2!T:&4@86)O=F4@96QE;65N=',@ +M;V8@)$1?,R0@=&\@)&9>>RTR?20@86YD(&5Q=6EP('1H90IR97-U;'1S('=I +M=&@@87!PV9I9W5R97T*7%L*7&1E9EQS<",Q>UQV +M8V5N=&5R>UQVV%R'1[1W)O=7!])EQT97AT +M>T1I;65N'1[1V5N97)A=&]R,%][>UQR;2!D4GU])C$F7'-P>V4Z/5QFUQD:7-P;&%Y7-T>6QE(&9>,GU]7%P*7&AL:6YE"DA>,5][>UQR;2!D +M4GU])C$F7'-P>V\Z/5QFUQD:7-P;&%Y,F1X+7E>,F1Y +M*WI>,F1Z*69]>UQD:7-P;&%Y7-T>6QE('AY>BAZ +M9'AD>2MY9'ID>"MX9'ED>BE]>UQD:7-P;&%YUQD:7-P;&%Y&1Y*WED +M>F1X*WAD>61Z*7I>,WU[7&1IWM<UQD:7-P;&%Y'EZ9'AD>61Z?7M<9&ES<&QA>7-T>6QE(&9>,GU]7%P*("`@("`@("`F("9< +M7-T>6QE('I>,V1X9'ED>GU[7&1I2P@=&AE(&-U<"!P&%M<&QE?0I&;W(@;6]R92!I;G9O;'9E9"!E>&%M +M<&QET1-.E>RUA?20@9V5N97)A=&5S("127VY;9EY[+3%]720@;W9E<@HD1%]N +M)"P@=&AE;B!I="!I2!C;&%S&%M<&QE(&ES +M(&=I=F5N(&)Y"B1F/2AX7C,K>5XS*WAY*7AY)"P@=VAE,5][>UQR +M;2!D4GU]*%4[7$,I)"!H87,@82!C;&%SW)E;6%R:WT*"EQS=6)S=6)S96-T:6]N>TAO;2!A;F0@17AT?0I);B!<8VET +M97M$33I/+50M5"Q$33I4'!L +M86EN960@=&AA="!C;VUP=71E(&AO;6]M;W)P:&ES;7,*8F5T=V5E;B!H;VQO +M;F]M:6,@7-T96T* +M)%Q[4%\Q+%QL9&]TT1?;GTH1%]N+TDL4E]N*20@=VAEV5X86UP;&5]"D-O +M;G-I9&5R('1H92!'2UH@`HD*#$L,BE<:6X@7%I>>S%<=&EM97,@,GTD(&%N +M9"!T:&4@<&%R86UE=&5R('9E8W1O,20N(`I.86UE9"!A +M9G1E<@I'96QF86YD+4MA<')A;F]V+5IE;&5V:6YS:VD@7&-I=&5[1$TZ1TM: +M?2P@=&AI7-T96T@;V8*9&EF9F5R96YT +M:6%L(&5Q=6%T:6]NV5Q;F%R5QD +M96Q?>2E<86-T:6]N(&8F/28U9BQ<7`HH7&1E;%]X7C(M7&1E;%]Y*5QA8W1I +M;VX@9B8])C`N"EQE;F1[97%N87)R87DJ?0I7:71H(%Q-='=O(&]N92!C86X@ +MS$L,EQ]7'TL(%Q[-5Q] +M*5Q<"EQE;7!T>4QI;F4*7"`@("`@("`@("`@("`@,EQ<"F\X.2`](&ED96%L +M("A$("`M($0@+"!X($0@("L@,G@@1"`@+2`U*5Q<"EP@("`@("`@("`@("`@ +M(#$@("`@,B`@(#$@,2`@("`@,B`R7%P*7&5M<'1Y3&EN90IO.#D@.B!)9&5A +M;"!O9B!142!;>"`L('@@+"!$("P@1"`L(%=E>6Q!;&=E8G)A(#T^(%Q[>"`@ +M/3X@1"`L('@@(#T^($0@7'U=7%P*7"`@("`@("`@("`@("`@("`@("`@,2`@ +M(#(@("`Q("`@,B`@("`@("`@("`@("`@("`@("`Q("`@("`Q("`@,B`@("`@ +M,EQ<"EQE;F1/=71P=70*5&AI0I<8F5G:6Y/=71P=70*:3DP(#H@4&]L>5-O;',@ +M25Q<"EQE;7!T>4QI;F4*7"`@("`@("`@-2`@("`@(#,@("`@("`@("`@,EQ< +M"F\Y,"`](%Q[>"`@*R`R,'@@>"`@*R`V,'@@>"!2!O +M;F4@<&]L>6YO;6EA;"!S;VQU=&EO;B!T;R!T:&4@9VEV96X*1TM:+7-Y'E>,BX*7%T*7&5N9'ME +M>&%M<&QE?0I4:&4@86QG;W)I=&AM(&9O75B97IN:6L@<&]I +M;G1E9"!O=70@:6X@7&-I=&5[1$TZ3"U"<&]L>7T@=&AE(&9O;&QO=VEN9R!C +M=7)I;W5S"F9A8W0N(`I<8F5G:6Y[=&AE;W)E;7T*3&5T("10*&XL9#M+*20@ +M9&5N;W1E('1H92!S970@;V8@<&]L>6YO;6EA;',@;V8@9&5GF5R;RX@3&5T"B1"*&XL9#M+*20@ +M9&5N;W1E('1H92!S970@(&]F($)ET1-.DQE>7T@=&AA="!T:&ES +M(&1E8V]M<&]S:71I;VX@:7,@:6YD97!E;F1E;G0*;V8@)$LD(&%N9"!C;VUP +M=71A8FQE"FEN('1H92!S96YS92!T:&%T(&UE;6)E2!C;VUP=71A8FQE('!O;'EN +M;VUI86QS(&]V97(@)%Q1)"!I;B!T:&4*8V]E9F9I8VEE;G1S(&]F('1H92!G +M:79E;B!P;VQY;F]M:6%L(&EN("10*&XL9#M+*20N($EN('!A2!F +M;W)MV9]*',I/3$D"FEF9B`D9EQI +M;B!67WLQ?3U67WLQ?2=<S`L,7TL85][,"PR?2QA7WLQ+#!]+&%?>S(L,'TI +M("0L('=H:6QE"B167WLQ?2S)])RS-])RS-])R<]5EQL969T*"!<9V%M;6$@7WLS +M?2Q<9V%M;6$@7WLT?2Q<9V%M;6$@7WLU?2Q<9V%M;6$@7WLV?2Q<9V%M;6$@ +M7WLW?2Q<9V%M;6$@7WLX?5QR:6=H="D@("0L"EQI=&5M("0@8E][9GTH>S)]("0*:69F("0@9EQI;B!67WLT?2=<S1])SU6*%QG86UM82!?>S%]*2`D+"`*)"!67WLT +M?2S%]>S)]*2`D"FEF9B`D(&9<:6X@5E][-7TG7'-E=&UI;G5S(%9?>S5])R<@ +M)"P*=VAES$L,7TL85][,"PQ +M?2QA7WLP+#)]+&%?>S$L,'TL85][,BPP?2D@)"X*7&5N9'MI=&5M:7IE?0I( +M97)E('=E(&AA=F4@=7-E9"!T:&4@86)BS%]/0IA7WLP+#)]85][,2PP?5Y[,GTM +M85][,"PQ?6%?>S$L,'UA7WLQ+#%]*V%?>S`L,'UA7WLQ+#%]7GLR?2L@"F%? +M>S`L,7U>>S)]85][,BPP?2TT85][,"PP?6%?>S`L,GUA7WLR+#!])"P@"EQI +M=&5M)"!<9V%M;6$@7WLR?3TR85][,"PR?6%?>S$L,'TM85][,"PQ?6%?>S$L +M,7T@)"P*"EQI=&5M("0@7&=A;6UA(%][,WT]85][,2PP?6%?>S$L,7TM,F%? +M>S`L,7UA7WLR+#!]("0L(`H*7&ET96T@)"!<9V%M;6$@7WLT?3UA7WLQ+#%] +M7GLR?2TT85][,"PR?6%?>S(L,'T@)"P*"EQI=&5M("0@7&=A;6UA(%][-7T] +M,F%?>S`L,GUA7WLQ+#!]+6%?>S`L,7UA7WLQ+#%]("0L"@I<:71E;2`D(%QG +M86UM82!?>S9]/6%?>S`L,7U>>S)]+31A7WLP+#!]85][,"PR?2`D+`H*7&ET +M96T@)"!<9V%M;6$@7WLW?3UA7WLP+#%]85][,2PP?2TR85][,"PP?6%?>S$L +M,7T@)"P@"@I<:71E;2`D(%QG86UM82!?>SA]/6%?>S$L,'U>>S)]+31A7WLP +M+#!]85][,BPP?2`D+@I<96YD>VET96UI>F5]"E-I;6EL87)L>2P@3&5Y:VEN +M('-H;W=S('1H870@=&AE2I]"D(H,BPS*28])EQL969T7'M<+`H@*',K,2E>>S)]*',K7&9R86-[,GU[ +M,WTI*',K7&9R86-[-'U[,WTI+%PL7"Q<+"AS*S$I7GLR?2AS*UQFS%] +M>S)]*2Q<+%PL7"PHS%]>S)]*2Q<7`H@ +M)B`@)EQP:&%N=&]M>WA]7&QE9G0N*',K,2DH>S)]*',K7&9R86-[,WU[-'TI*',K +M7&9R86-[-7U[-'TI7')I9VAT7'TN"EQE;F1[97%N87)R87DJ?0I<96YD>V5X +M86UP;&5]"DET('=O=6QD(&)E('9E2!G2!O +M9B!T:&4@9&4@4FAA;2!C;VAO;6]L;V=Y"F=R;W5P;E]<0UQS +M971M:6YU0HD:%Y[<"QQ?3U<9&EM +M($A><"A9+%Q/;65G85YQ*20L('=H97)E("1<3VUE9V%><20@9&5N;W1E<"A9+%Q/;65G85YQ +M*5Q2:6=H=&%R>W`K<7U?>WM<<2DD(&ES(&5I=&AE&%M<&QE('-H;W=N(&EN(%QC:71E>T1-.E9A2!A;F0*=&]P;VQO9WDN($1E6YO;6EA;"!I;B!C97)T86EN(&QO9V%R:71H;6EC(&9U +M;F-T:6]NUQE;2!S;VUE +M?2!W96EG:'0N"@H*"D%L9V]R:71H;6EC("1$)"UM;V1U;&4@=&AE;W)Y('!R +M;VUI2!R:6YG"B4D1%(H9BDD(&EN("107V@H;BQD.TLI)#H*)5QB96=I;GMI +M=&5M:7IE?0HE7&ET96T@)$12*&8I/4M<;W!L=7,@2UQC9&]T(&4D('=I=&@@ +M)&5>,CTP)"!I9F8@)#1A7WLR+#!]85][,#)]/6%?>S$L,7U>,B0L"B5<:71E +M;2`D1%(H9BD]2UQO<&QU,CUE7S)>,CUE7S%E7S(],"0@:69F("0T85][,C!]85][ +M,"PR?5QN;W0@/6%?>S$L,7U>,B0N"B5<96YD>VET96UI>F5]"B5<96YD>V5X +M86UP;&5]"@H*)2!,;V-A;"!687)I86)L97,Z"B4@;6]D93H@;&%T97@*)2!M +M;V1E.B!R969T97@*)2!T97@M;6%I;BUF:6QE.B`B8VAA<'1E"(*)2!R969T97@M:V5E<"UT96UP;W)A"UUT1-.D%+?0I!+DT%]7'-B(&XD+6UO +M9'5L92XN"EQN97=B;&]C:R![7&5M($HN7"!0=7)E($%P<&PN7"!!;&=E8G)A +M?2P@,34P*#$I.C(W+2TS.2P@,C`P,"X*"EQB:6)I=&5M>T1-.D)ET1-.D)]"DHN+44N($)J7")OUQC(&-];VXL($TN +M7"!'T)]97)N3H@86X@86QG96)R86EC(&EN=')O9'5C=&EO;B!W:71H +M(&=E;VUE=')I8PH@(&%P<&QI8V%T:6]N0H@(%!R97-S+"`Q.3DX+@H*7&)I8FET96U[1$TZ +M0V]U=&EN:&]]"E,N0RY<($-O=71I;FAO.@I<;F5W8FQO8VL@>UQE;2!!('!R +M:6UET1-.D=+6GT*22Y<($=E;&9A;F0L($TN7"!+87!R86YO=BP@86YD($$N7"!: +M96QE=FENUQE;2!$:7-C2!<)B!!<'!L:6-A=&EO;G,N +M($)IT1-.D=R:2U(87)]"E`N7"!'T1-.FQC+6YO=&5S?0I2+EP@2&%R='-H;W)N93H*7&YE=V)L;V-K('M<96T@ +M3&]C86P@0V]H;VUO;&]G>2X@02!S96UI;F%R(&=I=F5N(&)Y($$N>WT@1W)O +M=&AE;F1I96-K?2P*("!V;VQU;65^-#$@;V8@>UQE;2!,96-T=7)E($YO=&5S +M(&EN($UA=&AE;6%T:6-S?2X*7&YE=V)L;V-K(%-PT1-.D-$059]"E(N?DAAT1]:6UE;G-I;VX@;V8@>T%];&=E8G)A +M:6,@>U9]87)I971I97,N"EQN97=B;&]C:R![7&5M($%N;BY^36%T:"Y]+"`X +M.#HT,#,M+30U,"P@,3DV."X*"EQB:6)I=&5M>T1-.D@M4W!]"E(N?DAAT1]92![4GUH86T@8V]H;VUO;&]G>2!O9B!A;&=E8G)A:6,@ +M=F%R:65T:65S+@I<;F5W8FQO8VL@>UQE;2!);G-T+B!(875T97,@7"=%='5D +M97,@4V-I+B!0=6)L+B!-871H+GTL(#0U.C4M+3DY+"`Q.3UQE;2!297,N7"!.;W1ET1-.DAU+4Q]"D,N +M?DAU;F5K92!A;F0@1RY^3'EU8F5Z;FEK.@I<;F5W8FQO8VL@3VX@=&AE('9A +M;FES:&EN9R!O9B!L;V-A;"!C;VAO;6]L;V=Y(&UO9'5L97,N"EQN97=B;&]C +M:R![7&5M($EN=F5N="Y^36%T:"Y]+"`Q,#(Z-S,M+3DS+"`Q.3DP+@H*7&)I +M8FET96U[1$TZ2WT*32Y^2V%S:&EW87)A.@I<;F5W8FQO8VL@)'M"?20M9G5N +M8W1I;VYS(&%N9"!H;VQO;F]M:6,@T)])"UF=6YC=&EO;G,N+@I<;F5W8FQO8VL@>UQE;2!);G9E;G0N?DUA +M=&@N?2P@,S@Z,S,M+34S+"`Q.3T1-.DMO;&QA6YO +M;6EA;',N"EQN97=B;&]C:R![7&5M('MM871H+D%'+S`P,#,Q-35]7&9O;W1N +M;W1E>R!4:&4@=V5B<&%G92![:'1T<#HO+WAX>"YL86YL+F=O=B]]"B`@:7,@ +M82!P86=E(&1ET1-.DTR1'T*02Y^3&5Y:VEN +M+"!-+EP@4W1I;&QM86XL(&%N9"!(+GY4WM<6MI;B]]+@H*7&)I8FET96U[3&]EUQC>V-]?6]I +M;VUET1- +M.DPM1&UO9'T*1RY^3'EU8F5Z;FEK.@I<;F5W8FQO8VL@1FEN:71E;F5STQ];V-A;"![0WUO:&]M;VQO9WD@>TU];V1U;&5S +M.B!A;@H@('M!?7!P;&EC871I;VX@;V8@)'M$?20M;6]D=6QEFYI:SH*7&YE=V)L;V-K("1[1GTD+6UO9'5L97,Z(&%P<&QI +M8V%T:6]NT1])"UM;V1U;&5S +M(&EN"B`@8VAA7T*1RY^3'EU8F5Z;FEK.@I<;F5W8FQO8VL@3VX@>T)]97)NU-] +M871O('!O;'EN;VUI86QS+@I<;F5W8FQO8VL@>UQE;2!02P@:6XZ('M%?2Y<('M4?6]UT1]:69F97)E;G1I86P@>T5]<75A=&EO;G,N"EQN97=B +M;&]C:R![7&5M($QO;F1O;B!-871H+B!3;V,N($QE8W1U6Y<7F]M92!D92![0GUEUQE;2!, +M96-T=7)E($YO=&5S(&EN($UA=&AE;6%T:6-S+"!3<')I;F=ET1?6'TD+6UO9'5L97,@8V]H7"=ET)])"UF=6YC=&EO;G,N"EQN97=B;&]C:R![7&5M($1U +M:V4@36%T:"Y^2F]UT%];&=OV)])"UF=6YC=&EO;G,L(')EUQE;2!*+EP@4'5R92!!<'!L+EP@06QG96)R87TL(#$Q +M-RTQ,3@Z-#DU+2TU,3@L(#$Y.32!G2!V:6$@)'M$?20M;6]D=6QE +M(&-O;7!U=&%T:6]N+@I<;F5W8FQO8VL@>UQE;2!*+EP@4'5R92!!<'!L+EP@ +M06QG96)R87TL(#$S.3HR,#$M+3(S,RP@,3DY.2X*"EQB:6)I=&5M>T1-.D\M +M5#%]"E0N7"!/86MU(&%N9"!.+EP@5&%K87EA;6$Z"EQN97=B;&]C:R!!;&=O +MT1])"UM;V1U;&5S("TM(')EUQE;2!*;W5R;F%L(&]F(%!U6%M82P@86YD($@N7"!46YO;6EA;"!A +M;F0@7-T96US+@I< +M;F5W8FQO8VL@>UQE;2![;6%T:"Y!1R\P,#`Q,#8T?7TL(#$Y.3DN"@I<8FEB +M:71E;7M$33I/+50M5WT*5"Y<($]A:W4L($XN7"!486MA>6%M82P@86YD(%4N +M7"!786QT:&5R.@I<;F5W8FQO8VL@02!L;V-A;&EZ871I;VX@86QG;W)I=&AM +M(&9O2`R,#`P+@H*7&)I8FET96U[ +M1$TZ3V=]"D$N?D]G=7,Z"EQN97=B;&]C:R!,;V-A;"!C;VAO;6]L;V=I8V%L +M(&1I;65NUQE;2!!;FXN?DUA=&@N("@R*7TL(#DX.C,R-RTM,S8U+"`Q.3G!IT1-.E-35'T*32Y^4V%I=&\L('M"+EP@4W1UUQE;2!'WMW=WTM]>T%]>TY]?7TN"EQN97=B;&]C:R![7&5M(%9E +MT1-.E1S,'T*2"Y<(%1S +M86DZ"EQN97=B;&]C:R!!;&=O2!O9B!#86QI +M9F]R;FEA(&%T($)ET1-.E0M5WT* +M2"Y<(%1S86D@86YD(%4N7"!786QT:&5R.@I<;F5W8FQO8VL@0V]M<'5T:6YG +M(&AO;6]M;W)P:&ES;7,@8F5T=V5E;B!H;VQO;F]M:6,@)'M$?20M;6]D=6QE +MVUA=&@N4D$O,#`P-S$S.7U]+"`R,#`P+@H* +M7&)I8FET96U[1$TZ5F%R8VAE;FMO?0I!+EP@5F%R8VAE;FMO.@I<;F5W8FQO +M8VL@07-Y;7!T;W1I8R![2'UO9&=E('-TT-];VUP +M=71A=&EO;B!O9B![3'UO8V%L('M#?6]H;VUO;&]G>2![37UO9'5L97,@86YD +M('1H90H@('M,?6]C86P@>T-];VAO;6]L;V=I8V%L('M$?6EM96YS:6]N(&]F +M('M!?6QG96)R86EC('M6?6%R:65T:65S+@I<;F5W8FQO8VL@>UQE;2!*+EP@ +M4'5R92!!<'!L+EP@06QG96)R87TL(#$S.3HS,#,M+3,R,2P@,3DY.2X*"EQB +M:6)I=&5M>T1-.EU)]:&%M('M#?6]H;VUO;&]G>2!O +M9B![0WUO;7!L96UE;G1S"B`@;V8@>T-];VUP;&5X('M!?69F:6YE('M6?6%R +M:65T:65S+@I<;F5W8FQO8VL@>UQE;2!*+EP@4WEM8BY<($-O;7`N?2P@,CDH +M-"\U*3HW.34M+3@S.2P@36%Y(#(P,#`N"@I<8FEB:71E;7M$33I7-7T*52Y< +M(%=A;'1H97(Z"EQN97=B;&]C:R!(;VUO=&]P>2![5'UY<&4L('M3?71R871I +M9FEC871I;VYS(&%N9"![1WUR7")O8FYET-];VAO;6]L;V=Y('=I=&@@>U)]871I;VYA;"![ +M0WUO969F:6-I96YTU9]87)I971I97,N"EQN97=B +M;&]C:R![7&5M($-O;G1E;7`N7"!-871H+GTL('1O(&%P<&5AT1-.EU-]=')U8W1UT-] +M;VUP;&5X"B`@>T%]9F9I;F4@>U9]87)I971I97,N"EQN97=B;&]C:R![7&5M +M($HN7"!0=7)E($%P<&PN7"!!;&=E8G)A?2P@=&\@87!P96%R+@H*7&)I8FET +M96U[1$TZ5RUL86UB9&%]"E4N7"!786QT:&5R.@I<;F5W8FQO8VL@3VX@=&AE +M('M,?7EU8F5Z;FEK(&YU;6)EUQE;2!0W1H96)I8FQI;V=R87!H>7T*7&5GW1O8WU[7'!R;W1E8W1<=G-K:7`@.'!T('T*("!<861D8V]N +M=&5N='-L:6YE>W1O8WU[=&ET;&5]>TEN9&5X?0H@(%QM87)K8F]T:'M);F1E +M>'U[26YD97A]"B`@7')E;F5W8V]M;6%N9'M<:6YD97AN86UE?7M);F1E>'T* +M("!<=&AR965C;VQI;F1E>`H@(%QPV1O8W5M96YT +"?0I< +` +end +SHAR_EOF + (set 20 01 05 25 13 55 08 'book.tex'; eval "$shar_touch") && + chmod 0644 'book.tex' || + $echo 'restore of' 'book.tex' 'failed' + if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ + && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then + md5sum -c << SHAR_EOF >/dev/null 2>&1 \ + || $echo 'book.tex:' 'MD5 check failed' +1fea08e2f7970bcb7b41c3e35a81fcc9 book.tex +SHAR_EOF + else + shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'book.tex'`" + test 915932 -eq "$shar_count" || + $echo 'book.tex:' 'original size' '915932,' 'current size' "$shar_count!" + fi +fi +# ============= book.toc ============== +if test -f 'book.toc' && test "$first_param" != -c; then + $echo 'x -' SKIPPING 'book.toc' '(file already exists)' +else + $echo 'x -' extracting 'book.toc' '(text)' + sed 's/^X//' << 'SHAR_EOF' > 'book.toc' && +\contentsline {section}{Preface}{v} +\contentsline {section}{List of Contributors}{xv} +\contentsline {part}{Part I\hspace {1em}Introducing {\textsl {Macaulay\nobreakspace {}2}}\xispace }{1} +\contentsline {title}{Ideals, Varieties and {\textsl {Macaulay\nobreakspace {}2}}\xispace }{3} +\processAuthors {Bernd Sturmfels\unskip {}} +\contentsline {section}{\numberline {1} A Curve in Affine Three-Space}{3} +\contentsline {section}{\numberline {2} Intersecting Our Curve With a Surface}{4} +\contentsline {section}{\numberline {3} Changing the Ambient Polynomial Ring}{6} +\contentsline {section}{\numberline {4} Monomials Under the Staircase}{8} +\contentsline {section}{\numberline {5} Pennies, Nickels, Dimes and Quarters}{12} +\contentsline {section}{References}{15} +\contentsline {title}{Projective Geometry and Homological Algebra}{17} +\processAuthors {David Eisenbud\unskip {}} +\contentsline {section}{\numberline {1} The Twisted Cubic}{18} +\contentsline {section}{\numberline {2} The Cotangent Bundle of ${\@mathbb P}^3$}{20} +\contentsline {section}{\numberline {3} The Cotangent Bundle of a Projective Variety}{24} +\contentsline {section}{\numberline {4} Intersections by Serre's Method}{26} +\contentsline {section}{\numberline {5} A Mystery Variety in ${\@mathbb P}^3$}{28} +\contentsline {section}{Appendix A. How the ``Mystery Variety'' was Made}{37} +\contentsline {section}{References}{40} +\contentsline {title}{Data Types, Functions, and Programming}{41} +\processAuthors {Daniel R. Grayson\unskip {} \and Michael E. Stillman\unskip {}} +\contentsline {section}{\numberline {1} Basic Data Types}{41} +\contentsline {section}{\numberline {2} Control Structures}{44} +\contentsline {section}{\numberline {3} Input and Output}{46} +\contentsline {section}{\numberline {4} Hash Tables}{48} +\contentsline {section}{\numberline {5} Methods}{52} +\contentsline {section}{\numberline {6} Pointers to the Source Code}{53} +\contentsline {section}{References}{53} +\contentsline {title}{Teaching the Geometry of Schemes}{55} +\processAuthors {Gregory G.\nobreakspace {}Smith \and Bernd Sturmfels} +\contentsline {section}{\numberline {1} Distinguished Open Sets}{55} +\contentsline {section}{\numberline {2} Irreducibility}{56} +\contentsline {section}{\numberline {3} Singular Points}{58} +\contentsline {section}{\numberline {4} Fields of Definition}{60} +\contentsline {section}{\numberline {5} Multiplicity}{61} +\contentsline {section}{\numberline {6} Flat Families}{62} +\contentsline {section}{\numberline {7} B\'{e}zout's Theorem}{63} +\contentsline {section}{\numberline {8} Constructing Blow-ups}{64} +\contentsline {section}{\numberline {9} A Classic Blow-up}{65} +\contentsline {section}{\numberline {10} Fano Schemes}{68} +\contentsline {section}{References}{70} +\contentsline {part}{Part II\hspace {1em}Mathematical Computations}{71} +\contentsline {title}{Monomial Ideals}{73} +\processAuthors {Serkan Ho\c {s}ten \and Gregory G.\nobreakspace {}Smith } +\contentsline {section}{\numberline {1} The Basics of Monomial Ideals}{74} +\contentsline {section}{\numberline {2} Primary Decomposition}{77} +\contentsline {section}{\numberline {3} Standard Pairs}{83} +\contentsline {section}{\numberline {4} Generic Initial Ideals}{89} +\contentsline {section}{\numberline {5} The Chain Property}{95} +\contentsline {section}{References}{99} +\contentsline {title}{From Enumerative Geometry to Solving Systems of Polynomial Equations}{101} +\processAuthors {Frank Sottile\unskip {}} +\contentsline {section}{\numberline {1} Introduction}{101} +\contentsline {section}{\numberline {2} Solving Systems of Polynomials}{103} +\contentsline {subsection}{\numberline {2.1} Excess Intersection}{103} +\contentsline {subsection}{\numberline {2.2} Elimination, Rationality, and Solving}{104} +\contentsline {subsection}{\numberline {2.3} Solving with Linear Algebra}{105} +\contentsline {subsection}{\numberline {2.4} Real Roots}{107} +\contentsline {subsection}{\numberline {2.5} Homotopy Methods}{110} +\contentsline {section}{\numberline {3} Some Enumerative Geometry}{112} +\contentsline {subsection}{\numberline {3.1} Cylinders Meeting 5 Points}{112} +\contentsline {subsection}{\numberline {3.2} Lines Tangent to 4 Spheres}{113} +\contentsline {section}{\numberline {4} Schubert Calculus}{114} +\contentsline {subsection}{\numberline {4.1} Equations for the Grassmannian}{115} +\contentsline {subsection}{\numberline {4.2} Reality in the Schubert Calculus}{117} +\contentsline {subsection}{\numberline {4.3} Transversality in the Schubert Calculus}{120} +\contentsline {section}{\numberline {5} The 12 Lines: Reprise}{121} +\contentsline {subsection}{\numberline {5.1} Global Formulation}{121} +\contentsline {subsection}{\numberline {5.2} Lines Tangent to 4 Spheres}{122} +\contentsline {subsection}{\numberline {5.3} Lines Tangent to Real Quadrics Sharing a Real Conic}{124} +\contentsline {subsection}{\numberline {5.4} Generalization to Higher Dimensions}{126} +\contentsline {section}{References}{128} +\contentsline {title}{Resolutions and Cohomology over Complete Intersections}{131} +\processAuthors {Luchezar L. Avramov \and Daniel R. Grayson\unskip {}} +\contentsline {section}{\numberline {1} Matrix Factorizations}{133} +\contentsline {section}{\numberline {2} Graded Algebras}{139} +\contentsline {section}{\numberline {3} Universal Homotopies}{141} +\contentsline {section}{\numberline {4} Cohomology Operators}{145} +\contentsline {section}{\numberline {5} Computation of Ext Modules}{150} +\contentsline {section}{\numberline {6} Invariants of Modules}{157} +\contentsline {subsection}{\numberline {6.1} Cohomology Modules}{157} +\contentsline {subsection}{\numberline {6.2} Poincar\'e Series}{161} +\contentsline {subsection}{\numberline {6.3} Complexity}{165} +\contentsline {subsection}{\numberline {6.4} Critical Degree}{165} +\contentsline {subsection}{\numberline {6.5} Support Variety}{167} +\contentsline {subsection}{\numberline {6.6} Bass Series}{169} +\contentsline {section}{\numberline {7} Invariants of Pairs of Modules}{170} +\contentsline {subsection}{\numberline {7.1} Reduced Ext Module}{171} +\contentsline {subsection}{\numberline {7.2} Ext-generator Series}{173} +\contentsline {subsection}{\numberline {7.3} Complexity}{174} +\contentsline {subsection}{\numberline {7.4} Support Variety}{175} +\contentsline {section}{Appendix A. Gradings}{176} +\contentsline {section}{References}{177} +\contentsline {title}{Algorithms for the Toric Hilbert Scheme}{179} +\processAuthors {Michael Stillman \and Bernd Sturmfels \and Rekha Thomas } +\contentsline {section}{\numberline {1} Generating Monomial Ideals}{182} +\contentsline {section}{\numberline {2} Polyhedral Geometry}{188} +\contentsline {section}{\numberline {3} Local Equations}{193} +\contentsline {section}{\numberline {4} The Coherent Component of the Toric Hilbert Scheme}{199} +\contentsline {section}{Appendix A. Fourier-Motzkin Elimination}{206} +\contentsline {section}{Appendix B. Minimal Presentation of Rings}{211} +\contentsline {section}{References}{213} +\contentsline {title}{Sheaf Algorithms Using the Exterior Algebra}{215} +\processAuthors {Wolfram Decker \and David Eisenbud } +\contentsline {section}{\numberline {1} Introduction}{215} +\contentsline {section}{\numberline {2} Basics of the Bernstein-Gel'fand-Gel'fand Correspondence}{218} +\contentsline {section}{\numberline {3} The Cohomology and the Tate Resolution of a Sheaf}{222} +\contentsline {section}{\numberline {4} Cohomology and Vector Bundles}{226} +\contentsline {section}{\numberline {5} Cohomology and Monads}{230} +\contentsline {section}{\numberline {6} The Beilinson Monad}{236} +\contentsline {section}{\numberline {7} Examples}{241} +\contentsline {section}{References}{247} +\contentsline {title}{Needles in a Haystack: Special Varieties via Small Fields}{251} +\processAuthors {Frank-Olaf Schreyer \and Fabio Tonoli } +\contentsline {subsubsection}{Notation}{252} +\contentsline {section}{\numberline {1} How to Make Random Curves up to Genus $14$}{253} +\contentsline {subsection}{\numberline {1.1} Plane Models, $g\le 10$}{253} +\contentsline {subsubsection}{Random Points}{253} +\contentsline {subsection}{\numberline {1.2} Space Models and Hartshorne-Rao Modules}{256} +\contentsline {subsubsection}{The Case of Genus $g=11$}{256} +\contentsline {subsubsection}{Betti Numbers for Genus $g=12,13,14,15$}{258} +\contentsline {subsubsection}{Construction of Hartshorne-Rao Modules}{259} +\contentsline {subsubsection}{Counting Parameters}{262} +\contentsline {section}{\numberline {2} Comparing Green's Conjecture for Curves and Points}{263} +\contentsline {subsection}{\numberline {2.1} Syzygies of Canonical Curves}{263} +\contentsline {subsection}{\numberline {2.2} Coble Self-Dual Sets of Points}{263} +\contentsline {subsection}{\numberline {2.3} Comparison and Probes}{265} +\contentsline {subsubsection}{Evidence}{266} +\contentsline {section}{\numberline {3} Pfaffian Calabi-Yau Threefolds in ${\@mathbb P}^6$}{267} +\contentsline {subsection}{\numberline {3.1} The Pfaffian Complex}{268} +\contentsline {subsection}{\numberline {3.2} Analysis of the Hartshorne-Rao Module for Degree $17$}{269} +\contentsline {subsubsection}{Rank 1 Linear Syzygies of $M$}{272} +\contentsline {subsection}{\numberline {3.3} Lift to Characteristic Zero}{277} +\contentsline {section}{References}{277} +\contentsline {title}{$D$-modules and Cohomology of Varieties}{281} +\processAuthors {Uli Walther} +\contentsline {section}{\numberline {1} Introduction}{282} +\contentsline {subsection}{\numberline {1.1} Local Cohomology -- Definitions}{282} +\contentsline {subsection}{\numberline {1.2} Motivation}{283} +\contentsline {subsection}{\numberline {1.3} The Master Plan}{283} +\contentsline {subsection}{\numberline {1.4} Outline of the Chapter}{285} +\contentsline {section}{\numberline {2} The Weyl Algebra and Gr\"obner Bases}{285} +\contentsline {subsection}{\numberline {2.1} Notation}{286} +\contentsline {subsection}{\numberline {2.2} Gr\"obner Bases in $D_n$}{286} +\contentsline {subsection}{\numberline {2.3} $D$-modules}{288} +\contentsline {section}{\numberline {3} Bernstein-Sato Polynomials and Localization}{292} +\contentsline {subsection}{\numberline {3.1} The Line of Attack}{293} +\contentsline {subsection}{\numberline {3.2} Undetermined Exponents}{293} +\contentsline {subsection}{\numberline {3.3} The Bernstein-Sato Polynomial}{297} +\contentsline {subsection}{\numberline {3.4} Specializing Exponents}{299} +\contentsline {section}{\numberline {4} Local Cohomology Computations}{304} +\contentsline {subsection}{\numberline {4.1} Local Cohomology}{304} +\contentsline {subsection}{\numberline {4.2} Iterated Local Cohomology}{310} +\contentsline {subsection}{\numberline {4.3} Computation of Lyubeznik Numbers}{311} +\contentsline {section}{\numberline {5} Implementation, Examples, Questions}{313} +\contentsline {subsection}{\numberline {5.1} Implementations and Optimizing}{313} +\contentsline {subsection}{\numberline {5.2} Projects for the Future}{315} +\contentsline {subsubsection}{Prime Characteristic}{315} +\contentsline {subsubsection}{Ambient Spaces Different from ${\@mathbb A}^n_K$}{316} +\contentsline {subsubsection}{De Rham Cohomology}{316} +\contentsline {subsubsection}{Hom and Ext}{317} +\contentsline {subsubsection}{Finiteness and Stratifications}{319} +\contentsline {subsubsection}{Hodge Numbers}{320} +\contentsline {subsection}{\numberline {5.3} Epilogue}{320} +\contentsline {section}{References}{321} +\vskip 8pt +\contentsline {title}{Index}{325} +SHAR_EOF + (set 20 01 05 25 13 55 08 'book.toc'; eval "$shar_touch") && + chmod 0644 'book.toc' || + $echo 'restore of' 'book.toc' 'failed' + if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ + && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then + md5sum -c << SHAR_EOF >/dev/null 2>&1 \ + || $echo 'book.toc:' 'MD5 check failed' +afd98af264a9582323a7b5ea6e9db364 book.toc +SHAR_EOF + else + shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'book.toc'`" + test 11429 -eq "$shar_count" || + $echo 'book.toc:' 'original size' '11429,' 'current size' "$shar_count!" + fi +fi +# ============= diagrams.tex ============== +if test -f 'diagrams.tex' && test "$first_param" != -c; then + $echo 'x -' SKIPPING 'diagrams.tex' '(file already exists)' +else + $echo 'x -' extracting 'diagrams.tex' '(text)' + sed 's/^X//' << 'SHAR_EOF' > 'diagrams.tex' && +% mangletex (24 Nov 1995) run at 16:39 BST Tuesday 05 September 2000 +\message{}% +%%======================================================================% +%% TeX macros for drawing category-theoretic diagrams % +%% % +%% Paul Taylor % +%% % +%% Department of Computer Science, % +%% Queen Mary and Westfield College, % +%% London E1 4NS % +%% +44 20 7882 5241 % +%% pt@dcs.qmw.ac.uk % +%% % +%% PLEASE READ THE MANUAL! % +%% % +%% http://www.dcs.qmw.ac.uk/~pt/diagrams/index.html +%% ftp://ftp.tex.ac.uk/tex-archive/macros/generic/diagrams/taylor/index.html +%% % +%% Please ensure that you are registered with me as a user so that % +%% you can be informed of future releases. Any electronic mail % +%% message with "commutative" or "diagram" in the subject line % +%% (such as your request for the package, a question about it, or % +%% even an otherwise blank message) automatically registers you. % +%% % +%% % +%% CONTENTS: % +%% (O) corruption-sensitive hacks (to approx line 340) % +%% Arrow components & commands - starts approx line 1250 % +%% (21) auxillary macros for adjustment of components % +%% (22) bits of arrows (\rhvee etc) % +%% (23) arrow commands (\rTo etc) % +%% (24) miscellaneous % +%% Apart from these five sections, the rest is intended to be totally % +%% meaningless in the undocumented version, which is approximately 1900 % +%% lines long. Please do not waste trees by printing it out. % +%% % +%% COPYRIGHT NOTICE: % +%% This package may be copied and used freely for any academic % +%% (not commercial or military) purpose, on condition that it % +%% is not altered in any way, and that an acknowledgement is % +%% included in any published work making substantial use of it. % +%% % +%% IT IS SUPPLIED "AS IS", WITHOUT WARRANTY, EXPRESS OR IMPLIED. % +%% % +%% If you are doing something where mistakes cost money (or where % +%% success brings financial profit) then you must use commercial % +%% software, not this package. In any case, please remember to % +%% keep several backup copies of all files, and check everything % +%% visually before sending final copy to the publishers. % +%% % +%% You may use this package as a (substantial) aid to writing an % +%% academic research or text book on condition that % +%% (i) you contact me at a suitable time to ensure that you have % +%% an up-to-date version (and any infelicities can be fixed), % +%% (ii) you send me a copy of the book when it's published. % +%% % +%% HISTORY % +%% 3.88 Released 1 September 2000 % +%% Square hook tail: \newarrow{SquareInto}{sqhook}---> % +%% Five-year (instead of one-year) time-bombs. % +%% 3.87 Released 1 September 1999 % +%% This version was used for the final 1200dpi PS copy of my book % +%% ``Practical Foundations of Mathematics'' (Cambridge Univ Press) % +%% see http://www.dcs.qmw.ac.uk/~pt/Practical_Foundations % +%% 3.86 Released 1 September 1998 % +%% New options hug and nohug in PostScript mode: [PS,nohug] uses % +%% PS for the arrows without rotating the labels, but the way of % +%% calculating the actual position of these horizontal labels on % +%% will remain subject to alteration for some period of time --- % +%% please send me examples if you feel that adjustment is needed. % +%% % +%% Suppress indentation of following text (due to LaTeX change) % +%% Mangle \left@label and \right@label (conflict with Elsevier). % +%% midvshaft and snake for vertical arrows % +%% New option [gap=width] (default=shortfall) to use instead of % +%% ~{\;} on horizontals and PS diagonals, as this caused ^ and _ % +%% Added >-> and <-< heads and tails, same as >> and << but the % +%% shaft goes *through* the extra arrowhead. % +%% 3.85 Released 20 August 1997 % +%% New option [crab=distance] shifts horizontals and PS diagonals % +%% transversally by the specified distance (positive=upward). % +%% New option [snake=distance] shifts midshaft horizontals and % +%% PS diagonals longitudinally by the specified distance. % +%% New option [leftflush], like [flushleft] but reckons alignment % +%% from multiple verticals, or from text if there's no vertical. % +%% Most of the history has been suppressed from the user version. % +%% 3.84 Released 2 September 1996 % +%% 3.83 Released 18 May 1995 % +%% "dotted" option (set dot filler on maps) % +%% Parallel maps (\pile) outside diagrams stretch correctly. % +%% Option "LaTeXeqno" uses LaTeX's equation number and style % +%% for "eqno"; LaTeX's \label command picks this up. % +%% Suppress warnings & 2nd pass errors with "silent" option. % +%% 3.82 % +%% 3.81 Second alpha release 18 July 1994 % +%% Fixed displaced parenthesis instead of hook tails in manual p8. % +%% \overprint{text} sets text in maths and overprints it in the % +%% current cell, centered in the column irrespective of other stuff% +%% "repositionpullbacks" option uses this for \SEpbk etc % +%% \newdiagramgrid declaration, grid option and pentagon grid. % +%% 3.80 Alpha release for adjusted diagonals 15 July 1994. % +%% Some options can now take (x,y) values. % +%% Name of DVI->PS translator as argument to PostScript option. % +%% Loading after \begin{document} in LaTeX2e possible. % +%% Loading before \documentstyle or \documentclass possible. % +%% Equilateral triangle or regular hexagon size options. % +%% Introduced landscape and portrait options. % +%% Parse []-options during label processing. % +%% Made midhshaft work; always set it for single-row diagrams. % +%% \diagramstyle may be used within diagrams. % +%% Vertical maps targetted at labels of horizontals avoid them. % +%% Diagonals adjusted to meet their endpoints, at last!!!! % +%% 3.29 Released 11 March 1994 % +%% 3.28 Released 30 November 1993 % +%% Peter Freyd's \puncture symbol provided. % +%% 3.27 Released 26 March 1993 % +%% 3.26 Released 11 February 1993 % +%% 3.25 Released 30 January 1993 % +%% LaTeX heads made default (unless \tenln undefined, when vee) % +%% Circle, cross, little vee, little black triangle heads. % +%% First-use warning when defaulted diagonal components are used. % +%% Warning if diagonals used & columns stretched significantly. % +%% AMSTEX emulation - works at least when amstex not present. % +%% 3.24 Release 7 Sept 1992 advertised to users. % +%% PostScript option introduced: % +%% LaTeX, vee, curlyvee, triangle & blacktriangle heads & tails % +%% TPIC option introduced as an alternative to \LaTeX@make@line. % +%% New reformatting program. % +%% Optional arguments on \diagram, maps and \diagramstyle. % +%% 3.20 (29.4.92) early release of version 4 % +%% Postscript arrows (basic code). % +%% Implemented \newarrow \newarrowhead etc. % +%% Corruption-sensitive characters avoided wherever possible. % +%% Reloading prevented. % +%% Horizontal arrows outside diagram can stretch by wordspacing. % +%% Added < and > for labels on left and right of arrow; % +%% 3.16 (20.7.90) as mass mailed; only have mangled version % +%% -- all following version numbers are post-facto -- % +%% 3 (Jan 90) stretching vertical arrows % +%% 2 (Sept 89) horizontals stretch to objects; "superscript" labels % +%% 1 (1987) horizontal arrows stretch to edge of cell % +%% 0 (1986) implementation of Knuth's TeXercise 18.46 % +%%======================================================================% +X +%%======================================================================% +%% % +%% (1) CORRUPTION-SENSITIVE HACKS % +%% % +%%======================================================================% +X +%% CORRUPTION & \catcode WARNING +X +%% BITNET (IBM) machines may corrupt certain important characters +%% in transmission by electronic mail: +%% 0123456789=digits, abcdefghijklmnopqrstuvwxyz=lowers, +%% ABCDEFGHIJKLMNOPQRSTUVWXYZ=uppers, @=at (internal names), +%% {}=curly braces (grouping), \=backslash (keywords), +%% %=percent (comment), #=hash/sharp (argument), +=plus, -=minus, +%% <>=angle brackets (relations \ifnum,\ifdim), ==equals, +%% ,=comma, .=dot, :=colon, ;=semicolon, =space +%% $=dollar (maths) is only used in the "bits of maps" section +X +%% The following characters are marked by a comment including the word "ASCII", +%% except in comments and messages: +%% &=and (alignment), ~=tilde, |=vertical, []=square brackets, +%% ^=caret (superscript), _=underline (subscript), +%% `=grave/backquote (catcodes), '=acute/single quote (octal), +%% "=double quote (hex), ()=round brackets, +%% /=slash, ?=query, !=pling/bang, +X +%% The \catcode's marked * are assumed for reading this file: +%% \=0* {=1* }=2* $=3 &=4 return=5* #=6 ^=7 _=8 ignored=9* +%% space=10* letter=11* other=12 active=13 %=14* invalid=15 +%% If you want to load this package inside Stallman's "texinfo", you must do +%%% @catcode`@\=0 \catcode`\%=14 \input diagrams \catcode`\%=12 \catcode`\\=13 +%% and then use @diagram @rTo @\ @enddiagram etc. (braces {} stay the same). +%% Also need @catcode`@&=4. +X +%%*** You *MUST NOT* use the internal commands (with names beginning \CD@)**** +X +%% don't load me twice! +\ifx\diagram\undefined\else\message{WARNING: the \string\diagram\space command +is already defined and will not be loaded again}\expandafter\endinput\fi +X +%% make @ letter, saving its old code to restore at the end of this file +%%% look for this on the last line of the file if you think something's missing! +%% the other \catcode assignments are to make it work with texinfo. +\edef\cdrestoreat{%% +\noexpand\catcode\lq\noexpand\@=\the\catcode\lq\@%% +\noexpand\catcode\lq\noexpand\#=\the\catcode\lq\#%% +\noexpand\catcode\lq\noexpand\$=\the\catcode\lq\$%% +\noexpand\catcode\lq\noexpand\<=\the\catcode\lq\<%% +\noexpand\catcode\lq\noexpand\>=\the\catcode\lq\>%% +\noexpand\catcode\lq\noexpand\:=\the\catcode\lq\:%% Johannes L. Braams's +\noexpand\catcode\lq\noexpand\;=\the\catcode\lq\;%% Babel languages package +\noexpand\catcode\lq\noexpand\!=\the\catcode\lq\!%% makes these \active. +\noexpand\catcode\lq\noexpand\?=\the\catcode\lq\?%% +\noexpand\catcode\lq\noexpand\+=\the\catcode\rq53% +%% texinfo @+ is @outer@active +}\catcode\lq\@=11 \catcode\lq\#=6 \catcode\lq\<=12 \catcode\lq\>=12 \catcode +\rq53=12 \catcode\lq\:=12 \catcode\lq\;=12 \catcode\lq\!=12 \catcode\lq\?=12 +X +%% Change y to n if pool_size in your implementation of TeX is small. +%% This is reasonable if you have a small ("personal") computer, but if you +%%% have a sun, dec, hp, ... workstation or a mainframe, complain to your local +%% system manager and get him/her to install a version of TeX with bigger +%% parameters. The "hash size" (number of command names) gets you next. +\ifx\diagram@help@messages\undefined\let\diagram@help@messages y\fi +X +%% The following macro is used to include literal PostScript commands in the +%% DVI file for rotation, etc. Since this goes beyond standard TeX, it is +%%% dependent on the convention used by your local DVI-to-PostScript translator. +%% Choose whichever line applies to the program used at your site, or, if +%% yours is not listed, consult the manual, experiment with this macro and +%% (please) tell me what is needed to make it work. +%% +%% +%%% dvips (Tomas Rokicki, Radical Eye) labrea.stanford.edu /pub/dvips9999.tar.Z +%% CTAN: dviware/dvips +\def\cdps@Rokicki#1{\special{ps:#1}}\let\cdps@dvips\cdps@Rokicki\let +\cdps@RadicalEye\cdps@Rokicki\let\CD@IK\cdps@Rokicki\let\CD@HB\cdps@Rokicki +%% +%% I'm not sure that the rest work. +%% +%% dvitps (Stephan Bechtolsheim, Integrated Computer Systems) +%% arthur.cs.purdue.edu /pub/TeXPS-9.99.tar.Z +\def\cdps@Bechtolsheim#1{\special{dvitps: Literal "#1"}}% +%% ASCII two dbl quotes +\let\cdps@dvitps\cdps@Bechtolsheim\let\cdps@IntegratedComputerSystems +\cdps@Bechtolsheim%% +%% dvitops (James Clark) +%% CTAN: dviware/dvitops +\def\cdps@Clark#1{\special{dvitops: inline #1}}%% +\let\cdps@dvitops\cdps@Clark%% +%% OzTeX (Andrew Trevorrow) cannot be used +\let\cdps@OzTeX\empty\let\cdps@oztex\empty\let\cdps@Trevorrow\empty%% +%% dvi3ps (Kevin Coombes) +%% CTAN: dviware/dvi2ps/dvi3ps +\def\cdps@Coombes#1{\special{ps-string #1}}%% +%% psprint (Trevorrow) CTAN: dviware/psprint +%% dvi2ps (Senn) CTAN: dviware/dvi2ps +%% psdvi (Elwell) CTAN: dviware/dvi2ps/psdvi +X +\count@=\year\multiply\count@12 \advance\count@\month%% +\ifnum\count@>24068 %% (August 2005) It's changing very fast at the moment! +\message{***********************************************************}%%ascii +\message{! YOU HAVE AN OUT OF DATE VERSION OF COMMUTATIVE DIAGRAMS! *}%% +\message{! it expired in August 2005 and is time-bombed for January *}%% +\message{! You may get an up to date version of this package from *}%%ascii +\message{! ftp://ftp.dcs.qmw.ac.uk/pub/tex/contrib/pt/diagrams/ *}%% +\message{***********************************************************}%%ascii +\ifnum\count@>24071 %% (November 2005) +\errhelp{You may press RETURN and carry on for the time being.}\message{! It +is embarrassing to see papers in conference proceedings}\message{! and +journals containing bugs which I had fixed years before.}\message{! It is easy +to obtain and install a new version, which will}\errmessage{! remain +compatible with your files. Please get it NOW.}\fi\fi +X +\def\CD@DE{\global\let}\def\CD@RH{\outer\def} +X +%% safe names for braces, tab (&) and maths ($), as commands and for messages +{\escapechar\m@ne\xdef\CD@o{\string\{}\xdef\CD@yC{\string\}}%% +%% +%% three ASCII ampersands (ands) (&&&) appear on the next line +\catcode\lq\&=4 \CD@DE\CD@Q=&\xdef\CD@S{\string\&}%%ascii three ands +%% +%% ASCII ^ and _ each appear twice on next line +%% six ASCII dollars ($$$$$$) appear on the next two lines. +\catcode\lq\$=3 \CD@DE\CD@k=$\CD@DE\CD@ND=$%%ascii three dollars +\xdef\CD@nC{\string\$}\gdef\CD@LG{$$}%%ascii three dollars +%% +%% two ASCII underlines (__) appear on the next line. +\catcode\lq\_=8 \CD@DE\CD@lJ=_%%ascii two underlines +%% +%% six ASCII carets (^^^^^^) appear on the next three lines. +\obeylines\catcode\lq\^=7 \CD@DE\@super=^%%ascii two carets +\ifnum\newlinechar=10 \gdef\CD@uG{^^J}%%ascii two carets +\else\ifnum\newlinechar=13 \gdef\CD@uG{^^M}%%ascii two carets +\else\CD@DE\CD@uG\space\expandafter\message{! input error: \noexpand +\newlinechar\space is ASCII \the\newlinechar, not LF=10 or CR=13.}%% +\fi\fi}%% +X +%% avoid using <> (because I personally re-define them to mean \langle\rangle) +\mathchardef\lessthan=\rq30474 \mathchardef\greaterthan=\rq30476 +X +%% LaTeX line and arrowhead font +%% the "hit return" comments show up if the font is missing. +\ifx\tenln\undefined%% +\font\tenln=line10\relax%% Hit return - who needs diagonals? +\fi\ifx\tenlnw\undefined\ifx\tenln\nullfont\let\tenlnw\nullfont\else%% +\font\tenlnw=linew10\relax%% Hit return - who needs diagonals? +\fi\fi%% +X +%% report line numbers in TeX3 only +\ifx\inputlineno\undefined\csname newcount\endcsname\inputlineno\inputlineno +\m@ne\message{***************************************************}\message{! +Obsolete TeX (version 2). You should upgrade to *}\message{! version 3, which +has been available since 1990. *}\message{***********************************% +****************}\fi +X +\def\cd@shouldnt#1{\CD@KB{* THIS (#1) SHOULD NEVER HAPPEN! *}} +X +%% turn round- and square-bracketed arguments into curly-bracketed +\def\get@round@pair#1(#2,#3){#1{#2}{#3}}%%ascii round brackets () +\def\get@square@arg#1[#2]{#1{#2}}%%ascii square brackets [] +\def\CD@AE#1{\CD@PK\let\CD@DH\CD@@E\CD@@E#1,],}%%ascii sq brackets +\def\CD@m{[}\def\CD@RD{]}\def\commdiag#1{{\let\enddiagram\relax\diagram[]#1% +\enddiagram}} +X +%% ASCII open square bracket occurs on next line +\def\CD@BF{{\ifx\CD@EH[\aftergroup\get@square@arg\aftergroup\CD@YH\else +\aftergroup\CD@JH\fi}}%% +\def\CD@CF#1#2{\def\CD@YH{#1}\def\CD@JH{#2}\futurelet\CD@EH\CD@BF} +X +%% ASCII vertical bar (|) occurs on the next line +\def\CD@KK{|} +X +\def\CD@PB{%% arguments to maps inside diagrams +\tokcase\CD@DD:\CD@y\break@args;\catcase\@super:\upper@label;\catcase\CD@lJ:% +\lower@label;\tokcase{~}:\middle@label;%%ascii tilde +\tokcase<:\CD@iF;%%ascii less-than +\tokcase>:\CD@iI;%%ascii greater-than +\tokcase(:\CD@BC;%%)%ascii open round bracket +\tokcase[:\optional@;%%]%ascii open square bracket +\tokcase.:\CD@JJ;%%ascii dot 12.7.94 +\catcase\space:\eat@space;\catcase\bgroup:\positional@;\default:\CD@@A +\break@args;\endswitch} +X +\def\switch@arg{%% arguments to horizontal maps outside diagrams +\catcase\@super:\upper@label;\catcase\CD@lJ:\lower@label;\tokcase[:\optional@ +;%%]%ascii open square bracket +\tokcase.:\CD@JJ;%%ascii dot 12.7.94 % ; was : before 15.6.97 +\catcase\space:\eat@space;\catcase\bgroup:\positional@;\tokcase{~}:% +\middle@label;%%ascii tilde (questionable!) +\default:\CD@y\break@args;\endswitch} +X +%% That's as much as you get to read "in clear" - the rest is private! +X +\let\CD@tJ\relax\ifx\protect\undefined\let\protect\relax\fi\ifx\AtEndDocument +\undefined\def\CD@PG{\CD@gB}\def\CD@GF#1#2{}\else\def\CD@PG#1{\edef\CD@CH{#1}% +\expandafter\CD@oC\CD@CH\CD@OD}\def\CD@oC#1\CD@OD{\AtEndDocument{\typeout{% +\CD@tA: #1}}}\def\CD@GF#1#2{\gdef#1{#2}\AtEndDocument{#1}}\fi\def\CD@ZA#1#2{% +\def#1{\CD@PG{#2\CD@mD\CD@W}\CD@DE#1\relax}}\def\CD@uF#1\repeat{\def\CD@p{#1}% +\CD@OF}\def\CD@OF{\CD@p\relax\expandafter\CD@OF\fi}\def\CD@sF#1\repeat{\def +\CD@q{#1}\CD@PF}\def\CD@PF{\CD@q\relax\expandafter\CD@PF\fi}\def\CD@tF#1% +\repeat{\def\CD@r{#1}\CD@QF}\def\CD@QF{\CD@r\relax\expandafter\CD@QF\fi}\def +\CD@tG#1#2#3{\def#2{\let#1\iftrue}\def#3{\let#1\iffalse}#3}\if y% +\diagram@help@messages\def\CD@rG#1#2{\csname newtoks\endcsname#1#1=% +\expandafter{\csname#2\endcsname}}\else\csname newtoks\endcsname\no@cd@help +\no@cd@help{See the manual}\def\CD@rG#1#2{\let#1\no@cd@help}\fi\chardef\CD@lF +=1 \chardef\CD@lI=2 \chardef\CD@MH=5 \chardef\CD@tH=6 \chardef\CD@sH=7 +\chardef\CD@PC=9 \dimendef\CD@hI=2 \dimendef\CD@hF=3 \dimendef\CD@mF=4 +\dimendef\CD@mI=5 \dimendef\CD@wJ=6 \dimendef\CD@tI=8 \dimendef\CD@sI=9 +\skipdef\CD@uB=1 \skipdef\CD@NF=2 \skipdef\CD@tB=3 \skipdef\CD@ZE=4 \skipdef +\CD@JK=5 \skipdef\CD@kI=6 \skipdef\CD@kF=7 \skipdef\CD@qI=8 \skipdef\CD@pI=9 +\countdef\CD@JC=9 \countdef\CD@gD=8 \countdef\CD@A=7 \def\sdef#1#2{\def#1{#2}% +}\def\CD@L#1{\expandafter\aftergroup\csname#1\endcsname}\def\CD@RC#1{% +\expandafter\def\csname#1\endcsname}\def\CD@sD#1{\expandafter\gdef\csname#1% +\endcsname}\def\CD@vC#1{\expandafter\edef\csname#1\endcsname}\def\CD@nF#1#2{% +\expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname}\def\CD@EE +#1#2{\expandafter\CD@DE\csname#1\expandafter\endcsname\csname#2\endcsname}% +\def\CD@AK#1{\csname#1\endcsname}\def\CD@XJ#1{\expandafter\show\csname#1% +\endcsname}\def\CD@ZJ#1{\expandafter\showthe\csname#1\endcsname}\def\CD@WJ#1{% +\expandafter\showbox\csname#1\endcsname}\def\CD@tA{Commutative Diagram}\edef +\CD@kH{\string\par}\edef\CD@dC{\string\diagram}\edef\CD@HD{\string\enddiagram +}\edef\CD@EC{\string\\}\def\CD@eF{LaTeX}\ifx\@ignoretrue\undefined +\expandafter\CD@tG\csname if@ignore\endcsname\ignore@true\ignore@false\def +\@ignoretrue{\global\ignore@true}\def\@ignorefalse{\global\ignore@false}\fi +X +\def\CD@g{{\ifnum0=\lq}\fi}\def\CD@wC{\ifnum0=\lq{\fi}}\def\catcase#1:{\ifcat +\noexpand\CD@EH#1\CD@tJ\expandafter\CD@kC\else\expandafter\CD@dJ\fi}\def +\tokcase#1:{\ifx\CD@EH#1\CD@tJ\expandafter\CD@kC\else\expandafter\CD@dJ\fi}% +\def\CD@kC#1;#2\endswitch{#1}\def\CD@dJ#1;{}\let\endswitch\relax\def\default:% +#1;#2\endswitch{#1}\ifx\at@\undefined\def\at@{@}\fi\edef\CD@P{\CD@o pt\CD@yC}% +\CD@RC{\CD@P>}#1>#2>{\CD@z\rTo\sp{#1}\sb{#2}\CD@z}\CD@RC{\CD@P<}#1<#2<{\CD@z +\lTo\sp{#1}\sb{#2}\CD@z}\CD@RC{\CD@P)}#1)#2){\CD@z\rTo\sp{#1}\sb{#2}\CD@z}% +%%ascii round +\CD@RC{\CD@P(}#1(#2({\CD@z\lTo\sp{#1}\sb{#2}\CD@z}%%ascii brack +\def\CD@O{\def\endCD{\enddiagram}\CD@RC{\CD@P A}##1A##2A{\uTo<{##1}>{##2}% +\CD@z\CD@z}\CD@RC{\CD@P V}##1V##2V{\dTo<{##1}>{##2}\CD@z\CD@z}\CD@RC{\CD@P=}{% +\CD@z\hEq\CD@z}\CD@RC{\CD@P\CD@KK}{\vEq\CD@z\CD@z}\CD@RC{\CD@P\string\vert}{% +\vEq\CD@z\CD@z}\CD@RC{\CD@P.}{\CD@z\CD@z}\let\CD@z\CD@Q}\def\CD@IE{\let\tmp +\CD@JE\ifcat A\noexpand\CD@CH\else\ifcat=\noexpand\CD@CH\else\ifcat\relax +\noexpand\CD@CH\else\let\tmp\at@\fi\fi\fi\tmp}\def\CD@JE#1{\CD@nF{tmp}{\CD@P +\string#1}\ifx\tmp\relax\def\tmp{\at@#1}\fi\tmp}\def\CD@z{}\begingroup +\aftergroup\def\aftergroup\CD@T\aftergroup{\aftergroup\def\catcode\lq\@% +\active\aftergroup @\endgroup{\futurelet\CD@CH\CD@IE}}\newcount\CD@uA +\newcount\CD@vA\newcount\CD@wA\newcount\CD@xA\newdimen\CD@OA\newdimen\CD@PA +\CD@tG\CD@gE\CD@@A\CD@y\CD@tG\CD@hE\CD@EA\CD@BA\newdimen\CD@RA\newdimen\CD@SA +\newcount\CD@yA\newcount\CD@zA\newdimen\CD@QA\newbox\CD@DA\CD@tG\CD@lE\CD@dA +\CD@bA\newcount\CD@LH\newcount\CD@TC\def\CD@V#1#2{\ifdim#1<#2\relax#1=#2% +\relax\fi}\def\CD@X#1#2{\ifdim#1>#2\relax#1=#2\relax\fi}\newdimen\CD@XH\CD@XH +=1sp \newdimen\CD@zC\CD@zC\z@\def\CD@cJ{\ifdim\CD@zC=1em\else\CD@nJ\fi}\def +\CD@nJ{\CD@zC1em\def\CD@NC{\fontdimen8\textfont3 }\CD@@J\CD@NJ\setbox0=\vbox{% +\CD@t\noindent\CD@k\null\penalty-9993\null\CD@ND\null\endgraf\setbox0=% +\lastbox\unskip\unpenalty\setbox1=\lastbox\global\setbox\CD@IG=\hbox{\unhbox0% +\unskip\unskip\unpenalty\setbox0=\lastbox}\global\setbox\CD@KG=\hbox{\unhbox1% +\unskip\unpenalty\setbox1=\lastbox}}}\newdimen\CD@@I\CD@@I=1true in \divide +\CD@@I300 \def\CD@zH#1{\multiply#1\tw@\advance#1\ifnum#1<\z@-\else+\fi\CD@@I +\divide#1\tw@\divide#1\CD@@I\multiply#1\CD@@I}\def\MapBreadth{% +\afterassignment\CD@gI\CD@LF}\newdimen\CD@LF\newdimen\CD@oI\def\CD@gI{\CD@oI +\CD@LF\CD@V\CD@@I{4\CD@XH}\CD@X\CD@@I\p@\CD@zH\CD@oI\ifdim\CD@LF>\z@\CD@V +\CD@oI\CD@@I\fi\CD@cJ}\def\CD@RJ#1{\CD@zD\count@\CD@@I#1\ifnum\count@>\z@ +\divide\CD@@I\count@\fi\CD@gI\CD@NJ}\def\CD@NJ{\dimen@\CD@QC\count@\dimen@ +\divide\count@5\divide\count@\CD@@I\edef\CD@OC{\the\count@}}\def\CD@AJ{\CD@QJ +\z@}\def\CD@QJ#1{\CD@tI\axisheight\advance\CD@tI#1\relax\advance\CD@tI-.5% +\CD@oI\CD@zH\CD@tI\CD@sI-\CD@tI\advance\CD@tI\CD@LF}\newdimen\CD@DC\CD@DC\z@ +\newdimen\CD@eJ\CD@eJ\z@\def\CD@CJ#1{\CD@sI#1\relax\CD@tI\CD@sI\advance\CD@tI +\CD@LF\relax}\def\horizhtdp{height\CD@tI depth\CD@sI}\def\axisheight{% +\fontdimen22\the\textfont\tw@}\def\script@axisheight{\fontdimen22\the +\scriptfont\tw@}\def\ss@axisheight{\fontdimen22\the\scriptscriptfont\tw@}\def +\CD@NC{0.4pt}\def\CD@VK{\fontdimen3\textfont\z@}\def\CD@UK{\fontdimen3% +\textfont\z@}\newdimen\PileSpacing\newdimen\CD@nA\CD@nA\z@\def\CD@RG{% +\ifincommdiag1.3em\else2em\fi}\newdimen\CD@YB\def\CellSize{\afterassignment +\CD@kB\DiagramCellHeight}\newdimen\DiagramCellHeight\DiagramCellHeight-% +\maxdimen\newdimen\DiagramCellWidth\DiagramCellWidth-\maxdimen\def\CD@kB{% +\DiagramCellWidth\DiagramCellHeight}\def\CD@QC{3em}\newdimen\MapShortFall\def +\MapsAbut{\MapShortFall\z@\objectheight\z@\objectwidth\z@}\newdimen\CD@iA +\CD@iA\z@\def\newarrowhead{\CD@mG h\CD@BG\CD@GG>}\def\newarrowtail{\CD@mG t% +\CD@BG\CD@GG>}\def\newarrowmiddle{\CD@mG m\CD@BG\hbox@maths\empty}\def +\newarrowfiller{\CD@mG f\CD@bE\CD@MK-}\def\CD@mG#1#2#3#4#5#6#7#8#9{\CD@RC{r#1% +:#5}{#2{#6}}\CD@RC{l#1:#5}{#2{#7}}\CD@RC{d#1:#5}{#3{#8}}\CD@RC{u#1:#5}{#3{#9}% +}\CD@vC{-#1:#5}{\expandafter\noexpand\csname-#1:#4\endcsname\noexpand\CD@MC}% +\CD@vC{+#1:#5}{\expandafter\noexpand\csname+#1:#4\endcsname\noexpand\CD@MC}}% +\CD@ZA\CD@MC{\CD@eF\space diagonals are used unless PostScript is set}\def +\defaultarrowhead#1{\edef\CD@sJ{#1}\CD@@J}\def\CD@@J{\CD@IJ\CD@sJ<>ht\CD@IJ +\CD@sJ<>th}\def\CD@IJ#1#2#3#4#5{\CD@HJ{r#4}{#3}{l#5}{#2}{r#4:#1}\CD@HJ{r#5}{#% +2}{l#4}{#3}{l#4:#1}\CD@HJ{d#4}{#3}{u#5}{#2}{d#4:#1}\CD@HJ{d#5}{#2}{u#4}{#3}{u% +#4:#1}}\def\CD@HJ#1#2#3#4#5{\begingroup\aftergroup\CD@GJ\CD@L{#1+:#2}\CD@L{#1% +:#2}\CD@L{#3:#4}\CD@L{#5}\endgroup}\def\CD@GJ#1#2#3#4{\csname newbox% +\endcsname#1\def#2{\copy#1}\def#3{\copy#1}\setbox#1=\box\voidb@x}\def\CD@sJ{}% +\CD@@J\def\CD@GJ#1#2#3#4{\setbox#1=#4}\ifx\tenln\nullfont\def\CD@sJ{vee}\else +\let\CD@sJ\CD@eF\fi\def\CD@xF#1#2#3{\begingroup\aftergroup\CD@wF\CD@L{#1#2:#3% +#3}\CD@L{#1#2:#3}\aftergroup\CD@yF\CD@L{#1#2:#3-#3}\CD@L{#1#2:#3}\endgroup}% +\def\CD@wF#1#2{\def#1{\hbox{\rlap{#2}\kern.4\CD@zC#2}}}\def\CD@yF#1#2{\def#1{% +\hbox{\rlap{#2}\kern.4\CD@zC#2\kern-.4\CD@zC}}}\CD@xF lh>\CD@xF rt>\CD@xF rh<% +\CD@xF rt<\def\CD@yF#1#2{\def#1{\hbox{\kern-.4\CD@zC\rlap{#2}\kern.4\CD@zC#2}% +}}\CD@xF rh>\CD@xF lh<\CD@xF lt>\CD@xF lt<\def\CD@wF#1#2{\def#1{\vbox{\vbox to% +\z@{#2\vss}\nointerlineskip\kern.4\CD@zC#2}}}\def\CD@yF#1#2{\def#1{\vbox{% +\vbox to\z@{#2\vss}\nointerlineskip\kern.4\CD@zC#2\kern-.4\CD@zC}}}\CD@xF uh>% +\CD@xF dt>\CD@xF dh<\CD@xF dt<\def\CD@yF#1#2{\def#1{\vbox{\kern-.4\CD@zC\vbox +to\z@{#2\vss}\nointerlineskip\kern.4\CD@zC#2}}}\CD@xF dh>\CD@xF ut>\CD@xF uh<% +\CD@xF ut<\def\CD@BG#1{\hbox{\mathsurround\z@\offinterlineskip\CD@k\mkern-1.5% +mu{#1}\mkern-1.5mu\CD@ND}}\def\hbox@maths#1{\hbox{\CD@k#1\CD@ND}}\def\CD@GG#1% +{\hbox to\CD@LF{\setbox0=\hbox{\offinterlineskip\mathsurround\z@\CD@k{#1}% +\CD@ND}\dimen0.5\wd0\advance\dimen0-.5\CD@oI\CD@zH{\dimen0}\kern-\dimen0% +\unhbox0\hss}}\def\CD@sB#1{\hbox to2\CD@LF{\hss\offinterlineskip\mathsurround +\z@\CD@k{#1}\CD@ND\hss}}\def\CD@vF#1{\hbox{\mathsurround\z@\CD@k{#1}\CD@ND}}% +\def\CD@bE#1{\hbox{\kern-.15\CD@zC\CD@k{#1}\CD@ND\kern-.15\CD@zC}}\def\CD@MK#% +1{\vbox{\offinterlineskip\kern-.2ex\CD@GG{#1}\kern-.2ex}}\def\@fillh{% +\xleaders\vrule\horizhtdp}\def\@fillv{\xleaders\hrule width\CD@LF}\CD@nF{rf:-% +}{@fillh}\CD@nF{lf:-}{@fillh}\CD@nF{df:-}{@fillv}\CD@nF{uf:-}{@fillv}\CD@nF{% +rh:}{null}\CD@nF{rm:}{null}\CD@nF{rt:}{null}\CD@nF{lh:}{null}\CD@nF{lm:}{null% +}\CD@nF{lt:}{null}\CD@nF{dh:}{null}\CD@nF{dm:}{null}\CD@nF{dt:}{null}\CD@nF{% +uh:}{null}\CD@nF{um:}{null}\CD@nF{ut:}{null}\CD@nF{+h:}{null}\CD@nF{+m:}{null% +}\CD@nF{+t:}{null}\CD@nF{-h:}{null}\CD@nF{-m:}{null}\CD@nF{-t:}{null}\def +\CD@@D{\hbox{\vrule height 1pt depth-1pt width 1pt}}\CD@RC{rf:}{\CD@@D}\CD@nF +{lf:}{rf:}\CD@nF{+f:}{rf:}\CD@RC{df:}{\CD@@D}\CD@nF{uf:}{df:}\CD@nF{-f:}{df:}% +\def\CD@BD{\CD@U\null\CD@@D\null\CD@@D\null}\edef\CD@lG{\string\newarrow}\def +\newarrow#1#2#3#4#5#6{\begingroup\edef\@name{#1}\edef\CD@oJ{#2}\edef\CD@iD{#3% +}\edef\CD@QG{#4}\edef\CD@jD{#5}\edef\CD@LE{#6}\let\CD@HE\CD@sG\let\CD@FK +\CD@BH\let\@x\CD@AH\ifx\CD@oJ\CD@iD\let\CD@oJ\empty\fi\ifx\CD@LE\CD@jD\let +\CD@LE\empty\fi\def\CD@LI{r}\def\CD@SF{l}\def\CD@IC{d}\def\CD@yJ{u}\def\CD@gH +{+}\def\@m{-}\ifx\CD@iD\CD@jD\ifx\CD@QG\CD@iD\let\CD@QG\empty\fi\ifx\CD@LE +\empty\ifx\CD@iD\CD@aE\let\@x\CD@yG\else\let\@x\CD@zG\fi\fi\else\edef\CD@a{% +\CD@iD\CD@oJ}\ifx\CD@a\empty\ifx\CD@QG\CD@jD\let\CD@QG\empty\fi\fi\fi\ifmmode +\aftergroup\CD@kG\else\CD@@A\CD@oB rh{head\space\space}\CD@LE\CD@oB rf{filler% +}\CD@iD\CD@oB rm{middle}\CD@QG\ifx\CD@jD\CD@iD\else\CD@oB rf{filler}\CD@jD\fi +\CD@oB rt{tail\space\space}\CD@oJ\CD@gE\CD@HE\CD@FK\@x\CD@nG l-2+2{lu}{nw}% +\NorthWest\CD@nG r+2+2{ru}{ne}\NorthEast\CD@nG l-2-2{ld}{sw}\SouthWest\CD@nG r% ++2-2{rd}{se}\SouthEast\else\aftergroup\CD@b\CD@L{r\@name}\fi\fi\endgroup}\def +\CD@sG{\CD@vG\CD@LI\CD@SF rl\Horizontal@Map}\def\CD@BH{\CD@vG\CD@IC\CD@yJ du% +\Vertical@Map}\def\CD@AH{\CD@vG\CD@gH\@m+-\Vector@Map}\def\CD@yG{\CD@vG\CD@gH +\@m+-\Slant@Map}\def\CD@zG{\CD@vG\CD@gH\@m+-\Slope@Map}\catcode\lq\/=\active +\def\CD@vG#1#2#3#4#5{\CD@jG#1#3#5t:\CD@oJ/f:\CD@iD/m:\CD@QG/f:\CD@jD/h:\CD@LE +//\CD@jG#2#4#5h:\CD@LE/f:\CD@jD/m:\CD@QG/f:\CD@iD/t:\CD@oJ//}\def\CD@jG#1#2#3% +#4//{\edef\CD@fG{#2}\aftergroup\sdef\CD@L{#1\@name}\aftergroup{\aftergroup#3% +\CD@M#4//\aftergroup}}\def\CD@M#1/{\edef\CD@EH{#1}\ifx\CD@EH\empty\else\CD@L{% +\CD@fG#1}\expandafter\CD@M\fi}\catcode\lq\/=12 \def\CD@nG#1#2#3#4#5#6#7#8{% +\aftergroup\sdef\CD@L{#6\@name}\aftergroup{\CD@L{#2\@name}\if#2#4\aftergroup +\CD@CI\else\aftergroup\CD@BI\fi\CD@L{#1\@name}% +%% ASCII round brackets and comma (,) appear on the next line +\aftergroup(\aftergroup#3\aftergroup,\aftergroup#5\aftergroup)\aftergroup}}% +\def\CD@oB#1#2#3#4{\expandafter\ifx\csname#1#2:#4\endcsname\relax\CD@y\CD@gB{% +arrow#3 "#4" undefined}\fi}\CD@rG\CD@VE{All five components must be defined +before an arrow.}\CD@rG\CD@SE{\CD@lG, unlike \string\HorizontalMap, is a +declaration.}\def\CD@b#1{\CD@YA{Arrows \string#1 etc could not be defined}% +\CD@VE}\def\CD@kG{\CD@YA{misplaced \CD@lG}\CD@SE}\def\newdiagramgrid#1#2#3{% +\CD@RC{cdgh@#1}{#2,],}%% ASCII close square bracket +\CD@RC{cdgv@#1}{#3,],}}%% ASCII close square bracket +\CD@tG\ifincommdiag\incommdiagtrue\incommdiagfalse\CD@tG\CD@@F\CD@IF\CD@HF +\newcount\CD@VA\CD@VA=0 \def\CD@yH{\CD@VA6 }\def\CD@OB{\CD@VA1 \global\CD@yA1 +\CD@DE\CD@YF\empty}\def\CD@YF{}\def\CD@nB#1{\relax\CD@MD\edef\CD@vJ{#1}% +\begingroup\CD@rE\else\ifcase\CD@VA\ifmmode\else\CD@YG\CD@E0\fi\or\CD@cE5\or +\CD@YG\CD@F5\or\CD@YG\CD@B5\or\CD@YG\CD@B5\or\CD@YG\CD@C5\or\CD@cE7\or\CD@YG +\CD@D7\fi\fi\endgroup\xdef\CD@YF{#1}}\def\CD@pB#1#2#3#4#5{\relax\CD@MD\xdef +\CD@vJ{#4}\begingroup\ifnum\CD@VA<#1 \expandafter\CD@cE\ifcase\CD@VA0\or#2\or +#3\else#2\fi\else\ifnum\CD@VA<6 \CD@tJ\CD@YG\CD@B#2\else\CD@YG\CD@G#2\fi\fi +\endgroup\CD@DE\CD@YF\CD@vJ\ifincommdiag\let\CD@ZD#5\else\let\CD@ZD\CD@LK\fi}% +\def\CD@yI{\global\CD@yA=\ifnum\CD@VA<5 1\else2\fi\relax}\def\CD@OI{\CD@VA +\CD@yA}\def\CD@cE#1{\aftergroup\CD@VA\aftergroup#1\aftergroup\relax}\def +\CD@HH{\def\CD@nB##1{\relax}\let\CD@pB\CD@FH\let\CD@yH\relax\let\CD@OB\relax +\let\CD@yI\relax\let\CD@OI\relax}\def\CD@FH#1#2#3#4#5{\ifincommdiag\let\CD@ZD +#5\else\xdef\CD@vJ{#4}\let\CD@ZD\CD@LK\fi}\def\CD@YG#1{\aftergroup#1% +\aftergroup\relax\CD@cE}\def\CD@B{\CD@YE\CD@S\CD@ME\CD@Q}\def\CD@G{\CD@YE{% +\CD@yC\CD@S}\CD@XE\CD@QD\CD@Q}\def\CD@F{\CD@YE{*\CD@S}\CD@RE\clubsuit\CD@Q}% +\def\CD@C{\CD@YE{\CD@S*\CD@S}\CD@RE\CD@Q\clubsuit\CD@Q}\def\CD@D{\CD@YE\CD@EC +\CD@TE\\}\def\CD@E{\CD@YE\CD@nC\CD@QE\CD@k}\def\CD@LK{\CD@YA{\CD@vJ\space +ignored \CD@dH}\CD@WE}\def\CD@FE{}\def\CD@d{\CD@YA{maps must never be enclosed +in braces}\CD@OE}\def\CD@dH{outside diagram}\def\CD@FC{\string\HonV, \string +\VonH\space and \string\HmeetV}\CD@rG\CD@ME{The way that horizontal and +vertical arrows are terminated implicitly means\CD@uG that they cannot be +mixed with each other or with \CD@FC.}\CD@rG\CD@XE{\string\pile\space is for +parallel horizontal arrows; verticals can just be put together in\CD@uG a cell% +X. \CD@FC\space are not meaningful in a \string\pile.}\CD@rG\CD@RE{The +horizontal maps must point to an object, not each other (I've put in\CD@uG one +which you're unlikely to want). Use \string\pile\space if you want them +parallel.}\CD@rG\CD@TE{Parallel horizontal arrows must be in separate layers +of a \string\pile.}\CD@rG\CD@QE{Horizontal arrows may be used \CD@dH s, but +must still be in maths.}\CD@rG\CD@WE{Vertical arrows, \CD@FC\space\CD@dH s don% +'t know where\CD@uG where to terminate.}\CD@rG\CD@OE{This prevents them from +stretching correctly.}\def\CD@YE#1{\CD@YA{"#1" inserted \ifx\CD@YF\empty +before \CD@vJ\else between \CD@YF\ifx\CD@YF\CD@vJ s\else\space and \CD@vJ\fi +\fi}}\count@=\year\multiply\count@12 \advance\count@\month\ifnum\count@>24073 +\message{because this one expired in August 2005!}\expandafter\endinput\fi +\def\Horizontal@Map{\CD@nB{horizontal map}\CD@LC\CD@TJ\CD@qD}\def\CD@TJ{% +\CD@GB-9999 \let\CD@ZD\CD@XD\ifincommdiag\else\CD@cJ\ifinpile\else\skip2\z@ +plus 1.5\CD@VK minus .5\CD@UK\skip4\skip2 \fi\fi\let\CD@kD\@fillh\CD@nF{% +fill@dot}{rf:.}}\def\Vector@Map{\CD@HK4}\def\Slant@Map{\CD@HK{\CD@EF255\else6% +\fi}}\def\Slope@Map{\CD@HK\CD@OC}\def\CD@HK#1#2#3#4#5#6{\CD@LC\def\CD@WK{2}% +\def\CD@aK{2}\def\CD@ZK{1}\def\CD@bK{1}\let\Horizontal@Map\CD@nI\def\CD@OG{#1% +}\def\CD@NI{\CD@U#2#3#4#5#6}}\def\CD@nI{\CD@TJ\CD@JB\let\CD@ZD\CD@TD\CD@qD}% +\CD@tG\CD@pE\CD@rA\CD@qA\CD@rA\def\cds@missives{\CD@rA}\def\CD@TD{\CD@vE\let +\CD@OG\CD@OC\CD@x\CD@zE\CD@WF\fi\setbox0\hbox{\incommdiagfalse\CD@HI}\CD@pE +\CD@aD\else\global\CD@YC\CD@bD\fi\ifvoid6 \ifvoid7 \CD@eE\fi\fi\CD@zE\else +\CD@BD\global\CD@YC\let\CD@CG\CD@IH\CD@YD\fi\else\CD@NI\CD@MI\global\CD@YC +\CD@YD\fi}\def\CD@LC{\begingroup\dimen1=\MapShortFall\dimen2=\CD@RG\dimen5=% +\MapShortFall\setbox3=\box\voidb@x\setbox6=\box\voidb@x\setbox7=\box\voidb@x +\CD@pD\mathsurround\z@\skip2\z@ plus1fill minus 1000pt\skip4\skip2 \CD@TB}% +\CD@tG\CD@tE\CD@UB\CD@TB\def\CD@U#1#2#3#4#5{\let\CD@oJ#1\let\CD@iD#2\let +\CD@QG#3\let\CD@jD#4\let\CD@LE#5\CD@TB\ifx\CD@iD\CD@jD\CD@UB\fi}\def\CD@qD#1#% +2#3#4#5{\CD@U#1#2#3#4#5\CD@tD}\def\Vertical@Map{\CD@pB433{vertical map}\CD@cD +\CD@LC\CD@GB-9995 \let\CD@kD\@fillv\CD@nF{fill@dot}{df:.}\CD@qD}\def +\break@args{\def\CD@tD{\CD@ZD}\CD@ZD\endgroup\aftergroup\CD@FE}\def\CD@MJ{% +\setbox1=\CD@oJ\setbox5=\CD@LE\ifvoid3 \ifx\CD@QG\null\else\setbox3=\CD@QG\fi +\fi\CD@@G2\CD@iD\CD@@G4\CD@jD}\def\CD@pF#1{\ifvoid1\else\CD@oF1#1\fi\ifvoid2% +\else\CD@oF2#1\fi\ifvoid3\else\CD@oF3#1\fi\ifvoid4\else\CD@oF4#1\fi\ifvoid5% +\else\CD@oF5#1\fi} \def\CD@oF#1#2{\setbox#1\vbox{\offinterlineskip\box#1% +\dimen@\prevdepth\advance\dimen@-#2\relax\setbox0\null\dp0\dimen@\ht0-\dimen@ +\box0}}\def\CD@@G#1#2{\ifx#2\CD@kD\setbox#1=\box\voidb@x\else\setbox#1=#2\def +#2{\xleaders\box#1}\fi}\CD@ZA\CD@BK{\string\HorizontalMap, \string +\VerticalMap\space and \string\DiagonalMap\CD@uG are obsolete - use \CD@lG +\space to pre-define maps}\def\HorizontalMap#1#2#3#4#5{\CD@BK\CD@nB{old +horizontal map}\CD@LC\CD@TJ\def\CD@oJ{\CD@UH{#1}}\CD@SH\CD@iD{#2}\def\CD@QG{% +\CD@UH{#3}}\CD@SH\CD@jD{#4}\def\CD@LE{\CD@UH{#5}}\CD@tD}\def\VerticalMap#1#2#% +3#4#5{\CD@BK\CD@pB433{vertical map}\CD@cD\CD@LC\CD@GB-9995 \let\CD@kD\@fillv +\def\CD@oJ{\CD@GG{#1}}\CD@VH\CD@iD{#2}\def\CD@QG{\CD@GG{#3}}\CD@VH\CD@jD{#4}% +\def\CD@LE{\CD@GG{#5}}\CD@tD}\def\DiagonalMap#1#2#3#4#5{\CD@BK\CD@LC\def +\CD@OG{4}\let\CD@kD\undefined\let\CD@ZD\CD@YD\def\CD@WK{2}\def\CD@aK{2}\def +\CD@ZK{1}\def\CD@bK{1}\def\CD@QG{\CD@vF{#3}}\ifPositiveGradient\let\mv\raise +\def\CD@oJ{\CD@vF{#5}}\def\CD@iD{\CD@vF{#4}}\def\CD@jD{\CD@vF{#2}}\def\CD@LE{% +\CD@vF{#1}}\else\let\mv\lower\def\CD@oJ{\CD@vF{#1}}\def\CD@iD{\CD@vF{#2}}\def +\CD@jD{\CD@vF{#4}}\def\CD@LE{\CD@vF{#5}}\fi\CD@tD}\def\CD@aE{-}\def\CD@AD{% +\empty}\def\CD@SH{\CD@EG\CD@bE\CD@aE\@fillh}\def\CD@VH{\CD@EG\CD@MK\CD@KK +\@fillv}\def\CD@EG#1#2#3#4#5{\def\CD@CH{#5}\ifx\CD@CH#2\let#4#3\else\let#4% +\null\ifx\CD@CH\empty\else\ifx\CD@CH\CD@AD\else\let#4\CD@CH\fi\fi\fi}\def +\CD@UH#1{\hbox{\mathsurround\z@\offinterlineskip\def\CD@CH{#1}\ifx\CD@CH +\empty\else\ifx\CD@CH\CD@AD\else\CD@k\mkern-1.5mu{\CD@CH}\mkern-1.5mu\CD@ND +\fi\fi}}\def\CD@yD#1#2{\setbox#1=\hbox\bgroup\setbox0=\hbox{\CD@k\labelstyle(% +)\CD@ND}%% ASCII round brackets +\setbox1=\null\ht1\ht0\dp1\dp0\box1 \kern.1\CD@zC\CD@k\bgroup\labelstyle +\aftergroup\CD@LD\CD@xD}\def\CD@LD{\CD@ND\kern.1\CD@zC\egroup\CD@tD}\def +\CD@xD{\futurelet\CD@EH\CD@mJ}\def\CD@mJ{%% qualifiers on label arguments +\catcase\bgroup:\CD@v;\catcase\egroup:\missing@label;\catcase\space:\CD@TF;% +\tokcase[:\CD@XF;%%]%ascii close square bracket +\default:\CD@zJ;\endswitch}\def\CD@v{\let\CD@MD\CD@c\let\CD@CH}\def\CD@zJ#1{% +\let\CD@UF\egroup{\let\actually@braces@missing@around@macro@in@label\CD@ZH +\let\CD@MD\CD@xC\let\CD@UF\CD@VF#1% +\actually@braces@missing@around@macro@in@label}\CD@UF}\def +\actually@braces@missing@around@macro@in@label{\let\CD@CH=}\def\missing@label +{\egroup\CD@YA{missing label}\CD@PE}\def\CD@xC{\egroup\missing@label}\outer +\def\CD@ZH{}\def\CD@UF{}\def\CD@VF{\CD@wC\CD@UF}\def\CD@MD{}\def\CD@XF{\let +\CD@N\CD@xD\get@square@arg\CD@AE}\CD@rG\CD@PE{The text which has just been +read is not allowed within map labels.}\def\CD@c{\egroup\CD@YA{missing \CD@yC +\space inserted after label}\CD@PE}\def\upper@label{\CD@oD\CD@yD6}\def +\lower@label{\def\positional@{\CD@@A\break@args}\CD@yD7}\def\middle@label{% +\CD@yD3}\CD@tG\CD@yE\CD@pD\CD@oD\def\CD@iF{\ifPositiveGradient\CD@tJ +\expandafter\upper@label\else\expandafter\lower@label\fi}\def\CD@iI{% +\ifPositiveGradient\CD@tJ\expandafter\lower@label\else\expandafter +\upper@label\fi}\CD@ZA\CD@QH{labels as positional arguments are obsolete}\def +\positional@{\CD@QH\CD@yE\CD@tJ\expandafter\upper@label\else\expandafter +\lower@label\fi-}\def\CD@tD{\futurelet\CD@EH\switch@arg}\def\eat@space{% +\afterassignment\CD@tD\let\CD@EH= }\def\CD@TF{\afterassignment\CD@xD\let +\CD@EH= }\def\CD@BC{\get@round@pair\CD@uD}\def\CD@uD#1#2{\def\CD@WK{#1}\def +\CD@aK{#2}\CD@tD}\def\optional@{\let\CD@N\CD@tD\get@square@arg\CD@AE}\def +\CD@JJ.{\CD@sC\CD@tD}\def\CD@sC{\let\CD@iD\fill@dot\let\CD@jD\fill@dot\def +\CD@MI{\let\CD@iD\dfdot\let\CD@jD\dfdot}}\def\CD@MI{}\def\CD@@E#1,{\CD@nH#1,% +\begingroup\ifx\@name\CD@RD\CD@FF\aftergroup\CD@e\fi\aftergroup\CD@jC\else +\expandafter\def\expandafter\CD@RF\expandafter{\csname\@name\endcsname}% +\expandafter\CD@vD\CD@RF\CD@KD\ifx\CD@RF\empty\aftergroup\CD@pC\expandafter +\aftergroup\csname\CD@FB\@name\endcsname\expandafter\aftergroup\csname\CD@FB @% +\@name\endcsname\else\gdef\CD@GE{#1}\CD@gB{\string\relax\space inserted before +`[\CD@GE'}\message{(I was trying to read this as a \CD@tA\ option.)}% +\aftergroup\CD@H\fi\fi\endgroup}\def\CD@vD#1#2\CD@KD{\def\CD@RF{#2}}\def +\CD@jC{\let\CD@CH\CD@N\let\CD@N\relax\CD@CH}\def\CD@H#1],{% +%% ASCII close square bracket +\CD@jC\relax\def\CD@RF{#1}\ifx\CD@RF\empty\def\CD@RF{[\CD@GE]}% +%% ASCII open and close square bracket +\else\def\CD@RF{[\CD@GE,#1]}%% ASCII open and close square bracket +\fi\CD@RF}\def\CD@pC#1#2{\ifx#2\undefined\ifx#1\undefined\CD@gB{option `% +\@name' undefined}\else#1\fi\else\CD@FF\expandafter#2\CD@GK\CD@PK\else\CD@QK +\fi\fi\CD@DH}\CD@tG\CD@FF\CD@QK\CD@PK\def\CD@nH#1,{\CD@FF\ifx\CD@GK\undefined +\CD@e\else\expandafter\CD@oH\CD@GK,#1,(,),(,)[]% +%%ASCII 5commas two pairs round, pair square +\fi\fi\CD@FF\else\CD@mH#1==,\fi}\def\CD@e{\CD@gB{option `\@name' needs (x,y) +value}\CD@PK\let\@name\empty}\def\CD@mH#1=#2=#3,{\def\@name{#1}\def\CD@GK{#2}% +\def\CD@RF{#3}\ifx\CD@RF\empty\let\CD@GK\undefined\fi}% +%% ASCII 2commas 2pair round, pair square on next line +\def\CD@oH#1(#2,#3)#4,(#5,#6)#7[]{\def\CD@GK{{#2}{#3}}\def\CD@RF{#1#4#5#6}% +\ifx\CD@RF\empty\def\CD@RF{#7}\ifx\CD@RF\empty\CD@e\fi\else\CD@e\fi}\def +\CD@FB{cds@}\let\CD@N\relax\def\CD@zD#1{\ifx\CD@GK\undefined\CD@gB{option `% +\@name' needs a value}\else#1\CD@GK\relax\fi}\def\CD@BE#1#2{\ifx\CD@GK +\undefined#1#2\relax\else#1\CD@GK\relax\fi}\def\cds@@showpair#1#2{\message{x=% +#1,y=#2}}\def\cds@@diagonalbase#1#2{\edef\CD@ZK{#1}\edef\CD@bK{#2}}\def\CD@DI +#1{\CD@nF{@x}{cdps@#1}\ifx\@x\relax\CD@f{unknown}\else\ifx\@x\empty\CD@f{% +cannot be used}\else\let\CD@IK\@x\fi\fi}\def\CD@f#1{\CD@gB{PostScript +translator `\CD@GK' #1}\CD@ZB\let\cds@PS\empty\let\cds@noPS\empty}\def\CD@PH{% +}\def\CD@PJ{\CD@fA\edef\CD@PH{\noexpand\CD@KB{\@name\space ignored within +maths}}}\def\diagramstyle{\CD@cJ\let\CD@N\relax\CD@CF\CD@AE\CD@AE}\let +\diagramsstyle\diagramstyle\CD@tG\CD@sE\CD@SB\CD@RB\CD@tG\CD@qE\CD@EB\CD@DB +\CD@tG\CD@oE\CD@pA\CD@oA\CD@tG\CD@iE\CD@HA\CD@GA\CD@HA\CD@tG\CD@jE\CD@JA +\CD@IA\CD@tG\CD@kE\CD@LA\CD@KA\CD@tG\CD@vE\CD@aB\CD@ZB\CD@tG\CD@EF\CD@DK +\CD@CK\CD@tG\CD@rE\CD@JB\CD@IB\CD@tG\CD@mE\CD@gA\CD@fA\CD@tG\CD@nE\CD@kA +\CD@jA\CD@tG\CD@AF\CD@iG\CD@hG\CD@RC{cds@ }{}\CD@RC{cds@}{}\CD@RC{cds@1em}{% +\CellSize1\CD@zC}\CD@RC{cds@1.5em}{\CellSize1.5\CD@zC}\CD@RC{cds@2em}{% +\CellSize2\CD@zC}\CD@RC{cds@2.5em}{\CellSize2.5\CD@zC}\CD@RC{cds@3em}{% +\CellSize3\CD@zC}\CD@RC{cds@3.5em}{\CellSize3.5\CD@zC}\CD@RC{cds@4em}{% +\CellSize4\CD@zC}\CD@RC{cds@4.5em}{\CellSize4.5\CD@zC}\CD@RC{cds@5em}{% +\CellSize5\CD@zC}\CD@RC{cds@6em}{\CellSize6\CD@zC}\CD@RC{cds@7em}{\CellSize7% +\CD@zC}\CD@RC{cds@8em}{\CellSize8\CD@zC}\def\cds@abut{\MapsAbut\dimen1\z@ +\dimen5\z@}\def\cds@alignlabels{\CD@IA\CD@KA}\def\cds@amstex{\ifincommdiag +\CD@O\else\def\CD{\diagram[amstex]}%%ascii square brackets [] +\fi\CD@T\catcode\lq\@\active}\def\cds@b{\let\CD@dB\CD@bB}\def\cds@balance{% +\let\CD@hA\CD@AA}\let\cds@bottom\cds@b\def\cds@center{\cds@vcentre +\cds@nobalance}\let\cds@centre\cds@center\def\cds@centerdisplay{\CD@HA\CD@PJ +\cds@balance}\let\cds@centredisplay\cds@centerdisplay\def\cds@crab{\CD@BE +\CD@DC{.5\PileSpacing}}\CD@RC{cds@crab-}{\CD@DC-.5\PileSpacing}\CD@RC{% +cds@crab+}{\CD@DC.5\PileSpacing}\CD@RC{cds@crab++}{\CD@DC1.5\PileSpacing}% +\CD@RC{cds@crab--}{\CD@DC-1.5\PileSpacing}\def\cds@defaultsize{\CD@BE{\let +\CD@QC}{3em}\CD@NJ}\def\cds@displayoneliner{\CD@DB}\let\cds@dotted\CD@sC\def +\cds@dpi{\CD@RJ{1truein}}\def\cds@dpm{\CD@RJ{100truecm}}\let\CD@XA\undefined +\def\cds@eqno{\let\CD@XA\CD@GK\let\CD@EJ\empty}\def\cds@fixed{\CD@qA}\CD@tG +\CD@fE\CD@J\CD@I\def\cds@flushleft{\CD@I\CD@GA\CD@PJ\cds@nobalance\CD@BE +\CD@nA\CD@nA}\def\cds@gap{\CD@AJ\setbox3=\null\ht3=\CD@tI\dp3=\CD@sI\CD@BE{% +\wd3=}\MapShortFall} \def\cds@grid{\ifx\CD@GK\undefined\let\h@grid\relax\let +\v@grid\relax\else\CD@nF{h@grid}{cdgh@\CD@GK}\CD@nF{v@grid}{cdgv@\CD@GK}\ifx +\h@grid\relax\CD@gB{unknown grid `\CD@GK'}\else\CD@WB\fi\fi}\let\h@grid\relax +\let\v@grid\relax\def\cds@gridx{\ifx\CD@GK\undefined\else\cds@grid\fi\let +\CD@CH\h@grid\let\h@grid\v@grid\let\v@grid\CD@CH}\def\cds@h{\CD@zD +\DiagramCellHeight}\def\cds@hcenter{\let\CD@hA\CD@aA}\let\cds@hcentre +\cds@hcenter\def\cds@heads{\CD@BE{\let\CD@sJ}\CD@sJ\CD@@J\CD@vE\else\ifx +\CD@sJ\CD@eF\else\CD@MC\fi\fi}\let\cds@height\cds@h\let\cds@hmiddle +\cds@balance\def\cds@htriangleheight{\CD@BE\DiagramCellHeight +\DiagramCellHeight\DiagramCellWidth1.73205\DiagramCellHeight}\def +\cds@htrianglewidth{\CD@BE\DiagramCellWidth\DiagramCellWidth +\DiagramCellHeight.57735\DiagramCellWidth}\CD@tG\CD@zE\CD@eE\CD@dE\CD@eE\def +\cds@hug{\CD@eE} \def\cds@inline{\CD@gA\let\CD@PH\empty}\def +\cds@inlineoneliner{\CD@EB}\CD@RC{cds@l>}{\CD@zD{\let\CD@RG}\dimen2=\CD@RG}% +\def\cds@labelstyle{\CD@zD{\let\labelstyle}}\def\cds@landscape{\CD@kA}\def +\cds@large{\CellSize5\CD@zC}\let\CD@EJ\empty\def\CD@FJ{\refstepcounter{% +equation}\def\CD@XA{\hbox{\@eqnnum}}}\def\cds@LaTeXeqno{\let\CD@EJ\CD@FJ}\def +\cds@lefteqno{\CD@pA}\def\cds@leftflush{\cds@flushleft\CD@J}\def +\cds@leftshortfall{\CD@zD{\dimen1 }}\def\cds@lowershortfall{% +\ifPositiveGradient\cds@leftshortfall\else\cds@rightshortfall\fi}\def +\cds@loose{\CD@VB}\def\cds@midhshaft{\CD@JA}\def\cds@midshaft{\CD@JA}\def +\cds@midvshaft{\CD@LA}\def\cds@moreoptions{\CD@@A}\let\cds@nobalance +\cds@hcenter\def\cds@nohcheck{\CD@HH}\def\cds@nohug{\CD@dE} \def +\cds@nooptions{\def\CD@aC{\CD@WD}}\let\cds@noorigin\cds@nobalance\def +\cds@nopixel{\CD@@I4\CD@XH\CD@cJ}\def\cds@noPostScript{\global\let\CD@n\empty +\CD@BE\CD@DI\empty\CD@ZB\let\cds@PS\empty\let\cds@noPS\empty}\def\cds@noPS{% +\CD@ZB\global\let\CD@n\empty}\def\cds@notextflow{\CD@RB}\def\cds@noTPIC{% +\CD@CK}\def\cds@objectstyle{\CD@zD{\let\objectstyle}}\def\cds@origin{\let +\CD@hA\CD@iB}\def\cds@p{\CD@zD\PileSpacing}\let\cds@pilespacing\cds@p\def +\cds@pixelsize{\CD@zD\CD@@I\CD@gI}\def\cds@portrait{\CD@jA}\def +\cds@PostScript{\CD@aB\global\let\CD@n\empty\let\cds@PS\CD@aB\let\cds@noPS +\CD@ZB\CD@BE\CD@DI\empty}\def\cds@PS{\CD@aB\global\let\CD@n\empty}\CD@GF\CD@n +{\typeout{\CD@tA: try the PostScript option for better results}}\def +\cds@repositionpullbacks{\let\make@pbk\CD@fH\let\CD@qH\CD@pH}\def +\cds@righteqno{\CD@oA}\def\cds@rightshortfall{\CD@zD{\dimen5 }}\def +\cds@ruleaxis{\CD@zD{\let\axisheight}}\def\cds@cmex{\let\CD@GG\CD@sB\let +\CD@QJ\CD@CJ}\def\cds@s{\cds@height\DiagramCellWidth\DiagramCellHeight}\def +\cds@scriptlabels{\let\labelstyle\scriptstyle}\def\cds@shortfall{\CD@zD +\MapShortFall\dimen1\MapShortFall\dimen5\MapShortFall}\def\cds@showfirstpass{% +\CD@BE{\let\CD@nD}\z@}\def\cds@silent{\def\CD@KB##1{}\def\CD@gB##1{}}\let +\cds@size\cds@s\def\cds@small{\CellSize2\CD@zC}\def\cds@snake{\CD@BE\CD@eJ\z@ +}\def\cds@t{\let\CD@dB\CD@fB}\def\cds@textflow{\CD@SB\CD@PJ}\def\cds@thick{% +\let\CD@rF\tenlnw\CD@LF\CD@NC\CD@BE\MapBreadth{2\CD@LF}\CD@@J}\def\cds@thin{% +\let\CD@rF\tenln\CD@BE\MapBreadth{\CD@NC}\CD@@J}\def\cds@tight{\CD@WB}\let +\cds@top\cds@t\def\cds@TPIC{\CD@DK}\def\cds@uppershortfall{% +\ifPositiveGradient\cds@rightshortfall\else\cds@leftshortfall\fi}\def +\cds@vcenter{\let\CD@dB\CD@cB}\let\cds@vcentre\cds@vcenter\def +\cds@vtriangleheight{\CD@BE\DiagramCellHeight\DiagramCellHeight +\DiagramCellWidth.577035\DiagramCellHeight}\def\cds@vtrianglewidth{\CD@BE +\DiagramCellWidth\DiagramCellWidth\DiagramCellHeight1.73205\DiagramCellWidth}% +\def\cds@vmiddle{\let\CD@dB\CD@eB}\def\cds@w{\CD@zD\DiagramCellWidth}\let +\cds@width\cds@w\def\diagram{\relax\protect\CD@bC}\def\enddiagram{\protect +\CD@SG}\def\CD@bC{\CD@g\CD@uI\incommdiagtrue\edef\CD@wI{\the\CD@NB}\global +\CD@NB\z@\boxmaxdepth\maxdimen\everycr{}\CD@aC}\def\CD@aC{\CD@y\let\CD@N +\CD@ZC\CD@CF\CD@AE\CD@WD}\def\CD@ZC{\CD@gE\expandafter\CD@aC\else\expandafter +\CD@WD\fi}\def\CD@WD{\let\CD@EH\relax\CD@nE\CD@vE\else\CD@KB{landscape ignored +without PostScript}\CD@jA\fi\fi\CD@EJ\setbox2=\vbox\bgroup\CD@JF\CD@VD}\def +\CD@cH{\CD@nE\CD@fB\else\CD@dB\fi\CD@hA\nointerlineskip\setbox0=\null\ht0-% +\CD@pI\dp0\CD@pI\wd0\CD@kI\box0 \global\CD@QA\CD@kF\global\CD@yA\CD@XB\ifx +\CD@NK\undefined\global\CD@RA\CD@kF\else\global\CD@RA\CD@NK\fi\egroup\CD@zF +\CD@nE\setbox2=\hbox to\dp2{\dp2=\CD@QA\global\CD@QA\ht2\ht2\wd2\global\CD@iG +\CD@IK{0 1 bturn}\box2\CD@IK{eturn}\hss}\CD@DB\fi\ifnum\CD@yA=1 \else\CD@DB +\fi\global\@ignorefalse\CD@mE\leavevmode\fi\ifvmode\CD@TA\else\ifmmode\CD@PH +\CD@GI\else\CD@qE\CD@gA\fi\ifinner\CD@gA\fi\CD@mE\CD@GI\else\CD@sE\CD@QB\else +\CD@TA\fi\fi\fi\fi\CD@dD}\def\CD@dD{\global\CD@NB\CD@wI\relax\CD@xE\global +\CD@ID\else\aftergroup\CD@mC\fi\if@ignore\aftergroup\ignorespaces\fi\CD@wC +\ignorespaces}\def\CD@fB{\advance\CD@pI\dimen1\relax}\def\CD@eB{\advance +\CD@pI.5\dimen1\relax}\def\CD@bB{}\def\CD@cB{\CD@fB\advance\CD@pI\CD@YB +\divide\CD@pI2 \advance\CD@pI-\axisheight\relax}\def\CD@aA{}\def\CD@iB{\CD@kF +\z@}\def\CD@AA{\ifdim\dimen2>\CD@kF\CD@kF\dimen2 \else\dimen2\CD@kF\CD@kI +\dimen0 \advance\CD@kI\dimen2 \fi}\def\CD@QB{\skip0\z@\relax\loop\skip1% +\lastskip\ifdim\skip1>\z@\unskip\advance\skip0\skip1 \repeat\vadjust{% +\prevdepth\dp\strutbox\penalty\predisplaypenalty\vskip\abovedisplayskip\CD@UA +\penalty\postdisplaypenalty\vskip\belowdisplayskip}\ifdim\skip0=\z@\else +\hskip\skip0 \global\@ignoretrue\fi}\def\CD@TA{\CD@LG\kern-\displayindent +\CD@UA\CD@LG\global\@ignoretrue}\def\CD@UA{\hbox to\hsize{\CD@fE\ifdim\CD@RA=% +\z@\else\advance\CD@QA-\CD@RA\setbox2=\hbox{\kern\CD@RA\box2}\fi\fi\setbox1=% +\hbox{\ifx\CD@XA\undefined\else\CD@k\CD@XA\CD@ND\fi}\CD@oE\CD@iE\else\advance +\CD@QA\wd1 \fi\wd1\z@\box1 \fi\dimen0\wd2 \advance\dimen0\wd1 \advance\dimen0% +-\hsize\ifdim\dimen0>-\CD@nA\CD@HA\fi\advance\dimen0\CD@QA\ifdim\dimen0>\z@ +\CD@KB{wider than the page by \the\dimen0 }\CD@HA\fi\CD@iE\hss\else\CD@V +\CD@QA\CD@nA\fi\CD@GI\hss\kern-\wd1\box1 }}\def\CD@GI{\CD@AF\CD@@F\else\CD@SC +\global\CD@hG\fi\fi\kern\CD@QA\box2 }\CD@tG\CD@wE\CD@YC\CD@XC\def\CD@JF{% +\CD@cJ\ifdim\DiagramCellHeight=-\maxdimen\DiagramCellHeight\CD@QC\fi\ifdim +\DiagramCellWidth=-\maxdimen\DiagramCellWidth\CD@QC\fi\global\CD@XC\CD@IF\let +\CD@FE\empty\let\CD@z\CD@Q\let\overprint\CD@eH\let\CD@s\CD@rJ\let\enddiagram +\CD@ED\let\\\CD@cC\let\par\CD@jH\let\CD@MD\empty\let\switch@arg\CD@PB\let +\shift\CD@iA\baselineskip\DiagramCellHeight\lineskip\z@\lineskiplimit\z@ +\mathsurround\z@\tabskip\z@\CD@OB}\def\CD@VD{\penalty-123 \begingroup\CD@jA +\aftergroup\CD@K\halign\bgroup\global\advance\CD@NB1 \vadjust{\penalty1}% +\global\CD@FA\z@\CD@OB\CD@j##\CD@DD\CD@Q\CD@Q\CD@OI\CD@j##\CD@DD\cr}\def +\CD@ED{\CD@MD\CD@GD\crcr\egroup\global\CD@JD\endgroup}\def\CD@j{\global +\advance\CD@FA1 \futurelet\CD@EH\CD@i}\def\CD@i{\ifx\CD@EH\CD@DD\CD@tJ\hskip1% +sp plus 1fil \relax\let\CD@DD\relax\CD@vI\else\hfil\CD@k\objectstyle\let +\CD@FE\CD@d\fi}\def\CD@DD{\CD@MD\relax\CD@yI\CD@vI\global\CD@QA\CD@iA\penalty +-9993 \CD@ND\hfil\null\kern-2\CD@QA\null}\def\CD@cC{\cr}\def\across#1{\span +\omit\mscount=#1 \global\advance\CD@FA\mscount\global\advance\CD@FA\m@ne +\CD@sF\ifnum\mscount>2 \CD@fJ\repeat\ignorespaces}\def\CD@fJ{\relax\span\omit +\advance\mscount\m@ne}\def\CD@qJ{\ifincommdiag\ifx\CD@iD\@fillh\ifx\CD@jD +\@fillh\ifdim\dimen3>\z@\else\ifdim\dimen2>93\CD@@I\ifdim\dimen2>18\p@\ifdim +\CD@LF>\z@\count@\CD@bJ\advance\count@\m@ne\ifnum\count@<\z@\count@20\let +\CD@aJ\CD@uJ\fi\xdef\CD@bJ{\the\count@}\fi\fi\fi\fi\fi\fi\fi}\def\CD@cG#1{% +\vrule\horizhtdp width#1\dimen@\kern2\dimen@}\def\CD@uJ{\rlap{\dimen@\CD@@I +\CD@V\dimen@{.182\p@}\CD@zH\dimen@\advance\CD@tI\dimen@\CD@cG0\CD@cG0\CD@cG2% +\CD@cG6\CD@cG6\CD@cG2\CD@cG0\CD@cG0\CD@cG2\CD@cG6\CD@cG0\CD@cG0\CD@cG2\CD@cG2% +\CD@cG6\CD@cG0\CD@cG0\CD@cG2\CD@cG6\CD@cG2\CD@cG2\CD@cG0\CD@cG0}}\def\CD@bJ{% +10}\def\CD@aJ{}\def\CD@XD{\CD@gE\CD@TB\fi\CD@x\CD@WF\CD@HI}\def\CD@x{\CD@QJ +\CD@DC\CD@MJ\ifdim\CD@DC=\z@\else\CD@pF\CD@DC\fi\ifvoid3 \setbox3=\null\ht3% +\CD@tI\dp3\CD@sI\else\CD@V{\ht3}\CD@tI\CD@V{\dp3}\CD@sI\fi\dimen3=.5\wd3 +\ifdim\dimen3=\z@\CD@tE\else\dimen3-\CD@XH\fi\else\CD@TB\fi\CD@V{\dimen2}{\wd +7}\CD@V{\dimen2}{\wd6}\CD@qJ\advance\dimen2-2\dimen3 \dimen4.5\dimen2 \dimen2% +\dimen4 \advance\dimen2\CD@eJ\advance\dimen4-\CD@eJ\advance\dimen2-\wd1 +\advance\dimen4-\wd5 \ifvoid2 \else\CD@V{\ht3}{\ht2}\CD@V{\dp3}{\dp2}\CD@V{% +\dimen2}{\wd2}\fi\ifvoid4 \else\CD@V{\ht3}{\ht4}\CD@V{\dp3}{\dp4}\CD@V{\dimen +4}{\wd4}\fi\advance\skip2\dimen2 \advance\skip4\dimen4 \CD@tE\advance\skip2% +\skip4 \dimen0\dimen5 \advance\dimen0\wd5 \skip3-\skip4 \advance\skip3-\dimen +0 \let\CD@jD\empty\else\skip3\z@\relax\dimen0\z@\fi}\def\CD@WF{% +\offinterlineskip\lineskip.2\CD@zC\ifvoid6 \else\setbox3=\vbox{\hbox to2% +\dimen3{\hss\box6\hss}\box3}\fi\ifvoid7 \else\setbox3=\vtop{\box3 \hbox to2% +\dimen3{\hss\box7\hss}}\fi}\def\CD@HI{\kern\dimen1 \box1 \CD@aJ\CD@iD\hskip +\skip2 \kern\dimen0 \ifincommdiag\CD@jE\penalty1\fi\kern\dimen3 \penalty +\CD@GB\hskip\skip3 \null\kern-\dimen3 \else\hskip\skip3 \fi\box3 \CD@jD\hskip +\skip4 \box5 \kern\dimen5}\def\CD@MF{\ifnum\CD@LH>\CD@TC\CD@V{\dimen1}% +\objectheight\CD@V{\dimen5}\objectheight\else\CD@V{\dimen1}\objectwidth\CD@V{% +\dimen5}\objectwidth\fi}\def\CD@Y{\begingroup\ifdim\dimen7=\z@\kern\dimen8 +\else\ifdim\dimen6=\z@\kern\dimen9 \else\dimen5\dimen6 \dimen6\dimen9 \CD@KJ +\dimen4\dimen2 \CD@dG{\dimen4}\dimen6\dimen5 \dimen7\dimen8 \CD@KJ\CD@iC{% +\dimen2}\ifdim\dimen2<\dimen4 \kern\dimen2 \else\kern\dimen4 \fi\fi\fi +\endgroup}\def\CD@jJ{\CD@JI\setbox\z@\hbox{\lower\axisheight\hbox to\dimen2{% +\CD@DF\ifPositiveGradient\dimen8\ht\CD@MH\dimen9\CD@mI\else\dimen8\dp3 \dimen +9\dimen1 \fi\else\dimen8 \ifPositiveGradient\objectheight\else\z@\fi\dimen9% +\objectwidth\fi\advance\dimen8 \ifPositiveGradient-\fi\axisheight\CD@Y\unhbox +\z@\CD@DF\ifPositiveGradient\dimen8\dp3 \dimen9\dimen0 \else\dimen8\ht\CD@MH +\dimen9\CD@mF\fi\else\dimen8 \ifPositiveGradient\z@\else\objectheight\fi +\dimen9\objectwidth\fi\advance\dimen8 \ifPositiveGradient\else-\fi\axisheight +\CD@Y}}}\def\CD@bD{\dimen6 \CD@aK\DiagramCellHeight\dimen7 \CD@WK +\DiagramCellWidth\CD@jJ\ifPositiveGradient\advance\dimen7-\CD@ZK +\DiagramCellWidth\else\dimen7 \CD@ZK\DiagramCellWidth\dimen6\z@\multiply +\CD@LH\m@ne\fi\advance\dimen6-\CD@bK\DiagramCellHeight\setbox0=\rlap{\global +\CD@iG\kern-\dimen7 \lower\dimen6\hbox{\CD@eD{\the\CD@TC\space\the\CD@LH +\space bturn}\box0 \CD@IK{eturn}}}\ht0\z@\dp0\z@\raise\axisheight\box0 }\def +\CD@vB{\advance\CD@hF-\CD@mI\CD@wJ\CD@hF\advance\CD@wJ\CD@hI\ifvoid\CD@sH +\ifdim\CD@wJ<.1em\ifnum\CD@gD=\@m\else\CD@aG h\CD@wJ<.1em:objects overprint:% +\CD@FA\CD@gD\fi\fi\else\ifhbox\CD@sH\CD@SK\else\CD@TK\fi\advance\CD@wJ\CD@mI +\CD@bH{-\CD@mI}{\box\CD@sH}{\CD@wJ}\z@\fi\CD@hF-\CD@mF\CD@gD\CD@FA\CD@hI\z@}% +\def\CD@SK{\setbox\CD@sH=\hbox{\unhbox\CD@sH\unskip\unpenalty}\setbox\CD@tH=% +\hbox{\unhbox\CD@tH\unskip\unpenalty}\setbox\CD@sH=\hbox to\CD@wJ{\CD@OA\wd +\CD@sH\unhbox\CD@sH\CD@PA\lastkern\unkern\ifdim\CD@PA=\z@\CD@UB\advance\CD@OA +-\wd\CD@tH\else\CD@TB\fi\ifnum\lastpenalty=\z@\else\CD@JA\unpenalty\fi\kern +\CD@PA\ifdim\CD@hF<\CD@OA\CD@JA\fi\ifdim\CD@hI<\wd\CD@tH\CD@JA\fi\CD@jE\CD@hI +\CD@wJ\advance\CD@hI-\CD@OA\advance\CD@hI\wd\CD@tH\ifdim\CD@hI<2\wd\CD@tH +\CD@aG h\CD@hI<2\wd\CD@tH:arrow too short:\CD@FA\CD@gD\fi\divide\CD@hI\tw@ +\CD@hF\CD@wJ\advance\CD@hF-\CD@hI\fi\CD@tE\kern-\CD@hI\fi\hbox to\CD@hI{% +\unhbox\CD@tH}\CD@HG}}\CD@tG\ifinpile\inpiletrue\inpilefalse\inpilefalse\def +\pile{\protect\CD@UJ\protect\CD@uH}\def\CD@uH#1{\CD@l#1\CD@QD}\def\CD@UJ{% +\CD@nB{pile}\setbox0=\vtop\bgroup\aftergroup\CD@lD\inpiletrue\let\CD@FE\empty +\let\pile\CD@KF\let\CD@QD\CD@PD\let\CD@GD\CD@FD\CD@yH\baselineskip.5% +\PileSpacing\lineskip.1\CD@zC\relax\lineskiplimit\lineskip\mathsurround\z@ +\tabskip\z@\let\\\CD@wH}\def\CD@l{\CD@DE\CD@YF\empty\halign\bgroup\hfil\CD@k +\let\CD@FE\CD@d\let\\\CD@vH##\CD@MD\CD@ND\hfil\CD@Q\CD@R##\cr}\CD@rG\CD@NE{% +pile only allows one column.}\CD@rG\CD@UE{you left it out!}\def\CD@R{\CD@QD +\CD@Q\relax\CD@YA{missing \CD@yC\space inserted after \string\pile}\CD@NE}% +\def\CD@PD{\CD@MD\crcr\egroup\egroup}\def\CD@GD{\CD@MD}\def\CD@FD{\CD@MD +\relax\CD@QD\CD@YA{missing \CD@yC\space inserted between \string\pile\space +and \CD@HD}\CD@UE}\def\CD@QD{\CD@MD}\def\CD@lD{\vbox{\dimen1\dp0 \unvbox0 +\setbox0=\lastbox\advance\dimen1\dp0 \nointerlineskip\box0 \nointerlineskip +\setbox0=\null\dp0.5\dimen1\ht0-\dp0 \box0}\ifincommdiag\CD@tJ\penalty-9998 +\fi\xdef\CD@YF{pile}}\def\CD@vH{\cr}\def\CD@wH{\noalign{\skip@\prevdepth +\advance\skip@-\baselineskip\prevdepth\skip@}}\def\CD@KF#1{#1}\def\CD@TK{% +\setbox\CD@sH=\vbox{\unvbox\CD@sH\setbox1=\lastbox\setbox0=\box\voidb@x\CD@tF +\setbox\CD@sH=\lastbox\ifhbox\CD@sH\CD@rC\repeat\unvbox0 \global\CD@QA\CD@ZE}% +\CD@ZE\CD@QA}\def\CD@rC{\CD@jE\setbox\CD@sH=\hbox{\unhbox\CD@sH\unskip\setbox +\CD@sH=\lastbox\unskip\unhbox\CD@sH}\ifdim\CD@wJ<\wd\CD@sH\CD@aG h\CD@wJ<\wd +\CD@sH:arrow in pile too short:\CD@FA\CD@gD\else\setbox\CD@sH=\hbox to\CD@wJ{% +\unhbox\CD@sH}\fi\else\CD@gJ\fi\setbox0=\vbox{\box\CD@sH\nointerlineskip +\ifvoid0 \CD@tJ\box1 \else\vskip\skip0 \unvbox0 \fi}\skip0=\lastskip\unskip}% +\def\CD@gJ{\penalty7 \noindent\unhbox\CD@sH\unskip\setbox\CD@sH=\lastbox +\unskip\unhbox\CD@sH\endgraf\setbox\CD@tH=\lastbox\unskip\setbox\CD@tH=\hbox{% +\CD@JG\unhbox\CD@tH\unskip\unskip\unpenalty}\ifcase\prevgraf\cd@shouldnt P\or +\ifdim\CD@wJ<\wd\CD@tH\CD@aG h\CD@wJ<\wd\CD@sH:object in pile too wide:\CD@FA +\CD@gD\setbox\CD@sH=\hbox to\CD@wJ{\hss\unhbox\CD@tH\hss}\else\setbox\CD@sH=% +\hbox to\CD@wJ{\hss\kern\CD@hF\unhbox\CD@tH\kern\CD@hI\hss}\fi\or\setbox +\CD@sH=\lastbox\unskip\CD@SK\else\cd@shouldnt Q\fi\unskip\unpenalty}\def +\CD@cD{\CD@MJ\ifvoid3 \setbox3=\null\ht3\axisheight\dp3-\ht3 \dimen3.5\CD@LF +\else\dimen4\dp3 \dimen3.5\wd3 \setbox3=\CD@GG{\box3}\dp3\dimen4 \ifdim\ht3=-% +\dp3 \else\CD@TB\fi\fi\dimen0\dimen3 \advance\dimen0-.5\CD@LF\setbox0\null\ht +0\ht3\dp0\dp3\wd0\wd3 \ifvoid6\else\setbox6\hbox{\unhbox6\kern\dimen0\kern2pt% +}\dimen0\wd6 \fi\ifvoid7\else\setbox7\hbox{\kern2pt\kern\dimen3\unhbox7}% +\dimen3\wd7 \fi\setbox3\hbox{\ifvoid6\else\kern-\dimen0\unhbox6\fi\unhbox3 +\ifvoid7\else\unhbox7\kern-\dimen3\fi}\ht3\ht0\dp3\dp0\wd3\wd0 \CD@tE\dimen4=% +\ht\CD@MH\advance\dimen4\dp5 \advance\dimen4\dimen1 \let\CD@jD\empty\else +\dimen4\ht3 \fi\setbox0\null\ht0\dimen4 \offinterlineskip\setbox8=\vbox spread% +2ex{\kern\dimen5 \box1 \CD@iD\vfill\CD@tE\else\kern\CD@eJ\fi\box0}\ht8=\z@ +\setbox9=\vtop spread2ex{\kern-\ht3 \kern-\CD@eJ\box3 \CD@jD\vfill\box5 \kern +\dimen1}\dp9=\z@\hskip\dimen0plus.0001fil \box9 \kern-\CD@LF\box8 \CD@kE +\penalty2 \fi\CD@tE\penalty1 \fi\kern\PileSpacing\kern-\PileSpacing\kern-.5% +\CD@LF\penalty\CD@GB\null\kern\dimen3}\def\CD@cI{\ifhbox\CD@VA\CD@KB{clashing +verticals}\ht\CD@MH.5\dp\CD@VA\dp\CD@MH-\ht5 \CD@yB\ht\CD@MH\z@\dp\CD@MH\z@ +\fi\dimen1\dp\CD@VA\CD@xA\prevgraf\unvbox\CD@VA\CD@wA\lastpenalty\unpenalty +\setbox\CD@VA=\null\setbox\CD@lI=\hbox{\CD@JG\unhbox\CD@lI\unskip\unpenalty +\dimen0\lastkern\unkern\unkern\unkern\kern\dimen0 \CD@HG}\setbox\CD@lF=\hbox{% +\unhbox\CD@lF\dimen0\lastkern\unkern\unkern\global\CD@QA\lastkern\unkern\kern +\dimen0 }\CD@tF\ifnum\CD@xA>4 \CD@zI\repeat\unskip\unskip\advance\CD@mF.5\wd +\CD@VA\advance\CD@mF\wd\CD@lF\advance\CD@mI.5\wd\CD@VA\advance\CD@mI\wd\CD@lI +\ifnum\CD@FA=\CD@lA\CD@OA.5\wd\CD@VA\edef\CD@NK{\the\CD@OA}\fi\setbox\CD@VA=% +\hbox{\kern-\CD@mF\box\CD@lF\unhbox\CD@VA\box\CD@lI\kern-\CD@mI\penalty\CD@wA +\penalty\CD@NB}\ht\CD@VA\dimen1 \dp\CD@VA\z@\wd\CD@VA\CD@tB\CD@vB}\def\CD@zI{% +\ifdim\wd\CD@lF<\CD@QA\setbox\CD@lF=\hbox to\CD@QA{\CD@JG\unhbox\CD@lF}\fi +\advance\CD@xA\m@ne\setbox\CD@VA=\hbox{\box\CD@lF\unhbox\CD@VA}\unskip\setbox +\CD@lF=\lastbox\setbox\CD@lF=\hbox{\unhbox\CD@lF\unskip\unpenalty\dimen0% +\lastkern\unkern\unkern\global\CD@QA\lastkern\unkern\kern\dimen0 }}\def\CD@yB +{\dimen1\dp\CD@VA\ifhbox\CD@VA\CD@xB\else\CD@zB\fi\setbox\CD@VA=\vbox{% +\penalty\CD@NB}\dp\CD@VA-\dp\CD@MH\wd\CD@VA\CD@tB}\def\CD@zB{\unvbox\CD@VA +\CD@wA\lastpenalty\unpenalty\ifdim\dimen1<\ht\CD@MH\CD@aG v\dimen1<\ht\CD@MH:% +rows overprint:\CD@NB\CD@wA\fi}\def\CD@xB{\dimen0=\ht\CD@VA\setbox\CD@VA=% +\hbox\bgroup\advance\dimen1-\ht\CD@MH\unhbox\CD@VA\CD@xA\lastpenalty +\unpenalty\CD@wA\lastpenalty\unpenalty\global\CD@RA-\lastkern\unkern\setbox0=% +\lastbox\CD@tF\setbox\CD@VA=\hbox{\box0\unhbox\CD@VA}\setbox0=\lastbox\ifhbox +0 \CD@kJ\repeat\global\CD@SA-\lastkern\unkern\global\CD@QA\CD@JK\unhbox\CD@VA +\egroup\CD@JK\CD@QA\CD@bH{\CD@SA}{\box\CD@VA}{\CD@RA}{\dimen1}}\def\CD@kJ{% +\setbox0=\hbox to\wd0\bgroup\unhbox0 \unskip\unpenalty\dimen7\lastkern\unkern +\ifnum\lastpenalty=1 \unpenalty\CD@UB\else\CD@TB\fi\ifnum\lastpenalty=2 +\unpenalty\dimen2.5\dimen0\advance\dimen2-.5\dimen1\advance\dimen2-% +\axisheight\else\dimen2\z@\fi\setbox0=\lastbox\dimen6\lastkern\unkern\setbox1% +=\lastbox\setbox0=\vbox{\unvbox0 \CD@tE\kern-\dimen1 \else\ifdim\dimen2=\z@ +\else\kern\dimen2 \fi\fi}\ifdim\dimen0<\ht0 \CD@aG v\dimen0<\ht0:upper part of +vertical too short:{\CD@tE\CD@NB\else\CD@wA\fi}\CD@xA\else\setbox0=\vbox to% +\dimen0{\unvbox0}\fi\setbox1=\vtop{\unvbox1}\ifdim\dimen1<\dp1 \CD@aG v\dimen +1<\dp1:lower part of vertical too short:\CD@NB\CD@wA\else\setbox1=\vtop to% +\dimen1{\ifdim\dimen2=\z@\else\kern-\dimen2 \fi\unvbox1 }\fi\box1 \kern\dimen +6 \box0 \kern\dimen7 \CD@HG\global\CD@QA\CD@JK\egroup\CD@JK\CD@QA\relax}% +\countdef\CD@u=14 \newcount\CD@CA\newcount\CD@XB\newcount\CD@NB\let\CD@LB +\insc@unt\newcount\CD@FA\newcount\CD@lA\let\CD@mA\CD@XB\newcount\CD@MB\CD@tG +\CD@DF\CD@bI\CD@aI\CD@aI\def\CD@nD{-1}\def\CD@K{\ifnum\CD@nD<\z@\else +\begingroup\scrollmode\showboxdepth\CD@nD\showboxbreadth\maxdimen\showlists +\endgroup\fi\CD@bI\CD@zF\CD@CA=\CD@u\advance\CD@CA1 \CD@XB=\CD@CA\ifnum\CD@NB +=1 \CD@JA\fi\advance\CD@XB\CD@NB\dimen1\z@\skip0\z@\count@=\insc@unt\advance +\count@\CD@u\divide\count@2 \ifnum\CD@XB>\count@\CD@KB{The diagram has too +many rows! It can't be reformatted.}\else\CD@NG\CD@WI\fi\CD@cH}\def\CD@NG{% +\CD@NB\CD@CA\CD@uF\ifnum\CD@NB<\CD@XB\setbox\CD@NB\box\voidb@x\advance\CD@NB1% +\relax\repeat\CD@NB\CD@CA\skip\z@\z@\CD@uF\CD@GB\lastpenalty\unpenalty\ifnum +\CD@GB>\z@\CD@KE\repeat\ifnum\CD@GB=-123 \CD@tJ\unpenalty\else\cd@shouldnt D% +\fi\ifx\v@grid\relax\else\CD@NB\CD@XB\advance\CD@NB\m@ne\expandafter\CD@VJ +\v@grid\fi\CD@MB\CD@mA\CD@tB\z@\CD@XG\ifx\h@grid\relax\else\expandafter\CD@LJ +\h@grid\fi\count@\CD@XB\advance\count@\m@ne\CD@YB\ht\count@}\def\CD@KE{% +\ifcase\CD@GB\or\CD@MG\else\CD@uA-\lastpenalty\unpenalty\CD@vA\lastpenalty +\unpenalty\setbox0=\lastbox\CD@WG\fi\CD@wD}\def\CD@wD{\skip1\lastskip\unskip +\advance\skip0\skip1 \ifdim\skip1=\z@\else\expandafter\CD@wD\fi}\def\CD@MG{% +\setbox0=\lastbox\CD@pI\dp0 \advance\CD@pI\skip\z@\skip\z@\z@\advance\CD@NF +\CD@pI\CD@uE\ifnum\CD@NB>\CD@CA\CD@NF\DiagramCellHeight\CD@pI\CD@NF\advance +\CD@pI-\CD@qI\fi\fi\CD@qI\ht0 \CD@NF\CD@qI\setbox\CD@NB\hbox{\unhbox\CD@NB +\unhbox0}\dp\CD@NB\CD@pI\ht\CD@NB\CD@qI\advance\CD@NB1 }\def\CD@WG{\ifnum +\CD@uA<\z@\advance\CD@uA\CD@XB\ifnum\CD@uA<\CD@CA\CD@UG\else\CD@OA\dp\CD@uA +\CD@PA\ht\CD@uA\setbox\CD@uA\hbox{\box\z@\penalty\CD@vA\penalty\CD@GB\unhbox +\CD@uA}\dp\CD@uA\CD@OA\ht\CD@uA\CD@PA\fi\else\CD@UG\fi}\def\CD@UG{\CD@KB{% +diagonal goes outside diagram (lost)}}\def\CD@fI{\advance\CD@uA\CD@XB\ifnum +\CD@uA<\CD@CA\CD@UG\else\ifnum\CD@uA=\CD@NB\CD@VG\else\ifnum\CD@uA>\CD@NB +\cd@shouldnt M\else\CD@OA\dp\CD@uA\CD@PA\ht\CD@uA\setbox\CD@uA\hbox{\box\z@ +\penalty\CD@vA\penalty\CD@GB\unhbox\CD@uA}\dp\CD@uA\CD@OA\ht\CD@uA\CD@PA\fi +\fi\fi}\def\CD@WI{\CD@t\CD@AJ\setbox\CD@PC=\hbox{\CD@k A\@super f\CD@lJ f% +\CD@ND}\CD@ZE\z@\CD@JK\z@\CD@kI\z@\CD@kF\z@\CD@NB=\CD@XB\CD@NF\z@\CD@uB\z@ +\CD@uF\ifnum\CD@NB>\CD@CA\advance\CD@NB\m@ne\CD@qI\ht\CD@NB\CD@pI\dp\CD@NB +\advance\CD@NF\CD@qI\CD@rI\advance\CD@uB\CD@NF\CD@KC\CD@ZI\CD@w\ht\CD@NB +\CD@qI\dp\CD@NB\CD@pI\nointerlineskip\box\CD@NB\CD@NF\CD@pI\setbox\CD@NB\null +\ht\CD@NB\CD@uB\repeat\CD@wB\nointerlineskip\box\CD@NB\CD@gG\CD@ZE +\DiagramCellWidth{width}\CD@gG\CD@JK\DiagramCellHeight{height}\CD@VA\CD@LB +\advance\CD@VA-\CD@lA\advance\CD@VA\m@ne\advance\CD@VA\CD@mA\dimen0\wd\CD@VA +\CD@tI\axisheight\dimen1\CD@uB\advance\dimen1-\CD@YB\dimen2\CD@kI\advance +\dimen2-\dimen0 \advance\CD@XB-\CD@CA\advance\CD@LB-\CD@lA}\count@\year +\multiply\count@12 \advance\count@\month\ifnum\count@>24074 \loop\iftrue +\message{gone February 2006!}\repeat\fi\def\CD@wB{\CD@qI-\CD@NF\CD@pI\CD@NF +\setbox\CD@MH=\null\dp\CD@MH\CD@NF\ht\CD@MH-\CD@NF\CD@mF\z@\CD@mI\z@\CD@lA +\CD@LB\advance\CD@lA-\CD@MB\advance\CD@lA\CD@mA\CD@FA\CD@LB\CD@VA\CD@MB\CD@sF +\ifnum\CD@FA>\CD@lA\advance\CD@FA\m@ne\advance\CD@VA\m@ne\CD@tB\wd\CD@VA +\setbox\CD@FA=\box\voidb@x\CD@yB\repeat\CD@w\ht\CD@NB\CD@qI\dp\CD@NB\CD@pI}% +\def\CD@gG#1#2#3{\ifdim#1>.01\CD@zC\CD@PA#2\relax\advance\CD@PA#1\relax +\advance\CD@PA.99\CD@zC\count@\CD@PA\divide\count@\CD@zC\CD@KB{increase cell #% +3 to \the\count@ em}\fi}\def\CD@rI{\CD@FA=\CD@LB\penalty4 \noindent\unhbox +\CD@NB\CD@sF\unskip\setbox0=\lastbox\ifhbox0 \advance\CD@FA\m@ne\setbox\CD@FA +\hbox to\wd0{\null\penalty-9990\null\unhbox0}\repeat\CD@lA\CD@FA\advance +\CD@FA\CD@MB\advance\CD@FA-\CD@mA\ifnum\CD@FA<\CD@LB\count@\CD@FA\advance +\count@\m@ne\dimen0=\wd\count@\count@\CD@MB\advance\count@\m@ne\CD@tB\wd +\count@\CD@sF\ifnum\CD@FA<\CD@LB\CD@DJ\CD@XG\dimen0\wd\CD@FA\advance\CD@FA1 +\repeat\fi\CD@sF\CD@GB\lastpenalty\unpenalty\ifnum\CD@GB>\z@\CD@vA +\lastpenalty\unpenalty\CD@VG\repeat\endgraf\unskip\ifnum\lastpenalty=4 +\unpenalty\else\cd@shouldnt S\fi}\def\CD@VG{\advance\CD@vA\CD@lA\advance +\CD@vA\m@ne\setbox0=\lastbox\ifnum\CD@vA<\CD@LB\setbox\CD@vA\hbox{\box0% +\penalty\CD@GB\unhbox\CD@vA}\else\CD@UG\fi}\def\CD@bG{}\CD@tG\CD@uE\CD@WB +\CD@VB\def\CD@DJ{\advance\dimen0\wd\CD@FA\divide\dimen0\tw@\CD@uE\dimen0% +\DiagramCellWidth\else\CD@V{\dimen0}\DiagramCellWidth\CD@pJ\fi\advance\CD@tB +\dimen0 }\def\CD@XG{\setbox\CD@MB=\vbox{}\dp\CD@MB=\CD@uB\wd\CD@MB\CD@tB +\advance\CD@MB1 }\def\CD@LJ#1,{\def\CD@GK{#1}\ifx\CD@GK\CD@RD\else\advance +\CD@tB\CD@GK\DiagramCellWidth\CD@XG\expandafter\CD@LJ\fi}\def\CD@VJ#1,{\def +\CD@GK{#1}\ifx\CD@GK\CD@RD\else\ifnum\CD@NB>\CD@CA\CD@NF\CD@GK +\DiagramCellHeight\advance\CD@NF-\dp\CD@NB\advance\CD@NB\m@ne\ht\CD@NB\CD@NF +\fi\expandafter\CD@VJ\fi}\def\CD@pJ{\CD@wE\CD@OA\dimen0 \advance\CD@OA-% +\DiagramCellWidth\ifdim\CD@OA>2\MapShortFall\CD@KB{badly drawn diagonals (see +manual)}\let\CD@pJ\empty\fi\else\let\CD@pJ\empty\fi}\def\CD@KC{\CD@VA\CD@mA +\CD@sF\ifnum\CD@VA<\CD@MB\dimen0\dp\CD@VA\advance\dimen0\CD@NF\dp\CD@VA\dimen +0 \advance\CD@VA1 \repeat}\def\CD@bH#1#2#3#4{\ifnum\CD@FA<\CD@LB\CD@OA=#1% +\relax\setbox\CD@FA=\hbox{\setbox0=#2\dimen7=#4\relax\dimen8=#3\relax\ifhbox +\CD@FA\unhbox\CD@FA\advance\CD@OA-\lastkern\unkern\fi\ifdim\CD@OA=\z@\else +\kern-\CD@OA\fi\raise\dimen7\box0 \kern-\dimen8 }\ifnum\CD@FA=\CD@lA\CD@V +\CD@kF\CD@OA\fi\else\cd@shouldnt O\fi}\def\CD@w{\setbox\CD@NB=\hbox{\CD@FA +\CD@lA\CD@VA\CD@mA\CD@PA\z@\relax\CD@sF\ifnum\CD@FA<\CD@LB\CD@tB\wd\CD@VA +\relax\CD@eI\advance\CD@FA1 \advance\CD@VA1 \repeat}\CD@V\CD@kI{\wd\CD@NB}\wd +\CD@NB\z@}\def\CD@eI{\ifhbox\CD@FA\CD@OA\CD@tB\relax\advance\CD@OA-\CD@PA +\relax\ifdim\CD@OA=\z@\else\kern\CD@OA\fi\CD@PA\CD@tB\advance\CD@PA\wd\CD@FA +\relax\unhbox\CD@FA\advance\CD@PA-\lastkern\unkern\fi}\def\CD@ZI{\setbox +\CD@sH=\box\voidb@x\CD@VA=\CD@MB\CD@FA\CD@LB\CD@VA\CD@mA\advance\CD@VA\CD@FA +\advance\CD@VA-\CD@lA\advance\CD@VA\m@ne\CD@tB\wd\CD@VA\count@\CD@LB\advance +\count@\m@ne\CD@hF.5\wd\count@\advance\CD@hF\CD@tB\CD@A\m@ne\CD@gD\@m\CD@sF +\ifnum\CD@FA>\CD@lA\advance\CD@FA\m@ne\advance\CD@hF-\CD@tB\CD@PI\wd\CD@VA +\CD@tB\advance\CD@hF\CD@tB\advance\CD@VA\m@ne\CD@tB\wd\CD@VA\repeat\CD@mF +\CD@kF\CD@mI-\CD@mF\CD@vB}\newcount\CD@GB\def\CD@s{}\def\CD@t{\mathsurround +\z@\hsize\z@\rightskip\z@ plus1fil minus\maxdimen\parfillskip\z@\linepenalty +9000 \looseness0 \hfuzz\maxdimen\hbadness10000 \clubpenalty0 \widowpenalty0 +\displaywidowpenalty0 \interlinepenalty0 \predisplaypenalty0 +\postdisplaypenalty0 \interdisplaylinepenalty0 \interfootnotelinepenalty0 +\floatingpenalty0 \brokenpenalty0 \everypar{}\leftskip\z@\parskip\z@ +\parindent\z@\pretolerance10000 \tolerance10000 \hyphenpenalty10000 +\exhyphenpenalty10000 \binoppenalty10000 \relpenalty10000 \adjdemerits0 +\doublehyphendemerits0 \finalhyphendemerits0 \CD@IA\prevdepth\z@}\newbox +\CD@KG\newbox\CD@IG\def\CD@JG{\unhcopy\CD@KG}\def\CD@HG{\unhcopy\CD@IG}\def +\CD@iJ{\hbox{}\penalty1\nointerlineskip}\def\CD@PI{\penalty5 \noindent\setbox +\CD@MH=\null\CD@mF\z@\CD@mI\z@\ifnum\CD@FA<\CD@LB\ht\CD@MH\ht\CD@FA\dp\CD@MH +\dp\CD@FA\unhbox\CD@FA\skip0=\lastskip\unskip\else\CD@OK\skip0=\z@\fi\endgraf +\ifcase\prevgraf\cd@shouldnt Y \or\cd@shouldnt Z \or\CD@RI\or\CD@XI\else +\CD@QI\fi\unskip\setbox0=\lastbox\unskip\unskip\unpenalty\noindent\unhbox0% +\setbox0\lastbox\unpenalty\unskip\unskip\unpenalty\setbox0\lastbox\CD@tF +\CD@GB\lastpenalty\unpenalty\ifnum\CD@GB>\z@\setbox\z@\lastbox\CD@lB\repeat +\endgraf\unskip\unskip\unpenalty}\def\CD@YJ{\CD@uA\CD@XB\advance\CD@uA-\CD@NB +\CD@vA\CD@FA\advance\CD@vA-\CD@lA\advance\CD@vA1 \expandafter\message{% +prevgraf=\the\prevgraf at (\the\CD@uA,\the\CD@vA)}}\def\CD@XI{\CD@CE\setbox +\CD@lI=\lastbox\setbox\CD@lI=\hbox{\unhbox\CD@lI\unskip\unpenalty}\unskip +\ifdim\ht\CD@lI>\ht\CD@PC\setbox\CD@MH=\copy\CD@lI\else\ifdim\dp\CD@lI>\dp +\CD@PC\setbox\CD@MH=\copy\CD@lI\else\CD@FG\CD@lI\fi\fi\advance\CD@mF.5\wd +\CD@lI\advance\CD@mI.5\wd\CD@lI\setbox\CD@lI=\hbox{\unhbox\CD@lI\CD@HG}\CD@bH +\CD@mF{\box\CD@lI}\CD@mI\z@\CD@yB\CD@vB}\def\CD@CE{\ifnum\CD@A>0 \advance +\dimen0-\CD@tB\CD@iA-.5\dimen0 \CD@A-\CD@A\else\CD@A0 \CD@iA\z@\fi\setbox +\CD@MH=\lastbox\setbox\CD@MH=\hbox{\unhbox\CD@MH\unskip\unskip\unpenalty +\setbox0=\lastbox\global\CD@QA\lastkern\unkern}\advance\CD@iA-.5\CD@QA\unskip +\setbox\CD@MH=\null\CD@mI\CD@iA\CD@mF-\CD@iA}\def\CD@Z{\ht\CD@MH\CD@tI\dp +\CD@MH\CD@sI}\def\CD@FG#1{\setbox\CD@MH=\hbox{\CD@V{\ht\CD@MH}{\ht#1}\CD@V{% +\dp\CD@MH}{\dp#1}\CD@V{\wd\CD@MH}{\wd#1}\vrule height\ht\CD@MH depth\dp\CD@MH +width\wd\CD@MH}}\def\CD@QI{\CD@CE\CD@Z\setbox\CD@lI=\lastbox\unskip\setbox +\CD@lF=\lastbox\unskip\setbox\CD@lF=\hbox{\unhbox\CD@lF\unskip\global\CD@yA +\lastpenalty\unpenalty}\advance\CD@yA9999 \ifcase\CD@yA\CD@VI\or\CD@YI\or +\CD@TI\or\CD@dI\or\CD@cI\or\CD@SI\else\cd@shouldnt9\fi}\def\CD@VI{\CD@FG +\CD@lI\CD@UI\setbox\CD@sH=\box\CD@lF\setbox\CD@tH=\box\CD@lI}\def\CD@YI{% +\CD@FG\CD@lF\setbox\CD@lI\hbox{\penalty8 \unhbox\CD@lI\unskip\unpenalty\ifnum +\lastpenalty=8 \else\CD@xH\fi}\CD@UI\setbox\CD@lF=\hbox{\unhbox\CD@lF\unskip +\unpenalty\global\setbox\CD@DA=\lastbox}\ifdim\wd\CD@lF=\z@\else\CD@xH\fi +\setbox\CD@sH=\box\CD@DA}\def\CD@xH{\CD@KB{extra material in \string\pile +\space cell (lost)}}\def\CD@UI{\CD@yB\ifvoid\CD@sH\else\CD@KB{Clashing +horizontal arrows}\CD@mI.5\CD@hF\CD@mF-\CD@mI\CD@vB\CD@mI\z@\CD@mF\z@\fi +\CD@hI\CD@hF\advance\CD@hI-\CD@mI\CD@hF-\CD@mF\CD@JC\CD@FA}\def\CD@RI{\setbox +0\lastbox\unskip\CD@iA\z@\CD@Z\ifdim\skip0>\z@\CD@tJ\CD@A0 \else\ifnum\CD@A<1 +\CD@A0 \dimen0\CD@tB\fi\advance\CD@A1 \fi}\def\VonH{\CD@MA46\VonH{.5\CD@LF}}% +\def\HonV{\CD@MA57\HonV{.5\CD@LF}}\def\HmeetV{\CD@MA44\HmeetV{-\MapShortFall}% +}\def\CD@MA#1#2#3#4{\CD@pB34#1{\string#3}\CD@SD\CD@GB-999#2 \dimen0=#4\CD@tI +\dimen0\advance\CD@tI\axisheight\CD@sI\dimen0\advance\CD@sI-\axisheight\CD@CF +\CD@HC\CD@ZD}\def\CD@HC#1{\setbox0=\hbox{\CD@k#1\CD@ND}\dimen0.5\wd0 \CD@tI +\ht0 \CD@sI\dp0 \CD@ZD}\def\CD@SD{\setbox0=\null\ht0=\CD@tI\dp0=\CD@sI\wd0=% +\dimen0 \copy0\penalty\CD@GB\box0 }\def\CD@TI{\CD@GC\CD@yB}\def\CD@dI{\CD@GC +\CD@vB}\def\CD@SI{\CD@GC\CD@yB\CD@vB}\def\CD@GC{\setbox\CD@lI=\hbox{\unhbox +\CD@lI}\setbox\CD@lF=\hbox{\unhbox\CD@lF\global\setbox\CD@DA=\lastbox}\ht +\CD@MH\ht\CD@DA\dp\CD@MH\dp\CD@DA\advance\CD@mF\wd\CD@DA\advance\CD@mI\wd +\CD@lI}\CD@tG\ifPositiveGradient\CD@CI\CD@BI\CD@CI\CD@tG\ifClimbing\CD@rB +\CD@qB\CD@rB\newcount\DiagonalChoice\DiagonalChoice\m@ne\ifx\tenln\nullfont +\CD@tJ\def\CD@qF{\CD@KH\ifPositiveGradient/\else\CD@k\backslash\CD@ND\fi}% +\else\def\CD@qF{\CD@rF\char\count@}\fi\let\CD@rF\tenln\def\Use@line@char#1{% +\hbox{#1\CD@rF\ifPositiveGradient\else\advance\count@64 \fi\char\count@}}\def +\CD@cF{\Use@line@char{\count@\CD@TC\multiply\count@8\advance\count@-9\advance +\count@\CD@LH}}\def\CD@ZF{\Use@line@char{\ifcase\DiagonalChoice\CD@gF\or +\CD@fF\or\CD@fF\else\CD@gF\fi}}\def\CD@gF{\ifnum\CD@TC=\z@\count@\rq33 \else +\count@\CD@TC\multiply\count@\sixt@@n\advance\count@-9\advance\count@\CD@LH +\advance\count@\CD@LH\fi}\def\CD@fF{\count@\rq\ifcase\CD@LH55\or\ifcase\CD@TC +66\or22\or52\or61\or72\fi\or\ifcase\CD@TC66\or25\or22\or63\or52\fi\or\ifcase +\CD@TC66\or16\or36\or22\or76\fi\or\ifcase\CD@TC66\or27\or25\or67\or22\fi\fi +\relax}\def\CD@uC#1{\hbox{#1\setbox0=\Use@line@char{#1}\ifPositiveGradient +\else\raise.3\ht0\fi\copy0 \kern-.7\wd0 \ifPositiveGradient\raise.3\ht0\fi +\box0}}\def\CD@jF#1{\hbox{\setbox0=#1\kern-.75\wd0 \vbox to.25\ht0{% +\ifPositiveGradient\else\vss\fi\box0 \ifPositiveGradient\vss\fi}}}\def\CD@jI#% +1{\hbox{\setbox0=#1\dimen0=\wd0 \vbox to.25\ht0{\ifPositiveGradient\vss\fi +\box0 \ifPositiveGradient\else\vss\fi}\kern-.75\dimen0 }}\CD@RC{+h:>}{% +\Use@line@char\CD@fF}\CD@RC{-h:>}{\Use@line@char\CD@gF}\CD@nF{+t:<}{-h:>}% +\CD@nF{-t:<}{+h:>}\CD@RC{+t:>}{\CD@jF{\Use@line@char\CD@fF}}\CD@RC{-t:>}{% +\CD@jI{\Use@line@char\CD@gF}}\CD@nF{+h:<}{-t:>}\CD@nF{-h:<}{+t:>}\CD@RC{+h:>>% +}{\CD@uC\CD@fF}\CD@RC{-h:>>}{\CD@uC\CD@gF}\CD@nF{+t:<<}{-h:>>}\CD@nF{-t:<<}{+% +h:>>}\CD@nF{+h:>->}{+h:>>}\CD@nF{-h:>->}{-h:>>}\CD@nF{+t:<-<}{-h:>>}\CD@nF{-t% +:<-<}{+h:>>}\CD@RC{+t:>>}{\CD@jF{\CD@uC\CD@fF}}\CD@RC{-t:>>}{\CD@jI{\CD@uC +\CD@gF}}\CD@nF{+h:<<}{-t:>>}\CD@nF{-h:<<}{+t:>>}\CD@nF{+t:>->}{+t:>>}\CD@nF{-% +t:>->}{-t:>>}\CD@nF{+h:<-<}{-t:>>}\CD@nF{-h:<-<}{+t:>>}\CD@RC{+f:-}{\CD@EF +\null\else\CD@cF\fi}\CD@nF{-f:-}{+f:-}\def\CD@tC#1#2{\vbox to#1{\vss\hbox to#% +2{\hss.\hss}\vss}}\def\hfdot{\CD@tC{2\axisheight}{.5em}}% +%% % .7em until 29.7.98 +\def\vfdot{\CD@tC{1ex}\z@}%% % 1.46ex until 29.7.98 +\def\CD@bF{\hbox{\dimen0=.3\CD@zC\dimen1\dimen0 \ifnum\CD@LH>\CD@TC\CD@iC{% +\dimen1}\else\CD@dG{\dimen0}\fi\CD@tC{\dimen0}{\dimen1}}}\newarrowfiller{.}% +\hfdot\hfdot\vfdot\vfdot\def\dfdot{\CD@bF\CD@CK}\CD@RC{+f:.}{\dfdot}\CD@RC{-f% +:.}{\dfdot}\def\CD@@K#1{\hbox\bgroup\def\CD@CH{#1\egroup}\afterassignment +\CD@CH%% +\count@=\rq}\def\lnchar{\CD@@K\CD@qF}\let\laf\lnchar\let\lah\lnchar\def\lad{% +\CD@@K\xlad}\def\xlad{\setbox2=\hbox{\CD@qF}\setbox0=\hbox to.3\wd2{\hss.\hss +}\dimen0=\ht0 \advance\dimen0-\dp0 \dimen1=.3\ht2 \advance\dimen1-\dimen0 \dp +0=.5\dimen1 \dimen1=.3\ht2 \advance\dimen1\dimen0 \ht0=.5\dimen1 \raise\dp0% +\box0}\def\lahh{\CD@@K\xlahh}\def\lat{\CD@@K\xlat}\def\xlat{\setbox0=\hbox{% +\CD@qF}\dimen0=\ht0 \setbox1=\hbox to.25\wd0{\ifcase\DiagonalChoice\box0\hss +\or\hss\box0 \or\hss\box0 \or\box0\hss\fi}\vbox to.25\dimen0{\ifClimbing\box1% +\vss\else\vss\box1\fi\kern\z@}}\def\xlahh{\setbox0=\hbox{\CD@qF}% +\ifPositiveGradient\CD@tJ\copy0 \kern-.7\wd0 \mv.3\ht0\box0 \else\ifClimbing +\CD@tJ\copy0 \kern-.7\wd0 \mv.3\ht0\box0 \else\mv-.3\ht0\copy0 \kern-.7\wd0 +\box0 \fi\fi}\def\CD@dF#1{\setbox#1=\hbox{\dimen5\dimen#1 \setbox8=\box#1 +\dimen1\wd8 \count@\dimen5 \divide\count@\dimen1 \ifnum\count@=0 \box8 \ifdim +\dimen5<.95\dimen1 \CD@gB{diagonal line too short}\fi\else\dimen3=\dimen5 +\advance\dimen3-\dimen1 \divide\dimen3\count@\dimen4\dimen3 \CD@dG{\dimen4}% +\ifPositiveGradient\multiply\dimen4\m@ne\fi\dimen6\dimen1 \advance\dimen6-% +\dimen3 \loop\raise\count@\dimen4\copy8 \ifnum\count@>0 \kern-\dimen6 \advance +\count@\m@ne\repeat\fi}}\def\CD@CG#1{\CD@EF\CD@xJ{#1}\else\CD@dF{#1}\fi}\def +\CD@IH#1{}\newdimen\objectheight\objectheight1.8ex \newdimen\objectwidth +\objectwidth1em \def\CD@YD{\dimen6=\CD@aK\DiagramCellHeight\dimen7=\CD@WK +\DiagramCellWidth\CD@KJ\ifnum\CD@LH>0 \ifnum\CD@TC>0 \CD@aF\else\aftergroup +\CD@VC\fi\else\aftergroup\CD@UC\fi}\def\CD@VC{\CD@YA{diagonal map is nearly +vertical}\CD@NA}\def\CD@UC{\CD@YA{diagonal map is nearly horizontal}\CD@NA}% +\CD@rG\CD@NA{Use an orthogonal map instead}\def\CD@aF{\CD@MJ\dimen3\dimen7% +\dimen7\dimen6\CD@iC{\dimen7}\advance\dimen3-\dimen7 \CD@MF\ifnum\CD@LH>% +\CD@TC\advance\dimen6-\dimen1\advance\dimen6-\dimen5 \CD@iC{\dimen1}\CD@iC{% +\dimen5}\else\dimen0\dimen1\advance\dimen0\dimen5\CD@dG{\dimen0}\advance +\dimen6-\dimen0 \fi\dimen2.5\dimen7\advance\dimen2-\dimen1 \dimen4.5\dimen7% +\advance\dimen4-\dimen5 \ifPositiveGradient\dimen0\dimen5 \advance\dimen1-% +\CD@WK\DiagramCellWidth\advance\dimen1 \CD@ZK\DiagramCellWidth\setbox6=\llap{% +\unhbox6\kern.1\ht2}\setbox7=\rlap{\kern.1\ht2\unhbox7}\else\dimen0\dimen1 +\advance\dimen1-\CD@ZK\DiagramCellWidth\setbox7=\llap{\unhbox7\kern.1\ht2}% +\setbox6=\rlap{\kern.1\ht2\unhbox6}\fi\setbox6=\vbox{\box6\kern.1\wd2}\setbox +7=\vtop{\kern.1\wd2\box7}\CD@dG{\dimen0}\advance\dimen0-\axisheight\advance +\dimen0-\CD@bK\DiagramCellHeight\dimen5-\dimen0 \advance\dimen0\dimen6 +\advance\dimen1.5\dimen3 \ifdim\wd3>\z@\ifdim\ht3>-\dp3\CD@TB\fi\fi\dimen3% +\dimen2 \dimen7\dimen2\advance\dimen7\dimen4 \ifvoid3 \else\CD@tE\else\dimen8% +\ht3\advance\dimen8-\axisheight\CD@iC{\dimen8}\CD@X{\dimen8}{.5\wd3}\dimen9% +\dp3\advance\dimen9\axisheight\CD@iC{\dimen9}\CD@X{\dimen9}{.5\wd3}% +\ifPositiveGradient\advance\dimen2-\dimen9\advance\dimen4-\dimen8 \else +\advance\dimen4-\dimen9\advance\dimen2-\dimen8 \fi\fi\advance\dimen3-.5\wd3 +\fi\dimen9=\CD@aK\DiagramCellHeight\advance\dimen9-2\DiagramCellHeight\CD@tE +\advance\dimen2\dimen4 \CD@CG{2}\dimen2-\dimen0\advance\dimen2\dp2 \else +\CD@CG{2}\CD@CG{4}\ifPositiveGradient\dimen2-\dimen0\advance\dimen2\dp2 \dimen +4\dimen5\advance\dimen4-\ht4 \else\dimen4-\dimen0\advance\dimen4\dp4 \dimen2% +\dimen5\advance\dimen2-\ht2 \fi\fi\setbox0=\hbox to\z@{\kern\dimen1 \ifvoid1 +\else\ifPositiveGradient\advance\dimen0-\dp1 \lower\dimen0 \else\advance +\dimen5-\ht1 \raise\dimen5 \fi\rlap{\unhbox1}\fi\raise\dimen2\rlap{\unhbox2}% +\ifvoid3 \else\lower.5\dimen9\rlap{\kern\dimen3\unhbox3}\fi\kern.5\dimen7 +\lower.5\dimen9\box6 \lower.5\dimen9\box7 \kern.5\dimen7 \CD@tE\else\raise +\dimen4\llap{\unhbox4}\fi\ifvoid5 \else\ifPositiveGradient\advance\dimen5-\ht +5 \raise\dimen5 \else\advance\dimen0-\dp5 \lower\dimen0 \fi\llap{\unhbox5}\fi +\hss}\ht0=\axisheight\dp0=-\ht0\box0 }\def\NorthWest{\CD@BI\CD@rB +\DiagonalChoice0 }\def\NorthEast{\CD@CI\CD@rB\DiagonalChoice1 }\def\SouthWest +{\CD@CI\CD@qB\DiagonalChoice3 }\def\SouthEast{\CD@BI\CD@qB\DiagonalChoice2 }% +\def\CD@aD{\vadjust{\CD@uA\CD@FA\advance\CD@uA\ifPositiveGradient\else-\fi +\CD@ZK\relax\CD@vA\CD@NB\advance\CD@vA-\CD@bK\relax\hbox{\advance\CD@uA +\ifPositiveGradient-\fi\CD@WK\advance\CD@vA\CD@aK\hbox{\box6 \kern\CD@DC\kern +\CD@eJ\penalty1 \box7 \box\z@}\penalty\CD@uA\penalty\CD@vA}\penalty\CD@uA +\penalty\CD@vA\penalty104}}\def\CD@eH#1{\relax\vadjust{\hbox@maths{#1}% +\penalty\CD@FA\penalty\CD@NB\penalty\tw@}}\def\CD@lB{\ifcase\CD@GB\or\or +\CD@bH{.5\wd0}{\box0}{.5\wd0}\z@\or\unhbox\z@\setbox\z@\lastbox\CD@bH{.5\wd0}% +{\box0}{.5\wd0}\z@\unpenalty\unpenalty\setbox\z@\lastbox\or\CD@TG\else +\advance\CD@GB-100 \ifnum\CD@GB<\z@\cd@shouldnt B\fi\setbox\z@\hbox{\kern +\CD@mF\copy\CD@MH\kern\CD@mI\CD@uA\CD@XB\advance\CD@uA-\CD@NB\penalty\CD@uA +\CD@uA\CD@FA\advance\CD@uA-\CD@lA\penalty\CD@uA\unhbox\z@\global\CD@yA +\lastpenalty\unpenalty\global\CD@zA\lastpenalty\unpenalty}\CD@uA-\CD@yA\CD@vA +\CD@zA\CD@fI\fi}\def\CD@TG{\global\CD@iG\unhbox\z@\setbox\z@\lastbox\CD@uA +\lastpenalty\unpenalty\advance\CD@uA\CD@mA\CD@vA\CD@XB\advance\CD@vA-% +\lastpenalty\unpenalty\dimen1\lastkern\unkern\setbox3\lastbox\dimen0\lastkern +\unkern\setbox0=\hbox to\z@{\unhbox0\setbox0\lastbox\setbox7\lastbox +\unpenalty\CD@eJ\lastkern\unkern\CD@DC\lastkern\unkern\setbox6\lastbox\dimen7% +\CD@tB\advance\dimen7-\wd\CD@uA\ifdim\dimen7<\z@\CD@CI\multiply\dimen7\m@ne +\let\mv\empty\else\CD@BI\def\mv{\raise\ht1}\kern-\dimen7 \fi\ifnum\CD@vA>% +\CD@NB\dimen6\CD@uB\advance\dimen6-\ht\CD@vA\else\dimen6\z@\fi\CD@jJ\setbox0% +\hbox{\CD@eD{\the\CD@TC\space\ifPositiveGradient\else-\fi\the\CD@LH\space +bturn}\box0 \CD@IK{eturn}}\setbox1\null\ht1\dimen6\wd1\dimen7 \dimen7\dimen2 +\dimen6\wd1 \CD@KJ\CD@uA\CD@LH\CD@vA\CD@TC\dimen6\ht1 \CD@KJ\setbox2\null +\divide\dimen2\tw@\advance\dimen2\CD@eJ\CD@eG{\dimen2}\wd2\dimen2 \dimen0.5% +\dimen7 \advance\dimen0\ifPositiveGradient\else-\fi\CD@eJ\CD@dG{\dimen0}% +\advance\dimen0-\axisheight\ht2\dimen0 \dimen0\CD@DC\CD@eG{\dimen0}\advance +\dimen0\ht2\ht2\dimen0 \dimen0\ifPositiveGradient-\fi\CD@DC\CD@dG{\dimen0}% +\advance\dimen0\wd2\wd2\dimen0 \setbox4\null\dimen0 .6\CD@zC\CD@eG{\dimen0}% +\ht4\dimen0 \dimen0 .2\CD@zC\CD@dG{\dimen0}\wd4\dimen0 \dimen0\wd2 \ifvoid6% +\else\dimen1\ht4 \advance\dimen1\ht2 \CD@CC6+-\raise\dimen1\rlap{% +\ifPositiveGradient\advance\dimen0-\wd6\advance\dimen0-\wd4 \else\advance +\dimen0\wd4 \fi\kern\dimen0\box6}\fi\dimen0\wd2 \ifvoid7\else\dimen1\ht4 +\advance\dimen1-\ht2 \CD@CC7-+\lower\dimen1\rlap{\ifPositiveGradient\advance +\dimen0\wd4 \else\advance\dimen0-\wd7\advance\dimen0-\wd4 \fi\kern\dimen0\box +7}\fi\mv\box0\hss}\ht0\z@\dp0\z@\CD@bH{\z@}{\box\z@}{\z@}{\axisheight}}\def +\CD@CC#1#2#3{\dimen4.5\wd#1 \ifdim\dimen4>.25\dimen7\dimen4=.25\dimen7\fi +\ifdim\dimen4>\CD@zC\dimen4.4\dimen4 \advance\dimen4.6\CD@zC\fi\CD@eG{\dimen4% +}\dimen5\axisheight\CD@dG{\dimen5}\advance\dimen4-\dimen5 \dimen5\dimen4% +\CD@eG{\dimen5}\advance\dimen0\ifPositiveGradient#2\else#3\fi\dimen5 \CD@dG{% +\dimen4}\advance\dimen1\dimen4 } \def\CD@eD#1{\expandafter\CD@IK{#1}}\CD@ZA +\CD@EK{output is PostScript dependent}\def\CD@SC{\CD@IK{/bturn {gsave +currentpoint currentpoint translate 4 2 roll neg exch atan rotate neg exch neg +exch translate } def /eturn {currentpoint grestore moveto} def}}\def\CD@OJ#1{% +\count@#1\relax\multiply\count@7\advance\count@16577\divide\count@33154 }\def +\CD@fD#1{\expandafter\special{#1}} \def\CD@xJ#1{\setbox#1=\hbox{\dimen0\dimen +#1\CD@dG{\dimen0}\CD@OJ{\dimen0}\setbox0=\null\ifPositiveGradient\count@-% +\count@\ht0\dimen0 \else\dp0\dimen0 \fi\box0 \CD@uA\count@\CD@OJ\CD@LF\CD@fD{% +pn \the\count@}\CD@fD{pa 0 0}\CD@OJ{\dimen#1}\CD@fD{pa \the\count@\space\the +\CD@uA}\CD@fD{fp}\kern\dimen#1}}\def\CD@JI{\CD@KJ\begingroup\ifdim\dimen7<% +\dimen6 \dimen2=\dimen6 \dimen6=\dimen7 \dimen7=\dimen2 \count@\CD@LH\CD@LH +\CD@TC\CD@TC\count@\else\dimen2=\dimen7 \fi\ifdim\dimen6>.01\p@\CD@KI\global +\CD@QA\dimen0 \else\global\CD@QA\dimen7 \fi\endgroup\dimen2\CD@QA}\def\CD@KI{% +\CD@hJ\ifdim\dimen7>1.73\dimen6 \divide\dimen2 4 \multiply\CD@TC2 \else\dimen +2=0.353553\dimen2 \advance\CD@LH-\CD@TC\multiply\CD@TC4 \fi\dimen0=4\dimen2 +\CD@ZG4\CD@ZG{-2}\CD@ZG2\CD@ZG{-2.5}}\def\CD@AI{\begingroup\count@\dimen0 +\dimen2 45pt \divide\count@\dimen2 \ifdim\dimen0<\z@\advance\count@\m@ne\fi +\ifodd\count@\advance\count@1\CD@@A\else\CD@y\fi\advance\dimen0-\count@\dimen +2 \CD@gE\multiply\dimen0\m@ne\fi\ifnum\count@<0 \multiply\count@-7 \fi\dimen3% +\dimen1 \dimen6\dimen0 \dimen7 3754936sp \ifdim\dimen0<6\p@\def\CD@OG{4000}% +\fi\CD@KJ\dimen2\dimen3\CD@dG{\dimen2}\CD@hJ\multiply\CD@TC-6 \dimen0\dimen2 +\CD@ZG1\CD@ZG{0.3}\dimen1\dimen0 \dimen2\dimen3 \dimen0\dimen3 \CD@ZG3\CD@ZG{% +1.5}\CD@ZG{0.3}\divide\count@2 \CD@gE\multiply\dimen1\m@ne\fi\ifodd\count@ +\dimen2\dimen1\dimen1\dimen0\dimen0-\dimen2 \fi\divide\count@2 \ifodd\count@ +\multiply\dimen0\m@ne\multiply\dimen1\m@ne\fi\global\CD@QA\dimen0\global +\CD@RA\dimen1\endgroup\dimen6\CD@QA\dimen7\CD@RA}\def\CD@OC{255}\let\CD@OG +\CD@OC\def\CD@KJ{\begingroup\ifdim\dimen7<\dimen6 \dimen9\dimen7\dimen7\dimen +6\dimen6\dimen9\CD@@A\else\CD@y\fi\dimen2\z@\dimen3\CD@XH\dimen4\CD@XH\dimen0% +\z@\dimen8=\CD@OG\CD@XH\CD@lC\global\CD@yA\dimen\CD@gE0\else3\fi\global\CD@zA +\dimen\CD@gE3\else0\fi\endgroup\CD@LH\CD@yA\CD@TC\CD@zA}\def\CD@lC{\count@ +\dimen6 \divide\count@\dimen7 \advance\dimen6-\count@\dimen7 \dimen9\dimen4 +\advance\dimen9\count@\dimen0 \ifdim\dimen9>\dimen8 \CD@@C\else\CD@AC\ifdim +\dimen6>\z@\dimen9\dimen6 \dimen6\dimen7 \dimen7\dimen9 \expandafter +\expandafter\expandafter\CD@lC\fi\fi}\def\CD@@C{\ifdim\dimen0=\z@\ifdim\dimen +9<2\dimen8 \dimen0\dimen8 \fi\else\advance\dimen8-\dimen4 \divide\dimen8% +\dimen0 \ifdim\count@\CD@XH<2\dimen8 \count@\dimen8 \dimen9\dimen4 \advance +\dimen9\count@\dimen0 \CD@AC\fi\fi}\def\CD@AC{\dimen4\dimen0 \dimen0\dimen9 +\advance\dimen2\count@\dimen3 \dimen9\dimen2 \dimen2\dimen3 \dimen3\dimen9 }% +\def\CD@ZG#1{\CD@dG{\dimen2}\advance\dimen0 #1\dimen2 }\def\CD@dG#1{\divide#1% +\CD@TC\multiply#1\CD@LH}\def\CD@eG#1{\divide#1\CD@vA\multiply#1\CD@uA}\def +\CD@iC#1{\divide#1\CD@LH\multiply#1\CD@TC}\def\CD@hJ{\dimen6\CD@LH\CD@XH +\multiply\dimen6\CD@LH\dimen7\CD@TC\CD@XH\multiply\dimen7\CD@TC\CD@KJ}\ifx +\errorcontextlines\undefined\CD@tJ\let\CD@GH\relax\else\def\CD@GH{% +\errorcontextlines\m@ne}\fi\ifnum\inputlineno<0 \let\CD@CD\empty\let\CD@W +\empty\let\CD@mD\relax\let\CD@uI\relax\let\CD@vI\relax\let\CD@zF\relax +\message{! Why not upgrade to TeX version 3? (available since 1990)}\else\def +\CD@W{ at line \number\inputlineno}\def\CD@mD{ - first occurred}\def\CD@uI{% +\edef\CD@h{\the\inputlineno}\global\let\CD@jB\CD@h}\def\CD@h{9999}\def\CD@vI{% +\xdef\CD@jB{\the\inputlineno}}\def\CD@jB{\CD@h}\def\CD@zF{\ifnum\CD@h<% +\inputlineno\edef\CD@CD{\space at lines \CD@h--\the\inputlineno}\else\edef +\CD@CD{\CD@W}\fi}\fi\let\CD@CD\empty\def\CD@YA#1#2{\CD@GH\errhelp=#2% +\expandafter\errmessage{\CD@tA: #1}}\def\CD@KB#1{\begingroup\expandafter +\message{! \CD@tA: #1\CD@CD}\ifnum\CD@XB>\CD@NB\ifnum\CD@CA>\CD@NB\else\ifnum +\CD@lA>\CD@FA\else\ifnum\CD@LB>\CD@FA\advance\CD@XB-\CD@NB\advance\CD@FA-% +\CD@lA\advance\CD@FA1\relax\expandafter\message{! (error detected at row \the +\CD@XB, column \the\CD@FA, but probably caused elsewhere)}\fi\fi\fi\fi +\endgroup}\def\CD@gB#1{{\expandafter\message{\CD@tA\space Warning: #1\CD@W}}}% +\def\CD@CB#1#2{\CD@gB{#1 \string#2 is obsolete\CD@mD}}\def\CD@AB#1{\CD@CB{% +Dimension}{#1}\CD@DE#1\CD@BB\CD@BB}\def\CD@BB{\CD@OA=}\def\CD@@B#1{\CD@CB{% +Count}{#1}\CD@DE#1\CD@OH\CD@OH}\def\CD@OH{\count@=}\def\HorizontalMapLength{% +\CD@AB\HorizontalMapLength}\def\VerticalMapHeight{\CD@AB\VerticalMapHeight}% +\def\VerticalMapDepth{\CD@AB\VerticalMapDepth}\def\VerticalMapExtraHeight{% +\CD@AB\VerticalMapExtraHeight}\def\VerticalMapExtraDepth{\CD@AB +\VerticalMapExtraDepth}\def\DiagonalLineSegments{\CD@@B\DiagonalLineSegments}% +\ifx\tenln\nullfont\CD@ZA\CD@KH{\CD@eF\space diagonal line and arrow font not +available}\else\let\CD@KH\relax\fi\def\CD@aG#1#2<#3:#4:#5#6{\begingroup\CD@PA +#3\relax\advance\CD@PA-#2\relax\ifdim.1em<\CD@PA\CD@uA#5\relax\CD@vA#6\relax +\ifnum\CD@uA<\CD@vA\count@\CD@vA\advance\count@-\CD@uA\CD@KB{#4 by \the\CD@PA +}\if#1v\let\CD@CH\CD@JK\edef\tmp{\the\CD@uA--\the\CD@vA,\the\CD@FA}\else +\advance\count@\count@\if#1l\advance\count@-\CD@A\else\if#1r\advance\count@ +\CD@A\fi\fi\advance\CD@PA\CD@PA\let\CD@CH\CD@ZE\edef\tmp{\the\CD@NB,\the +\CD@uA--\the\CD@vA}\fi\divide\CD@PA\count@\ifdim\CD@CH<\CD@PA\global\CD@CH +\CD@PA\fi\fi\fi\endgroup}\CD@tG\CD@xE\CD@JD\CD@ID\CD@rG\CD@xI{See the message +above.}\CD@rG\CD@lH{Perhaps you've forgotten to end the diagram before +resuming the text, in\CD@uG which case some garbage may be added to the +diagram, but we should be ok now.\CD@uG Alternatively you've left a blank line +in the middle - TeX will now complain\CD@uG that the remaining \CD@S s are +misplaced - so please use comments for layout.}\CD@rG\CD@hD{You have already +closed too many brace pairs or environments; an \CD@HD\CD@uG command was (% +over)due.}\CD@rG\CD@hH{\CD@dC\space and \CD@HD\space commands must match.}% +\def\CD@jH{\ifnum\inputlineno=0 \else\expandafter\CD@iH\fi}\def\CD@iH{\CD@MD +\CD@GD\crcr\CD@YA{missing \CD@HD\space inserted before \CD@kH- type "h"}% +\CD@lH\enddiagram\CD@AG\CD@kH\par}\def\CD@AG#1{\edef\enddiagram{\noexpand +\CD@rD{#1\CD@W}}}\def\CD@rD#1{\CD@YA{\CD@HD\space(anticipated by #1) ignored}% +\CD@xI\let\enddiagram\CD@SG}\def\CD@SG{\CD@YA{misplaced \CD@HD\space ignored}% +\CD@hH}\def\CD@mC{\CD@YA{missing \CD@HD\space inserted.}\CD@hD\CD@AG{closing +group}}\ifx\DeclareOption\undefined\else\ifx\DeclareOption\@notprerr\else +\DeclareOption*{\let\CD@N\relax\let\CD@DH\relax\expandafter\CD@@E +\CurrentOption,}\fi\fi +%%======================================================================% +%% % +%% (21) AUXILLARY MACROS FOR ADJUSTMENT OF COMPONENTS % +%% % +%%======================================================================% +X +%% NOTE: The recommended way of defining arrow commands is now +%% \newarrow{Name}{tail}{filler}{middle}{filler}{head} +%% which defines \rName, \lName, \dName and \uName using arrow parts which +%% have themselves previously been defined using the commands +%% \newarrowtail, \newarrowfiller, \newarrowmiddle and \newarrowhead. +X +%% The components \rhvee etc have been retained for the time being, as an +%% intermediate stage and to continue to support the old \HorizontalMap and +%% \VerticalMap commands, but you should not rely on the continued existence +%% of these macros. +X +%% The various components usually need some correction +%% - longitudinally, ie to prevent gaps and overprints with the shaft, +%% - transversally, ie to prevent "steps" in the junction with the shaft. +%% The former can be done safely ad hoc, eg with \mkern1mu. +%% The latter are now done with the macros \scriptaxis, \boldscriptaxis, +%% \shifthook and \raisehook, which include pixel corrections. +X +%% Please note that these and the other auxillary macros which follow are +%% interim. When it becomes clear exactly what kinds of adjustments are +%% needed for characters, this job will be done by a suitable extension +%% to the language of \newarrowhead, etc. If you have any other ideas for +%% transformations of general use please tell me. +X +%% By all means experiment with other characters for arrowheads, but +%% please, in your own interests, do not rely on macros like \rhvee, +%% send me a copy of your definitions for distribution to other users +%% in this file, and keep track of where your efforts get copied so +%% that they can be replaced with the "official" version when it is +%% incorporated. +X +%% ***** DONT use macros with mangled names like \Cd@gH. ***** +X +\catcode\lq\$=3 %% make sure that $ means maths-shift +\def\vboxtoz{\vbox to\z@}%% \z@ is in plain TeX and means 0pt +X +%% print #1 in \scriptstyle, adjusting for the maths axis height +\def\scriptaxis#1{\@scriptaxis{$\scriptstyle#1$}}%% +\def\ssaxis#1{\@ssaxis{$\scriptscriptstyle#1$}}%% +\def\@scriptaxis#1{\dimen0\axisheight\advance\dimen0-\ss@axisheight\raise +\dimen0\hbox{#1}}\def\@ssaxis#1{\dimen0\axisheight\advance\dimen0-% +\ss@axisheight\raise\dimen0\hbox{#1}} +X +%% Some of the characters would look better in bold since they're +%% taken from sub/superscript fonts; we use LaTeX's \boldmath to +%% do this, defining this to do nothing if it doesn't exist. +%% With the old LaTeX font selection at other than 10pt you may still +%% get nothing happenning. Also, PK fonts may be missing. +%% If you have problems, DONT use boldhook or boldlittlevee. +\ifx\boldmath\undefined%% +\let\boldscriptaxis\scriptaxis%% +\def\boldscript#1{\hbox{$\scriptstyle#1$}}%% +\def\boldscriptscript#1{\hbox{$\scriptscriptstyle#1$}}%% +\else\def\boldscriptaxis#1{\@scriptaxis{\boldmath$\scriptstyle#1$}}%% +\def\boldscript#1{\hbox{\boldmath$\scriptstyle#1$}}%% +\def\boldscriptscript#1{\hbox{\boldmath$\scriptscriptstyle#1$}}%% +\fi +X +%% #1= {} or \boldmath; #2= + or -; #3=\subset or \supset +\def\raisehook#1#2#3{\hbox{\setbox3=\hbox{#1$\scriptscriptstyle#3$}% +%% the character to use +\dimen0\ss@axisheight%% \scriptscriptstyle axis height +\dimen1\axisheight\advance\dimen1-\dimen0%% difference in axis heights +\dimen2\ht3\advance\dimen2-\dimen0% +%% height of char above axis (half spread) +\advance\dimen2-0.021em\advance\dimen1 #2\dimen2% +%% shift = axis_difference +/- half_spread +\raise\dimen1\box3}}%% print the character +%% Mark Dawson suggested using the width +\def\shifthook#1#2#3{\setbox1=\hbox{#1$\scriptscriptstyle#3$}\dimen0\wd1% +\divide\dimen0 12\CD@zH{\dimen0}%% "u" +\dimen1\wd1\advance\dimen1-2\dimen0 \advance\dimen1-2\CD@oI\CD@zH{\dimen1}% +\kern#2\dimen1\box1}%% print +X +%% use the extension font (cmex) for double vertical arrows +\def\@cmex{\mathchar"03}%%ascii double quote +X +%% ************* P U L L B A C K S ************ +X +%% These will probably be replaced by something less ad hoc +%% in a future version. +X +\def\make@pbk#1{\setbox\tw@\hbox to\z@{#1}\ht\tw@\z@\dp\tw@\z@\box\tw@}\def +\CD@fH#1{\overprint{\hbox to\z@{#1}}}\def\CD@qH{\kern0.11em}\def\CD@pH{\kern0% +X.35em} +X +%% This is a hack for my book ``Practical Foundations of Mathematics'' +%% and WILL NOT BE SUPPORTED --- DO NOT USE IT! +\def\dblvert{\def\CD@rH{\kern.5\PileSpacing}}\def\CD@rH{} +X +\def\SEpbk{\make@pbk{\CD@qH\CD@rH\vrule depth 2.87ex height -2.75ex width 0.% +95em \vrule height -0.66ex depth 2.87ex width 0.05em \hss}} +X +\def\SWpbk{\make@pbk{\hss\vrule height -0.66ex depth 2.87ex width 0.05em +\vrule depth 2.87ex height -2.75ex width 0.95em \CD@qH\CD@rH}} +X +\def\NEpbk{\make@pbk{\CD@qH\CD@rH\vrule depth -3.81ex height 4.00ex width 0.% +95em \vrule height 4.00ex depth -1.72ex width 0.05em \hss}} +X +\def\NWpbk{\make@pbk{\hss\vrule height 4.00ex depth -1.72ex width 0.05em +\vrule depth -3.81ex height 4.00ex width 0.95em \CD@qH\CD@rH}} +X +%% Freyd & Scedrov puncture symbol for non-commuting polygon +\def\puncture{{\setbox0\hbox{A}\vrule height.53\ht0 depth-.47\ht0 width.35\ht +0 \kern.12\ht0 \vrule height\ht0 depth-.65\ht0 width.06\ht0 \kern-.06\ht0 +\vrule height.35\ht0 depth0pt width.06\ht0 \kern.12\ht0 \vrule height.53\ht0 +depth-.47\ht0 width.35\ht0 }} +X +%% 2-cells: (24.11.95) +%%% \NEclck puts a clockwise (ie southeast) arrow to the northwest of cell etc +\def\NEclck{\overprint{\raise2.5ex\rlap{ \CD@rH$\scriptstyle\searrow$}}}%% +\def\NEanti{\overprint{\raise2.5ex\rlap{ \CD@rH$\scriptstyle\nwarrow$}}}%% +\def\NWclck{\overprint{\raise2.5ex\llap{$\scriptstyle\nearrow$ \CD@rH}}}%% +\def\NWanti{\overprint{\raise2.5ex\llap{$\scriptstyle\swarrow$ \CD@rH}}}%% +\def\SEclck{\overprint{\lower1ex\rlap{ \CD@rH$\scriptstyle\swarrow$}}}%% +\def\SEanti{\overprint{\lower1ex\rlap{ \CD@rH$\scriptstyle\nearrow$}}}%% +\def\SWclck{\overprint{\lower1ex\llap{$\scriptstyle\nwarrow$ \CD@rH}}}%% +\def\SWanti{\overprint{\lower1ex\llap{$\scriptstyle\searrow$ \CD@rH}}} +X +%%======================================================================% +%% % +%% (22) BITS OF ARROWS % +%% % +%%======================================================================% +X +%% ********** H E A D S *********** +X +%% \diagramstyle[heads=xxx] defines {>} as {xxx} where xxx +%% has been defined by \newarrowhead{xxx} and \newarrowtail{xxx} +X +%% vee head +\def\rhvee{\mkern-10mu\greaterthan}%% +\def\lhvee{\lessthan\mkern-10mu}%% +\def\dhvee{\vboxtoz{\vss\hbox{$\vee$}\kern0pt}}%% +\def\uhvee{\vboxtoz{\hbox{$\wedge$}\vss}}%% +\newarrowhead{vee}\rhvee\lhvee\dhvee\uhvee +X +%% little vee head +\def\dhlvee{\vboxtoz{\vss\hbox{$\scriptstyle\vee$}\kern0pt}}%% +\def\uhlvee{\vboxtoz{\hbox{$\scriptstyle\wedge$}\vss}}%% +\newarrowhead{littlevee}{\mkern1mu\scriptaxis\rhvee}{\scriptaxis\lhvee}% +\dhlvee\uhlvee\ifx\boldmath\undefined%% +\newarrowhead{boldlittlevee}{\mkern1mu\scriptaxis\rhvee}{\scriptaxis\lhvee}% +\dhlvee\uhlvee\else%% +\def\dhblvee{\vboxtoz{\vss\boldscript\vee\kern0pt}}%% +\def\uhblvee{\vboxtoz{\boldscript\wedge\vss}}%% +\newarrowhead{boldlittlevee}{\mkern1mu\boldscriptaxis\rhvee}{\boldscriptaxis +\lhvee}\dhblvee\uhblvee%% +\fi +X +%% curly vee head (uses AMS symbols fonts) +\def\rhcvee{\mkern-10mu\succ}%% +\def\lhcvee{\prec\mkern-10mu}%% +\def\dhcvee{\vboxtoz{\vss\hbox{$\curlyvee$}\kern0pt}}%% +\def\uhcvee{\vboxtoz{\hbox{$\curlywedge$}\vss}}%% +\newarrowhead{curlyvee}\rhcvee\lhcvee\dhcvee\uhcvee +X +%% double vee head %% will probably be withdrawn later +\def\rhvvee{\mkern-13mu\gg}%% 24.8.92 changed 10mu to 13mu +\def\lhvvee{\ll\mkern-13mu}%% to make rule go through +\def\dhvvee{\vboxtoz{\vss\hbox{$\vee$}\kern-.6ex\hbox{$\vee$}\kern0pt}}%% +\def\uhvvee{\vboxtoz{\hbox{$\wedge$}\kern-.6ex \hbox{$\wedge$}\vss}}%% +\newarrowhead{doublevee}\rhvvee\lhvvee\dhvvee\uhvvee +X +%% open and closed triangles (uses AMS symbols fonts) +\def\triangleup{{\scriptscriptstyle\bigtriangleup}}%% +\def\littletriangledown{{\scriptscriptstyle\triangledown}}%% AMS +\def\rhtriangle{\triangleright\mkern1.2mu}%% 29.1.93 +\def\lhtriangle{\triangleleft\mkern.8mu}%% +\def\uhtriangle{\vbox{\kern-.2ex \hbox{$\scriptscriptstyle\bigtriangleup$}% +\kern-.25ex}}%% +%% Changed \scriptstyle\triangledown to \scriptscriptstyle\bigtriangledown +%% at the suggestion of Martin Hofmann (25.11.92) to avoid using AMS symbols +%% and also for compatibility with upward arrow. +\def\dhtriangle{\vbox{\kern-.28ex \hbox{$\scriptscriptstyle\bigtriangledown$}% +\kern-.1ex}}%% 15.1.93 from -.25ex +\def\dhblack{\vbox{\kern-.25ex\nointerlineskip\hbox{$\blacktriangledown$}}}% +%% AMS +\def\uhblack{\vbox{\kern-.25ex\nointerlineskip\hbox{$\blacktriangle$}}}% +%% AMS +\def\dhlblack{\vbox{\kern-.25ex\nointerlineskip\hbox{$\scriptstyle +\blacktriangledown$}}}%% AMS +\def\uhlblack{\vbox{\kern-.25ex\nointerlineskip\hbox{$\scriptstyle +\blacktriangle$}}}%% AMS +\newarrowhead{triangle}\rhtriangle\lhtriangle\dhtriangle\uhtriangle +\newarrowhead{blacktriangle}{\mkern-1mu\blacktriangleright\mkern.4mu}{% +\blacktriangleleft}\dhblack\uhblack\newarrowhead{littleblack}{\mkern-1mu% +\scriptaxis\blacktriangleright}{\scriptaxis\blacktriangleleft\mkern-2mu}% +\dhlblack\uhlblack +X +%% LaTeX arrowheads +\def\rhla{\hbox{\setbox0=\lnchar55\dimen0=\wd0\kern-.6\dimen0\ht0\z@\raise +\axisheight\box0\kern.1\dimen0}}%% +\def\lhla{\hbox{\setbox0=\lnchar33\dimen0=\wd0\kern.05\dimen0\ht0\z@\raise +\axisheight\box0\kern-.5\dimen0}}%% +\def\dhla{\vboxtoz{\vss\rlap{\lnchar77}}}%% +\def\uhla{\vboxtoz{\setbox0=\lnchar66 \wd0\z@\kern-.15\ht0\box0\vss}}%% 1/93 +\newarrowhead{LaTeX}\rhla\lhla\dhla\uhla +X +%% double LaTeX arrowheads %% will probably be withdrawn later +\def\lhlala{\lhla\kern.3em\lhla}%% +\def\rhlala{\rhla\kern.3em\rhla}%% +\def\uhlala{\hbox{\uhla\raise-.6ex\uhla}}%% +\def\dhlala{\hbox{\dhla\lower-.6ex\dhla}}%% +\newarrowhead{doubleLaTeX}\rhlala\lhlala\dhlala\uhlala +X +%% circles % \rho is a Greek letter! +\def\hhO{\scriptaxis\bigcirc\mkern.4mu} \def\hho{{\circ}\mkern1.2mu}% +\newarrowhead{o}\hho\hho\circ\circ%% +\newarrowhead{O}\hhO\hhO{\scriptstyle\bigcirc}{\scriptstyle\bigcirc}%% +X +%% crosses +\def\rhtimes{\mkern-5mu{\times}\mkern-.8mu}\def\lhtimes{\mkern-.8mu{\times}% +\mkern-5mu}\def\uhtimes{\setbox0=\hbox{$\times$}\ht0\axisheight\dp0-\ht0% +\lower\ht0\box0 }\def\dhtimes{\setbox0=\hbox{$\times$}\ht0\axisheight\box0 }% +\newarrowhead{X}\rhtimes\lhtimes\dhtimes\uhtimes\newarrowhead+++++ +X +%% empty head {} is also available +X +%% Y from stmaryrd (vertical ones still need large adjustment) +\newarrowhead{Y}{\mkern-3mu\Yright}{\Yleft\mkern-3mu}\Yup\Ydown +X +%% ********** H E A D S with S H A F T S *********** +X +%% little arrow with shaft +\newarrowhead{->}\rightarrow\leftarrow\downarrow\uparrow +X +%% arrow with double shaft +%%\newarrowhead{=>}\Rightarrow\Leftarrow\Downarrow\Uparrow +\newarrowhead{=>}\Rightarrow\Leftarrow{\@cmex7F}{\@cmex7E} +X +%% harpoon with shaft (trailing up/left can be changed to down/right) +\newarrowhead{harpoon}\rightharpoonup\leftharpoonup\downharpoonleft +\upharpoonleft +X +%% little double-headed arrow with shaft (uses AMS symbols fonts) +\def\twoheaddownarrow{\rlap{$\downarrow$}\raise-.5ex\hbox{$\downarrow$}}%% +\def\twoheaduparrow{\rlap{$\uparrow$}\raise.5ex\hbox{$\uparrow$}}%% +\newarrowhead{->>}\twoheadrightarrow\twoheadleftarrow\twoheaddownarrow +\twoheaduparrow +X +%% ********** T A I L S *********** +X +%% vee tail +\def\rtvee{\greaterthan}%% +\def\ltvee{\mkern-1mu{\lessthan}\mkern.4mu}%% \mkern added 15.1.93 +\def\dtvee{\vee}%% +\def\utvee{\wedge}%% +\newarrowtail{vee}\greaterthan\ltvee\vee\wedge +X +%% little vee tail +\newarrowtail{littlevee}{\scriptaxis\greaterthan}{\mkern-1mu\scriptaxis +\lessthan}{\scriptstyle\vee}{\scriptstyle\wedge}\ifx\boldmath\undefined +\newarrowtail{boldlittlevee}{\scriptaxis\greaterthan}{\mkern-1mu\scriptaxis +\lessthan}{\scriptstyle\vee}{\scriptstyle\wedge}\else\newarrowtail{% +boldlittlevee}{\boldscriptaxis\greaterthan}{\mkern-1mu\boldscriptaxis +\lessthan}{\boldscript\vee}{\boldscript\wedge}\fi +X +%% curly vee tail (uses AMS symbols fonts) +\newarrowtail{curlyvee}\succ{\mkern-1mu{\prec}\mkern.4mu}\curlyvee\curlywedge +X +%% open and closed triangle tails (uses AMS symbols fonts) +\def\rttriangle{\mkern1.2mu\triangleright}%% 29.1.93 +\newarrowtail{triangle}\rttriangle\lhtriangle\dhtriangle\uhtriangle +\newarrowtail{blacktriangle}\blacktriangleright{\mkern-1mu\blacktriangleleft +\mkern.4mu}\dhblack\uhblack\newarrowtail{littleblack}{\scriptaxis +\blacktriangleright\mkern-2mu}{\mkern-1mu\scriptaxis\blacktriangleleft}% +\dhlblack\uhlblack +X +%% LaTeX tails +\def\rtla{\hbox{\setbox0=\lnchar55\dimen0=\wd0\kern-.5\dimen0\ht0\z@\raise +\axisheight\box0\kern-.2\dimen0}}%% +\def\ltla{\hbox{\setbox0=\lnchar33\dimen0=\wd0\kern-.15\dimen0\ht0\z@\raise +\axisheight\box0\kern-.5\dimen0}}%% +\def\dtla{\vbox{\setbox0=\rlap{\lnchar77}\dimen0=\ht0\kern-.7\dimen0\box0% +\kern-.1\dimen0}}%% 15.1.93 from -.6 +\def\utla{\vbox{\setbox0=\rlap{\lnchar66}\dimen0=\ht0\kern-.1\dimen0\box0% +\kern-.6\dimen0}}%% +\newarrowtail{LaTeX}\rtla\ltla\dtla\utla +X +%% double vee tail %% will probably be withdrawn later +\def\rtvvee{\gg\mkern-3mu}%% +\def\ltvvee{\mkern-3mu\ll}%% +\def\dtvvee{\vbox{\hbox{$\vee$}\kern-.6ex \hbox{$\vee$}\vss}}%% +\def\utvvee{\vbox{\vss\hbox{$\wedge$}\kern-.6ex \hbox{$\wedge$}\kern\z@}}%% +\newarrowtail{doublevee}\rtvvee\ltvvee\dtvvee\utvvee +X +%% double LaTeX tails %% will probably be withdrawn later +\def\ltlala{\ltla\kern.3em\ltla}%% +\def\rtlala{\rtla\kern.3em\rtla}%% +\def\utlala{\hbox{\utla\raise-.6ex\utla}}%% +\def\dtlala{\hbox{\dtla\lower-.6ex\dtla}}%% +\newarrowtail{doubleLaTeX}\rtlala\ltlala\dtlala\utlala +X +%% bar (as in \mapsto) +\def\utbar{\vrule height 0.093ex depth0pt width 0.4em}%% +\let\dtbar\utbar%% +\def\rtbar{\mkern1.5mu\vrule height 1.1ex depth.06ex width .04em\mkern1.5mu}% +%% +\let\ltbar\rtbar%% +\newarrowtail{mapsto}\rtbar\ltbar\dtbar\utbar%% +\newarrowtail{|}\rtbar\ltbar\dtbar\utbar%%ascii vertical bar (|) +X +%% hooks (as in \into): choice of after/above and before/below +X +\def\rthooka{\raisehook{}+\subset\mkern-1mu}%% +\def\lthooka{\mkern-1mu\raisehook{}+\supset}%% +\def\rthookb{\raisehook{}-\subset\mkern-2mu}%% +\def\lthookb{\mkern-1mu\raisehook{}-\supset}%% +X +\def\dthooka{\shifthook{}+\cap}%% +\def\dthookb{\shifthook{}-\cap}%% +\def\uthooka{\shifthook{}+\cup}%% +\def\uthookb{\shifthook{}-\cup}%% +X +\newarrowtail{hooka}\rthooka\lthooka\dthooka\uthooka\newarrowtail{hookb}% +\rthookb\lthookb\dthookb\uthookb +X +\ifx\boldmath\undefined\newarrowtail{boldhooka}\rthooka\lthooka\dthooka +\uthooka\newarrowtail{boldhookb}\rthookb\lthookb\dthookb\uthookb\newarrowtail +{boldhook}\rthooka\lthooka\dthookb\uthooka\else\def\rtbhooka{\raisehook +\boldmath+\subset\mkern-1mu}%% +\def\ltbhooka{\mkern-1mu\raisehook\boldmath+\supset}%% +\def\rtbhookb{\raisehook\boldmath-\subset\mkern-2mu}%% +\def\ltbhookb{\mkern-1mu\raisehook\boldmath-\supset}%% +\def\dtbhooka{\shifthook\boldmath+\cap}%% +\def\dtbhookb{\shifthook\boldmath-\cap}%% +\def\utbhooka{\shifthook\boldmath+\cup}%% +\def\utbhookb{\shifthook\boldmath-\cup}%% +\newarrowtail{boldhooka}\rtbhooka\ltbhooka\dtbhooka\utbhooka\newarrowtail{% +boldhookb}\rtbhookb\ltbhookb\dtbhookb\utbhookb\newarrowtail{boldhook}% +\rtbhooka\ltbhooka\dtbhooka\utbhooka\fi +X +%% square-ended hooks (used for closed subsets in ``lifting and gluing'') +\def\dtsqhooka{\shifthook{}+\sqcap}%% +\def\dtsqhookb{\shifthook{}-\sqcap}%% +\def\ltsqhooka{\mkern-1mu\raisehook{}+\sqsupset}%% +\def\ltsqhookb{\mkern-1mu\raisehook{}-\sqsupset}%% +\def\rtsqhooka{\raisehook{}+\sqsubset\mkern-1mu}%% +\def\rtsqhookb{\raisehook{}-\sqsubset\mkern-2mu}%% +\def\utsqhooka{\shifthook{}+\sqcup}%% +\def\utsqhookb{\shifthook{}-\sqcup}%% +\newarrowtail{sqhook}\rtsqhooka\ltsqhooka\dtsqhooka\utsqhooka +X +%% the following seem the better choices at 10pt & 300dpi +\newarrowtail{hook}\rthooka\lthookb\dthooka\uthooka\newarrowtail{C}\rthooka +\lthookb\dthooka\uthooka +X +%% circles +\newarrowtail{o}\hho\hho\circ\circ%% +\newarrowtail{O}\hhO\hhO{\scriptstyle\bigcirc}{\scriptstyle\bigcirc}%% +X +%% crosses +\newarrowtail{X}\lhtimes\rhtimes\uhtimes\dhtimes\newarrowtail+++++ +X +%% empty tail {} is also available +X +%% Y from stmaryrd (vertical ones still need adjustment) +\newarrowtail{Y}\Yright\Yleft\Yup\Ydown +X +%% harpoon with shaft (trailing up/left can be changed to down/right) +\newarrowtail{harpoon}\leftharpoondown\rightharpoondown\upharpoonright +\downharpoonright +X +%% ********** F I L L E R S *********** +X +%% shortening is up to 0.15em=2.7mu horiz and 0.35ex vertically at each end. +X +%% dot {.}, single rule {-} and empty {} fillers are also available +X +%% double and triple lines +%%\newarrowfiller{=}==\Vert\Vert%% +\newarrowfiller{=}=={\@cmex77}{\@cmex77}%% 16.1.93 +\def\vfthree{\mid\!\!\!\mid\!\!\!\mid}%%ascii +\newarrowfiller{3}\equiv\equiv\vfthree\vfthree +X +%% dashed line +\def\vfdashstrut{\vrule width0pt height1.3ex depth0.7ex}%% +\def\vfthedash{\vrule width\CD@LF height0.6ex depth 0pt}%% +\def\hfthedash{\CD@AJ\vrule\horizhtdp width 0.26em}%% +\def\hfdash{\mkern5.5mu\hfthedash\mkern5.5mu}%% +\def\vfdash{\vfdashstrut\vfthedash}%% +\newarrowfiller{dash}\hfdash\hfdash\vfdash\vfdash +X +%% ************* M I D D L E S ************ +X +%% plus +\newarrowmiddle+++++ +X +%% ************* D I A G O N A L S ************ +X +%% simple arrow heads +%%\def\nwhTO{\nwarrow\mkern-1mu}%% +%%\def\nehTO{\mkern-.1mu\nearrow}%% +%%\def\sehTO{\searrow\mkern-.02mu}%% +%%\def\swhTO{\mkern-.8mu\swarrow}%% +X +%%======================================================================% +%% % +%% (22) ARROW COMMANDS % +%% % +%%======================================================================% +X +%% change to \iftrue to get mixed heads +\iffalse%% +\newarrow{To}----{vee}%% +\newarrow{Arr}----{LaTeX}%% +\newarrow{Dotsto}....{vee}%% +\newarrow{Dotsarr}....{LaTeX}%% +\newarrow{Dashto}{}{dash}{}{dash}{vee}%% +\newarrow{Dasharr}{}{dash}{}{dash}{LaTeX}%% +\newarrow{Mapsto}{mapsto}---{vee}%% +\newarrow{Mapsarr}{mapsto}---{LaTeX}%% +\newarrow{IntoA}{hooka}---{vee}%% +\newarrow{IntoB}{hookb}---{vee}%% +\newarrow{Embed}{vee}---{vee}%% +\newarrow{Emarr}{LaTeX}---{LaTeX}%% +\newarrow{Onto}----{doublevee}%% +\newarrow{Dotsonarr}....{doubleLaTeX}%% +\newarrow{Dotsonto}....{doublevee}%% +\newarrow{Dotsonarr}....{doubleLaTeX}%% +\else%% +\newarrow{To}---->%% +\newarrow{Arr}---->%% +\newarrow{Dotsto}....>%% +\newarrow{Dotsarr}....>%% +\newarrow{Dashto}{}{dash}{}{dash}>%% +\newarrow{Dasharr}{}{dash}{}{dash}>%% +\newarrow{Mapsto}{mapsto}--->%% +\newarrow{Mapsarr}{mapsto}--->%% +\newarrow{IntoA}{hooka}--->%% +\newarrow{IntoB}{hookb}--->%% +\newarrow{Embed}>--->%% +\newarrow{Emarr}>--->%% +\newarrow{Onto}----{>>}%% +\newarrow{Dotsonarr}....{>>}%% +\newarrow{Dotsonto}....{>>}%% +\newarrow{Dotsonarr}....{>>}%% +\fi%% +X +\newarrow{Implies}===={=>}%% minimum cell height 9.5pt +\newarrow{Project}----{triangle}%% +\newarrow{Pto}----{harpoon}%% partial function +\newarrow{Relto}{harpoon}---{harpoon}%% binary relation +X +\newarrow{Eq}=====%% +\newarrow{Line}-----%% +\newarrow{Dots}.....%% +\newarrow{Dashes}{}{dash}{}{dash}{}%% +X +%% square hooked arrow (used in my ``gluing and lifting'' paper) +\newarrow{SquareInto}{sqhook}---> +X +%% braces and parentheses +%% \newarrow gives inappropriate directions, so we change the names +%% the vertical filler is too far to the right; horizontal too high +%% the vertical middles are too low with midvshaft +%% maybe we'll add square brackets and the integral sign one day +\newarrowhead{cmexbra}{\@cmex7B}{\@cmex7C}{\@cmex3B}{\@cmex38}%% +\newarrowtail{cmexbra}{\@cmex7A}{\@cmex7D}{\@cmex39}{\@cmex3A}%% +\newarrowmiddle{cmexbra}{\braceru\bracelu}{\bracerd\braceld}{\vcenter{% +\hbox@maths{\@cmex3D\mkern-2mu}}}%% right +{\vcenter{\hbox@maths{\mkern2mu\@cmex3C}}}%% left +\newarrow{@brace}{cmexbra}-{cmexbra}-{cmexbra}%% braces +\newarrow{@parenth}{cmexbra}---{cmexbra}%% straight parentheses +\def\rightBrace{\d@brace[thick,cmex]}%%ASCII square brackets [] +\def\leftBrace{\u@brace[thick,cmex]}%%ASCII square brackets [] +\def\upperBrace{\r@brace[thick,cmex]}%%ASCII square brackets [] +\def\lowerBrace{\l@brace[thick,cmex]}%%ASCII square brackets [] +\def\rightParenth{\d@parenth[thick,cmex]}%%ASCII square brackets [] +\def\leftParenth{\u@parenth[thick,cmex]}%%ASCII square brackets [] +\def\upperParenth{\r@parenth[thick,cmex]}%%ASCII square brackets [] +\def\lowerParenth{\l@parenth[thick,cmex]}%%ASCII square brackets [] +X +%% synonyms for reverse compatibility +X +\let\uFrom\uTo%% +\let\lFrom\lTo%% +\let\uDotsfrom\uDotsto%% +\let\lDotsfrom\lDotsto%% +\let\uDashfrom\uDashto%% +\let\lDashfrom\lDashto%% +\let\uImpliedby\uImplies%% +\let\lImpliedby\lImplies%% +\let\uMapsfrom\uMapsto%% +\let\lMapsfrom\lMapsto%% +\let\lOnfrom\lOnto%% +\let\uOnfrom\uOnto%% +\let\lPfrom\lPto%% +\let\uPfrom\uPto%% +X +\let\uInfromA\uIntoA%% +\let\uInfromB\uIntoB%% +\let\lInfromA\lIntoA%% +\let\lInfromB\lIntoB%% +\let\rInto\rIntoA%% +\let\lInto\lIntoA%% +\let\dInto\dIntoB%% +\let\uInto\uIntoA%% +\let\ruInto\ruIntoA%% +\let\luInto\luIntoA%% +\let\rdInto\rdIntoA%% +\let\ldInto\ldIntoA%% +%% +\let\hEq\rEq%% +\let\vEq\uEq%% +\let\hLine\rLine%% +\let\vLine\uLine%% +\let\hDots\rDots%% +\let\vDots\uDots%% +\let\hDashes\rDashes%% +\let\vDashes\uDashes%% +X +%%=========================================================================% +%% The following are included for reverse compatibility only. +%%=========================================================================% +\let\NW\luTo\let\NE\ruTo\let\SW\ldTo\let\SE\rdTo\def\nNW{\luTo(2,3)}\def\nNE{% +\ruTo(2,3)}%%ascii +\def\sSW{\ldTo(2,3)}\def\sSE{\rdTo(2,3)}%%ascii +\def\wNW{\luTo(3,2)}\def\eNE{\ruTo(3,2)}%%ascii +\def\wSW{\ldTo(3,2)}\def\eSE{\rdTo(3,2)}%%ascii +\def\NNW{\luTo(2,4)}\def\NNE{\ruTo(2,4)}%%ascii +\def\SSW{\ldTo(2,4)}\def\SSE{\rdTo(2,4)}%%ascii +\def\WNW{\luTo(4,2)}\def\ENE{\ruTo(4,2)}%%ascii +\def\WSW{\ldTo(4,2)}\def\ESE{\rdTo(4,2)}%%ascii +\def\NNNW{\luTo(2,6)}\def\NNNE{\ruTo(2,6)}%%ascii +\def\SSSW{\ldTo(2,6)}\def\SSSE{\rdTo(2,6)}%%ascii +\def\WWNW{\luTo(6,2)}\def\EENE{\ruTo(6,2)}%%ascii +\def\WWSW{\ldTo(6,2)}\def\EESE{\rdTo(6,2)}%%ascii +X +\let\NWd\luDotsto\let\NEd\ruDotsto\let\SWd\ldDotsto\let\SEd\rdDotsto\def\nNWd +{\luDotsto(2,3)}\def\nNEd{\ruDotsto(2,3)}%%ascii +\def\sSWd{\ldDotsto(2,3)}\def\sSEd{\rdDotsto(2,3)}%%ascii +\def\wNWd{\luDotsto(3,2)}\def\eNEd{\ruDotsto(3,2)}%%ascii +\def\wSWd{\ldDotsto(3,2)}\def\eSEd{\rdDotsto(3,2)}%%ascii +\def\NNWd{\luDotsto(2,4)}\def\NNEd{\ruDotsto(2,4)}%%ascii +\def\SSWd{\ldDotsto(2,4)}\def\SSEd{\rdDotsto(2,4)}%%ascii +\def\WNWd{\luDotsto(4,2)}\def\ENEd{\ruDotsto(4,2)}%%ascii +\def\WSWd{\ldDotsto(4,2)}\def\ESEd{\rdDotsto(4,2)}%%ascii +\def\NNNWd{\luDotsto(2,6)}\def\NNNEd{\ruDotsto(2,6)}%%ascii +\def\SSSWd{\ldDotsto(2,6)}\def\SSSEd{\rdDotsto(2,6)}%%ascii +\def\WWNWd{\luDotsto(6,2)}\def\EENEd{\ruDotsto(6,2)}%%ascii +\def\WWSWd{\ldDotsto(6,2)}\def\EESEd{\rdDotsto(6,2)}%%ascii +X +\let\NWl\luLine\let\NEl\ruLine\let\SWl\ldLine\let\SEl\rdLine\def\nNWl{\luLine +(2,3)}\def\nNEl{\ruLine(2,3)}%%ascii +\def\sSWl{\ldLine(2,3)}\def\sSEl{\rdLine(2,3)}%%ascii +\def\wNWl{\luLine(3,2)}\def\eNEl{\ruLine(3,2)}%%ascii +\def\wSWl{\ldLine(3,2)}\def\eSEl{\rdLine(3,2)}%%ascii +\def\NNWl{\luLine(2,4)}\def\NNEl{\ruLine(2,4)}%%ascii +\def\SSWl{\ldLine(2,4)}\def\SSEl{\rdLine(2,4)}%%ascii +\def\WNWl{\luLine(4,2)}\def\ENEl{\ruLine(4,2)}%%ascii +\def\WSWl{\ldLine(4,2)}\def\ESEl{\rdLine(4,2)}%%ascii +\def\NNNWl{\luLine(2,6)}\def\NNNEl{\ruLine(2,6)}%%ascii +\def\SSSWl{\ldLine(2,6)}\def\SSSEl{\rdLine(2,6)}%%ascii +\def\WWNWl{\luLine(6,2)}\def\EENEl{\ruLine(6,2)}%%ascii +\def\WWSWl{\ldLine(6,2)}\def\EESEl{\rdLine(6,2)}%%ascii +X +\let\NWld\luDots\let\NEld\ruDots\let\SWld\ldDots\let\SEld\rdDots\def\nNWld{% +\luDots(2,3)}\def\nNEld{\ruDots(2,3)}%%ascii +\def\sSWld{\ldDots(2,3)}\def\sSEld{\rdDots(2,3)}%%ascii +\def\wNWld{\luDots(3,2)}\def\eNEld{\ruDots(3,2)}%%ascii +\def\wSWld{\ldDots(3,2)}\def\eSEld{\rdDots(3,2)}%%ascii +\def\NNWld{\luDots(2,4)}\def\NNEld{\ruDots(2,4)}%%ascii +\def\SSWld{\ldDots(2,4)}\def\SSEld{\rdDots(2,4)}%%ascii +\def\WNWld{\luDots(4,2)}\def\ENEld{\ruDots(4,2)}%%ascii +\def\WSWld{\ldDots(4,2)}\def\ESEld{\rdDots(4,2)}%%ascii +\def\NNNWld{\luDots(2,6)}\def\NNNEld{\ruDots(2,6)}%%ascii +\def\SSSWld{\ldDots(2,6)}\def\SSSEld{\rdDots(2,6)}%%ascii +\def\WWNWld{\luDots(6,2)}\def\EENEld{\ruDots(6,2)}%%ascii +\def\WWSWld{\ldDots(6,2)}\def\EESEld{\rdDots(6,2)}%%ascii +X +\let\NWe\luEmbed\let\NEe\ruEmbed\let\SWe\ldEmbed\let\SEe\rdEmbed\def\nNWe{% +\luEmbed(2,3)}\def\nNEe{\ruEmbed(2,3)}%%ascii +\def\sSWe{\ldEmbed(2,3)}\def\sSEe{\rdEmbed(2,3)}%%ascii +\def\wNWe{\luEmbed(3,2)}\def\eNEe{\ruEmbed(3,2)}%%ascii +\def\wSWe{\ldEmbed(3,2)}\def\eSEe{\rdEmbed(3,2)}%%ascii +\def\NNWe{\luEmbed(2,4)}\def\NNEe{\ruEmbed(2,4)}%%ascii +\def\SSWe{\ldEmbed(2,4)}\def\SSEe{\rdEmbed(2,4)}%%ascii +\def\WNWe{\luEmbed(4,2)}\def\ENEe{\ruEmbed(4,2)}%%ascii +\def\WSWe{\ldEmbed(4,2)}\def\ESEe{\rdEmbed(4,2)}%%ascii +\def\NNNWe{\luEmbed(2,6)}\def\NNNEe{\ruEmbed(2,6)}%%ascii +\def\SSSWe{\ldEmbed(2,6)}\def\SSSEe{\rdEmbed(2,6)}%%ascii +\def\WWNWe{\luEmbed(6,2)}\def\EENEe{\ruEmbed(6,2)}%%ascii +\def\WWSWe{\ldEmbed(6,2)}\def\EESEe{\rdEmbed(6,2)}%%ascii +X +\let\NWo\luOnto\let\NEo\ruOnto\let\SWo\ldOnto\let\SEo\rdOnto\def\nNWo{\luOnto +(2,3)}\def\nNEo{\ruOnto(2,3)}%%ascii +\def\sSWo{\ldOnto(2,3)}\def\sSEo{\rdOnto(2,3)}%%ascii +\def\wNWo{\luOnto(3,2)}\def\eNEo{\ruOnto(3,2)}%%ascii +\def\wSWo{\ldOnto(3,2)}\def\eSEo{\rdOnto(3,2)}%%ascii +\def\NNWo{\luOnto(2,4)}\def\NNEo{\ruOnto(2,4)}%%ascii +\def\SSWo{\ldOnto(2,4)}\def\SSEo{\rdOnto(2,4)}%%ascii +\def\WNWo{\luOnto(4,2)}\def\ENEo{\ruOnto(4,2)}%%ascii +\def\WSWo{\ldOnto(4,2)}\def\ESEo{\rdOnto(4,2)}%%ascii +\def\NNNWo{\luOnto(2,6)}\def\NNNEo{\ruOnto(2,6)}%%ascii +\def\SSSWo{\ldOnto(2,6)}\def\SSSEo{\rdOnto(2,6)}%%ascii +\def\WWNWo{\luOnto(6,2)}\def\EENEo{\ruOnto(6,2)}%%ascii +\def\WWSWo{\ldOnto(6,2)}\def\EESEo{\rdOnto(6,2)}%%ascii +X +\let\NWod\luDotsonto\let\NEod\ruDotsonto\let\SWod\ldDotsonto\let\SEod +\rdDotsonto\def\nNWod{\luDotsonto(2,3)}\def\nNEod{\ruDotsonto(2,3)}%%ascii +\def\sSWod{\ldDotsonto(2,3)}\def\sSEod{\rdDotsonto(2,3)}%%ascii +\def\wNWod{\luDotsonto(3,2)}\def\eNEod{\ruDotsonto(3,2)}%%ascii +\def\wSWod{\ldDotsonto(3,2)}\def\eSEod{\rdDotsonto(3,2)}%%ascii +\def\NNWod{\luDotsonto(2,4)}\def\NNEod{\ruDotsonto(2,4)}%%ascii +\def\SSWod{\ldDotsonto(2,4)}\def\SSEod{\rdDotsonto(2,4)}%%ascii +\def\WNWod{\luDotsonto(4,2)}\def\ENEod{\ruDotsonto(4,2)}%%ascii +\def\WSWod{\ldDotsonto(4,2)}\def\ESEod{\rdDotsonto(4,2)}%%ascii +\def\NNNWod{\luDotsonto(2,6)}\def\NNNEod{\ruDotsonto(2,6)}%%ascii +\def\SSSWod{\ldDotsonto(2,6)}\def\SSSEod{\rdDotsonto(2,6)}%%ascii +\def\WWNWod{\luDotsonto(6,2)}\def\EENEod{\ruDotsonto(6,2)}%%ascii +\def\WWSWod{\ldDotsonto(6,2)}\def\EESEod{\rdDotsonto(6,2)}%%ascii +X +%%======================================================================% +%% % +%% (23) MISCELLANEOUS % +%% % +%%======================================================================% +X +\def\labelstyle{%% +\ifincommdiag%% +\textstyle%% +\else%% +\scriptstyle%% +\fi}%% +\let\objectstyle\displaystyle +X +\newdiagramgrid{pentagon}{0.618034,0.618034,1,1,1,1,0.618034,0.618034}{1.% +17557,1.17557,1.902113,1.902113} +X +\newdiagramgrid{perspective}{0.75,0.75,1.1,1.1,0.9,0.9,0.95,0.95,0.75,0.75}{0% +X.75,0.75,1.1,1.1,0.9,0.9} +X +\diagramstyle[%%ascii open square bracket +dpi=300,%% office laserwriters are usually 300 dots per inch +vmiddle,nobalance,%% vertical and horizontal positioning +loose,%% allow rows and columns to stretch +thin,%% line10 arrows; default rule thickness (TeXbook p447) +pilespacing=10pt,% +%% parallel vertical separation (horizontals: half this) +shortfall=4pt,%% distance between arrowheads and their targets +%% The following are defaulted on entry to the diagram itself. +%% l>=2em minimum length of horizontal arrow shafts in text +%% l>=1em ditto in diagrams +%% size=3em cell size +%% heads=LaTeX arrowheads +]%%ascii close square bracket +X +%% process options to LaTeX2e's \usepackage[options]{diagrams} +\ifx\ProcessOptions\undefined\else\CD@PK\ProcessOptions\relax\CD@FF\CD@e\fi +\fi +X +\cdrestoreat%% restore old category code for @ etc +%%============================== THE END ============================== +X +\dimen0 200pt \dimen1 210pt \dimen2 220pt \dimen3 230pt \dimen4 240pt \dimen5 +250pt \dimen6 260pt \dimen7 270pt \dimen8 280pt \dimen9 290pt +X +%% This is the end of Paul Taylor's commutative diagrams package. +X +SHAR_EOF + (set 20 01 05 25 13 55 08 'diagrams.tex'; eval "$shar_touch") && + chmod 0644 'diagrams.tex' || + $echo 'restore of' 'diagrams.tex' 'failed' + if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ + && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then + md5sum -c << SHAR_EOF >/dev/null 2>&1 \ + || $echo 'diagrams.tex:' 'MD5 check failed' +659671a956a7c7d46dcba5813e5d7e88 diagrams.tex +SHAR_EOF + else + shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'diagrams.tex'`" + test 116120 -eq "$shar_count" || + $echo 'diagrams.tex:' 'original size' '116120,' 'current size' "$shar_count!" + fi +fi +# ============= lncse.cls ============== +if test -f 'lncse.cls' && test "$first_param" != -c; then + $echo 'x -' SKIPPING 'lncse.cls' '(file already exists)' +else + $echo 'x -' extracting 'lncse.cls' '(text)' + sed 's/^X//' << 'SHAR_EOF' > 'lncse.cls' && +% LNCSE DOCUMENT CLASS -- version 1.0 +% for Lecture Notes in Computational Science and Engineering +% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{lncse}[1996/11/11 v1.0 +^^JLaTeX document class for Lecture Notes in Computational Science and +Engineering] +% Options +\DeclareOption{citeauthoryear}{\let\citeauthoryear=Y} +X +\let\if@envcntreset\iffalse +\DeclareOption{envcountreset}{\let\if@envcntreset\iftrue} +\let\if@envcntsect\iffalse +\DeclareOption{envcountsect}{\let\if@envcntsect\iftrue} +X +\let\if@runhead\iffalse +\DeclareOption{runningheads}{\let\if@runhead\iftrue} +X +\let\if@openbib\iffalse +\DeclareOption{openbib}{\let\if@openbib\iftrue} +X +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +X +\ProcessOptions +X +\LoadClass[twoside]{article} +X +\setlength{\textwidth}{11.7cm} +\setlength{\textheight}{19.0cm} +X +\renewcommand\small{% +X \@setfontsize\small\@ixpt{11}% +X \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ +X \abovedisplayshortskip \z@ \@plus2\p@ +X \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ +X \def\@listi{\leftmargin\leftmargini +X \parsep 0\p@ \@plus1\p@ \@minus\p@ +X \topsep 8\p@ \@plus2\p@ \@minus4\p@ +X \itemsep0\p@}% +X \belowdisplayskip \abovedisplayskip +} +X +\frenchspacing +\widowpenalty=10000 +\clubpenalty=10000 +X +\setlength\oddsidemargin {63\p@} +\setlength\evensidemargin {63\p@} +\setlength\marginparwidth {90\p@} +X +\setlength\headsep {16\p@} +X +\setlength\footnotesep{7.7\p@} +\setlength\textfloatsep{8mm\@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {8mm\@plus 2\p@ \@minus 2\p@} +X +\setcounter{secnumdepth}{2} +X +\newcounter {chapter} +\renewcommand\thechapter {\@arabic\c@chapter} +X +\newif\if@mainmatter \@mainmattertrue +\newcommand\frontmatter{\cleardoublepage +X \@mainmatterfalse\pagenumbering{Roman}} +\newcommand\mainmatter{\cleardoublepage +X \@mainmattertrue\pagenumbering{arabic}} +\newcommand\backmatter{\if@openright\cleardoublepage\else\clearpage\fi +X \@mainmatterfalse} +X +\renewcommand\part{\cleardoublepage +X \thispagestyle{empty}% +X \if@twocolumn +X \onecolumn +X \@tempswatrue +X \else +X \@tempswafalse +X \fi +X \secdef\@part\@spart} +X +\def\@part[#1]#2{% +X \ifnum \c@secnumdepth >-2\relax +X \refstepcounter{part}% +X \addcontentsline{toc}{part}{Part \thepart\hspace{1em}#1}% +X \else +X \addcontentsline{toc}{part}{#1}% +X \fi +X \markboth{}{}% +X {\raggedleft +X \interlinepenalty \@M +X \normalfont +X \ifnum \c@secnumdepth >-2\relax +X \huge\bfseries \partname~\thepart +X \par +X \vskip 20\p@ +X \fi +X \Huge \bfseries #2\par}% +X \@endpart} +\def\@spart#1{% +X {\centering +X \interlinepenalty \@M +X \normalfont +X \Huge \bfseries #1\par}% +X \@endpart} +\def\@endpart{\vfil\newpage +X \if@twoside +X \null +X \thispagestyle{empty}% +X \newpage +X \fi +X \if@tempswa +X \twocolumn +X \fi} +X +X +\newcommand\chapter{\clearpage +X \thispagestyle{empty}% +X \global\@topnum\z@ +X \@afterindentfalse +X \secdef\@chapter\@schapter} +\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne +X \if@mainmatter +X \refstepcounter{chapter}% +X \typeout{\@chapapp\space\thechapter.}% +X \addcontentsline{toc}{chapter}% +X {\protect\numberline{\thechapter}#1}% +X \else +X \addcontentsline{toc}{chapter}{#1}% +X \fi +X \else +X \addcontentsline{toc}{chapter}{#1}% +X \fi +X \chaptermark{#1}% +X \addtocontents{lof}{\protect\addvspace{10\p@}}% +X \addtocontents{lot}{\protect\addvspace{10\p@}}% +X \if@twocolumn +X \@topnewpage[\@makechapterhead{#2}]% +X \else +X \@makechapterhead{#2}% +X \@afterheading +X \fi} +\def\@makechapterhead#1{% +% \vspace*{50\p@}% +X {\parindent \z@ \raggedright +X \normalfont +X \ifnum \c@secnumdepth >\m@ne +X \if@mainmatter +X \large\bfseries \@chapapp{} \thechapter +X \par\nobreak +X \vskip 20\p@ +X \fi +X \fi +X \interlinepenalty\@M +X \Large \bfseries #1\par\nobreak +X \vskip 40\p@ +X }} +\def\@schapter#1{\if@twocolumn +X \@topnewpage[\@makeschapterhead{#1}]% +X \else +X \@makeschapterhead{#1}% +X \@afterheading +X \fi} +\def\@makeschapterhead#1{% +% \vspace*{50\p@}% +X {\parindent \z@ \raggedright +X \normalfont +X \interlinepenalty\@M +X \Large \bfseries #1\par\nobreak +X \vskip 40\p@ +X }} +X +\newif\if@appendix \@appendixfalse +X +\renewcommand\section{\@startsection{section}{1}{\z@}% +X {-18\p@ \@plus -4\p@ \@minus -4\p@}% +X {12\p@ \@plus 4\p@ \@minus 4\p@}% +X {\normalfont\large\bfseries\boldmath +X \rightskip=\z@ \@plus 8em\pretolerance=10000}} +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% +X {-18\p@ \@plus -4\p@ \@minus -4\p@}% +X {8\p@ \@plus 4\p@ \@minus 4\p@}% +X {\normalfont\normalsize\bfseries\boldmath +X \rightskip=\z@ \@plus 8em\pretolerance=10000 }} +\def\appendPeriod#1{#1.} +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% +X {-18\p@ \@plus -4\p@ \@minus -4\p@}% +X {-0.5em \@plus -0.22em \@minus -0.1em}% +X {\normalfont\normalsize\bfseries\boldmath\appendPeriod}} +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% +X {-12\p@ \@plus -4\p@ \@minus -4\p@}% +X {-0.5em \@plus -0.22em \@minus -0.1em}% +X {\normalfont\normalsize\itshape\appendPeriod}} +\renewcommand\subparagraph[1]{\typeout{LNCSE warning: You should not use +X \string\subparagraph\space with this class}\vskip0.5cm +You should not use \verb|\subparagraph| with this class.\vskip0.5cm} +X +\DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"00} +\DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"01} +\DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"02} +\DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"03} +\DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"04} +\DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"05} +\DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"06} +\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07} +\DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"08} +\DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"09} +\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A} +X +\let\footnotesize\small +X +\def\squareforqed{\hbox{\rlap{$\sqcap$}$\sqcup$}} +\def\qed{\ifmmode\squareforqed\else{\unskip\nobreak\hfil +\penalty50\hskip1em\null\nobreak\hfil\squareforqed +\parfillskip=0pt\finalhyphendemerits=0\endgraf}\fi} +X +\def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip +\halign{\hfil +$\displaystyle##$\hfil\cr\gets\cr\to\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets +\cr\to\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets +\cr\to\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +\gets\cr\to\cr}}}}} +\def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil +$\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2pt}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr +\noalign{\vskip1.2pt}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr +\noalign{\vskip1pt}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +<\cr +\noalign{\vskip0.9pt}=\cr}}}}} +\def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil +$\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2pt}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr +\noalign{\vskip1.2pt}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr +\noalign{\vskip1pt}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +>\cr +\noalign{\vskip0.9pt}=\cr}}}}} +\def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip +\halign{\hfil +$\displaystyle##$\hfil\cr>\cr\noalign{\vskip-1pt}<\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr +>\cr\noalign{\vskip-1pt}<\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr +>\cr\noalign{\vskip-0.8pt}<\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +>\cr\noalign{\vskip-0.3pt}<\cr}}}}} +\def\bbbr{{\rm I\!R}} %reelle Zahlen +\def\bbbm{{\rm I\!M}} +\def\bbbn{{\rm I\!N}} %natuerliche Zahlen +\def\bbbf{{\rm I\!F}} +\def\bbbh{{\rm I\!H}} +\def\bbbk{{\rm I\!K}} +\def\bbbp{{\rm I\!P}} +\def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l} +{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}} +\def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}} +\def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm +Q$}\hbox{\raise +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}} +\def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm +T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox +to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox +to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox +to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}} +\def\bbbs{{\mathchoice +{\setbox0=\hbox{$\displaystyle \rm S$}\hbox{\raise0.5\ht0\hbox +to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox +to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle \rm S$}\hbox{\raise0.5\ht0\hbox +to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox +to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle \rm S$}\hbox{\raise0.5\ht0\hbox +to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox +to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox +to0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox +to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}} +\def\bbbz{{\mathchoice {\hbox{$\textstyle\sf Z\kern-0.4em Z$}} +{\hbox{$\textstyle\sf Z\kern-0.4em Z$}} +{\hbox{$\scriptstyle\sf Z\kern-0.3em Z$}} +{\hbox{$\scriptscriptstyle\sf Z\kern-0.2em Z$}}}} +X +\let\ts\, +X +\setlength\leftmargini {17\p@} +\setlength\leftmargin {\leftmargini} +\setlength\leftmarginii {\leftmargini} +\setlength\leftmarginiii {\leftmargini} +\setlength\leftmarginiv {\leftmargini} +\setlength \labelsep {.5em} +\setlength \labelwidth{\leftmargini} +\addtolength\labelwidth{-\labelsep} +X +\def\@listI{\leftmargin\leftmargini +X \parsep 0\p@ \@plus1\p@ \@minus\p@ +X \topsep 8\p@ \@plus2\p@ \@minus4\p@ +X \itemsep0\p@} +\let\@listi\@listI +\@listi +\def\@listii {\leftmargin\leftmarginii +X \labelwidth\leftmarginii +X \advance\labelwidth-\labelsep +X \topsep 0\p@ \@plus2\p@ \@minus\p@} +\def\@listiii{\leftmargin\leftmarginiii +X \labelwidth\leftmarginiii +X \advance\labelwidth-\labelsep +X \topsep 0\p@ \@plus\p@\@minus\p@ +X \parsep \z@ +X \partopsep \p@ \@plus\z@ \@minus\p@} +X +\renewcommand\labelitemi{\normalfont\bfseries --} +\renewcommand\labelitemii{$\m@th\bullet$} +X +\setlength\arraycolsep{1.4\p@} +\setlength\tabcolsep{1.4\p@} +X +\def\tableofcontents{% +X \chapter*{\contentsname} +X \@mkboth{{\contentsname}}{{\contentsname}} +X \def\authcount##1{\setcounter{auco}{##1}\setcounter{@auth}{1}} +X \def\lastand{\ifnum\value{auco}=2\relax +X \unskip{} \andname\ +X \else +X \unskip \lastandname\ +X \fi}% +X \def\and{\stepcounter{@auth}\relax +X \ifnum\value{@auth}=\value{auco}% +X \lastand +X \else +X \unskip, +X \fi}% +X \@starttoc{toc}\if@restonecol\twocolumn\fi} +X +\def\l@part#1#2{\addpenalty{\@secpenalty}% +X \addvspace{2em plus\p@}% % space above part line +X \begingroup +X \parindent \z@ +X \rightskip \z@ plus 5em +X \hrule +X \vskip 6.5pt +X \bfseries\boldmath % set line in boldface +X \leavevmode % TeX command to enter horizontal mode. +X #1\par +X \vskip5pt +X \hrule +X \vskip1pt +X \nobreak % Never break after part entry +X \endgroup} +X +\def\@dotsep{2} +X +\def\addnumcontentsmark#1#2#3{% +\addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline +X {\thechapter}#3}{\thepage}}} +\def\addcontentsmark#1#2#3{% +\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}} +\def\addcontentsmarkwop#1#2#3{% +\addtocontents{#1}{\protect\contentsline{#2}{#3}{0}}} +X +\def\@adcmk[#1]{\ifcase #1 \or +\def\@gtempa{\addnumcontentsmark}% +X \or \def\@gtempa{\addcontentsmark}% +X \or \def\@gtempa{\addcontentsmarkwop}% +X \fi\@gtempa{toc}{chapter}} +\def\addtocmark{\@ifnextchar[{\@adcmk}{\@adcmk[3]}} +X +\def\l@chapter#1#2{\addpenalty{-\@highpenalty} +X \vskip 1.0em plus 1pt \@tempdima 1.5em \begingroup +X \parindent \z@ \rightskip \@pnumwidth +X \parfillskip -\@pnumwidth +X \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip +X {\large\bfseries\boldmath#1}\ifx0#2\hfil\null +X \else +X \nobreak +X \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern +X \@dotsep mu$}\hfill +X \nobreak\hbox to\@pnumwidth{\hss #2}% +X \fi\par +X \penalty\@highpenalty \endgroup} +X +\def\processAuthors#1{% DRG +X \setcounter{@auth}{1}% +X \setbox0=\vbox{% +X \def\and{\stepcounter{@auth}}% +X \def\thanks##1{}% +X #1}% +X \global\value{auco}=\value{@auth}% +X \setcounter{@auth}{1}% +X {\raggedright +X \vskip 2pt +X % \leftskip15\p@ +X \rightskip\@tocrmarg +X \advance\rightskip\@flushglue +X #1% +X \endgraf +X \vskip 2pt +X }% +} +X +\def\l@title#1#2{\addpenalty{-\@highpenalty} +X \addvspace{8pt plus 1pt} +X \@tempdima \z@ +X \begingroup +X \parindent = \z@ +X \rightskip = 2.55em plus 1fil +X \parfillskip -\@tocrmarg +X \leavevmode +X \advance\leftskip\@tempdima +X \hskip -\leftskip +X {\bfseries\boldmath #1}\nobreak +X \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern +X \@dotsep mu$}\hfill +X \nobreak\hbox to\@pnumwidth{\hss #2}\par +X \penalty\@highpenalty +X \endgroup +} +X +\setcounter{tocdepth}{0} +\newdimen\tocchpnum +\newdimen\tocsecnum +\newdimen\tocsectotal +\newdimen\tocsubsecnum +\newdimen\tocsubsectotal +\newdimen\tocsubsubsecnum +\newdimen\tocsubsubsectotal +\newdimen\tocparanum +\newdimen\tocparatotal +\newdimen\tocsubparanum +\tocchpnum=\z@ % no chapter numbers +\tocsecnum=15\p@ % section 88. plus 2.222pt +\tocsubsecnum=23\p@ % subsection 88.8 plus 2.222pt +\tocsubsubsecnum=27\p@ % subsubsection 88.8.8 plus 1.444pt +\tocparanum=35\p@ % paragraph 88.8.8.8 plus 1.666pt +\tocsubparanum=43\p@ % subparagraph 88.8.8.8.8 plus 1.888pt +\def\calctocindent{% +\tocsectotal=\tocchpnum +\advance\tocsectotal by\tocsecnum +\tocsubsectotal=\tocsectotal +\advance\tocsubsectotal by\tocsubsecnum +\tocsubsubsectotal=\tocsubsectotal +\advance\tocsubsubsectotal by\tocsubsubsecnum +\tocparatotal=\tocsubsubsectotal +\advance\tocparatotal by\tocparanum} +\calctocindent +X +\def\l@section{\@dottedtocline{1}{\tocchpnum}{\tocsecnum}} +\def\l@subsection{\@dottedtocline{2}{\tocsectotal}{\tocsubsecnum}} +\def\l@subsubsection{\@dottedtocline{3}{\tocsubsectotal}{\tocsubsubsecnum}} +\def\l@paragraph{\@dottedtocline{4}{\tocsubsubsectotal}{\tocparanum}} +\def\l@subparagraph{\@dottedtocline{5}{\tocparatotal}{\tocsubparanum}} +X +\def\listoffigures{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn +X \fi\section*{\listfigurename\@mkboth{{\listfigurename}}{{\listfigurename}}} +X \@starttoc{lof}\if@restonecol\twocolumn\fi} +\def\l@figure{\@dottedtocline{1}{0em}{1.5em}} +X +\def\listoftables{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn +X \fi\section*{\listtablename\@mkboth{{\listtablename}}{{\listtablename}}} +X \@starttoc{lot}\if@restonecol\twocolumn\fi} +\let\l@table\l@figure +X +\renewcommand\listoffigures{% +X \section*{\listfigurename +X \@mkboth{\listfigurename}{\listfigurename}}% +X \@starttoc{lof}% +X } +X +\renewcommand\listoftables{% +X \section*{\listtablename +X \@mkboth{\listtablename}{\listtablename}}% +X \@starttoc{lot}% +X } +X +\ifx\citeauthoryear\undefined +\renewenvironment{thebibliography}[1] +X {\section*{\refname} +X \addcontentsline{toc}{section}{\refname} +X \def\@biblabel##1{##1.} +X \small +X \list{\@biblabel{\@arabic\c@enumiv}}% +X {\settowidth\labelwidth{\@biblabel{#1}}% +X \leftmargin\labelwidth +X \advance\leftmargin\labelsep +X \if@openbib +X \advance\leftmargin\bibindent +X \itemindent -\bibindent +X \listparindent \itemindent +X \parsep \z@ +X \fi +X \usecounter{enumiv}% +X \let\p@enumiv\@empty +X \renewcommand\theenumiv{\@arabic\c@enumiv}}% +X \if@openbib +X \renewcommand\newblock{\par}% +X \else +X \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% +X \fi +X \sloppy\clubpenalty4000\widowpenalty4000% +X \sfcode`\.=\@m} +X {\def\@noitemerr +X {\@latex@warning{Empty `thebibliography' environment}}% +X \endlist} +\def\@lbibitem[#1]#2{\item[{[#1]}\hfill]\if@filesw +X {\let\protect\noexpand\immediate +X \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} +\newcount\@tempcntc +\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi +X \@tempcnta\z@\@tempcntb\m@ne\def\@citea{}\@cite{\@for\@citeb:=#2\do +X {\@ifundefined +X {b@\@citeb}{\@citeo\@tempcntb\m@ne\@citea\def\@citea{,}{\bfseries +X ?}\@warning +X {Citation `\@citeb' on page \thepage \space undefined}}% +X {\setbox\z@\hbox{\global\@tempcntc0\csname b@\@citeb\endcsname\relax}% +X \ifnum\@tempcntc=\z@ \@citeo\@tempcntb\m@ne +X \@citea\def\@citea{,}\hbox{\csname b@\@citeb\endcsname}% +X \else +X \advance\@tempcntb\@ne +X \ifnum\@tempcntb=\@tempcntc +X \else\advance\@tempcntb\m@ne\@citeo +X \@tempcnta\@tempcntc\@tempcntb\@tempcntc\fi\fi}}\@citeo}{#1}} +\def\@citeo{\ifnum\@tempcnta>\@tempcntb\else\@citea\def\@citea{,}% +X \ifnum\@tempcnta=\@tempcntb\the\@tempcnta\else +X {\advance\@tempcnta\@ne\ifnum\@tempcnta=\@tempcntb \else \def\@citea{--}\fi +X \advance\@tempcnta\m@ne\the\@tempcnta\@citea\the\@tempcntb}\fi\fi} +\else +\renewenvironment{thebibliography}[1] +X {\section*{\refname} +X \small +X \list{}% +X {\settowidth\labelwidth{}% +X \leftmargin\parindent +X \itemindent=-\parindent +X \labelsep=\z@ +X \if@openbib +X \advance\leftmargin\bibindent +X \itemindent -\bibindent +X \listparindent \itemindent +X \parsep \z@ +X \fi +X \usecounter{enumiv}% +X \let\p@enumiv\@empty +X \renewcommand\theenumiv{}}% +X \if@openbib +X \renewcommand\newblock{\par}% +X \else +X \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% +X \fi +X \sloppy\clubpenalty4000\widowpenalty4000% +X \sfcode`\.=\@m} +X {\def\@noitemerr +X {\@latex@warning{Empty `thebibliography' environment}}% +X \endlist} +X \def\@cite#1{#1}% +X \def\@lbibitem[#1]#2{\item[]\if@filesw +X {\def\protect##1{\string ##1\space}\immediate +X \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} +\fi +X +\def\idxquad{\hskip 10\p@}% space that divides entry from number +X +\def\@idxitem{\par\hangindent 10\p@} +X +\def\subitem{\par\setbox0=\hbox{--\enspace}% second order +X \noindent\hangindent\wd0\box0}% index entry +X +\def\subsubitem{\par\setbox0=\hbox{--\,--\enspace}% third +X \noindent\hangindent\wd0\box0}% order index entry +X +\def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax} +X +\let\if@threecolind\iffalse +\def\threecolindex{\let\if@threecolind\iftrue} +\renewenvironment{theindex} +X {\if@twocolumn +X \@restonecolfalse +X \else +X \@restonecoltrue +X \fi +X \columnseprule \z@ +X \columnsep 1cc +X \@nobreaktrue +X \if@threecolind +X \begin{multicols}{3}[\chapter*{\indexname}]% +X \else +X \twocolumn[\@makeschapterhead{\indexname}]% +X \fi +X \@mkboth{\indexname}{\indexname}% +X \thispagestyle{empty}\parindent\z@ +X \rightskip0\p@ plus 40\p@ +X \parskip\z@ \@plus .3\p@\relax +X \let\item\@idxitem +X \def\,{\relax\ifmmode\mskip\thinmuskip +X \else\hskip0.2em\ignorespaces\fi}% +X \normalfont\small} +X {\if@threecolind\end{multicols}\fi +X \global\let\if@threecolind\iffalse +X \if@restonecol\onecolumn\else\clearpage\fi} +X +\renewcommand\footnoterule{% +X \kern-3\p@ +X \hrule\@width 2truecm +X \kern2.6\p@} +\long\def\@makefntext#1{% +X \parindent 1em% +X \leftskip 1em% +X \noindent +X \llap{\hb@xt@1em{\hss\@makefnmark\ }}\ignorespaces#1} +X +\long\def\@makecaption#1#2{% +X \vskip\abovecaptionskip +X \sbox\@tempboxa{{\bfseries #1.} #2}% +X \ifdim \wd\@tempboxa >\hsize +X {\bfseries #1.} #2\par +X \else +X \global \@minipagefalse +X \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% +X \fi +X \vskip\belowcaptionskip} +X +\def\fps@figure{htbp} +\def\fnum@figure{\figurename\thefigure} +\def \@floatboxreset {% +X \reset@font +X \small +X \@setnobreak +X \@setminipage +} +\def\fps@table{htbp} +\def\fnum@table{\tablename\thetable} +\renewenvironment{table} +X {\setlength\abovecaptionskip{0\p@}% +X \setlength\belowcaptionskip{10\p@}% +X \@float{table}} +X {\end@float} +\renewenvironment{table*} +X {\setlength\abovecaptionskip{0\p@}% +X \setlength\belowcaptionskip{10\p@}% +X \@dblfloat{table}} +X {\end@dblfloat} +X +\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname +X ext@#1\endcsname}{#1}{\protect\numberline{\csname +X the#1\endcsname}{\ignorespaces #2}}\begingroup +X \@parboxrestore +X \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par +X \endgroup} +X +% LaTeX does not provide a command to enter the authors institute +% addresses. The \institute command is defined here. +X +\newcounter{@inst} +\newcounter{@auth} +\newcounter{auco} +\def\andname{and} +\def\lastandname{\unskip, and} +\newdimen\instindent +\newbox\authrun +\newtoks\authorrunning +\newtoks\tocauthor +\newbox\titrun +\newtoks\titlerunning +\newtoks\toctitle +X +\def\clearheadinfo{\gdef\@author{No Author Given}% +X \gdef\@title{No Title Given}% +X \gdef\@subtitle{}% +X % \gdef\@institute{No Institute Given}% +X \gdef\@institute{}% DRG +X \gdef\@thanks{}% +X \global\titlerunning={}\global\authorrunning={}% +X \global\toctitle={}\global\tocauthor={}} +X +\def\institute#1{\gdef\@institute{#1}} +X +\def\institutename{\par +X \begingroup +X \parskip=\z@ +X \parindent=\z@ +X \setcounter{@inst}{1}% +X \def\and{\par\stepcounter{@inst}% +X \noindent +X \llap{\hbox to\instindent{\hss$^{\the@inst}$% +X \enspace}}\ignorespaces}% +X \setbox0=\vbox{\def\thanks##1{}\@institute}% +X \ifnum\value{@inst}>9\relax\setbox0=\hbox{$^{88}$\enspace}% +X \else\setbox0=\hbox{$^{8}$\enspace}\fi +X \instindent=\wd0 +X \leftskip=\wd0\relax +X \ifnum\value{@inst}=1\relax +X \leftskip=\z@ +X \else +X \setcounter{footnote}{\c@@inst}% +X \setcounter{@inst}{1}% +X \noindent +X \llap{\hbox to\instindent{\hss$^{\the@inst}$\enspace}}\ignorespaces +X \fi +X \ignorespaces +X \@institute\par +X \endgroup} +X +\def\@fnsymbol#1{\ensuremath{\ifcase#1\or\star\or{\star\star}\or +X {\star\star\star}\or \dagger\or \ddagger\or +X \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger +X \or \ddagger\ddagger \else\@ctrerr\fi}} +X +\def\inst#1{\unskip$^{#1}$} +\def\fnmsep{\unskip$^,$} +X +\def\subtitle#1{\gdef\@subtitle{#1}} +\clearheadinfo +X +\renewcommand\maketitle{\par +X \@appendixfalse +X \stepcounter{chapter}% +X \addtocounter{chapter}{-1}% +X \stepcounter{section}% +X \setcounter{section}{0}% +X \setcounter{subsection}{0}% +X \setcounter{figure}{0} +X \setcounter{table}{0} +X \setcounter{equation}{0} +X \setcounter{footnote}{0}% +X \begingroup +X \parindent=\z@ +X \renewcommand\thefootnote{\@fnsymbol\c@footnote}% +X \if@twocolumn +X \ifnum \col@number=\@ne +X \@maketitle +X \else +X \twocolumn[\@maketitle]% +X \fi +X \else +X \newpage +X \ifodd\value{page}\else\thispagestyle{empty}\null\vfill\eject\fi +X \global\@topnum\z@ % Prevents figures from going at top of page. +X \@maketitle +X \fi +X \thispagestyle{empty}\@thanks +% +X \def\\{\unskip\ \ignorespaces}\def\inst##1{\unskip{}}% +X \def\thanks##1{\unskip{}}\def\fnmsep{\unskip}% +X \instindent=\hsize +X \advance\instindent by-\headlineindent +X \if!\the\toctitle!\addcontentsline{toc}{title}{\@title}\else +X \addcontentsline{toc}{title}{\the\toctitle}\fi +X \if@runhead +X \if!\the\titlerunning!\else +X \edef\@title{\the\titlerunning}% +X \fi +X \global\setbox\titrun=\hbox{\small\rm\unboldmath\ignorespaces\@title}% +X \ifdim\wd\titrun>\instindent +X \typeout{Title too long for running head. Please supply}% +X \typeout{a shorter form with \string\titlerunning\space prior to +X \string\maketitle}% +X \global\setbox\titrun=\hbox{\small\rm +X Title Suppressed Due to Excessive Length}% +X \fi +X \xdef\@title{\copy\titrun}% +X \fi +% +X \if!\the\tocauthor!\relax +X {\def\and{\noexpand\protect\noexpand\and}% +X \protected@xdef\toc@uthor{\@author}}% +X \else +X \def\\{\noexpand\protect\noexpand\newline}% +X \protected@xdef\scratch{\the\tocauthor}% +X \protected@xdef\toc@uthor{\scratch}% +X \fi +X \addtocontents{toc}{\protect\processAuthors{\toc@uthor}}% +X \if@runhead +X \if!\the\authorrunning! +X \value{@inst}=\value{@auth}% +X \setcounter{@auth}{1}% +X \else +X \edef\@author{\the\authorrunning}% +X \fi +X \global\setbox\authrun=\hbox{\small\unboldmath\@author\unskip}% +X \ifdim\wd\authrun>\instindent +X \typeout{Names of authors too long for running head. Please supply}% +X \typeout{a shorter form with \string\authorrunning\space prior to +X \string\maketitle}% +X \global\setbox\authrun=\hbox{\small\rm +X Authors Suppressed Due to Excessive Length}% +X \fi +X \xdef\@author{\copy\authrun}% +X \markboth{\@author}{\@title}% +X \fi +X \endgroup +X \setcounter{footnote}{0}% +X \clearheadinfo} +% +\def\@maketitle{\newpage +X \markboth{}{}% +X \def\lastand{\ifnum\value{@inst}=2\relax +X \unskip{} \andname\ +X \else +X \unskip \lastandname\ +X \fi}% +X \def\and{\stepcounter{@auth}\relax +X \ifnum\value{@auth}=\value{@inst}% +X \lastand +X \else +X \unskip, +X \fi}% +X \raggedright +X {\Large \bfseries\boldmath +X \pretolerance=10000 +X \@title \par}\vskip .8cm +\if!\@subtitle!\else {\large \bfseries\boldmath +X \vskip -.65cm +X \pretolerance=10000 +X \@subtitle \par}\vskip .8cm\fi +X \setbox0=\vbox{\setcounter{@auth}{1}\def\and{\stepcounter{@auth}}% +X \def\thanks##1{}\@author}% +X \global\value{@inst}=\value{@auth}% +X \global\value{auco}=\value{@auth}% +X \setcounter{@auth}{1}% +{\lineskip .5em +\noindent\ignorespaces +\vskip -8pt +\@author +\vskip 8pt +X }% +X } +X +% redefinition of the "\newtheorem" command. +% +% Usage now: +% +% \newtheorem{env_nam}{caption}[within]{cap_font}{body_font} +% or \newtheorem{env_nam}[numbered_like]{caption}{cap_font}{body_font} +% or \newtheorem*{env_nam}{caption}{cap_font}{body_font} +% +% New is "cap_font" and "body_font". It stands for +% fontdefinition of the caption and the text itself. +% +% "\newtheorem*" gives a theorem without number. +% +% A defined newthoerem environment is used as described +% by Lamport. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +X +\def\@thmcountersep{} +\def\@thmcounterend{.} +X +\def\newtheorem{\@ifstar{\@sthm}{\@Sthm}} +X +% definition of \newtheorem with number +X +\def\@Sthm#1{\@ifnextchar[{\@othm{#1}}{\@nthm{#1}}} +X +\def\@xnthm#1#2[#3]#4#5{\expandafter\@ifdefinable\csname #1\endcsname +X {\@definecounter{#1}\@addtoreset{#1}{#3}% +X \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand +X \csname the#3\endcsname \noexpand\@thmcountersep \@thmcounter{#1}}% +X \expandafter\xdef\csname #1name\endcsname{#2}% +X \global\@namedef{#1}{\@thm{#1}{\csname #1name\endcsname}{#4}{#5}}% +X \global\@namedef{end#1}{\@endtheorem}}} +X +\def\@ynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname +X {\@definecounter{#1}% +X \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% +X \expandafter\xdef\csname #1name\endcsname{#2}% +X \global\@namedef{#1}{\@thm{#1}{\csname #1name\endcsname}{#3}{#4}}% +X \global\@namedef{end#1}{\@endtheorem}}} +X +\def\@othm#1[#2]#3#4#5{% +X \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}% +X {\expandafter\@ifdefinable\csname #1\endcsname +X {\global\@namedef{the#1}{\@nameuse{the#2}}% +X \expandafter\xdef\csname #1name\endcsname{#3}% +X \global\@namedef{#1}{\@thm{#2}{\csname #1name\endcsname}{#4}{#5}}% +X \global\@namedef{end#1}{\@endtheorem}}}} +X +\def\@thm#1#2#3#4{\refstepcounter +X {#1}\@ifnextchar[{\@ythm{#1}{#2}{#3}{#4}}{\@xthm{#1}{#2}{#3}{#4}}} +X +\def\@xthm#1#2#3#4{\@begintheorem{#2}{\csname the#1\endcsname}{#3}{#4}% +X \ignorespaces} +X +\def\@ythm#1#2#3#4[#5]{\@opargbegintheorem{#2}{\csname +X the#1\endcsname}{#5}{#3}{#4}\ignorespaces} +X +\def\@begintheorem#1#2#3#4{\trivlist +X \item[\hskip\labelsep{#3#1\ #2\@thmcounterend}]#4} +X +\def\@opargbegintheorem#1#2#3#4#5{\trivlist +X \item[\hskip\labelsep{#4#1\ #2\ (#3)\@thmcounterend}]#5} +X +% definition of \newtheorem* without number +X +\def\@sthm#1#2{\@Ynthm{#1}{#2}} +X +\def\@Ynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname +X {\global\@namedef{#1}{\@Thm{\csname #1name\endcsname}{#3}{#4}}% +X \expandafter\xdef\csname #1name\endcsname{#2}% +X \global\@namedef{end#1}{\@endtheorem}}} +X +\def\@Thm#1#2#3{\@ifnextchar[{\@Ythm{#1}{#2}{#3}}{\@Xthm{#1}{#2}{#3}}} +X +\def\@Xthm#1#2#3{\@Begintheorem{#1}{#2}{#3}\ignorespaces} +X +\def\@Ythm#1#2#3[#4]{\@Opargbegintheorem{#1} +X {#4}{#2}{#3}\ignorespaces} +X +\def\@Begintheorem#1#2#3{#3\trivlist +X \item[\hskip\labelsep{#2#1\@thmcounterend}]} +X +\def\@Opargbegintheorem#1#2#3#4{#4\trivlist +X \item[\hskip\labelsep{#3#1\ (#2)\@thmcounterend}]} +X +% definition of divers theorem environments +X +\if@envcntsect +X \def\@thmcountersep{.} +X \newtheorem{theorem}{Theorem}[section]{\bfseries}{\itshape} +\else +X \newtheorem{theorem}{Theorem}{\bfseries}{\itshape} +X \if@envcntreset +X \@addtoreset{theorem}{section} +X \else +X \@addtoreset{theorem}{chapter} +X \fi +\fi +\newtheorem*{proof}{Proof}{\itshape}{\rm} +\newtheorem{corollary}[theorem]{Corollary}{\bfseries}{\itshape} +\newtheorem{definition}[theorem]{Definition}{\bfseries}{\rm} +\newtheorem{example}[theorem]{Example}{\bfseries}{\rm} +\newtheorem{exercise}[theorem]{Exercise}{\bfseries}{\rm} +\newtheorem{lemma}[theorem]{Lemma}{\bfseries}{\itshape} +\newtheorem{note}[theorem]{Note}{\bfseries}{\rm} +\newtheorem{problem}[theorem]{Problem}{\bfseries}{\rm} +\newtheorem{proposition}[theorem]{Proposition}{\bfseries}{\itshape} +\newtheorem{question}[theorem]{Question}{\bfseries}{\rm} +\newtheorem{remark}[theorem]{Remark}{\bfseries}{\rm} +\newtheorem{solution}[theorem]{Solution}{\bfseries}{\rm} +X +\def\@takefromreset#1#2{% +X \def\@tempa{#1}% +X \let\@tempd\@elt +X \def\@elt##1{% +X \def\@tempb{##1}% +X \ifx\@tempa\@tempb\else +X \@addtoreset{##1}{#2}% +X \fi}% +X \expandafter\expandafter\let\expandafter\@tempc\csname cl@#2\endcsname +X \expandafter\def\csname cl@#2\endcsname{}% +X \@tempc +X \let\@elt\@tempd} +X +\def\theopargself{\def\@opargbegintheorem##1##2##3##4##5{\trivlist +X \item[\hskip\labelsep{##4##1\ ##2\ ##3}]##5} +X \def\@Opargbegintheorem##1##2##3##4{##4\trivlist +X \item[\hskip\labelsep{##3##1\ ##2}]} +X } +X +\renewenvironment{abstract}{\vskip 16pt\noindent\ignorespaces}{\vskip 12 pt} +\newenvironment{acknowledgment}% +X {\vskip 0pt plus 6pt\medskip +X \bgroup\small\baselineskip 11pt +X \noindent\textbf{Acknowledgments. }}% +X {\par\egroup\medskip} +\renewcommand{\abstractname}{} +\renewcommand{\contentsname}{Table of Contents} +\renewcommand{\figurename}{Fig.\thinspace} +\renewcommand{\tablename}{Table~} +X +\newdimen\headlineindent % dimension for space between +\headlineindent=1.166cm % number and text of headings. +X +\def\customizhead{\hspace{\headlineindent}} +\def\ps@headings{% +X \let\@mkboth\markboth +X \let\@oddfoot\@empty\let\@evenfoot\@empty +X \def\@evenhead{\normalfont\small\rlap{\thepage}\customizhead +X \leftmark\hfil} +X \def\@oddhead{\normalfont\small\hfil\rightmark\customizhead +X \llap{\thepage}} +X \def\chaptermark##1{}% +X \def\sectionmark##1{}% +X \def\subsectionmark##1{}} +X +\if@runhead\ps@headings\else +\ps@empty\fi +X +\renewcommand\appendix{\par +X \@appendixtrue +X \setcounter{section}{0}% +X \setcounter{subsection}{0}% +X \gdef\thesection{\@Alph\c@section}} +X +\def\@sect#1#2#3#4#5#6[#7]#8{% +X % #1 NAME (section) +X % #2 LEVEL (1) +X % #3 INDENT +X % #4 BEFORESKIP +X % #5 AFTERSKIP +X % #6 STYLE +X % #7 alternate heading +X % #8 heading +X \ifnum #2>\c@secnumdepth +X \let\@svsec\@empty +X \else +X \refstepcounter{#1}% +X \protected@edef\@svsec{% +X \if@appendix Appendix \csname the#1\endcsname. % +X \else \csname the#1\endcsname\quad% +X \fi +X \relax}% +X \fi +X \@tempskipa #5\relax +X \ifdim \@tempskipa>\z@ +X \begingroup +X #6{% +X \@hangfrom{\hskip #3\relax\@svsec}% +X \interlinepenalty \@M #8\@@par}% +X \endgroup +X \csname #1mark\endcsname{#7}% +X \addcontentsline{toc}{#1}{% +X \ifnum #2>\c@secnumdepth \else +X \if@appendix +X Appendix \csname the#1\endcsname. #7% +X \else +X \protect\numberline{\csname the#1\endcsname} #7% +X \fi +X \fi +X }% +X \else +X \def\@svsechd{% +X #6{\hskip #3\relax +X \@svsec #8}% +X \csname #1mark\endcsname{#7}% +X \addcontentsline{toc}{#1}{% +X \ifnum #2>\c@secnumdepth \else +X \protect\numberline{\csname the#1\endcsname}% +X \fi +X #7}}% +X \fi +X \@xsect{#5}} +X +X +\endinput +X +SHAR_EOF + (set 20 01 05 25 13 55 08 'lncse.cls'; eval "$shar_touch") && + chmod 0644 'lncse.cls' || + $echo 'restore of' 'lncse.cls' 'failed' + if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ + && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then + md5sum -c << SHAR_EOF >/dev/null 2>&1 \ + || $echo 'lncse.cls:' 'MD5 check failed' +4b28a911dc581654604f06aef632232e lncse.cls +SHAR_EOF + else + shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'lncse.cls'`" + test 35780 -eq "$shar_count" || + $echo 'lncse.cls:' 'original size' '35780,' 'current size' "$shar_count!" + fi +fi +# ============= merge.tex ============== +if test -f 'merge.tex' && test "$first_param" != -c; then + $echo 'x -' SKIPPING 'merge.tex' '(file already exists)' +else + $echo 'x -' extracting 'merge.tex' '(text)' + sed 's/^X//' << 'SHAR_EOF' > 'merge.tex' && +% these macros are needed by the output of the 'merge' program: +X +{\obeyspaces\global\let =\ } +\font\tteight=cmtt8 +X +\newdimen\outputBaseLineSkip +X \outputBaseLineSkip = 9pt +\newskip\beginOutputSkip +X \beginOutputSkip = 4.5 pt plus .5 pt minus .5 pt +\newskip\endOutputSkip +X \endOutputSkip = 2.5 pt plus .25 pt minus .25 pt +X +\def\looserOutput#1{% +X \advance\beginOutputSkip by #1 +X \advance\endOutputSkip by #1 +} +\def\tighterOutput#1{% +X \advance\beginOutputSkip by -#1 +X \advance\endOutputSkip by -#1 +} +X +\def\beginOutput{% +X \par +X \penalty -150 +X \vskip \beginOutputSkip +X \penalty -150 +X \begingroup +X \def\\{% +X \leavevmode +X \hss +X \endgraf +X \penalty 150 +X } +X \tteight +X \baselineskip = \outputBaseLineSkip +X \def\${\char`\$} +X \def\{{\char`\{} +X \def\}{\char`\}} +X \catcode`\_=\the\catcode`a +X \catcode`\^=\the\catcode`a +X \catcode`\#=\the\catcode`a +X \catcode`\~=\the\catcode`a +X \catcode`\&=\the\catcode`a +X \parskip=0pt +X \lineskip=0pt +X \obeyspaces +X } +\def\emptyLine{% +X \penalty -100 +X \vskip \endOutputSkip +X \vskip \beginOutputSkip +X \penalty -100 +X } +\def\endOutput{% +X \endgroup +X \par +X \penalty -150 +X \vskip \endOutputSkip +X \penalty -150 +X \noindent} +SHAR_EOF + (set 20 01 05 25 13 55 08 'merge.tex'; eval "$shar_touch") && + chmod 0644 'merge.tex' || + $echo 'restore of' 'merge.tex' 'failed' + if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ + && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then + md5sum -c << SHAR_EOF >/dev/null 2>&1 \ + || $echo 'merge.tex:' 'MD5 check failed' +e81b7ef70bdf5cf2a92341560c136be5 merge.tex +SHAR_EOF + else + shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'merge.tex'`" + test 1324 -eq "$shar_count" || + $echo 'merge.tex:' 'original size' '1324,' 'current size' "$shar_count!" + fi +fi +# ============= octahedron.eps ============== +if test -f 'octahedron.eps' && test "$first_param" != -c; then + $echo 'x -' SKIPPING 'octahedron.eps' '(file already exists)' +else + $echo 'x -' extracting 'octahedron.eps' '(text)' + sed 's/^X//' << 'SHAR_EOF' > 'octahedron.eps' && +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: octahedron.eps +%%Creator: fig2dev Version 3.2.3 Patchlevel +%%CreationDate: Mon Dec 11 16:56:27 2000 +%%For: ggsmith@pub-708c-24.math.berkeley.edu (Gregory Smith) +%%BoundingBox: 0 0 140 160 +%%Magnification: 0.5000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def +X +end +save +newpath 0 160 moveto 0 0 lineto 140 0 lineto 140 160 lineto closepath clip newpath +-54.0 225.0 translate +1 -1 scale +X +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor +X 4 -2 roll dup 1 exch sub 3 -1 roll mul add +X 4 -2 roll dup 1 exch sub 3 -1 roll mul add +X 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} +X bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul +X 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def +X +$F2psBegin +%%Page: 1 1 +10 setmiterlimit +X 0.03000 0.03000 sc +% Polyline +30.000 slw +n 4200 2400 m +X 2100 4800 l gs col0 s gr +% Polyline +n 2100 4800 m +X 4200 7200 l gs col0 s gr +% Polyline +n 2100 4800 m +X 3600 5700 l gs col0 s gr +% Polyline +n 3600 5700 m +X 6300 4800 l gs col0 s gr +% Polyline +n 6300 4800 m +X 4200 2400 l gs col0 s gr +% Polyline +n 6300 4800 m +X 4200 7200 l gs col0 s gr +% Polyline +X [120] 0 sd +n 2100 4800 m +X 4800 3900 l gs col0 s gr [] 0 sd +% Polyline +X [120] 0 sd +n 4800 3900 m +X 4200 2400 l gs col0 s gr [] 0 sd +% Polyline +X [120] 0 sd +n 4800 3900 m +X 6300 4800 l gs col0 s gr [] 0 sd +% Polyline +X [120] 0 sd +n 4800 3900 m +X 4200 7200 l gs col0 s gr [] 0 sd +% Polyline +n 3600 5700 m +X 4200 2400 l gs col0 s gr +% Polyline +n 4200 7200 m +X 3600 5700 l gs col0 s gr +/Times-Roman ff 300.00 scf sf +4950 3900 m +gs 1 -1 sc (5) col0 sh gr +/Times-Roman ff 300.00 scf sf +3300 5400 m +gs 1 -1 sc (6) col0 sh gr +/Times-Roman ff 300.00 scf sf +4350 7500 m +gs 1 -1 sc (2) col0 sh gr +/Times-Roman ff 300.00 scf sf +6300 4650 m +gs 1 -1 sc (4) col0 sh gr +/Times-Roman ff 300.00 scf sf +4350 2400 m +gs 1 -1 sc (1) col0 sh gr +/Times-Roman ff 300.00 scf sf +1800 4800 m +gs 1 -1 sc (3) col0 sh gr +$F2psEnd +rs +SHAR_EOF + (set 20 01 05 25 13 55 08 'octahedron.eps'; eval "$shar_touch") && + chmod 0644 'octahedron.eps' || + $echo 'restore of' 'octahedron.eps' 'failed' + if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ + && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then + md5sum -c << SHAR_EOF >/dev/null 2>&1 \ + || $echo 'octahedron.eps:' 'MD5 check failed' +2b21790c616c8705397427f230600986 octahedron.eps +SHAR_EOF + else + shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'octahedron.eps'`" + test 3927 -eq "$shar_count" || + $echo 'octahedron.eps:' 'original size' '3927,' 'current size' "$shar_count!" + fi +fi +# ============= springer.bst ============== +if test -f 'springer.bst' && test "$first_param" != -c; then + $echo 'x -' SKIPPING 'springer.bst' '(file already exists)' +else + $echo 'x -' extracting 'springer.bst' '(text)' + sed 's/^X//' << 'SHAR_EOF' > 'springer.bst' && +% modified by Dan Grayson +X +% BibTeX standard bibliography style `plain' +X % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. +X % Copyright (C) 1985, all rights reserved. +X % Copying of this file is authorized only if either +X % (1) you make absolutely no changes to your copy, including name, or +X % (2) if you do make changes, you name it something other than +X % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. +X % This restriction helps ensure that all standard styles are identical. +X % The file btxbst.doc has the documentation for this style. +X +ENTRY +X { address +X author +X booktitle +X chapter +X edition +X editor +X howpublished +X institution +X journal +X key +X month +X note +X number +X organization +X pages +X publisher +X school +X series +X title +X type +X volume +X year +X } +X {} +X { label } +X +INTEGERS { output.state before.all mid.sentence after.sentence after.block had.authors } +X +FUNCTION {init.state.consts} +{ #0 'before.all := +X #1 'mid.sentence := +X #2 'after.sentence := +X #3 'after.block := +} +X +STRINGS { s t } +X +FUNCTION {period.or.colon} +{ +X #1 had.authors = +X { ": " * #0 'had.authors := } +X { ". " * } +X if$ +} +X +FUNCTION {comma.or.colon} +{ +X #1 had.authors = +X { ": " * #0 'had.authors := } +X { ", " * } +X if$ +} +X +FUNCTION {output.nonnull} +{ 's := +X output.state mid.sentence = +X { comma.or.colon write$ } +X { output.state after.block = +X { period.or.colon write$ +X newline$ +X "\newblock " write$ +X } +X { output.state before.all = +X 'write$ +X { period.or.colon write$ } +X if$ +X } +X if$ +X mid.sentence 'output.state := +X } +X if$ +X s +} +X +FUNCTION {output} +{ duplicate$ empty$ +X 'pop$ +X 'output.nonnull +X if$ +} +X +FUNCTION {output.check} +{ 't := +X duplicate$ empty$ +X { pop$ "empty " t * " in " * cite$ * warning$ } +X 'output.nonnull +X if$ +} +X +FUNCTION {output.bibitem} +{ newline$ +X "\bibitem{" write$ +X cite$ write$ +X "}" write$ +X newline$ +X "" +X before.all 'output.state := +X #0 'had.authors := +} +X +FUNCTION {fin.entry} +{ add.period$ +X write$ +X newline$ +} +X +FUNCTION {new.block} +{ output.state before.all = +X 'skip$ +X { after.block 'output.state := } +X if$ +} +X +FUNCTION {new.sentence} +{ output.state after.block = +X 'skip$ +X { output.state before.all = +X 'skip$ +X { after.sentence 'output.state := } +X if$ +X } +X if$ +} +X +FUNCTION {not} +{ { #0 } +X { #1 } +X if$ +} +X +FUNCTION {and} +{ 'skip$ +X { pop$ #0 } +X if$ +} +X +FUNCTION {or} +{ { pop$ #1 } +X 'skip$ +X if$ +} +X +FUNCTION {new.block.checka} +{ empty$ +X 'skip$ +X 'new.block +X if$ +} +X +FUNCTION {new.block.checkb} +{ empty$ +X swap$ empty$ +X and +X 'skip$ +X 'new.block +X if$ +} +X +FUNCTION {new.sentence.checka} +{ empty$ +X 'skip$ +X 'new.sentence +X if$ +} +X +FUNCTION {new.sentence.checkb} +{ empty$ +X swap$ empty$ +X and +X 'skip$ +X 'new.sentence +X if$ +} +X +FUNCTION {field.or.null} +{ duplicate$ empty$ +X { pop$ "" } +X 'skip$ +X if$ +} +X +FUNCTION {emphasize} +{ duplicate$ empty$ +X { pop$ "" } +X { "{\em " swap$ * "}" * } +X if$ +} +X +INTEGERS { nameptr namesleft numnames } +X +FUNCTION {format.names} +{ 's := +X #1 'nameptr := +X s num.names$ 'numnames := +X numnames 'namesleft := +X { namesleft #0 > } +X { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := +X nameptr #1 > +X { namesleft #1 > +X { ", " * t * } +X { numnames #2 > +X { "," * } +X 'skip$ +X if$ +X t "others" = +X { " et~al." * } +X { " and " * t * } +X if$ +X } +X if$ +X } +X 't +X if$ +X nameptr #1 + 'nameptr := +X namesleft #1 - 'namesleft := +X } +X while$ +} +X +FUNCTION {format.authors} +{ author empty$ +X { "" } +X { author format.names #1 'had.authors := } +X if$ +} +X +FUNCTION {format.editors} +{ editor empty$ +X { "" } +X { editor format.names +X editor num.names$ #1 > +X { ", editors" * } +X { ", editor" * } +X if$ +X } +X if$ +} +X +FUNCTION {format.title} +{ title empty$ +X { "" } +X { title "t" change.case$ } +X if$ +} +X +FUNCTION {n.dashify} +{ 't := +X "" +X { t empty$ not } +X { t #1 #1 substring$ "-" = +X { t #1 #2 substring$ "--" = not +X { "--" * +X t #2 global.max$ substring$ 't := +X } +X { { t #1 #1 substring$ "-" = } +X { "-" * +X t #2 global.max$ substring$ 't := +X } +X while$ +X } +X if$ +X } +X { t #1 #1 substring$ * +X t #2 global.max$ substring$ 't := +X } +X if$ +X } +X while$ +} +X +FUNCTION {format.date} +{ year empty$ +X { month empty$ +X { "" } +X { "there's a month but no year in " cite$ * warning$ +X month +X } +X if$ +X } +X { month empty$ +X 'year +X { month " " * year * } +X if$ +X } +X if$ +} +X +FUNCTION {format.btitle} +{ title emphasize +} +X +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < +X { "~" } +X { " " } +X if$ +X swap$ * * +} +X +FUNCTION {either.or.check} +{ empty$ +X 'pop$ +X { "can't use both " swap$ * " fields in " * cite$ * warning$ } +X if$ +} +X +FUNCTION {format.bvolume} +{ volume empty$ +X { "" } +X { "volume" volume tie.or.space.connect +X series empty$ +X 'skip$ +X { " of " * series emphasize * } +X if$ +X "volume and number" number either.or.check +X } +X if$ +} +X +FUNCTION {format.number.series} +{ volume empty$ +X { number empty$ +X { series field.or.null } +X { output.state mid.sentence = +X { "number" } +X { "Number" } +X if$ +X number tie.or.space.connect +X series empty$ +X { "there's a number but no series in " cite$ * warning$ } +X { " in " * series * } +X if$ +X } +X if$ +X } +X { "" } +X if$ +} +X +FUNCTION {format.edition} +{ edition empty$ +X { "" } +X { output.state mid.sentence = +X { edition "l" change.case$ " edition" * } +X { edition "t" change.case$ " edition" * } +X if$ +X } +X if$ +} +X +INTEGERS { multiresult } +X +FUNCTION {multi.page.check} +{ 't := +X #0 'multiresult := +X { multiresult not +X t empty$ not +X and +X } +X { t #1 #1 substring$ +X duplicate$ "-" = +X swap$ duplicate$ "," = +X swap$ "+" = +X or or +X { #1 'multiresult := } +X { t #2 global.max$ substring$ 't := } +X if$ +X } +X while$ +X multiresult +} +X +FUNCTION {format.pages} +{ pages empty$ +X { "" } +X { pages multi.page.check +X { "pages" pages n.dashify tie.or.space.connect } +X { "page" pages tie.or.space.connect } +X if$ +X } +X if$ +} +X +FUNCTION {format.vol.num.pages} +{ volume field.or.null +X number empty$ +X 'skip$ +X { "(" number * ")" * * +X volume empty$ +X { "there's a number but no volume in " cite$ * warning$ } +X 'skip$ +X if$ +X } +X if$ +X pages empty$ +X 'skip$ +X { duplicate$ empty$ +X { pop$ format.pages } +X { ":" * pages n.dashify * } +X if$ +X } +X if$ +} +X +FUNCTION {format.chapter.pages} +{ chapter empty$ +X 'format.pages +X { type empty$ +X { "chapter" } +X { type "l" change.case$ } +X if$ +X chapter tie.or.space.connect +X pages empty$ +X 'skip$ +X { ", " * format.pages * } +X if$ +X } +X if$ +} +X +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ +X { "" } +X { editor empty$ +X { "In " booktitle emphasize * } +X { "In " format.editors * ", " * booktitle emphasize * } +X if$ +X } +X if$ +} +X +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ +X month empty$ year empty$ note empty$ +X and and and and and +X key empty$ not and +X { "all relevant fields are empty in " cite$ * warning$ } +X 'skip$ +X if$ +} +X +FUNCTION {format.thesis.type} +{ type empty$ +X 'skip$ +X { pop$ +X type "t" change.case$ +X } +X if$ +} +X +FUNCTION {format.tr.number} +{ type empty$ +X { "Technical Report" } +X 'type +X if$ +X number empty$ +X { "t" change.case$ } +X { number tie.or.space.connect } +X if$ +} +X +FUNCTION {format.article.crossref} +{ key empty$ +X { journal empty$ +X { "need key or journal for " cite$ * " to crossref " * crossref * +X warning$ +X "" +X } +X { "In {\em " journal * "\/}" * } +X if$ +X } +X { "In " key * } +X if$ +X " \cite{" * crossref * "}" * +} +X +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ +X editor num.names$ duplicate$ +X #2 > +X { pop$ " et~al." * } +X { #2 < +X 'skip$ +X { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = +X { " et~al." * } +X { " and " * editor #2 "{vv~}{ll}" format.name$ * } +X if$ +X } +X if$ +X } +X if$ +} +X +FUNCTION {format.book.crossref} +{ volume empty$ +X { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ +X "In " +X } +X { "Volume" volume tie.or.space.connect +X " of " * +X } +X if$ +X editor empty$ +X editor field.or.null author field.or.null = +X or +X { key empty$ +X { series empty$ +X { "need editor, key, or series for " cite$ * " to crossref " * +X crossref * warning$ +X "" * +X } +X { "{\em " * series * "\/}" * } +X if$ +X } +X { key * } +X if$ +X } +X { format.crossref.editor * } +X if$ +X " \cite{" * crossref * "}" * +} +X +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ +X editor field.or.null author field.or.null = +X or +X { key empty$ +X { booktitle empty$ +X { "need editor, key, or booktitle for " cite$ * " to crossref " * +X crossref * warning$ +X "" +X } +X { "In {\em " booktitle * "\/}" * } +X if$ +X } +X { "In " key * } +X if$ +X } +X { "In " format.crossref.editor * } +X if$ +X " \cite{" * crossref * "}" * +} +X +FUNCTION {article} +{ output.bibitem +X format.authors "author" output.check +X new.block +X format.title "title" output.check +X new.block +X crossref missing$ +X { journal emphasize "journal" output.check +X format.vol.num.pages output +X format.date "year" output.check +X } +X { format.article.crossref output.nonnull +X format.pages output +X } +X if$ +X new.block +X note output +X fin.entry +} +X +FUNCTION {book} +{ output.bibitem +X author empty$ +X { format.editors "author and editor" output.check } +X { format.authors output.nonnull +X crossref missing$ +X { "author and editor" editor either.or.check } +X 'skip$ +X if$ +X } +X if$ +X new.block +X format.btitle "title" output.check +X crossref missing$ +X { format.bvolume output +X new.block +X format.number.series output +X new.sentence +X publisher "publisher" output.check +X address output +X } +X { new.block +X format.book.crossref output.nonnull +X } +X if$ +X format.edition output +X format.date "year" output.check +X new.block +X note output +X fin.entry +} +X +FUNCTION {booklet} +{ output.bibitem +X format.authors output +X new.block +X format.title "title" output.check +X howpublished address new.block.checkb +X howpublished output +X address output +X format.date output +X new.block +X note output +X fin.entry +} +X +FUNCTION {inbook} +{ output.bibitem +X author empty$ +X { format.editors "author and editor" output.check } +X { format.authors output.nonnull +X crossref missing$ +X { "author and editor" editor either.or.check } +X 'skip$ +X if$ +X } +X if$ +X new.block +X format.btitle "title" output.check +X crossref missing$ +X { format.bvolume output +X format.chapter.pages "chapter and pages" output.check +X new.block +X format.number.series output +X new.sentence +X publisher "publisher" output.check +X address output +X } +X { format.chapter.pages "chapter and pages" output.check +X new.block +X format.book.crossref output.nonnull +X } +X if$ +X format.edition output +X format.date "year" output.check +X new.block +X note output +X fin.entry +} +X +FUNCTION {incollection} +{ output.bibitem +X format.authors "author" output.check +X new.block +X format.title "title" output.check +X new.block +X crossref missing$ +X { format.in.ed.booktitle "booktitle" output.check +X format.bvolume output +X format.number.series output +X format.chapter.pages output +X new.sentence +X publisher "publisher" output.check +X address output +X format.edition output +X format.date "year" output.check +X } +X { format.incoll.inproc.crossref output.nonnull +X format.chapter.pages output +X } +X if$ +X new.block +X note output +X fin.entry +} +X +FUNCTION {inproceedings} +{ output.bibitem +X format.authors "author" output.check +X new.block +X format.title "title" output.check +X new.block +X crossref missing$ +X { format.in.ed.booktitle "booktitle" output.check +X format.bvolume output +X format.number.series output +X format.pages output +X address empty$ +X { organization publisher new.sentence.checkb +X organization output +X publisher output +X format.date "year" output.check +X } +X { address output.nonnull +X format.date "year" output.check +X new.sentence +X organization output +X publisher output +X } +X if$ +X } +X { format.incoll.inproc.crossref output.nonnull +X format.pages output +X } +X if$ +X new.block +X note output +X fin.entry +} +X +FUNCTION {conference} { inproceedings } +X +FUNCTION {manual} +{ output.bibitem +X author empty$ +X { organization empty$ +X 'skip$ +X { organization output.nonnull +X address output +X } +X if$ +X } +X { format.authors output.nonnull } +X if$ +X new.block +X format.btitle "title" output.check +X author empty$ +X { organization empty$ +X { address new.block.checka +X address output +X } +X 'skip$ +X if$ +X } +X { organization address new.block.checkb +X organization output +X address output +X } +X if$ +X format.edition output +X format.date output +X new.block +X note output +X fin.entry +} +X +FUNCTION {mastersthesis} +{ output.bibitem +X format.authors "author" output.check +X new.block +X format.title "title" output.check +X new.block +X "Master's thesis" format.thesis.type output.nonnull +X school "school" output.check +X address output +X format.date "year" output.check +X new.block +X note output +X fin.entry +} +X +FUNCTION {misc} +{ output.bibitem +X format.authors "author" output.check +X title howpublished new.block.checkb % comment this out? +X format.title output +X howpublished new.block.checka +X howpublished output +X format.date output +X new.block +X note output +X fin.entry +X empty.misc.check +} +X +FUNCTION {phdthesis} +{ output.bibitem +X format.authors "author" output.check +X new.block +X format.btitle "title" output.check +X new.block +X "PhD thesis" format.thesis.type output.nonnull +X school "school" output.check +X address output +X format.date "year" output.check +X new.block +X note output +X fin.entry +} +X +FUNCTION {proceedings} +{ output.bibitem +X editor empty$ +X { organization output } +X { format.editors output.nonnull } +X if$ +X new.block +X format.btitle "title" output.check +X format.bvolume output +X format.number.series output +X address empty$ +X { editor empty$ +X { publisher new.sentence.checka } +X { organization publisher new.sentence.checkb +X organization output +X } +X if$ +X publisher output +X format.date "year" output.check +X } +X { address output.nonnull +X format.date "year" output.check +X new.sentence +X editor empty$ +X 'skip$ +X { organization output } +X if$ +X publisher output +X } +X if$ +X new.block +X note output +X fin.entry +} +X +FUNCTION {techreport} +{ output.bibitem +X format.authors "author" output.check +X new.block +X format.title "title" output.check +X new.block +X format.tr.number output.nonnull +X institution "institution" output.check +X address output +X format.date "year" output.check +X new.block +X note output +X fin.entry +} +X +FUNCTION {unpublished} +{ output.bibitem +X format.authors "author" output.check +X new.block +X format.title "title" output.check +X new.block +X note "note" output.check +X format.date output +X fin.entry +} +X +FUNCTION {default.type} { misc } +X +MACRO {jan} {"January"} +X +MACRO {feb} {"February"} +X +MACRO {mar} {"March"} +X +MACRO {apr} {"April"} +X +MACRO {may} {"May"} +X +MACRO {jun} {"June"} +X +MACRO {jul} {"July"} +X +MACRO {aug} {"August"} +X +MACRO {sep} {"September"} +X +MACRO {oct} {"October"} +X +MACRO {nov} {"November"} +X +MACRO {dec} {"December"} +X +MACRO {acmcs} {"ACM Computing Surveys"} +X +MACRO {acta} {"Acta Informatica"} +X +MACRO {cacm} {"Communications of the ACM"} +X +MACRO {ibmjrd} {"IBM Journal of Research and Development"} +X +MACRO {ibmsj} {"IBM Systems Journal"} +X +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} +X +MACRO {ieeetc} {"IEEE Transactions on Computers"} +X +MACRO {ieeetcad} +X {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} +X +MACRO {ipl} {"Information Processing Letters"} +X +MACRO {jacm} {"Journal of the ACM"} +X +MACRO {jcss} {"Journal of Computer and System Sciences"} +X +MACRO {scp} {"Science of Computer Programming"} +X +MACRO {sicomp} {"SIAM Journal on Computing"} +X +MACRO {tocs} {"ACM Transactions on Computer Systems"} +X +MACRO {tods} {"ACM Transactions on Database Systems"} +X +MACRO {tog} {"ACM Transactions on Graphics"} +X +MACRO {toms} {"ACM Transactions on Mathematical Software"} +X +MACRO {toois} {"ACM Transactions on Office Information Systems"} +X +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} +X +MACRO {tcs} {"Theoretical Computer Science"} +X +READ +X +FUNCTION {sortify} +{ purify$ +X "l" change.case$ +} +X +INTEGERS { len } +X +FUNCTION {chop.word} +{ 's := +X 'len := +X s #1 len substring$ = +X { s len #1 + global.max$ substring$ } +X 's +X if$ +} +X +FUNCTION {sort.format.names} +{ 's := +X #1 'nameptr := +X "" +X s num.names$ 'numnames := +X numnames 'namesleft := +X { namesleft #0 > } +X { nameptr #1 > +X { " " * } +X 'skip$ +X if$ +X s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := +X nameptr numnames = t "others" = and +X { "et al" * } +X { t sortify * } +X if$ +X nameptr #1 + 'nameptr := +X namesleft #1 - 'namesleft := +X } +X while$ +} +X +FUNCTION {sort.format.title} +{ 't := +X "A " #2 +X "An " #3 +X "The " #4 t chop.word +X chop.word +X chop.word +X sortify +X #1 global.max$ substring$ +} +X +FUNCTION {author.sort} +{ author empty$ +X { key empty$ +X { "to sort, need author or key in " cite$ * warning$ +X "" +X } +X { key sortify } +X if$ +X } +X { author sort.format.names } +X if$ +} +X +FUNCTION {author.editor.sort} +{ author empty$ +X { editor empty$ +X { key empty$ +X { "to sort, need author, editor, or key in " cite$ * warning$ +X "" +X } +X { key sortify } +X if$ +X } +X { editor sort.format.names } +X if$ +X } +X { author sort.format.names } +X if$ +} +X +FUNCTION {author.organization.sort} +{ author empty$ +X { organization empty$ +X { key empty$ +X { "to sort, need author, organization, or key in " cite$ * warning$ +X "" +X } +X { key sortify } +X if$ +X } +X { "The " #4 organization chop.word sortify } +X if$ +X } +X { author sort.format.names } +X if$ +} +X +FUNCTION {editor.organization.sort} +{ editor empty$ +X { organization empty$ +X { key empty$ +X { "to sort, need editor, organization, or key in " cite$ * warning$ +X "" +X } +X { key sortify } +X if$ +X } +X { "The " #4 organization chop.word sortify } +X if$ +X } +X { editor sort.format.names } +X if$ +} +X +FUNCTION {presort} +{ type$ "book" = +X type$ "inbook" = +X or +X 'author.editor.sort +X { type$ "proceedings" = +X 'editor.organization.sort +X { type$ "manual" = +X 'author.organization.sort +X 'author.sort +X if$ +X } +X if$ +X } +X if$ +X " " +X * +X year field.or.null sortify +X * +X " " +X * +X title field.or.null +X sort.format.title +X * +X #1 entry.max$ substring$ +X 'sort.key$ := +} +X +ITERATE {presort} +X +SORT +X +STRINGS { longest.label } +X +INTEGERS { number.label longest.label.width } +X +FUNCTION {initialize.longest.label} +{ "" 'longest.label := +X #1 'number.label := +X #0 'longest.label.width := +} +X +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := +X number.label #1 + 'number.label := +X label width$ longest.label.width > +X { label 'longest.label := +X label width$ 'longest.label.width := +X } +X 'skip$ +X if$ +} +X +EXECUTE {initialize.longest.label} +X +ITERATE {longest.label.pass} +X +FUNCTION {begin.bib} +{ preamble$ empty$ +X 'skip$ +X { preamble$ write$ newline$ } +X if$ +X "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} +X +EXECUTE {begin.bib} +X +EXECUTE {init.state.consts} +X +ITERATE {call.type$} +X +FUNCTION {end.bib} +{ newline$ +X "\end{thebibliography}" write$ newline$ +} +X +EXECUTE {end.bib} +SHAR_EOF + (set 20 01 05 25 13 55 08 'springer.bst'; eval "$shar_touch") && + chmod 0644 'springer.bst' || + $echo 'restore of' 'springer.bst' 'failed' + if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ + && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then + md5sum -c << SHAR_EOF >/dev/null 2>&1 \ + || $echo 'springer.bst:' 'MD5 check failed' +5d89cc020a2fc01f4fc6e5a93b0fa289 springer.bst +SHAR_EOF + else + shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'springer.bst'`" + test 19579 -eq "$shar_count" || + $echo 'springer.bst:' 'original size' '19579,' 'current size' "$shar_count!" + fi +fi +# ============= sprmindx.sty ============== +if test -f 'sprmindx.sty' && test "$first_param" != -c; then + $echo 'x -' SKIPPING 'sprmindx.sty' '(file already exists)' +else + $echo 'x -' extracting 'sprmindx.sty' '(text)' + sed 's/^X//' << 'SHAR_EOF' > 'sprmindx.sty' && +delim_0 "\\idxquad " +delim_1 "\\idxquad " +delim_2 "\\idxquad " +delim_n ",\\," +SHAR_EOF + (set 20 01 05 25 13 55 08 'sprmindx.sty'; eval "$shar_touch") && + chmod 0644 'sprmindx.sty' || + $echo 'restore of' 'sprmindx.sty' 'failed' + if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ + && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then + md5sum -c << SHAR_EOF >/dev/null 2>&1 \ + || $echo 'sprmindx.sty:' 'MD5 check failed' +455d20873d808d1eeb01df84f3084f5a sprmindx.sty +SHAR_EOF + else + shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'sprmindx.sty'`" + test 78 -eq "$shar_count" || + $echo 'sprmindx.sty:' 'original size' '78,' 'current size' "$shar_count!" + fi +fi +# ============= standardpairs-fixed.eps ============== +if test -f 'standardpairs-fixed.eps' && test "$first_param" != -c; then + $echo 'x -' SKIPPING 'standardpairs-fixed.eps' '(file already exists)' +else + $echo 'x -' extracting 'standardpairs-fixed.eps' '(binary)' + sed 's/^X//' << 'SHAR_EOF' | uudecode && +begin 600 standardpairs-fixed.eps +M)2%04RU!9&]B92TR+C`@15!31BTR+C`-"B4E5&ET;&4Z('-T86YD87)D<&%I +M2!3;6ET:"D-"B4E0F]U;F1I;F=";W@Z(#`@,"`R.3`@ +M,C8T#0HE)4UA9VYI9FEC871I;VXZ(#`N-S4P,`T*)25%;F1#;VUM96YT"!P=70-"B]C;VPM,2![,"!S971GS`N,#`P(#`N,#`P(#`N,#`P('-R9V)](&)I;F0@ +M9&5F#0HO8V]L,2![,"XP,#`@,"XP,#`@,2XP,#`@S`N,#`P(#$N,#`P(#$N,#`P('-R9V)](&)I;F0@9&5F#0HO8V]L-"![ +M,2XP,#`@,"XP,#`@,"XP,#`@S$N,#`P(#$N +M,#`P(#`N,#`P('-R9V)](&)I;F0@9&5F#0HO8V]L-R![,2XP,#`@,2XP,#`@ +M,2XP,#`@S`N,#`P(#`N,#`P(#`N-CDP('-R +M9V)](&)I;F0@9&5F#0HO8V]L,3`@>S`N,#`P(#`N,#`P(#`N.#(P('-R9V)] +M(&)I;F0@9&5F#0HO8V]L,3$@>S`N-3,P(#`N.#$P(#$N,#`P('-R9V)](&)I +M;F0@9&5F#0HO8V]L,3(@>S`N,#`P(#`N-38P(#`N,#`P('-R9V)](&)I;F0@ +M9&5F#0HO8V]L,3,@>S`N,#`P(#`N-CDP(#`N,#`P('-R9V)](&)I;F0@9&5F +M#0HO8V]L,30@>S`N,#`P(#`N.#(P(#`N,#`P('-R9V)](&)I;F0@9&5F#0HO +M8V]L,34@>S`N,#`P(#`N-38P(#`N-38P('-R9V)](&)I;F0@9&5F#0HO8V]L +M,38@>S`N,#`P(#`N-CDP(#`N-CDP('-R9V)](&)I;F0@9&5F#0HO8V]L,3<@ +M>S`N,#`P(#`N.#(P(#`N.#(P('-R9V)](&)I;F0@9&5F#0HO8V]L,3@@>S`N +M-38P(#`N,#`P(#`N,#`P('-R9V)](&)I;F0@9&5F#0HO8V]L,3D@>S`N-CDP +M(#`N,#`P(#`N,#`P('-R9V)](&)I;F0@9&5F#0HO8V]L,C`@>S`N.#(P(#`N +M,#`P(#`N,#`P('-R9V)](&)I;F0@9&5F#0HO8V]L,C$@>S`N-38P(#`N,#`P +M(#`N-38P('-R9V)](&)I;F0@9&5F#0HO8V]L,C(@>S`N-CDP(#`N,#`P(#`N +M-CDP('-R9V)](&)I;F0@9&5F#0HO8V]L,C,@>S`N.#(P(#`N,#`P(#`N.#(P +M('-R9V)](&)I;F0@9&5F#0HO8V]L,C0@>S`N-3`P(#`N,3DP(#`N,#`P('-R +M9V)](&)I;F0@9&5F#0HO8V]L,C4@>S`N-C,P(#`N,C4P(#`N,#`P('-R9V)] +M(&)I;F0@9&5F#0HO8V]L,C8@>S`N-S4P(#`N,S@P(#`N,#`P('-R9V)](&)I +M;F0@9&5F#0HO8V]L,C<@>S$N,#`P(#`N-3`P(#`N-3`P('-R9V)](&)I;F0@ +M9&5F#0HO8V]L,C@@>S$N,#`P(#`N-C,P(#`N-C,P('-R9V)](&)I;F0@9&5F +M#0HO8V]L,CD@>S$N,#`P(#`N-S4P(#`N-S4P('-R9V)](&)I;F0@9&5F#0HO +M8V]L,S`@>S$N,#`P(#`N.#@P(#`N.#@P('-R9V)](&)I;F0@9&5F#0HO8V]L +M,S$@>S$N,#`P(#`N.#0P(#`N,#`P('-R9V)](&)I;F0@9&5F#0H-"F5N9`T* +MV-L +M;W-E<&%T:'T@8FEN9"!D968-"B]E9B![96]F:6QL?2!B:6YD(&1E9@T*+V=R +M('MGW-A=F5](&)I;F0@9&5F#0HOW)EVUO=F5T;WT@8FEN9"!D968-"B]R +M;2![W-TW-E=&QI;F5C87!](&)I;F0@9&5F#0HOW-E=&QI;F5W:61T:'T@8FEN9"!D968-"B]SW)O=&%T97T@8FEN9"!D +M968-"B]S8R![W-E=&1AV9I;F1F;VYT?2!B:6YD(&1E9@T*+W-F('MS971F;VYT?2!B +M:6YD(&1E9@T*+W-C9B![&-H('-U8B`S("TQ(')O;&P@;75L(&%D9`T*("`T("TR(')O;&P@ +M9'5P(#$@97AC:"!S=6(@,R`M,2!R;VQL(&UU;"!A9&0@V1U<"!D=7`@8W5RR1&,G!S16YT +M97)E9%-T871E(')E6QI;F4-"C,P+C`P,"!S;'<-"FX@-S(P,"`X,3`P(&T@-30P +M,"`X,3`P(&P@-C8W-2`V.#(U(&P@.#0W-2`V.#(U(&P-"B`W,C`P(#@Q,#`@ +M;"`@8W`@9W,@8V]L-R`P+CDP('-H9"!E9B!G6QI;F4-"FX@-C8W-2`U-C(U(&T@-C`W-2`U-C(U(&P@-C4P,"`U,C`P +M(&P@-S$P,"`U,C`P(&P-"B`V-C6QI;F4-"FX@-C8W-2`V +M,C(U(&T@-C`W-2`V,C(U(&P@-#@P,"`W-3`P(&P@-30P,"`W-3`P(&P-"B`V +M-C6QI;F4-"FX@-C8W-2`V,C(U(&T@.#0W-2`V,C(U(&P@ +M.#DP,"`U.#`P(&P@-S$P,"`U.#`P(&P-"B`V-C6QI;F4- +M"FX@-C8W-2`V,C(U(&T@-C8W-2`U-C(U(&P@-S$P,"`U,C`P(&P@-S$P,"`U +M.#`P(&P-"B`V-C6QI;F4-"FX@-C8W-2`V,C(U(&T@-C8W +M-2`U-C(U(&P@-C`W-2`U-C(U(&P@-C`W-2`V,C(U(&P-"B`V-C6QI;F4-"FX@-C8W-2`V.#(U(&T@-C8W-2`V,C(U(&P@-30P,"`W-3`P +M(&P@-30P,"`X,3`P(&P-"B`V-C6QI;F4-"FX@-C8W-2`V +M.#(U(&T@.#0W-2`V.#(U(&P@.#0W-2`V,C(U(&P@-C8W-2`V,C(U(&P-"B`V +M-C6QI;F4-"FX@-S$P,"`U.#`P(&T@.#DP,"`U.#`P(&P@ +M.#DP,"`T,#`P(&P@-C4P,"`T,#`P(&P@-C4P,"`U,C`P(&P@-S$P,"`U,C`P +M(&P-"@T*(#6QI;F4-"B!;,34@ +M-#5=(#0U('-D#0IN(#,V,#`@.#$P,"!M(#4T,#`@.#$P,"!L#0H@-30P,"`X +M-S`P(&P@9W,@8V]L,"!S(&=R("!;72`P('-D#0HE(%!O;'EL:6YE#0H@6S$U +M(#0U72`T-2!S9`T*;B`S-C`P(#6QI;F4-"B!; +M,34@-#5=(#0U('-D#0IN(#,V,#`@-CDP,"!M#0H@-#@P,"`V.3`P(&P@9W,@ +M8V]L,"!S(&=R("!;72`P('-D#0HE(%!O;'EL:6YE#0H@6S$U(#0U72`T-2!S +M9`T*;B`S-C`P(#8S,#`@;0T*(#0X,#`@-C,P,"!L(&=S(&-O;#`@6QI;F4-"B!; +M,34@-#5=(#0U('-D#0IN(#8U,#`@-#`P,"!M(#4S,#`@-#`P,"!L#0H@,S8P +M,"`U-S`P(&P@9W,@8V]L,"!S(&=R("!;72`P('-D#0HE(%!O;'EL:6YE#0H@ +M6S$U(#0U72`T-2!S9`T*;B`T,#(U(#4R-S4@;0T*(#4R,C4@-3(W-2!L(&=S +M(&-O;#`@6QI;F4-"B!;,34@-#5=(#0U('-D#0IN(#0X-S4@ +M-#0R-2!M#0H@-C`W-2`T-#(U(&P@9W,@8V]L,"!S(&=R("!;72`P('-D#0HE +M(%!O;'EL:6YE#0H@6S$U(#0U72`T-2!S9`T*;B`V,#`P(#@Q,#`@;0T*(#8P +M,#`@.#6QI;F4-"C$P+C`P,"!S;'<- +M"FX@-3(R-2`U,C6QI;F4- +M"FX@-38U,"`T.#4P(&T@-38U,"`V-C4P(&P@-C(U,"`V-C4P(&P@-C(U,"`W +M,C4P(&P-"B`X,#4P(#6QI;F4- +M"FX@.#,P,"`T,#`P(&T@.#,P,"`U.#`P(&P@-S@W-2`V,C(U(&P@-S@W-2`V +M.#(U(&P-"B`V-C`P(#@Q,#`@;"!G6QI;F4- +M"FX@-S6QI;F4- +M"FX@.#DP,"`T-C`P(&T@-C4P,"`T-C`P(&P-"B`T.#`P(#8S,#`@;"!G6QI;F4-"FX@-#@P,"`V.3`P(&T-"B`V,#6QI;F4-"FX@-S$P,"`U,C`P(&T- +M"B`X.3`P(#4R,#`@;"!G6QI;F4-"FX@-C`W +M-2`T-#(U(&T-"B`V,#6QI +M;F4-"FX@-S$P,"`U,C`P(&T-"B`W,3`P(#0P,#`@;"!G6QI;F4-"C8P+C`P,"!S;'<-"F=S("!C;&EP<&%T:`T*.34Q-2`W +M,#8P(&T@.34Q-2`V.30P(&P@.3,P.2`V.30P(&P@.30R.2`W,#`P(&P@.3,P +M.2`W,#8P(&P@8W`-"F5O8VQI<`T*;B`X.3`P(#6QI;F4-"C,P+C`P,"!S;'<-"B!;,34@-#5=(#0U('-D#0IN(#"D@8V]L,"!S:"!G<@T*+U1I;65S+4ET86QI8R!F9B`S,#`N,#`@2D@8V]L,"!S:"!G<@T*+U1I +M;65S+4ET86QI8R!F9B`S,#`N,#`@BD@8V]L,"!S:"!G<@T*)$8R<'-%;F0-"G)S#0H@ +` +end +SHAR_EOF + (set 20 01 05 25 13 55 08 'standardpairs-fixed.eps'; eval "$shar_touch") && + chmod 0644 'standardpairs-fixed.eps' || + $echo 'restore of' 'standardpairs-fixed.eps' 'failed' + if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ + && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then + md5sum -c << SHAR_EOF >/dev/null 2>&1 \ + || $echo 'standardpairs-fixed.eps:' 'MD5 check failed' +d4147493189baef6d6bdcc12d24f5411 standardpairs-fixed.eps +SHAR_EOF + else + shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'standardpairs-fixed.eps'`" + test 7013 -eq "$shar_count" || + $echo 'standardpairs-fixed.eps:' 'original size' '7013,' 'current size' "$shar_count!" + fi +fi +# ============= xispace.sty ============== +if test -f 'xispace.sty' && test "$first_param" != -c; then + $echo 'x -' SKIPPING 'xispace.sty' '(file already exists)' +else + $echo 'x -' extracting 'xispace.sty' '(text)' + sed 's/^X//' << 'SHAR_EOF' > 'xispace.sty' && +% I've modified xspace to create this macro xispace, which includes an optional +% italic correction along with the space. (Daniel R. Grayson) +X +%% Copyright 1993 1994 1995 1996 1997 1998 1999 +%% The LaTeX3 Project and any individual authors listed elsewhere +%% in this file. +%% +%% This file is part of the Standard LaTeX `Tools Bundle'. +%% ------------------------------------------------------- +%% +%% This file, and all the other files in this bundle as listed below, +%% may be distributed under the terms of the LaTeX Project Public +%% License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +%% File: xspace.dtx Copyright (C) 1991-1996 David Carlisle +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{xispace} +X [1997/10/13 v1.06 Space and italic correction after command names (DPC)] +\DeclareRobustCommand\xispace{\futurelet\@let@token\@xispace} +\def\@xispace{% +X \ifx\@let@token\bgroup\else +X \ifx\@let@token\egroup\else +X \ifx\@let@token\/\else +X \ifx\@let@token\ \else +X \ifx\@let@token~\else +X \ifx\@let@token.\else +X \ifx\@let@token!\else +X \ifx\@let@token,\else +X \ifx\@let@token:\else +X \ifx\@let@token;\else +X \ifx\@let@token?\else +X \ifx\@let@token/\else +X \ifx\@let@token'\else +X \ifx\@let@token)\else +X \ifx\@let@token-\else +X \ifx\@let@token\@xobeysp\else +X \ifx\@let@token\space\else +X \ifx\@let@token\@sptoken\else +X \/\space +X \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} +X +\endinput +%% +%% End of file `xispace.sty'. +SHAR_EOF + (set 20 01 05 25 13 55 08 'xispace.sty'; eval "$shar_touch") && + chmod 0644 'xispace.sty' || + $echo 'restore of' 'xispace.sty' 'failed' + if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \ + && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then + md5sum -c << SHAR_EOF >/dev/null 2>&1 \ + || $echo 'xispace.sty:' 'MD5 check failed' +50af9ff406d62d789ec8736aa4b0c4f9 xispace.sty +SHAR_EOF + else + shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'xispace.sty'`" + test 1527 -eq "$shar_count" || + $echo 'xispace.sty:' 'original size' '1527,' 'current size' "$shar_count!" + fi +fi +rm -fr _sh19132 +exit 0 diff --git a/Book/ComputationsBook/book/book.tex b/Book/ComputationsBook/book/book.tex new file mode 100644 index 0000000..4a1794b --- /dev/null +++ b/Book/ComputationsBook/book/book.tex @@ -0,0 +1,25171 @@ +% This tex file has been produced automatically, do not edit. +% Title: Computations in algebraic geometry with Macaulay 2 +\def\editors{Editors: D. Eisenbud, D. Grayson, M. Stillman, and B. Sturmfels} +\documentclass[runningheads]{lncse} + \usepackage{makeidx,multicol}\makeindex + \def\rhpage{\ifodd\value{page}\else\thispagestyle{empty}\null\vfill\eject\fi} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% +%%%%% book-macros.tex +%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \usepackage{amsthm} % can't use this! +\usepackage{amsmath} +\usepackage{amscd} +\usepackage{amssymb,latexsym} +\usepackage{xispace} +% \usepackage[light]{draftcopy} \draftcopySetGrey{0.965} +\usepackage{verbatim} + +\usepackage[PostScript=dvips]{diagrams} % used only in the Eisenbud-Decker paper +\let\labelstyle\undefined % xy redefines this, anyway +\let\objectstyle\undefined % xy redefines this, anyway +\let\objectwidth\undefined % xy redefines this, anyway +\let\objectheight\undefined % xy redefines this, anyway +\let\stop\undefined % xy redefines this, anyway +\let\diagram\undefined % xy redefines this, anyway + +\usepackage[matrix,arrow,curve]{xy} +% \usepackage{hyperref} \hypersetup{ +% bookmarks=true, +% bookmarksnumbered=true, +% colorlinks=true +% } +\input xypic.tex +\input epsf.tex +\numberwithin{theorem}{section} +\newtheorem{Remark}[theorem]{Remark}{\bfseries}{\rm} +\newtheorem{Example}[theorem]{Example}{\bfseries}{\rm} +\newtheorem{code}[theorem]{Code}{\bfseries}{\rm} +\newcommand{\Mtwo}{{\textsl{Macaulay~2}}\xispace} +\newcommand{\Macaulay}{\textsl{Macaulay}\xispace} +\date{\ifcase\month\or January\or February\or March\or April\or May\or + June\or July\or August\or September\or October\or November\or December\fi + \space\number\day, \number\year} +\bibliographystyle{springer} +\newcommand{\ie}[1]{#1\index{#1}} +\newcommand{\indexcmd}[1]{\index{#1@{\tt #1}}} + +\setcounter{tocdepth}{1} + +% we need this definition here so it can be used in the index! +\def\Ext{\operatorname{Ext}} +\hyphenation{Mac-au-lay} + +\input merge + +%% this overrides some junk in lncse.cls: +\def\bbbr{{\mathbb R}} +\def\bbbm{{\mathbb M}} +\def\bbbn{{\mathbb N}} +\def\bbbf{{\mathbb F}} +\def\bbbh{{\mathbb H}} +\def\bbbk{{\mathbb K}} +\def\bbbp{{\mathbb P}} +\def\bbbc{{\mathbb C}} +\def\bbbq{{\mathbb Q}} +\def\bbbt{{\mathbb T}} +\def\bbbs{{\mathbb S}} +\def\bbbz{{\mathbb Z}} + \begin{document} + \frontmatter + + % \hypersetup{ + % pdftitle=Computations in algebraic geometry with Macaulay 2 + % pdfsubject=Macaulay 2, + % pdfkeywords=computations -- syzygies -- Macaulay 2, + % pdfauthor=\editors} + + \thispagestyle{empty}\null + \vskip 2 in + \centerline{\Large\textbf{Computations in algebraic geometry}} + \bigskip + \centerline{\Large\textbf{with \textsl{Macaulay 2}}} + \bigskip + \bigskip + \bigskip + \centerline{\editors} + \vfill\eject + \rhpage + \pagenumbering{roman} + \makeatletter \c@page=5 \makeatother + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% +%%%%% ../chapters/preface/chapter-m2.tex and ../chapters/preface/chapter-wrapper.bbl +%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\bgroup +% $Source: /home/cvs/M2/Macaulay2/ComputationsBook/chapters/preface/chapter.tex,v $ +% $Revision: 1.36.2.3 $ +% $Date: 2001/05/22 14:47:48 $ + +\chapter*{Preface} +\markboth{Preface}{Preface} +\addcontentsline{toc}{section}{Preface} + +\bgroup + +Systems of polynomial equations arise throughout mathematics, science, and +engineering. +Algebraic geometry provides powerful theoretical techniques for +studying the qualitative and quantitative features of their solution sets. +Recently developed algorithms have made theoretical aspects of the subject +accessible to a broad range of mathematicians and scientists. +The algorithmic approach to the subject has two +principal aims: developing new tools for research within mathematics, +and providing new tools for modeling and solving problems +that arise in the sciences and engineering. A healthy +synergy emerges, as new theorems yield new algorithms and emerging +applications lead to new theoretical questions. + +This book presents algorithmic tools for algebraic geometry and experimental +applications of them. It also introduces a +software system in which +the tools have been implemented and with which the experiments can +be carried out. \Mtwo is a computer +algebra system devoted to supporting research in algebraic geometry, +commutative algebra, and their applications. +The reader of this book will encounter \Mtwo in the context of concrete +applications and +practical computations in algebraic geometry. + +The expositions of the algorithmic tools presented here are designed to serve +as a useful guide for those wishing to bring such tools to bear on their own +problems. +A wide range of mathematical scientists should find these expositions valuable. +This includes both the users of other programs +similar to \Mtwo (for example, Singular and CoCoA) and those who +are not interested in explicit machine computations at all. + +The chapters are ordered roughly by increasing mathematical +difficulty. The first part of the book is meant to be accessible to +graduate students and computer algebra users from across the +mathematical sciences and is primarily concerned +with introducing \Mtwo. The second part emphasizes the +mathematics: each chapter exposes some domain of mathematics at an +accessible level, presents the relevant algorithms, sometimes with +proofs, and illustrates the use of the program. In both parts, each chapter comes with +its own abstract and its own bibliography; the index at the back of +the book covers all of them. + +One of the first computer algebra packages aimed at algebraic geometry +was {\sl Macaulay,} the predecessor of \Mtwo, written during the years +1983-1993 by Dave Bayer and Mike Stillman. Worst-case estimates +suggested that trying to compute Gr\"obner bases might be a hopeless +approach to solving problems. But from the first prototype, \Macaulay +was successful surprisingly often, perhaps because of the geometrical +origin of the problems attacked. \Macaulay improved steadily during +its first decade. It helped transform the theoretical notion of a +projective resolution into an exciting new practical research tool, +and became widely used for research and teaching in commutative +algebra and algebraic geometry. It was possible to write routines in +the top-level language, and many important algorithms were added by +David Eisenbud and other users, enhancing the system and broadening its +usefulness. + +There were certain practical drawbacks for the researcher who wanted to use +\Macaulay effectively. A minor annoyance was that only finite prime fields +were available as coefficient rings. The major problem was that the language +made available to users was primitive and barely supported high-level +development of new algorithms; it had few basic data types and didn't support +the addition of new ones. + +\Mtwo is based on experience gained from writing and using its predecessor +\Macaulay, but is otherwise a fresh start. It was written by Dan Grayson and +Mike Stillman with the generous financial support of the U.S. National +Science Foundation, with the work starting in 1993\footnote{NSF grants DMS + 92-10805, 92-10807, 96-23232, 96-22608, 99-70085, and 99-70348.}. +It also incorporates +some code from other authors: the package +SINGULAR-FACTORY\footnote{\texttt{SINGULAR-FACTORY}, + a subroutine library for factorization, + by G.-M. Greuel, R. Stobbe, G. Pfister, H. Schoenemann, and J. Schmidt; + available at ftp://helios.mathematik.uni-kl.de/pub/Math/Singular/Factory/.} +provides for factorization of polynomials; +SINGULAR-LIBFAC\footnote{\texttt{SINGULAR-LIBFAC}, + a subroutine library for characteristic sets and irreducible decomposition, + by M. Messollen; + available at ftp://helios.mathematik.uni-kl.de/pub/Math/Singular/Libfac/.} +uses FACTORY to enable the computation of characteristic +sets and thus the decomposition of subvarieties into their irreducible +components; and +GNU MP\footnote{\texttt{GMP}, a library for arbitrary precision arithmetic, + by Torbj\"orn Granlund, + John Amanatides, + Paul Zimmermann, + Ken Weber, + Bennet Yee, + Andreas Schwab, + Robert Harley, + Linus Nordberg, + Kent Boortz, + Kevin Ryde, and + Guillaume Hanrot; + available at {ftp://ftp.gnu.org/gnu/gmp/}.} +by Torbj\"orn Granlund and others provides +for multiple precision arithmetic. + +\Mtwo aims to support efficient computation associated with a wide +variety of high level mathematical objects, including Galois fields, +number fields, polynomial rings, exterior algebras, Weyl algebras, +quotient rings, ideals, modules, homomorphisms of rings and modules, +graded modules, maps between graded modules, chain complexes, maps +between chain complexes, free resolutions, algebraic varieties, and +coherent sheaves. To make the system easily accessible, standard +mathematical notation is followed closely. + +As with \Macaulay, it was hoped that users would join in the further +development of new algorithms for \Mtwo, so the developers +tried to make the language available to +the users as powerful as possible, yet easy to use. +Indeed, much of the high-level part of the system is written in the same language +available to the user. This ensures that the user will find it just as easy +as the developers did to implement a new type of mathematical object or to +modify the high-level aspects of the current algorithms. + +The language available to the user is interpreted. The interpreter itself +is written in a convenient language designed to be mostly type-safe and to +handle memory allocation and initialization automatically. For maximum +efficiency, the core mathematical algorithms are written in C++ and compiled, +not interpreted. This includes the arithmetic operations of rings, modules, +and matrices, the Gr\"obner basis algorithm (in several enhanced versions, +tailored for various situations), several algorithms for computing free +resolutions of modules, the algorithm for computing the Hilbert series of a +graded ring or module, the algorithms for computing determinants and +Pfaffians, the basis reduction algorithm, factoring, etc. + +In one way \Mtwo is like a standard computer algebra system, such as {\sl +Mathematica} or {\sl Maple}: the user enters +mathematical expressions at the keyboard, and the program computes the value +of the expression and displays the answer. + +Here is the first input prompt offered to the user. +\[\text{\tt i1\ :\ }\] +In response to the prompt, the user may enter, for example, a simple arithmetic expression. +\beginOutput +i1 : 3/5 + 7/11\\ +\emptyLine +\ 68\\ +o1 = --\\ +\ 55\\ +\emptyLine +o1 : QQ\\ +\endOutput +The answer itself is displayed to the right of the output +label \[\text{\tt o1\ = \ }\] and its type (or class) is displayed to the +right of the following label. +\[\text{\tt o1\ :\ }\] +The symbol {\tt QQ} appearing in this example +denotes the class of all rational numbers, and is meant to be reminiscent of +the notation $\mathbb Q$. + +\Mtwo often finds itself being run in a window with horizontal scroll bars, +so by default it does not wrap output lines, but instead lets them grow +without bound. This book was produced by an automated mechanism that submits +code provided by the authors to \Mtwo and incorporates the result into the +text. Output lines that exceed the width of the pages of this book are +indicated with ellipses, as in the following example. +\beginOutput +i2 : 100!\\ +\emptyLine +o2 = 93326215443944152681699238856266700490715968264381621468592963895 $\cdot\cdot\cdot$\\ +\endOutput + +Next we describe an important difference between +general computer algebra systems (such as {\sl Maple} and {\sl Mathematica}) +and \Mtwo. Before entering an expression involving variables (such as {\tt x+y}) +into \Mtwo the user must first create a ring containing those variables. +Rings are important +objects of study in algebraic geometry; quotient rings of polynomial rings, +for example, encapsulate the essential information about a system of +polynomial equations, including, for example, the field from which the +coefficients are drawn. Often one has several rings under consideration at +once, along with ring homomorphisms between them, so it is important to treat +them as first-class objects in the computer, capable of being named and +manipulated the same way numbers and characters can be manipulated in simpler +programming languages. + +Let's give a hint of the breadth of types of mathematical objects available +in \Mtwo with some examples. +In \Mtwo one defines a quotient ring of a polynomial ring $R$ over the +rational numbers by entering a command such as the one below. +\beginOutput +i3 : R = QQ[x,y,z]/(x^3-y^3-z^3)\\ +\emptyLine +o3 = R\\ +\emptyLine +o3 : QuotientRing\\ +\endOutput +Having done that, we can compute in the ring. +\beginOutput +i4 : (x+y+z)^3\\ +\emptyLine +\ 2 2 3 2 2 2 2 3\\ +o4 = 3x y + 3x*y + 2y + 3x z + 6x*y*z + 3y z + 3x*z + 3y*z + 2z\\ +\emptyLine +o4 : R\\ +\endOutput +We can make matrices over the ring. +\beginOutput +i5 : b = vars R\\ +\emptyLine +o5 = | x y z |\\ +\emptyLine +\ 1 3\\ +o5 : Matrix R <--- R\\ +\endOutput +\beginOutput +i6 : c = matrix \{\{x^2,y^2,z^2\}\}\\ +\emptyLine +o6 = | x2 y2 z2 |\\ +\emptyLine +\ 1 3\\ +o6 : Matrix R <--- R\\ +\endOutput +We can make modules over the ring. +\beginOutput +i7 : M = coker b\\ +\emptyLine +o7 = cokernel | x y z |\\ +\emptyLine +\ 1\\ +o7 : R-module, quotient of R\\ +\endOutput +\beginOutput +i8 : N = ker c\\ +\emptyLine +o8 = image \{2\} | x 0 -y2 -z2 |\\ +\ \{2\} | -y -z2 x2 0 |\\ +\ \{2\} | -z y2 0 x2 |\\ +\emptyLine +\ 3\\ +o8 : R-module, submodule of R\\ +\endOutput +We can make projective resolutions of modules. +\beginOutput +i9 : res M\\ +\emptyLine +\ 1 3 4 4 4\\ +o9 = R <-- R <-- R <-- R <-- R\\ +\ \\ +\ 0 1 2 3 4\\ +\emptyLine +o9 : ChainComplex\\ +\endOutput +We can make projective varieties. +\beginOutput +i10 : X = Proj R\\ +\emptyLine +o10 = X\\ +\emptyLine +o10 : ProjectiveVariety\\ +\endOutput +We can make coherent sheaves and compute their cohomology. +\beginOutput +i11 : HH^1 cotangentSheaf X \\ +\emptyLine +\ 1\\ +o11 = QQ\\ +\emptyLine +o11 : QQ-module, free\\ +\endOutput + +At this writing, \Mtwo is available for GNU/Linux and other flavors of Unix, +and also for Microsoft Windows and the Macintosh operating system. Although it can be used +as a free-standing program, it is most convenient to use it in an +editor's buffer; +Emacs (on Unix or Windows systems) or MPW on Macintosh systems are +currently the editors of choice. +To obtain \Mtwo, download it from the +website\footnote{{\Mtwo}, a software system for research in algebraic geometry, + by Daniel R. Grayson and Michael E. Stillman; + available online in source code form and compiled for various architectures + at \texttt{http://www.math.uiuc.edu/Macaulay2/}.} +and unpack the file. +Among the resulting files will be a file called {\tt Macaulay2/README.txt}, +which you should read. It will tell you how to run the {\tt setup} script, +and how to install a few lines of code in your {\tt emacs} init file to +enable you to run {\tt M2} in an emacs buffer and to edit \Mtwo code. A +system administrator of a Unix system may optionally arrange for those lines +of code to be available to every emacs user. + +The editors thank the authors of the chapters for their valuable +contributions and hard work, and the National Science Foundation for funding +the development of \Mtwo and for partial funding of the authors who have +contributed to this volume. + +\nobreak +\bigskip +\nobreak +\vbox{ + \noindent + May, 2001 \hfill\itshape David Eisenbud\break + \raggedleft Daniel R. Grayson\break + Michael E. Stillman\break + Bernd Sturmfels\par +} + +\egroup +\egroup + + \vfill\eject + \rhpage + \tableofcontents + \vfill\eject + \rhpage + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% +%%%%% addresses.tex +%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\twocolumn +\bgroup + + \tracingpages=1 + + \chapter*{List of Contributors} + \addcontentsline{toc}{section}{List of Contributors} + \parindent=0pt + \font\afont = cmr8 \afont \baselineskip=9pt + \font\bfont = cmbx8 + \def\addr#1{% + \vskip 12pt + \bgroup + \catcode`\~=\the\catcode`a + \catcode`\@=\the\catcode`a + \obeylines + {\bfont #1}% + \vskip 2pt + } + \def\endaddr{\egroup} + + \def\aspace{\vskip 0 pt plus 5 pt minus 3 pt} + + \vbox to 432 pt { + + \addr{Luchezar L. Avramov} + Department of Mathematics + Purdue University + West Lafayette, IN 47907, USA + avramov@math.purdue.edu + www.math.purdue.edu/~avramov/ + \endaddr + + \aspace + + \addr{Wolfram Decker} + FB Mathematik + Universit\"at des Saarlandes + 66041 Saarbr\"ucken, Germany + decker@math.uni-sb.de + loge.math.uni-sb.de/~agdecker/ + \endaddr + + \aspace + + \addr{David Eisenbud} + Mathematical Sciences Research Institute + 1000 Centennial Drive + Berkeley, CA 94720, USA, + and + Department of Mathematics + University of California at Berkeley + Berkeley, CA 94720, USA + de@msri.org + www.msri.org/people/staff/de/ + \endaddr + + \aspace + + \addr{Daniel R. Grayson} + Department of Mathematics + University of Illinois at Urbana-Champaign + Urbana, IL 61801, USA + dan@math.uiuc.edu + www.math.uiuc.edu/~dan/ + \endaddr + + \aspace + + \addr{Serkan Ho\c{s}ten} + Department of Mathematics + San Francisco State University + San Francisco, CA 94132, USA + serkan@math.sfsu.edu + \endaddr + + \aspace + + \addr{Frank-Olaf Schreyer} + Fakult\"at f\"ur Mathematik und Physik + Universit\"at Bayreuth + 95440 Bayreuth, Germany + frank.schreyer@uni-bayreuth.de + \endaddr + + } + + \vfill\eject + + \vbox to 432 pt { + + \addr{Gregory G. Smith} + Department of Mathematics + Barnard College, Columbia University + New York, NY 10027, USA + ggsmith@math.berkeley.edu + \endaddr + + \aspace + + \addr{Frank Sottile} + Department of Mathematics and Statistics + University of Massachusetts, Amherst + Amherst, MA 01003, USA + sottile@math.umass.edu + www.math.umass.edu/~sottile/ + \endaddr + + \aspace + + \addr{Michael Stillman} + Department of Mathematics + Cornell University + Ithaca, NY 14853, USA + mike@math.cornell.edu + \endaddr + + \aspace + + \addr{Bernd Sturmfels} + Department of Mathematics + University of California + Berkeley, California 94720, USA + bernd@math.berkeley.edu + www.math.berkeley.edu/~bernd/ + \endaddr + + \aspace + + \addr{Rekha Thomas} + Department of Mathematics + University of Washington + Seattle, WA 98195, USA + thomas@math.washington.edu + www.math.washington.edu/~thomas/ + \endaddr + + \aspace + + \addr{Fabio Tonoli} + Mathematisches Institut + Georg--August Universit\"at + 37073 G\"ottingen, Germany + tonoli@uni-math.gwdg.de + \endaddr + + \aspace + + \addr{Uli Walther} + Department of Mathematics + Purdue University + West Lafayette, IN 47907, USA + walther@math.purdue.edu + www.math.purdue.edu/~walther/ + \endaddr + + } + +\egroup +\vfill\eject +\onecolumn + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% +%%%%% end of addresses.tex +%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + \rhpage + \pagenumbering{arabic} + \mainmatter + \part{Introducing \Mtwo} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% +%%%%% ../chapters/varieties/chapter-m2.tex and ../chapters/varieties/chapter-wrapper.bbl +%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + \bgroup +\title{Ideals, Varieties and \Mtwo} +\titlerunning{Ideals, Varieties and \Mtwo} +\toctitle{Ideals, Varieties and \Mtwo} +\author{Bernd Sturmfels\thanks{Partially supported by +the National Science Foundation (DMS-9970254).}} +\authorrunning{B. Sturmfels} +% \institute{University of California at Berkeley, Department of Mathematics, +% Berkeley, CA 94720, USA} +\maketitle + +\begin{abstract} +This chapter introduces \Mtwo commands for +some elementary computations in algebraic geometry. +Familiarity with Gr\"obner bases is assumed. +\end{abstract} + +Many students and researchers alike have their first encounter with +Gr\"ob\-ner bases through the delightful text books \cite{CLO1} and \cite{CLO2} +by David Cox, John Little and Donal O'Shea. This chapter illustrates +the use of \Mtwo for some computations discussed in these books. +It can be used as a supplement for an advanced undergraduate course or +first-year graduate course in computational algebraic geometry. The +mathematically advanced reader will find this chapter a useful summary +of some basic \Mtwo commands. + +\section{A Curve in Affine Three-Space} + +Our first example concerns geometric objects in +(complex) affine 3-space. We start by +setting up the ring of polynomial functions with rational coefficients. +\beginOutput +i1 : R = QQ[x,y,z]\\ +\emptyLine +o1 = R\\ +\emptyLine +o1 : PolynomialRing\\ +\endOutput +Various monomial orderings are available in \Mtwo; since we did not specify +one explicitly, the monomials in the ring ${\tt R}$ will be sorted in +graded reverse lexicographic order \cite[\S I.2, Definition 6]{CLO1}. +We define an ideal generated by two polynomials +in this ring and assign it to the variable named +{\tt curve}. + +\beginOutput +i2 : curve = ideal( x^4-y^5, x^3-y^7 )\\ +\emptyLine +\ 5 4 7 3\\ +o2 = ideal (- y + x , - y + x )\\ +\emptyLine +o2 : Ideal of R\\ +\endOutput +We compute the reduced Gr\"obner basis of our ideal: +\beginOutput +i3 : gb curve\\ +\emptyLine +o3 = | y5-x4 x4y2-x3 x8-x3y3 |\\ +\emptyLine +o3 : GroebnerBasis\\ +\endOutput +By inspecting leading terms (and using \cite[\S 9.3, Theorem 8]{CLO1}), +we see that our ideal {\tt curve} does indeed +define a one-dimensional affine variety. This can be tested directly +with the following commands in \Mtwo: +\beginOutput +i4 : dim curve\\ +\emptyLine +o4 = 1\\ +\endOutput +\beginOutput +i5 : codim curve\\ +\emptyLine +o5 = 2\\ +\endOutput +The {\it degree} of a curve in complex affine $3$-space is the +number of intersection points with a general plane. It coincides +with the degree \cite[\S 6.4]{CLO2} of the projective closure +\cite[\S 8.4]{CLO1} of our curve, which we compute as follows: +\beginOutput +i6 : degree curve\\ +\emptyLine +o6 = 28\\ +\endOutput +The Gr\"obner basis in {\tt o3} contains two polynomials which are not +irreducible: they contain a factor of $x^3$. This shows that our curve +is not irreducible over ${\bf Q}$. We first extract the components +which are transverse to the plane $x=0$: +\beginOutput +i7 : curve1 = saturate(curve,ideal(x))\\ +\emptyLine +\ 2 5 4 5 3\\ +o7 = ideal (x*y - 1, y - x , x - y )\\ +\emptyLine +o7 : Ideal of R\\ +\endOutput +And next we extract the component which lies in the plane $x=0$: +\beginOutput +i8 : curve2 = saturate(curve,curve1)\\ +\emptyLine +\ 3 5\\ +o8 = ideal (x , y )\\ +\emptyLine +o8 : Ideal of R\\ +\endOutput +The second component is a multiple line. Hence our input ideal was not radical. +To test equality of ideals we use the command {\tt ==}\indexcmd{==} . +\beginOutput +i9 : curve == radical curve\\ +\emptyLine +o9 = false\\ +\endOutput +We now replace our curve by its first component: +\beginOutput +i10 : curve = curve1\\ +\emptyLine +\ 2 5 4 5 3\\ +o10 = ideal (x*y - 1, y - x , x - y )\\ +\emptyLine +o10 : Ideal of R\\ +\endOutput +\beginOutput +i11 : degree curve\\ +\emptyLine +o11 = 13\\ +\endOutput +The ideal of this curve is radical: +\beginOutput +i12 : curve == radical curve\\ +\emptyLine +o12 = true\\ +\endOutput +Notice that the variable ${\bf z}$ does not appear +among the generators of the ideal. Our curve consists of +$13$ straight lines (over {\bf C}) parallel to the {\tt z}-axis. + +\section{Intersecting Our Curve With a Surface} + +In this section we explore basic operations on ideals, +starting with those described in \cite[\S 4.3]{CLO1}. +Consider the following surface in affine $3$-space: +\beginOutput +i13 : surface = ideal( x^5 + y^5 + z^5 - 1)\\ +\emptyLine +\ 5 5 5\\ +o13 = ideal(x + y + z - 1)\\ +\emptyLine +o13 : Ideal of R\\ +\endOutput +The union of the curve and the surface is represented by the +intersection of their ideals: +\beginOutput +i14 : theirunion = intersect(curve,surface)\\ +\emptyLine +\ 6 2 7 2 5 5 5 5 2 5 5 1 $\cdot\cdot\cdot$\\ +o14 = ideal (x y + x*y + x*y z - x - y - z - x*y + 1, x y + y $\cdot\cdot\cdot$\\ +\emptyLine +o14 : Ideal of R\\ +\endOutput +In this example this coincides with the product of the two ideals: +\beginOutput +i15 : curve*surface == theirunion\\ +\emptyLine +o15 = true\\ +\endOutput +The intersection of the curve and the surface is represented by the +sum of their ideals. We get a finite set of points: +\beginOutput +i16 : ourpoints = curve + surface\\ +\emptyLine +\ 2 5 4 5 3 5 5 5\\ +o16 = ideal (x*y - 1, y - x , x - y , x + y + z - 1)\\ +\emptyLine +o16 : Ideal of R\\ +\endOutput +\beginOutput +i17 : dim ourpoints\\ +\emptyLine +o17 = 0\\ +\endOutput +The number of points is sixty five: +\beginOutput +i18 : degree ourpoints\\ +\emptyLine +o18 = 65\\ +\endOutput +Each of the points is multiplicity-free: +\beginOutput +i19 : degree radical ourpoints\\ +\emptyLine +o19 = 65\\ +\endOutput +The number of points coincides with the number of +monomials not in the initial ideal \cite[\S 2.2]{CLO2}. +These are called the {\it standard monomials}. +\beginOutput +i20 : staircase = ideal leadTerm ourpoints\\ +\emptyLine +\ 2 5 5 5\\ +o20 = ideal (x*y , z , y , x )\\ +\emptyLine +o20 : Ideal of R\\ +\endOutput +The {\tt basis} command can be used to list all the standard monomials +\beginOutput +i21 : T = R/staircase;\\ +\endOutput +\beginOutput +i22 : basis T\\ +\emptyLine +o22 = | 1 x x2 x3 x4 x4y x4yz x4yz2 x4yz3 x4yz4 x4z x4z2 x4z3 x4z4 x3y $\cdot\cdot\cdot$\\ +\emptyLine +\ 1 65\\ +o22 : Matrix T <--- T\\ +\endOutput + +The assignment of the quotient ring to the global variable {\tt T} had a side +effect: the variables {\tt x}, {\tt y}, and {\tt z} now have values in that +ring. +To bring the variables of {\tt R} to the fore again, we must say: +\beginOutput +i23 : use R;\\ +\endOutput +Every polynomial function on our 65 points can be written uniquely +as a linear combination of these standard monomials. This +representation can be computed using the normal form command {\tt \%}\indexcmd{\%}. + +\beginOutput +i24 : anyOldPolynomial = y^5*x^5-x^9-y^8+y^3*x^5\\ +\emptyLine +\ 5 5 9 5 3 8\\ +o24 = x y - x + x y - y\\ +\emptyLine +o24 : R\\ +\endOutput +\beginOutput +i25 : anyOldPolynomial {\char`\%} ourpoints\\ +\emptyLine +\ 4 3\\ +o25 = x y - x y\\ +\emptyLine +o25 : R\\ +\endOutput +Clearly, the normal form is zero if and only the polynomial is in the ideal. +\beginOutput +i26 : anotherPolynomial = y^5*x^5-x^9-y^8+y^3*x^4\\ +\emptyLine +\ 5 5 9 8 4 3\\ +o26 = x y - x - y + x y\\ +\emptyLine +o26 : R\\ +\endOutput +\beginOutput +i27 : anotherPolynomial {\char`\%} ourpoints\\ +\emptyLine +o27 = 0\\ +\emptyLine +o27 : R\\ +\endOutput + + +\section{Changing the Ambient Polynomial Ring} + +During a \Mtwo session it sometimes becomes necessary to change the +ambient ring in which the computations takes place. Our original +ring, defined in {\tt i1}, is the polynomial ring in three variables +over the field {\bf Q} of rational numbers +with the graded reverse lexicographic order. In this section +two modifications are made: first we replace the field of coefficients +by a finite field, and later we replace the monomial order +by an elimination order. + +An important operation in algebraic geometry is +the decomposition of algebraic varieties +into irreducible components \cite[\S 4.6]{CLO1}. +Algebraic algorithms for this purpose are based on the +{\it primary decomposition} of ideals \cite[\S 4.7]{CLO1}. +A future version of \Mtwo will have an implementation of +primary decomposition over any polynomial ring. +The current version of \Mtwo has a command +{\tt decompose} for finding all the minimal primes of an ideal, +but, as it stands, this works only over a finite field. + +Let us change our coefficient field to the field with $101$ elements: +\beginOutput +i28 : R' = ZZ/101[x,y,z];\\ +\endOutput + +We next move our ideal from the previous section into the new ring +(fortunately, none of the coefficients of its generators have 101 in the +denominator): + +\beginOutput +i29 : ourpoints' = substitute(ourpoints,R')\\ +\emptyLine +\ 2 5 4 5 3 5 5 5\\ +o29 = ideal (x*y - 1, y - x , x - y , x + y + z - 1)\\ +\emptyLine +o29 : Ideal of R'\\ +\endOutput +\beginOutput +i30 : decompose ourpoints'\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o30 = \{ideal (z + 36, y - 1, x - 1), ideal (z + 1, y - 1, x - 1), idea $\cdot\cdot\cdot$\\ +\emptyLine +o30 : List\\ +\endOutput +Oops, that didn't fit on the display, so let's print them out one per line. +\beginOutput +i31 : oo / print @@ print;\\ +ideal (z + 36, y - 1, x - 1)\\ +\emptyLine +ideal (z + 1, y - 1, x - 1)\\ +\emptyLine +ideal (z - 6, y - 1, x - 1)\\ +\emptyLine +ideal (z - 14, y - 1, x - 1)\\ +\emptyLine +ideal (z - 17, y - 1, x - 1)\\ +\emptyLine +\ 3 2 2 3 2 2 $\cdot\cdot\cdot$\\ +ideal (x - 46x + 28x*y - 27y + 46x + y + 27, - 16x + x y + x - 15 $\cdot\cdot\cdot$\\ +\emptyLine +\ 2 2 $\cdot\cdot\cdot$\\ +ideal (- 32x - 16x*y + x*z - 16x - 27y - 30z - 14, - 34x - 14x*y + y $\cdot\cdot\cdot$\\ +\emptyLine +\ 2 2 2 $\cdot\cdot\cdot$\\ +ideal (44x + 22x*y + x*z + 22x - 26y - 30z - 6, 18x + 12x*y + y + 1 $\cdot\cdot\cdot$\\ +\emptyLine +\ 2 2 2 $\cdot\cdot\cdot$\\ +ideal (- 41x + 30x*y + x*z + 30x + 38y - 30z + 1, - 26x - 10x*y + y $\cdot\cdot\cdot$\\ +\emptyLine +\ 2 2 2 $\cdot\cdot\cdot$\\ +ideal (39x - 31x*y + x*z - 31x - 46y - 30z + 36, - 32x - 13x*y + y $\cdot\cdot\cdot$\\ +\emptyLine +\ 2 2 2 $\cdot\cdot\cdot$\\ +ideal (- 10x - 5x*y + x*z - 5x - 40y - 30z - 17, - 37x + 35x*y + y $\cdot\cdot\cdot$\\ +\emptyLine +\endOutput +If we just want to see the degrees of the irreducible components, then +we say: +\beginOutput +i32 : ooo / degree\\ +\emptyLine +o32 = \{1, 1, 1, 1, 1, 30, 6, 6, 6, 6, 6\}\\ +\emptyLine +o32 : List\\ +\endOutput +Note that the expressions ${\tt oo}$ +and ${\tt ooo}$ refer to the previous and +prior-to-previous output lines respectively. + +\medskip + +Suppose we wish to compute the $x$-coordinates of our sixty five points. +Then we must use an elimination order, for instance, the +one described in \cite[\S 3.2, Exercise 6.a]{CLO1}. +We define a new polynomial ring with the elimination order +for $\{y,z\} > \{x\}$ as follows: +\beginOutput +i33 : S = QQ[z,y,x, MonomialOrder => Eliminate 2]\\ +\emptyLine +o33 = S\\ +\emptyLine +o33 : PolynomialRing\\ +\endOutput +We move our ideal into the new ring, +\beginOutput +i34 : ourpoints'' = substitute(ourpoints,S)\\ +\emptyLine +\ 2 5 4 3 5 5 5 5\\ +o34 = ideal (y x - 1, y - x , - y + x , z + y + x - 1)\\ +\emptyLine +o34 : Ideal of S\\ +\endOutput +and we compute the reduced Gr\"obner basis in this new order: +\beginOutput +i35 : G = gens gb ourpoints''\\ +\emptyLine +o35 = | x13-1 y-x6 z5+x5+x4-1 |\\ +\emptyLine +\ 1 3\\ +o35 : Matrix S <--- S\\ +\endOutput +To compute the elimination ideal we use the following command: +\beginOutput +i36 : ideal selectInSubring(1,G)\\ +\emptyLine +\ 13\\ +o36 = ideal(x - 1)\\ +\emptyLine +o36 : Ideal of S\\ +\endOutput + +\section{Monomials Under the Staircase} + +Invariants of an algebraic variety, such as its dimension +and degree, are computed from an initial monomial ideal. +This computation amounts to the combinatorial task +of analyzing the collection of standard monomials, +that is, the monomials under the staircase \cite[Chapter 9]{CLO1}. +In this section we demonstrate some basic operations on +monomial ideals in \Mtwo. + +Let us create a non-trivial staircase in three dimensions +by taking the third power of the initial monomial from line {\tt i20}. +\beginOutput +i37 : M = staircase^3\\ +\emptyLine +\ 3 6 2 4 5 2 9 7 4 2 10 7 5 6 2 5 12 $\cdot\cdot\cdot$\\ +o37 = ideal (x y , x y z , x y , x y , x*y z , x*y z , x y z , x*y , $\cdot\cdot\cdot$\\ +\emptyLine +o37 : Ideal of R\\ +\endOutput +The number of current generators of this ideal equals +\beginOutput +i38 : numgens M\\ +\emptyLine +o38 = 20\\ +\endOutput +To see all generators we can transpose the matrix of minimal generators: +\beginOutput +i39 : transpose gens M\\ +\emptyLine +o39 = \{-9\} | x3y6 |\\ +\ \{-11\} | x2y4z5 |\\ +\ \{-11\} | x2y9 |\\ +\ \{-11\} | x7y4 |\\ +\ \{-13\} | xy2z10 |\\ +\ \{-13\} | xy7z5 |\\ +\ \{-13\} | x6y2z5 |\\ +\ \{-13\} | xy12 |\\ +\ \{-13\} | x6y7 |\\ +\ \{-13\} | x11y2 |\\ +\ \{-15\} | z15 |\\ +\ \{-15\} | y5z10 |\\ +\ \{-15\} | x5z10 |\\ +\ \{-15\} | y10z5 |\\ +\ \{-15\} | x5y5z5 |\\ +\ \{-15\} | x10z5 |\\ +\ \{-15\} | y15 |\\ +\ \{-15\} | x5y10 |\\ +\ \{-15\} | x10y5 |\\ +\ \{-15\} | x15 |\\ +\emptyLine +\ 20 1\\ +o39 : Matrix R <--- R\\ +\endOutput +Note that this generating set is not minimal; see {\tt o48} below. +The number of standard monomials equals +\beginOutput +i40 : degree M\\ +\emptyLine +o40 = 690\\ +\endOutput +To list all the standard monomials we first create the residue ring +\beginOutput +i41 : S = R/M\\ +\emptyLine +o41 = S\\ +\emptyLine +o41 : QuotientRing\\ +\endOutput +and then we ask for a vector space basis of the residue ring: +\beginOutput +i42 : basis S\\ +\emptyLine +o42 = | 1 x x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x14y x14yz x14 $\cdot\cdot\cdot$\\ +\emptyLine +\ 1 690\\ +o42 : Matrix S <--- S\\ +\endOutput +Let us count how many standard monomials there are of a given degree. +The following table represents the Hilbert function +of the residue ring. +\beginOutput +i43 : tally apply(flatten entries basis(S),degree)\\ +\emptyLine +o43 = Tally\{\{0\} => 1 \}\\ +\ \{1\} => 3\\ +\ \{10\} => 63\\ +\ \{11\} => 69\\ +\ \{12\} => 73\\ +\ \{13\} => 71\\ +\ \{14\} => 66\\ +\ \{15\} => 53\\ +\ \{16\} => 38\\ +\ \{17\} => 23\\ +\ \{18\} => 12\\ +\ \{19\} => 3\\ +\ \{2\} => 6\\ +\ \{3\} => 10\\ +\ \{4\} => 15\\ +\ \{5\} => 21\\ +\ \{6\} => 28\\ +\ \{7\} => 36\\ +\ \{8\} => 45\\ +\ \{9\} => 54\\ +\emptyLine +o43 : Tally\\ +\endOutput +Thus the largest degree of a standard monomial is nineteen, +and there are three standard monomials of that degree: +\beginOutput +i44 : basis(19,S)\\ +\emptyLine +o44 = | x14yz4 x9yz9 x4yz14 |\\ +\emptyLine +\ 1 3\\ +o44 : Matrix S <--- S\\ +\endOutput +The most recently defined ring involving {\tt x}, {\tt y}, and {\tt z} was +{\tt S}, so all computations involving those variables are done in the +residue ring {\tt S}. +%% The current ring {\tt S} is the residue ring. All calculations +%% are done in {\tt S}. +For instance, we can also obtain the +standard monomials of degree nineteen as follows: +\beginOutput +i45 : (x+y+z)^19\\ +\emptyLine +\ 14 4 9 9 4 14\\ +o45 = 58140x y*z + 923780x y*z + 58140x y*z\\ +\emptyLine +o45 : S\\ +\endOutput +An operation on ideals which will occur frequently throughout this +book is the computation of minimal free resolutions. This is done as follows: +\beginOutput +i46 : C = res M\\ +\emptyLine +\ 1 16 27 12\\ +o46 = R <-- R <-- R <-- R <-- 0\\ +\ \\ +\ 0 1 2 3 4\\ +\emptyLine +o46 : ChainComplex\\ +\endOutput +This shows that our ideal {\tt M} has sixteen minimal generators. +They are the entries in the leftmost matrix of the chain complex {\tt C}: +\beginOutput +i47 : C.dd_1\\ +\emptyLine +o47 = | x3y6 x7y4 x2y9 x2y4z5 x11y2 xy12 x6y2z5 xy7z5 xy2z10 x15 y15 x $\cdot\cdot\cdot$\\ +\emptyLine +\ 1 16\\ +o47 : Matrix R <--- R\\ +\endOutput +This means that four of the twenty generators in {\tt o39} were redundant. +We construct the set consisting of the four redundant generators +as follows: +\beginOutput +i48 : set flatten entries gens M - set flatten entries C.dd_1\\ +\emptyLine +\ 6 7 10 5 5 10 5 5 5\\ +o48 = Set \{x y , x y , x y , x y z \}\\ +\emptyLine +o48 : Set\\ +\endOutput +Here {\tt flatten entries} turns the matrix ${\tt M}$ into a single list. +The command {\tt set} turns that list into a set, to which we +can apply the difference operation for sets. + +Let us now take a look at the first syzygies +(or {\it minimal S-pairs} \cite[\S 2.9]{CLO1}) +among the sixteen minimal generators. +They correspond to the columns of the second matrix in our resolution {\tt C}: +\beginOutput +i49 : C.dd_2\\ +\emptyLine +o49 = \{9\} | -y3 -x4 0 -z5 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{11\} | 0 y2 0 0 0 -x4 0 0 -z5 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{11\} | x 0 -y3 0 0 0 0 0 0 -z5 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{11\} | 0 0 0 xy2 -y3 0 -x4 0 x5 y5 0 -z5 0 0 0 $\cdot\cdot\cdot$\\ +\ \{13\} | 0 0 0 0 0 y2 0 0 0 0 0 0 0 -x4 0 $\cdot\cdot\cdot$\\ +\ \{13\} | 0 0 x 0 0 0 0 -y3 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{13\} | 0 0 0 0 0 0 y2 0 0 0 0 0 0 0 - $\cdot\cdot\cdot$\\ +\ \{13\} | 0 0 0 0 x 0 0 0 0 0 -y3 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{13\} | 0 0 0 0 0 0 0 0 0 0 0 xy2 -y3 0 0 $\cdot\cdot\cdot$\\ +\ \{15\} | 0 0 0 0 0 0 0 0 0 0 0 0 0 y2 0 $\cdot\cdot\cdot$\\ +\ \{15\} | 0 0 0 0 0 0 0 x 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{15\} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y $\cdot\cdot\cdot$\\ +\ \{15\} | 0 0 0 0 0 0 0 0 0 0 x 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{15\} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{15\} | 0 0 0 0 0 0 0 0 0 0 0 0 x 0 0 $\cdot\cdot\cdot$\\ +\ \{15\} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\emptyLine +\ 16 27\\ +o49 : Matrix R <--- R\\ +\endOutput +The first column represents the S-pair between the +first generator $x^3 y^6 $ and the third generator $x^2 y^9$. +It is natural to form the {\it S-pair graph} with $16$ vertices and +$27$ edges represented by this matrix. According to the +general theory described in \cite{MS}, this is a planar graph +with $12$ regions. The regions correspond to the $12$ second syzygies, +that is, to the columns of the matrix +\beginOutput +i50 : C.dd_3\\ +\emptyLine +o50 = \{12\} | z5 0 0 0 0 0 0 0 0 0 0 0 |\\ +\ \{13\} | 0 z5 0 0 0 0 0 0 0 0 0 0 |\\ +\ \{14\} | 0 0 z5 0 0 0 0 0 0 0 0 0 |\\ +\ \{14\} | -y3 -x4 0 0 0 0 0 0 0 0 0 0 |\\ +\ \{14\} | 0 0 -y5 z5 0 0 0 0 0 0 0 0 |\\ +\ \{15\} | 0 0 0 0 z5 0 0 0 0 0 0 0 |\\ +\ \{15\} | 0 0 0 0 -x5 z5 0 0 0 0 0 0 |\\ +\ \{16\} | 0 0 0 0 0 0 z5 0 0 0 0 0 |\\ +\ \{16\} | 0 y2 0 0 -x4 0 0 0 0 0 0 0 |\\ +\ \{16\} | x 0 -y3 0 0 0 0 0 0 0 0 0 |\\ +\ \{16\} | 0 0 0 0 0 0 -y5 z5 0 0 0 0 |\\ +\ \{16\} | 0 0 0 -y3 0 -x4 0 0 0 0 0 0 |\\ +\ \{16\} | 0 0 0 0 0 0 0 -y5 z5 0 0 0 |\\ +\ \{17\} | 0 0 0 0 0 0 0 0 0 z5 0 0 |\\ +\ \{17\} | 0 0 0 0 0 0 0 0 0 -x5 z5 0 |\\ +\ \{17\} | 0 0 0 0 0 0 0 0 0 0 -x5 z5 |\\ +\ \{18\} | 0 0 0 0 y2 0 0 0 0 -x4 0 0 |\\ +\ \{18\} | 0 0 x 0 0 0 -y3 0 0 0 0 0 |\\ +\ \{18\} | 0 0 0 0 0 y2 0 0 0 0 -x4 0 |\\ +\ \{18\} | 0 0 0 x 0 0 0 -y3 0 0 0 0 |\\ +\ \{18\} | 0 0 0 0 0 0 0 0 -y3 0 0 -x4 |\\ +\ \{20\} | 0 0 0 0 0 0 0 0 0 y2 0 0 |\\ +\ \{20\} | 0 0 0 0 0 0 x 0 0 0 0 0 |\\ +\ \{20\} | 0 0 0 0 0 0 0 0 0 0 y2 0 |\\ +\ \{20\} | 0 0 0 0 0 0 0 x 0 0 0 0 |\\ +\ \{20\} | 0 0 0 0 0 0 0 0 0 0 0 y2 |\\ +\ \{20\} | 0 0 0 0 0 0 0 0 x 0 0 0 |\\ +\emptyLine +\ 27 12\\ +o50 : Matrix R <--- R\\ +\endOutput +But we are getting ahead of ourselves. Homological algebra and resolutions +will be covered in the next chapter, and monomial ideals +will appear in the chapter of Ho\c{s}ten and Smith. +Let us return to Cox, Little and O'Shea \cite{CLO2}. + +\section{Pennies, Nickels, Dimes and Quarters} + +We now come to an application of Gr\"obner bases which appears in +\cite[Section 8.1]{CLO2}: {\sl Integer Programming}. This is the problem of + minimizing a linear objective function over the set of non-negative +integer solutions of a system of linear equations. We demonstrate +some techniques for doing this in \Mtwo. Along the way, we learn about +multigraded polynomial rings and how to compute +Gr\"obner bases with respect to monomial orders defined by weights. +Our running example is the linear system defined by the matrix: +\beginOutput +i51 : A = \{\{1, 1, 1, 1\},\\ +\ \{1, 5,10,25\}\}\\ +\emptyLine +o51 = \{\{1, 1, 1, 1\}, \{1, 5, 10, 25\}\}\\ +\emptyLine +o51 : List\\ +\endOutput +For the algebraic study of integer programming problems, a good starting +point is to work in a multigraded polynomial ring, here in four variables: +\beginOutput +i52 : R = QQ[p,n,d,q, Degrees => transpose A]\\ +\emptyLine +o52 = R\\ +\emptyLine +o52 : PolynomialRing\\ +\endOutput +The degree of each variable is the corresponding column vector of the matrix +Each variable represents one of the four coins in the U.S. currency system: +\beginOutput +i53 : degree d\\ +\emptyLine +o53 = \{1, 10\}\\ +\emptyLine +o53 : List\\ +\endOutput +\beginOutput +i54 : degree q\\ +\emptyLine +o54 = \{1, 25\}\\ +\emptyLine +o54 : List\\ +\endOutput +Each monomial represents a collection of coins. For instance, suppose +you own four pennies, eight nickels, ten dimes, and three quarters: +\beginOutput +i55 : degree(p^4*n^8*d^10*q^3)\\ +\emptyLine +o55 = \{25, 219\}\\ +\emptyLine +o55 : List\\ +\endOutput +Then you have a total of 25 coins worth two dollars and nineteen cents. +There are nine other possible ways of having 25 coins of the same value: +\beginOutput +i56 : h = basis(\{25,219\}, R)\\ +\emptyLine +o56 = | p14n2d2q7 p9n8d2q6 p9n5d6q5 p9n2d10q4 p4n14d2q5 p4n11d6q4 p4n8 $\cdot\cdot\cdot$\\ +\emptyLine +\ 1 9\\ +o56 : Matrix R <--- R\\ +\endOutput +For just counting the number of columns of this matrix +we can use the command +\beginOutput +i57 : rank source h\\ +\emptyLine +o57 = 9\\ +\endOutput +How many ways can you make change for ten dollars using $100$ coins? +\beginOutput +i58 : rank source basis(\{100,1000\}, R)\\ +\emptyLine +o58 = 182\\ +\endOutput +A typical integer programming problem is this: among all 182 ways of +expressing ten dollars using 100 coins, which one uses the fewest dimes? +We set up the Conti-Traverso algorithm \cite[\S 8.1]{CLO2} for +answering this question. We use the following ring with the lexicographic +order and with the variable order: +dimes (d) before pennies (p) before nickels (n) before quarters (q). +\beginOutput +i59 : S = QQ[x, y, d, p, n, q, \\ +\ MonomialOrder => Lex, MonomialSize => 16]\\ +\emptyLine +o59 = S\\ +\emptyLine +o59 : PolynomialRing\\ +\endOutput +The option {\tt MonomialSize} advises \Mtwo to use more space to store the +exponents of monomials, thereby avoiding a potential overflow. + +We define an ideal with one generator for each column of the matrix A. +\beginOutput +i60 : I = ideal( p - x*y, n - x*y^5, d - x*y^10, q - x*y^25)\\ +\emptyLine +\ 5 10 25\\ +o60 = ideal (- x*y + p, - x*y + n, - x*y + d, - x*y + q)\\ +\emptyLine +o60 : Ideal of S\\ +\endOutput +The integer program is solved by normal form reduction with respect +to the following Gr\"obner basis consisting of binomials. +\beginOutput +i61 : transpose gens gb I\\ +\emptyLine +o61 = \{-6\} | p5q-n6 |\\ +\ \{-4\} | d4-n3q |\\ +\ \{-3\} | yn2-dp |\\ +\ \{-6\} | yp4q-dn4 |\\ +\ \{-4\} | yd3-pnq |\\ +\ \{-6\} | y2p3q-d2n2 |\\ +\ \{-5\} | y2d2n-p2q |\\ +\ \{-7\} | y2d2p3-n5 |\\ +\ \{-6\} | y3p2q-d3 |\\ +\ \{-6\} | y3dp2-n3 |\\ +\ \{-5\} | y4p-n |\\ +\ \{-6\} | y5n-d |\\ +\ \{-8\} | y6d2-pq |\\ +\ \{-16\} | y15d-q |\\ +\ \{-7\} | xq-y5d2 |\\ +\ \{-5\} | xn-y3p2 |\\ +\ \{-2\} | xd-n2 |\\ +\ \{-2\} | xy-p |\\ +\emptyLine +\ 18 1\\ +o61 : Matrix S <--- S\\ +\endOutput +We fix the quotient ring, so the reduction to normal form +will happen automatically. +\beginOutput +i62 : S' = S/I\\ +\emptyLine +o62 = S'\\ +\emptyLine +o62 : QuotientRing\\ +\endOutput +You need at least two dimes to express one dollar with ten coins. +\beginOutput +i63 : x^10 * y^100\\ +\emptyLine +\ 2 6 2\\ +o63 = d n q\\ +\emptyLine +o63 : S'\\ +\endOutput +But you can express ten dollars with a hundred coins none of which is a dime. +\beginOutput +i64 : x^100 * y^1000\\ +\emptyLine +\ 75 25\\ +o64 = n q\\ +\emptyLine +o64 : S'\\ +\endOutput +The integer program is infeasible if and only if the normal form still +contains the variable $x$ or the variable $y$. For instance, you cannot +express ten dollars with less than forty coins: +\beginOutput +i65 : x^39 * y^1000\\ +\emptyLine +\ 25 39\\ +o65 = y q\\ +\emptyLine +o65 : S'\\ +\endOutput +We now introduce a new term order on the polynomial ring, defined +by assigning a weight to each variable. Specifically, we assign +weights for each of the coins. For instance, +let pennies have weight 5, nickels weight 7, +dimes weight 13 and quarters weight 17. +\beginOutput +i66 : weight = (5,7,13,17)\\ +\emptyLine +o66 = (5, 7, 13, 17)\\ +\emptyLine +o66 : Sequence\\ +\endOutput +We set up a new ring with the resulting weight term order, and work modulo +the same ideal as before in this new ring. +\beginOutput +i67 : T = QQ[x, y, p, n, d, q, \\ +\ Weights => \{\{1,1,0,0,0,0\},\{0,0,weight\}\},\\ +\ MonomialSize => 16]/\\ +\ (p - x*y, n - x*y^5, d - x*y^10, q - x*y^25);\\ +\endOutput +One dollar with ten coins: +\beginOutput +i68 : x^10 * y^100\\ +\emptyLine +\ 5 2 3\\ +o68 = p d q\\ +\emptyLine +o68 : T\\ +\endOutput +Ten dollars with one hundred coins: +\beginOutput +i69 : x^100 * y^1000\\ +\emptyLine +\ 60 3 37\\ +o69 = p n q\\ +\emptyLine +o69 : T\\ +\endOutput +Here is an optimal solution which involves all four types of coins: +\beginOutput +i70 : x^234 * y^5677\\ +\emptyLine +\ 2 4 3 225\\ +o70 = p n d q\\ +\emptyLine +o70 : T\\ +\endOutput +\begin{thebibliography}{1} + +\bibitem{CLO1} +David Cox, John Little, and Donal O'Shea: +\newblock {\em Ideals, varieties, and algorithms}. +\newblock Springer-Verlag, New York, second edition, 1997. +\newblock An introduction to computational algebraic geometry and commutative + algebra. + +\bibitem{CLO2} +David Cox, John Little, and Donal O'Shea: +\newblock {\em Using algebraic geometry}. +\newblock Springer-Verlag, New York, 1998. + +\bibitem{MS} +Ezra Miller and Bernd Sturmfels: +\newblock Monomial ideals and planar graphs. +\newblock In S.~Lin M.~Fossorier, H.~Imai and A.~Poli, editors, {\em Applied + Algebra, Algebraic Algorithms and Error-Correcting Codes}, volume 1719 of + {\em Springer Lecture Notes in Computer Science}, pages 19--28, 1999. + +\end{thebibliography} + \egroup + \makeatletter + \renewcommand\thesection{\@arabic\c@section} + \makeatother + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% +%%%%% ../chapters/geometry/chapter-m2.tex and ../chapters/geometry/chapter-wrapper.bbl +%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + \bgroup +%%%% Commands to cover (and index): +%% Matrix stuff: matrix, map, source, target, jacobian, minors, det, resolution, +%% Ext, Tor, what a module is, presentation, coker, image, kernel, annihilator, +%% sheaf cohomology, transpose, prune, trim, random, chain complexes, dd, C.dd_i, +%% ring maps. saturate +%%% Didn't put in ``annihilator'', random, chain complexes + + +\title{Projective Geometry and Homological Algebra} +\titlerunning{Projective Geometry and Homological Algebra} +\toctitle{Projective Geometry and Homological Algebra} +\author{David Eisenbud\thanks{Supported by the NSF.}} +\authorrunning{D. Eisenbud} +% \institute{1000 Centennial Drive, Mathematical Sciences Research Institute, Berkeley, CA +% 94720, USA, and +% University of California at Berkeley, Department of Mathematics, Berkeley, CA +% 94720, USA} + +\maketitle + +\begin{abstract} +We provide an introduction to many of the homological +commands in \Mtwo (modules, free resolutions, Ext and Tor\dots) +by means of examples showing how to use homological tools to +study projective varieties. +\end{abstract} + +%%% TeX requirements +% \input diagrams.tex +\def\P{{\mathbb P}} %% Projective space. Change to \Bbb if available -- done +\def\Z{{\mathbb Z}} %% The integers. Change to \Bbb if available -- done +\def\H{{\rm H}} +\def\cO{{\cal O}} +\def\O{{\cal O}} +\def\iso{{\cong}} + +In this chapter we will illustrate how one can +manipulate +projective varieties and sheaves, +using the rich collection of tools +\Mtwo provides. +One of our goals is to show how homological +methods can be effective in solving concrete geometric problems. +\index{homological methods!introduction to} + +The first four sections can be read by anyone who knows about +projective varieties at the level of a first graduate course +and knows the definitions of Ext and Tor. The last section assumes +that the reader is familiar with the theory of curves and surfaces +roughly at the level of the books of Hartshorne \cite{Hartshorne} and +Harris \cite{Harris}. + +We will work with projective schemes over a field {\tt +kk}. \Mtwo can work over any finite field of characteristic at most +\index{32749} +32749, and also a variety of fields in characteristic 0 (except for +the primary decomposition commands, which at this writing are still +restricted to positive characteristics). Our main interest is in +geometry over an algebraically closed field of characteristic +0. Nevertheless, it is most convenient to work over a large prime +{}field. +\index{finite fields!use of} +It is known that the intermediate results in Gr\"obner basis +computations (as in the Euclidean Algorithm computations they +generalize) often involve coefficients far larger than those in the +input data, so that work in characteristic zero essentially requires +infinite precision arithmetic, a significant additional overhead. If +we work over a finite field where the scalars can be represented in +one machine word, we avoid this coefficient explosion. Experience with +the sort of computations we will be doing shows that working over +$\Z/p$, where $p$ is a moderately large prime, gives results +identical to the results we would get in characteristic 0. +%% This isn't strictly true -- look at all the coefficients in your output +%% that have more than 3 digits: their digits will probably change in as p +%% varies. +Of course one still +has to be careful about the fact that our fields are not +algebraically closed, especially when using primary +decomposition. The largest prime $p$ we can work with being 32749, we +choose the field ${\bf Z}/32749$. +The name of the \Mtwo constant representing the +integers is {\tt ZZ}, and by analogy we will call our field {\tt kk}: +\beginOutput +i1 : kk = ZZ/32749\\ +\emptyLine +o1 = kk\\ +\emptyLine +o1 : QuotientRing\\ +\endOutput +%% I had to leave the characteristic at 32003, because your code breaks when +%% I put in 32749, which is actually the largest characteristic available. +%% The reason it breaks is probably that the coefficients in the polynomials +%% defining idealX are no longer correct, since they were precomputed in +%% characteristic 32003. Should we compute idealX automatically? One way +%% would be to define a function in a file called "mystery.m2" that computes +%% it for you. You could reveal the code of the function later. + +In \Mtwo we will represent \ie{projective space} $\P^n$ by its +homogeneous coordinate ring ${\tt ringPn} = {\tt kk}[x_0,\dots,x_n]$. A +projective scheme $X$ in $\P^n$ may be most conveniently +represented, depending on the situation, by its \ie{homogeneous ideal} {\tt +idealX} or its \ie{homogeneous coordinate ring}, represented either as a +ring {\tt ringPn/idealX} or as a module {\tt OX} over {\tt ringPn}. +\index{coherent sheaf!representation of} +\index{sheaf!representation of} +Coherent sheaves on the projective space, or on its subvarieties, will +be represented by finitely generated +graded +modules over {\tt ringPn}, using the +\ie{Serre correspondence}. +%%% Dan, the previous line didn't print in the version you sent! +%%% -- It's printing for me. +For example, the structure sheaf $\cO_X$ +of the subvariety $X$ would be represented by the module +{\tt ringPn\char`\^1/idealX}; here {\tt ringPn\char`\^1} +denotes the free module of rank one over the ring +{\tt ringPn}. + +\section{The Twisted Cubic} + +\index{twisted cubic}\index{cubic space curve} +As a first illustration, we give three constructions +of the twisted cubic +curve in $\P^3$. We represent $\P^3$ by +\beginOutput +i2 : ringP3 = kk[x_0..x_3]\\ +\emptyLine +o2 = ringP3\\ +\emptyLine +o2 : PolynomialRing\\ +\endOutput + +The twisted cubic is the image of the map $\P^1\to\P^3$ sending +a point with homogeneous coordinates $(s,t)$ to the point with +homogeneous coordinates $(s^3, s^2t, st^2, t^3)$. We can compute +its relations directly with +\index{matrix}\index{map of rings} +\beginOutput +i3 : ringP1 = kk[s,t]\\ +\emptyLine +o3 = ringP1\\ +\emptyLine +o3 : PolynomialRing\\ +\endOutput +\beginOutput +i4 : cubicMap = map(ringP1,ringP3,\{s^3, s^2*t, s*t^2, t^3\})\\ +\emptyLine +\ 3 2 2 3\\ +o4 = map(ringP1,ringP3,\{s , s t, s*t , t \})\\ +\emptyLine +o4 : RingMap ringP1 <--- ringP3\\ +\endOutput +\index{kernel of a ring map}% +\beginOutput +i5 : idealCubic = kernel cubicMap\\ +\emptyLine +\ 2 2\\ +o5 = ideal (x - x x , x x - x x , x - x x )\\ +\ 2 1 3 1 2 0 3 1 0 2\\ +\emptyLine +o5 : Ideal of ringP3\\ +\endOutput +We could also use \Mtwo's built-in facility, and say +\indexcmd{monomialCurveIdeal} +\beginOutput +i6 : idealCubic2 = monomialCurveIdeal(ringP3,\{1,2,3\})\\ +\emptyLine +\ 2 2\\ +o6 = ideal (x x - x x , x - x x , x - x x )\\ +\ 1 2 0 3 2 1 3 1 0 2\\ +\emptyLine +o6 : Ideal of ringP3\\ +\endOutput +which uses precisely the same method. + +Of course we might remember that the ideal of the twisted +cubic is generated by the $2\times 2$ minors of the +matrix +$$\begin{pmatrix} +x_0&x_1&x_2\cr +x_1&x_2&x_3 +\end{pmatrix}, +$$ +which we can realize with the commands +\beginOutput +i7 : M = matrix\{\{x_0,x_1,x_2\},\{x_1,x_2,x_3\}\}\\ +\emptyLine +o7 = | x_0 x_1 x_2 |\\ +\ | x_1 x_2 x_3 |\\ +\emptyLine +\ 2 3\\ +o7 : Matrix ringP3 <--- ringP3\\ +\endOutput +\indexcmd{minors}\index{ideal}% +\beginOutput +i8 : idealCubic3 = minors(2, M)\\ +\emptyLine +\ 2 2\\ +o8 = ideal (- x + x x , - x x + x x , - x + x x )\\ +\ 1 0 2 1 2 0 3 2 1 3\\ +\emptyLine +o8 : Ideal of ringP3\\ +\endOutput +We can get some useful information about the ideal +{\tt idealCubic} with +\indexcmd{codimension}% +\beginOutput +i9 : codim idealCubic\\ +\emptyLine +o9 = 2\\ +\endOutput +\index{degree of a projective variety}% +\beginOutput +i10 : degree idealCubic\\ +\emptyLine +o10 = 3\\ +\endOutput +This shows that we do indeed have a cubic curve. Note that the +command +\index{dimension of a projective variety}% +\beginOutput +i11 : dim idealCubic\\ +\emptyLine +o11 = 2\\ +\endOutput +gives 2, not 1; it represents the dimension of the ideal +in {\tt ringP3}, the dimension of the affine cone over the +curve. + +We can easily assure ourselves that these ideals are the same. +{}For example, to see whether the ideal {\tt idealCubic} +is contained in the ideal of minors of {\tt M}, we can +reduce the former modulo the latter, and see whether +we get zero. The reduction operator {\tt \%} takes two +maps with the same target as its arguments, so +we must replace each ideal by a matrix whose entries +generate it. This is done by the function {\tt gens} as in +\indexcmd{gens}\indexcmd{generators}% +\beginOutput +i12 : gens idealCubic\\ +\emptyLine +o12 = | x_2^2-x_1x_3 x_1x_2-x_0x_3 x_1^2-x_0x_2 |\\ +\emptyLine +\ 1 3\\ +o12 : Matrix ringP3 <--- ringP3\\ +\endOutput +Thus for one of the inclusions we check +\indexcmd{\%}% +\index{reduced form}% +\beginOutput +i13 : 0 == (gens idealCubic){\char`\%}(gens idealCubic3)\\ +\emptyLine +o13 = true\\ +\endOutput +Both inclusions can be checked automatically in this way +with +\beginOutput +i14 : idealCubic == idealCubic3\\ +\emptyLine +o14 = true\\ +\endOutput + + + +\section{The Cotangent Bundle of $\P^3$} + +\index{cotangent bundle}% +Many invariants of varieties are defined in +terms of their tangent and cotangent bundles. We +identify a bundle with its sheaf of +sections, which is locally free. +Any coherent locally free sheaf arises this way. +(One can also regard a bundle +as a variety in its own right, but this view +is used in algebraic geometry more rarely.) +In this section and the next we construct +the cotangent bundle $\Omega_{\P^3}$ of $\P^3$ and +its restriction to the twisted cubic above. + +Consulting Hartshorne \cite[Theorem II.8.13]{Hartshorne}, we find +that the cotangent bundle to $\P^n$ can be described +by the {\it cotangent sequence\/}: +\index{cotangent sequence}% +$$ +0\rTo +\Omega_{\P^n}\rTo +\cO_{\P^n}(-1)^{n+1}\rTo^f +\cO_{\P^n} \rTo +0 +$$ +where $f$ is defined by the matrix +of variables $(x_0,\dots,x_n)$. +We can translate this description directly into the +language of \Mtwo, here in the case $n=3$: +\beginOutput +i15 : f = vars ringP3\\ +\emptyLine +o15 = | x_0 x_1 x_2 x_3 |\\ +\emptyLine +\ 1 4\\ +o15 : Matrix ringP3 <--- ringP3\\ +\endOutput +\index{kernel of a module map}% +\beginOutput +i16 : OmegaP3 = kernel f\\ +\emptyLine +o16 = image \{1\} | 0 0 0 -x_1 -x_2 -x_3 |\\ +\ \{1\} | 0 -x_2 -x_3 x_0 0 0 |\\ +\ \{1\} | -x_3 x_1 0 0 x_0 0 |\\ +\ \{1\} | x_2 0 x_1 0 0 x_0 |\\ +\emptyLine +\ 4\\ +o16 : ringP3-module, submodule of ringP3\\ +\endOutput +\index{modules!how to represent}% +Note that the module which we specified as a kernel +is now given as the image of a matrix. We can recover this +matrix with +\beginOutput +i17 : g=generators OmegaP3\\ +\emptyLine +o17 = \{1\} | 0 0 0 -x_1 -x_2 -x_3 |\\ +\ \{1\} | 0 -x_2 -x_3 x_0 0 0 |\\ +\ \{1\} | -x_3 x_1 0 0 x_0 0 |\\ +\ \{1\} | x_2 0 x_1 0 0 x_0 |\\ +\emptyLine +\ 4 6\\ +o17 : Matrix ringP3 <--- ringP3\\ +\endOutput +and we could correspondingly write +\indexcmd{image}% +\beginOutput +i18 : OmegaP3=image g\\ +\emptyLine +o18 = image \{1\} | 0 0 0 -x_1 -x_2 -x_3 |\\ +\ \{1\} | 0 -x_2 -x_3 x_0 0 0 |\\ +\ \{1\} | -x_3 x_1 0 0 x_0 0 |\\ +\ \{1\} | x_2 0 x_1 0 0 x_0 |\\ +\emptyLine +\ 4\\ +o18 : ringP3-module, submodule of ringP3\\ +\endOutput +An even more elementary way to give a module is by generators +and relations, and we can see this ``free presentation'' too with +\indexcmd{presentation}% +\beginOutput +i19 : presentation OmegaP3\\ +\emptyLine +o19 = \{2\} | x_1 0 0 x_0 |\\ +\ \{2\} | x_3 x_0 0 0 |\\ +\ \{2\} | -x_2 0 x_0 0 |\\ +\ \{2\} | 0 x_2 x_3 0 |\\ +\ \{2\} | 0 -x_1 0 x_3 |\\ +\ \{2\} | 0 0 -x_1 -x_2 |\\ +\emptyLine +\ 6 4\\ +o19 : Matrix ringP3 <--- ringP3\\ +\endOutput +The astute reader will have noticed that we have just been computing +the first few terms in the free resolution of the cokernel of the +map of free modules corresponding to +{\tt f}. We could see the whole resolution at once with +\index{resolution!free}\indexcmd{res}\indexcmd{coker}\indexcmd{cokernel} +\index{chain complex}\index{complex} +\beginOutput +i20 : G = res coker f\\ +\emptyLine +\ 1 4 6 4 1\\ +o20 = ringP3 <-- ringP3 <-- ringP3 <-- ringP3 <-- ringP3 <-- 0\\ +\ \\ +\ 0 1 2 3 4 5\\ +\emptyLine +o20 : ChainComplex\\ +\endOutput +and then see all the matrices in the resolution with +\indexcmd{dd}\index{differentials of a complex} +\index{complex!differentials in} +\beginOutput +i21 : G.dd\\ +\emptyLine +\ 1 4\\ +o21 = 0 : ringP3 <----------------------- ringP3 : 1\\ +\ | x_0 x_1 x_2 x_3 |\\ +\emptyLine +\ 4 6\\ +\ 1 : ringP3 <----------------------------------------- ringP3 : 2\\ +\ \{1\} | -x_1 -x_2 0 -x_3 0 0 |\\ +\ \{1\} | x_0 0 -x_2 0 -x_3 0 |\\ +\ \{1\} | 0 x_0 x_1 0 0 -x_3 |\\ +\ \{1\} | 0 0 0 x_0 x_1 x_2 |\\ +\emptyLine +\ 6 4\\ +\ 2 : ringP3 <------------------------------- ringP3 : 3\\ +\ \{2\} | x_2 x_3 0 0 |\\ +\ \{2\} | -x_1 0 x_3 0 |\\ +\ \{2\} | x_0 0 0 x_3 |\\ +\ \{2\} | 0 -x_1 -x_2 0 |\\ +\ \{2\} | 0 x_0 0 -x_2 |\\ +\ \{2\} | 0 0 x_0 x_1 |\\ +\emptyLine +\ 4 1\\ +\ 3 : ringP3 <---------------- ringP3 : 4\\ +\ \{3\} | -x_3 |\\ +\ \{3\} | x_2 |\\ +\ \{3\} | -x_1 |\\ +\ \{3\} | x_0 |\\ +\emptyLine +\ 1\\ +\ 4 : ringP3 <----- 0 : 5\\ +\ 0\\ +\emptyLine +o21 : ChainComplexMap\\ +\endOutput +or just one of them, say the second, with +\index{dd\_i@{\tt dd\_i}, i-th differential of a complex} +\beginOutput +i22 : G.dd_2\\ +\emptyLine +o22 = \{1\} | -x_1 -x_2 0 -x_3 0 0 |\\ +\ \{1\} | x_0 0 -x_2 0 -x_3 0 |\\ +\ \{1\} | 0 x_0 x_1 0 0 -x_3 |\\ +\ \{1\} | 0 0 0 x_0 x_1 x_2 |\\ +\emptyLine +\ 4 6\\ +o22 : Matrix ringP3 <--- ringP3\\ +\endOutput +Note that this matrix does not look exactly the same as +the matrix produced by computing the kernel of {\tt f}. +This is because when \Mtwo is asked to compute a whole +resolution, it does not do the ``obvious'' thing and +compute kernels over and over; it defaults to a more efficient +algorithm, first proposed by Frank Schreyer +\cite[Appendix]{s1}. +\index{Schreyer's algorithm for free resolutions} + +Any graded map of free modules, such as a map in a graded +{}free resolution of a graded module, comes with some numerical data: +the degrees of the +generators of the source and target free modules. +We can extract this information one module at a time with +the command {\tt degrees}, as in +\indexcmd{degrees} +\indexcmd{source}\indexcmd{target} +\beginOutput +i23 : degrees source G.dd_2\\ +\emptyLine +o23 = \{\{2\}, \{2\}, \{2\}, \{2\}, \{2\}, \{2\}\}\\ +\emptyLine +o23 : List\\ +\endOutput +\beginOutput +i24 : degrees target G.dd_2\\ +\emptyLine +o24 = \{\{1\}, \{1\}, \{1\}, \{1\}\}\\ +\emptyLine +o24 : List\\ +\endOutput + +\Mtwo has a more convenient +mechanism for examining this numerical data, +which we take time out to explain. First, for the resolution just +computed, we can call +\beginOutput +i25 : betti G\\ +\emptyLine +o25 = total: 1 4 6 4 1\\ +\ 0: 1 4 6 4 1\\ +\endOutput +\index{Betti diagram}\index{diagram, Betti}\indexcmd{betti}% +The diagram shows the degrees of the generators of each free module +in the resolution in coded form. To understand the code, it may +be helpful to look at a less symmetric example, say the free +resolution of {\tt ringP3\char`\^1/I} where $I$ is +the ideal generated by the minors of the following $2\times 4$ matrix. +\beginOutput +i26 : m = matrix\{\{x_0^3, x_1^2, x_2,x_3\},\{x_1^3,x_2^2,x_3,0\}\}\\ +\emptyLine +o26 = | x_0^3 x_1^2 x_2 x_3 |\\ +\ | x_1^3 x_2^2 x_3 0 |\\ +\emptyLine +\ 2 4\\ +o26 : Matrix ringP3 <--- ringP3\\ +\endOutput +We do this with +\beginOutput +i27 : I = minors(2,m)\\ +\emptyLine +\ 5 3 2 3 3 3 2 3 2 2\\ +o27 = ideal (- x + x x , - x x + x x , - x + x x , -x x , -x x , -x )\\ +\ 1 0 2 1 2 0 3 2 1 3 1 3 2 3 3\\ +\emptyLine +o27 : Ideal of ringP3\\ +\endOutput +\beginOutput +i28 : F = res(ringP3^1/I)\\ +\emptyLine +\ 1 6 8 3\\ +o28 = ringP3 <-- ringP3 <-- ringP3 <-- ringP3 <-- 0\\ +\ \\ +\ 0 1 2 3 4\\ +\emptyLine +o28 : ChainComplex\\ +\endOutput +\beginOutput +i29 : betti F\\ +\emptyLine +o29 = total: 1 6 8 3\\ +\ 0: 1 . . .\\ +\ 1: . 1 . .\\ +\ 2: . 2 2 .\\ +\ 3: . 2 2 .\\ +\ 4: . 1 4 3\\ +\endOutput + +The resulting Betti diagram should be interpreted as follows. +{}First, the maps go from right to left, so the beginning of the +resolution is on the left. The given Betti diagram +thus corresponds to an exact sequence of graded free modules +$$ +{}F_0\lTo F_1\lTo F_2\lTo F_3\lTo 0. +$$ +The top row of the diagram, 1,6,8,3, shows the +ranks of the free modules $F_i$ in the resolution. For example the 1 +on the left means that $F_0$ has rank 1 (and, +indeed, the module {\tt ringP3\char`\^1/I} we are resolving is cyclic). +The 6 shows that the rank of $F_1$ is 6, or equivalently that +the ideal {\tt I} is minimally generated by 6 elements---in this +case the $6 = {\binom 4 2}$ minors of size 2 of the $2\times 4$ +matrix $m$. + +The first column of the diagram shows degrees. The successive +columns indicate how many generators of each degree occur in the +successive $F_i$. The free module $F_0$ has a single generator in +degree 0, and this is the significance of the second column. Note +that $F_1$ could not have any generators of degree less than or equal +to zero, because the resolution is minimal! Thus for compactness, the +diagram is skewed: in each successive column the places correspond to +larger degrees. More precisely, a number $a$ occurring opposite the +degree indication ``{\tt i:}'' in the column corresponding to $F_j$ signifies +that $F_j$ has $a$ generators in degree $i+j$. Thus for example the 1 +in the third column opposite the one on the left corresponds to a +generator of degree 2 in the free module $F_1$; and +altogether $F_1$ has one generator of degree 2, two generators of +degree 3, two of degree 4 and one of degree 5. + +Returning to the diagram +\beginOutput +i30 : betti G\\ +\emptyLine +o30 = total: 1 4 6 4 1\\ +\ 0: 1 4 6 4 1\\ +\endOutput +we see that the successive free modules of {\tt G} are +each generated in degree 1 higher than the previous one; that +is, the matrices in {\tt G.dd} all have linear entries, as +we have already seen. + + + + +\section{The Cotangent Bundle of a Projective Variety} + +\index{cotangent bundle}% +It is easy to construct the cotangent bundle $\Omega_X$ of a projective +variety $X$ starting from the cotangent bundle +of the ambient +projective space. We use the {\it conormal sequence} +\index{conormal sequence} +(Hartshorne \cite[Proposition II.8.12]{Hartshorne} or Eisenbud +\cite[Proposition 16.3]{eCA}). +Writing $I$ for the ideal of a variety $X$ in $\P^n$ there is +an exact sequence of sheaves +$$ +I \rTo^\delta \Omega_{\P^n}\otimes \cO_X\rTo \Omega_X\rTo 0 +$$ +where the map $\delta$ takes a function $f$ +to the element $df\otimes 1$. If $I$ is generated by +{}forms $f_1,\dots,f_m$ then $\delta$ is represented +by the \ie{Jacobian matrix} $(df_i/dx_j)$. + + +{}First of all, we must compute a module corresponding to +$\Omega_{\P^n}\otimes \cO_X$, the restriction of the sheaf +$\Omega_{\P^n}$ to $X$. The simplest approach would be +to take the tensor product of graded modules representing +$\Omega_{\P^n}$ and $\cO_X$. The result would represent the +right sheaf, but would not be the module of twisted global +sections of $\Omega_{\P^n}\otimes \cO_X$ (the unique module +of depth two representing the sheaf). This would make further +computations less efficient. + +Thus we take a different approach: +since the cotangent sequence given +in the previous section +is a sequence of locally free sheaves, it is locally split, and +thus remains exact when tensored by $\cO_X$. Consequently +$\Omega_{\P^n}\otimes \cO_X$ is also represented by the kernel +of the map $f\otimes \cO_X$, where $f$ is the map used +in the definition of the cotangent bundle of $\P^n$. +In \Mtwo, working on $\P^3$, with $X$ the twisted cubic, we +can translate this into +\beginOutput +i31 : OmegaP3res = kernel (f ** (ringP3^1/idealCubic))\\ +\emptyLine +o31 = subquotient (\{1\} | -x_3 0 0 -x_2 -x_3 0 -x_1 -x_2 -x_3 $\cdot\cdot\cdot$\\ +\ \{1\} | x_2 -x_3 0 x_1 0 -x_3 x_0 0 0 $\cdot\cdot\cdot$\\ +\ \{1\} | 0 x_2 -x_3 0 x_1 0 0 x_0 0 $\cdot\cdot\cdot$\\ +\ \{1\} | 0 0 x_2 0 0 x_1 0 0 x_0 $\cdot\cdot\cdot$\\ +\emptyLine +\ 4\\ +o31 : ringP3-module, subquotient of ringP3\\ +\endOutput +(The operator {\tt \char`\*\char`\*} is \Mtwo's symbol for tensor product.) +Since the map is a map between free modules +over {\tt ringP3/idealCubic}, the kernel has depth (at least) two. + +Next, we form the Jacobian matrix of the generators +of +% the ideal +{\tt idealCubic}, which represents a map +from this ideal to the free module {\tt ringP3\char`\^4}. +\indexcmd{jacobian} +\beginOutput +i32 : delta1 = jacobian idealCubic\\ +\emptyLine +o32 = \{1\} | 0 -x_3 -x_2 |\\ +\ \{1\} | -x_3 x_2 2x_1 |\\ +\ \{1\} | 2x_2 x_1 -x_0 |\\ +\ \{1\} | -x_1 -x_0 0 |\\ +\emptyLine +\ 4 3\\ +o32 : Matrix ringP3 <--- ringP3\\ +\endOutput +We need to make this into a map to {\tt OmegaP3res}, which +as defined is a subquotient of {\tt ringP3\char`\^4}. To this end +we must first express the image of {\tt delta1} in terms of +the generators of {\tt OmegaP3res}. The \ie{division command} {\tt //} +does this with +\beginOutput +i33 : delta2 = delta1 // (gens OmegaP3res)\\ +\emptyLine +o33 = \{2\} | 0 1 0 |\\ +\ \{2\} | 2 0 0 |\\ +\ \{2\} | 0 0 0 |\\ +\ \{2\} | 0 0 2 |\\ +\ \{2\} | 0 1 0 |\\ +\ \{2\} | -1 0 0 |\\ +\ \{2\} | 0 0 0 |\\ +\ \{2\} | 0 0 -1 |\\ +\ \{2\} | 0 -1 0 |\\ +\emptyLine +\ 9 3\\ +o33 : Matrix ringP3 <--- ringP3\\ +\endOutput +Once this is done we can use this matrix to form the +necessary map $\delta: I\to \Omega_{\P^3}\otimes\O_X$: +\index{map of modules} +\beginOutput +i34 : delta = map(OmegaP3res, module idealCubic, delta2)\\ +\emptyLine +o34 = \{2\} | 0 1 0 |\\ +\ \{2\} | 2 0 0 |\\ +\ \{2\} | 0 0 0 |\\ +\ \{2\} | 0 0 2 |\\ +\ \{2\} | 0 1 0 |\\ +\ \{2\} | -1 0 0 |\\ +\ \{2\} | 0 0 0 |\\ +\ \{2\} | 0 0 -1 |\\ +\ \{2\} | 0 -1 0 |\\ +\emptyLine +o34 : Matrix\\ +\endOutput +A minimal free presentation of $\Omega_X$ --- or rather of +one module over +{\tt ringP3} that represents it --- can be obtained with +\indexcmd{prune}\index{presentation!minimal} +\beginOutput +i35 : OmegaCubic = prune coker delta\\ +\emptyLine +o35 = cokernel \{2\} | -10917x_3 0 -10917x_3 x_2 0 0 $\cdot\cdot\cdot$\\ +\ \{2\} | 0 0 x_2 0 16374x_3 0 $\cdot\cdot\cdot$\\ +\ \{2\} | 0 -x_3 0 16373x_3 0 x_2 $\cdot\cdot\cdot$\\ +\ \{2\} | x_3 x_2 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{2\} | 0 0 0 0 0 -2x_3 $\cdot\cdot\cdot$\\ +\ \{2\} | 0 0 0 0 x_2 0 $\cdot\cdot\cdot$\\ +\emptyLine +\ 6\\ +o35 : ringP3-module, quotient of ringP3\\ +\endOutput +We have used the function {\tt prune} to compute +minimal presentation matrices; these often make subsequent +computations faster, and also allow us to inspect the final +answer more easily. + +The module {\tt OmegaCubic} represents the sheaf $\Omega_{X}$, where +$X$ is the cubic, but it is not the simplest possibility. +A better representative is the graded module +$\oplus_{d\in \Z} \H^0(\Omega_X(d))$. We can at least find +a minimal presentation of the +submodule $\oplus_{d\geq 0} \H^0(\Omega_X(d))$ with +\index{sheaf cohomology}\index{cohomology!sheaf}\indexcmd{HH}\indexcmd{sheaf} +\beginOutput +i36 : prune HH^0((sheaf OmegaCubic)(>=0))\\ +\emptyLine +o36 = cokernel \{1\} | 16374x_3 16374x_2 16374x_1 |\\ +\ \{1\} | x_2 x_1 x_0 |\\ +\emptyLine +\ 2\\ +o36 : ringP3-module, quotient of ringP3\\ +\endOutput +The large coefficients appearing in the matrix arise in finite characteristic as the result +of chance division by small integers. +We see from the degrees labeling the rows of the matrix in the +output of this command that +the generators of the submodule are in degree 1, +so in particular $\H^0(\Omega_X) = 0$. +It follows that that +$\H^0(\Omega_X(d)) = 0$ for all $d\leq 0$, so +the submodule we computed was actually the whole module +that we wanted! (If this had not been the case we could have tried +{\tt HH\char`\^0((sheaf OmegaCubic)(>=d))} to compute the cohomology +of all the twists greater than a given negative integer $d$, +or simply used the submodule we had already computed, since +it also represents the sheaf $\Omega_X$.) + + +The sequence of commands we have used to construct the +cotangent sheaf can be obtained also with +the following built-in commands. +\beginOutput +i37 : Cubic = Proj(ringP3/idealCubic)\\ +\emptyLine +o37 = Cubic\\ +\emptyLine +o37 : ProjectiveVariety\\ +\endOutput +\beginOutput +i38 : cotangentSheaf Cubic\\ +\emptyLine +o38 = cokernel \{1\} | x_2 x_1 x_0 |\\ +\ \{1\} | -x_3 -x_2 -x_1 |\\ +\emptyLine +\ 2\\ +o38 : coherent sheaf on Cubic, quotient of OO (-1)\\ +\ Cubic\\ +\endOutput + + +Since $X$ is a smooth curve, its cotangent bundle is equal +to its {\it canonical bundle}, and also to its {\it dualizing sheaf} +(see Hartshorne \cite[sections II.8 and III.7]{Hartshorne} +{}for definitions). +\index{cotangent bundle}\index{canonical bundle}\index{dualizing sheaf} +We will +see another (generally more efficient) method of computing this +dualizing sheaf by using {\tt Ext} and \ie{duality} theory. + +\goodbreak + +\section{Intersections by Serre's Method} + +\index{intersection theory}\index{Serre's intersection formula}% +To introduce homological algebra in a simple geometric context, +consider the problem of computing the \ie{intersection multiplicities} +of two varieties $X$ and $Y$ in $\P^n$, assuming for simplicity +that $\mathop{\rm dim} X +\mathop{\rm dim} Y = n$ and that the two +meet in a zero-dimensional scheme. Beginning in the +19th century, many people struggled to make a definition of +local intersection multiplicity +that would make {\it B\'ezout's Theorem\/} true: the product +of the degrees of $X$ and $Y$ should be the number of points +of intersection, each counted with its local intersection multiplicity +(multiplied by the degree of the point, if the point is not +rational over the ground field). +\index{Bezout's Theorem@B\'ezout's Theorem} +In the simplest case, where the two varieties are Cohen-Macaulay, +the right answer is that a point $p$ should count with multiplicity +equal to the length of the local ring +\index{length of a module} +$\cO_{X,p}\otimes_{\cO_{\P^n,p}} \cO_{Y,p}$, +and at first it was naively assumed that this would be the right answer +in general. + +Here is a famous example in ${\bf P}^4$ showing that +the naive value can be wrong: in it, the scheme $X$ is a 2-plane +and the scheme $Y=L_1\cup L_2$ is the union of two 2-planes. +The planes $L_1$ and $L_2$ meet at just one point $p$, +and we assume that $X$ passes through $p$ as well, and +is general enough so that it meets +$Y$ only in $p$. +Since $\mathop{\rm degree}(X) = 1, \mathop{\rm degree}(Y) = 2$, +B\'ezout's Theorem requires that +the multiplicity of the intersection at $p$ should be 2. +However, we have: +\beginOutput +i39 : ringP4 = kk[x_0..x_4]\\ +\emptyLine +o39 = ringP4\\ +\emptyLine +o39 : PolynomialRing\\ +\endOutput +\beginOutput +i40 : idealX = ideal(x_1+x_3, x_2+x_4)\\ +\emptyLine +o40 = ideal (x + x , x + x )\\ +\ 1 3 2 4\\ +\emptyLine +o40 : Ideal of ringP4\\ +\endOutput +\beginOutput +i41 : idealL1 = ideal(x_1,x_2)\\ +\emptyLine +o41 = ideal (x , x )\\ +\ 1 2\\ +\emptyLine +o41 : Ideal of ringP4\\ +\endOutput +\beginOutput +i42 : idealL2 = ideal(x_3,x_4)\\ +\emptyLine +o42 = ideal (x , x )\\ +\ 3 4\\ +\emptyLine +o42 : Ideal of ringP4\\ +\endOutput +\beginOutput +i43 : idealY = intersect(idealL1,idealL2)\\ +\emptyLine +o43 = ideal (x x , x x , x x , x x )\\ +\ 2 4 1 4 2 3 1 3\\ +\emptyLine +o43 : Ideal of ringP4\\ +\endOutput +\beginOutput +i44 : degree(idealX+idealY)\\ +\emptyLine +o44 = 3\\ +\endOutput +That is, +the length of +$\cO_{X,p}\otimes_{\cO_{\P^n,p}} \cO_{Y,p}$ +is 3 rather than 2. (We can do this computation +without first passing to local rings because there +is only one point of intersection, and because all the +constructions we are using commute with localization.) + +It was the happy discovery +of Jean-Pierre Serre \cite[V.B.3]{Serre} that the naive +measure of intersection multiplicity can be fixed in a simple +way that works for all intersections in smooth varieties. +One simply replaces the length of the tensor product +$$ +\cO_{X,p}\otimes_{\cO_{\P^n,p}} \cO_{Y,p}= +\mathop{\rm Tor}\nolimits_0^{\cO_{{\P^n},p} } + (\cO_{X,p}, \cO_{Y,p}) +$$ +with the alternating sum of the Tor functors +$$ +\sum_i(-1)^i \mathop{\rm length} +\mathop{\rm Tor}\nolimits_i^{\cO_{{\P^n},p} } + (\cO_{X,p}, \cO_{Y,p}). +$$ +In \Mtwo we can proceed as follows: +\indexcmd{Tor} +\beginOutput +i45 : degree Tor_0(ringP4^1/idealX, ringP4^1/idealY)\\ +\emptyLine +o45 = 3\\ +\endOutput +\beginOutput +i46 : degree Tor_1(ringP4^1/idealX, ringP4^1/idealY)\\ +\emptyLine +o46 = 1\\ +\endOutput +\beginOutput +i47 : degree Tor_2(ringP4^1/idealX, ringP4^1/idealY)\\ +\emptyLine +o47 = 0\\ +\endOutput +The other Tor's are 0 because the projective +dimension of {\tt ringP4\char`\^1/idealX} is only two, +as we see from +\beginOutput +i48 : res (ringP4^1/idealX)\\ +\emptyLine +\ 1 2 1\\ +o48 = ringP4 <-- ringP4 <-- ringP4 <-- 0\\ +\ \\ +\ 0 1 2 3\\ +\emptyLine +o48 : ChainComplex\\ +\endOutput +Thus, indeed, the alternating sum is 2, and B\'ezout's +Theorem is upheld. + +\section{A Mystery Variety in $\P^3$} + +In the file {\tt mystery.m2} is a function called {\tt mystery} that will +compute the ideal of a subvariety $X$ of $\P^3$. We'll reveal what it does +at the end of the chapter. Let's run it. +\beginOutput +i49 : ringP3 = kk[x_0..x_3];\\ +\endOutput +\beginOutput +i50 : load "mystery.m2"\\ +\endOutput +\beginOutput +i51 : idealX = mystery ringP3\\ +\emptyLine +\ 4 2 2 2 2 2 2 2 $\cdot\cdot\cdot$\\ +o51 = ideal (x - 2x x x - x x x + x x , x x - 10915x x x - 10917x $\cdot\cdot\cdot$\\ +\ 1 0 1 3 1 2 3 0 3 0 1 0 1 2 $\cdot\cdot\cdot$\\ +\emptyLine +o51 : Ideal of ringP3\\ +\endOutput +We can't see all the generators of the ideal; the same file contains a +function {\tt prettyPrint} which will display the generators visibly. +\beginOutput +i52 : prettyPrint gens idealX\\ +x_1^4-2*x_0*x_1^2*x_3-x_1^2*x_2*x_3+x_0^2*x_3^2,\\ +x_0^2*x_1^2-10915*x_0*x_1^2*x_2-10917*x_0^3*x_3+10916*x_0^2*x_2*x_3-\\ +\ 10916*x_0*x_2^2*x_3-10916*x_1*x_3^3,\\ +x_0*x_1^2*x_2^2+11909*x_0^4*x_3+5954*x_0^3*x_2*x_3+2977*x_0^2*x_2^2*x_3+\\ +\ 11910*x_0*x_2^3*x_3-2978*x_1^3*x_3^2+14887*x_0*x_1*x_3^3+\\ +\ 11910*x_1*x_2*x_3^3,\\ +x_0*x_1^3*x_2-13099*x_1^3*x_2^2-6550*x_0^3*x_1*x_3-\\ +\ 13100*x_0^2*x_1*x_2*x_3-6550*x_0*x_1*x_2^2*x_3+13099*x_1*x_2^3*x_3+\\ +\ 13100*x_1^2*x_3^3+13099*x_0*x_3^4,\\ +x_0^5+5*x_0^2*x_2^3+5*x_0*x_2^4-3*x_0*x_1^3*x_3-4*x_1^3*x_2*x_3+\\ +\ 4*x_0^2*x_1*x_3^2+10*x_0*x_1*x_2*x_3^2+5*x_1*x_2^2*x_3^2,\\ +x_1^2*x_2^4-8932*x_0^4*x_2*x_3+11909*x_0^3*x_2^2*x_3+5954*x_0^2*x_2^3*x_3-\\ +\ 8934*x_0*x_2^4*x_3-x_2^5*x_3+2*x_0*x_1^3*x_3^2-5952*x_1^3*x_2*x_3^2-\\ +\ x_0^2*x_1*x_3^3-2979*x_0*x_1*x_2*x_3^3-8934*x_1*x_2^2*x_3^3+x_3^6\\ +\endOutput +Imagine that you found yourself looking at the +scheme $X$ in $\P^3$ defined by the 6 equations above. +\beginOutput +i53 : X = variety idealX\\ +\emptyLine +o53 = X\\ +\emptyLine +o53 : ProjectiveVariety\\ +\endOutput +How would you analyze the scheme $X$? +We will illustrate one approach. + +In outline, we will first look at the topological invariants: +\index{topology of a projective variety} +the number and dimensions of the irreducible components, +and how they meet if there is more than one; the topological +type of each component; and the degree of each component in +$\P^3$. We will then see what we can say about the analytic +invariants of $X$ using \ie{adjunction theory} (we give some references +at the end). + +Since we are interested in the projective scheme defined by +{\tt idealX} we could work with any ideal having the same +saturation. It is usually the case that working with the +saturation itself greatly eases subsequent computation so, +as a matter of good practice, +we begin by checking whether the ideal is saturated. If +not, we should replace it with its saturation. +\indexcmd{saturate}\index{saturation} +\beginOutput +i54 : idealX == saturate idealX\\ +\emptyLine +o54 = true\\ +\endOutput +Thus we see that {\tt idealX} is already saturated. +Perhaps the most basic invariant of $X$ is its dimension: +\beginOutput +i55 : dim X\\ +\emptyLine +o55 = 1\\ +\endOutput +This shows that {\tt X} consists of a curve, and +possibly some zero-dimensional components. +The command +\beginOutput +i56 : idealXtop = top idealX\\ +\emptyLine +\ 4 2 2 2 2 2 2 2 $\cdot\cdot\cdot$\\ +o56 = ideal (x - 2x x x - x x x + x x , x x - 10915x x x - 10917x $\cdot\cdot\cdot$\\ +\ 1 0 1 3 1 2 3 0 3 0 1 0 1 2 $\cdot\cdot\cdot$\\ +\emptyLine +o56 : Ideal of ringP3\\ +\endOutput +\index{top dimensional part of an ideal}% +%% Dan the \index command above seems to insert an extra space +%% at the beginning of the line! +%% +%% The extra space comes from not putting a % at the end of the line. +returns the ideal of the largest dimensional components of {\tt X}. +If there were 0-dimensional components (or if idealX were not saturated) +then {\tt idealXtop} would be larger than {\tt idealX}. +To test this we reduce {\tt idealXtop} modulo {\tt idealX} +and see whether we get 0: +\beginOutput +i57 : (gens idealXtop){\char`\%}(gens idealX) == 0\\ +\emptyLine +o57 = true\\ +\endOutput +Thus +{\tt X} +is a purely one-dimensional scheme. + + +Is {\tt X} +singular? +\beginOutput +i58 : codim singularLocus idealX\\ +\emptyLine +o58 = 4\\ +\endOutput +%%Dan, Same spacing problem again, below! +\index{singular locus of a scheme}% +%% Same fix, above. +A variety of codimension 4 in $\P^3$ must be empty, so $X$ +is a nonsingular curve. + +A nonsingular curve in $\P^3$ could still be reducible, +but since the intersection of two components +would be a singular point, the curve would then be disconnected. +A straightforward +way to decide is to use the command {\tt decompose}, +which returns a list of irreducible components defined over {\tt kk}. +The length +of this list, +\beginOutput +i59 : # decompose idealX\\ +\emptyLine +o59 = 1\\ +\endOutput +\indexcmd{decompose}\index{decompose a variety}% +\index{primary decomposition}% +\index{irreducible decomposition}% +is thus the number of irreducible components +that are defined over {\tt kk}, and +we see there is only one. (Warning: at this writing (December 2000), +the command +``decompose'' works only in positive characteristic). + +Often what we really want to know is +whether {\tt X} is +{\it absolutely irreducible\/} (that is, irreducible over the +algebraic closure of {\tt kk}). +\index{irreducible!absolutely} +\index{absolutely irreducible} +The property of being smooth transfers to the algebraic +closure, so again the question is the number of connected +components we would get over the algebraic closure. +{}For any reduced scheme {\tt X} over a perfect +{}field (such as our finite field {\tt kk}) this number is +$\mathop{\rm h}\nolimits^0\cO_X := \mathop{\rm dim}\nolimits_{\tt kk}\mathop{\rm H}\nolimits^0\cO_X$. +We compute it with +\beginOutput +i60 : HH^0 OO_X\\ +\emptyLine +\ 1\\ +o60 = kk\\ +\emptyLine +o60 : kk-module, free\\ +\endOutput +\beginOutput +i61 : rank oo\\ +\emptyLine +o61 = 1\\ +\endOutput +This command works much faster than the decompose command. +(You can compute the time by adding the command {\tt time} +\indexcmd{time} +to the beginning of the line where the command to be timed +starts.) Since we already know that {\tt idealX} is saturated, +this also shows that {\tt idealX} is prime. + +We next ask for the genus of the curve $X$. +\index{genus of a curve} +Here the {\it genus} may be defined as the dimension of +the space $\operatorname{H}\nolimits^1\cO_X$. +We can get this space with +\beginOutput +i62 : HH^1 OO_X\\ +\emptyLine +\ 6\\ +o62 = kk\\ +\emptyLine +o62 : kk-module, free\\ +\endOutput +The genus of the curve is the dimension of this space, +which we can see to be 6. +Next, the cohomology class of {\tt X} in $\P^3$ is determined +by the degree of {\tt X}: +\beginOutput +i63 : degree idealX\\ +\emptyLine +o63 = 10\\ +\endOutput +In sum: {\tt X} is a smooth, absolutely irreducible curve of +genus 6 and degree 10. + +We next ask for +analytic information about the curve and the embedding. +A reasonable place to start is +with the relation between the line bundle defining the +embedding and the canonical sheaf $\omega_X$. +Notice first that the degree of the hyperplane divisor (the +degree of the curve) is 10 = 2g-2, the same as the canonical +bundle. By Riemann-Roch the embedding line bundle either is the canonical +bundle or has first cohomology 0, which we can check with +\beginOutput +i64 : P3 = Proj ringP3\\ +\emptyLine +o64 = P3\\ +\emptyLine +o64 : ProjectiveVariety\\ +\endOutput +\beginOutput +i65 : HH^1((OO_P3(1)/idealX)(>=0))\\ +\emptyLine +o65 = cokernel | x_3 x_2 x_1 x_0 |\\ +\emptyLine +\ 1\\ +o65 : ringP3-module, quotient of ringP3\\ +\endOutput +Let's examine the degree of the generator of that module. +\beginOutput +i66 : degrees oo\\ +\emptyLine +o66 = \{\{0\}\}\\ +\emptyLine +o66 : List\\ +\endOutput +% Note the construction {\tt ringP3\char`\^\{1\}}, which denotes +% the free module of rank 1 corresponding to $\cO_{\P^3}(1)$. +% (In general, {\tt ringP3\char`\^\{a,b,\dots\}} denotes +% the free module over {\tt ringP3} corresponding to the sheaf +% $\cO_{\P^3}(a)\oplus \cO_{\P^3}(b)\oplus \cdots$ --- that is, +% the free module with generators in degrees $-a, -b, \dots$.) +From that and the presentation matrix above +%% $${\tt dualModule\char`\_\{0\}\ \char`\|\ x\char`\_3\ x\char`\_2\ x\char`\_1\ x\char`\_0\ \char`\|}$$ +%%Dan, please check that the previous line will typeset correctly! +%% I've changed it a bit -- I don't understand the juxtaposition of the +%% expression and the matrix. Also, dualModule hasn't been defined yet! +%% Why not just reserve \tt font for computer stuff, and try to typeset math here? +we see that this cohomology module is the residue class field +${\tt ringP3/(x_0,x_1,x_2,x_3)}$, +concentrated in degree 0. +Thus the embedding line bundle $\cO_X(1)$ +is isomorphic to $\omega_X$. On the other hand +the dimension of the space of sections of this line bundle has already been +computed; it is $g = 6$. The curve is embedded in $\P^3$, so +only 4 of these sections were used---the embedding is a projection +of the same curve, embedded in $\P^6$ by the {\it canonical map\/}. +\index{canonical embedding} + +We next ask more about the curve itself. After the genus, +the \ie{gonality} and the \ie{Clifford index} are +among the most interesting invariants. +Recall that the +{\it gonality\/} of $X$ is the smallest degree of a mapping from +$X$ to $\P^1$. To define the Clifford index +of $X$ +we first define the {\it Clifford index of a line bundle\/} $L$ +on $X$ to be +$\mathop{\rm degree}(L)-2(\mathop{\rm h}\nolimits^0(L)-1)$. +{}For example, the Clifford indices of the structure sheaf +$\cO_X$ and the canonical sheaf $\omega_X$ are both equal to 0. +The {\it Clifford index of the curve\/} +$X$ is defined to be the minimum value +of the Clifford index of a line bundle $L$ +on $X$ for which both +$\mathop{\rm h}\nolimits^0(L)\geq 2$ and $\mathop{\rm h}\nolimits^1(L)\geq 2$. +The Clifford index of a curve of genus $g$ +lies between 0 (for a \ie{hyperelliptic curve}) +\index{curve!hyperelliptic} and +$\lfloor (g-1)/2\rfloor$ (for a general curve\index{curve!general}). +The Clifford index of any curve is bounded above +by the gonality minus 2. + +{}For a curve of genus 6 such as $X$, the gonality is either +2 (the hyperelliptic case), 3 (the trigonal case) or 4 +(the value for general curves). The Clifford index, on the +other hand is either 0 (the hyperelliptic case) or 1 +(the case of a \ie{trigonal curve} +\index{curve!trigonal} OR a smooth +\index{curve!plane quintic} plane quintic curve---which +is necessarily of gonality 4) +or 2 (the case of a general curve). Thus for most curves +(and this is true in any genus) +the Clifford index is equal to the gonality minus 2. + +We can make a start on distinguishing these cases already: +since our curve is embedded in $\P^3$ by a subseries of the +canonical series, $X$ cannot be hyperelliptic (for hyperelliptic +curves, the canonical series maps the curve two-to-one onto +a rational curve.) + +To make further progress we use an idea of Mark Green +\index{Green's conjecture} +(see Green and Lazarsfeld \cite{gl}). Green conjectured a formula +{}for the Clifford index that depends only on +numerical data about the free resolution of the +curve in its complete canonical embedding (where the hyperplanes +cut out all the canonical divisors). +The conjecture is known for genus 6 and +in many other cases; see for example Schreyer \cite{s}. + +We therefore begin by +computing the canonical embedding of $X$. We could proceed +to find the \ie{canonical bundle} +as in the computation for $\P^3$ above, or indeed +as $\cO_X(1)$, but instead we describe the general +method that is most efficient: duality, as described (for +example) in the book of Altman and Kleiman \cite{ak}. The +module $\oplus_{d\in \Z}\mathop{\rm H}\nolimits^0(\omega_X(d))$ can be +computed as +\indexcmd{Ext} +\beginOutput +i67 : omegaX = Ext^(codim idealX)(ringP3^1/idealX, ringP3^\{-4\})\\ +\emptyLine +o67 = cokernel \{0\} | 9359x_3 -4677x_3 -10105x_1 $\cdot\cdot\cdot$\\ +\ \{0\} | 12014x_1 2552x_1 2626x_0 $\cdot\cdot\cdot$\\ +\ \{-1\} | x_0x_3-2553x_2x_3 x_1^2-1702x_2x_3 x_0x_1-8086x_ $\cdot\cdot\cdot$\\ +\emptyLine +\ 3\\ +o67 : ringP3-module, quotient of ringP3\\ +\endOutput + +To find the equations of +the \ie{canonical embedding} of $X$, we +first compute a basis of ${\rm H}^0(\omega_X)$, which +is the degree 0 part of the module {\tt omegaX}. +The desired equations are computed as the algebraic +relations among the images of this basis under any +monomorphism $\omega_X \to \O_X$. + +As the ring {\tt ringP3/idealX} is a domain, +and $\omega_X$ is the module corresponding to +a line bundle, any nonzero map +{}from $\omega_X$ to {\tt ringP3/idealX} will be +an embedding. We can compute the module of such maps with +\beginOutput +i68 : dualModule = Hom(omegaX, ringP3^1/idealX)\\ +\emptyLine +o68 = subquotient (\{0\} | x_0^3x_2^2+10915x_0^2x_2^3+807x_0x_2^4+4043x_ $\cdot\cdot\cdot$\\ +\ \{0\} | 10105x_0x_1x_2^3+6063x_1x_2^4+11820x_0x_1^2x_ $\cdot\cdot\cdot$\\ +\ \{1\} | 10105x_0^2x_2^2-11322x_0x_2^3+11322x_2^4+8396 $\cdot\cdot\cdot$\\ +\emptyLine +\ 3\\ +o68 : ringP3-module, subquotient of ringP3\\ +\endOutput +and examine it with +\beginOutput +i69 : betti prune dualModule\\ +\emptyLine +o69 = relations : total: 10 26\\ +\ 3: 3 2\\ +\ 4: 6 14\\ +\ 5: 1 9\\ +\ 6: . 1\\ +\endOutput +For want of a better idea +we take the first generator, {\tt dualModule\char`\_\char`\{0\char`\}}, which +we can turn into an actual homomorphism with +\beginOutput +i70 : f = homomorphism dualModule_\{0\}\\ +\emptyLine +o70 = | x_0^3x_2^2+10915x_0^2x_2^3+807x_0x_2^4+4043x_2^5+7655x_0x_1x_2 $\cdot\cdot\cdot$\\ +\emptyLine +o70 : Matrix\\ +\endOutput +The image of a basis of $\omega_X$ is +given by the columns of the matrix +\beginOutput +i71 : canGens = f*basis(0,omegaX)\\ +\emptyLine +o71 = | x_0^3x_2^2+10915x_0^2x_2^3+807x_0x_2^4+4043x_2^5+7655x_0x_1x_2 $\cdot\cdot\cdot$\\ +\emptyLine +o71 : Matrix\\ +\endOutput +regarded as elements of +\beginOutput +i72 : ringX = ringP3/idealX\\ +\emptyLine +o72 = ringX\\ +\emptyLine +o72 : QuotientRing\\ +\endOutput +Because of the particular homomorphism we chose, +they have degree 5. + +We can now compute the defining ideal for $X$ in its canonical +embedding as the relations on these elements. We first define +a ring with 6 variables corresponding to the columns of {\tt canGens} +\beginOutput +i73 : ringP5 = kk[x_0..x_5]\\ +\emptyLine +o73 = ringP5\\ +\emptyLine +o73 : PolynomialRing\\ +\endOutput +and then compute the canonical ideal as the +kernel of the corresponding map from +this ring to {\tt ringX} with +\indexcmd{trim} +\beginOutput +i74 : idealXcan = trim kernel map(ringX, ringP5, \\ +\ substitute(matrix canGens,ringX),\\ +\ DegreeMap => i -> 5*i)\\ +\emptyLine +\ 2 $\cdot\cdot\cdot$\\ +o74 = ideal (x + 5040x x - 8565x x - 11589x x , x x - 6048x x - 1 $\cdot\cdot\cdot$\\ +\ 3 0 5 2 5 4 5 1 3 0 5 $\cdot\cdot\cdot$\\ +\emptyLine +o74 : Ideal of ringP5\\ +\endOutput +Here the command {\tt trim} is used to extract a minimal set +of generators of the desired ideal, and the command {\tt matrix} +replaces the map of (nonfree) modules {\tt canGens} by the matrix that +gives its action on the generators. The {\tt DegreeMap} option specifies a +function which transforms degrees (represented as lists of integers) as the +ring homomorphism does; using it here makes the ring map homogeneous. + +To get information about the Clifford index, we examine the +{}free resolution with +\beginOutput +i75 : betti res idealXcan\\ +\emptyLine +o75 = total: 1 9 16 9 1\\ +\ 0: 1 . . . .\\ +\ 1: . 6 8 3 .\\ +\ 2: . 3 8 6 .\\ +\ 3: . . . . 1\\ +\endOutput +Quite generally, for a non-hyperelliptic curve of genus +$g\geq 3$ the ideal +of the canonical embedding requires ${g-\binom 2 2}$ +quadratic generators, in our case 6. It is known that +the curve is trigonal (Clifford index 1) if and only if the +ideal also requires cubic generators, that is, the +{}first term in the free resolution requires generators of degree +$3 = 1+2$; and Green's conjecture says in general that the +curve has Clifford index $c$ if the $c-1$ term in the +resolution does not require generators of degree +$(c-1)+2 = c+1$ but the $c$ term does require generators +of degree $c+2$. Thus from the Betti diagram above, and +the truth of Green's conjecture in low genus, we +see that our curve has Clifford index 1 and is thus either +trigonal or a plane quintic. + +If $X$ is trigonal, that is, $X$ has a map of degree 3 to $\P^1$, +then the fibers of this map form a linear series whose elements +are divisors of degree three. The geometric form +\index{Riemann-Roch theorem!geometric} +of the Riemann-Roch theorem says that if +$$ +p_1,\dots,p_d\in X\subset \P^g +$$ +are points on a canonically embedded curve $X$, +then the dimension of the linear system in which the divisor +$p_1+\cdots+p_d$ moves is the amount by which the points fail +to be linearly independent: $d-1$ minus the dimension of the +projective plane spanned by the points. +In particular, the 3 points in the fiber of a three-to-one +map to $\P^1$ are linearly dependent, that is, +they span a projective line. +This ``explains'' why the ideal of a +trigonal curve requires cubic generators: the quadrics all +contain three points of these lines and thus contain the whole +lines! It is known (see St-Donat \cite{s-d}) that, in the +trigonal case, the 6 quadrics in the ideal of the canonical curve +generate the defining ideal of the variety which is the union of these +lines, and that variety is a \ie{rational normal scroll}\index{scroll!rational normal}. +In case $X$ is a plane quintic, the {\it adjunction formula\/} +(Hartshorne \cite[II.8.20.3]{Hartshorne}) +shows that the canonical embedding of $X$ is +obtained from the plane embedding by composing with the Veronese +embedding of the plane in $\P^5$ as the \ie{Veronese surface}; +and the 6 quadrics in the ideal +of the canonical curve generate the defining ideal of the +Veronese surface. + +Thus if we let $S$ denote the variety defined by the quadrics +in the ideal of $X$, we can decide whether $X$ is a +trigonal curve or a plane quintic by deciding whether $S$ is +a rational normal scroll or a Veronese surface. +To compute the ideal of $S$ we first ascertain which +of the generators of the ideal of the canonical curve +have degree 2 with +\indexcmd{positions} +\beginOutput +i76 : deg2places = positions(degrees idealXcan, i->i==\{2\})\\ +\emptyLine +o76 = \{0, 1, 2, 3, 4, 5\}\\ +\emptyLine +o76 : List\\ +\endOutput +and then compute +\beginOutput +i77 : idealS= ideal (gens idealXcan)_deg2places\\ +\emptyLine +\ 2 $\cdot\cdot\cdot$\\ +o77 = ideal (x + 5040x x - 8565x x - 11589x x , x x - 6048x x - 1 $\cdot\cdot\cdot$\\ +\ 3 0 5 2 5 4 5 1 3 0 5 $\cdot\cdot\cdot$\\ +\emptyLine +o77 : Ideal of ringP5\\ +\endOutput + +One of the scrolls that could appear is singular, the cone +over the rational quartic in $\P^4$. We check for singularity +{}first: +\beginOutput +i78 : codim singularLocus idealS\\ +\emptyLine +o78 = 6\\ +\endOutput +Since the codimension is 6, the surface $S$ is nonsingular, +and thus must be one of the nonsingular scrolls or the Veronese +surface (which is by definition the image of ${\bf P}^2$, +embedded in ${\bf P}^5$ by the linear series of conics.) + +The ideals defining any rational normal +scroll of codimension 3, and the ideal +of a Veronese surface all have free resolutions with +the same Betti diagrams, so we need a subtler method +to determine the identity of $S$. The most powerful tool +{}for such purposes is adjunction theory; we will use a +simple version. + +The idea is to compare the embedding bundle +(the ``hyperplane bundle'') with the canonical bundle. +On the Veronese surface, the canonical bundle is +the bundle associated to $-3$ lines in ${\bf P}^2$, +while the hyperplane bundle is associated to +2 lines in ${\bf P}^2$. Thus the inverse of the +square of the canonical bundle is the cube of the +hyperplane bundle, $\O_S(3)$. For a scroll on the other hand, +these two bundles are different. + +As before we follow the +homological method for computing the canonical bundle: +\beginOutput +i79 : omegaS = Ext^(codim idealS)(ringP5^1/idealS, ringP5^\{-6\})\\ +\emptyLine +o79 = cokernel \{2\} | 4032x_5 0 14811x_5 -4032x_3 6549x_3 $\cdot\cdot\cdot$\\ +\ \{2\} | x_3 x_2 x_1 -x_4 x_0-14291x_ $\cdot\cdot\cdot$\\ +\ \{2\} | -6852x_5 6549x_3 362x_5 x_1-6248x_3 0 $\cdot\cdot\cdot$\\ +\emptyLine +\ 3\\ +o79 : ringP5-module, quotient of ringP5\\ +\endOutput +\beginOutput +i80 : OS = ringP5^1/idealS\\ +\emptyLine +o80 = cokernel | x_3^2+5040x_0x_5-8565x_2x_5-11589x_4x_5 x_1x_3-6048x_ $\cdot\cdot\cdot$\\ +\emptyLine +\ 1\\ +o80 : ringP5-module, quotient of ringP5\\ +\endOutput + +We want the square of the canonical bundle, which we can compute +as the tensor square +\beginOutput +i81 : omegaS**omegaS\\ +\emptyLine +o81 = cokernel \{4\} | 4032x_5 0 14811x_5 -4032x_3 6549x_3 $\cdot\cdot\cdot$\\ +\ \{4\} | x_3 x_2 x_1 -x_4 x_0-14291x_ $\cdot\cdot\cdot$\\ +\ \{4\} | -6852x_5 6549x_3 362x_5 x_1-6248x_3 0 $\cdot\cdot\cdot$\\ +\ \{4\} | 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{4\} | 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{4\} | 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{4\} | 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{4\} | 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{4\} | 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\emptyLine +\ 9\\ +o81 : ringP5-module, quotient of ringP5\\ +\endOutput +But while this module represents the correct sheaf, it is +hard to interpret, since it may not be (is not, in this case) +the module of all twisted global sections of the square of the +line bundle. Since the free resolution of {\tt OS} +(visible inside the Betti diagram of the +resolution of {\tt idealXcan}) has length 3, +the module {\tt OS} has depth 2. Thus we can +{}find the module of all twisted global sections +of {\tt omega2S} by taking the double dual +\beginOutput +i82 : omega2S = Hom(Hom(omegaS**omegaS, OS),OS)\\ +\emptyLine +o82 = cokernel \{3\} | x_3^2+5040x_0x_5-8565x_2x_5-11589x_4x_5 x_1x_3-60 $\cdot\cdot\cdot$\\ +\emptyLine +\ 1\\ +o82 : ringP5-module, quotient of ringP5\\ +\endOutput + +We see from the output that this module is +generated by 1 element of degree 3. +It follows that +$\omega_S^2\cong \cO_S(-3)$. This in turn shows +that $S$ is the Veronese surface. + +We now know that the canonical embedding of the curve +$X$ is the Veronese map applied to a planar embedding +of $X$ of degree 5, and we can ask to see the plane embedding. +Since the {\it anticanonical bundle\/} $\omega_S^{-1}$ +on $S$ corresponds to 3 lines +in the plane and the hyperplane bundle to 2 lines, +we can recover the line bundle corresponding to 1 line, +giving +the isomorphism of $X$ to the plane, as the quotient +\beginOutput +i83 : L = Hom(omegaS, OS**(ringP5^\{-1\}))\\ +\emptyLine +o83 = subquotient (\{-1\} | 14401x_2+16185x_4 x_0-14291x_4 -5359x_1+1 $\cdot\cdot\cdot$\\ +\ \{-1\} | -1488x_1-10598x_3 -6549x_3 -11789x_5 $\cdot\cdot\cdot$\\ +\ \{-1\} | x_0+7742x_2-15779x_4 x_2 x_1+6551x_ $\cdot\cdot\cdot$\\ +\emptyLine +\ 3\\ +o83 : ringP5-module, subquotient of ringP5\\ +\endOutput +and the line bundle on {\tt Xcan} that gives the +embedding in $\P^2$ will be the restriction of {\tt L} +to {\tt Xcan}. +To realize the map from $X$ to $\P^2$, we proceed as before: +\beginOutput +i84 : dualModule = Hom(L, OS)\\ +\emptyLine +o84 = subquotient (| x_0+7742x_2-15779x_4 14401x_2+16185x_4 x_1-301x_3 $\cdot\cdot\cdot$\\ +\ | x_2 x_0-14291x_4 4032x_3 $\cdot\cdot\cdot$\\ +\ | x_1+6551x_3 -5359x_1+14409x_3 -9874x_5 $\cdot\cdot\cdot$\\ +\emptyLine +\ 3\\ +o84 : ringP5-module, subquotient of ringP5\\ +\endOutput +\beginOutput +i85 : betti generators dualModule\\ +\emptyLine +o85 = total: 3 3\\ +\ 0: 3 3\\ +\endOutput +Again, we may choose any homomorphism from {\tt L} +to {\tt OS}, for example +\beginOutput +i86 : g = homomorphism dualModule_\{0\}\\ +\emptyLine +o86 = | x_0+7742x_2-15779x_4 x_2 x_1+6551x_3 |\\ +\emptyLine +o86 : Matrix\\ +\endOutput +\beginOutput +i87 : toP2 = g*basis(0,L)\\ +\emptyLine +o87 = | x_0+7742x_2-15779x_4 x_2 x_1+6551x_3 |\\ +\emptyLine +o87 : Matrix\\ +\endOutput +\beginOutput +i88 : ringXcan = ringP5/idealXcan\\ +\emptyLine +o88 = ringXcan\\ +\emptyLine +o88 : QuotientRing\\ +\endOutput +\beginOutput +i89 : ringP2 = kk[x_0..x_2]\\ +\emptyLine +o89 = ringP2\\ +\emptyLine +o89 : PolynomialRing\\ +\endOutput +\beginOutput +i90 : idealXplane = trim kernel map(ringXcan, ringP2, \\ +\ substitute(matrix toP2,ringXcan))\\ +\emptyLine +\ 5 4 3 2 2 3 4 5 $\cdot\cdot\cdot$\\ +o90 = ideal(x + 13394x x - 13014x x + 9232x x + 12418x x - 2746x $\cdot\cdot\cdot$\\ +\ 0 0 1 0 1 0 1 0 1 1 $\cdot\cdot\cdot$\\ +\emptyLine +o90 : Ideal of ringP2\\ +\endOutput + +We have effectively computed the square root of the line bundle +embedding $X$ in $\P^3$ with which we started, and exchanged a messy +set of defining equations of an unknown scheme for a single equation +defining a smooth plane curve whose properties are easy to deduce. +The same curve may also be defined by a much simpler plane equation +(see Appendix \ref{How} below). I do not know any general method for choosing +a coordinate transformation to simplify a given equation! Can the +reader find one that will work at least in this case? + +There is not yet a textbook-level exposition of the +sort of methods we have used +(although an introduction +will be contained in a forthcoming elementary book +of Decker and Schreyer). +The reader who would like to go further into +such ideas can find a high-level survey of how adjunction theory +is used +in the paper of Decker and Schreyer \cite{ds}. +For a group of powerful methods with a different flavor, +see Aure, Decker, Hulek, Popescu, and +Ranestad \cite{adhpr}. + + +\appendix + +\section{How the ``Mystery Variety'' was Made}\label{How} + +{}For those who would like to try out the +computations above over a different field (perhaps the +{}field of rational numbers {\tt QQ}), +and for the curious, we include the code +used to produce the equations of the variety $X$ above. + +Start with the Fermat quintic in the plane +\beginOutput +i91 : ringP2 = kk[x_0..x_2]\\ +\emptyLine +o91 = ringP2\\ +\emptyLine +o91 : PolynomialRing\\ +\endOutput +\beginOutput +i92 : idealC2 = ideal(x_0^5+x_1^5+x_2^5)\\ +\emptyLine +\ 5 5 5\\ +o92 = ideal(x + x + x )\\ +\ 0 1 2\\ +\emptyLine +o92 : Ideal of ringP2\\ +\endOutput +Embed it by the Veronese map in $\P^5$: +\beginOutput +i93 : ringC2 = ringP2/idealC2\\ +\emptyLine +o93 = ringC2\\ +\emptyLine +o93 : QuotientRing\\ +\endOutput +\beginOutput +i94 : ringP5 = kk[x_0..x_5]\\ +\emptyLine +o94 = ringP5\\ +\emptyLine +o94 : PolynomialRing\\ +\endOutput +\beginOutput +i95 : idealC5 = trim kernel map(ringC2, ringP5, \\ +\ gens (ideal vars ringC2)^2)\\ +\emptyLine +\ 2 2 $\cdot\cdot\cdot$\\ +o95 = ideal (x - x x , x x - x x , x x - x x , x - x x , x x - x $\cdot\cdot\cdot$\\ +\ 4 3 5 2 4 1 5 2 3 1 4 2 0 5 1 2 0 $\cdot\cdot\cdot$\\ +\emptyLine +o95 : Ideal of ringP5\\ +\endOutput +{}Finally, choose a projection into $\P^3$, from a line not meeting +{\tt C5}, which is an isomorphism +onto its image. (This requires the image to be a smooth curve +of degree 10). +\beginOutput +i96 : ringC5 = ringP5/idealC5\\ +\emptyLine +o96 = ringC5\\ +\emptyLine +o96 : QuotientRing\\ +\endOutput +\beginOutput +i97 : use ringC5\\ +\emptyLine +o97 = ringC5\\ +\emptyLine +o97 : QuotientRing\\ +\endOutput +\beginOutput +i98 : idealC = trim kernel map(ringC5, ringP3,\\ +\ matrix\{\{x_0+x_1,x_2,x_3,x_5\}\})\\ +\emptyLine +\ 4 2 2 2 2 2 2 2 $\cdot\cdot\cdot$\\ +o98 = ideal (x - 2x x x - x x x + x x , x x - 10915x x x - 10917x $\cdot\cdot\cdot$\\ +\ 1 0 1 3 1 2 3 0 3 0 1 0 1 2 $\cdot\cdot\cdot$\\ +\emptyLine +o98 : Ideal of ringP3\\ +\endOutput +Let's check that this is the same ideal as that of the mystery variety. +\beginOutput +i99 : idealC == idealX\\ +\emptyLine +o99 = true\\ +\endOutput +Here is the code of the function {\tt mystery}, which does the steps above. +\beginOutput +i100 : code mystery\\ +\emptyLine +o100 = -- mystery.m2:1-13\\ +\ mystery = ringP3 -> (\\ +\ kk := coefficientRing ringP3;\\ +\ x := local x;\\ +\ ringP2 := kk[x_0..x_2];\\ +\ idealC2 := ideal(x_0^5+x_1^5+x_2^5);\\ +\ ringC2 := ringP2/idealC2;\\ +\ ringP5 := kk[x_0..x_5];\\ +\ idealC5 := trim kernel map(ringC2, ringP5, \\ +\ gens (ideal vars ringC2)^2);\\ +\ ringC5 := ringP5/idealC5;\\ +\ use ringC5;\\ +\ trim kernel map(ringC5, ringP3,\\ +\ matrix\{\{x_0+x_1,x_2,x_3,x_5\}\}))\\ +\endOutput +And here is the code of the function {\tt prettyPrint}. +\beginOutput +i101 : code prettyPrint\\ +\emptyLine +o101 = -- mystery.m2:15-51\\ +\ prettyPrint = f -> (\\ +\ -- accept a matrix f and print its entries prettily,\\ +\ -- separated by commas\\ +\ wid := 74;\\ +\ -- page width\\ +\ post := (c,s) -> (\\ +\ -- This function concatenates string c to end of each\\ +\ -- string in list s except the last one\\ +\ concatenate {\char`\\} pack_2 between_c s);\\ +\ strings := post_"," (toString {\char`\\} flatten entries f);\\ +\ -- list of strings, one for each polynomial, with commas\\ +\ istate := ("",0);\\ +\ -- initial state = (out : output string, col : column number)\\ +\ strings = apply(\\ +\ strings,\\ +\ poly -> first fold(\\ +\ -- break each poly into lines\\ +\ (state,term) -> (\\ +\ (out,col) -> (\\ +\ if col + #term > wid -- too wide?\\ +\ then (\\ +\ out = out | "{\char`\\}n "; \\ +\ col = 3;\\ +\ -- insert line break\\ +\ );\\ +\ (out | term, col + #term) -- new state\\ +\ )\\ +\ ) state,\\ +\ istate,\\ +\ fold( -- separate poly into terms \\ +\ \{"+","-"\},\\ +\ \{poly\},\\ +\ (delimiter,poly) -> flatten( \\ +\ post_delimiter {\char`\\} separate_delimiter {\char`\\} poly\\ +\ ))));\\ +\ print stack strings; -- stack them vertically, then print\\ +\ )\\ +\endOutput + +% \end +\begin{thebibliography}{10} + +\bibitem{ak} +Allen Altman and Steven Kleiman: +\newblock {\em Introduction to {G}rothendieck duality theory}. +\newblock Springer-Verlag, Berlin, 1970. +\newblock Lecture Notes in Mathematics, Vol. 146. + +\bibitem{adhpr} +Alf Aure, Wolfram Decker, Klaus Hulek, Sorin Popescu, and Kristian Ranestad: +\newblock Syzygies of abelian and bielliptic surfaces in ${\bf {p}}\sp 4$. +\newblock {\em Internat. J. Math.}, 8(7):849--919, 1997. + +\bibitem{ds} +Wolfram Decker and Frank-Olaf Schreyer: +\newblock Non-general type surfaces in ${\bf {p}}\sp 4$: some remarks on bounds + and constructions. +\newblock {\em J. Symbolic Comput.}, 29(4-5):545--582, 2000. +\newblock Symbolic computation in algebra, analysis, and geometry (Berkeley, + CA, 1998). + +\bibitem{eCA} +David Eisenbud: +\newblock {\em Commutative algebra}. +\newblock Springer-Verlag, New York, 1995. +\newblock With a view toward algebraic geometry. + +\bibitem{gl} +Mark Green and Robert Lazarsfeld: +\newblock On the projective normality of complete linear series on an algebraic + curve. +\newblock {\em Invent. Math.}, 83(1):73--90, 1985. + +\bibitem{Harris} +Joe Harris: +\newblock {\em Algebraic geometry}. +\newblock Springer-Verlag, New York, 1995. +\newblock A first course, Corrected reprint of the 1992 original. + +\bibitem{Hartshorne} +Robin Hartshorne: +\newblock {\em Algebraic geometry}. +\newblock Springer-Verlag, New York, 1977. +\newblock Graduate Texts in Mathematics, No. 52. + +\bibitem{s-d} +B.~Saint-Donat: +\newblock On {P}etri's analysis of the linear system of quadrics through a + canonical curve. +\newblock {\em Math. Ann.}, 206:157--175, 1973. + +\bibitem{s} +Frank-Olaf Schreyer: +\newblock Syzygies of canonical curves and special linear series. +\newblock {\em Math. Ann.}, 275(1):105--137, 1986. + +\bibitem{s1} +Frank-Olaf Schreyer: +\newblock A standard basis approach to syzygies of canonical curves. +\newblock {\em J. Reine Angew. Math.}, 421:83--123, 1991. + +\bibitem{Serre} +Jean-Pierre Serre: +\newblock {\em Alg\`ebre locale. {M}ultiplicit\'es}. +\newblock Springer-Verlag, Berlin, 1965. +\newblock Cours au Coll\`ege de France, 1957--1958, r\'edig\'e par Pierre + Gabriel. Seconde \'edition, 1965. Lecture Notes in Mathematics, 11. + +\end{thebibliography} + \egroup + \makeatletter + \renewcommand\thesection{\@arabic\c@section} + \makeatother + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% +%%%%% ../chapters/programming/chapter-m2.tex and ../chapters/programming/chapter-wrapper.bbl +%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + \bgroup +\title{Data Types, Functions, and Programming} +\titlerunning{Data Types, Functions, and Programming} +\toctitle{Data Types, Functions, and Programming} +\author{Daniel R. Grayson% + \thanks{Supported by NSF grant DMS 99-70085.} + % \inst 1 + \and Michael E. Stillman% + %\inst 2 + %\fnmsep + \thanks{Supported by NSF grant 99-70348.}} +\authorrunning{D. R. Grayson and M. E. Stillman} +% \institute{University of Illinois at Urbana-Champaign, Department of +% Mathematics, Urbana, IL 61801, USA +% \and Cornell University, Department of Mathematics, Ithaca, NY 14853, USA} + +\maketitle + +\begin{abstract} + In this chapter we present an introduction to the structure of \Mtwo + commands and the writing of functions in the \Mtwo language. For further details + see the \Mtwo manual distributed with the program~\cite{M2}. +\end{abstract} + +\section{Basic Data Types} + +The basic \ie{data types} of \Mtwo include numbers of various types (integers, +rational numbers, floating point numbers, complex numbers), lists (basic +lists, and three types of visible lists, depending on the delimiter used), +hash tables, strings of characters (both 1-dimensional and 2-dimensional), +Boolean values (true and false), symbols, and functions. Higher level types +useful in mathematics are derived from these basic types using facilities +provided in the \Mtwo language. Except for the simplest types (integers and +Boolean values), \Mtwo normally displays the type of the output value on a +second labeled output line. + +Symbols\index{symbols} have a name which consists of letters, digits, or apostrophes, the +first of which is a letter. Values can be assigned to symbols and recalled +later. +\beginOutput +i1 : w\\ +\emptyLine +o1 = w\\ +\emptyLine +o1 : Symbol\\ +\endOutput +\beginOutput +i2 : w = 2^100\\ +\emptyLine +o2 = 1267650600228229401496703205376\\ +\endOutput +\beginOutput +i3 : w\\ +\emptyLine +o3 = 1267650600228229401496703205376\\ +\endOutput +Multiple values can be assigned in parallel. +\beginOutput +i4 : (w,w') = (33,44)\\ +\emptyLine +o4 = (33, 44)\\ +\emptyLine +o4 : Sequence\\ +\endOutput +\beginOutput +i5 : w\\ +\emptyLine +o5 = 33\\ +\endOutput +\beginOutput +i6 : w'\\ +\emptyLine +o6 = 44\\ +\endOutput +Comments are initiated by {\tt --} and extend to the end of the line. +\beginOutput +i7 : (w,w') = (33, -- this is a comment\\ +\ 44)\\ +\emptyLine +o7 = (33, 44)\\ +\emptyLine +o7 : Sequence\\ +\endOutput +Strings\index{strings} of characters are delimited by quotation marks. +\beginOutput +i8 : w = "abcdefghij"\\ +\emptyLine +o8 = abcdefghij\\ +\endOutput +They may be joined horizontally to make longer strings, or vertically to make +a two-dimensional version called a {\sl net}. +\beginOutput +i9 : w | w\\ +\emptyLine +o9 = abcdefghijabcdefghij\\ +\endOutput +\beginOutput +i10 : w || w\\ +\emptyLine +o10 = abcdefghij\\ +\ abcdefghij\\ +\endOutput +Nets are used in the preparation of two dimensional output for polynomials. + +Floating point numbers are distinguished from integers by the presence of a +decimal point, and rational numbers are entered as fractions. +\beginOutput +i11 : 2^100\\ +\emptyLine +o11 = 1267650600228229401496703205376\\ +\endOutput +\beginOutput +i12 : 2.^100\\ +\emptyLine +o12 = 1.26765 10^30\\ +\emptyLine +o12 : RR\\ +\endOutput +\beginOutput +i13 : (36 + 1/8)^6\\ +\emptyLine +\ 582622237229761\\ +o13 = ---------------\\ +\ 262144\\ +\emptyLine +o13 : QQ\\ +\endOutput +Parentheses, braces, and brackets are used as delimiters for the three types +of {\em \ie{visible lists}}: \ie{lists}, \ie{sequences}, and \ie{arrays}. +\beginOutput +i14 : x1 = \{1,a\}\\ +\emptyLine +o14 = \{1, a\}\\ +\emptyLine +o14 : List\\ +\endOutput +\beginOutput +i15 : x2 = (2,b)\\ +\emptyLine +o15 = (2, b)\\ +\emptyLine +o15 : Sequence\\ +\endOutput +\beginOutput +i16 : x3 = [3,c,d,e]\\ +\emptyLine +o16 = [3, c, d, e]\\ +\emptyLine +o16 : Array\\ +\endOutput +Even though they use braces, lists should not be confused with sets, which will be treated later. +A double period can be used to construct a sequence of consecutive elements in various contexts. +\beginOutput +i17 : 1 .. 6\\ +\emptyLine +o17 = (1, 2, 3, 4, 5, 6)\\ +\emptyLine +o17 : Sequence\\ +\endOutput +\beginOutput +i18 : a .. f\\ +\emptyLine +o18 = (a, b, c, d, e, f)\\ +\emptyLine +o18 : Sequence\\ +\endOutput +Lists can be nested. +\beginOutput +i19 : xx = \{x1,x2,x3\}\\ +\emptyLine +o19 = \{\{1, a\}, (2, b), [3, c, d, e]\}\\ +\emptyLine +o19 : List\\ +\endOutput +The number of entries in a list is provided by {\tt \#}. +\beginOutput +i20 : #xx\\ +\emptyLine +o20 = 3\\ +\endOutput +The entries in a list are numbered starting with 0, and can be recovered with +{\tt \#} used as a binary operator. +\beginOutput +i21 : xx#0\\ +\emptyLine +o21 = \{1, a\}\\ +\emptyLine +o21 : List\\ +\endOutput +\beginOutput +i22 : xx#0#1\\ +\emptyLine +o22 = a\\ +\emptyLine +o22 : Symbol\\ +\endOutput +We can join visible lists and {\sl append} or {\sl prepend} an element to a visible +list. The output will be the same type of visible list that was provided in +the input: a list, a sequence, or an array; if the arguments are various +types of lists, the output will be same type as the first argument. +\beginOutput +i23 : join(x1,x2,x3)\\ +\emptyLine +o23 = \{1, a, 2, b, 3, c, d, e\}\\ +\emptyLine +o23 : List\\ +\endOutput +\index{lists!joining}\indexcmd{join}% +\beginOutput +i24 : append(x3,f)\\ +\emptyLine +o24 = [3, c, d, e, f]\\ +\emptyLine +o24 : Array\\ +\endOutput +\index{lists!appending}\indexcmd{append}% +\beginOutput +i25 : prepend(f,x3)\\ +\emptyLine +o25 = [f, 3, c, d, e]\\ +\emptyLine +o25 : Array\\ +\endOutput +\index{lists!prepending}\indexcmd{prepend}% +Use {\tt sum} or {\tt product} to produce the sum or product of all the +elements in a list. +\beginOutput +i26 : sum \{1,2,3,4\}\\ +\emptyLine +o26 = 10\\ +\endOutput +\indexcmd{sum}% +\beginOutput +i27 : product \{1,2,3,4\}\\ +\emptyLine +o27 = 24\\ +\endOutput +\indexcmd{product}% + + +\section{Control Structures} + +Commands for later execution are encapsulated in {\sl \ie{functions}}. A function +is created using the operator {\tt -\char`\>}\indexcmd{->} to separate the parameter or +sequence of parameters from the code to be executed later. Let's try an +elementary example of a function with two arguments. +\beginOutput +i28 : f = (x,y) -> 1000 * x + y\\ +\emptyLine +o28 = f\\ +\emptyLine +o28 : Function\\ +\endOutput +The parameters {\tt x} and {\tt y} are symbols that will acquire a +value later when the function is executed. They are {\sl local}\index{variables!local} in the sense that +they are completely different from any symbols with the same name that occur +elsewhere. Additional local variables for use within the body of a function +can be created by assigning a value to them with {\tt \char`\:\char`\=} +\indexcmd{:=} +(first time only). We illustrate this by rewriting the function above. +\beginOutput +i29 : f = (x,y) -> (z := 1000 * x; z + y)\\ +\emptyLine +o29 = f\\ +\emptyLine +o29 : Function\\ +\endOutput +Let's apply the function to some arguments. +\beginOutput +i30 : f(3,7)\\ +\emptyLine +o30 = 3007\\ +\endOutput +The sequence of arguments can be assembled first, and then passed to the +function. +\beginOutput +i31 : s = (3,7)\\ +\emptyLine +o31 = (3, 7)\\ +\emptyLine +o31 : Sequence\\ +\endOutput +\beginOutput +i32 : f s\\ +\emptyLine +o32 = 3007\\ +\endOutput +As above, functions receiving one argument may be called without parentheses. +\beginOutput +i33 : sin 2.1\\ +\emptyLine +o33 = 0.863209\\ +\emptyLine +o33 : RR\\ +\endOutput +A compact notation for functions makes it convenient to apply them +without naming them first. For example, we may use \indexcmd{apply}{\tt apply} to apply a +function to every element of a list and to collect the results into a list. +\beginOutput +i34 : apply(1 .. 10, i -> i^3)\\ +\emptyLine +o34 = (1, 8, 27, 64, 125, 216, 343, 512, 729, 1000)\\ +\emptyLine +o34 : Sequence\\ +\endOutput +The function \indexcmd{scan}{\tt scan} will do the same thing, but discard the results. +\beginOutput +i35 : scan(1 .. 5, print)\\ +1\\ +2\\ +3\\ +4\\ +5\\ +\endOutput +Use \indexcmd{if}{\tt if ... then ... else ...} to perform alternative actions +based on the truth of a condition. +\beginOutput +i36 : apply(1 .. 10, i -> if even i then 1000*i else i)\\ +\emptyLine +o36 = (1, 2000, 3, 4000, 5, 6000, 7, 8000, 9, 10000)\\ +\emptyLine +o36 : Sequence\\ +\endOutput +A function can be terminated prematurely with \indexcmd{return}{\tt return}. +\beginOutput +i37 : apply(1 .. 10, i -> (if even i then return 1000*i; -i))\\ +\emptyLine +o37 = (-1, 2000, -3, 4000, -5, 6000, -7, 8000, -9, 10000)\\ +\emptyLine +o37 : Sequence\\ +\endOutput +Loops in a program can be implemented with \indexcmd{while}{\tt while ... do ...}. +\beginOutput +i38 : i = 1; while i < 50 do (print i; i = 2*i)\\ +1\\ +2\\ +4\\ +8\\ +16\\ +32\\ +\endOutput +Another way to implement loops is with \indexcmd{for}{\tt for} and +\indexcmd{do}{\tt do} or {\tt list}, with optional +clauses introduced by the keywords {\tt from}, {\tt to}, and {\tt when}. +\beginOutput +i40 : for i from 1 to 10 list i^3\\ +\emptyLine +o40 = \{1, 8, 27, 64, 125, 216, 343, 512, 729, 1000\}\\ +\emptyLine +o40 : List\\ +\endOutput +\beginOutput +i41 : for i from 1 to 4 do print i\\ +1\\ +2\\ +3\\ +4\\ +\endOutput +A loop can be terminated prematurely with \indexcmd{break}{\tt break}, which accepts an +optional value to return as the value of the loop expression. +\beginOutput +i42 : for i from 2 to 100 do if not isPrime i then break i\\ +\emptyLine +o42 = 4\\ +\endOutput +If no value needs to be returned, the condition for continuing can be +provided with the keyword {\tt when}; iteration continues only as long as the +predicate following the keyword returns {\tt true}. +\beginOutput +i43 : for i from 2 to 100 when isPrime i do print i\\ +2\\ +3\\ +\endOutput + + +% if then else, while do, for, break, return, + +\section{Input and Output} + +The function \indexcmd{print}{\tt print} can be used to display something on the screen. +\beginOutput +i44 : print 2^100\\ +1267650600228229401496703205376\\ +\endOutput +For example, it could be used to display the elements of a list on separate +lines. +\beginOutput +i45 : (1 .. 5) / print;\\ +1\\ +2\\ +3\\ +4\\ +5\\ +\endOutput +The operator {\tt <<} can be used to display something on the +screen, without the newline character. +\beginOutput +i46 : << 2^100\\ +1267650600228229401496703205376\\ +o46 = stdio\\ +\emptyLine +o46 : File\\ +\emptyLine +\ -- the standard input output file\\ +\endOutput +Notice the value returned is a {\em file}\index{files}. A {\em file} in \Mtwo is a data type that +represents a channel through which data can be passed, as input, as +output, or in both directions. The file \indexcmd{stdio}{\tt stdio} encountered above +corresponds to your shell window or terminal, and is used for two-way +communication between the program and the user. A file may correspond +to what one usually calls a file, i.e., a sequence of data bytes associated +with a given name and stored on +your disk drive. A file may also correspond to a {\em socket}, a +channel for communication with other programs over the network. + +Files can be used with the binary form +of the operator {\tt \char`\<\char`\<} to display something else on the same +line. +\beginOutput +i47 : << "the value is : " << 2^100\\ +the value is : 1267650600228229401496703205376\\ +o47 = stdio\\ +\emptyLine +o47 : File\\ +\emptyLine +\ -- the standard input output file\\ +\endOutput +Using \indexcmd{endl}{\tt endl} to represent the new line character or character sequence, we can +produce multiple lines of output. +\beginOutput +i48 : << "A = " << 2^100 << endl << "B = " << 2^200 << endl;\\ +A = 1267650600228229401496703205376\\ +B = 1606938044258990275541962092341162602522202993782792835301376\\ +\endOutput +We can send the same output to a disk file named {\tt foo}, but we must remember to +close it with {\tt close}. +\beginOutput +i49 : "foo" << "A = " << 2^100 << endl << close\\ +\emptyLine +o49 = foo\\ +\emptyLine +o49 : File\\ +\endOutput +The contents of the file can be recovered as a string with \indexcmd{get}{\tt get}. +\beginOutput +i50 : get "foo"\\ +\emptyLine +o50 = A = 1267650600228229401496703205376\\ +\emptyLine +\endOutput +If the file contains valid \Mtwo commands, as it does in this case, we can +execute those commands with \indexcmd{load}{\tt load}. +\beginOutput +i51 : load "foo"\\ +\endOutput +We can verify that the command took effect by evaluating {\tt A}. +\beginOutput +i52 : A\\ +\emptyLine +o52 = 1267650600228229401496703205376\\ +\endOutput +Alternatively, if we want to see those commands and the output they produce, +we may use \indexcmd{input}{\tt input}. +\beginOutput +i53 : input "foo"\\ +\emptyLine +i54 : A = 1267650600228229401496703205376\\ +\emptyLine +o54 = 1267650600228229401496703205376\\ +\emptyLine +i55 : \endOutput +Let's set up a ring for computation in \Mtwo. +\beginOutput +i56 : R = QQ[x,y,z]\\ +\emptyLine +o56 = R\\ +\emptyLine +o56 : PolynomialRing\\ +\endOutput +\index{ring!making one}% +\beginOutput +i57 : f = (x+y)^3\\ +\emptyLine +\ 3 2 2 3\\ +o57 = x + 3x y + 3x*y + y\\ +\emptyLine +o57 : R\\ +\endOutput +Printing, and printing to files, works for polynomials, +too.\index{printing!to a file}% +\beginOutput +i58 : "foo" << f << close;\\ +\endOutput +The two-dimensional output is readable by humans, but is not easy to convert +back into a polynomial. +\beginOutput +i59 : get "foo"\\ +\emptyLine +o59 = 3 2 2 3\\ +\ x + 3x y + 3x*y + y\\ +\endOutput +Use \indexcmd{toString}{\tt toString} to create a 1-dimensional form of the polynomial +that can be stored in a file in a format readable by \Mtwo and by other +symbolic algebra programs, such as {\em Mathematica} or {\em Maple}. +\beginOutput +i60 : toString f\\ +\emptyLine +o60 = x^3+3*x^2*y+3*x*y^2+y^3\\ +\endOutput +Send it to the file. +\beginOutput +i61 : "foo" << toString f << close;\\ +\endOutput +Get it back. +\beginOutput +i62 : get "foo"\\ +\emptyLine +o62 = x^3+3*x^2*y+3*x*y^2+y^3\\ +\endOutput +Convert the string back to a polynomial with \indexcmd{value}{\tt value}, using \indexcmd{oo}{\tt oo} to +recover the value of the expression on the previous line. +\beginOutput +i63 : value oo\\ +\emptyLine +\ 3 2 2 3\\ +o63 = x + 3x y + 3x*y + y\\ +\emptyLine +o63 : R\\ +\endOutput +The same thing works for matrices, and a little more detail is provided by +\indexcmd{toExternalString}{\tt toExternalString}, if needed. +\beginOutput +i64 : vars R\\ +\emptyLine +o64 = | x y z |\\ +\emptyLine +\ 1 3\\ +o64 : Matrix R <--- R\\ +\endOutput +\beginOutput +i65 : toString vars R\\ +\emptyLine +o65 = matrix \{\{x, y, z\}\}\\ +\endOutput +\beginOutput +i66 : toExternalString vars R\\ +\emptyLine +o66 = map(R^\{\{0\}\}, R^\{\{-1\}, \{-1\}, \{-1\}\}, \{\{x, y, z\}\})\\ +\endOutput + +\section{Hash Tables} + +Recall how one sets up a quotient ring for computation in \Mtwo. +\beginOutput +i67 : R = QQ[x,y,z]/(x^3-y)\\ +\emptyLine +o67 = R\\ +\emptyLine +o67 : QuotientRing\\ +\endOutput +\beginOutput +i68 : (x+y)^4\\ +\emptyLine +\ 2 2 3 4 2\\ +o68 = 6x y + 4x*y + y + x*y + 4y\\ +\emptyLine +o68 : R\\ +\endOutput +How does \Mtwo represent a ring like $R$ in the computer? To answer that, +first think about what sort of information needs to be retained about $R$. +We may need to remember the coefficient ring of $R$, the names of the +variables in $R$, the monoid of monomials in the variables, the degrees of +the variables, the characteristic of the ring, whether the ring is +commutative, the ideal modulo which we are working, and so on. We also may +need to remember various bits of code: the code for performing the basic +arithmetic operations, such as addition and multiplication, on elements of +$R$; the code for preparing a readable representation of an element of $R$, +either 2-dimensional (with superscripts above the line and subscripts below), +or 1-dimensional. Finally, we may want to remember certain things that take +a lot of time to compute, such as the Gr\"obner basis of the ideal. + +A {\sl \ie{hash table}} is, by definition, a way of representing (in the computer) +a function whose domain is a finite set. In \Mtwo, hash tables are extremely +flexible: the elements of the domain (or {\sl keys\index{keys of a hash table}}) and the elements of the +range (or {\sl values\index{values of a hash table}}) of the function may be any of the other objects +represented in the computer. It's easy to come up with uses for functions +whose domain is finite: for example, a monomial can be represented by the +function that associates to a variable its nonzero exponent; a polynomial can +be represented by a function that associates to a monomial its nonzero +coefficient; a set can be represented by any function with that set as its +domain; a (sparse) matrix can be represented as a function from pairs of +natural numbers to the corresponding nonzero entry. + +Let's create a hash table and name it. +\beginOutput +i69 : f = new HashTable from \{ a=>444, Daniel=>555, \{c,d\}=>\{1,2,3,4\}\}\\ +\emptyLine +o69 = HashTable\{\{c, d\} => \{1, 2, 3, 4\}\}\\ +\ a => 444\\ +\ Daniel => 555\\ +\emptyLine +o69 : HashTable\\ +\endOutput +The operator \indexcmd{=>}{\tt \char`\=\char`\>} is used to represent a key-value pair. +We can use the operator \indexcmd{\#}{\tt \#} to recover the value from the key. +\beginOutput +i70 : f#Daniel\\ +\emptyLine +o70 = 555\\ +\endOutput +\beginOutput +i71 : f#\{c,d\}\\ +\emptyLine +o71 = \{1, 2, 3, 4\}\\ +\emptyLine +o71 : List\\ +\endOutput +If the key is a symbol, we can use the operator \indexcmd{.}{\tt .} instead; this is +convenient if the symbol has a value that we want to ignore. +\beginOutput +i72 : Daniel = a\\ +\emptyLine +o72 = a\\ +\emptyLine +o72 : Symbol\\ +\endOutput +\beginOutput +i73 : f.Daniel\\ +\emptyLine +o73 = 555\\ +\endOutput +We can use \indexcmd{\#?}{\tt \#?} to test whether a given key occurs in the hash table. +\beginOutput +i74 : f#?a\\ +\emptyLine +o74 = true\\ +\endOutput +\beginOutput +i75 : f#?c\\ +\emptyLine +o75 = false\\ +\endOutput +Finite sets are implemented in \Mtwo as hash tables: the elements of the set +are stored as the keys in the hash table, with the accompanying values all +being $1$. (Multisets are implemented by using values larger than $1$, and +are called {\sl tallies}.) +\beginOutput +i76 : x = set\{1,a,\{4,5\},a\}\\ +\emptyLine +o76 = Set \{\{4, 5\}, 1, a\}\\ +\emptyLine +o76 : Set\\ +\endOutput +\indexcmd{set}% +\beginOutput +i77 : x#?a\\ +\emptyLine +o77 = true\\ +\endOutput +\beginOutput +i78 : peek x\\ +\emptyLine +o78 = Set\{\{4, 5\} => 1\}\\ +\ 1 => 1\\ +\ a => 1\\ +\endOutput +\beginOutput +i79 : y = tally\{1,a,\{4,5\},a\}\\ +\emptyLine +o79 = Tally\{\{4, 5\} => 1\}\\ +\ 1 => 1\\ +\ a => 2\\ +\emptyLine +o79 : Tally\\ +\endOutput +\beginOutput +i80 : y#a\\ +\emptyLine +o80 = 2\\ +\endOutput +We might use \indexcmd{tally}{\tt tally} to tally how often a function attains its various +possible values. For example, how often does an integer have 3 prime +factors? Or 4? Use \indexcmd{factor}{\tt factor} to factor an integer. +\beginOutput +i81 : factor 60\\ +\emptyLine +\ 2\\ +o81 = 2 3*5\\ +\emptyLine +o81 : Product\\ +\endOutput +Then use {\tt \#} to get the number of factors. +\beginOutput +i82 : # factor 60\\ +\emptyLine +o82 = 3\\ +\endOutput +Use {\tt apply} to list some values of the function. +\beginOutput +i83 : apply(2 .. 1000, i -> # factor i)\\ +\emptyLine +o83 = (1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, $\cdot\cdot\cdot$\\ +\emptyLine +o83 : Sequence\\ +\endOutput +Finally, use {\tt tally} to summarize the results. +\beginOutput +i84 : tally oo\\ +\emptyLine +o84 = Tally\{1 => 193\}\\ +\ 2 => 508\\ +\ 3 => 275\\ +\ 4 => 23\\ +\emptyLine +o84 : Tally\\ +\endOutput + +Hash tables turn out to be convenient entities for storing odd bits and +pieces of information about something in a way that's easy to think about and +use. +In \Mtwo, rings are represented as hash tables, as are ideals, matrices, +modules, chain complexes, and so on. For example, although it isn't a +documented feature, the key {\tt ideal} is used to preserve the ideal that +was used above to define the quotient ring {\tt R}, as part of the +information stored in {\tt R}. +\beginOutput +i85 : R.ideal\\ +\emptyLine +\ 3\\ +o85 = ideal(x - y)\\ +\emptyLine +o85 : Ideal of QQ [x, y, z]\\ +\endOutput +The preferred and documented way for a user to recover this information is +with the function \indexcmd{ideal}{\tt ideal}. +\beginOutput +i86 : ideal R\\ +\emptyLine +\ 3\\ +o86 = ideal(x - y)\\ +\emptyLine +o86 : Ideal of QQ [x, y, z]\\ +\endOutput +Users who want to introduce a new high-level mathematical +concept to \Mtwo may learn about hash tables by referring to the \Mtwo manual +\cite{M2}. + +\section{Methods} + +You may use the \texttt{code}\indexcmd{code} command to locate the source code for a given +function, at least if it is one of those functions written in the \Mtwo +language. For example, here is the code for {\tt demark}, which may be used +to put commas between strings in a list. +\beginOutput +i87 : code demark\\ +\emptyLine +o87 = -- ../../../m2/fold.m2:23\\ +\ demark = (s,v) -> concatenate between(s,v)\\ +\endOutput +The code for tensoring a ring map with a module can be displayed in this way. +\beginOutput +i88 : code(symbol **, RingMap, Module)\\ +\emptyLine +o88 = -- ../../../m2/ringmap.m2:294-298\\ +\ RingMap ** Module := Module => (f,M) -> (\\ +\ R := source f;\\ +\ S := target f;\\ +\ if R =!= ring M then error "expected module over source ring";\\ +\ cokernel f(presentation M));\\ +\endOutput +\indexcmd{symbol} +The code implementing the {\tt ideal} function when applied to a +quotient ring can be displayed as follows. +\beginOutput +i89 : code(ideal, QuotientRing)\\ +\emptyLine +o89 = -- ../../../m2/quotring.m2:7\\ +\ ideal QuotientRing := R -> R.ideal\\ +\endOutput +Notice that it uses the key {\tt ideal} to extract the information from the +ring's hash table, as you might have guessed from the previous discussion. +The bit of code displayed above may be called a {\sl method}\index{method} as +a way of indicating that several methods for dealing with various types of +arguments are attached to the function named {\tt ideal}. New such {\sl + method functions} may be created with the function {\tt method}\indexcmd{method}. Let's +illustrate that with an example: we'll write a function called {\tt denom} +which should produce the denominator of a rational number. When applied to +an integer, it should return 1. First we create the method function. +\beginOutput +i90 : denom = method();\\ +\endOutput +Then we tell it what to do with an argument from the class {\tt QQ} of rational numbers. +\beginOutput +i91 : denom QQ := x -> denominator x;\\ +\endOutput +And also what to do with an argument from the class {\tt ZZ} of integers. +\beginOutput +i92 : denom ZZ := x -> 1;\\ +\endOutput +Let's test it. +\beginOutput +i93 : denom(5/3)\\ +\emptyLine +o93 = 3\\ +\endOutput +\beginOutput +i94 : denom 5\\ +\emptyLine +o94 = 1\\ +\endOutput + +\section{Pointers to the Source Code} + +A substantial part of \Mtwo is written in the same language provided to the +users. A good way to learn more about the \Mtwo language is to peruse the +source code that comes with the system in the directory {\tt Macaulay2/m2}. +Use the {\tt code} function, as described in the previous section, for +locating the bit of code you wish to view. + +The source code for the interpreter of the \Mtwo language is in the directory +{\tt Macaulay2/d}. It is written in another language designed to be mostly +type-safe, which is translated into {\tt C} by the translator whose own +{\tt C} source code is in the directory {\tt Macaulay2/c}. Here is a +sample line of code from the file {\tt Macaulay2/d/tokens.d}, which shows how +the translator provides for allocation and initialization of dynamic data +structures. +\par +\vskip 5 pt +\begingroup +\tteight +\baselineskip=8pt +\lineskip=0pt +\obeyspaces +globalFrame := Frame(dummyFrame,globalScope.seqno,Sequence(nullE));\leavevmode\hss\endgraf +\endgroup +\penalty-1000 +\par +\vskip 1 pt +\noindent +And here is the {\tt C} code produced by the translator. +\par +\vskip 5 pt +\begingroup +\tteight +\baselineskip=\outputBaseLineSkip +\lineskip=0pt +\obeyspaces +\obeylines +tokens\char`\_Frame tokens\char`\_globalFrame; +tokens\char`\_Frame tmp\char`\_\char`\_23; +Sequence tmp\char`\_\char`\_24; +tmp\char`\_\char`\_24 = (Sequence) GC\char`\_MALLOC(sizeof(struct S259\char`\_)+(1-1)*sizeof(Expr)); +if (0 == tmp\char`\_\char`\_24) outofmem(); +tmp\char`\_\char`\_24->len\char`\_ = 1; +tmp\char`\_\char`\_24->array\char`\_[0] = tokens\char`\_nullE; +tmp\char`\_\char`\_23 = (tokens\char`\_Frame) GC\char`\_MALLOC(sizeof(struct S260\char`\_)); +if (0 == tmp\char`\_\char`\_23) outofmem(); +tmp\char`\_\char`\_23->next = tokens\char`\_dummyFrame; +tmp\char`\_\char`\_23->scopenum = tokens\char`\_globalScope->seqno; +tmp\char`\_\char`\_23->values = tmp\char`\_\char`\_24; +tokens\char`\_globalFrame = tmp\char`\_\char`\_23; +\endgroup +\penalty-1000 +\par +\vskip 1 pt + +The core algebraic algorithms constitute the {\sl engine} of \Mtwo and are +written in {\tt C\char`\+\char`\+}, with the source files in the directory +{\tt Macaulay2/e}. In the current version of the program, the interface +between the interpreter and the core algorithms consists of a single +two-directional stream of bytes. The manual that comes with the system +\cite{M2} describes the engine communication protocol used in that +interface. + +%% Mike says we don't need this: + +%% One feature of \Mtwo which should be understood by system administrators, at +%% least of Unix systems, is the {\tt dumpdata} routine. Since so much of the +%% source code is written in the interpreted \Mtwo language, and the task of +%% reading and parsing it can take an appreciable amount of time on slower +%% machines, we perform that task in advance (by the {\tt setup} command) when +%% the program is installed on your system. The results are saved by writing +%% all of the data areas of the memory of the program to disk. When a user runs +%% {\tt M2}, the file containing the saved contents is quickly mapped into +%% memory using the {\tt loaddata} command. The contents of memory depend +%% in a detailed way on the architecture of the computer and the shareable +%% libraries that are installed, so when those things change, the {\tt setup} +%% command may need to be run again. If those things change too often, the +%% system administrator may disable that feature. + + +%% Date: Tue, 21 Nov 2000 11:36:16 +0900 (JST) +%% From: Nobuki Takayama +%% To: dan@math.uiuc.edu +%% CC: mike@polygon.math.cornell.edu, taka@math.kobe-u.ac.jp +%% In-reply-to: <200011161511.JAA18405@orion.math.uiuc.edu> (dan@math.uiuc.edu) +%% Subject: Re: software +%% +%% Dear Dan; +%% I would like to know +%% (1) "hints" to read and understand the M2 source code +%% and +%% (2) what are new ideas in the M2 implementations. +%% The source code contains all ideas in detail, but it is not easy to +%% read and understand it without some hints. +%% +%% I look forward to reading the section and the source code with the help +%% of the section. +%% Nobuki +%% +%% > If you want to add one subsection at the end, it could be something +%% > like "Developers' notes" or "System Issues". The reader I have in mind +%% > +%% > chapter is just the place. If you wish to consider this, then I suggest +%% > that Mike communicate directly with Nobuki about the contents. +%% > +%% >Could you tell us directly whay you have in mind about that? +%% +\begin{thebibliography}{1} + +\bibitem{M2} +Daniel~R. Grayson and Michael~E. Stillman: +\newblock \textsl{Macaulay~2}, a software system for research in algebraic + geometry and commutative algebra. +\newblock Available in source code form and compiled for various architectures, + with documentation, at {http://www.math.uiuc.edu/Macaulay2/}. + +\end{thebibliography} + \egroup + \makeatletter + \renewcommand\thesection{\@arabic\c@section} + \makeatother + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% +%%%%% ../chapters/schemes/chapter-m2.tex and ../chapters/schemes/chapter-wrapper.bbl +%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + \bgroup +\title{Teaching the Geometry of Schemes} +\titlerunning{Teaching the Geometry of Schemes} +\toctitle{Teaching the Geometry of Schemes} + +\author{Gregory G.~Smith \and Bernd Sturmfels} +\authorrunning{G. G. Smith and B. Sturmfels} +% \institute{Department of Mathematics, University of California, +% Berkeley, California 94720, USA} + +\maketitle + + +%%---------------------------------------------------------- +\newtheorem*{problem*}{Problem}{\bfseries\upshape}{\itshape} +\newtheorem*{solution*}{Solution}{\itshape}{\rmfamily} + +\newcommand{\Spec}{\operatorname{Spec}} +\newcommand{\Proj}{\operatorname{Proj}} +\newcommand{\codim}{\operatorname{codim}} +%%---------------------------------------------------------- + + +\begin{abstract} +This chapter presents a collection of graduate level problems in +algebraic geometry illustrating the power of \Mtwo as an educational +tool. +\end{abstract} + +When teaching an advanced subject, like the language of schemes, we +think it is important to provide plenty of concrete instances of the +theory. Computer algebra systems, such as \Mtwo, provide students +with an invaluable tool for studying complicated examples. +Furthermore, we believe that the explicit nature of a computational +approach leads to a better understanding of the objects being +examined. This chapter presents some problems which we feel +illustrate this point of view. + +Our examples are selected from the homework of an algebraic geometry +class given at the University of California at Berkeley in the fall of 1999. +This graduate course was taught by the second author with assistance from the +first author. Our choice of problems, as the title suggests, follows the +material in David Eisenbud and Joe Harris' textbook {\em The Geometry of + Schemes} \cite{SC:EH}. + +%%---------------------------------------------------------- +\section{Distinguished Open Sets} + +We begin with a simple example involving the Zariski topology of an affine +scheme\index{scheme!affine}. This example also indicates some of the +subtleties involved in working with arithmetic +schemes\index{scheme!arithmetic}. + +\begin{problem*} +Let $S = \bbbz[x,y,z]$ and $X = \Spec(S)$. If $f = x$ and $X_{f}$ is +the corresponding basic open subset in $X$, then establish the +following: +\begin{enumerate} +\item[$(1)$] If $e_{1} = x+y+z$, $e_{2} = xy+xz+yz$ and $e_{3} = xyz$ +are the elementary symmetric functions then the set $\{X_{e_{i}}\}_{1 +\leq i \leq 3}$ is an open cover of $X_{f}$. +\item[$(2)$] If $p_{1} = x+y+z$, $p_{2} = x^{2}+y^{2}+z^{2}$ and $p_{3} += x^{3}+y^{3}+z^{3}$ are the power sum symmetric functions then +$\{X_{p_{i}}\}_{1 \leq i \leq 3}$ is {\em not} an open cover of +$X_{f}$. +\end{enumerate} +\end{problem*} + +\begin{solution*} +$(1)$ To prove that $\{X_{e_{i}}\}_{1 \leq i \leq 3}$ is an open cover +of $X_{f}$, it suffices to show that $e_{1}$, $e_{2}$ and $e_{3}$ +generate the unit ideal in $S_{f}$; see Lemma I-16 in Eisenbud and +Harris~\cite{SC:EH}. This is equivalent to showing that $x^{m}$ +belongs to the $S$-ideal $\langle e_{1}, e_{2}, e_{3} \rangle$ for +some $m \in \bbbn$. In other words, the saturation\index{saturation} +$\big( \langle e_{1}, e_{2}, e_{3} \rangle : x^{\infty} \big)$ is the +unit ideal if and only if $\{X_{e_{i}}\}_{1 \leq i \leq 3}$ is an open +cover of $X_{f}$. We verify this in \Mtwo as follows: +\beginOutput +i1 : S = ZZ[x, y, z];\\ +\endOutput +\beginOutput +i2 : elementaryBasis = ideal(x+y+z, x*y+x*z+y*z, x*y*z);\\ +\emptyLine +o2 : Ideal of S\\ +\endOutput +\beginOutput +i3 : saturate(elementaryBasis, x)\\ +\emptyLine +o3 = ideal 1\\ +\emptyLine +o3 : Ideal of S\\ +\endOutput +$(2)$ Similarly, to show that $\{X_{p_{i}}\}_{1 \leq i \leq 3}$ is not +an open cover of $X_{f}$, we prove that $\big( \langle p_{1}, p_{2}, +p_{3} \rangle : x^{\infty} \big)$ is not the unit ideal. Calculating +this saturation, we find +\beginOutput +i4 : powerSumBasis = ideal(x+y+z, x^2+y^2+z^2, x^3+y^3+z^3);\\ +\emptyLine +o4 : Ideal of S\\ +\endOutput +\beginOutput +i5 : saturate(powerSumBasis, x)\\ +\emptyLine +\ 2 2\\ +o5 = ideal (6, x + y + z, 2y + 2y*z + 2z , 3y*z)\\ +\emptyLine +o5 : Ideal of S\\ +\endOutput +\beginOutput +i6 : clearAll\\ +\endOutput +which is not the unit ideal.\qed +\end{solution*} + +The fact that $6$ is a generator of the ideal $\big( \langle p_{1}, +p_{2}, p_{3} \rangle : x^{\infty} \big)$ indicates that +$\{X_{p_{i}}\}_{1 \leq i \leq 3}$ does not contain the points in $X$ +lying over the points $\langle 2 \rangle$ and $\langle 3 \rangle$ in +$\Spec(\bbbz)$. If we work over a base ring in which $6$ is a unit, +then $\{X_{p_{i}}\}_{1 \leq i \leq 3}$ would, in fact, be an open +cover of $X_{f}$. + + +%%---------------------------------------------------------- +\section{Irreducibility} + +The study of complex semisimple Lie algebras gives rise to an +important family of algebraic varieties called nilpotent +orbits\index{nilpotent orbits}. The next problem examines the +irreducibility\index{scheme!irreducible} of a particular nilpotent +orbit. + +\begin{problem*} +Let $X$ be the set of nilpotent complex $3 \times 3$ matrices. Show +that $X$ is an irreducible algebraic variety. +\end{problem*} + +\begin{solution*} +A $3 \times 3$ matrix $M$ is nilpotent if and only if its minimal +polynomial $p(\sf T)$ equals ${\sf T}^{k}$, for some $k \in \bbbn$. +Since each irreducible factor of the characteristic polynomial of $M$ +is also a factor of $p(\sf T)$, it follows that the characteristic +polynomial of $M$ is ${\sf T}^{3}$. We conclude that the coefficients +of the characteristic polynomial of a generic $3 \times 3$ matrix +define the algebraic variety $X$. + +To prove that $X$ is irreducible over $\bbbc$, we construct a rational +parameterization\index{rational parameterization}. First, observe +that ${\rm GL}_{3}(\bbbc)$ acts on $X$ by conjugation. Jordan's +canonical form theorem implies that there are exactly three orbits; +one for each of the following matrices: +\[ +N_{(1,1,1)} =\left[ \begin{smallmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & +0 & 0 \end{smallmatrix} \right], \quad +N_{(2,1)} = \left[ \begin{smallmatrix} 0 & 1 & 0 \\ 0 & 0 & 0 \\ 0 & 0 +& 0 \end{smallmatrix} \right] \text{ and } +N_{(3)} = \left[ \begin{smallmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & +0 \end{smallmatrix} \right] \enspace . +\] +Each orbit is defined by a rational parameterization, so it suffices +to show that the closure of the orbit containing $N_{(3)}$ is the +entire variety $X$. We demonstrate this as follows: +\beginOutput +i7 : S = QQ[t, y_0 .. y_8, a..i, MonomialOrder => Eliminate 10];\\ +\endOutput +\beginOutput +i8 : N3 = (matrix \{\{0,1,0\},\{0,0,1\},\{0,0,0\}\}) ** S\\ +\emptyLine +o8 = | 0 1 0 |\\ +\ | 0 0 1 |\\ +\ | 0 0 0 |\\ +\emptyLine +\ 3 3\\ +o8 : Matrix S <--- S\\ +\endOutput +\beginOutput +i9 : G = genericMatrix(S, y_0, 3, 3)\\ +\emptyLine +o9 = | y_0 y_3 y_6 |\\ +\ | y_1 y_4 y_7 |\\ +\ | y_2 y_5 y_8 |\\ +\emptyLine +\ 3 3\\ +o9 : Matrix S <--- S\\ +\endOutput +To determine the entries in $G \cdot N_{(3)} \cdot G^{-1}$, we use the +classical adjoint\index{classical adjoint} to construct the matrix +$\det(G) \cdot G^{-1}$. +\beginOutput +i10 : classicalAdjoint = (G) -> (\\ +\ n := degree target G;\\ +\ m := degree source G;\\ +\ matrix table(n, n, (i, j) -> (-1)^(i+j) * det(\\ +\ submatrix(G, \{0..j-1, j+1..n-1\}, \\ +\ \{0..i-1, i+1..m-1\}))));\\ +\endOutput +\beginOutput +i11 : num = G * N3 * classicalAdjoint(G);\\ +\emptyLine +\ 3 3\\ +o11 : Matrix S <--- S\\ +\endOutput +\beginOutput +i12 : D = det(G);\\ +\endOutput +\beginOutput +i13 : M = genericMatrix(S, a, 3, 3);\\ +\emptyLine +\ 3 3\\ +o13 : Matrix S <--- S\\ +\endOutput +The entries in $G \cdot N_{(3)} \cdot G^{-1}$ give a rational +parameterization of the orbit generated by $N_{(3)}$. Using +elimination theory\index{elimination theory} --- see section~3.3 in +Cox, Little and O`Shea~\cite{SC:CLO} --- we give an ``implicit +representation'' of this variety. +\beginOutput +i14 : elimIdeal = minors(1, (D*id_(S^3))*M - num) + ideal(1-D*t);\\ +\emptyLine +o14 : Ideal of S\\ +\endOutput +\beginOutput +i15 : closureOfOrbit = ideal selectInSubring(1, gens gb elimIdeal);\\ +\emptyLine +o15 : Ideal of S\\ +\endOutput + +Finally, we verify that this orbit closure equals $X$ +scheme-theoretically. Recall that $X$ is defined by the coefficients +of the characteristic polynomial of a generic $3 \times 3$ matrix {\tt +M}. +%% was X = ideal submatrix( (coeff-icients({0}, det(M - t*id_(S^3))))_1, +%% {1,2,3} ), but 'coeff-icients' is to be redesigned, and 'contract' is +%% more self-explanatory, anyway. +\beginOutput +i16 : X = ideal substitute(\\ +\ contract(matrix\{\{t^2,t,1\}\}, det(t-M)),\\ +\ \{t => 0_S\})\\ +\emptyLine +o16 = ideal (- a - e - i, - b*d + a*e - c*g - f*h + a*i + e*i, c*e*g - $\cdot\cdot\cdot$\\ +\emptyLine +o16 : Ideal of S\\ +\endOutput +\beginOutput +i17 : closureOfOrbit == X\\ +\emptyLine +o17 = true\\ +\endOutput +\beginOutput +i18 : clearAll\\ +\endOutput +This completes our solution.\qed +\end{solution*} + +More generally, Kostant shows that the set of all nilpotent elements +in a complex semisimple Lie algebra\index{Lie algebra} form an +irreducible variety. We refer the reader to Chriss and +Ginzburg~\cite{SC:CV} for a proof of this result (Corollary~3.2.8) and +a discussion of its applications in representation theory. + + +%%---------------------------------------------------------- +\section{Singular Points} + +In our third question, we study the singular locus\index{singular +locus} of a family of elliptic curves\index{elliptic curve}. + +\begin{problem*} +Consider a general form of degree $3$ in $\bbbq[x,y,z]$: +\[ +F = ax^{3} + bx^{2}y + cx^{2}z + dxy^{2} + exyz + fxz^{2} + gy^{3} + +hy^{2}z + iyz^{2} + jz^{3} \enspace . +\] +Give necessary and sufficient conditions in terms of $a, \ldots, j$ +for the cubic curve $\Proj\big( \bbbq[x,y,z] / \langle F \rangle +\big)$ to have a singular point. +\end{problem*} + +\begin{solution*} +The singular locus of $F$ is defined by a polynomial of degree $12$ in +the $10$ variables $a, \dotsc, j$. We calculate this polynomial in two +different ways. + +Our first method is an elementary but time consuming elimination. +Carrying it out in \Mtwo, we have +\beginOutput +i19 : S = QQ[x, y, z, a..j, MonomialOrder => Eliminate 2];\\ +\endOutput +\beginOutput +i20 : F = a*x^3+b*x^2*y+c*x^2*z+d*x*y^2+e*x*y*z+f*x*z^2+g*y^3+h*y^2*z+\\ +\ i*y*z^2+j*z^3;\\ +\endOutput +\beginOutput +i21 : partials = submatrix(jacobian matrix\{\{F\}\}, \{0..2\}, \{0\})\\ +\emptyLine +o21 = \{1\} | 3x2a+2xyb+y2d+2xzc+yze+z2f |\\ +\ \{1\} | x2b+2xyd+3y2g+xze+2yzh+z2i |\\ +\ \{1\} | x2c+xye+y2h+2xzf+2yzi+3z2j |\\ +\emptyLine +\ 3 1\\ +o21 : Matrix S <--- S\\ +\endOutput +\beginOutput +i22 : singularities = ideal(partials) + ideal(F);\\ +\emptyLine +o22 : Ideal of S\\ +\endOutput +\beginOutput +i23 : elimDiscr = time ideal selectInSubring(1,gens gb singularities);\\ +\ -- used 64.27 seconds\\ +\emptyLine +o23 : Ideal of S\\ +\endOutput +\beginOutput +i24 : elimDiscr = substitute(elimDiscr, \{z => 1\});\\ +\emptyLine +o24 : Ideal of S\\ +\endOutput +On the other hand, there is also an elegant and more useful +determinantal formula for this discriminant\index{discriminant}; it is +a specialization of the formula (2.8) in section~3.2 of Cox, Little +and O`Shea~\cite{SC:CLO2}. To apply this determinantal formula, we +first create the coefficient matrix {\tt A} of the partial derivatives +of $F$. +%% was A = (coeff-icients({0,1,2}, submatrix(jacobian matrix{{F}}, {0..2}, {0})))_1; +%% but 'coeff-icients' is deprecated. +\beginOutput +i25 : A = contract(matrix\{\{x^2,x*y,y^2,x*z,y*z,z^2\}\},\\ +\ diff(transpose matrix\{\{x,y,z\}\},F))\\ +\emptyLine +o25 = \{1\} | 3a 2b d 2c e f |\\ +\ \{1\} | b 2d 3g e 2h i |\\ +\ \{1\} | c e h 2f 2i 3j |\\ +\emptyLine +\ 3 6\\ +o25 : Matrix S <--- S\\ +\endOutput +We also construct the coefficient matrix {\tt B} of the partial +derivatives of the Hessian\index{hessian} of $F$. +\beginOutput +i26 : hess = det submatrix(jacobian ideal partials, \{0..2\}, \{0..2\});\\ +\endOutput +%% was B = (coeff-icients({0,1,2}, submatrix(jacobian matrix{{hess}}, {0..2}, {0})))_1; +%% but 'coeff-icients' is deprecated. +\beginOutput +i27 : B = contract(matrix\{\{x^2,x*y,y^2,x*z,y*z,z^2\}\},\\ +\ diff(transpose matrix\{\{x,y,z\}\},hess))\\ +\emptyLine +o27 = \{1\} | -24c2d+24bce-18ae2-24b2f+72adf 4be2-16bdf-48 $\cdot\cdot\cdot$\\ +\ \{1\} | 2be2-8bdf-24c2g+72afg+16bch-24aeh-8b2i+24adi 4de2-16d2f-48 $\cdot\cdot\cdot$\\ +\ \{1\} | 2ce2-8cdf-8c2h+24afh+16bci-24aei-24b2j+72adj 2e3-8def-24cf $\cdot\cdot\cdot$\\ +\emptyLine +\ 3 6\\ +o27 : Matrix S <--- S\\ +\endOutput +To obtain the discriminant, we combine these two matrices and take the +determinant. +\beginOutput +i28 : detDiscr = ideal det (A || B);\\ +\emptyLine +o28 : Ideal of S\\ +\endOutput +Finally, we check that our two discriminants are equal +\beginOutput +i29 : detDiscr == elimDiscr\\ +\emptyLine +o29 = true\\ +\endOutput +and examine the generator. +\beginOutput +i30 : detDiscr_0\\ +\emptyLine +\ 2 4 3 2 5 3 2 6 3 2 2 2 2 $\cdot\cdot\cdot$\\ +o30 = 13824c d*e f g - 13824b*c*e f g + 13824a*e f g - 110592c d e $\cdot\cdot\cdot$\\ +\emptyLine +o30 : S\\ +\endOutput +\beginOutput +i31 : numgens detDiscr\\ +\emptyLine +o31 = 1\\ +\endOutput +\beginOutput +i32 : # terms detDiscr_0\\ +\emptyLine +o32 = 2040\\ +\endOutput +\beginOutput +i33 : clearAll\\ +\endOutput +Hence, the singular locus is given by a single polynomial of degree +$12$ with $2040$ terms.\qed +\end{solution*} + +For a further discussion of singularities and discriminants see +Section~V.3 in Eisenbud and Harris~\cite{SC:EH}. For information on +resultants and discriminants see Chapter~2 in Cox, Little and +O`Shea~\cite{SC:CLO2}. + + +%%---------------------------------------------------------- +\section{Fields of Definition} + +Schemes\index{scheme!over a number field} over non-algebraically +closed fields arise in number theory. Our fourth problem looks at one +technique for working with number fields in \Mtwo. + +\begin{problem*}[Exercise~II-6 in \cite{SC:EH}] +An inclusion of fields $K \hookrightarrow L$ induces a map +$\mathbb{A}_{L}^{n} \to \mathbb{A}_{K}^{n}$. Find the images in +$\mathbb{A}_{\bbbq}^{2}$ of the following points of +$\mathbb{A}_{\overline{\bbbq}}^{2}$ under this map. +\begin{enumerate} +\item[$(1)$] $\langle x - \sqrt{2}, y - \sqrt{2} \rangle ;$ +\item[$(2)$] $\langle x - \sqrt{2}, y - \sqrt{3} \rangle ;$ +\item[$(3)$] $\langle x - \zeta, y - \zeta^{-1} \rangle$ where $\zeta$ +is a $5$-th root of unity $;$ +\item[$(4)$] $\langle \sqrt{2}x- \sqrt{3}y \rangle ;$ +\item[$(5)$] $\langle \sqrt{2}x- \sqrt{3}y-1 \rangle$. +\end{enumerate} +\end{problem*} + +\begin{solution*} +The images can be determined by using the following three step +algorithm: (1) replace the coefficients not contained in $K$ with +indeterminates, (2) add the minimal polynomials of these coefficients +to the given ideal in $\mathbb{A}_{L}^{2}$, and (3) eliminate the new +indeterminates. Here are the five examples: +\beginOutput +i34 : S = QQ[a,b,x,y, MonomialOrder => Eliminate 2];\\ +\endOutput +\beginOutput +i35 : I1 = ideal(x-a, y-a, a^2-2);\\ +\emptyLine +o35 : Ideal of S\\ +\endOutput +\beginOutput +i36 : ideal selectInSubring(1, gens gb I1)\\ +\emptyLine +\ 2\\ +o36 = ideal (x - y, y - 2)\\ +\emptyLine +o36 : Ideal of S\\ +\endOutput +\beginOutput +i37 : I2 = ideal(x-a, y-b, a^2-2, b^2-3);\\ +\emptyLine +o37 : Ideal of S\\ +\endOutput +\beginOutput +i38 : ideal selectInSubring(1, gens gb I2)\\ +\emptyLine +\ 2 2\\ +o38 = ideal (y - 3, x - 2)\\ +\emptyLine +o38 : Ideal of S\\ +\endOutput +\beginOutput +i39 : I3 = ideal(x-a, y-a^4, a^4+a^3+a^2+a+1);\\ +\emptyLine +o39 : Ideal of S\\ +\endOutput +\beginOutput +i40 : ideal selectInSubring(1, gens gb I3)\\ +\emptyLine +\ 2 2 3 2\\ +o40 = ideal (x*y - 1, x + y + x + y + 1, y + y + x + y + 1)\\ +\emptyLine +o40 : Ideal of S\\ +\endOutput +\beginOutput +i41 : I4 = ideal(a*x+b*y, a^2-2, b^2-3);\\ +\emptyLine +o41 : Ideal of S\\ +\endOutput +\beginOutput +i42 : ideal selectInSubring(1, gens gb I4)\\ +\emptyLine +\ 2 3 2\\ +o42 = ideal(x - -*y )\\ +\ 2\\ +\emptyLine +o42 : Ideal of S\\ +\endOutput +\beginOutput +i43 : I5 = ideal(a*x+b*y-1, a^2-2, b^2-3);\\ +\emptyLine +o43 : Ideal of S\\ +\endOutput +\beginOutput +i44 : ideal selectInSubring(1, gens gb I5)\\ +\emptyLine +\ 4 2 2 9 4 2 3 2 1\\ +o44 = ideal(x - 3x y + -*y - x - -*y + -)\\ +\ 4 2 4\\ +\emptyLine +o44 : Ideal of S\\ +\endOutput +\beginOutput +i45 : clearAll\\ +\endOutput +\qed +\end{solution*} + +It is worth noting that the points in $\mathbb{A}_{\bbbq}^{n}$ correspond +to orbits of the action of ${\rm Gal}(\overline{\bbbq}/\bbbq)$ on the +points of $\mathbb{A}_{\overline{\bbbq}}^{n}$. For more examples and +information, see section~II.2 in Eisenbud and Harris~\cite{SC:EH}. + + +%%---------------------------------------------------------- +\section{Multiplicity} + +The multiplicity\index{multiplicity} of a zero-dimensional scheme $X$ +at a point $p \in X$ is defined to be the length of the local ring +$\mathcal{O}_{X,p}$. Unfortunately, we cannot work directly in the +local ring in \Mtwo. What we can do, however, is to compute the +multiplicity by computing the degree of the component of $X$ supported +at $p$; see page 66 in Eisenbud and Harris~\cite{SC:EH}. + +\begin{problem*} +What is the multiplicity of the origin as a zero of the polynomial +equations $x^{5}+y^{3}+z^{3} = x^{3}+y^{5}+z^{3} = x^{3}+y^{3}+z^{5} = +0$? +\end{problem*} + +\begin{solution*} +If $I$ is the ideal generated by $x^{5}+y^{3}+z^{3}$, +$x^{3}+y^{5}+z^{3}$ and $x^{3}+y^{3}+z^{5}$ in $\bbbq[x,y,z]$, then +the multiplicity of the origin is +\[ +\dim_{\bbbq} \frac{\bbbq[x,y,z]_{\langle x,y,z \rangle}} +{I \bbbq[x,y,z]_{\langle x,y,z \rangle}} \, . +\] +It follows that the multiplicity is the vector space dimension of the +ring $\bbbq[x,y,z] / \varphi^{-1}(I \bbbq[x,y,z]_{\langle x,y,z +\rangle})$ where $\varphi \colon \bbbq[x,y,z] \to +\bbbq[x,y,z]_{\langle x,y,z \rangle}$ is the natural map. Moreover, +we can express this using ideal quotients: +\[ +\varphi^{-1}(I \bbbq[x,y,z]_{\langle x,y,z \rangle}) \,\,= \,\, +\big(I : (I : \langle x,y,z \rangle^{\infty})\big) \, . +\] +Carrying out this calculation in \Mtwo, we obtain: +\beginOutput +i46 : S = QQ[x, y, z];\\ +\endOutput +\beginOutput +i47 : I = ideal(x^5+y^3+z^3, x^3+y^5+z^3, x^3+y^3+z^5);\\ +\emptyLine +o47 : Ideal of S\\ +\endOutput +\beginOutput +i48 : multiplicity = degree(I : saturate(I))\\ +\emptyLine +o48 = 27\\ +\endOutput +\beginOutput +i49 : clearAll\\ +\endOutput +Thus, we conclude that the multiplicity is $27$.\qed +\end{solution*} + +There are algorithms (not yet implemented in \Mtwo) for working +directly in the local ring $\bbbq[x,y,z]_{\langle x,y,z \rangle}$. We +refer the interested reader to Chapter~4 in Cox, Little and +O`Shea~\cite{SC:CLO2}. + + +%%---------------------------------------------------------- +\section{Flat Families} + +Non-reduced schemes\index{scheme!non-reduced} arise naturally as flat +limits\index{flat limit} of a family of reduced +schemes\index{scheme!reduced}. Our next problem illustrates how a +family of skew lines in $\bbbp^{3}$ gives rise to a double line with +an embedded point\index{embedded point}. + +\begin{problem*}[Exercise~III-68 in \cite{SC:EH}] +Let $L$ and $M $ be the lines in $\bbbp^{3}_{k[t]}$ given by $x=y=0$ +and $x-tz = y+t^{2}w =0$ respectively. Show that the flat limit as $t +\to 0$ of the union $L \cup M$ is the double line $x^{2} = y = 0$ with +an embedded point of degree $1$ located at the point $(0:0:0:1)$. +\end{problem*} + +\begin{solution*} +We first find the flat limit by saturating\index{saturation} the +intersection ideal and setting $t = 0$. +\beginOutput +i50 : PP3 = QQ[t, x, y, z, w];\\ +\endOutput +\beginOutput +i51 : L = ideal(x, y);\\ +\emptyLine +o51 : Ideal of PP3\\ +\endOutput +\beginOutput +i52 : M = ideal(x-t*z, y+t^2*w);\\ +\emptyLine +o52 : Ideal of PP3\\ +\endOutput +\beginOutput +i53 : X = intersect(L, M);\\ +\emptyLine +o53 : Ideal of PP3\\ +\endOutput +\beginOutput +i54 : Xzero = trim substitute(saturate(X, t), \{t => 0\})\\ +\emptyLine +\ 2 2\\ +o54 = ideal (y*z, y , x*y, x )\\ +\emptyLine +o54 : Ideal of PP3\\ +\endOutput +Secondly, we verify that this is the union of a double line and an +embedded point of degree $1$. +\beginOutput +i55 : Xzero == intersect(ideal(x^2, y), ideal(x, y^2, z))\\ +\emptyLine +o55 = true\\ +\endOutput +\beginOutput +i56 : degree(ideal(x^2, y ) / ideal(x, y^2, z))\\ +\emptyLine +o56 = 1\\ +\endOutput +\beginOutput +i57 : clearAll\\ +\endOutput +\qed +\end{solution*} + +Section~III.3.4 in Eisenbud and Harris~\cite{SC:EH} contains several +other interesting limits of various flat families. + + +%%---------------------------------------------------------- +\section{B\'{e}zout's Theorem} + +B\'{e}zout's Theorem\index{Bezout's Theorem@B\'ezout's Theorem} --- Theorem~III-78 in +Eisenbud and Harris~\cite{SC:EH} --- may fail without the +Cohen-Macaulay\index{Cohen-Macaulay} hypothesis. Our seventh problem +is to demonstrate this. + +\begin{problem*}[Exercise~III-81 in \cite{SC:EH}] +Find irreducible closed subvarieties $X$ and $Y$ in $\bbbp^{4}$ such +that +\begin{align*} +\codim(X \cap Y) &= \codim(X) + \codim(Y) \\ +\deg(X \cap Y) &> \deg(X) \cdot \deg(Y) \, . +\end{align*} +\end{problem*} + +\begin{solution*} +We show that the assertion holds when $X$ is the cone over the +nonsingular rational quartic curve\index{rational quartic curve} in +$\bbbp^{3}$ and $Y$ is a two-plane passing through the vertex of the +cone. First, recall that the rational quartic curve is given by the +$2 \times 2$ minors of the matrix $\left[ \begin{smallmatrix} a & +b^{2} & bd & c \\ b & ac & c^2 & d \end{smallmatrix} \right]$; see +Exercise~18.8 in Eisenbud~\cite{SC:E}. Thus, we have +\beginOutput +i58 : S = QQ[a, b, c, d, e];\\ +\endOutput +\beginOutput +i59 : IX = trim minors(2, matrix\{\{a, b^2, b*d, c\},\{b, a*c, c^2, d\}\})\\ +\emptyLine +\ 3 2 2 2 3 2\\ +o59 = ideal (b*c - a*d, c - b*d , a*c - b d, b - a c)\\ +\emptyLine +o59 : Ideal of S\\ +\endOutput +\beginOutput +i60 : IY = ideal(a, d);\\ +\emptyLine +o60 : Ideal of S\\ +\endOutput +\beginOutput +i61 : codim IX + codim IY == codim (IX + IY)\\ +\emptyLine +o61 = true\\ +\endOutput +\beginOutput +i62 : (degree IX) * (degree IY)\\ +\emptyLine +o62 = 4\\ +\endOutput +\beginOutput +i63 : degree (IX + IY)\\ +\emptyLine +o63 = 5\\ +\endOutput +which establishes the assertion.\qed +\end{solution*} + +To understand how this example works, it is enlightening to express +$Y$ as the intersection of two hyperplanes; one given by $a = 0$ and +the other given by $d = 0$. Intersecting $X$ with the first +hyperplane yields +\beginOutput +i64 : J = ideal mingens (IX + ideal(a))\\ +\emptyLine +\ 3 2 2 3\\ +o64 = ideal (a, b*c, c - b*d , b d, b )\\ +\emptyLine +o64 : Ideal of S\\ +\endOutput +However, this first intersection has an embedded point; +\beginOutput +i65 : J == intersect(ideal(a, b*c, b^2, c^3-b*d^2), \\ +\ ideal(a, d, b*c, c^3, b^3)) -- embedded point\\ +\emptyLine +o65 = true\\ +\endOutput +\beginOutput +i66 : clearAll\\ +\endOutput +The second hyperplane passes through this embedded +point\index{embedded point} which explains the extra intersection. + + +%%---------------------------------------------------------- +\section{Constructing Blow-ups} + +The blow-up\index{blow-up} of a scheme $X$ along a subscheme $Y$ can +be constructed from the Rees algebra\index{Rees algebra} associated to +the ideal sheaf of $Y$ in $X$; see Theorem~IV-22 in Eisenbud and +Harris~\cite{SC:EH}. Gr\"{o}bner basis techniques allow one to +express the Rees algebra in terms of generators and relations. We +illustrate this method in the next solution. + +\begin{problem*}[Exercises~IV-43 \& IV-44 in \cite{SC:EH}] +Find the blow-up $X$ of the affine plane\index{scheme!affine} +$\mathbb{A}^{2} = \Spec\big( \bbbq[x, y] \big)$ along the subscheme +defined by $\langle x^{3}, xy, y^{2} \rangle$. Show that $X$ is +nonsingular and its fiber over the origin is the union of two copies +of $\bbbp^{1}$ meeting at a point. +\end{problem*} + +\begin{solution*} +We first provide a general function which returns the ideal of +relations for the Rees algebra. +\beginOutput +i67 : blowUpIdeal = (I) -> (\\ +\ r := numgens I;\\ +\ S := ring I;\\ +\ n := numgens S;\\ +\ K := coefficientRing S;\\ +\ tR := K[t, gens S, vars(0..r-1), \\ +\ MonomialOrder => Eliminate 1];\\ +\ f := map(tR, S, submatrix(vars tR, \{1..n\}));\\ +\ F := f(gens I);\\ +\ J := ideal apply(1..r, j -> (gens tR)_(n+j)-t*F_(0,(j-1)));\\ +\ L := ideal selectInSubring(1, gens gb J);\\ +\ R := K[gens S, vars(0..r-1)];\\ +\ g := map(R, tR, 0 | vars R);\\ +\ trim g(L));\\ +\endOutput +Now, applying the function to our specific case yields: +\beginOutput +i68 : S = QQ[x, y];\\ +\endOutput +\beginOutput +i69 : I = ideal(x^3, x*y, y^2);\\ +\emptyLine +o69 : Ideal of S\\ +\endOutput +\beginOutput +i70 : J = blowUpIdeal(I)\\ +\emptyLine +\ 2 2 3 2\\ +o70 = ideal (y*b - x*c, x*b - a*c, x b - y*a, x c - y a)\\ +\emptyLine +o70 : Ideal of QQ [x, y, a, b, c]\\ +\endOutput +Therefore, the blow-up of the affine plane along the given subscheme +is +\[ +X = \Proj\left( \frac{(\bbbq[x,y])[a,b,c]}{\langle yb-xc, xb^{2}-ac, +x^{2}b-ya, x^{3}c-y^{2}a \rangle} \right) \, . +\] +Using \Mtwo, we can also verify that the scheme $X$ is +nonsingular\index{singular locus}; +\beginOutput +i71 : J + ideal jacobian J == ideal gens ring J\\ +\emptyLine +o71 = true\\ +\endOutput +\beginOutput +i72 : clearAll\\ +\endOutput +Since we have +\[ +\frac{(\bbbq[x,y])[a,b,c]}{\langle yb-xc, xb^{2}-ac, x^{2}b-ya, +x^{3}c-y^{2}a \rangle} \otimes \frac{\bbbq[x,y]}{\langle x, y \rangle} +\cong \frac{\bbbq[a,b,c]}{\langle ac \rangle} \, , +\] +the fiber over the origin $\langle x,y \rangle$ in $\mathbb{A}^{2}$ is +clearly a union of two copies of $\bbbp^{1}$ meeting at one point. In +particular, the exceptional fiber is not a projective space.\qed +\end{solution*} + +Many other interesting blow-ups can be found in section~II.2 in +Eisenbud and Harris~\cite{SC:EH}. + + +%%---------------------------------------------------------- +\section{A Classic Blow-up} + +We consider the blow-up\index{blow-up} of the projective plane +$\bbbp^{2}$ at a point. + +\vbox{ +\begin{problem*} +Show that the following varieties are isomorphic. +\begin{enumerate} +\item[$(a)$] the image of the rational map from $\bbbp^{2}$ to +$\bbbp^{4}$ given by +\[ +(r:s:t) \mapsto (r^{2}:s^{2}:rs:rt:st) \, ; +\] +\item[$(b)$] the blow-up of the plane $\bbbp^{2}$ at the point +$(0:0:1)$; +\item[$(c)$] the determinantal variety\index{determinantal variety} +defined by the $2 \times 2$ minors of the matrix $\left[ +\begin{smallmatrix} a & c & d \\ b & d & e \end{smallmatrix} \right]$ +where $\bbbp^{4} = \Proj\big( k[a,b,c,d,e] \big)$. +\end{enumerate} +This surface is called the {\em cubic scroll}\index{cubic scroll} in +$\bbbp^{4}$. +\end{problem*} +} + +\begin{solution*} +We find the ideal in part~$(a)$ by elimination +theory\index{elimination theory}. +\beginOutput +i73 : PP4 = QQ[a..e];\\ +\endOutput +\beginOutput +i74 : S = QQ[r..t, A..E, MonomialOrder => Eliminate 3];\\ +\endOutput +\beginOutput +i75 : I = ideal(A - r^2, B - s^2, C - r*s, D - r*t, E - s*t);\\ +\emptyLine +o75 : Ideal of S\\ +\endOutput +\beginOutput +i76 : phi = map(PP4, S, matrix\{\{0_PP4, 0_PP4, 0_PP4\}\} | vars PP4)\\ +\emptyLine +o76 = map(PP4,S,\{0, 0, 0, a, b, c, d, e\})\\ +\emptyLine +o76 : RingMap PP4 <--- S\\ +\endOutput +\beginOutput +i77 : surfaceA = phi ideal selectInSubring(1, gens gb I)\\ +\emptyLine +\ 2\\ +o77 = ideal (c*d - a*e, b*d - c*e, a*b - c )\\ +\emptyLine +o77 : Ideal of PP4\\ +\endOutput +Next, we determine the surface in part~$(b)$. We construct the ideal +defining the blow-up of $\bbbp^{2}$ +\beginOutput +i78 : R = QQ[t, x, y, z, u, v, MonomialOrder => Eliminate 1];\\ +\endOutput +\beginOutput +i79 : blowUpIdeal = ideal selectInSubring(1, gens gb ideal(u-t*x, \\ +\ v-t*y))\\ +\emptyLine +o79 = ideal(y*u - x*v)\\ +\emptyLine +o79 : Ideal of R\\ +\endOutput +and embed it in $\bbbp^{2} \times \bbbp^{1}$. +\beginOutput +i80 : PP2xPP1 = QQ[x, y, z, u, v];\\ +\endOutput +\beginOutput +i81 : embed = map(PP2xPP1, R, 0 | vars PP2xPP1);\\ +\emptyLine +o81 : RingMap PP2xPP1 <--- R\\ +\endOutput +\beginOutput +i82 : blowUp = PP2xPP1 / embed(blowUpIdeal);\\ +\endOutput +We then map this surface into $\bbbp^{5}$ using the Segre +embedding\index{Segre embedding}. +\beginOutput +i83 : PP5 = QQ[A .. F];\\ +\endOutput +\beginOutput +i84 : segre = map(blowUp, PP5, matrix\{\{x*u,y*u,z*u,x*v,y*v,z*v\}\});\\ +\emptyLine +o84 : RingMap blowUp <--- PP5\\ +\endOutput +\beginOutput +i85 : ker segre\\ +\emptyLine +\ 2\\ +o85 = ideal (B - D, C*E - D*F, D - A*E, C*D - A*F)\\ +\emptyLine +o85 : Ideal of PP5\\ +\endOutput +Note that the image under the Segre map lies on a hyperplane in +$\bbbp^{5}$. To get the desired surface in $\bbbp^{4}$, we project +\beginOutput +i86 : projection = map(PP4, PP5, matrix\{\{a, c, d, c, b, e\}\})\\ +\emptyLine +o86 = map(PP4,PP5,\{a, c, d, c, b, e\})\\ +\emptyLine +o86 : RingMap PP4 <--- PP5\\ +\endOutput +\beginOutput +i87 : surfaceB = trim projection ker segre\\ +\emptyLine +\ 2\\ +o87 = ideal (c*d - a*e, b*d - c*e, a*b - c )\\ +\emptyLine +o87 : Ideal of PP4\\ +\endOutput +Finally, we compute the surface in part~$(c)$. +\beginOutput +i88 : determinantal = minors(2, matrix\{\{a, c, d\}, \{b, d, e\}\})\\ +\emptyLine +\ 2\\ +o88 = ideal (- b*c + a*d, - b*d + a*e, - d + c*e)\\ +\emptyLine +o88 : Ideal of PP4\\ +\endOutput +\beginOutput +i89 : sigma = map( PP4, PP4, matrix\{\{d, e, a, c, b\}\});\\ +\emptyLine +o89 : RingMap PP4 <--- PP4\\ +\endOutput +\beginOutput +i90 : surfaceC = sigma determinantal\\ +\emptyLine +\ 2\\ +o90 = ideal (c*d - a*e, b*d - c*e, a*b - c )\\ +\emptyLine +o90 : Ideal of PP4\\ +\endOutput +By incorporating a permutation of the variables into definition of +{\tt surfaceC}, we obtain the desired isomorphisms +\beginOutput +i91 : surfaceA == surfaceB\\ +\emptyLine +o91 = true\\ +\endOutput +\beginOutput +i92 : surfaceB == surfaceC\\ +\emptyLine +o92 = true\\ +\endOutput +\beginOutput +i93 : clearAll\\ +\endOutput +which completes the solution.\qed +\end{solution*} + +For more information of the geometry of rational normal scrolls, see +Lecture~8 in Harris~\cite{SC:H}. + + +%%---------------------------------------------------------- +\section{Fano Schemes} + +Our final example concerns the family of Fano schemes\index{Fano +scheme} associated to a flat family of quadrics. +Recall that the $k$-th Fano scheme $F_{k}(X)$ of a +scheme $X \subseteq \bbbp^{n}$ is the subscheme of +the Grassmannian parametrizing $k$-planes +contained in $X$. + +\begin{problem*}[Exercise~IV-69 in \cite{SC:EH}] +Consider the one-parameter family\index{one-parameter family} of +quadrics tending to a double plane with equation +\[ +Q = V(tx^{2}+ty^{2}+tz^{2}+w^{2}) \subseteq \bbbp^{3}_{\bbbq[t]} = +\Proj\big(\bbbq[t][x,y,z,w]\big) \enspace . +\] +What is the flat limit\index{flat limit} of the Fano schemes +$F_{1}(Q_{t})$? +\end{problem*} + +\begin{solution*} +We first compute the ideal defining $F_{1}(Q_{t})$, the scheme +parametrizing lines in $Q$. +\beginOutput +i94 : PP3 = QQ[t, x, y, z, w];\\ +\endOutput +\beginOutput +i95 : Q = ideal( t*x^2+t*y^2+t*z^2+w^2 );\\ +\emptyLine +o95 : Ideal of PP3\\ +\endOutput +To parametrize a line in our projective space, we introduce +indeterminates $u, v$ and $A, \dotsc, H$. +\beginOutput +i96 : R = QQ[t, u, v, A .. H];\\ +\endOutput +We then make a map {\tt phi} from {\tt PP3} to {\tt R} sending the +variables to the coordinates of the general point on a line. +\beginOutput +i97 : phi = map(R, PP3, matrix\{\{t\}\} | \\ +\ u*matrix\{\{A, B, C, D\}\} + v*matrix\{\{E, F, G, H\}\});\\ +\emptyLine +o97 : RingMap R <--- PP3\\ +\endOutput +\beginOutput +i98 : imageFamily = phi Q;\\ +\emptyLine +o98 : Ideal of R\\ +\endOutput +For a line to belong to $Q$, the {\tt imageFamily} must vanish +identically. In other words, $F_{1}(Q)$ is defined by the +coefficients of the generators of {\tt imageFamily}. +%% removing a final use of 'coefficients' +%% coeffOfFamily = (coefficients ({1,2}, gens imageFamily))_1; +\beginOutput +i99 : coeffOfFamily = contract(matrix\{\{u^2,u*v,v^2\}\}, gens imageFamily)\\ +\emptyLine +o99 = | tA2+tB2+tC2+D2 2tAE+2tBF+2tCG+2DH tE2+tF2+tG2+H2 |\\ +\emptyLine +\ 1 3\\ +o99 : Matrix R <--- R\\ +\endOutput +Since we don't need the variables $u$ and $v$, we get rid of them. +\beginOutput +i100 : S = QQ[t, A..H];\\ +\endOutput +\beginOutput +i101 : coeffOfFamily = substitute(coeffOfFamily, S);\\ +\emptyLine +\ 1 3\\ +o101 : Matrix S <--- S\\ +\endOutput +\beginOutput +i102 : Sbar = S / (ideal coeffOfFamily);\\ +\endOutput +Next, we move to the Grassmannian\index{Grassmannian} $\mathbb{G}(1,3) +\subset \bbbp^{5}$. Recall the homogeneous coordinates on +$\bbbp^{5}$ correspond to the $2 \times 2$ minors of a $2 \times 4$ +matrix. We obtain these minors using the {\tt exteriorPower} function +in \Mtwo. +\beginOutput +i103 : psi = matrix\{\{t\}\} | exteriorPower(2, \\ +\ matrix\{\{A, B, C, D\}, \{E, F, G, H\}\})\\ +\emptyLine +o103 = | t -BE+AF -CE+AG -CF+BG -DE+AH -DF+BH -DG+CH |\\ +\emptyLine +\ 1 7\\ +o103 : Matrix Sbar <--- Sbar\\ +\endOutput +\beginOutput +i104 : PP5 = QQ[t, a..f];\\ +\endOutput +\beginOutput +i105 : fanoOfFamily = trim ker map(Sbar, PP5, psi);\\ +\emptyLine +o105 : Ideal of PP5\\ +\endOutput +Now, to answer the question, we determine the limit as $t$ tends to $0$. +\beginOutput +i106 : zeroFibre = trim substitute(saturate(fanoOfFamily, t), \{t=>0\})\\ +\emptyLine +\ 2 2 2 $\cdot\cdot\cdot$\\ +o106 = ideal (e*f, d*f, e , f , d*e, a*e + b*f, d , c*d - b*e + a*f, b $\cdot\cdot\cdot$\\ +\emptyLine +o106 : Ideal of PP5\\ +\endOutput +Let's transpose the matrix of generators so all of its elements are visible +on the printed page. +\beginOutput +i107 : transpose gens zeroFibre\\ +\emptyLine +o107 = \{-2\} | ef |\\ +\ \{-2\} | df |\\ +\ \{-2\} | e2 |\\ +\ \{-2\} | f2 |\\ +\ \{-2\} | de |\\ +\ \{-2\} | ae+bf |\\ +\ \{-2\} | d2 |\\ +\ \{-2\} | cd-be+af |\\ +\ \{-2\} | bd+ce |\\ +\ \{-2\} | ad-cf |\\ +\ \{-2\} | a2+b2+c2 |\\ +\emptyLine +\ 11 1\\ +o107 : Matrix PP5 <--- PP5\\ +\endOutput +We see that $F_{1}(Q_{0})$ is supported on the plane conic $\langle d, +e, f, a^{2}+b^{2}+c^{2} \rangle$. However, $F_{1}(Q_{0})$ is not +reduced\index{scheme!non-reduced}; it has +multiplicity\index{multiplicity} two. On the other hand, the generic +fiber is +\beginOutput +i108 : oneFibre = trim substitute(saturate(fanoOfFamily, t), \{t => 1\})\\ +\emptyLine +\ 2 2 2 $\cdot\cdot\cdot$\\ +o108 = ideal (a*e + b*f, d + e + f , c*d - b*e + a*f, b*d + c*e, a*d $\cdot\cdot\cdot$\\ +\emptyLine +o108 : Ideal of PP5\\ +\endOutput +\beginOutput +i109 : oneFibre == intersect(ideal(c-d, b+e, a-f, d^2+e^2+f^2), \\ +\ ideal(c+d, b-e, a+f, d^2+e^2+f^2))\\ +\emptyLine +o109 = true\\ +\endOutput +Hence, for $t \neq 0$, $F_{1}(Q_{t})$ is the union of two conics lying +in complementary planes and $F_{1}(Q_{0})$ is the double conic +obtained when the two conics move together.\qed +\end{solution*} + +% Local Variables: +% mode: latex +% mode: reftex +% tex-main-file: "chapter-wrapper.tex" +% reftex-keep-temporary-buffers: t +% reftex-use-external-file-finders: t +% reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) +% End: +\begin{thebibliography}{1} + +\bibitem{SC:CV} +Neil Chriss and Victor Ginzburg: +\newblock {\em Representation theory and complex geometry}. +\newblock Birkh\"auser Boston Inc., Boston, MA, 1997. + +\bibitem{SC:CLO} +David Cox, John Little, and Donal O'Shea: +\newblock {\em Ideals, varieties, and algorithms}. +\newblock Springer-Verlag, New York, second edition, 1997. +\newblock An introduction to computational algebraic geometry and commutative + algebra. + +\bibitem{SC:CLO2} +David Cox, John Little, and Donal O'Shea: +\newblock {\em Using algebraic geometry}. +\newblock Springer-Verlag, New York, 1998. + +\bibitem{SC:E} +David Eisenbud: +\newblock {\em Commutative algebra with a view toward algebraic geometry}. +\newblock Springer-Verlag, New York, 1995. + +\bibitem{SC:EH} +David Eisenbud and Joe Harris: +\newblock {\em The geometry of schemes}. +\newblock Springer-Verlag, New York, 2000. + +\bibitem{SC:H} +Joe Harris: +\newblock {\em Algebraic geometry, A first course}. +\newblock Springer-Verlag, New York, 1995. + +\end{thebibliography} + \egroup + \makeatletter + \renewcommand\thesection{\@arabic\c@section} + \makeatother + + + \part{Mathematical Computations} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% +%%%%% ../chapters/monomialIdeals/chapter +%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\bgroup +\title{Monomial Ideals} +\titlerunning{Monomial Ideals} +\toctitle{Monomial Ideals} +\author{Serkan Ho\c{s}ten + % \inst 1 + \and Gregory G.~Smith + % \inst 2 + } +\authorrunning{S. Ho\c{s}ten and G. G. Smith} +% \institute{Department of Mathematics, San Francisco State University, +% San Francisco, CA 94132, USA\and Department of Mathematics, University of +% California, Berkeley, CA 94720, USA} +\maketitle + +\newtheorem*{sproof}{Proof of Proposition}{\itshape}{\rmfamily} +%% old form caused problems: +%%%% \newtheorem*{sproof}{Proof of Proposition~\ref{pro:complexity}}{\itshape}{\rmfamily} + +\newcommand{\supp}{\operatorname{supp}} +\newcommand{\depth}{\operatorname{depth}} +\newcommand{\GL}{\operatorname{GL}} +\newcommand{\initial}{\operatorname{in}} +\newcommand{\Hilb}{\operatorname{Hilb}} +\newcommand{\codim}{\operatorname{codim}} +\newcommand{\sg}{{\sf g}} +\newcommand{\IP}{\operatorname{IP}} + +\begin{abstract} +Monomial ideals form an important link between commutative algebra and +combinatorics. In this chapter, we demonstrate how to implement +algorithms in \Mtwo for studying and using monomial ideals. We +illustrate these methods with examples from combinatorics, integer +programming, and algebraic geometry. +\end{abstract} + + +%%-------------------------------------------------------------- + +An ideal $I$ in $S = \bbbq[x_{1}, \dotsc, x_{n}]$ is called a monomial +ideal\index{monomial ideal}\index{ideal!monomial} if it satisfies any +of the following equivalent conditions: +\begin{enumerate} +\item[$(a)$] $I$ is generated by monomials, +\item[$(b)$] if $f = \sum_{\alpha \in \bbbn^{n}} k_{\alpha} +x^{\alpha}$ belongs to $I$ then $x^{\alpha} \in I$ whenever +$k_{\alpha} \neq 0$, +\item[$(c)$] $I$ is torus-fixed; in other words, if $(c_{1}, \dotsc, +c_{n}) \in (\bbbq^{*})^{n}$, then $I$ is fixed under the action $x_{i} +\mapsto c_{i}x_{i}$ for all $i$. +\end{enumerate} +It follows that a monomial ideal is uniquely determined by the +monomials it contains. Most operations are far simpler for a +monomial ideal than for an ideal generated by arbitrary polynomials. +In particular, many invariants can be effectively determined for +monomial ideals. As a result, one can solve a broad collection of +problems by reducing to or encoding data in a monomial ideal. The aim +of this chapter is to develop the computational aspects of monomial +ideals in \Mtwo and demonstrate a range of applications. + +This chapter is divided into five sections. Each section begins with +a discussion of a computational procedure involving monomial ideals. +Algorithms are presented as \Mtwo functions. We illustrate these +methods by solving problems from various areas of mathematics. +In particular, we include the \Mtwo code for generating interesting +families of monomial ideals. The first section introduces the basic +functions on monomial ideals in \Mtwo. To demonstrate these functions, +we use the Stanley-Reisner ideal associated to a simplicial complex to +compute its $f$-vector. Next, we present two algorithms for finding a +primary decomposition of a monomial ideal. In a related example, we +use graph ideals to study the complexity of determining the +codimension of a monomial ideal. The third section focuses on the +standard pairs of a monomial ideal; two methods are given for finding +the set of standard pairs. As an application, we use standard pairs +to solve integer linear programming problems. The fourth section +examines Borel-fixed ideals and generic initial ideals. Combining +these constructions with distractions, we demonstrate that the Hilbert +scheme $\Hilb^{\, 4t+1}(\bbbp^{4})$ is connected. Finally, we look at +the chains of associated primes in various families of monomial +ideals. + + +%%---------------------------------------------------------- +\section{The Basics of Monomial Ideals} + +Creating monomial ideals in \Mtwo is analogous to creating general +ideals. The monomial ideal\index{monomial +ideal}\index{ideal!monomial} generated by a sequence or list of +monomials can be constructed with the function {\tt monomialIdeal}\indexcmd{monomialIdeal}. +\beginOutput +i1 : S = QQ[a, b, c, d]; \\ +\endOutput +\beginOutput +i2 : I = monomialIdeal(a^2, a*b, b^3, a*c)\\ +\emptyLine +\ 2 3\\ +o2 = monomialIdeal (a , a*b, b , a*c)\\ +\emptyLine +o2 : MonomialIdeal of S\\ +\endOutput +\beginOutput +i3 : J = monomialIdeal\{a^2, a*b, b^2\}\\ +\emptyLine +\ 2 2\\ +o3 = monomialIdeal (a , a*b, b )\\ +\emptyLine +o3 : MonomialIdeal of S\\ +\endOutput +The type {\tt MonomialIdeal}\indexcmd{MonomialIdeal} is the class of all monomial ideals. If +an entry in the sequence or list is not a single monomial, then {\tt +monomialIdeal} takes only the leading monomial; recall that every +polynomial ring in \Mtwo is equipped with a monomial ordering. +\beginOutput +i4 : monomialIdeal(a^2+a*b, a*b+3, b^2+d)\\ +\emptyLine +\ 2 2\\ +o4 = monomialIdeal (a , a*b, b )\\ +\emptyLine +o4 : MonomialIdeal of S\\ +\endOutput + +There are also several methods of associating a monomial +ideal to an arbitrary ideal in a polynomial ring. The most important +of these is the initial ideal\index{initial +ideal}\index{ideal!initial} --- the monomial ideal generated by the +leading monomials of all elements in the given ideal. When applied to +an {\tt Ideal}, the function {\tt monomialIdeal} returns the initial +ideal. +\beginOutput +i5 : K = ideal(a^2, b^2, a*b+b*c)\\ +\emptyLine +\ 2 2\\ +o5 = ideal (a , b , a*b + b*c)\\ +\emptyLine +o5 : Ideal of S\\ +\endOutput +\beginOutput +i6 : monomialIdeal K\\ +\emptyLine +\ 2 2 2\\ +o6 = monomialIdeal (a , a*b, b , b*c )\\ +\emptyLine +o6 : MonomialIdeal of S\\ +\endOutput +This is equivalent to taking the leading monomials of a Gr\"{o}bner +basis\index{Grobner basis@Gr\"obner basis} for {\tt K}. In our example, the given +generators for {\tt K} are not a Gr\"{o}bner basis. +\beginOutput +i7 : monomialIdeal gens K\\ +\emptyLine +\ 2 2\\ +o7 = monomialIdeal (a , a*b, b )\\ +\emptyLine +o7 : MonomialIdeal of S\\ +\endOutput + +One can also test if a general ideal is generated by monomials with +the function {\tt isMonomialIdeal}\indexcmd{isMonomialIdeal}. +\beginOutput +i8 : isMonomialIdeal K\\ +\emptyLine +o8 = false\\ +\endOutput +\beginOutput +i9 : isMonomialIdeal ideal(a^5, b^2*c, d^11)\\ +\emptyLine +o9 = true\\ +\endOutput +The usual algebraic operations on monomial ideals are the same as on +general ideals. For example, we have +\beginOutput +i10 : I+J\\ +\emptyLine +\ 2 2\\ +o10 = monomialIdeal (a , a*b, b , a*c)\\ +\emptyLine +o10 : MonomialIdeal of S\\ +\endOutput + + +%%---------------------------------------------------------- +\subsection*{Example: Stanley-Reisner Ideals and $f$-vectors} + +Radical monomial ideals --- ideals generated by squarefree monomials +--- have a beautiful combinatorial interpretation in terms of +simplicial complexes\index{simplicial complex}. More explicitly, a +simplicial complex $\Delta$ on the vertex set $\{ x_{1}, \dotsc, x_{n} +\}$ corresponds to the ideal $I_{\Delta}$ in $S = \bbbq[x_{1}, \dotsc, +x_{n}]$ generated by all monomials $x_{i_{1}} \dotsb x_{i_{p}}$ such +that $\{x_{i_{1}}, \dotsc, x_{i_{p}} \} \not\in \Delta$. The ideal +$I_{\Delta}$ is called the Stanley-Reisner\index{Stanley-Reisner +ideal}\index{ideal!Stanley-Reisner} ideal of $\Delta$. + +To illustrate the connections between Stanley-Reisner ideals and +simplicial complexes, we consider the +$f$-vector\index{f-vector@$f$-vector}\index{simplicial complex!$f$-vector}. +Perhaps the most important invariant of a simplicial complex, the +$f$-vector of a $d$-dimensional simplicial complex $\Delta$ is +$(f_{0}, f_{1}, \dotsc, f_{d}) \in \bbbn^{d+1}$, where $f_{i}$ denotes +the number of $i$-dimensional faces in $\Delta$. From the monomial +ideal point of view, the $f$-vector is encoded in the Hilbert +series\index{Hilbert series} of the quotient ring $S/I_{\Delta}$ as +follows: + +\begin{theorem} +If $\Delta$ is a simplicial complex with $f$-vector $(f_{0}, \dotsc, +f_{d})$, then the Hilbert series of $S / I_{\Delta}$ is +\[ +H_{S/I_{\Delta}}(t) = \sum_{i=-1}^{d} \frac{f_{i}t^{i+1}}{(1-t)^{i+1}} +\, , +\] +where $f_{-1} = 1$. +\end{theorem} + +\begin{proof} +Following Stanley~\cite{MR98h:05001}, we work with the fine +grading and then +specialize. The fine grading of $S$ is the $\bbbz^{n}$-grading +defined by $\deg x_{i} = \mathbf{e}_{i} \in \bbbz^{n}$, where +$\mathbf{e}_{i}$ is the $i$-th standard basis vector. The +support\index{monomial!support} of a monomial $x^{\alpha}$ is defined +to be the set $\supp(x^{\alpha}) = \{ x_{i} : \alpha_{i} > 0 \}$. +Observe that $x^{\alpha} \neq 0$ in $S / I_{\Delta}$ if and only if +$\supp(x^{\alpha}) \in \Delta$. Moreover, the nonzero monomials +$x^{\alpha}$ form a $\bbbq$-basis of $S / I_{\Delta}$. By counting +such monomials according to their support, we obtain the following +expression for the Hilbert series with the fine grading: +\[ +H_{S/I_{\Delta}}(\mathbf{t}) = \sum_{F \in \Delta} +\sum_{\substack{\alpha \in \bbbn^{n} \\ \supp(x^{\alpha}) = F}} +\mathbf{t}^{\alpha} = \sum_{F \in \Delta} \prod_{x_{i} \in F} +\frac{t_{i}}{1-t_{i}} \, . +\] +Finally, by replacing each $t_{i}$ with $t$, we complete the +proof.\qed +\end{proof} + +Since $H_{S/I_{\Delta}}(t)$ is typically expressed in the form +$\frac{h_{0} + h_{1}t + \dotsb + h_{d}t^{d}}{(1-t)^{d+1}}$, we can +obtain the $f$-vector by using the identity $\sum_{i} h_{i}t^{i} = +\sum_{j=0}^{d} f_{j-1}t^{j}(1-t)^{d-j}$. In particular, we can +compute $f$-vectors from Stanley-Reisner ideals as follows: +\beginOutput +i11 : fvector = I -> (\\ +\ R := (ring I)/I;\\ +\ d := dim R;\\ +\ N := poincare R;\\ +\ t := first gens ring N;\\ +\ while 0 == substitute(N, t => 1) do N = N // (1-t);\\ +\ h := apply(reverse toList(0..d), i -> N_(t^i));\\ +\ f := j -> sum(0..j+1, i -> binomial(d-i, j+1-i)*h#(d-i));\\ +\ apply(toList(0..d-1), j -> f(j)));\\ +\endOutput +For example, we can demonstrate that the $f$-vector of the octahedron +is $(6,12,8)$. +\beginOutput +i12 : S = QQ[x_1 .. x_6];\\ +\endOutput +\beginOutput +i13 : octahedron = monomialIdeal(x_1*x_2, x_3*x_4, x_5*x_6)\\ +\emptyLine +o13 = monomialIdeal (x x , x x , x x )\\ +\ 1 2 3 4 5 6\\ +\emptyLine +o13 : MonomialIdeal of S\\ +\endOutput +\beginOutput +i14 : fvector octahedron\\ +\emptyLine +o14 = \{6, 12, 8\}\\ +\emptyLine +o14 : List\\ +\endOutput + +\begin{figure} +\begin{center} +\epsfysize=1.8in \epsfbox{octahedron.eps} +\end{center} +\caption{The octahedron} +\end{figure} + +More generally, we can recursively construct simplicial $2$-spheres +with $f_{0} \geq 4$, starting with the tetrahedron, by pulling a point +in the relative interior of a facet. This procedure leads to the +following family: +\beginOutput +i15 : simplicial2sphere = v -> ( \\ +\ S := QQ[x_1..x_v]; \\ +\ if v === 4 then monomialIdeal product gens S \\ +\ else ( \\ +\ L := \{\};\\ +\ scan(1..v-4, i -> L = L | apply(v-i-3, \\ +\ j -> x_i*x_(i+j+4))); \\ +\ scan(2..v-3, i -> L = L | \{x_i*x_(i+1)*x_(i+2)\}); \\ +\ monomialIdeal L));\\ +\endOutput +\beginOutput +i16 : apply(\{4,5,6,7,8\}, j -> fvector simplicial2sphere(j))\\ +\emptyLine +o16 = \{\{4, 6, 4\}, \{5, 9, 6\}, \{6, 12, 8\}, \{7, 15, 10\}, \{8, 18, 12\}\}\\ +\emptyLine +o16 : List\\ +\endOutput +In fact, it follows from Euler's formula that the $f$-vector of any +simplicial $2$-sphere has the form $(v, 3v-6, 2v-4)$ for $v \geq 4$. +The problem of characterizing the $f$-vectors for triangulations of +$d$-spheres is open for $d \geq 3$. One of the most important results +in this direction is the upper bound theorem for simplicial spheres +(Corollary~5.4.7 Bruns and Herzog~\cite{MR95h:13020}) which states +that the cyclic polytope has the maximal number of $i$-faces for all +$i$. We point out that Stanley's proof of this theorem depends +heavily on these methods from commutative algebra. + +On the other hand, the $f$-vectors for several major classes of +simplicial complexes have been characterized. The Kruskal-Katona +theorem (Theorem~8.32 in Ziegler~\cite{MR96a:52011}) gives necessary +and sufficient conditions for a sequence of nonnegative integers to be +an $f$-vector of a simplicial complex. Stanley~\cite{MR98h:05001} +describes the $f$-vectors of pure shellable complexes and +Cohen-Macaulay complexes. Given the Betti numbers of a simplicial +complex, Bj\"{o}rner and Kalai~\cite{MR89m:52009} specify the +$f$-vectors. Finally, the $g$-theorem (Theorem~8.35 in +Ziegler~\cite{MR96a:52011}) characterizes the $f$-vectors for boundary +complexes of a simplicial convex polytope. + +For a further study of Stanley-Reisner ideals see Bruns and +Herzog~\cite{MR95h:13020} and Stanley~\cite{MR98h:05001}. For more +information of $f$-vectors, see Ziegler~\cite{MR96a:52011} and +Bj\"{o}rner~\cite{MR96h:05213}. + +%%---------------------------------------------------------- +\section{Primary Decomposition} + +A primary decomposition\index{primary decomposition} of an ideal $I$ +is an expression of $I$ as a finite intersection of primary ideals; an +ideal $J$ is called primary\index{ideal!primary} if $r_{1}r_{2} \in J$ +implies either $r_{1} \in J$ or $r_{2}^{\ell} \in J$ for some $\ell > +0$. Providing an algorithm for computing the primary decomposition of +an arbitrary ideal in a polynomial ring is quite difficult. However, +for monomial ideals, there are two algorithms which are relatively +simple to describe. + +We first present a recursive method for generating an irreducible +primary decomposition. It is based on the following two observations. +\begin{lemma} +Let $I$ be a monomial ideal in $S = \bbbq[x_1, \dotsc, x_n]$. +\begin{enumerate} +\item[$(1)$] If $I$ is generated by pure powers of a subset of the +variables, then it is a primary ideal. +\item[$(2)$] If $r$ is minimal generator of $I$ such that $r = +r_{1}r_{2}$ where $r_{1}$ and $r_{2}$ are relatively prime, then $I = +\big(I + \langle r_{1} \rangle \big) \cap \big(I + \langle r_{2} +\rangle \big)$. +\end{enumerate} +\end{lemma} + +\begin{proof} +$(1)$ This follows immediately from the definition of primary. $(2)$ +Since $I$ is a monomial ideal, it is enough to show that $I$ and +$\big( I + \langle r_{1} \rangle \big) \cap \big( I + \langle r_{1} +\rangle \big)$ contain the same monomials. A monomial $r'$ belongs to +$\big( I + \langle r_{j} \rangle \big)$ if and only if $r' \in I$ or +$r_{j}$ divides $r'$. Because $r_{1}$ and $r_{2}$ are relative prime, +we have +\[ +r' \in \big( I + \langle r_{1} \rangle \big) \cap \big( I + \langle +r_{1} \rangle \big) \Leftrightarrow \text{ $r' \in I$ or $r_{1}r_{2}$ +divides $r'$ } \Leftrightarrow \text{ $r' \in I$} \, . \qquad \qed +\] +\end{proof} + +The following is an implementation of the resulting algorithm: +\beginOutput +i17 : supp = r -> select(gens ring r, e -> r {\char`\%} e == 0);\\ +\endOutput +\beginOutput +i18 : monomialDecompose = method();\\ +\endOutput +\beginOutput +i19 : monomialDecompose List := L -> (\\ +\ P := select(L, I -> all(first entries gens I, \\ +\ r -> #supp(r) < 2) === false);\\ +\ if #P > 0 then (\\ +\ I := first P;\\ +\ m := first select(first entries gens I, \\ +\ r -> #supp(r) > 1);\\ +\ E := first exponents m;\\ +\ i := position(E, e -> e =!= 0);\\ +\ r1 := product apply(E_\{0..i\}, (gens ring I)_\{0..i\}, \\ +\ (j, r) -> r^j);\\ +\ r2 := m // r1;\\ +\ monomialDecompose(delete(I, L) | \{I+monomialIdeal(r1),\\ +\ I+monomialIdeal(r2)\}))\\ +\ else L);\\ +\endOutput +\beginOutput +i20 : monomialDecompose MonomialIdeal := I -> monomialDecompose \{I\};\\ +\endOutput +Here is a small example illustrating this method. +\beginOutput +i21 : S = QQ[a,b,c,d];\\ +\endOutput +\beginOutput +i22 : I = monomialIdeal(a^3*b, a^3*c, a*b^3, b^3*c, a*c^3, b*c^3)\\ +\emptyLine +\ 3 3 3 3 3 3\\ +o22 = monomialIdeal (a b, a*b , a c, b c, a*c , b*c )\\ +\emptyLine +o22 : MonomialIdeal of S\\ +\endOutput +\beginOutput +i23 : P = monomialDecompose I;\\ +\endOutput +\beginOutput +i24 : scan(P, J -> << endl << J << endl);\\ +\emptyLine +monomialIdeal (b, c)\\ +\emptyLine +monomialIdeal (a, c)\\ +\emptyLine +\ 3 3 3\\ +monomialIdeal (a , b , c )\\ +\emptyLine +monomialIdeal (a, b)\\ +\emptyLine +\ 3 3\\ +monomialIdeal (a , b, c )\\ +\emptyLine +monomialIdeal (a, b)\\ +\emptyLine +\ 3 3\\ +monomialIdeal (a, b , c )\\ +\endOutput +\beginOutput +i25 : I == intersect(P)\\ +\emptyLine +o25 = true\\ +\endOutput +As we see from this example, this procedure doesn't necessarily +yield an irredundant decomposition. + +The second algorithm for finding a primary decomposition of a monomial +ideal $I$ is based on the Alexander dual\index{Alexander +dual}\index{dual, Alexander} of $I$. The Alexander dual was first +introduced for squarefree monomial ideals. In this case, it is the +monomial ideal of the dual of the simplicial complex $\Delta$ +corresponding to $I$. By definition the dual complex of $\Delta$ is +$\Delta^{\vee} = \{ F : F^{c} \not\in \Delta \}$, where $F^{c} = +\{x_{1}, \dotsc, x_{n}\} \setminus F$. The following general +definition appears in Miller~\cite{M},~\cite{MR1779598}. If +$I \subseteq \bbbq[x_{1}, +\dotsc, x_{n}]$ is a monomial ideal and $x^{\lambda}$ is the least +common multiple of the minimal generators of $I$, then the Alexander +dual of $I$ is +\[ +I^{\vee} = \left\langle \prod_{\beta_{i} > 0} +x_{i}^{\lambda_{i}+1-\beta_{i}} : \begin{tabular}{l} \text{$\langle +x_{i}^{\beta_{i}} : \beta_{i} \geq 1\rangle$ is an +irredundant} \\ \text{irreducible component of $I$} \end{tabular} +\right\rangle \, . +\] +In particular, the minimal generators of $I^{\vee}$ correspond to the +irredundant irreducible components of $I$. The next proposition +provides a useful way of computing $I^{\vee}$ given a set of +generators for $I$. + +\begin{proposition} +If $I$ is a monomial ideal and $x^{\lambda}$ is the least common +multiple of the minimal generators of $I$, then the generators for +$I^{\vee}$ are those generators of the ideal $\left( \langle +x_{1}^{\lambda_{1}+1}, \dotsc, x_{n}^{\lambda_{n}+1} \rangle : I +\right)$ that are not divisible by $x_{i}^{\lambda_{i}+1}$ for $1 \leq +i \leq n$. +\end{proposition} + +\begin{proof} +See Theorem~2.1 in Miller~\cite{M}. \qed +\end{proof} + +Miller's definition of Alexander dual is even more general than the one +above. The resulting algorithm for computing this general Alexander +dual and primary decomposition are implemented in \Mtwo as follows. +For the Alexander dual we use, the list {\tt a} that appears +as an input argument for {\tt dual}\indexcmd{dual} should be list of exponents of +the least common multiple of the minimal generators of $I$. +\beginOutput +i26 : code(dual, MonomialIdeal, List)\\ +\emptyLine +o26 = -- ../../../m2/monideal.m2:260-278\\ +\ dual(MonomialIdeal, List) := (I,a) -> ( -- Alexander dual\\ +\ R := ring I;\\ +\ X := gens R;\\ +\ aI := lcmOfGens I;\\ +\ if aI =!= a then (\\ +\ if #aI =!= #a \\ +\ then error (\\ +\ "expected list of length ",\\ +\ toString (#aI));\\ +\ scan(a, aI, \\ +\ (b,c) -> (\\ +\ if b X#i^(a#i+1)));\\ +\ monomialIdeal contract(\\ +\ lift(syz transpose vars S, R), \\ +\ product(#X, i -> X#i^(a#i))))\\ +\endOutput +\beginOutput +i27 : code(primaryDecomposition, MonomialIdeal)\\ +\emptyLine +o27 = -- ../../../m2/monideal.m2:286-295\\ +\ primaryDecomposition MonomialIdeal := (I) -> (\\ +\ R := ring I;\\ +\ aI := lcmOfGens I;\\ +\ M := first entries gens dual I;\\ +\ L := unique apply(#M, i -> first exponents M_i);\\ +\ apply(L, i -> monomialIdeal apply(#i, j -> ( \\ +\ if i#j === 0 then 0_R \\ +\ else R_j^(aI#j+1-i#j)\\ +\ )))\\ +\ )\\ +\endOutput +This direct algorithm is more efficient than our recursive algorithm. +In particular, it gives an irredundant decomposition. For example, +when we use it to determine a primary decomposition for the ideal {\tt +I} above, we obtain +\beginOutput +i28 : L = primaryDecomposition I;\\ +\endOutput +\beginOutput +i29 : scan(L, J -> << endl << J << endl);\\ +\emptyLine +\ 3 3 3\\ +monomialIdeal (a , b , c )\\ +\emptyLine +monomialIdeal (b, c)\\ +\emptyLine +monomialIdeal (a, b)\\ +\emptyLine +monomialIdeal (a, c)\\ +\endOutput +\beginOutput +i30 : I == intersect L\\ +\emptyLine +o30 = true\\ +\endOutput + +For a family of larger examples, we consider the tree +ideals\index{ideal!tree}: +\[ +\left\langle \big({\textstyle \prod_{i \in F}} x_{i}\big)^{n-|F|+1} : +\text{ $\emptyset \neq F \subseteq \{ x_{1}, \dotsc, x_{n} \}$} +\right\rangle \, . +\] +These ideals are so named because their standard monomials (the +monomials not in the ideal) correspond to trees on $n+1$ labeled +vertices. We determine the number of irredundant irreducible +components as follows: +\beginOutput +i31 : treeIdeal = n -> (\\ +\ S = QQ[vars(0..n-1)];\\ +\ L := delete(\{\}, subsets gens S);\\ +\ monomialIdeal apply(L, F -> (product F)^(n - #F +1)));\\ +\endOutput +\beginOutput +i32 : apply(2..6, i -> #primaryDecomposition treeIdeal i)\\ +\emptyLine +o32 = (2, 6, 24, 120, 720)\\ +\emptyLine +o32 : Sequence\\ +\endOutput + + +%%---------------------------------------------------------- +\subsection*{Example: Graph Ideals and Complexity Theory} + +Monomial ideals also arise in graph theory. Given a graph $G$ with +vertices $\{x_{1}, \dotsc, x_{n}\}$, we associate the +ideal\index{ideal!graph} $I_{G}$ in $\bbbq[x_{1}, \dotsc, x_{n}]$ +generated by the quadratic monomials $x_{i}x_{j}$ such that $x_{i}$ is +adjacent to $x_{j}$. The primary decomposition of $I_{G}$ is related to +the graph $G$ as follows. Recall that a subset $F \subseteq \{x_{1}, +\dotsc, x_{n}\}$ is called a {\em vertex cover}\index{vertex +cover}\index{cover} of $G$ if each edge in $G$ is incident to at least +one vertex in $F$. + +\begin{lemma} \label{lem:graphideal} +If $G$ is a graph and $\mathcal{C}$ is the set of minimal vertex +covers of $G$ then the irreducible irredundant primary +decomposition\index{primary decomposition} of $I_{G}$ is $\bigcap_{F +\in \mathcal{C}} P_{F^{c}}$, where $P_{F^{c}}$ is the prime ideal +$\langle x_{i} : x_{i} \not\in F^{c} \rangle = +\langle x_{i} : x_{i} \in F \rangle$. +\end{lemma} + +\begin{proof} +Since each generator of $I_{G}$ corresponds to an edge in $G$, it +follows from the {\tt monomialDecompose} algorithm that $I_{G}$ has an +irreducible primary decomposition of the form: $I_{G} = \bigcap +P_{F^{c}}$, where $F$ is a vertex cover. To obtain an +irredundant decomposition, one clearly needs only the minimal vertex +covers. \qed +\end{proof} + +As an application of graph ideals, we examine the complexity of +determining the codimension\index{ideal!codimension} of a monomial +ideal. In fact, following Bayer and Stillman~\cite{MR94f:13018}, we +prove + +\begin{proposition} \label{pro:complexity} +The following decision problem is NP-complete: +\begin{equation} \tag{{\sc Codim}} +\text{\begin{minipage}[c]{200pt} +Given a monomial ideal $I \subseteq \bbbq[x_1, \dotsc, x_n]$ +and $m \in \bbbn$, is $\codim I \leq m$? +\end{minipage}} +\end{equation} +\end{proposition} + +By definition, a decision problem is NP-complete\index{NP-complete} if +all other problems in the class NP can be reduced to it. To prove +that a particular problem is NP-complete, it suffices to show: $(1)$ +the problem belongs to the class NP; $(2)$ some known NP-complete +problem reduces to the given decision problem (see Lemma~2.3 in Garey +and Johnson~\cite{MR80g:68056}). One of the ``standard NP-complete'' +problems (see section~3.1 in Garey and Johnson~\cite{MR80g:68056}) is +the following: +\begin{equation} \tag{{\sc Vertex Cover}} +\text{\begin{minipage}[c]{200pt} Given a graph $G$ and $m \in \bbbn$, +is there a vertex cover $F$ such that $|F| \leq m$? \end{minipage}} +\end{equation} + +\begin{sproof} +$(1)$ Observe that a monomial ideal $I$ has codimension at most $m$ if +and only if $I \subseteq P_{F^{c}}$ for some $F$ with $|F| +\leq m$. Now, if $I$ has codimension at most $m$, then given an +appropriate choice of $F$, one can verify in polynomial time that $I +\subseteq P_{F^{c}}$ and $|F| \leq m$. Therefore, the {\sc +Codim} problem belongs to the class NP. + +$(2)$ Lemma~\ref{lem:graphideal} implies that $I_{G}$ has codimension +$m$ if and only if $G$ has a vertex cover of size at most $m$. In +particular, the {\sc Vertex Cover} problem reduces to the {\sc Codim} +problem. \qed +\end{sproof} + +Thus, assuming P $\neq$ NP, there is no polynomial time algorithm for +finding the codimension of a monomial ideal. Nevertheless, we can +effectively compute the codimension for many interesting examples. + +To illustrate this point, we consider the following family of +examples. Let $S = \bbbq[X]$ denote the polynomial ring generated by +the entries of a generic $m \times n$ matrix $X = [x_{i,j}]$. Let +$I_{k}$\index{ideal!of minors} be the ideal generated by the $k \times +k$ minors of $X$. Since the Hilbert function of $S / I_{k}$ equals +the Hilbert function of $S / \initial(I_{k})$ (see Theorem~15.26 in +Eisenbud~\cite{MR97a:13001}), we can determine the codimension $I_{k}$ +by working with the monomial ideal $\initial(I_{k})$. Because +Sturmfels~\cite{MR91m:14076} shows that the set of $k \times k$-minors +of $X$ is the reduced Gr\"{o}bner basis of $I_{k}$ with respect to the +lexicographic term order induced from the variable order +\[ +x_{1,n} > x_{1,n-1} > \dotsb > x_{1,1} > x_{2,n} > \dotsb > x_{2,1} > +\dotsb > x_{m,n} > \dotsb > x_{m,1} \, , +\] +we can easily calculate $\initial(I_k)$. In particular, in \Mtwo we +have +\beginOutput +i33 : minorsIdeal = (m,n,k) -> (\\ +\ S := QQ[x_1..x_(m*n), MonomialOrder => Lex];\\ +\ I := minors(k, matrix table(m, n, (i,j) -> x_(i*n+n-j)));\\ +\ forceGB gens I;\\ +\ I);\\ +\endOutput +\beginOutput +i34 : apply(2..8, i -> time codim monomialIdeal minorsIdeal(i,2*i,2))\\ +\ -- used 0.02 seconds\\ +\ -- used 0.05 seconds\\ +\ -- used 0.1 seconds\\ +\ -- used 0.36 seconds\\ +\ -- used 1.41 seconds\\ +\ -- used 5.94 seconds\\ +\ -- used 25.51 seconds\\ +\emptyLine +o34 = (3, 10, 21, 36, 55, 78, 105)\\ +\emptyLine +o34 : Sequence\\ +\endOutput +The properties of $I_{k}$ are further developed in chapter~11 of +Sturmfels~\cite{MR97b:13034} and chapter~7 of Bruns and +Herzog~\cite{MR95h:13020} + +For more on the relationships between a graph and its associated +ideal, see Villarreal~\cite{MR91b:13031}, Simis, Vasconcelos and +Villarreal~\cite{MR99c:13004}, and Ohsugi and +Hibi~\cite{MR2000a:13010}. + +\beginOutput +i35 : erase symbol x;\\ +\endOutput + +%%---------------------------------------------------------- +\section{Standard Pairs} + +In this section, we examine a combinatorial object associated to a +monomial ideal. In particular, we present two algorithms for +computing the standard pairs of a monomial ideal from its minimal +generators. Before giving the definition of a standard pair, we +consider an example. + +\begin{figure} +\begin{center} +\epsfysize=2.4in \epsfbox{standardpairs-fixed.eps} +\end{center} +\caption{Staircase diagram for $I = \langle xy^3z, xy^2z^2, y^3z^2, +y^2z^3 \rangle$} +\end{figure} + +\begin{example} \label{std-ex} +Let $I = \langle xy^3z, xy^2z^2, y^3z^2, y^2z^3 \rangle$ in +$\bbbq[x,y,z]$. We identify the monomials in $\bbbq[x,y,z]$ +with the lattice points in $\bbbn^3$; see Figure~2. The +standard monomials of $I$, those monomials which are not in $I$, can +be enumerated as follows: $(i)$ monomials corresponding to lattice +points in the $xy$-plane, $(ii)$ monomials corresponding to lattice +points in the $xz$-plane, $(iii)$ monomials corresponding to lattice +points in the plane parallel to the $xz$-plane containing $(0,1,0)$, +$(iv)$ monomials corresponding to lattice points on the line parallel +to the $y$-axis containing $(0,0,1)$, $(v)$ monomials corresponding to +lattices point on the line parallel to the $x$-axis containing +$(0,2,1)$, and $(vi)$ the monomial $y^{2}z^{2}$. +\end{example} + +Following Sturmfels, Trung and Vogel~\cite{MR96i:13029}, we make the +following definitions. Given a monomial $x^{\alpha}$ and a subset $F +\subseteq \{ x_{1}, \dotsc, x_{n} \}$, we index the set of monomials +of the form $x^{\alpha} \cdot x^{\beta}$ where $\supp(x^{\beta}) +\subseteq F$ by the pair $(x^{\alpha}, F)$. A standard +pair\index{standard pair} of a monomial ideal $I$ is a pair +$(x^{\alpha}, F)$ satisfying the following three conditions: +\begin{enumerate} +\item[$(1)$] $\supp(x^{\alpha}) \cap F = \emptyset$, +\item[$(2)$] all of the monomials represented by this pair are +standard, and +\item[$(3)$] $(x^{\alpha}, F) \not\subseteq (x^{\beta}, G)$ for any +other pair $(x^{\beta}, G)$ satisfying the first two conditions. +\end{enumerate} +Hence, the six standard pairs +\[ +(1, \{x,y\}), (1, \{x,z\}), (y,\{x,z\}), (z, \{y\}), (y^{2}z, \{x\}), +(y^2z^2, \emptyset) +\] +in Example~\ref{std-ex} correspond to $(i)$--$(vi)$. + +Observe that the set of standard pairs of $I$ gives an irreducible +decomposition\index{primary decomposition} of $I = \bigcap \langle +x_{i}^{\alpha_{i}+1} : \text{ $x_{i} \notin F$} \rangle$, where the +intersection is over all standard pairs $(x^{\alpha}, F)$. Moreover, +the prime ideal $P_F := \langle x_{i} : \text{ $x_{i} \notin F$} +\rangle$ is an associated prime of $I$ if and only if there exists a +standard pair of the form $(\bullet, F)$; see Sturmfels, Trung and +Vogel~\cite{MR96i:13029} for details. + +Our first algorithm for computing the set of standard +pairs\index{standard pair} is taken from Ho\c{s}ten and +Thomas~\cite{MR2000f:13052}. The ideas behind it are as follows: +given a witness $w_1 = x^{\alpha}$ for the associated prime $P_F := +\langle x_{i} : \text{ $x_{i} \notin F$} \rangle$, that is $(I : +x^{\alpha}) = P_F$, set $w_2 = \prod_{x_i \in \supp(w_1) \cap F^c} +x_i^{\alpha_{i}}$. It follows that $(w_2, F)$ is a standard pair of +$I$. Now, consider the standard pairs of the slightly larger ideal $I ++ \langle w_1 \rangle$. Clearly $(w_2, F)$ is not a standard pair of +this ideal because $w_1$ ``destroys'' it. This larger ideal might +have standard pairs which cover standard monomials in $(w_2, F)$ that +are not in the pair $(w_1, F)$. However, all other standard pairs are +the same as the original ideal $I$. Thus, the problem of finding all +standard pairs of $I$ reduces to determining if a standard pair of $I ++ \langle w_1 \rangle$ is a standard pair for $I$. To decide if a +pair $(x^{\beta}, G)$ of $I + \langle w_1 \rangle$ is a standard pair +of $I$, we first check that $P_{F}$ is an associated prime of $I$. If +this is true, we determine if $(w_{2},F)$ is covered by +$(x^{\beta},G)$. + +The \Mtwo version of this algorithm takes the following form: +\beginOutput +i36 : stdPairs = I -> (\\ +\ S := ring I;\\ +\ X := gens S;\\ +\ std := \{\};\\ +\ J := I;\\ +\ while J != S do (\\ +\ w1 := 1_S;\\ +\ F := X;\\ +\ K := J;\\ +\ while K != 0 do (\\ +\ g1 := (ideal mingens ideal K)_0;\\ +\ x := first supp g1;\\ +\ w1 = w1 * g1 // x;\\ +\ F = delete(x, F);\\ +\ K = K : monomialIdeal(g1 // x);\\ +\ L := select(first entries gens K, \\ +\ r -> not member(x, supp r));\\ +\ if #L > 0 then K = monomialIdeal L\\ +\ else K = monomialIdeal 0_S;);\\ +\ w2 := w1;\\ +\ scan(X, r -> if not member(r, supp w1) or member(r, F)\\ +\ then w2 = substitute(w2, \{r => 1\}));\\ +\ P := monomialIdeal select(X, r -> not member(r, F));\\ +\ if (I:(I:P) == P) and (all(std, p -> \\ +\ (w2 {\char`\%} (first p) != 0) or not\\ +\ isSubset(supp(w2 // first p) | F, last p)))\\ +\ then std = std | \{\{w2, F\}\};\\ +\ J = J + monomialIdeal(w1););\\ +\ std);\\ +\endOutput +We can compute the standard pairs of Example~\ref{std-ex} using this +\Mtwo function: +\beginOutput +i37 : S = QQ[x,y,z];\\ +\endOutput +\beginOutput +i38 : I = monomialIdeal(x*y^3*z, x*y^2*z^2, y^3*z^2, y^2*z^3);\\ +\emptyLine +o38 : MonomialIdeal of S\\ +\endOutput +\beginOutput +i39 : scan(time stdPairs I, P -> << endl << P << endl);\\ +\ -- used 0.66 seconds\\ +\emptyLine +\{y, \{x, z\}\}\\ +\emptyLine +\{1, \{x, z\}\}\\ +\emptyLine +\ 2 2\\ +\{y z , \{\}\}\\ +\emptyLine +\{z, \{y\}\}\\ +\emptyLine +\ 2\\ +\{y z, \{x\}\}\\ +\emptyLine +\{1, \{x, y\}\}\\ +\endOutput + +Our second algorithm is taken from section~3.2 of Saito, Sturmfels and +Takayama~\cite{MR1734566}. The proposition below provides the main +ingredient for this algorithm. If $I$ is a monomial ideal and $F +\subseteq \{ x_{1},\dotsc, x_{n} \}$, we write $I_F$ for the monomial +ideal in $\bbbq[x_i : \text{ $x_{i} \notin F$}]$ obtained by replacing +each $x_{i} \in F$ with $1$ in every minimal generator of $I$. + +\begin{proposition} +For $(x^{\alpha}, F)$ to be a standard pair of $I$, it is necessary +and sufficient that $(x^{\alpha}, \emptyset)$ be a standard pair of +$I_F$. +\end{proposition} + +\begin{proof} +Lemma 3.1 in Sturmfels, Trung and Vogel \cite{MR96i:13029}. +\end{proof} + +The definition of a standard pair\index{standard pair} implies that +$(x^{\alpha}, \emptyset)$ is a standard pair of $I_F$ if and only if +$x^{\alpha}$ is one of the finitely many monomials contained in $(I_F +: P_F^\infty)$ but not contained in $I_F$, where $P_F = \langle x_i: +x_i \notin F \rangle$. Since ideal quotients and saturations are +implemented in \Mtwo, this reduces the problem to finding a set $D$ +which contains $F$ for every associated prime $P_{F}$ of $I$. One +approach is to simply compute the associated primes of $I$ from a +primary decomposition. + +The method {\tt standardPairs}\indexcmd{standardPairs} uses this algorithm to determine the +set of standard pairs for a monomial ideal. +\beginOutput +i40 : code(standardPairs, MonomialIdeal, List)\\ +\emptyLine +o40 = -- ../../../m2/monideal.m2:318-341\\ +\ standardPairs(MonomialIdeal, List) := (I,D) -> (\\ +\ R := ring I;\\ +\ X := gens R;\\ +\ S := \{\};\\ +\ k := coefficientRing R;\\ +\ scan(D, L -> ( \\ +\ Y := X;\\ +\ m := vars R;\\ +\ Lset := set L;\\ +\ Y = select(Y, r -> not Lset#?r);\\ +\ m = substitute(m, apply(L, r -> r => 1));\\ +\ -- using monoid to create ring to avoid \\ +\ -- changing global ring.\\ +\ A := k (monoid [Y]);\\ +\ phi := map(A, R, substitute(m, A));\\ +\ J := ideal mingens ideal phi gens I;\\ +\ Jsat := saturate(J, ideal vars A);\\ +\ if Jsat != J then (\\ +\ B := flatten entries super basis (\\ +\ trim (Jsat / J));\\ +\ psi := map(R, A, matrix\{Y\});\\ +\ S = join(S, apply(B, b -> \{psi(b), L\}));\\ +\ )));\\ +\ S)\\ +\endOutput +\beginOutput +i41 : time standardPairs I;\\ +\ -- used 0.83 seconds\\ +\endOutput + +As an example, we will compute the standard pairs of the permutahedron +ideal\index{ideal!permutahedron}. Let $S = \bbbq[x_1, \dotsc, x_n]$ +and let $\mathfrak{S}_n$ be the symmetric group of order $n$. We +write $\rho$ for the vector $(1, 2, \dotsc, n)$ and $\sigma(\rho)$ for +the vector obtained by applying $\sigma \in \mathfrak{S}_n$ to the +coordinates of $\rho$. The $n$-th permutahedron ideal is $\langle +x^{\sigma(\rho)} : \text{ $\sigma \in \mathfrak{S}_n$} \rangle$. We +compute the number of standard pairs for $2 \leq n \leq 5$. +\beginOutput +i42 : permutohedronIdeal = n -> (\\ +\ S := QQ[X_1..X_n];\\ +\ monomialIdeal terms det matrix table(n ,gens S, \\ +\ (i,r) -> r^(i+1)));\\ +\endOutput +\beginOutput +i43 : L = apply(\{2,3,4,5\}, j -> standardPairs(permutohedronIdeal(j)));\\ +\endOutput +\beginOutput +i44 : apply(L, i -> #i)\\ +\emptyLine +o44 = \{3, 10, 53, 446\}\\ +\emptyLine +o44 : List\\ +\endOutput +\beginOutput +i45 : erase symbol x; erase symbol z;\\ +\endOutput + + +%%---------------------------------------------------------- +\subsection*{Example: Integer Programming Problems} + +As an application of standard pairs\index{standard pair}, we show how +to solve integer linear programming problems\index{integer programming}. +Let $A$ be a $d \times n$ matrix of nonnegative integers, let $\omega +\in \bbbr^{n}$ and fix $\beta \in \bbbz^{d}$. We focus on the +following optimization problem +\[ +\IP_{A,\omega}(\beta) : \,\,\, \text{ minimize $\omega \cdot \alpha$ +subject to $A \alpha = \beta$, $\alpha \in \bbbn^n$.} +\] +We view this integer linear program as a family depending on the +vector $\beta$. The algorithm we present for solving +$\IP_{A,\omega}(\beta)$ depends on the proposition below. + +The toric ideal\index{toric ideal}\index{ideal!toric} $I_{A} \subseteq +S = \bbbq[x_{1}, \dotsc, x_{n}]$ associated to $A$ is the binomial +ideal generated by $x^{\gamma} - x^{\delta}$ where $\gamma$, $\delta +\in \bbbn^{n}$ and $A \gamma = A \delta$. We write $\initial_{\, +\omega}(I_{A})$ for the initial ideal\index{initial ideal} of $I_A$ +with respect to the following order: +\[ +x^{\gamma} \prec_{\omega} x^{\delta} \Longleftrightarrow \begin{cases} +\omega \cdot \gamma < \omega \cdot \delta & \text{ or } \\ +\omega \cdot \gamma = \omega \cdot \delta & \text{ and } x^{\alpha} +\prec_{{\rm rlex}} x^{\gamma} \, . +\end{cases} +\] +For more information on toric ideals and their initial ideals see +Sturmfels~\cite{MR97b:13034}. + +\begin{proposition} +\begin{enumerate} +\item[$(1)$] A monomial $x^{\alpha}$ is a standard monomial of +$\initial_{\, \omega}(I_{A})$ if and only if $\alpha$ is the optimal +solution to the integer program $\IP_{A,\omega}(A\alpha)$. +\item[$(2)$] If $(\bullet, F)$ is a standard pair of +$\initial_{\, \omega}(I_{A})$, then the columns of $A$ corresponding to +$F$ are linearly independent. +\end{enumerate} +\end{proposition} + +\begin{proof} +See Proposition~2.1 in Ho\c{s}ten and Thomas~\cite{MR2000b:13037} for +the proof of the first statement. The second statement follows from +Corollary~2.9 of the same article. +\qed +\end{proof} + +The first statement implies that the standard pairs of $\initial_{\, +\omega}(I_{A})$ cover all optimal solutions to all integer programs +in $\IP_{A,\omega}$. If $\alpha$ is the optimal solution to +$\IP_{A,\omega}(\beta)$ covered by the standard pair $(x^{\gamma}, +F)$, then the second statement guarantees there exists a unique +$\delta \in \bbbn^{n}$ such that $A \delta = \beta - A \gamma$. +Therefore, $\alpha = \delta + \gamma$. We point out that the +complexity of this algorithm is dominated by determining the set of +standard pairs of $\initial_{\, \omega}(I_{A})$ which depends only on +$A$ and $\omega$. As a result, this method is particularly well +suited to solving $\IP_{A,\omega}(\beta)$ as $\beta$ varies. + + +To implement this algorithm in \Mtwo, we need a function which returns +the toric ideal $I_A$. Following Algorithm~12.3 in +Sturmfels~\cite{MR97b:13034}, we have +\beginOutput +i47 : toBinomial = (b, S) -> (\\ +\ pos := 1_S;\\ +\ neg := 1_S;\\ +\ scan(#b, i -> if b_i > 0 then pos = pos*S_i^(b_i)\\ +\ else if b_i < 0 then neg = neg*S_i^(-b_i));\\ +\ pos - neg);\\ +\endOutput +\beginOutput +i48 : toricIdeal = (A, omega) -> (\\ +\ n := rank source A;\\ +\ S = QQ[x_1..x_n, Weights => omega, MonomialSize => 16];\\ +\ B := transpose matrix syz A;\\ +\ J := ideal apply(entries B, b -> toBinomial(b, S));\\ +\ scan(gens S, r -> J = saturate(J, r));\\ +\ J);\\ +\endOutput +Thus, we can solve $\IP_{A,\omega}(\beta)$ using the following +function. +\beginOutput +i49 : IP = (A, omega, beta) -> (\\ +\ std := standardPairs monomialIdeal toricIdeal(A, omega);\\ +\ n := rank source A;\\ +\ alpha := \{\};\\ +\ Q := first select(1, std, P -> (\\ +\ F := apply(last P, r -> index r);\\ +\ gamma := transpose matrix exponents first P;\\ +\ K := transpose syz (submatrix(A,F) | (A*gamma-beta));\\ +\ X := select(entries K, k -> abs last(k) === 1);\\ +\ scan(X, k -> if all(k, j -> j>=0) or all(k, j -> j<=0)\\ +\ then alpha = apply(n, j -> if member(j, F) \\ +\ then last(k)*k_(position(F, i -> i === j))\\ +\ else 0));\\ +\ #alpha > 0));\\ +\ if #Q > 0 then (matrix \{alpha\})+(matrix exponents first Q)\\ +\ else 0);\\ +\endOutput + +We illustrate this with some examples. +\beginOutput +i50 : A = matrix\{\{1,1,1,1,1\},\{1,2,4,5,6\}\}\\ +\emptyLine +o50 = | 1 1 1 1 1 |\\ +\ | 1 2 4 5 6 |\\ +\emptyLine +\ 2 5\\ +o50 : Matrix ZZ <--- ZZ\\ +\endOutput +\beginOutput +i51 : w1 = \{1,1,1,1,1\};\\ +\endOutput +\beginOutput +i52 : w2 = \{2,3,5,7,11\};\\ +\endOutput +\beginOutput +i53 : b1 = transpose matrix\{\{3,9\}\}\\ +\emptyLine +o53 = | 3 |\\ +\ | 9 |\\ +\emptyLine +\ 2 1\\ +o53 : Matrix ZZ <--- ZZ\\ +\endOutput +\beginOutput +i54 : b2 = transpose matrix\{\{5,16\}\}\\ +\emptyLine +o54 = | 5 |\\ +\ | 16 |\\ +\emptyLine +\ 2 1\\ +o54 : Matrix ZZ <--- ZZ\\ +\endOutput +\beginOutput +i55 : IP(A, w1, b1)\\ +\emptyLine +o55 = | 1 1 0 0 1 |\\ +\emptyLine +\ 1 5\\ +o55 : Matrix ZZ <--- ZZ\\ +\endOutput +\beginOutput +i56 : IP(A, w2, b1)\\ +\emptyLine +o56 = | 1 0 2 0 0 |\\ +\emptyLine +\ 1 5\\ +o56 : Matrix ZZ <--- ZZ\\ +\endOutput +\beginOutput +i57 : IP(A, w1, b2)\\ +\emptyLine +o57 = | 2 1 0 0 2 |\\ +\emptyLine +\ 1 5\\ +o57 : Matrix ZZ <--- ZZ\\ +\endOutput +\beginOutput +i58 : IP(A, w2, b2)\\ +\emptyLine +o58 = | 2 0 1 2 0 |\\ +\emptyLine +\ 1 5\\ +o58 : Matrix ZZ <--- ZZ\\ +\endOutput + +%%---------------------------------------------------------- +\section{Generic Initial Ideals} + +Gr\"{o}bner basis calculations and initial ideals depend heavily on +the given coordinate system. By making a generic change of coordinates +before taking the initial ideal, we may eliminate this dependence. +This procedure also endows the resulting monomial ideal with a rich +combinatorial structure. + +To describe this structure, we introduce the following definitions and +notation. Let $S = \bbbq[x_{0}, \dotsc, x_{n}]$. If $\sg = [g_{i,j}] +\in \GL_{n+1}(\bbbq)$ and $f \in S$, then $\sg \cdot f$ denotes the +standard action of the general linear group on $S$: $x_{i} \mapsto +\sum_{j=0}^{n} g_{i,j} x_{j}$. For an ideal $I \subseteq S$, we +define $\sg \cdot I = \{ \sg \cdot f | f \in I \}$. Let $B$ denote +the Borel subgroup of $\GL_{n+1}(\bbbq)$ consisting of upper +triangular matrices. A monomial ideal $I$ is called +{\em Borel-fixed}\index{Borel-fixed}\index{ideal!Borel-fixed} if it +satisfies any of the following equivalent conditions: +\begin{enumerate} +\item[$(a)$] $\sg \cdot I = I$ for every $\sg \in B$; +\item[$(b)$] if $r$ is a generator of $I$ divisible by $x_{j}$ then +$\frac{rx_{i}}{x_{j}} \in I$ for all $i < j$; +\item[$(c)$] $\initial(\sg \cdot I) = I$ for every $\sg$ is some open +neighborhood of the identity in $B$. +\end{enumerate} +For a proof that these conditions are equivalent, see Propositon~1.25 +in Green~\cite{MR99m:13040}. + +In \Mtwo, the function {\tt isBorel}\indexcmd{isBorel} tests whether a monomial ideal is +Borel-fixed. +\beginOutput +i59 : S = QQ[a,b,c,d];\\ +\endOutput +\beginOutput +i60 : isBorel monomialIdeal(a^2, a*b, b^2)\\ +\emptyLine +o60 = true\\ +\endOutput +\beginOutput +i61 : isBorel monomialIdeal(a^2, b^2)\\ +\emptyLine +o61 = false\\ +\endOutput +The function {\tt borel}\indexcmd{borel} generates the smallest Borel-fixed ideal +containing the given monomial ideal. +\beginOutput +i62 : borel monomialIdeal(b*c)\\ +\emptyLine +\ 2 2\\ +o62 = monomialIdeal (a , a*b, b , a*c, b*c)\\ +\emptyLine +o62 : MonomialIdeal of S\\ +\endOutput +\beginOutput +i63 : borel monomialIdeal(a,c^3)\\ +\emptyLine +\ 3 2 2 3\\ +o63 = monomialIdeal (a, b , b c, b*c , c )\\ +\emptyLine +o63 : MonomialIdeal of S\\ +\endOutput + +The next theorem provides the main source of Borel-fixed ideals. +\begin{theorem}[Galligo] \label{galligo} +Fix a term order on $S = \bbbq[x_{0}, \dotsc, x_{n}]$ such that $x_{0} +> \dotsc > x_{n}$. If $I$ is a homogeneous ideal in $S$, then there +is a Zariski open subset $U \subseteq \GL_{n+1}(\bbbq)$ such that +\begin{enumerate} +\item[$(1)$] there is a monomial ideal $J \subseteq S$ such that $J = +\initial(\sg \cdot I )$ for all $\sg \in U$; +\item[$(2)$] the ideal $J$ is Borel-fixed. +\end{enumerate} +The ideal $J$ is called the generic initial ideal\index{generic +initial ideal}\index{ideal!generic initial} of $I$. +\end{theorem} + +\begin{proof} +See Theorem~1.27 in Green~\cite{MR99m:13040}. \qed +\end{proof} + +The following method allows one to compute generic initial ideals. +\beginOutput +i64 : gin = method();\\ +\endOutput +\beginOutput +i65 : gin Ideal := I -> (\\ +\ S := ring I;\\ +\ StoS := map(S, S, random(S^\{0\}, S^\{numgens S:-1\}));\\ +\ monomialIdeal StoS I);\\ +\endOutput +\beginOutput +i66 : gin MonomialIdeal := I -> gin ideal I;\\ +\endOutput +This routine assumes that the random function generates a matrix in +the Zariski open subset $U$. Since we are working over a field of +characteristic zero this occurs with probability one. +For example, we can determine the generic initial ideal of two generic +homogeneous polynomials of degree $p$ and $q$ in $\bbbq[a,b,c,d]$. +\beginOutput +i67 : genericForms = (p,q) -> ideal(random(p,S), random(q,S));\\ +\endOutput +\beginOutput +i68 : gin genericForms(2,2)\\ +\emptyLine +\ 2 3\\ +o68 = monomialIdeal (a , a*b, b )\\ +\emptyLine +o68 : MonomialIdeal of S\\ +\endOutput +\beginOutput +i69 : gin genericForms(2,3)\\ +\emptyLine +\ 2 2 4\\ +o69 = monomialIdeal (a , a*b , b )\\ +\emptyLine +o69 : MonomialIdeal of S\\ +\endOutput +Although the generic initial ideal is Borel-fixed, some non-generic +initial ideals may also be Borel-Fixed. +\beginOutput +i70 : J = ideal(a^2, a*b+b^2, a*c)\\ +\emptyLine +\ 2 2\\ +o70 = ideal (a , a*b + b , a*c)\\ +\emptyLine +o70 : Ideal of S\\ +\endOutput +\beginOutput +i71 : ginJ = gin J\\ +\emptyLine +\ 2 2 2\\ +o71 = monomialIdeal (a , a*b, b , a*c )\\ +\emptyLine +o71 : MonomialIdeal of S\\ +\endOutput +\beginOutput +i72 : inJ = monomialIdeal J\\ +\emptyLine +\ 2 3 2\\ +o72 = monomialIdeal (a , a*b, b , a*c, b c)\\ +\emptyLine +o72 : MonomialIdeal of S\\ +\endOutput +\beginOutput +i73 : isBorel inJ and isBorel ginJ\\ +\emptyLine +o73 = true\\ +\endOutput +Finally, we show that the generic initial ideal does depend on the +term order by computing lexicographic generic initial ideal for two +generic forms of degree $p$ and $q$ in $\bbbq[a,b,c,d]$ +\beginOutput +i74 : S = QQ[a,b,c,d, MonomialOrder => Lex];\\ +\endOutput +\beginOutput +i75 : gin genericForms(2,2)\\ +\emptyLine +\ 2 4 2\\ +o75 = monomialIdeal (a , a*b, b , a*c )\\ +\emptyLine +o75 : MonomialIdeal of S\\ +\endOutput +\beginOutput +i76 : gin genericForms(2,3)\\ +\emptyLine +\ 2 2 6 2 6 2 4\\ +o76 = monomialIdeal (a , a*b , b , a*b*c , a*c , a*b*c*d , a*b*d )\\ +\emptyLine +o76 : MonomialIdeal of S\\ +\endOutput +A more comprehensive treatment of generic initial ideals can be found +in Green~\cite{MR99m:13040}. The properties of Borel-fixed ideals in +characteristic $p>0$ are discussed in Eisenbud~\cite{MR97a:13001}. + + +%%---------------------------------------------------------- +\subsection*{Example: Connectedness of the Hilbert Scheme} + +Generic initial ideals are a powerful tool for studying the structure +of the Hilbert scheme\index{Hilbert scheme}. Intuitively, the Hilbert +scheme $\Hilb^{\, p(t)}(\bbbp^{n})$ parameterizes subschemes $X +\subseteq \bbbp^{n}$ with Hilbert polynomial $p(t)$. For an +introduction to Hilbert schemes see Harris and +Morrison~\cite{MR99g:14031}. The construction of the Hilbert scheme $\Hilb^{\, +p(t)}(\bbbp^{n})$ can be found in Grothendieck's original +article~\cite{MR26:3566} or Altman and Kleiman~\cite{MR81f:14025a}. +While much is known about specific Hilbert schemes, the general +structure remain largely a mystery. In particular, the component +structure --- the number of irreducible components, their dimensions, +how they intersect and what subschemes they parameterize --- is not +well understood. + +Reeves~\cite{MR97g:14003} uses generic initial ideals to establish the +most important theorem to date on the component structure. The +incidence graph\index{Hilbert scheme!incidence graph} of $\Hilb^{\, +p(t)}(\bbbp^{n})$ is defined as follows: to each irreducible component +we assign a vertex and we connect two vertices if the corresponding +components intersect. Reeves~\cite{MR97g:14003} proves that the +distance (the number of edges in the shortest path) between any two +vertices in the incidence graph of $\Hilb^{\, p(t)}(\bbbp^{n})$ is at +most $2 \deg p(t)+2$. Her proof can be divided into three major +steps. + +{\em Step I: connect an arbitrary ideal to a Borel-fixed ideal.} +Passing to an initial ideal corresponds to taking the limit in a flat +family, in other words a path on the Hilbert scheme; see Theorem 15.17 +in Eisenbud~\cite{MR97a:13001}. Thus, Theorem~\ref{galligo} shows +that generic initial ideals\index{generic initial +ideal}\index{ideal!generic initial} connect arbitrary +ideals to Borel-fixed ideals. + +{\em Step II: connect Borel-fixed ideals by projection.} For a +homogeneous ideal $I \subseteq S = \bbbq[x_{0}, \dotsc, x_{n}]$, let +$\pi(I)$ denote the ideal obtained by setting $x_{n}=1$ and +$x_{n-1}=1$ in $I$. With this notation, we have + +\begin{theorem} +If $J$ is a Borel-fixed ideal, then the set of Borel-fixed ideals $I$, +with Hilbert polynomial $p(t)$ and $\pi(I) = J$, consists of ideals +defining subschemes of $\bbbp^{n}$ which all lie on a single component +of $\Hilb^{\, p(t)}(\bbbp^{n})$. +\end{theorem} + +\begin{proof} +See Theorem~6 in Reeves~\cite{MR97g:14003}. \qed +\end{proof} + +\noindent This gives an easy method for partitioning Borel-fixed +ideals into classes, each of which must lie in a single component. + +{\em Step III: connect Borel-fixed ideals by distraction.} Given a +Borel-fixed ideal, we produce a new ideal via a two-step process +called distraction\index{distraction}. First, one polarizes the +Borel-fixed ideal. The polarization\index{polarization} of a monomial +ideal $I \subset S$ is defined as: +\[ +\left\langle \prod_{i=0}^{n}\prod_{j=1}^{\alpha_{i}} z_{i,j} : \text{ +where $x_{0}^{\alpha_{0}}\dotsb x_{n}^{\alpha_{n}}$ is a minimal +generator of $I$} \right\rangle \, . +\] +One then pulls the result back to an ideal in the original variables +by taking a linear section of the polarization. Theorem~4.10 in +Hartshorne~\cite{MR35:4232} shows that the distraction is connected to +the original Borel-fixed ideal. Now, taking the lexicographic generic +initial ideal of the distraction yields a second Borel-fixed ideal. +Reeves~\cite{MR97g:14003} proves that repeating this process, at most +$\deg p(t) + 1$ times, one arrives at a distinguished component of +$\Hilb^{\, p(t)}(\bbbp^{n})$ called the lexicographic component. For +more information on the lexicographic component see Reeves and +Stillman~\cite{MR98m:14003}. + +We can implement these operations in \Mtwo as follows: +\beginOutput +i77 : projection = I -> (\\ +\ S := ring I;\\ +\ n := numgens S;\\ +\ X := gens S;\\ +\ monomialIdeal mingens substitute(ideal I, \\ +\ \{X#(n-2) => 1, X#(n-1) => 1\}));\\ +\endOutput +\beginOutput +i78 : polarization = I -> (\\ +\ n := numgens ring I;\\ +\ u := apply(numgens I, i -> first exponents I_i);\\ +\ I.lcm = max {\char`\\} transpose u;\\ +\ Z := flatten apply(n, i -> apply(I.lcm#i, j -> z_\{i,j\}));\\ +\ R := QQ(monoid[Z]);\\ +\ Z = gens R;\\ +\ p := apply(n, i -> sum((I.lcm)_\{0..i-1\}));\\ +\ monomialIdeal apply(u, e -> product apply(n, i -> \\ +\ product(toList(0..e#i-1), j -> Z#(p#i+j)))));\\ +\endOutput +\beginOutput +i79 : distraction = I -> (\\ +\ S := ring I;\\ +\ n := numgens S;\\ +\ X := gens S;\\ +\ J := polarization I;\\ +\ W := flatten apply(n, i -> flatten apply(I.lcm#i, \\ +\ j -> X#i));\\ +\ section := map(S, ring J, apply(W, r -> r - \\ +\ random(500)*X#(n-2) - random(500)*X#(n-1))); \\ +\ section ideal J);\\ +\endOutput +For example, we have +\beginOutput +i80 : S = QQ[x_0 .. x_4, MonomialOrder => GLex];\\ +\endOutput +\beginOutput +i81 : I = monomialIdeal(x_0^2, x_0*x_1^2*x_3, x_1^3*x_4)\\ +\emptyLine +\ 2 2 3\\ +o81 = monomialIdeal (x , x x x , x x )\\ +\ 0 0 1 3 1 4\\ +\emptyLine +o81 : MonomialIdeal of S\\ +\endOutput +\beginOutput +i82 : projection I\\ +\emptyLine +\ 2 2 3\\ +o82 = monomialIdeal (x , x x , x )\\ +\ 0 0 1 1\\ +\emptyLine +o82 : MonomialIdeal of S\\ +\endOutput +\beginOutput +i83 : polarization I\\ +\emptyLine +o83 = monomialIdeal (z z , z z z z , z $\cdot\cdot\cdot$\\ +\ \{0, 0\} \{0, 1\} \{0, 0\} \{1, 0\} \{1, 1\} \{3, 0\} \{1 $\cdot\cdot\cdot$\\ +\emptyLine +o83 : MonomialIdeal of QQ [z , z , z , z , z $\cdot\cdot\cdot$\\ +\ \{0, 0\} \{0, 1\} \{1, 0\} \{1, 1\} \{1, 2\} $\cdot\cdot\cdot$\\ +\endOutput +\beginOutput +i84 : distraction I\\ +\emptyLine +\ 2 2 2 $\cdot\cdot\cdot$\\ +o84 = ideal (x - 398x x - 584x x + 36001x + 92816x x + 47239x , - $\cdot\cdot\cdot$\\ +\ 0 0 3 0 4 3 3 4 4 $\cdot\cdot\cdot$\\ +\emptyLine +o84 : Ideal of S\\ +\endOutput + +To illustrate Reeves' method, we show that the incidence graph of the +Hilbert scheme $\Hilb^{4t+1}(\bbbp^{4})$ has diameter at most $2$. +Note that the rational quartic curve\index{rational quartic curve} in +$\bbbp^{4}$ has Hilbert polynomial $4t+1$. +\beginOutput +i85 : m = matrix table(\{0,1,2\}, \{0,1,2\}, (i,j) -> (gens S)#(i+j))\\ +\emptyLine +o85 = | x_0 x_1 x_2 |\\ +\ | x_1 x_2 x_3 |\\ +\ | x_2 x_3 x_4 |\\ +\emptyLine +\ 3 3\\ +o85 : Matrix S <--- S\\ +\endOutput +\beginOutput +i86 : rationalQuartic = minors(2, m);\\ +\emptyLine +o86 : Ideal of S\\ +\endOutput +\beginOutput +i87 : H = hilbertPolynomial(S/rationalQuartic);\\ +\endOutput +\beginOutput +i88 : hilbertPolynomial(S/rationalQuartic, Projective => false)\\ +\emptyLine +o88 = 4\$i + 1\\ +\emptyLine +o88 : QQ [\$i]\\ +\endOutput +There are $12$ Borel-fixed ideals with Hilbert polynomial $4t+1$; see +Example~1 in Reeves~\cite{MR97g:14003}. +\beginOutput +i89 : L = \{monomialIdeal(x_0^2, x_0*x_1, x_0*x_2, x_1^2, x_1*x_2, x_2^ $\cdot\cdot\cdot$\\ +\endOutput +\beginOutput +i90 : scan(#L, i -> << endl << i+1 << " : " << L#i << endl);\\ +\emptyLine +\ 2 2 2\\ +1 : monomialIdeal (x , x x , x , x x , x x , x )\\ +\ 0 0 1 1 0 2 1 2 2\\ +\emptyLine +\ 2 2 3\\ +2 : monomialIdeal (x , x x , x , x x , x x , x , x x )\\ +\ 0 0 1 1 0 2 1 2 2 0 3\\ +\emptyLine +\ 2 2 3\\ +3 : monomialIdeal (x , x , x x , x , x x x )\\ +\ 0 1 1 2 2 1 2 3\\ +\emptyLine +\ 2 4 3\\ +4 : monomialIdeal (x , x , x x , x , x x )\\ +\ 0 1 1 2 2 2 3\\ +\emptyLine +\ 5 4 3\\ +5 : monomialIdeal (x , x , x , x x )\\ +\ 0 1 2 2 3\\ +\emptyLine +\ 2 5 4 2\\ +6 : monomialIdeal (x , x , x x , x , x x , x x )\\ +\ 0 1 1 2 2 1 3 2 3\\ +\emptyLine +\ 2 2 5 4\\ +7 : monomialIdeal (x , x x , x , x x , x x , x , x x , x x , x x )\\ +\ 0 0 1 1 0 2 1 2 2 0 3 1 3 2 3\\ +\emptyLine +\ 2 5 4 2\\ +8 : monomialIdeal (x , x , x x , x , x x , x x )\\ +\ 0 1 1 2 2 2 3 1 3\\ +\emptyLine +\ 2 2 4 2\\ +9 : monomialIdeal (x , x x , x , x x , x x , x , x x , x x )\\ +\ 0 0 1 1 0 2 1 2 2 0 3 1 3\\ +\emptyLine +\ 2 2 4 2\\ +10 : monomialIdeal (x , x , x x , x , x x x , x x )\\ +\ 0 1 1 2 2 1 2 3 1 3\\ +\emptyLine +\ 2 4 3\\ +11 : monomialIdeal (x , x , x x , x , x x )\\ +\ 0 1 1 2 2 1 3\\ +\emptyLine +\ 6 5 4 2\\ +12 : monomialIdeal (x , x , x , x x , x x )\\ +\ 0 1 2 2 3 2 3\\ +\endOutput +\beginOutput +i91 : all(L, I -> isBorel I and hilbertPolynomial(S/I) == H)\\ +\emptyLine +o91 = true\\ +\endOutput +The projection operation partitions the list {\tt L} into $3$ classes: +\beginOutput +i92 : class1 = projection L#0\\ +\emptyLine +\ 2 2 2\\ +o92 = monomialIdeal (x , x x , x , x x , x x , x )\\ +\ 0 0 1 1 0 2 1 2 2\\ +\emptyLine +o92 : MonomialIdeal of S\\ +\endOutput +\beginOutput +i93 : class2 = projection L#1\\ +\emptyLine +\ 2 3\\ +o93 = monomialIdeal (x , x , x x , x )\\ +\ 0 1 1 2 2\\ +\emptyLine +o93 : MonomialIdeal of S\\ +\endOutput +\beginOutput +i94 : class3 = projection L#4\\ +\emptyLine +\ 4\\ +o94 = monomialIdeal (x , x , x )\\ +\ 0 1 2\\ +\emptyLine +o94 : MonomialIdeal of S\\ +\endOutput +\beginOutput +i95 : all(1..3, i -> projection L#i == class2)\\ +\emptyLine +o95 = true\\ +\endOutput +\beginOutput +i96 : all(4..11, i -> projection L#i == class3)\\ +\emptyLine +o96 = true\\ +\endOutput +Finally, we use the distraction to connect the classes. +\beginOutput +i97 : all(L, I -> I == monomialIdeal distraction I)\\ +\emptyLine +o97 = true\\ +\endOutput +\beginOutput +i98 : all(0..3, i -> projection gin distraction L#i == class3)\\ +\emptyLine +o98 = true\\ +\endOutput +Therefore, the components corresponding to {\tt class1} and {\tt +class2} intersect the one corresponding to {\tt class3}. Note that +{\tt class3} corresponds to the lexicographic component. + +%%---------------------------------------------------------- +\section{The Chain Property} + + +Ho\c{s}ten and Thomas~\cite{MR2000b:13037} recently established that +the initial ideals of a toric ideal have an interesting combinatorial +structure called the chain property. This structure is on the poset +of associated primes where the partial order is given by inclusion. +Since a monomial ideal $I \subset S = \bbbq[x_{1}, \dotsc, x_{n}]$ is +prime if and only if it is generated by a subset of the variables $\{ +x_{1}, \dotsc, x_{n}\}$, the poset of associated primes of $I$ is +contained in the power set of the variables. We say that a monomial +ideal $I$ has the chain property\index{chain property} if the +following condition holds: +\[ +\text{\begin{minipage}[t]{300pt} +For any embedded prime $P_{F} = \langle x_{i} : x_{i} \not\in F +\rangle$ of $I$, there exists an associated prime $P_{G} \subset +P_{F}$ such that $|G| = |F|-1$. +\end{minipage}} +\] +In other words, there is a saturated chain from every embedded prime +to some minimal prime. +Experimental evidence suggests that, in fact, most initial ideals +of prime ideals satisfy this saturated chain condition. +Because +of ubiquity and simplicity of this condition, we are interested in +understanding which classes of initial ideals (or more generally +monomial ideals) have the chain property. + +More recently, Miller, Sturmfels and Yanagawa~\cite{MR1769661} +provided a large class of monomial ideals with the chain property. A +monomial ideal $I$ is called generic\index{generic monomial ideal} +when the following condition holds: if two distinct minimal generators +$r_{1}$ and $r_{2}$ of $I$ have the same positive degree in some +variable $x_{i}$, there is a third generator $r_{3}$ which strictly +divides the least common multiple of $r_{1}$ and $r_{2}$. In +particular, if no two distinct minimal generators have the same +positive degree in any variable, then the monomial ideal is generic. +Theorem~2.2 in Miller, Sturmfels and Yanagawa~\cite{MR1769661} shows +that generic monomial ideals have the chain property. + + +%%---------------------------------------------------------- +\subsection*{Examples and Counterexamples} + + +In this final section, we illustrate how to use \Mtwo for further +experimentation and investigation of the chain property. The +following function determines whether a monomial ideal has the chain +property: +\beginOutput +i99 : hasChainProperty = I -> (\\ +\ L := ass I;\\ +\ radI := radical I;\\ +\ all(L, P -> radI : (radI : P) == P or (\\ +\ gensP := first entries gens P;\\ +\ all(gensP, r -> (\\ +\ Q := monomialIdeal delete(r, gensP);\\ +\ I : (I : Q) == Q)))));\\ +\endOutput +Using {\tt hasChainProperty}, we examine the initial ideals of four +interesting classes of ideals related to toric ideals. + +\subsubsection*{An Initial Ideal of a Toric Ideal} As mentioned above, Ho\c{s}ten +and Thomas proved that any initial ideal of a toric ideal satisfies +the saturated chain condition. The following example demonstrates this +phenomenon. Consider the matrix $A$: +\beginOutput +i100 : A = matrix\{\{1,1,1,1,1,1,1\}, \{2,0,0,0,1,0,0\}, \{0,2,0,0,0,1,0\}, \{ $\cdot\cdot\cdot$\\ +\emptyLine +o100 = | 1 1 1 1 1 1 1 |\\ +\ | 2 0 0 0 1 0 0 |\\ +\ | 0 2 0 0 0 1 0 |\\ +\ | 2 2 0 2 1 1 1 |\\ +\emptyLine +\ 4 7\\ +o100 : Matrix ZZ <--- ZZ\\ +\endOutput +\beginOutput +i101 : IA = toricIdeal(A, \{1,1,1,1,1,1,1\})\\ +\emptyLine +\ 2 2 2\\ +o101 = ideal (x x - x , x x - x , x x - x )\\ +\ 3 4 7 2 3 6 1 3 5\\ +\emptyLine +o101 : Ideal of S\\ +\endOutput +\beginOutput +i102 : inIA = monomialIdeal IA\\ +\emptyLine +\ 2 2 2\\ +o102 = monomialIdeal (x x , x x , x x , x x , x x , x x )\\ +\ 1 3 2 3 3 4 2 5 4 5 4 6\\ +\emptyLine +o102 : MonomialIdeal of S\\ +\endOutput +\beginOutput +i103 : hasChainProperty inIA\\ +\emptyLine +o103 = true\\ +\endOutput + +\subsubsection*{An Initial Ideal of a Prime Ideal} Since toric ideals are +prime, one naturally asks if the initial ideal of any prime ideal has +the chain property. By modifying the previous example, we can show +that this is not the case. In particular, making the linear change of +coordinates by $x_{4} \mapsto x_{3}-x_{4}$, we obtain a new prime +ideal $J$. +\beginOutput +i104 : StoS = map(S, S, \{x_1, x_2, x_3, x_3 - x_4, x_5, x_6, x_7\});\\ +\emptyLine +o104 : RingMap S <--- S\\ +\endOutput +\beginOutput +i105 : J = StoS IA\\ +\emptyLine +\ 2 2 2 2\\ +o105 = ideal (x - x x - x , x x - x , x x - x )\\ +\ 3 3 4 7 2 3 6 1 3 5\\ +\emptyLine +o105 : Ideal of S\\ +\endOutput +Taking the initial ideal with respect to the reverse lexicographic +term order (the default order), we have +\beginOutput +i106 : inJ = monomialIdeal J\\ +\emptyLine +\ 2 2 2 2 2 2 $\cdot\cdot\cdot$\\ +o106 = monomialIdeal (x x , x x , x , x x , x x , x x x , x x , x x x $\cdot\cdot\cdot$\\ +\ 1 3 2 3 3 2 5 3 5 1 4 5 3 6 1 4 6 $\cdot\cdot\cdot$\\ +\emptyLine +o106 : MonomialIdeal of S\\ +\endOutput +\beginOutput +i107 : hasChainProperty inJ\\ +\emptyLine +o107 = false\\ +\endOutput + +\subsubsection*{An $A$-graded Monomial Ideal} Let $A$ be a $d \times n$ matrix +of nonnegative integers and let $\mathbf{a}_{i}$ denote the $i$-th +column of $A$. Consider the polynomial ring $S = \bbbq[x_{1}, \dotsc, +x_{n}]$ with the $\bbbz^{d}$-grading defined by $\deg x_{i} = +\mathbf{a}_{i}$. An ideal $I \subset \bbbq[x_{1}, \dotsc, x_{n}]$ is +called $A$-graded\index{ideal!$A$-graded} provided it is homogeneous with +respect to the $A$-grading and +\[ +\dim_{\bbbq} \left( \frac{S}{I} \right)_{\mathbf{b}} = \begin{cases} 1 +& \text{if $\mathbf{b} \in \bbbn A$} \\ 0 & \text{otherwise} +\end{cases} +\] +for all $\mathbf{b} \in \bbbn^{d}$. Remark~10.1 in +Sturmfels~\cite{MR97b:13034} shows that the initial ideal of the toric +ideal $I_{A}$ is $A$-graded. Altmann~\cite{Altmann} shows that when +$A$ has rank $2$ every $A$-graded monomial ideal has the chain +property. However, Altmann~\cite{Altmann} also provides a +counterexample when $A$ has rank $3$. We can verify his example in +\Mtwo as follows: +\beginOutput +i108 : A = matrix\{\{2,0,0,1,0,0,2,1,1,3,2,2,2,3,3,3\},\\ +\ \{0,2,0,0,1,0,1,2,1,2,3,2,3,2,3,3\},\\ +\ \{0,0,2,0,0,1,1,1,2,2,2,3,3,3,2,3\}\};\\ +\emptyLine +\ 3 16\\ +o108 : Matrix ZZ <--- ZZ\\ +\endOutput +In \Mtwo, the first entry in degree vector of each variable must be +positive. Hence, we append to A the sum of its rows to get a matrix whose +columns will serve as the degrees of the variables. +\beginOutput +i109 : D = A^\{0\}+A^\{1\}+A^\{2\} || A\\ +\emptyLine +o109 = | 2 2 2 1 1 1 4 4 4 7 7 7 8 8 8 9 |\\ +\ | 2 0 0 1 0 0 2 1 1 3 2 2 2 3 3 3 |\\ +\ | 0 2 0 0 1 0 1 2 1 2 3 2 3 2 3 3 |\\ +\ | 0 0 2 0 0 1 1 1 2 2 2 3 3 3 2 3 |\\ +\emptyLine +\ 4 16\\ +o109 : Matrix ZZ <--- ZZ\\ +\endOutput +\beginOutput +i110 : D = entries transpose D;\\ +\endOutput +\beginOutput +i111 : S = QQ[vars(0..15), Degrees => D, MonomialSize => 16];\\ +\endOutput +\beginOutput +i112 : I = monomialIdeal(d*j, d*k, d*l, d*m, d*n, d*o, d*p, e*j, e*k,\\ +\ e*l, e*m, e*n, e*o, e*p, f*j, f*k, f*l, f*m, f*n, f*o, f*p,\\ +\ g*j, g*k, g*l, g*m, g*n, g*o, g*p, h*j, h*k, h*l, h*m, h*n,\\ +\ h*o, h*p, i*j, i*k, i*l, i*m, i*n, i*o, i*p, g^2, g*h, g*i,\\ +\ h^2, h*i, i^2, j^2, j*k, j*l, j*m, j*n, j*o, j*p, k^2, k*l,\\ +\ k*m, k*n, k*o, k*p, l^2, l*m, l*n, l*o, l*p, m^2, m*n, m*o,\\ +\ m*p, n^2, n*o, n*p, o^2, o*p, p^2, d^2, e^2, f^2, d*h, e*i,\\ +\ f*g, f*d*i, d*e*g, e*f*h, c*d*g, a*e*h, b*f*i, c*e*g, \\ +\ a*f*h, b*d*i, c*d*e, a*e*f, b*f*d, c*b*d, a*c*e, b*a*f, \\ +\ c*b*g, a*c*h, b*a*i);\\ +\emptyLine +o112 : MonomialIdeal of S\\ +\endOutput +To help convince you that $I$ is an $A$-graded ideal, we compute the +$\dim_{\bbbq} \left( \frac{S}{I} \right)_{\mathbf{a}_{i}}$ for $1 \leq +i \leq 16$. +\beginOutput +i113 : apply(D, d -> rank source basis(d, (S^1)/ ideal I))\\ +\emptyLine +o113 = \{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1\}\\ +\emptyLine +o113 : List\\ +\endOutput +Finally, we check the chain property. +\beginOutput +i114 : hasChainProperty I\\ +\emptyLine +o114 = false\\ +\endOutput + +\subsubsection*{The Vertex Ideal} Lastly, we consider a different family of +monomials ideals arising from toric ideals. The vertex +ideal\index{vertex ideal} $V_{A}$ is defined as intersection all the +monomial initial ideals of the toric ideal $I_{A}$. Although there +are (in general) infinitely many distinct term orders on a polynomial +ring, an ideal has only finitely many initial ideals; see Theorem~1.2 +in Sturmfels~\cite{MR97b:13034}. In particular, the above +intersection is finite. Vertex ideals were introduced and studied by +Ho{\c{s}}ten and Maclagan~\cite{Hosten-Maclagan}. However, the +question ``Does the vertex ideal $V_A$ have the chain property?'' +remains open. + + + +% Local Variables: +% mode: latex +% mode: reftex +% tex-main-file: "chapter-wrapper.tex" +% reftex-keep-temporary-buffers: t +% reftex-use-external-file-finders: t +% reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) +% End: +\begin{thebibliography}{10} + +\bibitem{MR81f:14025a} +Allen~B. Altman and Steven~L. Kleiman: +\newblock Compactifying the {P}icard scheme. +\newblock {\em Adv. in Math.}, 35(1):50--112, 1980. + +\bibitem{Altmann} +Klaus Altmann: +\newblock {The chain property for the associated primes of A-graded ideals}. +\newblock {arXiv:math.AG/0004142}. + +\bibitem{MR94f:13018} +Dave Bayer and Mike Stillman: +\newblock Computation of {H}ilbert functions. +\newblock {\em J. Symbolic Comput.}, 14(1):31--50, 1992. + +\bibitem{MR96h:05213} +Anders Bj{\"o}rner: +\newblock Nonpure shellability, $f$-vectors, subspace arrangements and + complexity. +\newblock In {\em Formal power series and algebraic combinatorics (New + Brunswick, NJ, 1994)}, pages 25--53. Amer. Math. Soc., Providence, RI, 1996. + +\bibitem{MR89m:52009} +Anders Bj{\"o}rner and Gil Kalai: +\newblock An extended {E}uler-{P}oincar\'e theorem. +\newblock {\em Acta Math.}, 161(3-4):279--303, 1988. + +\bibitem{MR95h:13020} +Winfried Bruns and J{\"u}rgen Herzog: +\newblock {\em Cohen-{M}acaulay rings}. +\newblock Cambridge University Press, Cambridge, 1993. + +\bibitem{MR97a:13001} +David Eisenbud: +\newblock {\em Commutative algebra with a view toward algebraic geometry}. +\newblock Springer-Verlag, New York, 1995. + +\bibitem{MR80g:68056} +Michael~R. Garey and David~S. Johnson: +\newblock {\em Computers and intractability}. +\newblock W. H. Freeman and Co., San Francisco, Calif., 1979. +\newblock A guide to the theory of NP-completeness, A Series of Books in the + Mathematical Sciences. + +\bibitem{MR99m:13040} +Mark~L. Green: +\newblock Generic initial ideals. +\newblock In {\em Six lectures on commutative algebra (Bellaterra, 1996)}, + pages 119--186. Birkh\"auser, Basel, 1998. + +\bibitem{MR26:3566} +Alexander Grothendieck: +\newblock {\em Fondements de la g\'eom\'etrie alg\'ebrique. [{E}xtraits du + {S}\'eminaire {B}ourbaki, 1957--1962.]}. +\newblock Secr\'etariat math\'ematique, Paris, 1962. + +\bibitem{MR99g:14031} +Joe Harris and Ian Morrison: +\newblock {\em Moduli of curves}. +\newblock Springer-Verlag, New York, 1998. + +\bibitem{MR35:4232} +Robin Hartshorne: +\newblock Connectedness of the {H}ilbert scheme. +\newblock {\em Inst. Hautes \'Etudes Sci. Publ. Math.}, 29:5--48, 1966. + +\bibitem{Hosten-Maclagan} +Serkan Ho\c{s}ten and Diane Maclagan: +\newblock The vertex ideal of a lattice. +\newblock 20 pages, (2000), preprint. + +\bibitem{MR2000b:13037} +Serkan Ho{\c{s}}ten and Rekha~R. Thomas: +\newblock The associated primes of initial ideals of lattice ideals. +\newblock {\em Math. Res. Lett.}, 6(1):83--97, 1999. + +\bibitem{MR2000f:13052} +Serkan Ho{\c{s}}ten and Rekha~R. Thomas: +\newblock Standard pairs and group relaxations in integer programming. +\newblock {\em J. Pure Appl. Algebra}, 139(1-3):133--157, 1999. +\newblock Effective methods in algebraic geometry (Saint-Malo, 1998). + +\bibitem{M} +Ezra Miller: +\newblock {Alexander Duality for Monomial Ideals and Their Resolutions}. +\newblock {arXiv:math.AG/9812095}. + +\bibitem{MR1779598} +Ezra Miller: +\newblock The {A}lexander duality functors and local duality with monomial + support. +\newblock {\em J. Algebra}, 231(1):180--234, 2000. + +\bibitem{MR1769661} +Ezra Miller, Bernd Sturmfels, and Kohji Yanagawa: +\newblock Generic and cogeneric monomial ideals. +\newblock {\em J. Symbolic Comput.}, 29(4-5):691--708, 2000. +\newblock Symbolic computation in algebra, analysis, and geometry (Berkeley, + CA, 1998). + +\bibitem{MR2000a:13010} +Hidefumi Ohsugi and Takayuki Hibi: +\newblock Normal polytopes arising from finite graphs. +\newblock {\em J. Algebra}, 207(2):409--426, 1998. + +\bibitem{MR98m:14003} +Alyson Reeves and Mike Stillman: +\newblock Smoothness of the lexicographic point. +\newblock {\em J. Algebraic Geom.}, 6(2):235--246, 1997. + +\bibitem{MR97g:14003} +Alyson~A. Reeves: +\newblock The radius of the {H}ilbert scheme. +\newblock {\em J. Algebraic Geom.}, 4(4):639--657, 1995. + +\bibitem{MR1734566} +Mutsumi Saito, Bernd Sturmfels, and Nobuki Takayama: +\newblock {\em Gr\"obner deformations of hypergeometric differential + equations}. +\newblock Springer-Verlag, Berlin, 2000. + +\bibitem{MR99c:13004} +Aron Simis, Wolmer~V. Vasconcelos, and Rafael~H. Villarreal: +\newblock The integral closure of subrings associated to graphs. +\newblock {\em J. Algebra}, 199(1):281--289, 1998. + +\bibitem{MR98h:05001} +Richard~P. Stanley: +\newblock {\em Combinatorics and commutative algebra}. +\newblock Birkh\"auser Boston Inc., Boston, MA, second edition, 1996. + +\bibitem{MR91m:14076} +Bernd Sturmfels: +\newblock Gr\"obner bases and {S}tanley decompositions of determinantal rings. +\newblock {\em Math. Z.}, 205(1):137--144, 1990. + +\bibitem{MR97b:13034} +Bernd Sturmfels: +\newblock {\em Gr\"obner bases and convex polytopes}. +\newblock American Mathematical Society, Providence, RI, 1996. + +\bibitem{MR96i:13029} +Bernd Sturmfels, Ng\^o~Vi\^et Trung, and Wolfgang Vogel: +\newblock Bounds on degrees of projective schemes. +\newblock {\em Math. Ann.}, 302(3):417--432, 1995. + +\bibitem{MR91b:13031} +Rafael~H. Villarreal: +\newblock Cohen-{M}acaulay graphs. +\newblock {\em Manuscripta Math.}, 66(3):277--293, 1990. + +\bibitem{MR96a:52011} +G{\"u}nter~M. Ziegler: +\newblock {\em Lectures on polytopes}. +\newblock Springer-Verlag, New York, 1995. + +\end{thebibliography} +\egroup +\makeatletter +\renewcommand\thesection{\@arabic\c@section} +\makeatother + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% +%%%%% ../chapters/solving/solving +%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\bgroup +%solving.tex +% +% Macaulay 2 Chapter: +% From Enumerative geometry to solving polynomial systems +% +% Frank Sottile +% +% Begun: 25 April 1999 +% Began new version 27 July +% Preliminary version 27 August +% Started working again 1 July 2000 +% Completed & Submitted 20 July +% arXiv.org/math.AG/0007142 npvkp +% Title: "An excursion ...(title above)... with Macaulay2" +% Final revised version 14 November +% Replaced arXiv version 15 November +% Really Final version 25 January 2000 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% WARNING: * On an AMD K6/2 300MHz w/ 256MB the M2 code % +% takes 8:15 minutes to run and uses 82MB % +% * On Intel PIII 600MHz w/ 256K cache & 256MB % +% the M2 code takes 4:15 minutes % +% * On Intel PIII 850MHz w/ 256K cache & 1GB % +% the M2 code takes 3:20 minutes % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\title{From Enumerative Geometry to Solving Systems of Polynomial Equations} + +\titlerunning{From Enumerative Geometry to Solving Equations} +\toctitle{From Enumerative Geometry to Solving Systems of Polynomial Equations} +\author{Frank Sottile\thanks{Supported in part by NSF grant DMS-0070494.}} +\authorrunning{F. Sottile} +% \institute{Department of Mathematics and Statistics, University of +% Massachusetts, Amherst, MA 01003, USA} +\maketitle + +\begin{abstract} +Solving a system of polynomial equations is a ubiquitous problem in +the applications of mathematics. +Until recently, it has been hopeless to find explicit solutions to such +systems, and mathematics has instead developed deep and +powerful theories about the solutions to polynomial equations. +Enumerative Geometry is concerned with counting the +number of solutions when the polynomials come from a geometric situation and +Intersection Theory\index{intersection theory} gives methods to accomplish the enumeration. + + We use \Mtwo{}\/ to investigate some problems from enumerative geometry, +illustrating some applications of symbolic computation to this important +problem of solving systems of polynomial equations. +Besides enumerating solutions to the resulting polynomial systems, which +include overdetermined, deficient, and improper systems, we address the +important question of real solutions to these geometric problems. +\end{abstract} + +\section{Introduction} +A basic question to ask about a system of polynomial equations is +its number of solutions\index{polynomial equations}. +For this, the fundamental result is the following +B\'ezout Theorem\index{Bezout's Theorem@B\'ezout's Theorem}. + +\begin{theorem} + The number of isolated solutions to a system of polynomial equations +$$ + f_1(x_1,\ldots,x_n)=f_2(x_1,\ldots,x_n)= \cdots + =f_n(x_1,\ldots,x_n)=0 +$$ + is bounded by $d_1d_2\cdots d_n$, where $d_i:=\deg f_i$. + If the polynomials are generic, then this bound is attained for + solutions in an algebraically closed field\index{field!algebraically closed}. +\end{theorem} + +Here, isolated is taken with respect to the algebraic closure. +%There are examples where this result fails without that restriction. +This B\'ezout Theorem is a consequence of the refined B\'ezout Theorem of +Fulton and MacPherson~\cite[\S 1.23]{SO:Fu84a}. + +A system of polynomial equations with fewer than this +degree bound or B\'ezout number\index{Bezout number@B\'ezout number} of solutions is called +{\it deficient}\index{polynomial equations!deficient}, +and there are well-defined classes of deficient systems that satisfy other +bounds. +For example, fewer monomials lead to fewer solutions, for which polyhedral +bounds~\cite{SO:Bernstein} on the number of solutions are often tighter (and +no weaker than) the B\'ezout number, which applies when +all monomials are present. +When the polynomials come from geometry, determining the +number of solutions is the central problem in enumerative +geometry\index{enumerative geometry}. + +Symbolic computation\index{symbolic computation} can help compute the +solutions to a system of equations +that has only isolated solutions. +In this case, the polynomials generate a zero-dimensional ideal +$I$\index{artinian, {\it see also} ideal, +zero-dimensional}\index{ideal!zero-dimensional}. +The {\it degree}\index{ideal!degree} of $I$ is $\dim_k k[X]/I$, the dimension of the +$k$-vector space $k[X]/I$, which is also the +number of standard monomials in any term order. +This degree gives an upper bound on +the number of solutions, which is attained when $I$ is +radical\index{ideal!radical}. + +\begin{example}\label{ex:one} +We illustrate this discussion with an example. +Let $f_1$, $f_2$, $f_3$, and $f_4$ be random quadratic polynomials in the ring +${\mathbb F}_{101}[y_{11},y_{12},y_{21},y_{22}]$. +% +\beginOutput +i1 : R = ZZ/101[y11, y12, y21, y22];\\ +\endOutput +% +\beginOutput +i2 : PolynomialSystem = apply(1..4, i -> \\ +\ random(0, R) + random(1, R) + random(2, R));\\ +\endOutput +% +The ideal they generate has dimension 0 and degree $16=2^4$, which is the +B\'ezout number. +% +\beginOutput +i3 : I = ideal PolynomialSystem;\\ +\emptyLine +o3 : Ideal of R\\ +\endOutput +% +\beginOutput +i4 : dim I, degree I\\ +\emptyLine +o4 = (0, 16)\\ +\emptyLine +o4 : Sequence\\ +\endOutput +% +If we restrict the monomials which appear in the $f_i$ to be among +$$ + 1,\;\ y_{11},\;\ y_{12},\;\ y_{21},\;\ y_{22},\;\ + y_{11}y_{22},\;\ \mbox{ and }\;\ y_{12}y_{21}, +$$ +then the ideal they generate again has dimension 0, but its degree is now 4. +% +\beginOutput +i5 : J = ideal (random(R^4, R^7) * transpose(\\ +\ matrix\{\{1, y11, y12, y21, y22, y11*y22, y12*y21\}\}));\\ +\emptyLine +o5 : Ideal of R\\ +\endOutput +% +\beginOutput +i6 : dim J, degree J\\ +\emptyLine +o6 = (0, 4)\\ +\emptyLine +o6 : Sequence\\ +\endOutput +% +If we further require that the coefficients of the +quadratic terms sum to zero, then the ideal they generate now +has degree 2. +% +\beginOutput +i7 : K = ideal (random(R^4, R^6) * transpose( \\ +\ matrix\{\{1, y11, y12, y21, y22, y11*y22 - y12*y21\}\}));\\ +\emptyLine +o7 : Ideal of R\\ +\endOutput +% +\beginOutput +i8 : dim K, degree K\\ +\emptyLine +o8 = (0, 2)\\ +\emptyLine +o8 : Sequence\\ +\endOutput +% +In Example~\ref{ex:G22}, we shall see how this last specialization is +geometrically meaningful. +\end{example} + + +For us, enumerative geometry\index{enumerative geometry} is concerned +with {\sl enumerating geometric figures of some kind having +specified positions with respect to general fixed figures}. +That is, counting the solutions to a geometrically meaningful +system of polynomial equations\index{polynomial equations}. +We use \Mtwo{}\/ to investigate some enumerative geometric +problems\index{enumerative problem} from this point of view. +The problem of enumeration will be solved by computing the +degree\index{ideal!degree} of the +(0-dimensional) ideal generated by the polynomials. + +\section{Solving Systems of Polynomials} +We briefly discuss some aspects of solving systems of polynomial +equations\index{solving polynomial equations}. +For a more complete survey, see the relevant chapters +in~\cite{SO:CCS,SO:CLO92}. + +Given an ideal $I$ in a polynomial ring $k[X]$, set +${\mathcal V}(I):= {\rm Spec}\,k[X]/I$. +When $I$ is generated by the polynomials +$f_1,\ldots,f_N$, ${\mathcal V}(I)$ gives the set of solutions in affine +space to the system +\begin{equation}\label{eq:system} + f_1(X)\ =\ \cdots\ =\ f_N(X)\ =\ 0 +\end{equation} +a geometric structure. +These solutions are the {\it roots} of the ideal $I$. +The degree of a zero-dimensional ideal $I$ provides an algebraic count of +its roots. +The degree of its radical counts +roots in the algebraic closure, ignoring multiplicities. + +\subsection{Excess Intersection} +Sometimes, only a proper (open) subset of affine space is +geometrically meaningful, and we want to count only the meaningful roots of +$I$. +Often the roots ${\mathcal V}(I)$ has positive dimensional components that lie +in the complement of the meaningful subset. +One way to treat this situation of excess or improper intersection is to +saturate\index{saturation} $I$ by a polynomial $f$ vanishing on the extraneous +roots. +This has the effect of working in $k[X][f^{-1}]$, the coordinate ring of the +complement of ${\mathcal V}(f)$~\cite[Exer.~2.3]{SO:MR97a:13001}. + +\begin{example}\label{ex:two} +We illustrate this with an example. +Consider the following ideal in ${\mathbb F}_7[x,y]$. +% +\beginOutput +i9 : R = ZZ/7[y, x, MonomialOrder=>Lex];\\ +\endOutput +% +\beginOutput +i10 : I = ideal (y^3*x^2 + 2*y^2*x + 3*x*y, 3*y^2 + x*y - 3*y);\\ +\emptyLine +o10 : Ideal of R\\ +\endOutput +% +Since the generators have greatest common factor $y$, $I$ defines +finitely many points together with the line $y=0$. +Saturate $I$\/ by the variable $y$ to obtain the ideal $J$ of isolated roots. +% +\beginOutput +i11 : J = saturate(I, ideal(y))\\ +\emptyLine +\ 4 3 2\\ +o11 = ideal (x + x + 3x + 3x, y - 2x - 1)\\ +\emptyLine +o11 : Ideal of R\\ +\endOutput +% +The first polynomial factors completely in ${\mathbb F}_7[x]$, +% +\beginOutput +i12 : factor(J_0)\\ +\emptyLine +o12 = (x)(x - 2)(x + 2)(x + 1)\\ +\emptyLine +o12 : Product\\ +\endOutput +% +and so the isolated roots of $I$ are $(2,5),(-1,-1),(0,1)$, and $(-2,-3)$. +\end{example} + +Here, the extraneous roots came from a common factor in both +equations. +A less trivial example of this phenomenon will be seen in +Section~\ref{sec:tangent_lines}. + +\subsection{Elimination, Rationality, and Solving} +Elimination theory\index{elimination theory} can be used to study the +roots of a zero-dimensional ideal $I\subset k[X]$\index{solving polynomial +equations!via elimination}. +A polynomial $h\in k[X]$ defines a map +$k[y]\rightarrow k[X]$ (by $y\mapsto h$) and a corresponding projection +$h\colon{\rm Spec}\,k[X]\twoheadrightarrow{\mathbb A}^1$. +The generator $g(y)\in k[y]$ of the +kernel\index{kernel of a ring map} of the map $k[y]\to k[X]/I$ is called an +{\it eliminant}\index{eliminant} +and it has the property that ${\mathcal V}(g)=h({\mathcal V}(I))$. +When $h$ is a coordinate function $x_i$, we may consider the eliminant to be +in the polynomial ring $k[x_i]$, and we have +$\langle g(x_i)\rangle=I\cap k[x_i]$. +The most important result concerning eliminants is the Shape +Lemma\index{Shape Lemma}~\cite{SO:BMMT}. +\medskip + +\noindent{\bf Shape Lemma.} +{\it +Suppose $h$ is a linear polynomial and $g$ is the corresponding eliminant of +a zero-dimensional ideal $I\subset k[X]$ with $\deg(I)=\deg(g)$. +Then the roots of $I$ are defined in the splitting +field\index{field!splitting} of $g$ and +$I$ is radical\index{ideal!radical} if and only if $g$ is square-free. + +Suppose further that $h=x_1$ so that $g=g(x_1)$. +Then, in the lexicographic term order +with $x_1\deg(g_i)$ for $i=2,\ldots,n$. +}\medskip + +When $k$ is infinite and $I$ is radical, an eliminant $g$ given by a generic +linear polynomial $h$ will satisfy $\deg(g)=\deg(I)$. +Enumerative geometry\index{enumerative geometry} counts solutions +when the fixed figures are generic. +We are similarly concerned with the generic situation of +$\deg(g)=\deg(I)$. +In this case, eliminants provide a useful computational device to study +further questions about the roots of $I$. +For instance, the Shape Lemma holds for the saturated ideal of Example~\ref{ex:two}. +Its eliminant, which is the polynomial {\tt J{\char`\_}0}, factors completely +over the ground field ${\mathbb F}_7$, so all four solutions are defined +in ${\mathbb F}_7$. +In Section 4.3, we will use eliminants in another way, to show that +an ideal is radical. + +Given a polynomial $h$ in a zero-dimensional ring $k[X]/I$, the +procedure {\tt eliminant(h, k[y])} finds a linear relation modulo $I$ +among the powers $1, h, h^2, \ldots, h^d$ of $h$ with $d$ minimal +and returns this as a polynomial in $k[y]$. +This procedure is included in the \Mtwo{}\/ package +{\tt realroots.m2}. +% +\beginOutput +i13 : load "realroots.m2"\\ +\endOutput +% +\beginOutput +i14 : code eliminant\\ +\emptyLine +o14 = -- realroots.m2:65-80\\ +\ eliminant = (h, C) -> (\\ +\ Z := C_0;\\ +\ A := ring h;\\ +\ assert( dim A == 0 );\\ +\ F := coefficientRing A;\\ +\ assert( isField F );\\ +\ assert( F == coefficientRing C );\\ +\ B := basis A;\\ +\ d := numgens source B;\\ +\ M := fold((M, i) -> M || \\ +\ substitute(contract(B, h^(i+1)), F), \\ +\ substitute(contract(B, 1_A), F), \\ +\ flatten subsets(d, d));\\ +\ N := ((ker transpose M)).generators;\\ +\ P := matrix \{toList apply(0..d, i -> Z^i)\} * N;\\ +\ (flatten entries(P))_0)\\ +\endOutput +% +Here, {\tt M} is a matrix whose rows are the normal forms of the +powers $1$, $h$, $h^2$, $\ldots$, $h^d$ of $h$, for $d$ the degree of the ideal. +The columns of the kernel {\tt N} of {\tt transpose M} are a basis of the +linear relations among these powers. +The matrix {\tt P} converts these relations into polynomials. +Since {\tt N} is in column echelon form, the initial entry of {\tt P} +is the relation of minimal degree. +(This method is often faster than na\"\i vely computing the kernel of the +map $k[Z]\to A$ given by $Z\mapsto h$, which is implemented by +{\tt eliminantNaive(h, Z)}.) + +Suppose we have an eliminant\index{eliminant} $g(x_1)$ of a zero-dimensional +ideal $I\subset k[X]$ with $\deg(g)=\deg(I)$, and we have computed the +lexicographic Gr\"obner basis~(\ref{triangular}). +Then the roots of $I$ are +% +\begin{equation}\label{tri_roots} + \{ (\xi_1,g_2(\xi_1), \ldots, g_n(\xi_1))\mid g(\xi_1)=0\}\,. +\end{equation} + + +Suppose now that $k={\mathbb Q}$ and we seek floating point approximations +for the (complex) roots of $I$. +Following this method, we first compute floating point solutions to +$g(\xi)=0$, which give all the $x_1$-coordinates of the roots of $I$, and +then use~(\ref{tri_roots}) to find the other coordinates. +The difficulty here is that enough precision may be lost in evaluating +$g_i(\xi_1)$ so that the result is a poor approximation for the other +components $\xi_i$. + + +\subsection{Solving with Linear Algebra} +We describe another method based upon numerical linear algebra. +When $I\subset k[X]$ is zero-dimensional, $A=k[X]/I$ is a finite-dimensional +$k$-vector space, and {\it any} Gr\"obner basis for $I$ gives an efficient +algorithm to compute ring operations using linear algebra. +In particular, multiplication by $h\in A$ is a linear transformation +$m_h:A\to A$ and the command {\tt regularRep(h)} from +{\tt realroots.m2} gives the matrix of $m_h$ in +terms of the standard basis of $A$. +% +\beginOutput +i15 : code regularRep\\ +\emptyLine +o15 = -- realroots.m2:96-100\\ +\ regularRep = f -> (\\ +\ assert( dim ring f == 0 );\\ +\ b := basis ring f;\\ +\ k := coefficientRing ring f;\\ +\ substitute(contract(transpose b, f*b), k))\\ +\endOutput +% + +Since the action of $A$ on itself is faithful, the minimal polynomial of +$m_h$ is the eliminant\index{eliminant} corresponding to $h$. +The procedure {\tt charPoly(h, Z)} in {\tt realroots.m2} +computes the characteristic polynomial +$\det(Z\cdot\mbox{\it Id} - m_h)$ of $h$. +% +\beginOutput +i16 : code charPoly\\ +\emptyLine +o16 = -- realroots.m2:106-113\\ +\ charPoly = (h, Z) -> (\\ +\ A := ring h;\\ +\ F := coefficientRing A;\\ +\ S := F[Z];\\ +\ Z = value Z; \\ +\ mh := regularRep(h) ** S;\\ +\ Idz := S_0 * id_(S^(numgens source mh));\\ +\ det(Idz - mh))\\ +\endOutput +% +When this is the minimal polynomial (the situation of the Shape Lemma), +this procedure often computes the eliminant faster than does +{\tt eliminant}, and for systems of moderate degree, much faster than +na\"\i vely computing the kernel of the map $k[Z]\to A$ given by $Z\mapsto h$. + +The eigenvalues and eigenvectors of $m_h$ give another algorithm for finding +the roots of $I$\index{solving polynomial equations!via eigenvectors}. +The engine for this is the following result\index{Stickelberger's Theorem}. +\medskip + +\noindent{\bf Stickelberger's Theorem. } +{\it +Let $h\in A$ and $m_h$ be as above. +Then there is a one-to-one correspondence between eigenvectors +${\bf v}_\xi$ of $m_h$ and roots $\xi$ of $I$, the eigenvalue of $m_h$ on +${\bf v}_\xi$ is the value $h(\xi)$ of $h$ at $\xi$, and the multiplicity +of this eigenvalue (on the eigenvector ${\bf v}_\xi$) is the +multiplicity of the root $\xi$. +}\medskip + +Since the linear transformations $m_h$ for $h\in A$ commute, the +eigenvectors ${\bf v}_\xi$ are common to all $m_h$. +Thus we may compute the roots of a zero-dimensional ideal $I\subset k[X]$ +by first computing floating-point approximations to the +eigenvectors ${\bf v}_\xi$ of $m_{x_1}$. +Then the root $\xi\ =\ (\xi_1,\ldots,\xi_n)$ of $I$ corresponding to the +eigenvector ${\bf v}_\xi$ has $i$th coordinate satisfying +% +\begin{equation}\label{eigenv} + m_{x_i}\cdot {\bf v}_\xi\ =\ \xi_i \cdot {\bf v}_\xi\,. +\end{equation} +% +An advantage of this method is that we may use structured numerical linear +algebra after the matrices $m_{x_i}$ are precomputed using exact arithmetic. +(These matrices are typically sparse and have additional structures which may +be exploited.) +Also, the coordinates $\xi_i$ are {\it linear} functions of the floating +point entries of ${\bf v}_\xi$, which affords greater precision than +the non-linear evaluations $g_i(\xi_1)$ in the method based upon elimination. +While in principle only one of the $\deg(I)$ components of the vectors +in~(\ref{eigenv}) need be computed, averaging the results from all +components can improve precision. + + +\subsection{Real Roots} +Determining the real roots of a polynomial system is a challenging problem +with real world applications\index{solving polynomial equations!real solutions}. +When the polynomials come from geometry, this is the main problem of +real enumerative geometry\index{enumerative geometry!real}. +Suppose $k\subset{\mathbb R}$ and $I\subset k[X]$ is zero-dimensional. +If $g$ is an eliminant of $k[X]/I$ +with $\deg(g)=\deg(I)$, then the real roots of +$g$ are in 1-1 correspondence with the real roots of $I$. +Since there are effective methods for counting the real roots of a univariate +polynomial, eliminants give a na\"\i ve, but useful method for determining the +number of real roots to a polynomial system. +(For some applications of this technique in mathematics, +see~\cite{SO:RS98,SO:So_shap-www,SO:So00b}.) + +The classical symbolic method of Sturm, based upon Sturm sequences, counts +the number of real roots of a univariate polynomial in an interval. +When applied to an eliminant satisfying the Shape Lemma, this method counts +the number of real roots of the ideal. +This is implemented in \Mtwo{}\/ via the command +{\tt SturmSequence(f)} of {\tt realroots.m2} +% +\beginOutput +i17 : code SturmSequence\\ +\emptyLine +o17 = -- realroots.m2:117-131\\ +\ SturmSequence = f -> (\\ +\ assert( isPolynomialRing ring f );\\ +\ assert( numgens ring f === 1 );\\ +\ R := ring f;\\ +\ assert( char R == 0 );\\ +\ x := R_0;\\ +\ n := first degree f;\\ +\ c := new MutableList from toList (0 .. n);\\ +\ if n >= 0 then (\\ +\ c#0 = f;\\ +\ if n >= 1 then (\\ +\ c#1 = diff(x,f);\\ +\ scan(2 .. n, i -> c#i = - c#(i-2) {\char`\%} c#(i-1));\\ +\ ));\\ +\ toList c)\\ +\endOutput +% +The last few lines of {\tt SturmSequence} construct the Sturm +sequence\index{Sturm sequence} of the univariate argument $f$: +This is $(f_0, f_1, f_2,\ldots)$ where $f_0=f$, $f_1=f'$, and +for $i>1$, $f_i$ is the normal form reduction of $-f_{i-2}$ modulo +$f_{i-1}$. +Given any real number $x$, the {\it variation} of $f$ at $x$ is the number of +changes in sign of the sequence $(f_0(x), f_1(x), f_2(x),\ldots)$ obtained by +evaluating the Sturm sequence of $f$ at $x$. +Then the number of real roots of $f$ over an interval $[x,y]$ is the +difference of the variation of $f$ at $x$ and at $y$. + +The \Mtwo{}\/ commands {\tt numRealSturm} and +{\tt numPosRoots} (and also {\tt numNegRoots}) use this method to respectively +compute the total number of real roots and the number of positive roots of +a univariate polynomial. +% +\beginOutput +i18 : code numRealSturm\\ +\emptyLine +o18 = -- realroots.m2:160-163\\ +\ numRealSturm = f -> (\\ +\ c := SturmSequence f;\\ +\ variations (signAtMinusInfinity {\char`\\} c) \\ +\ - variations (signAtInfinity {\char`\\} c))\\ +\endOutput +% +\beginOutput +i19 : code numPosRoots\\ +\emptyLine +o19 = -- realroots.m2:168-171\\ +\ numPosRoots = f -> ( \\ +\ c := SturmSequence f;\\ +\ variations (signAtZero {\char`\\} c) \\ +\ - variations (signAtInfinity {\char`\\} c))\\ +\endOutput +% +These use the commands {\tt signAt}$*${\tt (f)}, which +give the sign of ${\tt f}$ +at $*$. +(Here, $*$ is one of {\tt Infinity}, {\tt zero}, or {\tt MinusInfinity}.) +Also {\tt variations(c)} computes the +number of sign changes in the sequence {\tt c}. +% +\beginOutput +i20 : code variations\\ +\emptyLine +o20 = -- realroots.m2:183-191\\ +\ variations = c -> (\\ +\ n := 0;\\ +\ last := 0;\\ +\ scan(c, x -> if x != 0 then (\\ +\ if last < 0 and x > 0 or last > 0 \\ +\ and x < 0 then n = n+1;\\ +\ last = x;\\ +\ ));\\ +\ n)\\ +\endOutput +% + + +A more sophisticated method to compute the number of real roots which can also +give information about their location uses the rank and +signature\index{bilinear form!signature} of the +symmetric trace form. +Suppose $I\subset k[X]$ is a zero-dimensional ideal and +set $A:=k[X]/I$. +For $h\in k[X]$, set $S_h(f,g):={\rm trace}(m_{hfg})$. +It is an easy exercise that $S_h$ is a symmetric bilinear form\index{bilinear +form!symmetric} on $A$. +The procedure {\tt traceForm(h)} in {\tt realroots.m2} +computes this trace form\index{trace form} $S_h$. +% +\beginOutput +i21 : code traceForm\\ +\emptyLine +o21 = -- realroots.m2:196-203\\ +\ traceForm = h -> (\\ +\ assert( dim ring h == 0 );\\ +\ b := basis ring h;\\ +\ k := coefficientRing ring h;\\ +\ mm := substitute(contract(transpose b, h * b ** b), k);\\ +\ tr := matrix \{apply(first entries b, x ->\\ +\ trace regularRep x)\};\\ +\ adjoint(tr * mm, source tr, source tr))\\ +\endOutput +% +The value of this construction is the following theorem. + +\begin{theorem}[\cite{SO:BW,SO:PRS}]\label{t:PRS} +Suppose $k\subset{\mathbb R}$ and $I$ is a zero-dimensional ideal in +$k[x_1,\ldots,x_n]$ and consider ${\mathcal V}(I)\subset {\mathbb C}^n$. +Then, for $h\in k[x_1,\ldots,x_n]$, the signature $\sigma(S_h)$ and rank +$\rho(S_h)$ of the bilinear form $S_h$ satisfy +\begin{eqnarray*} +\sigma(S_h)&=&\#\{a\in{\mathcal V}(I)\cap{\mathbb R}^n:h(a)>0\} + - \#\{a\in{\mathcal V}(I)\cap{\mathbb R}^n:h(a)<0\}\,\\ +\rho(S_h)&=&\#\{a\in{\mathcal V}(I):h(a)\neq0\}\,. +\end{eqnarray*} +\end{theorem} + +That is, the rank of $S_h$ counts roots in +${\mathbb C}^n-{\mathcal V}(h)$, and its signature counts the real roots +weighted by the sign of $h$ (which is $-1$, $0$, or $1$) at each root. +The command {\tt traceFormSignature(h)} in {\tt realroots.m2} returns the +rank and signature of the trace form $S_h$. +% +\beginOutput +i22 : code traceFormSignature\\ +\emptyLine +o22 = -- realroots.m2:208-218\\ +\ traceFormSignature = h -> (\\ +\ A := ring h;\\ +\ assert( dim A == 0 );\\ +\ assert( char A == 0 );\\ +\ S := QQ[Z];\\ +\ TrF := traceForm(h) ** S;\\ +\ IdZ := Z * id_(S^(numgens source TrF));\\ +\ f := det(TrF - IdZ);\\ +\ << "The trace form S_h with h = " << h << \\ +\ " has rank " << rank(TrF) << " and signature " << \\ +\ numPosRoots(f) - numNegRoots(f) << endl; )\\ +\endOutput +% +The \Mtwo{}\/ command {\tt numRealTrace(A)} simply returns the number of +real roots of $I$, given ${\tt A}=k[X]/I$. +% +\beginOutput +i23 : code numRealTrace\\ +\emptyLine +o23 = -- realroots.m2:223-230\\ +\ numRealTrace = A -> (\\ +\ assert( dim A == 0 );\\ +\ assert( char A == 0 );\\ +\ S := QQ[Z];\\ +\ TrF := traceForm(1_A) ** S;\\ +\ IdZ := Z * id_(S^(numgens source TrF));\\ +\ f := det(TrF - IdZ);\\ +\ numPosRoots(f)-numNegRoots(f))\\ +\endOutput +% + +\begin{example} +We illustrate these methods on the following polynomial system. +% +\beginOutput +i24 : R = QQ[x, y];\\ +\endOutput +% +\beginOutput +i25 : I = ideal (1 - x^2*y + 2*x*y^2, y - 2*x - x*y + x^2);\\ +\emptyLine +o25 : Ideal of R\\ +\endOutput +% +The ideal $I$ has dimension zero and degree 5. +% +\beginOutput +i26 : dim I, degree I\\ +\emptyLine +o26 = (0, 5)\\ +\emptyLine +o26 : Sequence\\ +\endOutput +% +We compare the two methods to compute the eliminant of $x$ in +the ring $R/I$. +% +\beginOutput +i27 : A = R/I;\\ +\endOutput +% +\beginOutput +i28 : time g = eliminant(x, QQ[Z])\\ +\ -- used 0.09 seconds\\ +\emptyLine +\ 5 4 3 2\\ +o28 = Z - 5Z + 6Z + Z - 2Z + 1\\ +\emptyLine +o28 : QQ [Z]\\ +\endOutput +% +\beginOutput +i29 : time g = charPoly(x, Z)\\ +\ -- used 0.02 seconds\\ +\emptyLine +\ 5 4 3 2\\ +o29 = Z - 5Z + 6Z + Z - 2Z + 1\\ +\emptyLine +o29 : QQ [Z]\\ +\endOutput +% +The eliminant has 3 real roots, which we test in two different ways. +% +\beginOutput +i30 : numRealSturm(g), numRealTrace(A)\\ +\emptyLine +o30 = (3, 3)\\ +\emptyLine +o30 : Sequence\\ +\endOutput +% +We use Theorem~\ref{t:PRS} to isolate these roots in the $x,y$-plane. +% +\beginOutput +i31 : traceFormSignature(x*y);\\ +The trace form S_h with h = x*y has rank 5 and signature 3\\ +\endOutput +% +Thus all 3 real roots lie in the first and third +quadrants (where $xy>0$). +We isolate these further. +% +\beginOutput +i32 : traceFormSignature(x - 2);\\ +The trace form S_h with h = x - 2 has rank 5 and signature 1\\ +\endOutput +% +This shows that two roots lie in the first quadrant with $x>2$ and one lies +in the third. +Finally, one of the roots lies in the triangle $y>0$, $x>2$, and $x+y<3$. +% +\beginOutput +i33 : traceFormSignature(x + y - 3);\\ +The trace form S_h with h = x + y - 3 has rank 5 and signature -1\\ +\endOutput + +Figure~\ref{fig:roots} shows these three roots (dots), as well as the +lines $x+y=3$ and $x=2$. +\begin{figure} +$$ + % 40 pt = 1 unit + % + % + \setlength{\unitlength}{0.8pt} + \begin{picture}(220,110)(-60,-50) + % y - axis + \put(0,-50){\vector(0,1){110}} \put(0,0){\vector(0,-1){50}} + \put(-11,47){$y$} + \put(-5,-40){\line(1,0){10}} \put(6,-42.8){$-1$} + \put(-5,40){\line(1,0){10}} \put(6, 36.5){$1$} + % \put(-5,80){\line(1,0){10}} \put(6, 77){$2$} + % x - axis + \put(-60,0){\vector(1,0){220}} \put(0,0){\vector(-1,0){60}} + \put(-40,-5){\line(0,1){10}} \put(-50,-15){$-1$} + \put(40,-5){\line(0,1){10}} \put(37.5,-15){$1$} + \put(120,-5){\line(0,1){10}} \put(117,-15){$3$} + \put(-51,5){$x$} + + \thicklines + \put(80,-50){\line(0,1){110}} \put(85,-35){$x=2$} + \put(160,-40){\line(-1,1){100}}%\put(15,50){$x+y=3$} + \put(100,25){$x+y=3$} + + \put(-26.2, -42.1){\circle*{2}} + \put(86.3, 11.8){\circle*{2}} + \put(112.8, 50.8){\circle*{2}} + \end{picture} +$$ +\caption{Location of roots\label{fig:roots}} +\end{figure} +\end{example} + + +\subsection{Homotopy Methods} +We describe symbolic-numeric +{\it homotopy continuation methods}\index{homotopy continuation} +for finding approximate complex solutions to a system of +equations\index{solving polynomial equations!via numerical homotopy}. +These exploit the traditional principles of conservation of number and +specialization from enumerative geometry\index{enumerative geometry}. + +Suppose we seek the isolated solutions of a system $F(X)=0$ +where $F=(f_1,\ldots,f_n)$ are polynomials in the variables +$X=(x_1,\ldots,x_N)$. +First, a {\em homotopy} $H(X,t)$ is found with the following properties: +\begin{enumerate} + \item $H(X,1)= F(X)$. + \item The isolated solutions of the {\it start system} $H(X,0)=0$ are known. + \item The system $H(X,t)=0$ defines finitely many (complex) curves, + and each isolated solution of the original system $F(X)=0$ is + connected to an isolated solution $\sigma_i(0)$ of $H(X,0)=0$ along + one of these curves. +\end{enumerate} +Next, choose a generic smooth path $\gamma(t)$ from 0 to 1 in the complex +plane. +Lifting $\gamma$ to the curves $H(X,t)=0$ gives +smooth paths $\sigma_i(t)$ connecting each solution +$\sigma_i(0)$ of the start system to a solution of the original system. +The path $\gamma$ must avoid the finitely many points in ${\mathbb C}$ over +which the curves are singular or meet other components of the solution set +$H(X,t)=0$. + +Numerical path continuation is used to trace each path +$\sigma_i(t)$ from $t=0$ to $t=1$. +When there are fewer solutions to $F(X)=0$ than to +$H(X,0)=0$, some paths will diverge or become singular as +$t\rightarrow 1$, and it is expensive to trace such a path. +The homotopy is {\it optimal}\index{homotopy!optimal} when this does not +occur. + +When $N=n$ and the $f_i$ are generic, set +$G(X):=(g_1,\ldots,g_n)$ with $g_i=(x_i-1)(x_i-2)\cdots(x_i-d_i)$ +where $d_i:=\deg(f_i)$. +Then the {\it B\'ezout homotopy}\index{homotopy!B\'ezout} +$$ + H(X,t)\quad :=\quad tF(X)\ +\ + (1-t)G(X) +$$ +is optimal. +This homotopy furnishes an effective demonstration of +the bound in B\'ezout's Theorem\index{Bezout's Theorem@B\'ezout's Theorem} for the number of +solutions to $F(X)=0$. + +When the polynomial system is deficient, the B\'ezout homotopy is not optimal. +When $n>N$ (often the case in geometric examples), +the B\'ezout homotopy does not apply. +In either case, a different strategy is needed. +Present optimal homotopies for such systems all exploit some structure of +the systems they are designed to solve. +The current state-of-the-art is described in~\cite{SO:Ver99}. + +\begin{example}\label{example:Groebner} +The Gr\"obner homotopy\index{homotopy!Gr\"obner}~\cite{SO:HSS} is an optimal +homotopy\index{homotopy!optimal} that exploits a square-free initial +ideal\index{initial ideal!square-free}. +Suppose our system has the form +$$ + F\ :=\ g_1(X),\ldots,g_m(X),\ \Lambda_1(X),\ldots,\Lambda_d(X) +$$ +where $g_1(X),\ldots,g_m(X)$ form a Gr\"obner basis for an ideal $I$ +with respect to a given term order $\prec$, $\Lambda_1,\ldots,\Lambda_d$ are +linear forms with $d=\dim({\mathcal V}(I))$, {\it and}\/ we assume that +the initial ideal ${\rm in}_\prec I$ is square-free. +This last, restrictive, hypothesis occurs for +certain determinantal varieties\index{determinantal variety}. + +As in~\cite[Chapter 15]{SO:MR97a:13001}, there exist polynomials +$g_i(X,t)$ interpolating between $g_i(X)$ and their initial terms +${\rm in}_\prec g_i(X)$ +$$ + g_i(X;1)\ =\ g_i(X) \qquad\mbox{and}\qquad + g_i(X;0) \ =\ {\rm in}_\prec g_i(X) +$$ +so that $\langle g_1(X,t),\ldots,g_m(X,t)\rangle$ is a flat family +with generic fibre isomorphic to $I$ and special fibre +${\rm in}_\prec I$. +The {\it Gr\"obner homotopy} is +$$ + H(X,t)\ :=\ + g_1(X,t),\ldots,g_m(X,t),\ \Lambda_1(X),\ldots,\Lambda_d(X). +$$ +Since ${\rm in}_\prec I$ is square-free, +${\mathcal V}({\rm in}_\prec I)$ is a union of +$\deg(I)$-many coordinate $d$-planes. +We solve the start system by linear algebra. +This conceptually simple homotopy is in general not +efficient as it is typically overdetermined. +\end{example} + +\section{Some Enumerative Geometry}\label{sec:enumerative} + +We use the tools we have developed to explore the enumerative geometric +problems of cylinders meeting 5 general points and lines tangent to +4 spheres\index{enumerative geometry}\index{enumerative problem}. + +\subsection{Cylinders Meeting 5 Points}\label{sec:cylinder} +A {\it cylinder}\index{cylinder} is the locus of points equidistant from a +fixed line in ${\mathbb R}^3$. +The Grassmannian\index{Grassmannian} of lines in 3-space is 4-dimensional, +which implies that +the space of cylinders is 5-dimensional, and so we expect that 5 points in +${\mathbb R}^3$ will determine finitely many cylinders. +That is, there should be finitely many lines equidistant from 5 general points. +The question is: How many cylinders/lines, and how many of them can be real? + +Bottema and Veldkamp~\cite{SO:BV77} +show there are 6 {\it complex} cylinders +and Lichtblau~\cite{SO:Li00} observes that if the 5 +points are the vertices of +a bipyramid consisting of 2 regular tetrahedra sharing a common face, then +all 6 will be real. +We check this reality on a configuration with less symmetry (so the Shape +Lemma holds). + +If the axial line has direction ${\bf V}$ and contains the point ${\bf P}$ +(and hence has parameterization ${\bf P}+t{\bf V}$), and if $r$ is the squared +radius, then the cylinder\index{cylinder} is the set of points ${\bf X}$ +satisfying +$$ + 0 \ =\ r - + \left\| {\bf X} - {\bf P} - \frac{{\bf V}\cdot({\bf X} - {\bf P})}% + {\|{\bf V}\|^2}\,{\bf V} \right\|^2\ . +$$ +Expanding and clearing the denominator of $\|{\bf V}\|^2$ yields +% +\begin{equation}\label{eq:cylinder} + 0 \ =\ r \|{\bf V}\|^2 + + [{\bf V}\cdot({\bf X} - {\bf P})]^2 - + \|{\bf X} - {\bf P}\|^2\, \|{\bf V}\|^2\,. +\end{equation} +% +We consider cylinders containing the following 5 points, which form an +asymmetric bipyramid. +% +\beginOutput +i34 : Points = \{\{2, 2, 0 \}, \{1, -2, 0\}, \{-3, 0, 0\}, \\ +\ \{0, 0, 5/2\}, \{0, 0, -3\}\};\\ +\endOutput +% +Suppose that ${\bf P}=(0,y_{11},y_{12})$ and ${\bf V}=(1,y_{21},y_{22})$. +% +\beginOutput +i35 : R = QQ[r, y11, y12, y21, y22];\\ +\endOutput +% +\beginOutput +i36 : P = matrix\{\{0, y11, y12\}\};\\ +\emptyLine +\ 1 3\\ +o36 : Matrix R <--- R\\ +\endOutput +% +\beginOutput +i37 : V = matrix\{\{1, y21, y22\}\};\\ +\emptyLine +\ 1 3\\ +o37 : Matrix R <--- R\\ +\endOutput +% +We construct the ideal given by evaluating the +polynomial~(\ref{eq:cylinder}) at each of the five points. +% +\beginOutput +i38 : Points = matrix Points ** R;\\ +\emptyLine +\ 5 3\\ +o38 : Matrix R <--- R\\ +\endOutput +% +% +\beginOutput +i39 : I = ideal apply(0..4, i -> (\\ +\ X := Points^\{i\};\\ +\ r * (V * transpose V) +\\ +\ ((X - P) * transpose V)^2) -\\ +\ ((X - P) * transpose(X - P)) * (V * transpose V)\\ +\ );\\ +\emptyLine +o39 : Ideal of R\\ +\endOutput +% +This ideal has dimension 0 and degree 6. +% +\beginOutput +i40 : dim I, degree I\\ +\emptyLine +o40 = (0, 6)\\ +\emptyLine +o40 : Sequence\\ +\endOutput +% +There are 6 real roots, and they correspond to real cylinders (with $r>0$). +% +\beginOutput +i41 : A = R/I; numPosRoots(charPoly(r, Z))\\ +\emptyLine +o42 = 6\\ +\endOutput +% + +\subsection{Lines Tangent to 4 Spheres}\label{sec:12lines} +We now ask for the lines having a fixed distance from 4 general points. +Equivalently, these are the lines mutually tangent to 4 spheres\index{sphere} of equal radius. +Since the Grassmannian\index{Grassmannian} of lines is four-dimensional, we +expect there to be only finitely many such lines. +Macdonald, Pach, and Theobald~\cite{SO:MPT00} show that there +are indeed 12 lines, and that all 12 may be real. +This problem makes geometric sense over any field $k$ not of characteristic +2, and the derivation of the number 12 is also valid for algebraically +closed\index{field!algebraically closed} +fields not of characteristic 2. + +A sphere in $k^3$ is given by ${\mathcal V}(q(1,{\bf x}))$, where +$q$ is some quadratic form\index{quadratic form} on $k^4$. +Here ${\bf x}\in k^3$ and we note that not all quadratic forms give spheres. +If our field does not have characteristic 2, then there +is a symmetric $4\times 4$ matrix $M$ such that +$q({\bf u})={\bf u}M{\bf u}^t$. + +A line $\ell$ having direction ${\bf V}$ and containing the point ${\bf P}$ +is tangent to the sphere defined by $q$ when the univariate polynomial in $s$ +$$ + q( (1,{\bf P})+s(0,{\bf V}) )\ =\ + q(1,{\bf P}) + 2s (1,{\bf P})M (0,{\bf V})^t + s^2q(0,{\bf V})\,, +$$ +has a double root. +Thus its discriminant\index{discriminant} vanishes, giving the equation +% +\begin{equation}\label{eq:sphere} + \left( (1,{\bf P})M(0,{\bf V})^t\right)^2 \ -\ + (1,{\bf P})M (1,{\bf P})^t\cdot(0,{\bf V})M (0,{\bf V})^t + \ =\ 0\,. +\end{equation} +% + +The matrix $M$ of the quadratic form $q$ of the sphere with +center $(a,b,c)$ and squared radius $r$ is constructed by +{\tt Sphere(a,b,c,r)}. +% +\beginOutput +i43 : Sphere = (a, b, c, r) -> (\\ +\ matrix\{\{a^2 + b^2 + c^2 - r ,-a ,-b ,-c \},\\ +\ \{ -a , 1 , 0 , 0 \},\\ +\ \{ -b , 0 , 1 , 0 \},\\ +\ \{ -c , 0 , 0 , 1 \}\}\\ +\ );\\ +\endOutput +% +If a line $\ell$ contains the point ${\bf P}=(0,y_{11},y_{12})$ +and $\ell$ has direction ${\bf V} = (1,y_{21},y_{22})$, then +{\tt tangentTo(M)} is the equation for $\ell$ to be tangent to the +quadric $uMu^T=0$ determined by the matrix $M$. +% +\beginOutput +i44 : R = QQ[y11, y12, y21, y22];\\ +\endOutput +% +\beginOutput +i45 : tangentTo = (M) -> (\\ +\ P := matrix\{\{1, 0, y11, y12\}\};\\ +\ V := matrix\{\{0, 1, y21, y22\}\};\\ +\ (P * M * transpose V)^2 - \\ +\ (P * M * transpose P) * (V * M * transpose V)\\ +\ );\\ +\endOutput +The ideal of lines having distance $\sqrt{5}$ from the four points +$(0,0,0)$, $(4,1,1)$, $(1,4,1)$, and $(1,1,4)$ has dimension zero and degree 12. +% +\beginOutput +i46 : I = ideal (tangentTo(Sphere(0,0,0,5)), \\ +\ tangentTo(Sphere(4,1,1,5)), \\ +\ tangentTo(Sphere(1,4,1,5)), \\ +\ tangentTo(Sphere(1,1,4,5)));\\ +\emptyLine +o46 : Ideal of R\\ +\endOutput +% +\beginOutput +i47 : dim I, degree I\\ +\emptyLine +o47 = (0, 12)\\ +\emptyLine +o47 : Sequence\\ +\endOutput +% +Thus there are 12 lines whose distance from those 4 points is $\sqrt{5}$. +We check that all 12 are real. +% +\beginOutput +i48 : A = R/I;\\ +\endOutput +% +\beginOutput +i49 : numRealSturm(eliminant(y11 - y12 + y21 + y22, QQ[Z]))\\ +\emptyLine +o49 = 12\\ +\endOutput +% +Since no eliminant\index{eliminant} given by a coordinate function satisfies +the hypotheses of the Shape Lemma, +we took the eliminant with respect to the linear form +$y_{11} - y_{12} + y_{21} + y_{22}$. + +This example is an instance of Lemma~3 of~\cite{SO:MPT00}. +These four points define a regular tetrahedron with volume +$V=9$ where each face has area $A=\sqrt{3^5}/2$ and each edge has length +$e=\sqrt{18}$. +That result guarantees that all 12 lines will be real when +$e/2 p_i )];\\ +\endOutput +% +\beginOutput +i51 : I = Grassmannian(1, 4, R)\\ +\emptyLine +o51 = ideal (p p - p p + p p , p $\cdot\cdot\cdot$\\ +\ \{2, 3\} \{1, 4\} \{1, 3\} \{2, 4\} \{1, 2\} \{3, 4\} \{2, 3\} $\cdot\cdot\cdot$\\ +\emptyLine +o51 : Ideal of R\\ +\endOutput +% +This projective variety has dimension 6 and degree 5 +% +\beginOutput +i52 : dim(Proj(R/I)), degree(I)\\ +\emptyLine +o52 = (6, 5)\\ +\emptyLine +o52 : Sequence\\ +\endOutput +% + +This ideal has an important combinatorial +structure~\cite[Example 11.9]{SO:Sturmfels_GBCP}. +We write each $\alpha\in{\mathbb Y}_{r,n}$ as an increasing +sequence $\alpha\colon\alpha_1<\cdots<\alpha_r$. +Given $\alpha,\beta\in{\mathbb Y}_{r,n}$, consider the +two-rowed array with $\alpha$ written above $\beta$. +We say $\alpha\leq \beta$ if each column weakly increases. +If we sort the columns of an array with rows $\alpha$ and +$\beta$, then the first row is the {\it meet} $\alpha\wedge\beta$ +(greatest lower bound) and the +second row the {\it join} $\alpha\vee\beta$ (least upper bound) of $\alpha$ +and $\beta$. +These definitions endow ${\mathbb Y}_{r,n}$ with the structure of a +distributive lattice. +Figure~\ref{fig2} shows ${\mathbb Y}_{2,5}$. +\begin{figure} +$$ + \epsfysize=1.8in \epsfbox{Y25.eps} +$$\caption{${\mathbb Y}_{2,5}$\label{fig2}} +\end{figure} + +We give $k[p_\alpha]$ the degree reverse +lexicographic order, where we first order the variables $p_\alpha$ by +lexicographic order on their indices $\alpha$. + +\begin{theorem}\label{PluckerIdeal} +The reduced Gr\"obner basis\index{Grobner basis@Gr\"obner basis!reduced} of the Pl\"ucker +ideal with respect to this degree +reverse lexicographic term order consists of quadratic +polynomials +$$ + g(\alpha,\beta)\quad=\quad + p_\alpha\cdot p_\beta \ -\ p_{\alpha\vee\beta}\cdot p_{\alpha\wedge\beta} + \ +\ \hbox{lower terms in $\prec$}\,, +$$ +for each incomparable pair $\alpha,\beta$ in +${\mathbb Y}_{r,n}$, +and all lower terms $\lambda p_\gamma\cdot p_\delta$ in $g(\alpha,\beta)$ +satisfy $\gamma\leq \alpha\wedge\beta$ and $\alpha\vee\beta\leq \delta$. +\end{theorem} + +The form of this Gr\"obner basis implies that the standard monomials are +the sortable monomials, those $p_\alpha p_\beta\cdots p_\gamma$ with +$\alpha\leq\beta\leq\cdots\leq\gamma$. +Thus the Hilbert function\index{Hilbert function} of ${\bf G}_{r,n}$ may be +expressed in terms of the combinatorics of ${\mathbb Y}_{r,n}$. +For instance, the dimension of ${\bf G}_{r,n}$ is the rank of +${\mathbb Y}_{r,n}$, and its degree is the number of maximal chains. +From Figure~\ref{fig2}, these are 6 and 5 for ${\mathbb Y}_{2,5}$, +confirming our previous calculations. + +Since the generators $g(\alpha,\beta)$ are linearly independent, this +Gr\"obner basis is also a minimal generating set for the ideal. +The displayed generator in {\tt o51}, +$$ + p_{\{2,3\}}p_{\{1,4\}}\ -\ p_{\{1,3\}}p_{\{2,4\}}\ -\ + p_{\{1,2\}}p_{\{3,4\}}\ , +$$ +is $g(23, 14)$, and corresponds to the underlined incomparable pair in +Figure~\ref{fig2}. +Since there are 5 such incomparable pairs, the Gr\"obner basis has 5 +generators. +As ${\bf G}_{2,5}$ has codimension 3, it is not a complete +intersection\index{Grassmannian!not a complete intersection}\index{complete intersection}. +This shows how the general enumerative problem from the Schubert calculus +gives rise to an overdetermined system of equations\index{polynomial +equations!overdetermined} in this global +formulation. +\medskip + +The Grassmannian\index{Grassmannian!local coordinates} has a useful system of +local coordinates given by ${\rm Mat}_{r,n-r}$ as follows +% +\begin{equation}\label{eq:local} + Y\ \in {\rm Mat}_{r,n-r}\ \longmapsto\ + {\rm row space}\ [ I_r : Y ]\ \in\ {\bf G}_{r,n}\,. +\end{equation} +% + +Let $L$ be a ($n-r+1-l$)-plane in $k^n$ which is the row space of +a $n-r+1-l$ by $n$ matrix, also written $L$. +Then $L$ meets $X\in{\bf G}_{r,n}$ non-trivially if +$$ + \mbox{maximal minors of }\ + \left[\begin{array}{c}L\\X\end{array}\right]\ =\ 0\,. +$$ +Laplace expansion of each minor along the rows of $X$ gives a linear +equation in the Pl\"ucker coordinates. +In the local coordinates (substituting $[I_r:Y]$ for $X$), we obtain +multilinear equations of degree $\min\{r,n-r\}$. +These equations generate a prime ideal of codimension $l$. + +Suppose each $l_i=1$ in our enumerative problem. +Then in the Pl\"ucker coordinates, we have the Pl\"ucker ideal of +${\bf G}_{r,n}$ +together with $r(n-r)$ linear equations, one for each +$(n{-}r)$-plane $L_i$. +By Theorem~\ref{PluckerIdeal}, the Pl\"ucker ideal has a square-free initial +ideal\index{initial ideal!square-free}, and so the Gr\"obner +homotopy\index{homotopy!Gr\"obner} of +Example~\ref{example:Groebner} may be +used to solve this enumerative problem. + +\begin{example}\label{ex:G22} +${\bf G}_{2,4}\subset{\mathbb P}^5$ has equation +% +\begin{equation}\label{eq:G22} + p_{\{1,2\}}p_{\{0,3\}}-p_{\{1,3\}}p_{\{0,2\}}+ p_{\{2,3\}}p_{\{0,1\}} + \ =\ 0\,. +\end{equation} +% +The condition for $H\in{\bf G}_{2,4}$ to meet a 2-plane $L$ is the +vanishing of +\begin{equation}\label{eq:hypersurface} + p_{\{1,2\}}L_{34}-p_{\{1,3\}}L_{24}+p_{\{2,3\}}L_{14} + + p_{\{1,4\}}L_{23}-p_{\{2,4\}}L_{13}+p_{\{3,4\}}L_{12}\,, +\end{equation} +where $L_{ij}$ is the $(i,j)$th maximal minor of $L$. + +If $l_1=\cdots=l_4=1$, we have 5 equations in ${\mathbb P}^5$, one quadratic +and 4 linear, and so by B\'ezout's Theorem\index{Bezout's Theorem@B\'ezout's Theorem} there are +two 2-planes in $k^4$ that meet 4 general 2-planes non-trivially. +This means that there are 2 lines in ${\mathbb P}^3$ meeting 4 general lines. +In local coordinates, (\ref{eq:hypersurface}) becomes +$$ + L_{34}-L_{14}y_{11}+L_{13}y_{12}-L_{24}y_{21} + + L_{23}y_{22} + L_{12}(y_{11}y_{22}-y_{12}y_{21})\,. +$$ +This polynomial has the form of the last specialization in +Example~\ref{ex:one}. +\end{example} + + +\subsection{Reality in the Schubert Calculus}\label{sec:shapiro} +Like the other enumerative problems we have discussed, enumerative problems +in the special Schubert calculus\index{Schubert calculus} are fully +real\index{enumerative problem!fully real} in that all solutions can be +real~\cite{SO:So99a}. +That is, given any Schubert data $(r,n;l_1,\ldots,l_m)$, there exist +subspaces $L_1,\ldots,L_m\subset{\mathbb R}^n$ such that each of the +$d(r,n;l_1,\ldots,l_m)$ $r$-planes that meet each $L_i$ are themselves +real. + +This result gives some idea of which choices of the $L_i$ give +all $r$-planes real. +Let $\gamma$ be a fixed rational normal curve in ${\mathbb R}^n$. +Then the $L_i$ are linear subspaces osculating $\gamma$. +More concretely, suppose that $\gamma$ is the standard rational normal +curve\index{rational normal curve}, +$\gamma(s) = (1, s, s^2, \ldots, s^{n-1})$. +Then the $i$-plane +$L_i(s):=\langle \gamma(s),\gamma'(s),\ldots,\gamma^{(i-1)}(s)\rangle$ +osculating $\gamma$ at $\gamma(s)$ is the row space +of the matrix given by {\tt oscPlane(i, n, s)}. +% +\beginOutput +i53 : oscPlane = (i, n, s) -> (\\ +\ gamma := matrix \{toList apply(1..n, i -> s^(i-1))\};\\ +\ L := gamma;\\ +\ j := 0;\\ +\ while j < i-1 do (gamma = diff(s, gamma); \\ +\ L = L || gamma;\\ +\ j = j+1);\\ +\ L);\\ +\endOutput +% +\beginOutput +i54 : QQ[s]; oscPlane(3, 6, s)\\ +\emptyLine +o55 = | 1 s s2 s3 s4 s5 |\\ +\ | 0 1 2s 3s2 4s3 5s4 |\\ +\ | 0 0 2 6s 12s2 20s3 |\\ +\emptyLine +\ 3 6\\ +o55 : Matrix QQ [s] <--- QQ [s]\\ +\endOutput +% +(In {\tt o55}, the exponents of $s$ are displayed in line: $s^2$ is written +{\tt s2}. +\Mtwo{} uses this notational convention to display +matrices efficiently.) + + +\begin{theorem}[\cite{SO:So99a}]\label{thm:special-reality} +For any Schubert data $(r,n;l_1,\ldots,l_m)$, {\bf there exist} real numbers +$s_1,s_2,\ldots,s_m$ such that there are $d(r,n;l_1,\ldots,l_m)$ +$r$-planes that meet each osculating plane $L_i(s_i)$, and all are real. +\end{theorem} + +The inspiration for looking at subspaces osculating the rational normal +curve\index{rational normal curve} to +study real enumerative geometry\index{enumerative geometry!real} for the +Schubert calculus\index{Schubert calculus} is the following very interesting +conjecture of Boris Shapiro and Michael +Shapiro, or more accurately, +extensive computer experimentation based upon their +conjecture~\cite{SO:RS98,SO:So_shap-www,SO:So00b,SO:Ver00}. +\medskip + +\noindent{\bf Shapiros's Conjecture\index{Shapiros's Conjecture}. } +{\it +For any Schubert data $(r,n;l_1,\ldots,l_m)$ and {\bf for all} real numbers +$s_1,s_2,\ldots,s_m$ there are $d(r,n;l_1,\ldots,l_m)$ +$r$-planes that meet each osculating plane $L_i(s_i)$, and all are real. +}\medskip + +In addition to Theorem~\ref{thm:special-reality}, (which replaces the +quantifier {\it for all}\/ by {\it there exist}), the strongest evidence for +this Conjecture is the following result of Eremenko and +Gabrielov~\cite{SO:EG00}. + +\begin{theorem} +Shapiros's Conjecture is true when either $r$ or $n-r$ is $2$. +\end{theorem} + +We test an example of this conjecture for the Schubert data +$(3,6;1^3,2^3)$, (where $a^b$ is $a$ repeated $b$ times). +The algorithms of the Schubert calculus predict that $d(3,6;1^3,2^3)=6$. +The function {\tt spSchub(r, L, P)} computes the ideal of $r$-planes meeting +the row space of $L$ in the Pl\"ucker coordinates $P_\alpha$. +% +\beginOutput +i56 : spSchub = (r, L, P) -> (\\ +\ I := ideal apply(subsets(numgens source L, \\ +\ r + numgens target L), S -> \\ +\ fold((sum, U) -> sum +\\ +\ fold((term,i) -> term*(-1)^i, P_(S_U) * det(\\ +\ submatrix(L, sort toList(set(S) - set(S_U)))), U), \\ +\ 0, subsets(#S, r))));\\ +\endOutput +% +We are working in the Grassmannian of 3-planes in +${\mathbb C}^6$. +% +\beginOutput +i57 : R = QQ[apply(subsets(6,3), i -> p_i )];\\ +\endOutput +% +The ideal $I$ consists of the +special Schubert conditions for the 3-planes to meet the 3-planes osculating +the rational normal curve at the points 1, 2, and 3, and to also meet the +2-planes osculating at 4, 5, and 6, +together with the Pl\"ucker ideal {\tt Grassmannian(2, 5, R)}. +Since this is a 1-dimensional homogeneous ideal, we add the linear form +{\tt p{\char`\_}\char`\{0,1,5{\char`\}} - 1} to make the ideal +zero-dimensional\index{ideal!zero-dimensional}. +As before, {\tt Grassmannian(2, 5, R)} creates the Pl\"ucker ideal of +${\bf G}_{3,6}$. +% +\beginOutput +i58 : I = fold((J, i) -> J +\\ +\ spSchub(3, substitute(oscPlane(3, 6, s), \{s=> 1+i\}), p) +\\ +\ spSchub(3, substitute(oscPlane(2, 6, s), \{s=> 4+i\}), p), \\ +\ Grassmannian(2, 5, R), \{0,1,2\}) + \\ +\ ideal (p_\{0,1,5\} - 1);\\ +\emptyLine +o58 : Ideal of R\\ +\endOutput +% +This has dimension 0 and degree 6, in agreement with the Schubert calculus. +% +\beginOutput +i59 : dim I, degree I\\ +\emptyLine +o59 = (0, 6)\\ +\emptyLine +o59 : Sequence\\ +\endOutput +% +As expected, all roots are real. +% +\beginOutput +i60 : A = R/I; numRealSturm(eliminant(p_\{2,3,4\}, QQ[Z]))\\ +\emptyLine +o61 = 6\\ +\endOutput +% +There have been many checked instances of this +conjecture~\cite{SO:So_shap-www,SO:So00b,SO:Ver00}, and it has some +geometrically interesting generalizations~\cite{SO:So_flags}. + +The question remains for which numbers $0\leq d\leq d(r,n;l_1,\ldots,l_m)$ do +there exist real planes $L_i$ with $d(r,n;l_1,\ldots,l_m)$ +$r$-planes meeting each $L_i$, and exactly $d$ of them are real. +Besides Theorem~\ref{thm:special-reality} and the obvious parity condition, +nothing is known in general. +In every known case, every possibility occurs---which is not the case in all +enumerative problems, even those that are fully real\index{enumerative +problem!fully real}\footnote{For example, of +the 12 rational plane cubics containing 8 real points in ${\mathbb P}^2$, +either 8, 10 or 12 can be real, and there are 8 points with all 12 +real~\cite[Proposition 4.7.3]{SO:DeKh00}.}. +Settling this (for $d=0$) has implications for linear systems +theory~\cite{SO:RS98}.\footnote{After this was written, Eremenko and +Gabrielov~\cite{SO:EG-NR} showed that $d$ can be zero for the enumerative +problems given by data $(2,2n,1^{4n-4})$ and $(2n-2,2n,1^{4n-4})$.} + +\subsection{Transversality in the Schubert Calculus} +A basic principle of the classical Schubert calculus\index{Schubert calculus} +is that the intersection +number $d(r,n;l_1,\ldots,l_m)$ has enumerative significance---that is, for +general linear subspaces $L_i$, all solutions appear with multiplicity 1. +This basic principle is not known to hold in general. +For fields of characteristic zero, Kleiman's Transversality +Theorem~\cite{SO:MR50:13063} establishes this principle. +When $r$ or $n{-}r$ is 2, then Theorem~E of~\cite{SO:So97a} establishes this +principle in arbitrary characteristic. +We conjecture that this principle holds in general; that is, for arbitrary +infinite fields and any Schubert data, if the planes $L_i$ are in general +position, then the resulting zero-dimensional ideal is +radical\index{ideal!radical}. + +We test this conjecture on the enumerative problem of +Section~\ref{sec:shapiro}, which is not covered by +Theorem~E of~\cite{SO:So97a}. +The function {\tt testTransverse(F)} tests transversality +for this enumerative problem, for a given field $F$. +It does this by first computing the ideal of the enumerative problem using +random planes $L_i$. +% +\beginOutput +i62 : randL = (R, n, r, l) -> \\ +\ matrix table(n-r+1-l, n, (i, j) -> random(0, R));\\ +\endOutput +% +and the Pl\"ucker ideal of the Grassmannian ${\bf G}_{3,6}$ + {\tt Grassmannian(2, 5, R)}.) +Then it adds a random (inhomogeneous) linear relation + {\tt 1 + random(1, R)} to make the ideal zero-dimensional for generic $L_i$. +When this ideal is zero dimensional and has degree 6 (the expected degree), it +computes the characteristic polynomial {\tt g} of a generic linear form. +If {\tt g} has no multiple roots, {\tt 1 == gcd(g, diff(Z, g))}, +then the Shape Lemma\index{Shape Lemma} +guarantees that the ideal was radical. +{\tt testTransverse} exits either when it computes a radical ideal, +or after {\tt limit} iterations (which is set to 5 for these examples), and +prints the return status. +% +\beginOutput +i63 : testTransverse = F -> (\\ +\ R := F[apply(subsets(6, 3), i -> q_i )];\\ +\ continue := true;\\ +\ j := 0; \\ +\ limit := 5;\\ +\ while continue and (j < limit) do (\\ +\ j = j + 1;\\ +\ I := fold((J, i) -> J + \\ +\ spSchub(3, randL(R, 6, 3, 1), q) +\\ +\ spSchub(3, randL(R, 6, 3, 2), q),\\ +\ Grassmannian(2, 5, R) + \\ +\ ideal (1 + random(1, R)),\\ +\ \{0, 1, 2\});\\ +\ if (dim I == 0) and (degree I == 6) then (\\ +\ lin := promote(random(1, R), (R/I));\\ +\ g := charPoly(lin, Z);\\ +\ continue = not(1 == gcd(g, diff(Z, g)));\\ +\ ));\\ +\ if continue then << "Failed for the prime " << char F << \\ +\ " with " << j << " iterations" << endl;\\ +\ if not continue then << "Succeeded for the prime " <<\\ +\ char F << " in " << j << " iteration(s)" << endl;\\ +\ );\\ +\endOutput +% +Since 5 iterations do not show transversality for ${\mathbb F}_2$, +% +\beginOutput +i64 : testTransverse(ZZ/2);\\ +Failed for the prime 2 with 5 iterations\\ +\endOutput +% +we can test transversality in characteristic 2 using the field with +four elements, ${\mathbb F}_4=$ {\tt GF 4}. +% +\beginOutput +i65 : testTransverse(GF 4);\\ +Succeeded for the prime 2 in 3 iteration(s)\\ +\endOutput +% +We do find transversality for ${\mathbb F}_7$. +% +\beginOutput +i66 : testTransverse(ZZ/7);\\ +Succeeded for the prime 7 in 2 iteration(s)\\ +\endOutput + +We have tested transversality for all primes less than 100 in every +enumerative problem involving Schubert conditions on 3-planes in $k^6$. +These include the problem above as well as the problem of 42 3-planes meeting +9 general 3-planes.\footnote{After this was written, we discovered an +elementary proof of transversality for the enumerative problems given by data +$(r,n;1^{r(n-r)})$, where the conditions are all +codimension~1~\cite{SO:So_trans}.} + + +\section{The 12 Lines: Reprise} +The enumerative problems of Section~\ref{sec:enumerative} were formulated +in local coordinates~(\ref{eq:local}) for the Grassmannian of lines in +${\mathbb P}^3$ (Grassmannian of 2-dimensional subspaces in $k^4$). +When we formulate the problem of Section~\ref{sec:12lines} in the global +Pl\"ucker coordinates\index{Plucker coordinate@Pl\"ucker coordinate} of Section~\ref{sec:grass}, +we find some interesting phenomena. +We also consider some related enumerative problems\index{enumerative problem}. + +\subsection{Global Formulation}\label{sec:global} +A quadratic form\index{quadratic form} $q$ on a vector space $V$ over a field +$k$ not of characteristic 2 is given by +$q({\bf u})=(\varphi({\bf u}),{\bf u})$, where $\varphi\colon V\to V^*$ is +a {\it symmetric} linear map, that is +$(\varphi({\bf u}),{\bf v})=(\varphi({\bf v}),{\bf u})$. +Here, $V^*$ is the linear dual of $V$ and $(\,\cdot\;,\,\cdot\,)$ is the +pairing $V\otimes V^*\to k$. +The map $\varphi$ induces a quadratic form $\wedge^rq$ on the $r$th exterior +power $\wedge^rV$ of $V$ through the symmetric map +$\wedge^r\varphi\colon \wedge^rV\to\wedge^rV^*=(\wedge^rV)^*$. +The action of $\wedge^rV^*$ on $\wedge^rV$ is given by +% +\begin{equation}\label{eq:wedge} + ({\bf x}_1\wedge{\bf x}_2\wedge\cdots\wedge{\bf x}_r,\ + {\bf y\!}_1\wedge{\bf y}\!_2\wedge\cdots\wedge{\bf y}\!_r)\ =\ + \det|({\bf x}_i, {\bf y}\!_j)|\,, +\end{equation} +% +where ${\bf x}_i\in V^*$ and ${\bf y}\!_j\in V$. + +When we fix isomorphisms $V\simeq k^n\simeq V^*$, the map $\varphi$ is given +by a symmetric $n\times n$ matrix $M$ as in Section~\ref{sec:12lines}. +Suppose $r=2$. +Then for ${\bf u},{\bf v}\in k^n$, +$$ + \wedge^2q({\bf u}\wedge{\bf v})\ = + \det\left[\begin{array}{cc} + {\bf u}M{\bf u}^t &{\bf u}M{\bf v}^t\\ + {\bf v}M{\bf u}^t &{\bf v}M{\bf v}^t + \end{array}\right]\ , +$$ +which is Equation~(\ref{eq:sphere}) of Section~\ref{sec:12lines}. + +\begin{proposition}\label{prop:tangent_line} + A line $\ell$ is tangent to a quadric ${\mathcal V}(q)$ in + ${\mathbb P}^{n-1}$ if and only if its Pl\"ucker + coordinate\index{Plucker coordinate@Pl\"ucker coordinate} + $\wedge^2\ell\in{\mathbb P}^{\binom{n}{2}-1}$ lies on the quadric + ${\mathcal V}(\wedge^2q)$. +\end{proposition} + +Thus the Pl\"ucker coordinates for the set of lines tangent to 4 general +quadrics in ${\mathbb P}^3$ satisfy 5 quadratic equations: +The single Pl\"ucker relation~(\ref{eq:G22}) +together with one quadratic equation for each quadric. +Thus we expect the B\'ezout number\index{Bezout number@B\'ezout number} of $2^5=32$ such +lines. +We check this. + +The procedure {\tt randomSymmetricMatrix(R, n)} +generates a random symmetric $n\times n$ matrix with entries in +the base ring of $R$. +% +\beginOutput +i67 : randomSymmetricMatrix = (R, n) -> (\\ +\ entries := new MutableHashTable;\\ +\ scan(0..n-1, i -> scan(i..n-1, j -> \\ +\ entries#(i, j) = random(0, R)));\\ +\ matrix table(n, n, (i, j) -> if i > j then \\ +\ entries#(j, i) else entries#(i, j))\\ +\ );\\ +\endOutput +% +The procedure {\tt tangentEquation(r, R, M)} gives the equation in Pl\"ucker +coordinates for a point in ${\mathbb P}^{\binom{n}{r}-1}$ to be +isotropic with respect to the bilinear form\index{bilinear form} $\wedge^rM$ +({\tt R} is assumed to be the coordinate ring of +${\mathbb P}^{\binom{n}{r}-1}$). +This is the equation for an $r$-plane to be tangent to the quadric +associated to $M$. +% +\beginOutput +i68 : tangentEquation = (r, R, M) -> (\\ +\ g := matrix \{gens(R)\};\\ +\ (entries(g * exteriorPower(r, M) * transpose g))_0_0\\ +\ );\\ +\endOutput +% +We construct the ideal of lines tangent to 4 general quadrics in +${\mathbb P}^3$. +% +\beginOutput +i69 : R = QQ[apply(subsets(4, 2), i -> p_i )];\\ +\endOutput +% +\beginOutput +i70 : I = Grassmannian(1, 3, R) + ideal apply(0..3, i -> \\ +\ tangentEquation(2, R, randomSymmetricMatrix(R, 4)));\\ +\emptyLine +o70 : Ideal of R\\ +\endOutput +% +As expected, this ideal has dimension 0 and degree 32. +% +\beginOutput +i71 : dim Proj(R/I), degree I\\ +\emptyLine +o71 = (0, 32)\\ +\emptyLine +o71 : Sequence\\ +\endOutput +% + + +\subsection{Lines Tangent to 4 Spheres}\label{sec:tangent_lines} +That calculation raises the following question: +In Section~\ref{sec:12lines}, why did we obtain only 12 lines tangent to 4 +spheres\index{sphere}? +To investigate this, we generate the global ideal of lines tangent to the +spheres of Section~\ref{sec:12lines}. +% +\beginOutput +i72 : I = Grassmannian(1, 3, R) + \\ +\ ideal (tangentEquation(2, R, Sphere(0,0,0,5)),\\ +\ tangentEquation(2, R, Sphere(4,1,1,5)),\\ +\ tangentEquation(2, R, Sphere(1,4,1,5)),\\ +\ tangentEquation(2, R, Sphere(1,1,4,5)));\\ +\emptyLine +o72 : Ideal of R\\ +\endOutput +% +We compute the dimension and degree of ${\mathcal V}(I)$. +% +\beginOutput +i73 : dim Proj(R/I), degree I\\ +\emptyLine +o73 = (1, 4)\\ +\emptyLine +o73 : Sequence\\ +\endOutput +% +The ideal is not zero dimensional\index{ideal!zero-dimensional}; there is an +extraneous one-dimensional +component of zeroes with degree 4. +Since we found 12 lines in +Section~\ref{sec:12lines} using the local coordinates~(\ref{eq:local}), +the extraneous component must lie in the complement of that coordinate patch, +which is defined by the vanishing of the first Pl\"ucker coordinate, $p_{\{0,1\}}$. +We saturate\index{saturation} $I$ by $p_{\{0,1\}}$ to obtain the desired lines. +% +\beginOutput +i74 : Lines = saturate(I, ideal (p_\{0,1\}));\\ +\emptyLine +o74 : Ideal of R\\ +\endOutput +% +This ideal does have dimension 0 and degree 12, so we have recovered the +zeroes of Section~\ref{sec:12lines}. +% +\beginOutput +i75 : dim Proj(R/Lines), degree(Lines)\\ +\emptyLine +o75 = (0, 12)\\ +\emptyLine +o75 : Sequence\\ +\endOutput +% + +We investigate the rest of the zeroes, which we obtain +by taking the ideal +quotient of $I$ and the ideal of lines. +As computed above, this has dimension 1 and degree 4. +% +\beginOutput +i76 : Junk = I : Lines;\\ +\emptyLine +o76 : Ideal of R\\ +\endOutput +% +\beginOutput +i77 : dim Proj(R/Junk), degree Junk\\ +\emptyLine +o77 = (1, 4)\\ +\emptyLine +o77 : Sequence\\ +\endOutput +% +We find the support of this extraneous component by taking its +radical. +% +\beginOutput +i78 : radical(Junk)\\ +\emptyLine +\ 2 2 2\\ +o78 = ideal (p , p , p , p + p + p )\\ +\ \{0, 3\} \{0, 2\} \{0, 1\} \{1, 2\} \{1, 3\} \{2, 3\}\\ +\emptyLine +o78 : Ideal of R\\ +\endOutput +% +From this, we see that the extraneous component is supported on an imaginary +conic in the ${\mathbb P}^2$ of lines at infinity. +\smallskip + +To understand the geometry behind this computation, observe that +the sphere with radius $r$ and center $(a,b,c)$ has homogeneous equation +$$ + (x-wa)^2+(y-wb)^2+(z-wc)^2\ =\ r^2w^2\,. +$$ +At infinity, $w=0$, this has equation +$$ + x^2+y^2+z^2\ =\ 0\,. +$$ +The extraneous component is supported on the set of tangent +lines to this imaginary conic. +Aluffi and Fulton~\cite{SO:AF} studied +this problem, using geometry to +identify the extraneous ideal and the excess intersection +formula~\cite{SO:FM76} to obtain the answer of 12. +Their techniques show that there will be 12 isolated lines tangent to 4 +quadrics which have a smooth conic in common. + +When the quadrics are spheres, the conic is the imaginary conic at infinity. +Fulton asked the following question: +Can all 12 lines be real if the (real) four quadrics share a real conic? +We answer his question in the affirmative in the next section. + + +\subsection{Lines Tangent to Real Quadrics Sharing a Real Conic} +We consider four quadrics in ${\mathbb P}^3_{\mathbb R}$ sharing a +non-singular conic, which we will take to be at infinity so that we may use +local coordinates for ${\bf G}_{2,4}$ in our computations. +The variety ${\mathcal V}(q)\subset{\mathbb P}^3_{\mathbb R}$ of a +nondegenerate quadratic form $q$ is determined up to isomorphism by the +absolute value of the signature\index{bilinear form!signature} $\sigma$ of the +associated bilinear form. +Thus there are three possibilities, 0, 2, or 4, for $|\sigma|$. + +When $|\sigma|=4$, the real quadric ${\mathcal V}(q)$ is empty. +The associated symmetric matrix $M$ is conjugate to the identity +matrix, so $\wedge^2M$ is also conjugate to the identity matrix. +Hence ${\mathcal V}(\wedge^2q)$ contains no real points. +Thus we need not consider quadrics with $|\sigma|=4$. + +When $|\sigma|=2$, we have ${\mathcal V}(q)\simeq S^2$, the 2-sphere. +If the conic at infinity is imaginary, then +${\mathcal V}(q)\subset{\mathbb R}^3$ is an ellipsoid\index{ellipsoid}. +If the conic at infinity is real, then ${\mathcal V}(q)\subset{\mathbb R}^3$ is +a hyperboloid\index{hyperboloid} of two sheets. +When $\sigma=0$, we have ${\mathcal V}(q)\simeq S^1\times S^1$, a torus. +In this case, ${\mathcal V}(q)\subset{\mathbb R}^3$ is +a hyperboloid of one sheet and the conic at infinity is real. + +Thus either we have 4 ellipsoids sharing an imaginary conic at infinity, +which we studied in Section~\ref{sec:12lines}; or else we have four +hyperboloids sharing a real conic at infinity, and there are five +possible combinations of hyperboloids of one or two sheets sharing a real +conic at infinity. +This gives six topologically distinct possibilities in all. + + +\begin{theorem} +For each of the six topologically distinct possibilities of four real +quadrics sharing a smooth conic at infinity, there exist four quadrics +having the property that each of the 12 lines in ${\mathbb C}^3$ +simultaneously tangent to the four quadrics is real. +\end{theorem} + +\begin{proof} +By the computation in Section~\ref{sec:12lines}, +we need only check the five possibilities for hyperboloids\index{hyperboloid}. +We fix the conic at infinity to be $x^2+y^2-z^2=0$. +Then the general hyperboloid of two sheets containing this conic has +equation in ${\mathbb R}^3$ +% +\begin{equation}\label{eq:twoSheet} + (x-a)^2+(y-b)^2-(z-c)^2+r\ =\ 0\,, +\end{equation} +% +(with $r>0$). +The command {\tt Two(a,b,c,r)} generates the associated +symmetric matrix. +% +\beginOutput +i79 : Two = (a, b, c, r) -> (\\ +\ matrix\{\{a^2 + b^2 - c^2 + r ,-a ,-b , c \},\\ +\ \{ -a , 1 , 0 , 0 \},\\ +\ \{ -b , 0 , 1 , 0 \},\\ +\ \{ c , 0 , 0 ,-1 \}\}\\ +\ );\\ +\endOutput +The general hyperboloid of one sheet containing the conic +$x^2+y^2-z^2=0$ at infinity has equation in ${\mathbb R}^3$ +% +\begin{equation}\label{eq:oneSheet} + (x-a)^2+(y-b)^2-(z-c)^2-r\ =\ 0\,, +\end{equation} +% +(with $r>0$). +The command {\tt One(a,b,c,r)} generates the associated +symmetric matrix. +% +\beginOutput +i80 : One = (a, b, c, r) -> (\\ +\ matrix\{\{a^2 + b^2 - c^2 - r ,-a ,-b , c \},\\ +\ \{ -a , 1 , 0 , 0 \},\\ +\ \{ -b , 0 , 1 , 0 \},\\ +\ \{ c , 0 , 0 ,-1 \}\}\\ +\ );\\ +\endOutput + +We consider $i$ quadrics of two sheets~(\ref{eq:twoSheet}) and $4-i$ +quadrics of one sheet~(\ref{eq:oneSheet}). +For each of these cases, the table below displays four 4-tuples of data +$(a,b,c,r)$ which give 12 real lines. +(The data for the hyperboloids of one sheet are listed first.) +\begin{center} +\begin{tabular}{|c|l|}\hline +$\;i$\;&\hspace{13em}Data\\\hline +$0$&$\hspace{.915em}(5,3,3,16),\hspace{2.185em}(5,-4,2,1),\hspace{1.27em} + (-3,-1,1,1),\hspace{.88em}(2,-7,0,1)$\\\hline +$1$&$\hspace{.385em}(3,-2,-3,6),\hspace{.885em}(-3,-7,-6,7),\hspace{.5em} + (-6,3,-5,2),\hspace{.865em}(1,6,-2,5)$\\\hline +$2$&$\hspace{1.165em}(6,4,6,4),\hspace{2.43em}(-1,3,3,6),\hspace{1.265em} + (-7,-2,3,3),\hspace{.5em}(-6,7,-2,5)$\\\hline +$3$&$(-1,-4,-1,1),\hspace{.885em}(-3,3,-1,1),\hspace{.885em} + \hspace{.4em}(-7,6,2,9),\hspace{1.025em}(5,6,-1,12)$\\\hline +$4$&$\hspace{.525em}(5,2,-1,25),\hspace{1.555em}(6,-6,2,25),\hspace{1.03em} + \hspace{.4em}(-7,1,6,1),\hspace{1.65em}(3,1,0,1)$\\\hline +\end{tabular} +\end{center} + +%\noindent$|\hspace{1em}|$ + +%\noindent$|\hspace{10pt}|$ + + +We test each of these, using the formulation in local coordinates of +Section~\ref{sec:12lines}. +% +\beginOutput +i81 : R = QQ[y11, y12, y21, y22];\\ +\endOutput +% +\beginOutput +i82 : I = ideal (tangentTo(One( 5, 3, 3,16)), \\ +\ tangentTo(One( 5,-4, 2, 1)), \\ +\ tangentTo(One(-3,-1, 1, 1)), \\ +\ tangentTo(One( 2,-7, 0, 1)));\\ +\emptyLine +o82 : Ideal of R\\ +\endOutput +% +\beginOutput +i83 : numRealSturm(charPoly(promote(y22, R/I), Z))\\ +\emptyLine +o83 = 12\\ +\endOutput +% +\beginOutput +i84 : I = ideal (tangentTo(One( 3,-2,-3, 6)), \\ +\ tangentTo(One(-3,-7,-6, 7)), \\ +\ tangentTo(One(-6, 3,-5, 2)), \\ +\ tangentTo(Two( 1, 6,-2, 5)));\\ +\emptyLine +o84 : Ideal of R\\ +\endOutput +% +\beginOutput +i85 : numRealSturm(charPoly(promote(y22, R/I), Z))\\ +\emptyLine +o85 = 12\\ +\endOutput +% +\beginOutput +i86 : I = ideal (tangentTo(One( 6, 4, 6, 4)), \\ +\ tangentTo(One(-1, 3, 3, 6)), \\ +\ tangentTo(Two(-7,-2, 3, 3)), \\ +\ tangentTo(Two(-6, 7,-2, 5)));\\ +\emptyLine +o86 : Ideal of R\\ +\endOutput +% +\beginOutput +i87 : numRealSturm(charPoly(promote(y22, R/I), Z))\\ +\emptyLine +o87 = 12\\ +\endOutput +% + +\beginOutput +i88 : I = ideal (tangentTo(One(-1,-4,-1, 1)),\\ +\ tangentTo(Two(-3, 3,-1, 1)), \\ +\ tangentTo(Two(-7, 6, 2, 9)), \\ +\ tangentTo(Two( 5, 6,-1,12)));\\ +\emptyLine +o88 : Ideal of R\\ +\endOutput +% +\beginOutput +i89 : numRealSturm(charPoly(promote(y22, R/I), Z))\\ +\emptyLine +o89 = 12\\ +\endOutput +% +\beginOutput +i90 : I = ideal (tangentTo(Two( 5, 2,-1,25)), \\ +\ tangentTo(Two( 6,-6, 2,25)), \\ +\ tangentTo(Two(-7, 1, 6, 1)), \\ +\ tangentTo(Two( 3, 1, 0, 1)));\\ +\emptyLine +o90 : Ideal of R\\ +\endOutput +% +\beginOutput +i91 : numRealSturm(charPoly(promote(y22, R/I), Z))\\ +\emptyLine +o91 = 12\\ +\endOutput +% +\qed +\end{proof} + + +In each of these enumerative problems there are 12 complex solutions. +For each, we have done other computations showing that every possible +number of real solutions (0, 2, 4, 6, 8, 10, or 12) can occur. + + + +\subsection{Generalization to Higher Dimensions} +We consider lines tangent to quadrics in higher dimensions. +First, we reinterpret the action of $\wedge^rV^*$ on $\wedge^rV$ +described in~(\ref{eq:wedge}) as follows. +The vectors ${\bf x}_1,\ldots,{\bf x}_r$ and ${\bf y}\!_1,\ldots,{\bf y}\!_r$ +define maps $\alpha\colon k^r\to V^*$ and $\beta\colon k^r\to V$. +The matrix $[({\bf x}_i,\,{\bf y}\!_j)]$ is the matrix of the bilinear form +on $k^r$ given by +$\langle{\bf u},\,{\bf v}\rangle:= (\alpha({\bf u}),\,\beta({\bf v}))$. +Thus~(\ref{eq:wedge}) vanishes when the bilinear form +$\langle\,\cdot\,,\,\cdot\,\rangle$ on $k^r$ is degenerate. + +Now suppose that we have a quadratic form $q$ on $V$ given by a symmetric map +$\varphi\colon V\to V^*$. +This induces a quadratic form and hence a quadric on any $r$-plane $H$ in $V$ +(with $H\not\subset{\mathcal V}(q)$). +This induced quadric is singular when $H$ is tangent to ${\mathcal V}(q)$. +Since a quadratic form is degenerate only when the associated projective +quadric is singular, we see that +$H$ is tangent to the quadric +${\mathcal V}(q)$ if and only if +$(\wedge^r\varphi(\wedge^rH),\,\wedge^rH)=0$. +(This includes the case $H\subset{\mathcal V}(q)$.) +We summarize this argument. + + +\begin{theorem} +Let $\varphi\colon V\to V^*$ be a linear map with resulting bilinear form +$(\varphi({\bf u}),\,{\bf v})$. +Then the locus of $r$-planes in $V$ for which the restriction of this form +is degenerate is the set of $r$-planes $H$ whose Pl\"ucker +coordinates\index{Plucker coordinate@Pl\"ucker coordinate} are +isotropic, $(\wedge^r\varphi(\wedge^rH),\,\wedge^rH)=0$, with respect to the +induced form on $\wedge^rV$. + +When $\varphi$ is symmetric, this is the locus of $r$-planes tangent to the +associated quadric in ${\mathbb P}(V)$. +\end{theorem} + + +We explore the problem of lines tangent to quadrics in ${\mathbb P}^n$. +From the calculations of Section~\ref{sec:global}, we do not expect this to +be interesting if the quadrics are general. +(This is borne out for ${\mathbb P}^4$: + we find 320 lines in ${\mathbb P}^4$ tangent to 6 general quadrics. + This is the B\'ezout number\index{Bezout number@B\'ezout number}, as $\deg{\bf G}_{2,5}=5$ + and the condition to be tangent to a quadric has degree 2.) +This problem is interesting if the quadrics +in ${\mathbb P}^n$ share a quadric in a ${\mathbb P}^{n-1}$. +We propose studying such enumerative problems, both determining the +number of solutions for general such quadrics, and investigating whether or +not it is possible to have all solutions be real. + +We use \Mtwo{}\/ to compute the expected number of +solutions to this problem when $r=2$ and $n=4$. +We first define some functions for this computation, which will involve +counting the degree of the ideal of lines in ${\mathbb P}^4$ tangent to 6 +general spheres\index{sphere}. +Here, $X$ gives local coordinates for the Grassmannian\index{Grassmannian}, +$M$ is a symmetric matrix, {\tt tanQuad} gives the equation in $X$ for the +lines tangent to the quadric given by $M$. +% +\beginOutput +i92 : tanQuad = (M, X) -> (\\ +\ u := X^\{0\};\\ +\ v := X^\{1\};\\ +\ (u * M * transpose v)^2 - \\ +\ (u * M * transpose u) * (v * M * transpose v)\\ +\ );\\ +\endOutput +% +{\tt nSphere} gives the matrix $M$ for a sphere with +center {\tt V} and squared radius {\tt r}, and {\tt V} and {\tt r} give random +data for a sphere. +% +\beginOutput +i93 : nSphere = (V, r) -> \\ +\ (matrix \{\{r + V * transpose V\}\} || transpose V ) |\\ +\ ( V || id_((ring r)^n)\\ +\ );\\ +\endOutput +% +\beginOutput +i94 : V = () -> matrix table(1, n, (i,j) -> random(0, R));\\ +\endOutput +% +\beginOutput +i95 : r = () -> random(0, R);\\ +\endOutput +% +We construct the ambient ring, local coordinates, and the ideal of the +enumerative problem of lines in ${\mathbb P}^4$ tangent to 6 random spheres. +% +\beginOutput +i96 : n = 4;\\ +\endOutput +% +\beginOutput +i97 : R = ZZ/1009[flatten(table(2, n-1, (i,j) -> z_(i,j)))];\\ +\endOutput +% +\beginOutput +i98 : X = 1 | matrix table(2, n-1, (i,j) -> z_(i,j))\\ +\emptyLine +o98 = | 1 0 z_(0,0) z_(0,1) z_(0,2) |\\ +\ | 0 1 z_(1,0) z_(1,1) z_(1,2) |\\ +\emptyLine +\ 2 5\\ +o98 : Matrix R <--- R\\ +\endOutput +% +\beginOutput +i99 : I = ideal (apply(1..(2*n-2), \\ +\ i -> tanQuad(nSphere(V(), r()), X)));\\ +\emptyLine +o99 : Ideal of R\\ +\endOutput +% +We find there are 24 lines in ${\mathbb P}^4$ tangent to 6 general spheres. +\beginOutput +i100 : dim I, degree I\\ +\emptyLine +o100 = (0, 24)\\ +\emptyLine +o100 : Sequence\\ +\endOutput +% +The expected numbers of solutions we have obtained in this way are displayed +in the table below. +The numbers in boldface are those which are proven.\footnote{As this was +going to press, the obvious pattern was proven: +There are $3\cdot 2^{n-1}$ complex lines tangent to $2n-2$ +general spheres in ${\mathbb R}^n$, and all may be real~\cite{SO:STh01}.} + +\begin{center} +\begin{tabular}{|c|c|c|c|c|c|}\hline + $n$&2&3&4&5&6\\\hline + \# expected\;&\;{\bf 4}\;&\;{\bf 12}\;&\;24\;&\;48\;&\;96\;\\\hline +\end{tabular} +\end{center} + +\begin{acknowledgment} +We thank Dan Grayson and +Bernd Sturmfels: +some of the procedures in this chapter were written by Dan Grayson +and the calculation in Section 5.2 is due to Bernd Sturmfels. +\end{acknowledgment} + +%\bibliographystyle{siam} +%\bibliography{../../bibl/bibliography,../../bibl/sottile} + +%\end{document} + +\begin{thebibliography}{10} + +\bibitem{SO:AF} +P.~Aluffi and W.~Fulton: +\newblock Lines tangent to four surfaces containing a curve. +\newblock 2001. + +\bibitem{SO:BMMT} +E.~Becker, M.~G. Marinari, T.~Mora, and C.~Traverso: +\newblock The shape of the {S}hape {L}emma. +\newblock In {\em Proceedings ISSAC-94}, pages 129--133, 1993. + +\bibitem{SO:BW} +E.~Becker and Th. W{\"o}ermann: +\newblock On the trace formula for quadratic forms. +\newblock In {\em Recent advances in real algebraic geometry and quadratic + forms (Berkeley, CA, 1990/1991; San Francisco, CA, 1991)}, pages 271--291. + Amer. Math. Soc., Providence, RI, 1994. + +\bibitem{SO:Bernstein} +D.~N. Bernstein: +\newblock The number of roots of a system of equations. +\newblock {\em Funct. Anal. Appl.}, 9:183--185, 1975. + +\bibitem{SO:BV77} +O.~Bottema and G.R. Veldkamp: +\newblock On the lines in space with equal distances to $n$ given points. +\newblock {\em Geometrie Dedicata}, 6:121--129, 1977. + +\bibitem{SO:CCS} +A.~M. Cohen, H.~Cuypers, and H.~Sterk, editors. +\newblock {\em Some Tapas of Computer Algebra}. +\newblock Springer-Varlag, 1999. + +\bibitem{SO:CLO92} +D.~Cox, J.~Little, and D.~O'Shea: +\newblock {\em Ideals, Varieties, Algorithms: An Introduction to Computational + Algebraic Geometry and Commutative Algebra}. +\newblock UTM. Springer-Verlag, New York, 1992. + +\bibitem{SO:DeKh00} +A.~I. Degtyarev and V.~M. Kharlamov: +\newblock Topological properties of real algebraic varieties: {R}okhlin's way. +\newblock {\em Uspekhi Mat. Nauk}, 55(4(334)):129--212, 2000. + +\bibitem{SO:MR97a:13001} +D.~Eisenbud: +\newblock {\em Commutative Algebra With a View Towards Algebraic Geometry}. +\newblock Number 150 in GTM. Springer-Verlag, 1995. + +\bibitem{SO:EG00} +A.~Eremenko and A.~Gabrielov: +\newblock Rational functions with real critical points and {B}.~and + {M}.~{S}hapiro conjecture in real enumerative geometry. +\newblock MSRI preprint 2000-002, 2000. + +\bibitem{SO:EG-NR} +A.~Eremenko and A.~Gabrielov: +\newblock New counterexamples to pole placement by static output feedback. +\newblock Linear Algebra and its Applications, to appear, 2001. + +\bibitem{SO:Fu84a} +W.~Fulton: +\newblock {\em Intersection Theory}. +\newblock Number~2 in Ergebnisse der Mathematik und ihrer Grenzgebiete. + Springer-Verlag, 1984. + +\bibitem{SO:FM76} +W.~Fulton and R.~MacPherson: +\newblock Intersecting cycles on an algebraic variety. +\newblock In P.~Holm, editor, {\em Real and Complex Singularities}, pages + 179--197. Oslo, 1976, Sijthoff and Noordhoff, 1977. + +\bibitem{SO:HSS} +B.~Huber, F.~Sottile, and B.~Sturmfels: +\newblock Numerical {S}chubert calculus. +\newblock {\em J.~Symb.~Comp.}, 26(6):767--788, 1998. + +\bibitem{SO:MR50:13063} +S.~Kleiman: +\newblock The transversality of a general translate. +\newblock {\em Compositio Math.}, 28:287--297, 1974. + +\bibitem{SO:MR48:2152} +S.~Kleiman and D.~Laksov: +\newblock Schubert calculus. +\newblock {\em Amer. Math. Monthly}, 79:1061--1082, 1972. + +\bibitem{SO:Li00} +D.~Lichtblau: +\newblock Finding cylinders through 5 points in $\mathbb{R}^3$. +\newblock Mss., email address: {danl@wolfram.com}, 2001. + +\bibitem{SO:MPT00} +I.G. Macdonald, J.~Pach, and T.~Theobald: +\newblock Common tangents to four unit balls in $\mathbb{R}^3$. +\newblock To appear in {\em Discrete and Computational Geometry} {\bf 26}:1 + (2001). + +\bibitem{SO:PRS} +P.~Pedersen, M.-F. Roy, and A.~Szpirglas: +\newblock Counting real zeros in the multivariate case. +\newblock In {\em Computational {A}lgebraic {G}eometry (Nice, 1992)}, pages + 203--224. Birkh\"auser Boston, Boston, MA, 1993. + +\bibitem{SO:RS98} +J.~Rosenthal and F.~Sottile: +\newblock Some remarks on real and complex output feedback. +\newblock {\em Systems Control Lett.}, 33(2):73--80, 1998. +\newblock For a description of the computational aspects, see + {http://www.nd.edu/\~{}rosen/pole/}. + +\bibitem{SO:So97a} +F.~Sottile: +\newblock Enumerative geometry for the real {G}rassmannian of lines in + projective space. +\newblock {\em Duke Math. J.}, 87(1):59--85, 1997. + +\bibitem{SO:So99a} +F.~Sottile: +\newblock The special {S}chubert calculus is real. +\newblock {\em ERA of the AMS}, 5:35--39, 1999. + +\bibitem{SO:So_shap-www} +F.~Sottile: +\newblock The conjecture of {S}hapiro and {S}hapiro. +\newblock An archive of computations and computer algebra scripts, + {http://www.expmath.org/extra/9.2/sottile/}, 2000. + +\bibitem{SO:So_trans} +F.~Sottile: +\newblock Elementary transversality in the schubert calculus in any + characteristic. +\newblock math.AG/0010319, 2000. + +\bibitem{SO:So00b} +F.~Sottile: +\newblock Real {S}chubert calculus: Polynomial systems and a conjecture of + {S}hapiro and {S}hapiro. +\newblock {\em Exper.~Math.}, 9:161--182, 2000. + +\bibitem{SO:So_flags} +F.~Sottile: +\newblock Some real and unreal enumerative geometry for flag manifolds. +\newblock {\em Mich. Math. J}, 48:573--592, 2000. + +\bibitem{SO:STh01} +F.~Sottile and T.~Theobald: +\newblock Lines tangent to $2n-2$ spheres in $\mathbb{R}^n$. +\newblock math.AG/0105180, 2001. + +\bibitem{SO:Sturmfels_GBCP} +B.~Sturmfels: +\newblock {\em Gr{\"o}bner Bases and Convex Polytopes}, volume~8 of {\em + University Lecture Series}. +\newblock American Math. Soc., Providence, RI, 1996. + +\bibitem{SO:Ver99} +J.~Verschelde: +\newblock Polynomial homotopies for dense, sparse, and determinantal systems. +\newblock MSRI preprint 1999-041, 1999. + +\bibitem{SO:Ver00} +J.~Verschelde: +\newblock Numerical evidence of a conjecture in real algebraic geometry. +\newblock {\em Exper.~Math.}, 9:183--196, 2000. + +\end{thebibliography} +\egroup +\makeatletter +\renewcommand\thesection{\@arabic\c@section} +\makeatother + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% +%%%%% ../chapters/completeIntersections/ci +%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\bgroup +% Dan: 333-6209 (office) 367-6384 (home) + +\CompileMatrices + +\newtheorem{sRemark}{Remark}{\bfseries}{\rm} +\newtheorem{notation}[theorem]{Notation}{\bfseries}{\rm} +\newtheorem{construction}[theorem]{Construction}{\bfseries}{\rm} +\numberwithin{sRemark}{subsection} +\newtheorem{sExample}[sRemark]{Example}{\bfseries}{\rm} +\newtheorem{sCode}[sRemark]{Code}{\bfseries}{\rm} + +\title{Resolutions and Cohomology \\ over Complete Intersections} +\titlerunning{Complete Intersections} +\toctitle{Resolutions and Cohomology over Complete Intersections} + +\author{Luchezar L. Avramov + %\inst 1 + \and Daniel R. Grayson% + %\inst 2 + %\fnmsep + \thanks{Authors supported by the NSF, grants DMS 99-70375 and + DMS 99-70085.}} +\authorrunning{L. L. Avramov and D. R. Grayson} +% \institute{Purdue University, Department of Mathematics +% % \endgraf {\tt http://www.math.purdue.edu/\char`\~avramov} +% % \endgraf {\tt avramov\char`\@math.purdue.edu} +% \and University of Illinois at Urbana-Champaign, +% Department of Mathematics +% % \endgraf {\tt http://www.math.uiuc.edu/\char`\~dan} +% % \endgraf {\tt dan\char`\@math.uiuc.edu} +% } + +\hyphenation{quasi-iso-mor-phism} + +\newcommand\ssum[1]{{\underset{#1}{\sum{\vphantom\sum}^{\scriptscriptstyle+}}}} + +\def\ann{{\operatorname{ann}}} +\def\inv{{\operatorname{inv}}} +\def\reg{{\operatorname{reg}}} +\def\gr{{\operatorname{gr}}} +\def\bu{{\scriptscriptstyle\bullet}} +\def\HH{{\operatorname{H}}} +\def\Tor{\operatorname{Tor}} +\def\Ext{\operatorname{Ext}} +\def\rExt{\operatorname{ext}} +\def\Deg{\operatorname{Deg}} +\def\Poi{{P}} +\def\Ba{{I}} +\def\gen{{G}} +\def\depth{\operatorname{depth}} +\def\pd{\operatorname{pd}} +\def\cx{\operatorname{cx}} +\def\crdeg{\operatorname{crdeg}} +\def\rank{\operatorname{rank}} +\def\var{\operatorname{V}} +\def\lcontract{\operatorname{\lrcorner}} +\def\Hom{\operatorname{Hom}} +\def\Coker{\operatorname{Coker}} +\def\Ker{\operatorname{Ker}} +\def\Ima{\operatorname{Im}} +\def\C{{\mathbb C}} +\def\F{{\mathbb F}} +\def\N{{\mathbb N}} +\def\Z{{\mathbb Z}} +\def\DD{{\mathsf D}} +\def\SS{{\mathsf S}} +\def\Wedge{{\textstyle\bigwedge\limits}} +\def\a{\alpha} +\def\b{\beta} +\def\g{\gamma} +\def\d{\delta} +\def\e{\epsilon} +\def\o{\otimes} + +\maketitle +\begin{abstract} +This chapter contains a new proof and new applications of a theorem of +Shamash and Eisenbud, providing a construction of projective +resolutions of modules over a complete intersection. The duals of +these infinite projective resolutions are finitely generated +differential graded modules over a graded polynomial ring, so they can +be represented in the computer, and can be used to compute $\Ext$ +modules simultaneously in all homological degrees. It is shown how to +write \Mtwo code to implement the construction, and how to use the +computer to determine invariants of modules over complete intersections +that are difficult to obtain otherwise. +\index{complete intersection} + \end{abstract} + +\section*{Introduction} +\label{sec:introduction} + +Let $A=K[x_1,\dots,x_e]$ be a polynomial ring with variables of +positive degree over a field $K$, and $B=A/J$ a quotient ring modulo a +homogeneous ideal. + +In this paper we consider the case when $B$ is a {\it\ie{graded +complete intersection}\/}, that is, when the defining ideal $J$ is +generated by a homogeneous $A$-regular sequence. We set up, describe, +and illustrate a routine {\tt Ext}\indexcmd{Ext}, now implemented in +\Mtwo. For any two finitely generated graded $B$-modules $M$ and $N$ +it yields a presentation of $\Ext^\bu_B(M,N)$ as a bigraded module over +an appropriately bigraded polynomial ring $S=A[X_1,\dots,X_c]$. + +A novel feature of our routine is that it computes the modules +$\Ext^n_B(M,N)$ {\it simultaneously in all cohomological degrees\/} +$n\ge0$. This is made possible by the use of {\it cohomology +operations\/}, a technique usually confined to theoretical +considerations. Another aspect worth noticing is that, although the +result is over a ring $B$ with nontrivial relations, all the +computations are made over the {\it polynomial ring\/} $S$; this may +account for the effectiveness of the algorithm. + +To explain the role of the complete intersection hypothesis, we cast it +into the broader context of homological algebra over graded rings. + +Numerous results indicate that the high syzygy modules of $M$ exhibit +`similar' properties. For an outrageous example, assume that $M$ has +finite projective dimension. Its distant syzygies are then all equal +to $0$, and so---for trivial reasons---display an extremely uniform +behavior. However, even this case has a highly nontrivial aspect: due +to the Auslander-Buchsbaum Equality asymptotic information is available +after at most $(e+1)$ steps. This accounts for the effectiveness of +computer constructions of {\it finite\/} free resolutions. + +Problems that computers are not well equipped to handle arise +unavoidably when studying asymptotic behavior of {\it infinite\/} +resolutions. We describe some, using graded Betti numbers +$\b^B_{ns}(M)=\dim_K\Ext^n_B(M,k)_{-s}$, where $k=B/(x_1,\dots,x_e)B$, +and regularity $\reg_B(M)= \sup_{n,s}\{s-n\,|\, \b^B_{ns}(M)\ne0\}$. +\begin{itemize} +\item[$\bullet$] +{\it Irrationality\/}. +There are rings $B$ for which no recurrent relation with constant +coefficients exists among the numbers $\b^B_n(k)=\sum_{s}\b^B_{ns}(k)$, +see \cite{CI:MR86i:55011a}. +\item[$\bullet$] +{\it Irregularity\/}. +For each $r\ge2$ there exists a ring $B(r)$ with $\b^{B(r)}_{ns}(k)=0$ +for $s\ne n$ and $0\le n\le r$, but with $\b^{B(r)}_{r,r+1}(k)\ne0$, +see \cite{CI:MR94b:16040}. +\item[$\bullet$] +{\it Span\/}. +If $B$ is generated over $K$ by elements of degree one and $\reg_B(k) +\ne0$, then $\reg_B(k) =\infty$, see \cite{CI:AP}. +\item[$\bullet$] +{\it Size\/}. +There are inequalities $\b^B_n(k)\ge\beta^n$ for all $n\ge0$ and for +some constant $\beta>1$, unless $B$ is a complete intersection, see +\cite{CI:res}. + \end{itemize} + +These obstructions vanish miraculously when $B$ is a graded complete +intersection: For each $M$ and all $n\gg0$ the number $\b_{n+1}(M)$ is +a linear combination with constant coefficients of $\b^B_{n-2c}(M), +\dots,\b^B_{n}(M)$. If $B$ is generated in degree one, then +$\reg_B(k)=0$ if and only if the ideal $J$ is generated by quadratic +forms. There are inequalities $\b^B_n(M)\le\beta(M)n^{c-1}$ for all +$n\ge1$ and for some constant $\beta(M)>0$. + +The algebra behind the miracle is a theorem of Gulliksen +\cite{CI:MR51:487}, who proves that $\Ext^\bu_B(M,N)$ is a finitely +generated bigraded module over a polynomial {\it ring of cohomology +operators\/} $S=A[X_1,\dots,X_c]$, where each variable $X_i$ has +cohomological degree $2$. As a consequence of this result, problems in +Homological Algebra can be answered in terms of Commutative Algebra. + +Gulliksen's definition of the operators $X_i$ as iterated connecting +homomorphisms is badly suited for use by a computer. Other definitions +have been given subsequently by several authors, see Remark +\ref{history}. We take the approach of Eisenbud \cite{CI:Ei}, who +derives the operators from a specific $B$-free resolution of $M$, +obtained by extending a construction of Shamash \cite{CI:Sh}. + +The resolution of Shamash and Eisenbud, and Gulliksen's Finiteness +Theorem, are presented with detailed proofs in Section \ref{Cohomology +operators}. They are obtained through a new construction---that of an +intermediate resolution of $M$ over the polynomial ring---that encodes +$C$ and all the null-homotopies of $C$ corresponding to multiplication +with elements of $J$; this material is contained in Section +\ref{Universal homotopies}. It needs standard multilinear algebra, +developed {\sl ad hoc\/} in Section \ref{Graded algebras}. Rules for +juggling several gradings are discussed in an Appendix. + +In Section \ref{Computation of Ext modules} we present and illustrate +the code for the routine {\tt Ext}, which runs remarkably close to the +proofs in Sections \ref{Universal homotopies} and \ref{Cohomology +operators}. Section \ref{Invariants of modules} contains numerous +computations of popular numerical invariants of a graded module, like +its complexity, Poincar\'e series, and Bass series. They are extracted +from knowledge of the bigraded modules $\Ext^\bu_B(M,k)$ and +$\Ext^\bu_B(k,M)$, whose computation is also illustrated by examples, +and is further used to obtain explicit equations for the cohomology +variety $\var^*_B(M)$ defined in \cite{CI:MR90g:13027}. For most +invariants we include some short code that automates their +computation. In Section \ref{Invariants of pairs of modules} we +extend these procedures to invariants of pairs of modules. + +\section{Matrix Factorizations} +\label{Matrix factorizations} + +We start the discussion of homological algebra over a complete +intersection with a very special case, that can be packaged +attractively in matrix terms. + +Let $f$ be a non-zero-divisor in a commutative ring $A$. + +Following Eisenbud \cite[Sect.\ 5]{CI:Ei} we say that a pair $(U,V)$ of +matrices with entries in $A$, of sizes $k\times \ell$ and $\ell\times +k$, is a {\it\ie{matrix factorization}\/} of $-f$ if +\[ +U\cdot V= -f\cdot I_k \qquad\text{and}\qquad V\cdot U=-f\cdot I_\ell +\] +where $I_m$ denotes the $m\times m$ unit matrix. Localizing at $f$, one +sees that $-f^{-1}\cdot U$ and $V$ are inverse matrices over $A_f$; as a +consequence $\ell=k$, and each equality above implies the other, for +instance: +\[ +V\cdot U=\big(-f^{-1}\cdot U\big)^{-1}\cdot U= -f\cdot U^{-1}\cdot U= +-f\cdot I_k +\] +Here is a familiar example of matrix factorization, with $f=xy-wz$: +\[ +\begin{pmatrix} w & x \\ y & z \end{pmatrix}\cdot +\begin{pmatrix} z & -y \\ -x & w \end{pmatrix}= +-(xy-wz)\cdot +\begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}= +\begin{pmatrix} z & -y \\ -x & w \end{pmatrix}\cdot +\begin{pmatrix} w & x \\ y & z \end{pmatrix} +\] + +Let now $C_1$ and $C_0$ be free $A$-modules of rank $r$, and let +\[ +d_1\colon C_1\to C_0 \qquad\text{and}\qquad s_0\colon C_0\to C_1 +\] +be $A$-linear homomorphisms defined by the matrices $U$ and $V$, +respectively, after bases have been tacitly chosen. + +The second condition on the matrices $U$ and $V$ implies that $d_1$ is +injective, while the first condition on these matrices shows that +$fC_0$ is contained in $\Ima(d_1)$. Setting $L=\Coker(d_1)$, one sees +that the chosen matrix factorization defines a commutative diagram with +exact rows +\[ +\xymatrixrowsep{3pc} +\xymatrixcolsep{4pc} +\xymatrix{ +0 +\ar[r] +& C_1 +\ar[r]^-{d_1} +\ar[d]_{-f\cdot 1_{C_1}} +& C_0 +\ar[r] +\ar[d]^{-f\cdot 1_{C_0}} +\ar[dl]_-{s_0} +& L +\ar[r] +\ar[d]_{0_L=}^{-f\cdot1_L} +& 0 +\\ +0 +\ar[r] +& C_1 +\ar[r]^-{d_1} +& C_0 +\ar[r] +& L +\ar[r] +& 0 +} +\] +which expresses the following facts: $C=\ 0\to C_1\xrightarrow{d_1} +C_0\to 0$ is a free resolution of the $A$-module $L$, this module is +annihilated by $f$, and $s_0$ is a homotopy between the maps +$-f\cdot 1_C$ and $0_C$, both of which lift $-f\cdot 1_L$. + +Conversely, if an $A$-module $L$ annihilated by $f$ has a free +resolution $(C,d_1)$ of length $1$, then $\rank_AC_1=\rank_AC_0$, and +any choice of homotopy $s_0$ between $-f\cdot 1_C$ and $0_C$ provides a +matrix factorization of $-f$. + +When we already have an $A$-module $L$ with a presentation matrix $U$ +that defines an injective $A$-linear map, we can use \Mtwo to create a +matrix factorization $(U,V)$ of $-f$. + +\begin{Example} +\label{familiar} +We revisit the familiar example from a higher perspective. +\beginOutput +i1 : A = QQ[w,x,y,z]\\ +\emptyLine +o1 = A\\ +\emptyLine +o1 : PolynomialRing\\ +\endOutput +\beginOutput +i2 : U = matrix \{\{w,x\},\{y,z\}\}\\ +\emptyLine +o2 = | w x |\\ +\ | y z |\\ +\emptyLine +\ 2 2\\ +o2 : Matrix A <--- A\\ +\endOutput +\beginOutput +i3 : C = chainComplex U\\ +\emptyLine +\ 2 2\\ +o3 = A <-- A\\ +\ \\ +\ 0 1\\ +\emptyLine +o3 : ChainComplex\\ +\endOutput +\beginOutput +i4 : L = HH_0 C\\ +\emptyLine +o4 = cokernel | w x |\\ +\ | y z |\\ +\emptyLine +\ 2\\ +o4 : A-module, quotient of A\\ +\endOutput +\beginOutput +i5 : f = -det U\\ +\emptyLine +o5 = x*y - w*z\\ +\emptyLine +o5 : A\\ +\endOutput +Let's verify that $f$ annihilates $L$. +\beginOutput +i6 : f * L == 0\\ +\emptyLine +o6 = true\\ +\endOutput +We use the {\tt nullhomotopy} function.\indexcmd{nullhomotopy} +\beginOutput +i7 : s = nullhomotopy (-f * id_C)\\ +\emptyLine +\ 2 2\\ +o7 = 1 : A <----------------- A : 0\\ +\ \{1\} | z -x |\\ +\ \{1\} | -y w |\\ +\emptyLine +o7 : ChainComplexMap\\ +\endOutput +Let's verify that $s$ is a null-homotopy for $-f$, using {\tt +C.dd}\indexcmd{dd} to obtain the differential of the chain complex {\tt +C} as a map of graded modules. +\beginOutput +i8 : s * C.dd + C.dd * s == -f\\ +\emptyLine +o8 = true\\ +\endOutput +We extract the matrix $V$ from the null-homotopy to get our factorization. +\beginOutput +i9 : V = s_0\\ +\emptyLine +o9 = \{1\} | z -x |\\ +\ \{1\} | -y w |\\ +\emptyLine +\ 2 2\\ +o9 : Matrix A <--- A\\ +\endOutput +\end{Example} + +For every $f$ and every $r\ge1$ there exists a trivial matrix +factorization of $-f$, namely, $(f\cdot I_k, -I_k)$; it can be obtained +from the $A$-module $L=A^k/fA^k$. In general, it may not be clear how +to find an $A$-module $L$ with the properties necessary to obtain an +`interesting' matrix factorization of $-f$. + +However, in some cases the supply is plentiful. + +\begin{Remark} +\label{factorization} +Let $A$ be a graded polynomial ring in $e$ variables of positive degree +over a field $K$, let $f$ be a homogeneous polynomial in $A$, and set +$B=A/(f)$. Every $B$-module $M$ of infinite projective dimension +{\it\ie{generates}\/} a matrix factorization $(U,V)$ of $-f$, as follows. + +Let $(F,d_F)$ be a minimal graded free resolution of $M$ over $B$, and +set $L=\Coker\big(d_F\colon F_{e+1}\to F_e\big)$. Since $M$ has +infinite projective dimension, we have $L\ne0$. By the Depth Lemma, +$\depth_BL=\depth B$. On the other hand, $\depth_BL=\depth_AL$ and +$\depth B=\depth A-1$. By Hilbert's Syzygy Theorem, the minimal graded +free resolution $(C,d_C)$ of $L$ over $A$ is finite. By the +Auslander-Buchsbaum Equality, $C_n=0$ for $n>\depth A-\depth_AL=1$. + +The minimality of $F$ ensures that all nonzero entries of the +presentation matrix $U$ of $L$ are forms of positive degree. On +the other hand, by \cite[Sect.~0]{CI:Ei} the module $L$ has no direct +summand isomorphic to $B$: it follows that all nonzero entries of +the homotopy matrix $V$ are forms of positive degree (this is the +reason for choosing $L$ as above---stopping one step earlier in the +resolution $F$ could have produced a module $L$ with a non-zero free +direct summand). + \end{Remark} + +Our reader would have noticed that \Mtwo can read all the data and +perform all the operations needed to construct a module $L$ by the +procedure described in the preceding remark. Here is how it does it. + +\begin{Example} +\label{square} +We produce a matrix factorization of $-f$, where +\[ +f=x^3 + 3y^3 - 2yz^2 + 5z^3 \in\mathbb Q[x,y,z]=A +\] +generated by the module $M=B/{\mathfrak m}^2$, where $B=A/(f)$ and +${\mathfrak m}=(x,y,z)B$. +\beginOutput +i10 : A = QQ[x,y,z];\\ +\endOutput +\beginOutput +i11 : f = x^3 + 3*y^3 - 2*y*z^2 + 5*z^3;\\ +\endOutput +\beginOutput +i12 : B = A/f;\\ +\endOutput +\beginOutput +i13 : m = ideal(x,y,z)\\ +\emptyLine +o13 = ideal (x, y, z)\\ +\emptyLine +o13 : Ideal of B\\ +\endOutput +Let's take the $B$-module $M$ and compute its minimal $B$-free +resolution. +\beginOutput +i14 : M = B^1/m^2;\\ +\endOutput +\beginOutput +i15 : F = resolution(M, LengthLimit=>8)\\ +\emptyLine +\ 1 6 9 9 9 9 9 9 9\\ +o15 = B <-- B <-- B <-- B <-- B <-- B <-- B <-- B <-- B\\ +\ \\ +\ 0 1 2 3 4 5 6 7 8\\ +\emptyLine +o15 : ChainComplex\\ +\endOutput +We introduce a function {\tt restrict1 N} which accepts a $B$-module +$N$ and restricts scalars to produce an $A$-module. +\beginOutput +i16 : restrict1 = N -> coker(lift(presentation N,A) | f);\\ +\endOutput +Now make $L$ as described in Remark \ref{factorization} +\beginOutput +i17 : L = restrict1 cokernel F.dd_4;\\ +\endOutput +We proceed as in Example \ref{familiar} to get a matrix factorization. +\beginOutput +i18 : C = res L;\\ +\endOutput +\beginOutput +i19 : U = C.dd_1;\\ +\emptyLine +\ 9 9\\ +o19 : Matrix A <--- A\\ +\endOutput +\beginOutput +i20 : print U\\ +\{4\} | 0 xy x2 y2 0 0 0 yz-5/2z2 0 |\\ +\{4\} | 0 x2 -3y2 xy yz-5/2z2 0 yz-5/2z2 0 0 |\\ +\{4\} | x2 0 -2yz+5z2 0 y2-5/2yz yz-5/2z2 -5/2yz 0 0 |\\ +\{5\} | 0 0 0 1/3z 0 0 0 1/2y x |\\ +\{5\} | 0 0 -z 0 1/2y 0 1/2y -1/2x 0 |\\ +\{5\} | 0 -z 0 0 -1/2x 0 -1/2x 0 3y |\\ +\{5\} | 0 0 0 -1/3x 0 1/2y -1/3z 0 0 |\\ +\{5\} | -z y x 0 0 -1/2x 0 0 0 |\\ +\{5\} | y 0 0 0 0 0 1/3x 0 -2y+5z |\\ +\endOutput +\beginOutput +i21 : s = nullhomotopy (-f * id_C);\\ +\endOutput +\beginOutput +i22 : V = s_0;\\ +\emptyLine +\ 9 9\\ +o22 : Matrix A <--- A\\ +\endOutput +\beginOutput +i23 : print V\\ +\{6\} | 0 0 -x 0 0 -2y2+5yz 0 -2yz+5z2 -3y2 |\\ +\{6\} | 0 -x 0 0 0 -2yz+5z2 -3xy -3y2 -3yz |\\ +\{6\} | -x y 0 0 -2yz+5z2 0 0 0 0 |\\ +\{6\} | -3y 0 0 6yz-15z2 0 0 3x2 3xy 3xz |\\ +\{6\} | 0 2z -3y -15xz -15yz 2x2 6yz-15z2 0 3x2 |\\ +\{6\} | -2x 0 2z 0 -4yz+10z2 0 -6y2 2x2 0 |\\ +\{6\} | 0 0 3y -6xy+15xz -6y2+15yz 0 -6yz+15z2 0 -3x2 |\\ +\{6\} | 2z 0 0 -6y2 2x2 2xy 0 0 0 |\\ +\{6\} | 0 0 0 -x2 -xy -y2 -xz -yz -z2 |\\ +\endOutput +\beginOutput +i24 : U*V+f==0\\ +\emptyLine +o24 = true\\ +\endOutput +\beginOutput +i25 : V*U+f==0\\ +\emptyLine +o25 = true\\ +\endOutput +\end{Example} + +The procedure described above can be automated for more pleasant usage. + +\begin{code} +\label{factorization code} +The function {\tt matrixFactorization M} produces a matrix factorization +$(U,V)$ of $-f$ generated by a module $M$ over $B=A/(f)$. +\beginOutput +i26 : matrixFactorization = M -> (\\ +\ B := ring M;\\ +\ f := (ideal B)_0;\\ +\ e := numgens B;\\ +\ F := resolution(M, LengthLimit => e+1);\\ +\ L := restrict1 cokernel F.dd_(e+1);\\ +\ C := res L;\\ +\ U := C.dd_1;\\ +\ s := nullhomotopy (-f * id_C);\\ +\ V := s_0;\\ +\ assert( U*V + f == 0 );\\ +\ assert( V*U + f == 0 );\\ +\ return (U,V));\\ +\endOutput +We use the {\tt assert}\indexcmd{assert} command to signal an error in +case the matrices found don't satisfy our requirement for a matrix +factorization. + \end{code} + +Let's illustrate the new code with a slightly bigger module $M$ than +before. + +\begin{Example} +\label{cube} +With the same $A$, $f$, $B$, and $\mathfrak m$ as in Example +\ref{square}, we produce a matrix factorization generated by the +$B$-module $M=B/{\mathfrak m}^3$. +\beginOutput +i27 : time (U,V) = matrixFactorization(B^1/m^3);\\ +\ -- used 0.21 seconds\\ +\endOutput +The parallel assignment statement above provides both variables {\tt U} +and {\tt V} with matrix values. We examine their shapes without +viewing the matrices themselves by appending a semicolon to the +appropriate command. +\beginOutput +i28 : U;\\ +\emptyLine +\ 15 15\\ +o28 : Matrix A <--- A\\ +\endOutput +\beginOutput +i29 : V;\\ +\emptyLine +\ 15 15\\ +o29 : Matrix A <--- A\\ +\endOutput +\end{Example} + +Matrix factorizations were introduced to construct resolutions over the +the residue ring $B=A/(f)$, using the following observation. + +\begin{Remark} +\label{periodicity} +If $(U,V)$ is a factorization of $-f$ by $k\times k$ matrices and the +maps $d_1\colon C_1\to C_0$ and $s_0\colon C_0\to C_1$ are +homomorphisms of free $A$-modules defined by $U$ and $V$, respectively, +then the sequence +\[ +\cdots \to +C_1\otimes_AB \xrightarrow{d_1\o 1_B} +C_0\otimes_AB \xrightarrow{s_0\o 1_B} +C_1\otimes_AB \xrightarrow{d_1\o 1_B} +C_0\otimes_AB\to0 +\] +of $B$-linear maps is a free resolution of the $B$-module +$L=\Coker(d_1)$. + +Indeed, freeness is clear, and we have a complex because $d_1s_0= +-f\cdot 1_{C_0}$ and $s_0d_1=-f\cdot 1_{C_1}$. If $x\in C_1$ satisfies +$\big(d_1\o1_B\big)(x\o 1)=0$, then $d_1(x)=fy$ for some $y\in C_0$, +hence $d_1x=d_1s_0(y)$. As $d_1$ is injective, we get $x=s_0(y)$, so +$\Ker\big(d_1\o1_B\big)\subseteq \Ima\big(s_0\o1_B\big)$; the reverse +inclusion follows by symmetry. + \end{Remark} + +Pooling Remarks \ref{factorization} and \ref{periodicity} we recover +Eisenbud's result \cite[Sect.\ 6]{CI:Ei}. + +\begin{theorem} +Let $A$ be a graded polynomial ring in $e$ variables of positive degree +over a field $K$, and $f$ a homogeneous polynomial in $A$. The minimal +graded free resolution of every finitely generated graded module over +$B=A/(f)$ becomes periodic of period $2$ after at most $e$ steps. The +periodic part of the resolution is given by a matrix factorization of +$-f$ generated by $M$. + \end{theorem} + +We illustrate the theorem on an already computed example. + +\begin{Example} +Let $A$, $f$, $B$, $M$, and $F$ be as in Example \ref{square}. + +To verify the periodicity of $F$ we subtract pairs of differentials and +compare the result with $0$: direct comparison of the differentials +would not work, because the free modules involved have different degrees. +\beginOutput +i30 : F.dd_3 - F.dd_5 == 0\\ +\emptyLine +o30 = false\\ +\endOutput +\beginOutput +i31 : F.dd_4 - F.dd_6 == 0\\ +\emptyLine +o31 = false\\ +\endOutput +\beginOutput +i32 : F.dd_5 - F.dd_7 == 0\\ +\emptyLine +o32 = true\\ +\endOutput +The first two answers above come as a surprise---and suggest a property +of $F$ that is weaker than the one we already know to be true! + +There is an easy explanation: we checked the syzygy modules for {\it +equality\/}, rather than for {\it isomorphism\/}. We do not know why +\Mtwo didn't produce an equality at the earliest possible stage, nor why it +eventually produced one. The program has other strategies for computing +resolutions, so let's try one. +\beginOutput +i33 : M = B^1/m^2;\\ +\endOutput +\beginOutput +i34 : G = resolution(M, LengthLimit => 8, Strategy => 0)\\ +\emptyLine +\ 1 6 9 9 9 9 9 9 9\\ +o34 = B <-- B <-- B <-- B <-- B <-- B <-- B <-- B <-- B\\ +\ \\ +\ 0 1 2 3 4 5 6 7 8\\ +\emptyLine +o34 : ChainComplex\\ +\endOutput +\beginOutput +i35 : G.dd_3 - G.dd_5 == 0\\ +\emptyLine +o35 = true\\ +\endOutput +\beginOutput +i36 : G.dd_4 - G.dd_6 == 0\\ +\emptyLine +o36 = true\\ +\endOutput +\beginOutput +i37 : G.dd_5 - G.dd_7 == 0\\ +\emptyLine +o37 = true\\ +\endOutput +The strategy paid off, revealing periodicity at the earliest possible +stage. However, the algorithm used may be a lot slower that the +default algorithm. + \end{Example} + +\section{Graded Algebras} +\label{Graded algebras} + +We describe some standard universal algebras over a commutative ring $A$. + +Let $Q$ denote a free $A$-module of rank $c$, and set $Q^*=\Hom_A(Q,A)$. +We assign degree $2$ to the elements of $Q$, and degree $-2$ to those +of $Q^*$. We let $Q^\wedge$ denote a copy of $Q$ whose elements are +assigned degree $1$; if $x$ is an element of $Q$, then $x^\wedge$ +denotes the corresponding element of $Q^\wedge$. + +We use $\a = (\a_1 , \dots , \a_c ) \in \Z^c$ as a multi-index, set +$|\a| = \sum_i \a_i$, and order $\Z^c$ by the rule: $\a \ge \b$ means +$\a_i \ge \b_i$ for each $i$. We let $o$ denote the trivial element +of $\Z^c$, and $\e_i$ the $i$'th element of its standard basis. + +\begin{construction} +\label{algebras} +For each integer ${m}\ge0$ we form free $A$-modules +\begin{gather*} +\SS^{m}(Q^*) \quad\text{with basis}\quad \big\{X^{\a} : |\a|={m}\big\}\\ +\DD^{m}(Q) \quad\text{with basis}\quad \big\{Y^{(\a)} : |\a|={m}\big\}\\ +\Wedge^{m}(Q^\wedge) \quad\text{with basis}\quad +\big\{Y^{\wedge\a} : |\a|={m} \quad\text{and}\quad\a\le(\e_1+\cdots+\e_c)\big\} +\end{gather*} +For $m<0$ we declare the modules $\SS^{m}(Q^*)$, $\DD^{m}(Q)$, +and $\Wedge^{m}(Q^\wedge)$ to be equal to $0$, and define the symbols +$X^{\a}$, $Y^{(\a)}$, and $Y^{\wedge\a}$ accordingly; in addition, +we set $\Wedge^{m}(Q^\wedge)=0$ and $Y^{\wedge\a}=0$ if $|\a|\not\le +(\e_1+\cdots+\e_c)$, and we set +\begin{gather*} +X_i=X^{\e_i}\qquad Y_i=Y^{(\e_i)}\qquad Y_i^\wedge=Y^{\wedge\e_i} +\qquad\text{for}\qquad i=1,\dots,c +\end{gather*} +Taking $\SS^{m}(Q^*)$, $\DD^{m}(Q)$, and $\Wedge{}^{m}(Q^\wedge)$ as +homogeneous components of degree $-2m$, $2m$, and $m$, respectively, +we introduce graded algebras +\[ +S = \SS(Q^*)\qquad +D = \DD(Q)\qquad +E = \Wedge(Q^\wedge) +\] +by defining products of basis elements by the formulas +\begin{gather*} +X^{\a}\cdot X^{\b}=X^{\a+\b}\\ +Y^{(\a)}\cdot Y^{(\b)}= +\prod_{i=1}^c\frac{(\a_i+\b_i)!}{\a_i!\b_i!}Y^{(\a+\b)}\\ +Y^{\wedge\a}\cdot Y^{\wedge\b}=\inv(\a,\b)Y^{\wedge\,\a+\b} +\end{gather*} +where $\inv(\a,\b)$ denotes the number of pairs $(i,j)$ with +$\a_i=\b_j=1$ and $i>j$. Thus, $S$ is the {\it\ie{symmetric +algebra}\/} of $Q^*$, with $X^{o}=1$, while $D$ is the {\it\ie{divided +powers algebra}\/} of $Q$, with $Y^{(o)}=1$, and $E$ is the +{\it\ie{exterior algebra}\/} of $Q^\wedge$, with $Y^{\wedge\,o}=1$. We +identify $S$ and the polynomial ring $A[X_1,\dots,X_c]$. + \end{construction} + +A {\it\ie{homogeneous derivation}\/} of a graded $A$-algebra $W$ is a +homogeneous $A$-linear map $d\colon W\to W$ such that the +{\it\ie{Leibniz rule}\/} +\[ +d(x y) = d(x) y + (-1)^{\deg x\cdot\deg d} x d(y) +\] +holds for all homogeneous elements $x,y\in W$. + +\begin{construction} +\label{koszul} +Each sequence $f_1,\dots,f_c\in A$ yields a {\it\ie{Koszul map}\/} +\[ +\begin{gathered} +d_E \colon E \to E +\qquad\text{defined by the formula}\\ +d_E(Y^{\wedge\b}) = +\sum_{i=1}^c (-1)^{\b_1+\cdots+\b_{i-1}}f_iY^{\wedge\, \b-\e_i} +\end{gathered} +\] +It is a derivation of degree $-1$ and satisfies $d_E^2 = 0$. + \end{construction} + +\begin{construction} +\label{actions} +For every $X_i\in\SS^1(Q^*)$ and each $Y^{(\b)} \in \DD^{m}(Q)$ we set +\[ +X_i \lcontract Y^{(\b)} = Y^{(\b-\e_i)} \in \DD^{{m}-1}(Q) +\] +Extending this formula by $A$-bilinearity, we define $g\lcontract y$ for +all $g\in\SS^1(Q^*)$ and all $y\in D$. It is well known, and easily +verified, that the map $g\lcontract\colon y\mapsto g\lcontract y$ is a +graded derivation $D\to D$ of degree $-2$, and that the derivations +associated with arbitrary $g$ and $g'$ commute. As a consequence, the +formula +\[ +X^\a\lcontract Y^{(\b)} = +(X_1\lcontract)^{\a_1}\cdots(X_c\lcontract)^{\a_c}\big(Y^{(\b)}\big) +\in\DD^{|\b-\a|}(Q) +\] +extended $A$-linearly to all $u\in S$, defines on $D$ a structure of +graded $S$-module. + +The usual products on $S\otimes_AE$ and $D\otimes_A E$ and the induced +gradings +\begin{gather*} +(S\otimes_AE)_n= +\bigoplus_{\ell-2k=n}\SS^{k}(Q^*)\otimes_A \Wedge{}^{\ell}(Q^\wedge)\\ +(D\otimes_AE)_n= +\bigoplus_{\ell+2k=n}\DD^{(k)}(Q)\otimes_A \Wedge{}^{\ell}(Q^\wedge) +\end{gather*} +turn $S\otimes_AE$ and $D\otimes_A E$ into graded algebras. The +second one is a graded module over the first, for the action +$(u\o z)\cdot(y\o z')=(u\lcontract v)\o(z\cdot z')$. + \end{construction} + +\begin{construction} +\label{cartan} +The element $w=\sum_{i=1}^c X_i\o Y_i^\wedge$ yields a {\it\ie{Cartan +map}\/} +\[ +\begin{gathered} +d_{DE} \colon D \otimes_A E \to D \otimes_A E +\qquad\text{defined by the formula}\\ +d_{DE}( y \o z ) = w\cdot(y \o z) += \sum_{i=1}^c (X_i \lcontract y) \o (Y_i^\wedge\cdot z) +\end{gathered} +\] +It is an $E$-linear derivation of degree $-1$, and $d_{DE}^2 = 0$ +because $w^2=0$. + \end{construction} + +\begin{lemma} +\label{split} +For each integer $s$ define a complex $G^s$ as follows: +\[ +\cdots\to \DD^{k}(Q)\otimes_A \Wedge^{s-k}(Q^\wedge)\xrightarrow{w} +\DD^{k-1}(Q)\otimes_A \Wedge^{s-k+1}(Q^\wedge) \to \cdots +\] +with $\DD^{0}(Q)\otimes_A \Wedge^{s}(Q^\wedge)$ in degree $s$. If +$s>0$, then $G^s$ is split exact. +\end{lemma} + +\begin{proof} +Note that for each $s\in\Z$ there exist isomorphisms of complexes +$\bigoplus_{s=1}^\infty G^s\cong (D \otimes_A E)_{\ge1} \cong +\big(\bigotimes_{i=1}^c G(i)\big)_{\ge1}$, where $G(i)$ is the complex +\[ +\cdots\to +AY^{(k+1)}_i\otimes_A A +\xrightarrow{w_i}(AY^{(k)}_i)\otimes(AY^\wedge_i) +\xrightarrow{0}(AY^{(k)}_i)\otimes_A A +\to\cdots +\] +and $w_i$ is left multiplication with $X_i\o Y_i^\wedge$. This map +bijective, so each complex $G(i)_{\ge1}$ is split exact. The assertion +follows. \qed + \end{proof} + +\section{Universal Homotopies} +\label{Universal homotopies} + +This section contains the main new mathematical result of the paper. + +We introduce a universal construction, that takes as input a projective +resolution $C$ of an $A$-module $M$ and a finite set $\boldsymbol f$ of +elements annihilating $M$; the output is a new projective resolution of +$M$ over $A$. If $\boldsymbol f\ne\varnothing$, then the new +resolution is infinite---even when $C$ is finite---because it encodes +additional data: the null-homotopies for $f\cdot1_C$ for all +$f\in\boldsymbol f$, all compositions of such homotopies, and all +relations between those compositions. This higher-order information +tracks the transformation of the homological properties of $M$ when its +ring of operators is changed from $A$ to $A/({\boldsymbol f})$. + +Our construction is motivated by, and is similar to, one due to Shamash +\cite{CI:Sh} and Eisenbud \cite{CI:Ei}: assuming that the elements of +$\boldsymbol f$ form an $A$-regular sequence, they produce a projective +resolution of $M$ over $A/({\boldsymbol f})$. By contrast, we make no +assumption whatsoever on $\boldsymbol f$. With the additional +hypothesis, in the next section we quickly recover the original result +from the one below. As an added benefit, we eliminate the use of +spectral sequences from the proof. + +\begin{theorem} +\label{main} +Let $A$ be a commutative ring, let $f_1 , \dots, f_c$ be a sequence of +elements of $A$, let $M$ be an $A$-module annihilated by $f_i$ for +$i=1,\dots,c$, and let $r \colon C \to M$ be a resolution of $M$ by +projective (respectively, free) $A$-modules. + +There exists a family of homogeneous $A$-linear maps +\[ +\{d_\g \colon C \to C\mid \deg(d_\g)=2|\g| - 1\}_{\g \in \N^c} +\] +satisfying the following conditions +\begin{equation} +\label{family} +\begin{aligned} +d_o &= d_C +\quad\text{is the differential of}\quad C\\ +[d_o,d_\g] &= +\begin{cases} +-f_i\cdot 1_C &\text{if\quad} \g=\e_i \text{ for } i=1,\dots,c\\ +-\ssum{\a+\b=\g}d_\a d_\b &\text{if\quad} |\g|\ge2 +\end{cases} +\end{aligned} +\end{equation} +where $\sum^{\scriptscriptstyle +}$ denotes a summation restricted to +indices in $\N^c\smallsetminus\{o\}$. + +Any family $\{d_\g\}_{\g\in\N^c}$ as above defines an $A$-linear map +of degree $-1$, +\begin{equation} +\begin{gathered} +\label{dCD} +d_{CD} \colon C\otimes_AD \to C\otimes_AD +\qquad\text{given by}\\ +d_{CD}(x\o y) = \sum_{\g \in\N^c} d_\g(x) \o (X^{\g} \lcontract y) +\end{gathered} +\end{equation} +where $D$ is the divided powers algebra defined in Construction +\ref{algebras}, and the action of $X^{\g}$ on $D$ is defined in +Construction \ref{actions}. + +With $d_{E}$ and $d_{DE}$ defined in Constructions \ref{koszul} and +\ref{cartan} and the tensor product of maps of graded modules defined +as in Remark \ref{graded-map-tensor}, +the map +\begin{equation} +\begin{gathered} +\label{diff} +d\colon C \otimes_A D \otimes_A E \to C \otimes_A D \otimes_A E +\qquad\text{given by}\\ +d = d_{CD}\o 1_E + 1_C\o d_{DE} + 1_C\o 1_D\o d_E +\end{gathered} +\end{equation} +is an $A$-linear differential of degree $-1$, and the map +\begin{gather*} +q\colon C \otimes_A D \otimes_A E \to M +\qquad\text{given by}\\ +q(x\o y\o z)= +\begin{cases} +yz\cdot r(x) &\quad\text{if } \deg(y)=\deg(z)=0\\ +0 &\quad\text{otherwise} +\end{cases} +\end{gather*} +is a resolution of $M$ by projective (respectively, free) $A$-modules. + \end{theorem} + +For use in the proof, we bring up a few general homological points. + +A {\it\ie{bounded filtration}\/} of a chain complex $F$ is a sequence +\[ +0=F^0\subseteq F^1\subseteq\cdots\subseteq F^{s-1}\subseteq +F^s\subseteq\cdots +\] +of subcomplexes such that for each $n$ there exists an $s$ with +$F^s_n=F_n$. As usual, we let $\gr^s(F)$ denote the complex of +$A$-modules $F^s/F^{s-1}$. + +\begin{lemma} +\label{filtration} +Let $q\colon F \to F'$ be a morphism of complexes with bounded +filtrations, such that $q(F^s)\subseteq F'{}^s$ for all $s \in \Z$. If +for each $s$ the induced map $\gr^s(q)\colon\gr^s(F)\to\gr^s(F')$ is a +quasi-isomorphism, then so is $q$. + \end{lemma} + +\begin{proof} +Denoting $q^s$ the restriction of $q$ to $F^s$, we first show by +induction on $s$ that $\HH_n(q^s)$ is bijective for all $n$. The +assertion is clear for $s=0$, since $F^0=0$ and $F^{\prime\,0} = 0$. +For the inductive step, we assume that $q^{s-1}$ is a quasi-isomorphism +for some $s\ge1$. We have a commutative diagram of complexes +\[ + \xymatrix{ + 0 \ar[r] & F^{s-1} \ar[d]_{q^{s-1}} \ar[r] & F^s \ar[d]_{q^{s}}\ar[r] + & \gr^s(F) \ar[d]_{\gr^s(q)}\ar[r] & 0 \\ + 0 \ar[r] & F^{\prime\,s-1} \ar[r] & F^{\prime\, s} \ar[r] + & \gr^s(F') \ar[r] & 0 + } +\] +By hypothesis and inductive assumption, in the induced diagram +\[ +\xymatrixcolsep{0.65pc} + \xymatrix{ + \HH_{n+1}(\gr^s(F)) \ar[d]_{\HH_{n+1}(\gr^s(q))}^\cong \ar[r] & + \HH_n (F^{s-1}) \ar[d]_{\HH_n(q^{s-1})}^\cong \ar[r] & + \HH_n (F^s) \ar[d]_{\HH_n(q^s)} \ar[r] & + \HH_n (\gr^s(F)) \ar[d]_{\HH_n(\gr^s(q))}^\cong \ar[r] & + \HH_{n-1}(F^{s-1}) \ar[d]_{\HH_{n-1}(q^{s-1})}^\cong + \\ + \HH_{n+1}(\gr^s(F')) \ar[r] & + \HH_n (F^{\prime\,s-1}) \ar[r] & + \HH_n (F^{\prime\,s}) \ar[r] & + \HH_n (\gr^s{F'}) \ar[r] & + \HH_{n-1}(F^{\prime\,s-1}) + } +\] +the four outer vertical maps are bijective. By the Five-Lemma, so is +$\HH_n(q^s)$. + +Now we fix an integer $n \in \Z$, and pick $s$ so large that +\[ +F^s_{k}=F_{k} \qquad\text{and}\qquad +F^{\prime\, s}_{k}=F'_{k}\qquad\text{hold for}\qquad +k=n-1,n,n+1\,. +\] +The choice of $s$ implies that $\HH_n(F^{s}) = \HH_n(F)$, +$\HH_n(F^{\prime\,s}) = \HH_n(F')$, and $\HH_n(q^s) = \HH_n(q)$. Since +we have already proved that $\HH_n(q^s)$ is an isomorphism, we conclude +that $\HH_n(q)\colon \HH_n(F)\to \HH_n(F')$ is an isomorphism. + \qed \end{proof} + +\begin{Remark} +\label{commutator} +If $(F,d_F)$ is a complex of $A$-modules, then $\Hom^{\gr}_A(F,F)$ +denotes the graded module whose $n$'th component consists of the +$A$-linear maps $g\colon F\to F$ with $g(F_i)\subseteq F_{i+n}$ for all +$i\in\Z$. + +If $g,h$ are homogeneous +$A$-linear maps, then their composition $gh$ is homogeneous of degree +$\deg(g)+\deg(h)$, and so is their graded commutator +\[ +[g,h] = g h - (-1)^{\deg g\cdot \deg h} h g +\] +Commutation is a graded derivation: for each homogeneous map $h'$ one has +\[ +[g,hh']= [g,h]h'+(-1)^{\deg g\cdot \deg h}h[g,h'] +\] + +The map $h\mapsto [d_F,h]$ has square $0$, and transforms +$\Hom^{\gr}_A(F,F)$ into a complex of $A$-modules; by definition, its +cycles are the chain maps $F\to F$, and its boundaries are the +null-homotopic maps. + \end{Remark} + +\begin{Remark}\label{graded-map-tensor} +If $p\colon F \to F'$ and $q\colon G \to G'$ are graded maps of graded +modules, we define the tensor product $p \otimes q\colon F \otimes F' +\to G \otimes G'$ by the formula $(p \otimes q)(f \otimes g)=(-1)^{\deg +q \cdot\deg f}( p(f) \otimes q(g) )$. With this convention, when $F=F'$ +and $G=G'$, the graded commutator $[1_F \otimes q,p \otimes 1_G]$ +vanishes. + \end{Remark} + +\begin{lemma} +\label{quism} +Let $M$ be an $A$-module and let $r\colon C\to M$ be a free resolution. +If $g\colon C\to C$ is an $A$-linear map with $\deg(g)>0$, and +$[d_C,g]=0$, then $g=[d_C,h]$ for some $A$-linear map $h\colon C\to C$ +with $\deg(h)=\deg(g)+1$. + \end{lemma} + +\begin{proof} +The augmentation $r\colon C \to M$ defines a chain map of degree zero +\[ +\Hom^\gr_A(C,r)\colon \Hom^\gr_A(C,C)\to\Hom^\gr_A(C,M) +\] +The map induced in homology is an isomorphism: to see this, apply the +`comparison theorem for projective resolutions'. Since $A$-linear maps +$C\to M$ of positive degree are trivial, the conclusion follows from +Remark \ref{commutator}. \qed + \end{proof} + +\begin{proof}[of Theorem \ref{main}] +Recall that $D$ is the divided powers algebra of a free $A$-module $Q$ +with basis $Y_1,\dots, Y_c$, that $X_1, \dots,X_c$ is the dual basis of +the free $A$-module $Q^*$, and $S$ for the symmetric algebra of $Q^*$, +see Construction \ref{algebras} for details. We set $f=\sum_{i=1}^c +f_iX_i \in\SS^{1}(Q^*)$. + +We first construct the maps $d_\g$ by induction on $|\g|$. + +If $|\g|=0$, then $\g=o$, so $d_o=d_C$ is predefined. If $|\g|=1$, +then $\g=\e_i$ for some $i$ with $1\le i\le c$. Since $f_i$ +annihilates the $B$-module $M$, the map $-f_i \cdot 1_C$ lifts the +zero map on $M$, hence is null-homotopic. For each $i$ we take +$d_{\e_i}$ to be a null-homotopy, that is, $[d_o,d_{\e_i}]=-f_i +\cdot 1_C$. With these choices, the desired formulas hold for all $\g$ +with $|\g|\le1$. + +Assume by induction that maps $d_\g$ satisfying the conclusion of the +lemma have been chosen for all $\g\in\N^c$ with $|\g|0$, hence $\HH_n(C\otimes_A +G^s)=0$ for all $n\in\Z$. As $G^0=A$ and $\gr^0(q)=r$, we are done. + \qed \end{proof} + +\section{Cohomology Operators} +\label{Cohomology operators} + +We present a new approach to the procedure of Shamash \cite{CI:Sh} and +Eisenbud \cite{CI:Ei} for building projective resolutions over a +complete intersection. We then use this resolution to prove a +fundamental result of Gulliksen \cite{CI:MR51:487} on the structure of +Ext modules over complete intersections. + +A set ${\boldsymbol f}=\{f_1 , \dots, f_c\}\subseteq A$ is +{\it\ie{Koszul-regular}\/} if the complex $(E,d_E)$ of Construction +\ref{koszul}, has $\HH_n(E)=0$ for $n>0$. A sufficient condition for +Koszul-regularity is that the elements of ${\boldsymbol f}$, in some +order, form a regular sequence. + +\begin{theorem} +\label{resolution} +Let $A$ be a commutative ring, ${\boldsymbol f}=\{f_1,\dots,f_c\} +\subseteq A$ a subset, $B=A/({\boldsymbol f})$ the residue ring, +$M$ a $B$-module, and $r \colon C \to M$ a resolution of +$M$ by projective (respectively, free) $A$-modules. + +Let $\{d_\g\colon C\to C\}_{\g\in\N^c}$ be a family of $A$-linear maps +provided by Theorem \ref{main}, set $D'=D\otimes_AB$, and $y'=y\o 1$ +for $y\in D$. The map +\begin{equation} +\begin{gathered} +\label{partial} +\partial \colon C\otimes_A D' \to C\otimes_A D' +\qquad\text{given by}\\ +\partial(x\o y') = \sum_{\g \in\N^c} d_\g(x) \o (X^{\g} \lcontract y)' +\end{gathered} +\end{equation} +is a $B$-linear differential of degree $-1$. If ${\boldsymbol f}$ is +Koszul-regular, then the map +\begin{gather*} + q'\colon C \otimes_A D' \to M \qquad \text{given by}\\ + q'(x\o y')= \begin{cases} + y \cdot r(x) &\quad\text{if $\deg(y')=0$}\\ + 0 &\quad\text{otherwise} + \end{cases} +\end{gather*} +is a resolution of $M$ by projective (respectively, free) $A$-modules. + \end{theorem} + +\begin{Remark} +\label{hypersurface} +Assume that in the theorem ${\boldsymbol f}=\{f_1\}$. The module +$D_\ell$ is then trivial if $\ell$ is odd, and is free with basis +consisting of a single element $Y_1^{(\ell/2)}$ if $\ell$ is even. +Thus, the resolution $C\otimes_AD'$ has the form +\[ +\cdots\xrightarrow{\partial_{2n+1}} +\bigoplus_{j=0}^\infty C_{2j}\otimes_A BY_1^{(n-j)} +\xrightarrow{\partial_{2n}} +\bigoplus_{j=1}^\infty C_{2j-1}\otimes_A BY_1^{(n-j)} +\xrightarrow{\partial_{2n-1}} +\cdots +\] + +The simplest situation occurs when, in addition, $C$ is a free +resolution with $C_n=0$ for $n\ge 2$. In this case the differential +$d_o$ has a single non-zero component, $d_1\colon C_1\to C_0$, the +homotopy $d_{\e_1}$ between $-f\cdot 1_C$ and $0_C$ has a single +non-zero component, $s_0\colon C_0\to C_1$, and all the maps $d_\g$ +with $\g\in\N^1\smallsetminus\{o,\e_1\}$ are trivial for degree +reasons. It is now easy to see that the complex above coincides with +the one constructed, {\sl ad hoc\/}, in Remark \ref{periodicity}. + \end{Remark} + +\begin{proof}[of the theorem] +In the notation of Theorem \ref{main}, we have equalities +\[ +C \otimes_A D'=(C\otimes_A D \otimes_A E)\otimes_E B +\qquad\text{and}\qquad +\partial= d\o 1_B +\] +It follows that $\partial^2=0$. For each $s\ge0$ consider the +subcomplexes +\begin{gather*} +F^s = \bigoplus_{k+\ell \le s} C_k \otimes_A D_\ell \otimes_A E +\qquad\text{of}\qquad F=C \otimes_A D \otimes_A E\\ +F^{\prime\,s} = \bigoplus_{k+\ell \le s} C_k \otimes_A D'_\ell +\qquad\text{of}\qquad F'=C \otimes_A D' +\end{gather*} +They provide bounded filtrations of the complexes $F$ and $F'$, +respectively, such that the map $p'=1_C\o 1_D\o p\colon F\to F'$ +satisfies $p'(F^s)\subseteq F^{\prime\,s}$ for all $s\ge0$. +Setting $G_s=\bigoplus_{k+\ell=s}(C_k \otimes_A D_\ell)$, we obtain +equalities $\gr^s(F)=(G_s\otimes_AE,1_{G_s}\o d_E)$ and $\gr^s(F')= +(G_s\otimes_AB,0)$ of complexes of $A$-modules. + +If $\boldsymbol f$ is Koszul regular, then $p\colon E\to B$ is a +quasi-isomorphism, hence so is $1_{G_s}\o p=\gr^s(p')$ for each +$s\ge0$. Lemma \ref{filtration} then shows that $p'$ is a +quasi-isomorphism. The quasi-isomorphism $q\colon F\to M$ of Theorem +\ref{main} factors as $q=q'(1_C\o 1_D\o p)$, so we see that $q'$ is +a quasi-isomorphism, as desired. + \qed\end{proof} + +Let $M$ and $N$ be $B$-modules, and let $\Ext^\bu_B(M,N)$ denote the +graded $B$-module having $\Ext^n_B(M,N)$ as component of degree $-n$. +To avoid negative numbers, it is customary to regrade $\Ext^\bu_B(M,N)$ +by {\it co\/}homological degree, under which the elements of +$\Ext^n_B(M,N)$ are assigned degree $n$; we do not do it here, in order +not to confuse \Mtwo. Of course, these modules can be computed from any +projective resolution of $M$ over $B$. + +The next couple of remarks collect a few innocuous observations. In +hindsight, they provide some of the basic tools for studying cohomology +of modules over complete intersections: see Remark \ref{history} for +some related material. + +\begin{Remark} +\label{action} +The resolution $(C\otimes_A D',\partial)$ provided by Theorem +\ref{resolution} is a graded module over the graded algebra $S$, with +action defined by the formula +\[ +u\cdot(x\o y')= x\o (u\lcontract y)' +\] +and this action commutes with the differential $\partial$. The induced +action provides a structure of graded $S$-module on the complex +$\Hom_B(C\otimes_A D',N)$. + +The action of $S$ commutes with the differential $\partial^*= +\Hom_B(\partial,N)$ of this complex, hence passes to its homology, +making it a graded a $S$-module. Thus, each element $u\in +S_{-2k}=\SS^k(Q)$ determines homomorphisms +\[ +\Ext^n_B(M,N)\xrightarrow{\ u\ }\Ext^{n+2k}_B(M,N) +\qquad\text{for all}\qquad n\in\Z +\] +For this reason, from now on we refer to the graded ring $S$ as the +{\it\ie{ring of cohomology operators}\/} determined by the +Koszul-regular set $\boldsymbol f$. + \end{Remark} + +\begin{Remark} +\label{canonical} +The canonical isomorphisms of complexes of $A$-modules +\begin{equation*} +\Hom_B(C \otimes_A D', N)=S \otimes_A \Hom_A(C, N)= +S \otimes_A \Hom_A(C, A) \otimes_A N +\end{equation*} +commute with the actions of $S$. + \end{Remark} + +The following fundamental result shows that in many important cases the +action of the cohomology operators is highly nontrivial. + +\begin{theorem} +\label{finiteness} +Let $A$ be a commutative ring, let ${\boldsymbol f}$ be a Koszul +regular subset of $A$, and let $S$ be the graded ring of cohomology +operators defined by $\boldsymbol f$. + +If $M$ and $N$ are finitely generated modules over $B=A/({\boldsymbol +f})$, and $M$ has finite projective dimension over $A$ (in particular, +if $A$ is regular), then the graded $S$-module $\Ext^\bu_B(M,N)$ is +finitely generated. + \end{theorem} + +\begin{proof} +Choose a resolution $r\colon C\to M$ with $C_n$ a finite projective +$A$-module for each $n$ and $C_n=0$ for all $n\gg0$. By Remark +\eqref{canonical}, the graded $S$-module $\Hom_B(C \otimes_A D',N)$ is +finitely generated. Since $S$ is noetherian, so is the submodule +$\Ker(\partial^*)$, and hence the homology module, $\Ext^\bu_B(M,N)$. + \qed + \end{proof} + +\begin{Remark} +\label{history} +The resolution of Remark \ref{hypersurface} was constructed by Shamash +\cite[Sect.\ 3]{CI:Sh}, that of Theorem \ref{resolution} by Eisenbud +\cite[Sect.\ 7]{CI:Ei}. The new aspect of our approach is indicated at +the beginning of Section \ref{Universal homotopies}. + +As introduced in Remark \ref{action}, the $S$-module structure on Ext +may appear {\sl ad hoc\/}. In fact, it is independent of all choices +of resolutions and maps, it can be computed from {\it any\/} projective +resolution of $M$ over $B$, it is natural in both module arguments +and---in an appropriate sense---in the ring argument, and it commutes +with Yoneda products from either side. These properties were proved by +Gulliksen \cite[Sect.~2]{CI:MR51:487}, Mehta \cite[Ch.~2]{CI:Me}, +Eisenbud \cite[Sect.\ 4]{CI:Ei}, and Avramov +\cite[Sect.\ 2]{CI:MR90g:13027}. However, each author used a different +construction of cohomology operators, and comparison of the +different approaches has turned to be an unexpectedly delicate +problem. It was finally resolved in \cite{CI:MR2000e:13021}, where +complete proofs of the main properties of the operators can be found. + +Gulliksen \cite[Sect.~3]{CI:MR51:487} established a stronger form of +Theorem \ref{finiteness}, without finiteness hypotheses on the ring +$A$: If the $A$-module $\Ext^\bu_A(M,N)$ is noetherian, then the +$S$-module $\Ext^\bu_B(M,N)$ is noetherian; this can be obtained from +the complexes of Remark \eqref{canonical} by means of a spectral +sequence, cf.\ \cite[Sect.~6]{CI:MR1774757}. The converse of +Gulliksen's theorem was proved in \cite[Sect.~4]{CI:MR99c:13033}. + \end{Remark} + +For the rest of the paper we place ourselves in a situation where \Mtwo +operates best---graded modules over positively graded rings. This +grading is inherited by the various Ext modules, and we keep careful +track of it. Our conventions and bookkeeping procedures are discussed +in detail in an Appendix, which the reader is invited to consult as +needed. + +For ease of reference, we collect some notation. + +\begin{notation} +\label{graded stuff} +The following is assumed for the rest of the paper. +\begin{itemize} +\item[$\bullet$] +$K$ is a field. +\item[$\bullet$] +$\{x_h\,\vert\,\deg'(x_h)>0\}_{h=1,\dots,e}$ is a set of +indeterminates over $K$. +\item[$\bullet$] +$A=K[x_1,\dots,x_e]$, graded by $\deg'(a)=0$ for $a\in K$. +\item[$\bullet$] +$f_1,\dots,f_c$ is a homogeneous $A$-regular sequence +in $(x_1,\dots,x_e)^2$. +%% +%% Lucho, why do we want the f's to be of degree at least 2? +%% +\item[$\bullet$] +$r_i=\deg'(f_i)$ for $i=1,\dots,c$. +\item[$\bullet$] +$\{X_i\,\vert\,\Deg X_i=(-2,-r_i)\}_{i=1,\dots,c}$ is a set +of indeterminates over $A$. +\item[$\bullet$] +$S=A[X_1,\dots, X_c]$, bigraded by $\Deg(a)=(0,\deg'(a))$. +\item[$\bullet$] +$B=A/({\boldsymbol f})$, with degree induced by $\deg'$. +\item[$\bullet$] +$M$ and $N$ are finitely generated graded $B$-modules. +\item[$\bullet$] +$S$ acts as bigraded ring of cohomology operators on +$\Ext^\bu_B(M,N)$. +\item[$\bullet$] +$k=B/(x_1,\dots,x_e)B$, with degree induced by $\deg'$. +\item[$\bullet$] +$R=S\otimes_A k\cong K[X_1,\dots,X_c]$, with bidegree induced by +$\Deg$. +\end{itemize} + \end{notation} + +\begin{Remark} +Under the conditions above, it is reasonable to ask when the $B$-free +resolution $G$ of Theorem \ref{resolution}, obtained from a {\it +minimal\/} $A$-free resolution $C$ of $M$, will itself be minimal. +Shamash \cite[Sect.~3]{CI:Sh} proves that $G$ is minimal if +$f_i\in(x_1,\dots,x_e)\ann_A(M)$ for $i=1,\dots,c$. An obvious example +with non-minimal $G$ occurs when $M$ has finite projective dimension +over $B$: if $c>0$ then $G$ is infinite. A more interesting failure of +minimality follows. + \end{Remark} + +\begin{Example} +Let $A$, $f$, $B$, and $M$ be as in Example \ref{cube}. +\beginOutput +i38 : M = B^1/m^3;\\ +\endOutput +\beginOutput +i39 : F = resolution(M, LengthLimit=>8)\\ +\emptyLine +\ 1 10 16 15 15 15 15 15 15\\ +o39 = B <-- B <-- B <-- B <-- B <-- B <-- B <-- B <-- B\\ +\ \\ +\ 0 1 2 3 4 5 6 7 8\\ +\emptyLine +o39 : ChainComplex\\ +\endOutput +Thus, the sequence of Betti numbers $\b^B_n(M)$ is +$(1,10,16,15,15,15,\dots)$. +\beginOutput +i40 : M' = restrict1 M;\\ +\endOutput +\beginOutput +i41 : C = res M'\\ +\emptyLine +\ 1 10 15 6\\ +o41 = A <-- A <-- A <-- A <-- 0\\ +\ \\ +\ 0 1 2 3 4\\ +\emptyLine +o41 : ChainComplex\\ +\endOutput +By Remark \ref{hypersurface}, the sequence $\rank_B F_n$ is +$(1,10,16,16,16,16,\dots)$. + \end{Example} + +In a graded context, all cohomological entities discussed so far in the +text acquire an extra grading, discussed in detail in the Appendix. +The notions below are used, but not named, in \cite{CI:AB2} in a local +situation. + +\begin{Remark} +\label{reduced ext} +We define the {\it\ie{reduced Ext module}\/} for $M$ and $N$ over $B$ +by +\[ +\rExt^\bu_B(M,N)=\Ext^\bu_B(M,N)\otimes_Ak +\] +With the induced bigrading and action, it is a bigraded module over the +bigraded ring $R$, that we call the {\it\ie{reduced ring of cohomology +operators}\/}. + +The dimension of the $K$-vector space $\rExt^n_B(M,N)_{s}$ is equal to +the number of generators of bidegree $(-n,s)$ in any minimal set of +generators of the graded $B$-module $\Ext^n_B(M,N)$. We define the +graded (respectively, ungraded) {\it\ie{Ext-generator series}\/} of $M$ +and $N$ to be the formal power series +\begin{gather*} +\gen_B^{M,N}(t,u)= +\sum_{n\in\N\,,\,s\in\Z}\dim_K \rExt^n_B(M,N)_{s}\, t^n u^{-s} +\in\Z[u,u^{-1}][[t]]\\ +\gen_B^{M,N}(t)= +\sum_{n=0}^\infty\dim_K \rExt^n_B(M,N)\, t^n +\in\Z[[t]] +\end{gather*} +There is a simple relation between these series: $\gen_B^{M,N}(t)= +\gen_B^{M,N}(t,1)$. + \end{Remark} + +\begin{corollary} +\label{series} +In the notation above, $\rExt^\bu_B(M,N)$ is a finitely generated +bigraded $R$-module, and $\gen_B^{M,N}(t,u)$ represents a rational +function of the form +\begin{equation*} +\frac{g_B^{M,N}(t,u)}{(1-t^2u^{r_1})\cdots(1-t^2u^{r_c})} +\qquad\text{with}\qquad g_B^{M,N}(t,u)\in\Z[t,u,u^{-1}] +\end{equation*} +\end{corollary} + +\begin{proof} +The assertion on finite generation results from Theorem +\ref{finiteness} and the one on bigradings from Remark \ref{graded +action}. The form of the power series is then given by the +Hilbert-Serre Theorem. \qed + \end{proof} + +\section{Computation of Ext Modules} +\label{Computation of Ext modules} + +This section contains the main new computational result of the paper. + +We discuss, apply, and present an algorithm that computes, for graded +modules $M$ and $N$ over a graded complete intersection ring $B$, the +graded $B$-modules $\Ext^n_B(M,N)$ simultaneously in all degrees $n$, +along with all the cohomology operators defined in Remark +\ref{action}. + +More precisely, the input consists of a field $K$, a polynomial ring +$A=K[x_1,\dots,x_e]$ with $\deg'(x_h)>0$, a sequence $f_1,\dots,f_c$ of +elements of $A$, and finitely generated modules $M$, $N$ over +$B=A/(f_1,\dots,f_c)$. The program checks whether the sequence +consists of homogeneous elements, whether it is regular, and whether +the modules $M$, $N$ are graded, sending the appropriate error message +if any one of these conditions is violated. If the input data pass +those tests, then the program produces a presentation of the bigraded +module $H=\Ext^\bu_B(M,N)$, where the elements of $\Ext^n_B(M,N)$ have +homological degree $-n$, over the polynomial ring $A[X_1,\dots,X_c]$, +bigraded by $\Deg(a)=(0,\deg'(a))$ and $\Deg(X_i)=(-2,-\deg'(f_i))$. + +The algorithm is based on the proofs of Theorems \ref{resolution} and +\ref{finiteness}, and is presented in Code \ref{master} below. We +start with an informal discussion. + +\begin{Remark} +\label{algorithm} +The routine {\tt resolution}\indexcmd{resolution} of \Mtwo finds the matrices $d_{o,n}\colon +C_n\to C_{n-1}$ of the differential $d_C$ of a minimal free resolution +$C$ of $M$ over $A$. Matrices $d_{\g,n}\colon C_n\to C_{n+2|\g|-1}$ +satisfying equation \eqref{family} for $\g\in\N^c$ with $|\g|>0$ are +computed using the routine {\tt nullhomotopy} of the \Mtwo language in +a loop that follows the first part of the proof of Theorem +\ref{resolution}. + +The transposed matrix $d^*_{\g,n}$ yields an endomorphism of the free +bigraded $A$-module $C^*=\bigoplus_{n=0}^e \Hom_A(C_n,A)$ of rank $m$, +where $m=\sum_{n=0}^e\rank_A C_n$. The $m\times m$ matrix ${\widetilde +d}^*_{\g,n}$ describing this endomorphism is formed using the routines +{\tt transpose} and {\tt sum}. The $m\times m$ matrix +\[ +\Delta = \sum_{n=0}^e(-1)^{n+2|\g|-1} +\sum_{\substack{\g\in\N^c\\ |\g|\le(e-n+1)/2}} +X^{\g}\cdot\widetilde d_{\g,n}^* +\] +with entries in $S=A[X_1,\dots,X_c]$ defines an endomorphism of the +free bigraded $S$-module $S\otimes_A C^*$. It induces an endomorphism +$\overline\Delta$ of the bigraded $S$-module $S\otimes_A C^*\otimes_A +N$. The bigraded $S$-module $H=\Ext^\bu_B(M,N)$ is computed as +$H=\Ker(\overline\Delta)/ \Ima(\overline\Delta)$ using the routine {\tt +homology}\indexcmd{homology}. + \end{Remark} + +In the computations we let $H$ denote the bigraded $S$-module +$\Ext^\bu_B(M,N)$. As the graded ring $S$ is zero in odd homological +degrees, there is a canonical direct sum decomposition $H = +H^{\text{even}} \oplus H^{\text{odd}}$ of bigraded $S$-modules, where +`even' or `odd' refers to the parity of the {\it first\/} degree in +each pair $\Deg(x)$. + +We begin with an example in codimension 1, where it is possible to +construct the infinite resolution and the action of $S$ on it by +hand. + +\begin{Example} +Consider the ring $A = K[x]$ where the variable $x$ is assigned degree +$5$, and set $B = A/(x^3)$. The bigraded ring of cohomology operators +then is $S=A[X,x]$, where $\Deg(X)=(-2,-15)$ and $\Deg x=(0,5)$. + +For the $B$-modules $M = B/(x^2)$ and $N = B/(x)$, the bigraded +$S$-module $H=\Ext^\bu_B(M,N)$ is described by the isomorphism +\[ + H\cong (S/(x))\oplus (S/(x))[1,10] +\] + +A minimal free resolution of $M$ over $B$ is displayed below. +\[ +F = \quad \dots \longrightarrow + B[-30] \xrightarrow{-x\,} B[-25] \xrightarrow{\ x^2\,} + B[-15] \xrightarrow{-x\,} B[-10] \xrightarrow{\ x^2\,} + B \longrightarrow 0 +\] +This resolution is actually isomorphic to the resolution $C\otimes_A +D'$ described in Remark \ref{hypersurface}, formed from the free +resolution +\[C += \quad 0 \longrightarrow A[-10] \xrightarrow{\ x^2\,} A +\longrightarrow 0 +\] +of $M$ over $A$ and the nullhomotopy $d_{\e_1}$ displayed in the diagram +\[ +\xymatrix{ +0 \ar[r] & A[-10] \ar[r]^-{x^2} \ar[d]_{-x^3} & A \ar[r] \ar[d]^{-x^3} + \ar[dl]_-{-x} & 0 \\ +0 \ar[r] & A[-10] \ar[r]^-{x^2} & A \ar[r] & 0 +} +\] +The isomorphism of $F$ with $C \otimes_A D'$ endows $F$ with a +structure of bigraded module over $S$, where the action of $X$ on +$F$ is the chain map $F \to F$ of homological degree $-2$ and internal +degree $-15$ that corresponds to the identity map of $B$ in each +component. + +The bigraded $S$-module $H=\Ext^\bu_B(M,N)$ is the homology of the +complex +\[ +\Hom_R(F,N) = \quad 0 \xrightarrow{\ \ } +N \xrightarrow{\ 0\ } N[10] \xrightarrow{\ 0\,} +N[15] \xrightarrow{\ 0\ } N[25] \xrightarrow{\ 0\,} +N[30] \longrightarrow\cdots +\] +where multiplication by $x\in S$ is the zero map, and for each $i\ge0$ +multiplication by $X\in S$ sends $N[15i]$ to $N[15i+15]$ +(respectively, $N[10i+10]$ to $N[10i+25]$) by the identity map. This +description provides the desired isomorphisms of bigraded $S$-modules. + +Here is how to compute $H$ with \Mtwo. + +Create the rings and modules. +\beginOutput +i42 : K = ZZ/103; \\ +\endOutput +\beginOutput +i43 : A = K[x,Degrees=>\{5\}];\\ +\endOutput +\beginOutput +i44 : B = A/(x^3);\\ +\endOutput +\beginOutput +i45 : M = B^1/(x^2);\\ +\endOutput +\beginOutput +i46 : N = B^1/(x);\\ +\endOutput +Use the function {\tt Ext} to compute $H = \Ext^\bu_B(M,N)$ (the +semicolon at the end of the line will suppress printing until we have +assigned the name {\tt S} to the ring of cohomology operators +constructed by \Mtwo.) +\beginOutput +i47 : H = Ext(M,N);\\ +\endOutput +We may look at the ring. +\beginOutput +i48 : ring H\\ +\emptyLine +o48 = K [\$X , x, Degrees => \{\{-2, -15\}, \{0, 5\}\}]\\ +\ 1\\ +\emptyLine +o48 : PolynomialRing\\ +\endOutput +\Mtwo has assigned the name {\tt \$X\char`\_1} to the variable $X$. +The dollar sign indicates an internal name that cannot be entered from +the keyboard: if necessary, obtain the variable by entering {\tt +S\char`\_0}; notice that indexing in \Mtwo starts with $0$ rather than $1$. +Notice also the appearance of braces rather than +parentheses in \Mtwo's notation for bidegrees. +\beginOutput +i49 : degree {\char`\\} gens ring H\\ +\emptyLine +o49 = \{\{-2, -15\}, \{0, 5\}\}\\ +\emptyLine +o49 : List\\ +\endOutput +Assign the ring a name. +\beginOutput +i50 : S = ring H;\\ +\endOutput +We can now look at the $S$-module $H$. +\beginOutput +i51 : H\\ +\emptyLine +o51 = cokernel \{0, 0\} | 0 x |\\ +\ \{-1, -10\} | x 0 |\\ +\emptyLine +\ 2\\ +o51 : S-module, quotient of S\\ +\endOutput +Each row in the display above is labeled with the bidegree of the +corresponding generator of $H$. This presentation gives the +isomorphisms of bigraded $S$-modules, already computed by hand +earlier. +\end{Example} + +Let's try an example with a complete intersection of codimension 2. It +is not so easy to do by hand, but can be checked using the theory in +\cite{CI:MR1774757}. + +\begin{Example} +Begin by constructing a polynomial ring $A=K[x,y]$. +\beginOutput +i52 : A = K[x,y];\\ +\endOutput +Now we produce a complete intersection quotient ring $B=A/(x^3,y^2)$. +\beginOutput +i53 : J = ideal(x^3,y^2);\\ +\emptyLine +o53 : Ideal of A\\ +\endOutput +\beginOutput +i54 : B = A/J;\\ +\endOutput +We take $N$ to be the $B$-module $B/(x^2,xy)$. +\beginOutput +i55 : N = cokernel matrix\{\{x^2,x*y\}\}\\ +\emptyLine +o55 = cokernel | x2 xy |\\ +\emptyLine +\ 1\\ +o55 : B-module, quotient of B\\ +\endOutput +Remark \ref{bigrading} shows that $H=\Ext^\bu_B(N,N)$ is a bigraded module +over the bigraded ring $S=A[X_1,X_2]=K[X_1,X_2,x,y]$ where +\begin{alignat*}{2} +\Deg(X_1)&=(-2,-3)\quad &\Deg(X_2)&=(-2,-2)\\ +\Deg(x)&=(0,1) &\Deg(y)&=(0,1) +\end{alignat*} +Using \Mtwo (below) we obtain an isomorphism of bigraded $S$-modules +\begin{gather*} +H^{\text{even}}\cong \frac{S}{(x^2,xy,y^2,xX_1,yX_1)} + \oplus \frac{S}{(x,y)}[2,2]\\ +H^{\text{odd}} \cong \left(\frac{S}{(x,y,X_1)} +\oplus \frac{S}{(x,y)}\right)^2[1,1] +\end{gather*} +These isomorphisms also yield expressions for the graded $B$-modules: +\begin{gather*} +\Ext_B^{2i}(N,N)\cong +N\cdot X_2^{i}\oplus +\bigoplus_{h=1}^{i} k\cdot X_1^{h}X_2^{i-h}\oplus +\bigoplus_{h=0}^{i-1}k[2]\cdot X_1^{h}X_2^{i-1-h}\\ +\Ext_B^{2i+1}(N,N)\cong +\bigg(k[1]\cdot X_2^{i}\oplus +\bigoplus_{h=0}^{i}k[1]\cdot X_1^{i-h}X_2^{h}\bigg)^2 +\end{gather*} + +Now we follow in detail the computation of the bigraded $S$-module $H$. +\beginOutput +i56 : time H = Ext(N,N);\\ +\ -- used 0.2 seconds\\ +\endOutput +\beginOutput +i57 : ring H\\ +\emptyLine +o57 = K [\$X , \$X , x, y, Degrees => \{\{-2, -2\}, \{-2, -3\}, \{0, 1\}, \{0, 1\}\}]\\ +\ 1 2\\ +\emptyLine +o57 : PolynomialRing\\ +\endOutput +\beginOutput +i58 : S = ring H;\\ +\endOutput +One might wish to have a better view of the bidegrees of the variables +of the ring $S$. An easy way to achieve this, with signs reversed, is +to display the transpose of the matrix of variables. +\beginOutput +i59 : transpose vars S\\ +\emptyLine +o59 = \{2, 2\} | \$X_1 |\\ +\ \{2, 3\} | \$X_2 |\\ +\ \{0, -1\} | x |\\ +\ \{0, -1\} | y |\\ +\emptyLine +\ 4 1\\ +o59 : Matrix S <--- S\\ +\endOutput +The internal degrees displayed for the cohomology operators may come +as a surprise. To understand what is going on, recall that these +degrees are determined by a choice of minimal generators for $J$. +At this point we do not know what is the sequence of generators that +\Mtwo used, so let's compute those generators the way the program did. +\beginOutput +i60 : trim J\\ +\emptyLine +\ 2 3\\ +o60 = ideal (y , x )\\ +\emptyLine +o60 : Ideal of A\\ +\endOutput +Notice that \Mtwo has reordered the original sequence of generators. +Now we see that our variable $X_1$, which corresponds to $x^3$, is +denoted {\tt X\char`\_2} by \Mtwo, and that $X_2$, which corresponds +to $y^2$ is denoted {\tt X\char`\_1}. This explains the bidegrees used +by the program. + +Display $H$. +\beginOutput +i61 : H\\ +\emptyLine +o61 = cokernel \{-2, -2\} | 0 0 0 0 0 0 0 0 0 0 0 y x 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | y 0 0 0 0 x 0 0 0 0 0 0 0 \$X_1 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | 0 0 0 y 0 0 0 x 0 0 0 0 0 0 \$X_1 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | 0 y 0 0 x 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | 0 0 y 0 0 0 x 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 0\} | 0 0 0 0 0 0 0 0 y2 xy x2 0 0 0 0 \$X_1y $\cdot\cdot\cdot$\\ +\emptyLine +\ 6\\ +o61 : S-module, quotient of S\\ +\endOutput +That's a bit large, so we want to look at the even and odd parts separately. + +We may compute the even and odd parts of $H$ as the span of the +generators of $H$ with the appropriate parity. Since the two desired +functions differ only in the predicate to be applied, we can generate +them both by writing a function that accepts the predicate as its +argument and returns a function. +\beginOutput +i62 : partSelector = predicate -> H -> (\\ +\ R := ring H;\\ +\ H' := prune image matrix \{\\ +\ select(\\ +\ apply(numgens H, i -> H_\{i\}),\\ +\ f -> predicate first first degrees source f\\ +\ )\\ +\ \};\\ +\ H');\\ +\endOutput +\beginOutput +i63 : evenPart = partSelector even; oddPart = partSelector odd;\\ +\endOutput +Now to obtain the even part, $H^{\text{even}}$, simply type +\beginOutput +i65 : evenPart H\\ +\emptyLine +o65 = cokernel \{-2, -2\} | 0 0 0 y x 0 0 |\\ +\ \{0, 0\} | y2 xy x2 0 0 \$X_1y \$X_1x |\\ +\emptyLine +\ 2\\ +o65 : S-module, quotient of S\\ +\endOutput +Do the same thing for the odd part, $H^{\text{odd}}$. +\beginOutput +i66 : oddPart H\\ +\emptyLine +o66 = cokernel \{-1, -1\} | 0 0 y 0 0 0 x 0 0 0 |\\ +\ \{-1, -1\} | 0 y 0 0 x 0 0 0 0 0 |\\ +\ \{-1, -1\} | 0 0 0 y 0 0 0 x 0 \$X_1 |\\ +\ \{-1, -1\} | y 0 0 0 0 x 0 0 \$X_1 0 |\\ +\emptyLine +\ 4\\ +o66 : S-module, quotient of S\\ +\endOutput +These presentations yield the desired isomorphism of bigraded $S$-modules. + \end{Example} + +Here is the source code which implements the routine {\tt Ext}. It is +incorporated into \Mtwo. + +\begin{code} +\label{master} +The function {\tt Ext(M,N)} computes $\Ext_B^\bu(M,N)$ for graded modules +$M$, $N$ over a graded complete intersection ring $B$. The function {\tt + code}\indexcmd{code} can be used to obtain a copy of the source code.\indexcmd{Ext} +\beginOutput +i67 : print code(Ext,Module,Module)\\ +-- ../../../m2/ext.m2:82-171\\ +Ext(Module,Module) := Module => (M,N) -> (\\ +\ cacheModule := youngest(M,N);\\ +\ cacheKey := (Ext,M,N);\\ +\ if cacheModule#?cacheKey then return cacheModule#cacheKey;\\ +\ B := ring M;\\ +\ if B =!= ring N\\ +\ then error "expected modules over the same ring";\\ +\ if not isCommutative B\\ +\ then error "'Ext' not implemented yet for noncommutative rings.";\\ +\ if not isHomogeneous B\\ +\ then error "'Ext' received modules over an inhomogeneous ring";\\ +\ if not isHomogeneous N or not isHomogeneous M\\ +\ then error "'Ext' received an inhomogeneous module";\\ +\ if N == 0 then B^0\\ +\ else if M == 0 then B^0\\ +\ else (\\ +\ p := presentation B;\\ +\ A := ring p;\\ +\ I := ideal mingens ideal p;\\ +\ n := numgens A;\\ +\ c := numgens I;\\ +\ if c =!= codim B \\ +\ then error "total Ext available only for complete intersections";\\ +\ f := apply(c, i -> I_i);\\ +\ pM := lift(presentation M,A);\\ +\ pN := lift(presentation N,A);\\ +\ M' := cokernel ( pM | p ** id_(target pM) );\\ +\ N' := cokernel ( pN | p ** id_(target pN) );\\ +\ C := complete resolution M';\\ +\ X := local X;\\ +\ K := coefficientRing A;\\ +\ -- compute the fudge factor for the adjustment of bidegrees\\ +\ fudge := if #f > 0 then 1 + max(first {\char`\\} degree {\char`\\} f) // 2 else 0;\\ +\ S := K(monoid [X_1 .. X_c, toSequence A.generatorSymbols,\\ +\ Degrees => \{\\ +\ apply(0 .. c-1, i -> \{-2, - first degree f_i\}),\\ +\ apply(0 .. n-1, j -> \{ 0, first degree A_j\})\\ +\ \},\\ +\ Adjust => v -> \{- fudge * v#0 + v#1, - v#0\},\\ +\ Repair => w -> \{- w#1, - fudge * w#1 + w#0\}\\ +\ ]);\\ +\ -- make a monoid whose monomials can be used as indices\\ +\ Rmon := monoid [X_1 .. X_c,Degrees=>\{c:\{2\}\}];\\ +\ -- make group ring, so 'basis' can enumerate the monomials\\ +\ R := K Rmon;\\ +\ -- make a hash table to store the blocks of the matrix\\ +\ blks := new MutableHashTable;\\ +\ blks#(exponents 1_Rmon) = C.dd;\\ +\ scan(0 .. c-1, i -> \\ +\ blks#(exponents Rmon_i) = nullhomotopy (- f_i*id_C));\\ +\ -- a helper function to list the factorizations of a monomial\\ +\ factorizations := (gamma) -> (\\ +\ -- Input: gamma is the list of exponents for a monomial\\ +\ -- Return a list of pairs of lists of exponents showing the\\ +\ -- possible factorizations of gamma.\\ +\ if gamma === \{\} then \{ (\{\}, \{\}) \}\\ +\ else (\\ +\ i := gamma#-1;\\ +\ splice apply(factorizations drop(gamma,-1), \\ +\ (alpha,beta) -> apply (0..i, \\ +\ j -> (append(alpha,j), append(beta,i-j))))));\\ +\ scan(4 .. length C + 1, \\ +\ d -> if even d then (\\ +\ scan( exponents {\char`\\} leadMonomial {\char`\\} first entries basis(d,R), \\ +\ gamma -> (\\ +\ s := - sum(factorizations gamma,\\ +\ (alpha,beta) -> (\\ +\ if blks#?alpha and blks#?beta\\ +\ then blks#alpha * blks#beta\\ +\ else 0));\\ +\ -- compute and save the nonzero nullhomotopies\\ +\ if s != 0 then blks#gamma = nullhomotopy s;\\ +\ ))));\\ +\ -- make a free module whose basis elements have the right degrees\\ +\ spots := C -> sort select(keys C, i -> class i === ZZ);\\ +\ Cstar := S^(apply(spots C,\\ +\ i -> toSequence apply(degrees C_i, d -> \{i,first d\})));\\ +\ -- assemble the matrix from its blocks.\\ +\ -- We omit the sign (-1)^(n+1) which would ordinarily be used,\\ +\ -- which does not affect the homology.\\ +\ toS := map(S,A,apply(toList(c .. c+n-1), i -> S_i),\\ +\ DegreeMap => prepend_0);\\ +\ Delta := map(Cstar, Cstar, \\ +\ transpose sum(keys blks, m -> S_m * toS sum blks#m),\\ +\ Degree => \{-1,0\});\\ +\ DeltaBar := Delta ** (toS ** N');\\ +\ assert isHomogeneous DeltaBar;\\ +\ assert(DeltaBar * DeltaBar == 0);\\ +\ -- now compute the total Ext as a single homology module\\ +\ cacheModule#cacheKey = prune homology(DeltaBar,DeltaBar)))\\ +\endOutput +\end{code} + +\begin{Remark} +The bigraded module $\Tor_\bu^B(M,N)$ is the homology of the complex +$(C \otimes_A D') \otimes_B N$, where $C\otimes_A D'$ is the complex +from Theorem \ref{resolution}. Observations parallel to Remarks +\ref{action} and \ref{bigrading} show that $\Tor_\bu^B(M,N)$ inherits +from $D'$ a structure of bigraded $S$-module. + +It would be desirable also to have algorithms to compute +$\Tor_\bu^B(M,N)$ in the spirit of the algorithm presented above for +$\Ext^\bu_B(M,N)$. If one of the modules has finite length, then +each $\Tor_n^B(M,N)$ is a $B$-module of finite length, and the +computation of $\Tor_\bu^B(M,N)$ can be reduced to a computation of +$\Ext$ by means of Matlis duality, which here can be realized as vector +space duality over the field $K$. However, in homology there is no +equivalent for the finiteness property described in Remark +\ref{canonical}; it is an {\bf open problem} to devise algorithms that +would compute $\Tor_\bu^B(M,N)$ in general. + \end{Remark} + +\section{Invariants of Modules} +\label{Invariants of modules} + +In this section we apply our techniques to develop effective methods +for computation (for graded modules over a graded complete +intersection) of invariants such as cohomology modules, Poincar\'e +series, Bass series, complexity, critical degree, and support +varieties. For each invariant we produce code that computes it, and +illustrate the action of the code on some explicit example. + +Whenever appropriate, we describe {\bf open problems} on which the +computational power of \Mtwo could be unleashed. + +Notation \ref{graded stuff} is used consistently throughout the section. + +\subsection{Cohomology Modules} +\label{Computation of cohomology} + +We call the bigraded $R$-module $P=\Ext^\bu_B(M,k)$ the +{\it\ie{contravariant cohomology module}\/} of $M$ over $B$, and the +bigraded $R$-module $I=\Ext^\bu_B(k,M)$ the {\it\ie{covariant +cohomology module}\/} of $M$. Codes that display presentations of the +cohomology modules are presented after a detailed discussion of an example. + +\begin{sExample} +\label{random} +Let us create the ring $B=K[x,y,z]/(x^3,y^4,z^5)$. +\beginOutput +i68 : A = K[x,y,z];\\ +\endOutput +\beginOutput +i69 : J = trim ideal(x^3,y^4,z^5)\\ +\emptyLine +\ 3 4 5\\ +o69 = ideal (x , y , z )\\ +\emptyLine +o69 : Ideal of A\\ +\endOutput +\beginOutput +i70 : B = A/J;\\ +\endOutput +We trimmed the ideal, so that we know the generators \Mtwo will use. + +This time we want a graded $B$-module $M$ about whose homology we know +nothing {\sl a priori\/}. One way to proceed is to create $M$ as the +cokernel of some random matrix of forms; let's try a 3 by 2 matrix of +quadratic forms. +\beginOutput +i71 : f = random (B^3, B^\{-2,-3\})\\ +\emptyLine +o71 = | 27x2+49xy-14y2-23xz-6yz-19z2 38x2y-34xy2+4y3+x2z+16xyz-y2z-5xz $\cdot\cdot\cdot$\\ +\ | -5x2+44xy+38y2+40xz+15yz+4z2 -37x2y+51xy2-36y3+26x2z-38xyz-17y $\cdot\cdot\cdot$\\ +\ | 21x2-30xy+32y2-47xz+7yz-50z2 -6x2y-14xy2-26y3-7x2z+41xyz+50y2z $\cdot\cdot\cdot$\\ +\emptyLine +\ 3 2\\ +o71 : Matrix B <--- B\\ +\endOutput +We can't read the second column of that matrix, so let's display it +separately. +\beginOutput +i72 : f_\{1\}\\ +\emptyLine +o72 = | 38x2y-34xy2+4y3+x2z+16xyz-y2z-5xz2-6yz2+47z3 |\\ +\ | -37x2y+51xy2-36y3+26x2z-38xyz-17y2z+17xz2-11yz2+8z3 |\\ +\ | -6x2y-14xy2-26y3-7x2z+41xyz+50y2z+26xz2+46yz2-44z3 |\\ +\emptyLine +\ 3 1\\ +o72 : Matrix B <--- B\\ +\endOutput +Now let's make the module $M$. +\beginOutput +i73 : M = cokernel f;\\ +\endOutput + +We are going to produce isomorphisms of bigraded modules +\begin{gather*} +P^{\text{even}} \cong R[4,10] \oplus (X_1,X_2)[2,7] + \oplus\left(\frac{R}{(X_1,X_2,X_3)}\right)^3\oplus R^4[2,7]\\ +P^{\text{odd}} \cong \frac{R}{(X_1,X_2,X_3)}[1,2] + \oplus\left(\frac{R}{(X_1)}\right)^3[3,9] + \oplus \frac{R}{(X_1,X_2)}[1,3] \oplus R^6[3,9] +\end{gather*} +over the polynomial ring $R=K[X_1,X_2,X_3]$ over $K$, bigraded by +\[ +\Deg(X_1)=(-2,-3)\qquad \Deg(X_2)=(-2,-4) \qquad \Deg(X_3)=(-2,-5) +\] + +Let's compute $\Ext^\bu_B(M,B/(x,y,z))$ by the routine from Section +\ref{Computation of Ext modules}. +\beginOutput +i74 : time P = Ext(M,B^1/(x,y,z));\\ +\ -- used 1.64 seconds\\ +\endOutput +\beginOutput +i75 : S = ring P;\\ +\endOutput +Examine the variables of $S$; due to transposing, their bidegrees +are displayed with the {\it opposite\/} signs. +\beginOutput +i76 : transpose vars S\\ +\emptyLine +o76 = \{2, 3\} | \$X_1 |\\ +\ \{2, 4\} | \$X_2 |\\ +\ \{2, 5\} | \$X_3 |\\ +\ \{0, -1\} | x |\\ +\ \{0, -1\} | y |\\ +\ \{0, -1\} | z |\\ +\emptyLine +\ 6 1\\ +o76 : Matrix S <--- S\\ +\endOutput +The variables $x$, $y$, and $z$ of $A$ annihilate $P$, and so appear in +many places in a presentation of $P$. To reduce the size of such a +presentation, we pass to a ring which eliminates those variables. +\beginOutput +i77 : R = K[X_1..X_3,Degrees => \{\{-2,-3\},\{-2,-4\},\{-2,-5\}\},\\ +\ Adjust => S.Adjust, Repair => S.Repair];\\ +\endOutput +\beginOutput +i78 : phi = map(R,S,\{X_1,X_2,X_3,0,0,0\})\\ +\emptyLine +o78 = map(R,S,\{X , X , X , 0, 0, 0\})\\ +\ 1 2 3\\ +\emptyLine +o78 : RingMap R <--- S\\ +\endOutput +\beginOutput +i79 : P = prune (phi ** P);\\ +\endOutput +\beginOutput +i80 : transpose vars ring P\\ +\emptyLine +o80 = \{2, 3\} | X_1 |\\ +\ \{2, 4\} | X_2 |\\ +\ \{2, 5\} | X_3 |\\ +\emptyLine +\ 3 1\\ +o80 : Matrix R <--- R\\ +\endOutput +As we planned, the original variables $x$, $y$, $z$, which act +trivially on the cohomology, are no longer present in the ring. +Next we compute presentations +\beginOutput +i81 : evenPart P\\ +\emptyLine +o81 = cokernel \{-4, -10\} | 0 0 0 0 0 0 0 0 0 0 |\\ +\ \{-4, -10\} | 0 0 0 0 0 0 0 0 0 -X_2 |\\ +\ \{-4, -11\} | 0 0 0 0 0 0 0 0 0 X_1 |\\ +\ \{0, 0\} | 0 0 X_3 0 0 X_2 0 X_1 0 0 |\\ +\ \{0, 0\} | 0 X_3 0 0 X_2 0 X_1 0 0 0 |\\ +\ \{0, 0\} | X_3 0 0 X_2 0 0 0 0 X_1 0 |\\ +\ \{-2, -7\} | 0 0 0 0 0 0 0 0 0 0 |\\ +\ \{-2, -7\} | 0 0 0 0 0 0 0 0 0 0 |\\ +\ \{-2, -7\} | 0 0 0 0 0 0 0 0 0 0 |\\ +\ \{-2, -7\} | 0 0 0 0 0 0 0 0 0 0 |\\ +\emptyLine +\ 10\\ +o81 : R-module, quotient of R\\ +\endOutput +\beginOutput +i82 : oddPart P\\ +\emptyLine +o82 = cokernel \{-1, -2\} | X_3 0 X_2 0 0 0 0 X_1 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 X_1 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 X_1 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 X_1 0 0 0 |\\ +\ \{-1, -3\} | 0 X_2 0 X_1 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\emptyLine +\ 11\\ +o82 : R-module, quotient of R\\ +\endOutput +These presentations yield the desired isomorphisms of bigraded +$R$-modules. + \end{sExample} + +The procedure above can be automated by installing a method that will +be run when {\tt Ext} is presented with a module $M$ and the residue +field $k$. It displays a presentation of $\Ext_B^\bu(M,k)$ as a bigraded +$R$-module. + +\begin{sCode} +\label{change} +The function {\tt changeRing H} takes an $S$-module $H$ and tensors it +with $R$. It does this by constructing $R$ and a ring homomorphism +\[ +\varphi\colon A[X_1,\dots,X_c] = S \to R = K[X_1,\dots,X_c] +\] +\beginOutput +i83 : changeRing = H -> (\\ +\ S := ring H;\\ +\ K := coefficientRing S;\\ +\ degs := select(degrees source vars S,\\ +\ d -> 0 != first d);\\ +\ R := K[X_1 .. X_#degs, Degrees => degs,\\ +\ Repair => S.Repair, Adjust => S.Adjust];\\ +\ phi := map(R,S,join(gens R,(numgens S - numgens R):0));\\ +\ prune (phi ** H)\\ +\ );\\ +\endOutput +\end{sCode} + +\begin{sCode} +\label{cohomology} +The function {\tt Ext(M,k)} computes $\Ext_B^\bu(M,k)$ when $B$ is a +graded complete intersection, $M$ a graded $B$-module, and $k$ is the +residue field of $B$. The result is presented as a module over the +ring $k[X_1,\dots,X_c]$. +\beginOutput +i84 : Ext(Module,Ring) := (M,k) -> (\\ +\ B := ring M;\\ +\ if ideal k != ideal vars B\\ +\ then error "expected the residue field of the module";\\ +\ changeRing Ext(M,coker vars B)\\ +\ );\\ +\endOutput +\end{sCode} + +\begin{sExample} +For a test, we run again the computation for $P^{\text{odd}}$. +\beginOutput +i85 : use B;\\ +\endOutput +\beginOutput +i86 : k = B/(x,y,z);\\ +\endOutput +\beginOutput +i87 : use B;\\ +\endOutput +\beginOutput +i88 : P = Ext(M,k);\\ +\endOutput +\beginOutput +i89 : time oddPart P\\ +\ -- used 0.09 seconds\\ +\emptyLine +o89 = cokernel \{-1, -2\} | X_3 0 X_2 0 0 0 0 X_1 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 X_1 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 X_1 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 X_1 0 0 0 |\\ +\ \{-1, -3\} | 0 X_2 0 X_1 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o89 : K [X , X , X , Degrees => \{\{-2, -3\}, \{-2, -4\}, \{-2, -5\}\}]-module $\cdot\cdot\cdot$\\ +\ 1 2 3 $\cdot\cdot\cdot$\\ +\endOutput +\end{sExample} + +We also introduce code for computing the covariant cohomology modules. + +\begin{sCode} +\label{covariant-cohomology} +The function {\tt Ext(k,M)} computes $\Ext_B^\bu(k,M)$ when $B$ is a +graded complete intersection, $M$ a graded $B$-module, and $k$ is the +residue field of $B$. The result is presented as a module over the +ring $k[X_1,\dots,X_c]$. +\beginOutput +i90 : Ext(Ring,Module) := (k,M) -> (\\ +\ B := ring M;\\ +\ if ideal k != ideal vars B\\ +\ then error "expected the residue field of the module";\\ +\ changeRing Ext(coker vars B,M)\\ +\ );\\ +\endOutput +\end{sCode} + +Let's see the last code in action. + +\begin{sExample} +For $B$ and $M$ from Example \ref{random} we compute the odd part of +the covariant cohomology module $\Ext^\bu_B(k,M)$. +\beginOutput +i91 : time I = Ext(k,M);\\ +\ -- used 14.81 seconds\\ +\endOutput +\beginOutput +i92 : evenPart I\\ +\emptyLine +o92 = cokernel \{0, 6\} | 37X_2 37X_1 |\\ +\ \{0, 6\} | -18X_2 -18X_1 |\\ +\ \{0, 6\} | -13X_2 -13X_1 |\\ +\ \{0, 6\} | -37X_2 -37X_1 |\\ +\ \{0, 6\} | 22X_2 22X_1 |\\ +\ \{0, 6\} | 0 0 |\\ +\ \{0, 6\} | X_2 X_1 |\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o92 : K [X , X , X , Degrees => \{\{-2, -3\}, \{-2, -4\}, \{-2, -5\}\}]-module $\cdot\cdot\cdot$\\ +\ 1 2 3 $\cdot\cdot\cdot$\\ +\endOutput +\beginOutput +i93 : oddPart I\\ +\emptyLine +o93 = cokernel \{-1, 5\} | -48X_3 13X_3 34X_3 3X_3 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, 5\} | 3X_3 -40X_3 8X_3 8X_3 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, 5\} | -X_3 37X_3 -13X_3 -35X_3 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, 4\} | 4X_2 20X_2 3X_2 -47X_2 4X_1 20X_1 3X_1 $\cdot\cdot\cdot$\\ +\ \{-1, 4\} | 0 51X_2 0 -30X_2 0 51X_1 0 $\cdot\cdot\cdot$\\ +\ \{-1, 4\} | 0 12X_2 0 -3X_2 0 12X_1 0 $\cdot\cdot\cdot$\\ +\ \{-1, 4\} | 42X_2 12X_2 46X_2 25X_2 42X_1 12X_1 46X_ $\cdot\cdot\cdot$\\ +\ \{-1, 4\} | 45X_2 24X_2 -14X_2 -35X_2 45X_1 24X_1 -14X $\cdot\cdot\cdot$\\ +\ \{-1, 4\} | 0 0 X_2 0 0 0 X_1 $\cdot\cdot\cdot$\\ +\ \{-1, 4\} | X_2 0 0 0 X_1 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, 4\} | 0 -40X_2 0 10X_2 0 -40X_1 0 $\cdot\cdot\cdot$\\ +\ \{-1, 4\} | 0 X_2 0 0 0 X_1 0 $\cdot\cdot\cdot$\\ +\ \{-1, 3\} | 0 0 0 X_1 0 0 0 $\cdot\cdot\cdot$\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o93 : K [X , X , X , Degrees => \{\{-2, -3\}, \{-2, -4\}, \{-2, -5\}\}]-module $\cdot\cdot\cdot$\\ +\ 1 2 3 $\cdot\cdot\cdot$\\ +\endOutput +\end{sExample} + +\subsection{Poincar\'e Series} +\label{Poincare series} + +The {\it\ie{graded Betti number}\/} of $M$ over $B$ is the number +$\b_{ns}^B(M)$ of direct summands isomorphic to the free module +$B[-s]$ in the $n$'th module of a minimal free resolution of $M$ over +$B$. It can be computed from the equality +\[ +\b_{ns}^B(M)=\dim_K\Ext^n_B(M,k)_{s} +\] +The {\it\ie{graded Poincar\'e series}\/} of $M$ over $B$ is the +generating function +\[ +\Poi^B_M(t,u)=\sum_{n\in\N\,,\,s\in\Z}\b_{ns}^B(M)\, t^n u^{-s} +\in\Z[u,u^{-1}][[t]] +\] +It is easily computable with \Mtwo from the contravariant cohomology +module, by using the {\tt hilbertSeries}\indexcmd{hilbertSeries} routine. + +\begin{sCode} +The function {\tt poincareSeries2 M} computes the graded Poin\-car\'e +series of a graded module $M$ over a graded complete intersection $B$. + +First we set up a ring whose elements can serve as Poincar\'e series. +\beginOutput +i94 : T = ZZ[t,u,Inverses=>true,MonomialOrder=>RevLex];\\ +\endOutput +\beginOutput +i95 : poincareSeries2 = M -> (\\ +\ B := ring M;\\ +\ k := B/ideal vars B;\\ +\ P := Ext(M,k);\\ +\ h := hilbertSeries P;\\ +\ T':= degreesRing P;\\ +\ substitute(h, \{T'_0=>t^-1,T'_1=>u^-1\})\\ +\ );\\ +\endOutput +The last line in the code above replaces the variables in the +Poincar\'e series provided by the {\tt hilbertSeries} function with the +variables in our ring {\tt T}. + \end{sCode} + +The $n$th {\it\ie{Betti number}\/} $\b^B_n(M)$ of $M$ over $B$ is the +rank of the $n$th module in a minimal resolution of $M$ by free +$B$-modules. The {\it\ie{Poincar\'e series}\/} $\Poi^B_M(t)$ is the +generating function of the Betti numbers. There are expressions +\[ +\b^B_n(M)=\sum_{s=0}^\infty\b^B_{ns}(M) +\qquad\text{and}\qquad +\Poi^B_M(t)=\Poi^B_M(t,1) +\] +Accordingly, the code for $\Poi^B_M(t)$ just replaces +in $\Poi^B_M(t,u)$ the variable $u$ by $1$. + +\begin{sCode} +The function {\tt poincareSeries1 M} computes the Poincar\'e series of a +graded module $M$ over a graded complete intersection $B$. +\beginOutput +i96 : poincareSeries1 = M -> (\\ +\ substitute(poincareSeries2 M, \{u=>1_T\})\\ +\ );\\ +\endOutput +\end{sCode} + +Now let's use these codes in computations. + +\begin{sExample} +\label{cosyzygy} +To get a module whose Betti sequence initially decreases, we form +an artinian complete intersection $B'$ and take $M'$ to be a cosyzygy +in a minimal injective resolution of the residue field $k$. Since $B'$ +is self-injective, this can be achieved by taking a syzygy of $k$, then +transposing its presentation matrix. Of course, we ask \Mtwo to carry +out these steps. +\beginOutput +i97 : A' = K[x,y,z];\\ +\endOutput +\beginOutput +i98 : B' = A'/(x^2,y^2,z^3);\\ +\endOutput +\beginOutput +i99 : C' = res(B'^1/(x,y,z), LengthLimit => 6)\\ +\emptyLine +\ 1 3 6 10 15 21 28\\ +o99 = B' <-- B' <-- B' <-- B' <-- B' <-- B' <-- B'\\ +\ \\ +\ 0 1 2 3 4 5 6\\ +\emptyLine +o99 : ChainComplex\\ +\endOutput +\beginOutput +i100 : M' = coker transpose C'.dd_5\\ +\emptyLine +o100 = cokernel \{-5\} | -y 0 0 0 z 0 0 0 0 0 0 0 0 0 0 |\\ +\ \{-5\} | -x -y 0 0 0 z 0 0 0 0 0 0 0 0 0 |\\ +\ \{-5\} | 0 x -y 0 0 0 z 0 0 0 0 0 0 0 0 |\\ +\ \{-5\} | 0 0 x -y 0 0 0 z 0 0 0 0 0 0 0 |\\ +\ \{-5\} | 0 0 0 -x 0 0 0 0 z 0 0 0 0 0 0 |\\ +\ \{-5\} | 0 0 0 0 y 0 0 0 0 0 0 0 0 0 0 |\\ +\ \{-5\} | 0 0 0 0 -x y 0 0 0 0 0 0 0 0 0 |\\ +\ \{-5\} | 0 0 0 0 0 x y 0 0 0 0 0 0 0 0 |\\ +\ \{-5\} | 0 0 0 0 0 0 x y 0 0 0 0 0 0 0 |\\ +\ \{-5\} | 0 0 0 0 0 0 0 -x y 0 0 0 0 0 0 |\\ +\ \{-5\} | 0 0 0 0 0 0 0 0 x 0 0 0 0 0 0 |\\ +\ \{-6\} | 0 0 0 0 0 0 0 0 0 -y 0 z 0 0 0 |\\ +\ \{-6\} | 0 0 0 0 0 0 0 0 0 x -y 0 z 0 0 |\\ +\ \{-6\} | 0 0 0 0 0 0 0 0 0 0 -x 0 0 z 0 |\\ +\ \{-6\} | z2 0 0 0 0 0 0 0 0 0 0 y 0 0 0 |\\ +\ \{-6\} | 0 -z2 0 0 0 0 0 0 0 0 0 x y 0 0 |\\ +\ \{-6\} | 0 0 z2 0 0 0 0 0 0 0 0 0 -x y 0 |\\ +\ \{-6\} | 0 0 0 z2 0 0 0 0 0 0 0 0 0 x 0 |\\ +\ \{-7\} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z |\\ +\ \{-7\} | 0 0 0 0 0 0 0 0 0 z2 0 0 0 0 y |\\ +\ \{-7\} | 0 0 0 0 0 0 0 0 0 0 z2 0 0 0 x |\\ +\emptyLine +\ 21\\ +o100 : B'-module, quotient of B'\\ +\endOutput +Compute the Poincar\'e series in two variables $\Poi^{B'}_{M'}(t,u)$. +\beginOutput +i101 : poincareSeries2 M'\\ +\emptyLine +\ -7 -6 -5 -6 -5 -4 2 -5 2 - $\cdot\cdot\cdot$\\ +\ 3u + 7u + 11u + t*u + 5t*u + 9t*u - 6t u - 14t u $\cdot\cdot\cdot$\\ +o101 = --------------------------------------------------------------- $\cdot\cdot\cdot$\\ +\ $\cdot\cdot\cdot$\\ +\ $\cdot\cdot\cdot$\\ +\emptyLine +o101 : Divide\\ +\endOutput +\end{sExample} + +\begin{sExample} +We compute $\Poi^B_M(t)$ for the module $M$ from Example \ref{random}. +\beginOutput +i102 : p = poincareSeries1 M\\ +\emptyLine +\ 2 3 4 5 6 7\\ +\ 3 + 2t - 5t + 4t + 12t + t - 4t - t\\ +o102 = -----------------------------------------\\ +\ 2 2 2\\ +\ (1 - t )(1 - t )(1 - t )\\ +\emptyLine +o102 : Divide\\ +\endOutput +We have written some rather na\"\i ve code for simplifying rational +functions as above. It locates factors of the form $1-t^n$ in the +denominator, factors out $1-t$, and factors out $1+t$ if $n$ is even. +Keeping the factors of the denominator separate, it then cancels as +many of them as it can with the numerator. +\beginOutput +i103 : load "simplify.m2"\\ +\endOutput +\beginOutput +i104 : simplify p\\ +\emptyLine +\ 2 3 4 5 6\\ +\ 3 - t - 4t + 8t + 4t - 3t - t\\ +o104 = ----------------------------------\\ +\ 2 3\\ +\ (1 + t) (1 - t)\\ +\emptyLine +o104 : Divide\\ +\endOutput +In this case, it succeeded in canceling a factor of $1+t$. +\end{sExample} + +\begin{sExample} + We compute some Betti numbers for $M$. We use the division operation in + the Euclidean domain $T' = \mathbb Q[t,t^{-1}]$ with the reverse monomial ordering + to compute power series expansions. +\beginOutput +i105 : T' = QQ[t,Inverses=>true,MonomialOrder=>RevLex];\\ +\endOutput +\beginOutput +i106 : expansion = (n,q) -> (\\ +\ t := T'_0;\\ +\ rho := map(T',T,\{t,1\});\\ +\ num := rho value numerator q;\\ +\ den := rho value denominator q;\\ +\ n = n + first degree den;\\ +\ n = max(n, first degree num + 1);\\ +\ (num + t^n) // den\\ +\ );\\ +\endOutput +Now let's expand the Poincar\'e series up to $t^{20}$. +\beginOutput +i107 : expansion(20,p)\\ +\emptyLine +\ 2 3 4 5 6 7 8 9 $\cdot\cdot\cdot$\\ +o107 = 3 + 2t + 4t + 10t + 15t + 25t + 32t + 46t + 55t + 73t + $\cdot\cdot\cdot$\\ +\emptyLine +o107 : T'\\ +\endOutput +Just to make sure, let's compare the first few coefficients with the +more pedestrian way of doing the computation, one Ext module at a time. +\beginOutput +i108 : psi = map(K,B)\\ +\emptyLine +o108 = map(K,B,\{0, 0, 0\})\\ +\emptyLine +o108 : RingMap K <--- B\\ +\endOutput +\beginOutput +i109 : apply(10, i -> rank (psi ** Ext^i(M,coker vars B)))\\ +\emptyLine +o109 = \{3, 2, 4, 10, 15, 25, 32, 46, 55, 73\}\\ +\emptyLine +o109 : List\\ +\endOutput +Now we restore {\tt t} to its original use. +\beginOutput +i110 : use T;\\ +\endOutput + \end{sExample} + +\subsection{Complexity} + +The {\it\ie{complexity}\/} of $M$ is the least $d\in\N$ such that +the function +\[ +n \mapsto \dim_K \Ext^n_B(M,k) +\] +is bounded above by a polynomial of degree $d-1$ (with the convention +that the zero polynomial has degree $-1$). This number, denoted +$\cx_B(M)$, was introduced in +\cite{CI:MR90g:13027} to measures on a polynomial scale the rate of +growth of the Betti numbers of $M$. It is calibrated so that +$\cx_B(M)=0$ if and only if $M$ has finite projective dimension. +Corollary \ref{series} yields +\[ +\Poi^B_M(t)=\frac{p^B_M(t)}{(1-t^2)^c} +\qquad\text{for some}\qquad p^B_M(t)\in\Z[t] +\] +Decomposing the right hand side into partial fractions, one sees that +$\cx_R(M)$ equals the order of the pole of $\Poi^B_M(t)$ at $t=1$; in +particular, $\cx_R(M,N)\le c$. However, since we get $\Poi^B_M(t)$ +from a computation of the $R$-module $P=\Ext^\bu_B(M,k)$, it is natural +to obtain $\cx_R(M)$ as the Krull dimension of $P$. + +\begin{sCode} +The function {\tt complexity M} yields the complexity of a graded +module $M$ over a graded complete intersection ring $B$. +\beginOutput +i111 : complexity = M -> dim Ext(M,coker vars ring M);\\ +\endOutput + \end{sCode} + +\begin{sExample} +We compute $\cx_B(M)$ for $M$ from Example \ref{random}. +\beginOutput +i112 : complexity M\\ +\emptyLine +o112 = 3\\ +\endOutput + \end{sExample} + +\subsection{Critical Degree} + +The {\it\ie{critical degree}\/} of $M$ is the least integer $\ell$ for +which the minimal resolution $F$ of $M$ admits a chain map $g\colon +F\to F$ of degree $m<0$, such that $g_{m+n}\colon F_{m+n}\to F_n$ is +surjective for all $n>\ell$. This number, introduced in +\cite{CI:MR99c:13033} and denoted $\crdeg_BM$, is meaningful over every +graded ring $B$. It is equal to the projective dimension whenever the +latter is finite. + +When $B$ is a complete intersection it is proved in +\cite[Sect.~7]{CI:MR99c:13033} that $\crdeg_BM$ is finite and yields +important information on the Betti sequence: +\begin{itemize} +\item[$\bullet$] +if $\cx_BM\le1$, then $\b^B_n(M) =\b^B_{n+1}(M)$ for all $n>\crdeg_BM$. +\item[$\bullet$] +if $\cx_BM\ge2$, then $\b^B_n(M)<\b^B_{n+1}(M)$ for all $n>\crdeg_BM$. +\end{itemize} +Thus, it is interesting to know $\crdeg_BM$, or at least to have a good +upper bound. Here is what is known, in terms of $h=\depth B-\depth_BM$. +\begin{itemize} +\item[$\bullet$] +if $\cx_BM=0$, then $\crdeg_BM=h$. +\item[$\bullet$] +if $\cx_BM=1$, then $\crdeg_BM\le h$. +\item[$\bullet$] +if $\cx_BM=2$, then $\crdeg_BM\le h+1+\max\{2\beta^B_h(M)-1\,,\, +2\beta^B_{h+1}(M)\}$. +\end{itemize} +The first part is the Auslander-Buchsbaum Equality, the second part is +proved in \cite[Sect.~6]{CI:Ei}, the third is established in +\cite[Sect.~7]{CI:MR1774757}. + +These upper bounds are realistic: there exist examples in complexity +$1$ when they are reached, and examples in complexity $2$ when they are +not more than twice the actual value of the critical degree. If +$\cx_RM\ge3$, then it is an {\bf open problem} whether the critical +degree of $M$ can be bounded in terms that do not depend on the action +of the cohomology operators. + +However, in every concrete case $\crdeg_RM$ can be computed explicitly +by using \Mtwo. Indeed, it is proved in \cite[Sect.~7]{CI:MR99c:13033} +that $\crdeg_RM$ is equal to the highest degree of a non-zero element +in the socle of the $R$-module $\Ext^\bu_B(M,k)$, that is, the +submodule consisting of elements annihilated by $(X_1,\dots,X_c)$. The +socle is naturally isomorphic to $\Hom_B(k,\Ext^\bu_B(M,k))$, so it can +be obtained by standard \Mtwo routines. + +For instance, for the module $M$ from Example \ref{random}, we get +\beginOutput +i113 : k = coker vars ring H;\\ +\endOutput +\beginOutput +i114 : prune Hom(k,H)\\ +\emptyLine +o114 = 0\\ +\emptyLine +o114 : K [\$X , \$X , x, y, Degrees => \{\{-2, -2\}, \{-2, -3\}, \{0, 1\}, \{0, $\cdot\cdot\cdot$\\ +\ 1 2\\ +\endOutput +The degrees displayed above show that $\crdeg_RM=1$. +\medskip + +Of course, one might prefer to see the number $\crdeg_BM$ directly. + +\begin{sCode} +The function {\tt criticalDegree M} computes the critical degree of a +graded module $M$ over a graded complete intersection ring $B$. +\beginOutput +i115 : criticalDegree = M -> (\\ +\ B := ring M;\\ +\ k := B / ideal vars B;\\ +\ P := Ext(M,k);\\ +\ k = coker vars ring P;\\ +\ - min ( first {\char`\\} degrees source gens prune Hom(k,P))\\ +\ );\\ +\endOutput +\end{sCode} + +Let's test the new code in a couple of cases. + +\begin{sExample} +For the module $M$ of Example \ref{random} we have +\beginOutput +i116 : criticalDegree M\\ +\emptyLine +o116 = 1\\ +\endOutput +in accordance with what was already observed above. + +For the module $M'$ of Example \ref{cosyzygy} we obtain +\beginOutput +i117 : criticalDegree M'\\ +\emptyLine +o117 = 5\\ +\endOutput +\end{sExample} + +\subsection{Support Variety} +\label{Support variety} + +Let $\overline K$ denote an algebraic closure of $K$. The +{\it\ie{support variety}\/} $\var^*_B(M)$ is the algebraic set in +${\overline K}{}^c$ defined by the annihilator of $\Ext^\bu_B(M,k)$ +over $R=K[X_1,\dots,X_c]$. This `geometric image' of the +contravariant cohomology module was introduced in \cite{CI:MR90g:13027} +and used to study the minimal free resolution of $M$. The dimension of +the support variety is equal to the complexity $\cx_R(M)$, that we can +already compute. There is no need to associate a variety to the +covariant cohomology module, see \ref{Support variety2}. + +Since $\var^*_B(M)$ is defined by homogeneous equations, it is a cone +in ${\overline K}{}^c$. An important {\bf open problem} is whether +every cone in ${\overline K}{}^c$ that can be defined over $K$ is the +variety of some $B$-module $M$. By \cite[Sect.~6]{CI:MR90g:13027} all +linear subspaces and all hypersurfaces arise in this way, but little +more is known in general. + +Feeding our computation of $\Ext^\bu_B(M,k)$ to standard \Mtwo routines +we write code for determining a set of equations defining $\var^*_B(M)$. + +\begin{sCode} +The function {\tt supportVarietyIdeal M} yields a set of polynomial +equations with coefficients in $K$, defining the support variety +$\var^*_B(M)$ in ${\overline K}{}^c$ for a graded module $M$ over a +graded complete intersection $B$. +\beginOutput +i118 : supportVarietyIdeal = M -> (\\ +\ B := ring M;\\ +\ k := B/ideal vars B;\\ +\ ann Ext(M,k)\\ +\ );\\ +\endOutput + \end{sCode} + +As before, we illustrate the code with explicit computations. In +view of the open problem mentioned above, we fix a ring and a type of +presentation, then change randomly the presentation matrix in the hope +of finding an `interesting' variety. The result of the experiment +is assessed in Remark \ref{letdown}. + +\begin{sExample} +Let $\F_7$ denote the prime field with $7$ elements, and form the +zero-dimensional complete intersection $B''=\F_7[x,y,z]/(x^7,y^7,z^7)$. +\beginOutput +i119 : K'' = ZZ/7;\\ +\endOutput +\beginOutput +i120 : A'' = K''[x,y,z];\\ +\endOutput +\beginOutput +i121 : J'' = ideal(x^7,y^7,z^7);\\ +\emptyLine +o121 : Ideal of A''\\ +\endOutput +\beginOutput +i122 : B'' = A''/J'';\\ +\endOutput +We apply the code above to search, randomly, for some varieties. Using +{\tt scan}\indexcmd{scan} we print the results from several runs with one command. +\beginOutput +i123 : scan((1,1) .. (3,3), (r,d) -> (\\ +\ V := cokernel random (B''^r,B''^\{-d\});\\ +\ << "--------------------------------------------------- $\cdot\cdot\cdot$\\ +\ << endl\\ +\ << "V = " << V << endl\\ +\ << "support variety ideal = "\\ +\ << timing supportVarietyIdeal V\\ +\ << endl))\\ +------------------------------------------------------------------\\ +V = cokernel | -2x+3y+2z |\\ +support variety ideal = ideal (X - 2X , X + X )\\ +\ 2 3 1 3\\ +\ -- 0.7 seconds\\ +------------------------------------------------------------------\\ +V = cokernel | 3x2-2xy+xz-3yz |\\ +support variety ideal = ideal(X + 3X + 2X )\\ +\ 1 2 3\\ +\ -- 0.48 seconds\\ +------------------------------------------------------------------\\ +V = cokernel | -2x3+3x2y+y3-x2z-3y2z-xz2-3z3 |\\ +support variety ideal = 0\\ +\ -- 1.54 seconds\\ +------------------------------------------------------------------\\ +V = cokernel | -3y+3z |\\ +\ | -2x-2y |\\ +support variety ideal = ideal(X + X - X )\\ +\ 1 2 3\\ +\ -- 0.86 seconds\\ +------------------------------------------------------------------\\ +V = cokernel | -x2+2y2-xz+yz+3z2 |\\ +\ | 2xy-3xz-3yz-2z2 |\\ +support variety ideal = 0\\ +\ -- 1.31 seconds\\ +------------------------------------------------------------------\\ +V = cokernel | -x3-2x2y-xy2-2xyz+3y2z+2xz2-yz2-2z3 |\\ +\ | 2xy2+3y3-3x2z-2y2z+2xz2+2yz2 |\\ +support variety ideal = 0\\ +\ -- 2.21 seconds\\ +------------------------------------------------------------------\\ +V = cokernel | 3x-y-z |\\ +\ | -3x-y+2z |\\ +\ | x-2y+3z |\\ +support variety ideal = 0\\ +\ -- 1.1 seconds\\ +------------------------------------------------------------------\\ +V = cokernel | 2x2-2xy+2y2+2xz-3z2 |\\ +\ | -x2+2xy+y2+3xz+3yz-z2 |\\ +\ | -2xz+2yz+2z2 |\\ +support variety ideal = 0\\ +\ -- 1.67 seconds\\ +------------------------------------------------------------------\\ +V = cokernel | 2x3-x2y+2xy2-y3-2xyz+3y2z+xz2+3yz2+z3 |\\ +\ | -3x3-3x2y+3xy2+2x2z+3xyz-3y2z-xz2 |\\ +\ | -3x3-2x2y-xy2-2y3-2xyz+y2z+xz2+3yz2-z3 |\\ +support variety ideal = 0\\ +\ -- 1.92 seconds\\ +\endOutput +\end{sExample} + +\begin{sRemark} +\label{letdown} +The (admittedly short) search above did not turn up any non-linear +variety. This should be contrasted with the known result that +{\it every\/} cone in ${\overline \F_7}{}^3$ is the support variety of +some $B''$-module. + +Indeed, $B''$ is isomorphic to the group algebra $\F_7[G]$ of the +elementary abelian group $G=\C_7\times\C_7\times\C_7$, where $\C_7$ is +a cyclic group of order $7$. It is shown in +\cite[Sect.~7]{CI:MR90g:13027} that $\var^*_{B''}(V)$ is equal to a +variety $\var^*_G(V)$, defined in a different way in +\cite{CI:MR85a:20004} by Carlson. He proves in \cite{CI:MR86b:20009} +that if $K$ is a field of characteristic $p>0$, and $G$ is an +elementary abelian $p$-group of rank $c$, then every cone in +${\overline K}{}^c$ is the rank variety of a finitely generated module +over $K[G]$. + \end{sRemark} + +\subsection{Bass Series} +\label{Bass series} + +The {\it\ie{graded Bass number}\/} $\mu^{ns}_B(M)$ of $M$ over $B$ is +the number of direct summands isomorphic to $U[s]$ in the $n$'th module +of a minimal graded injective resolution of $M$ over $B$, where $U$ +is the injective envelope of $k$. It satisfies +\[ +\mu^{ns}_B(M)=\dim_K\Ext^n_B(k,M)_{s} +\] +The {\it\ie{graded Bass series}\/} of $M$ over $B$ is the generating +function +\[ +\Ba^M_B(t,u)=\sum_{n\in\N\,,\,s\in\Z}\mu^{ns}_B(M)\, t^nu^s +\in\Z[u,u^{-1}][[t]] +\] +It is easily computable with \Mtwo from the covariant cohomology module, +by using the {\tt hilbertSeries}\indexcmd{hilbertSeries} routine. + +\begin{sCode} +The function {\tt bassSeries2 M} computes the graded Bass series of a +graded module $M$ over a graded complete intersection $B$. +\beginOutput +i124 : bassSeries2 = M -> (\\ +\ B := ring M;\\ +\ k := B/ideal vars B;\\ +\ I := Ext(k,M);\\ +\ h := hilbertSeries I;\\ +\ T':= degreesRing I;\\ +\ substitute(h, \{T'_0=>t^-1, T'_1=>u\})\\ +\ );\\ +\endOutput + \end{sCode} + +As with Betti numbers and Poincar\'e series, there are ungraded versions +of Bass numbers and Bass series; they are given, respectively, by +\[ +\mu_B^n(M)=\sum_{s=0}^\infty\mu_B^{ns}(M) +\qquad\text{and}\qquad +\Ba_B^M(t)=\Ba_B^M(t,1) +\] + +\begin{sCode} +The function {\tt bassSeries1 M} computes the Bass series of a graded +module $M$ over a graded complete intersection $B$. +\beginOutput +i125 : bassSeries1 = M -> (\\ +\ substitute(bassSeries2 M, \{u=>1_T\})\\ +\ );\\ +\endOutput +\end{sCode} + +Now let's use these codes in computations. + +\begin{sExample} +For $k$, the residue field of $B$, the contravariant and covariant +cohomology modules coincide. For comparison, we compute side by side +the Poincar\'e series and the Bass series of $k$, when +$B=K[x,y,z]/(x^3,y^4,z^5)$ is the ring defined in Example +\ref{random}. +\beginOutput +i126 : use B;\\ +\endOutput +\beginOutput +i127 : L = B^1/(x,y,z);\\ +\endOutput +\beginOutput +i128 : p = poincareSeries2 L\\ +\emptyLine +\ 2 2 3 3\\ +\ 1 + 3t*u + 3t u + t u\\ +o128 = ------------------------------\\ +\ 2 3 2 4 2 5\\ +\ (1 - t u )(1 - t u )(1 - t u )\\ +\emptyLine +o128 : Divide\\ +\endOutput +\beginOutput +i129 : b = bassSeries2 L\\ +\emptyLine +\ -1 2 -2 3 -3\\ +\ 1 + 3t*u + 3t u + t u\\ +o129 = ---------------------------------\\ +\ 2 -3 2 -4 2 -5\\ +\ (1 - t u )(1 - t u )(1 - t u )\\ +\emptyLine +o129 : Divide\\ +\endOutput +The reader would have noticed that the two series are different, and +that one is obtained from the other by the substitution $u\mapsto +u^{-1}$. This underscores the different meanings of the graded Betti +numbers and Bass numbers. + \end{sExample} + +\begin{sExample} +Here we compute the graded and ungraded Bass series of the $B$-module +$M$ of Example \ref{random}. +\beginOutput +i130 : b2 = bassSeries2 M\\ +\emptyLine +\ 6 3 4 5 2 2 2 3 3 3 3 2 $\cdot\cdot\cdot$\\ +\ 7u + t*u + 9t*u + 3t*u - t u - t u - 4t - 3t u - 3t u + $\cdot\cdot\cdot$\\ +o130 = --------------------------------------------------------------- $\cdot\cdot\cdot$\\ +\ 2 -3 2 -4 2 -5\\ +\ (1 - t u )(1 - t u )(1 - t u )\\ +\emptyLine +o130 : Divide\\ +\endOutput +\beginOutput +i131 : b1 = bassSeries1 M;\\ +\endOutput +\beginOutput +i132 : simplify b1\\ +\emptyLine +\ 2 3 4\\ +\ 7 + 6t - 8t - 2t + 3t\\ +o132 = ------------------------\\ +\ 2 3\\ +\ (1 + t) (1 - t)\\ +\emptyLine +o132 : Divide\\ +\endOutput + \end{sExample} + +\section{Invariants of Pairs of Modules} +\label{Invariants of pairs of modules} + +In this final section we compute invariants of a pair $(M,N)$ of graded +modules over a graded complete intersection $B$, derived from the +reduced Ext module $\rExt^\bu_B(M,N)$ defined in Remark \ref{reduced +ext}. The treatment here is parallel to that in Section +\ref{Invariants of modules}. When one of the modules $M$ or $N$ is +equal to the residue field $k$, the invariants discussed below reduce +to those treated in that section. + +\subsection{Reduced Ext Module} + +The reduced Ext module $\rExt^\bu_B(M,N)=\Ext^\bu_B(M,N)\otimes_Ak$ +defined in Remark \ref{reduced ext} is computed from our basic +routine {\tt Ext(M,N)} by applying the function {\tt changeRing} +defined in Code \ref{change}. + +\begin{sCode} +\label{reduced} +The function {\tt ext(M,N)} computes $\rExt_B^\bu(M,N)$ when $M$ +and $N$ are graded modules over a graded complete intersection $B$. +\beginOutput +i133 : ext = (M,N) -> changeRing Ext(M,N);\\ +\endOutput + \end{sCode} + +\begin{sExample} +\label{new module} +Using the ring $B=K[x,y,z]/(x^3,y^4,z^5)$ and the module $M$ created +in Example \ref{random}, we make new modules +\[ +N=B/(x^2+z^2\,,\,y^3) \qquad\text{and}\qquad +N'=B/(x^2+z^2\,,\,y^3-2z^3) +\] +\beginOutput +i134 : use B;\\ +\endOutput +\beginOutput +i135 : N = B^1/(x^2 + z^2,y^3);\\ +\endOutput +\beginOutput +i136 : time rH = ext(M,N);\\ +\ -- used 15.91 seconds\\ +\endOutput +\beginOutput +i137 : evenPart rH\\ +\emptyLine +o137 = cokernel \{-4, -9\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 0 0 0 0 0 X_3 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 0 0 0 X_3 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 0 0 0 0 X_3 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 0 0 X_3 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 0 X_3 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 X_3 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 X_3 0 0 0 0 0 0 0 0 X_2 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | X_3 0 0 0 0 0 0 0 0 X_2 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 1\} | 0 0 0 0 0 0 0 0 X_2 0 0 $\cdot\cdot\cdot$\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o137 : K [X , X , X , Degrees => \{\{-2, -3\}, \{-2, -4\}, \{-2, -5\}\}]-modul $\cdot\cdot\cdot$\\ +\ 1 2 3 $\cdot\cdot\cdot$\\ +\endOutput +\beginOutput +i138 : oddPart rH\\ +\emptyLine +o138 = cokernel \{-3, -6\} | 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-3, -6\} | 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-3, -6\} | 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-3, -6\} | 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-3, -6\} | 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | -39X_3 0 0 0 0 0 0 0 X_2 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | 31X_3 0 0 0 0 0 0 X_2 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | -34X_3 0 0 0 0 0 X_2 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | -35X_3 0 0 0 0 X_2 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | -29X_3 0 0 0 X_2 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | 12X_3 0 0 X_2 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | -8X_3 0 X_2 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | X_3 X_2 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-3, -7\} | 0 0 0 0 0 0 0 0 0 X_1 $\cdot\cdot\cdot$\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o138 : K [X , X , X , Degrees => \{\{-2, -3\}, \{-2, -4\}, \{-2, -5\}\}]-modul $\cdot\cdot\cdot$\\ +\ 1 2 3 $\cdot\cdot\cdot$\\ +\endOutput +\beginOutput +i139 : N' = B^1/(x^2 + z^2,y^3 - 2*z^3);\\ +\endOutput +\beginOutput +i140 : time rH' = ext(M,N');\\ +\ -- used 20.26 seconds\\ +\endOutput +\beginOutput +i141 : evenPart rH'\\ +\emptyLine +o141 = cokernel \{-4, -8\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-4, -8\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-4, -9\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-4, -9\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-4, -9\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-4, -9\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-4, -9\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-4, -9\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 0 0 0 0 X_3 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 0 0 0 X_3 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 0 0 X_3 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 X_3 0 0 0 0 0 0 0 X_2 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 0 X_3 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 X_3 0 0 0 0 0 0 0 X_2 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | X_3 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 1\} | 0 0 0 0 0 0 0 X_2 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 1\} | 0 0 0 0 0 0 0 0 X_2 0 0 $\cdot\cdot\cdot$\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o141 : K [X , X , X , Degrees => \{\{-2, -3\}, \{-2, -4\}, \{-2, -5\}\}]-modul $\cdot\cdot\cdot$\\ +\ 1 2 3 $\cdot\cdot\cdot$\\ +\endOutput +\beginOutput +i142 : oddPart rH'\\ +\emptyLine +o142 = cokernel \{-3, -6\} | 0 0 0 0 0 0 0 0 -42X_2 21X_ $\cdot\cdot\cdot$\\ +\ \{-3, -6\} | 0 0 0 0 0 0 0 0 -6X_2 -32X $\cdot\cdot\cdot$\\ +\ \{-3, -6\} | 0 0 0 0 0 0 0 0 -8X_2 12X_ $\cdot\cdot\cdot$\\ +\ \{-3, -6\} | 0 0 0 0 0 0 0 0 26X_2 -36X $\cdot\cdot\cdot$\\ +\ \{-3, -6\} | 0 0 0 0 0 0 0 0 50X_2 18X_ $\cdot\cdot\cdot$\\ +\ \{-3, -6\} | 0 0 0 0 0 0 0 0 31X_2 7X_2 $\cdot\cdot\cdot$\\ +\ \{-3, -7\} | 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-3, -7\} | 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-3, -7\} | 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-3, -7\} | 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-3, -7\} | 0 0 0 0 0 0 0 0 0 X_1 $\cdot\cdot\cdot$\\ +\ \{-3, -7\} | 0 0 0 0 0 0 0 0 X_1 0 $\cdot\cdot\cdot$\\ +\ \{-1, -2\} | 0 0 0 X_2 0 0 0 X_1 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -2\} | 0 0 X_2 0 0 0 X_1 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -2\} | 0 X_2 0 0 0 X_1 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -2\} | X_2 0 0 0 X_1 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o142 : K [X , X , X , Degrees => \{\{-2, -3\}, \{-2, -4\}, \{-2, -5\}\}]-modul $\cdot\cdot\cdot$\\ +\ 1 2 3 $\cdot\cdot\cdot$\\ +\endOutput +\end{sExample} + +\subsection{Ext-generator Series} + +The Ext-generator series $\gen^{M,N}_B(t,u)$ defined in Remark +\ref{reduced ext} generalizes both the Poincar\'e series of $M$ +and the Bass series of $N$, as seen from the formulas +\[ +\Poi^B_M(t,u)=\gen^{M,k}_B(t,u) +\qquad\text{and}\qquad +\Ba^N_B(t,u)=\gen^{k,N}_B(t,u^{-1}) +\] +Similar equalities hold for the corresponding series in one variable. +Codes for computing Ext-generator series are easy to produce. + +\begin{sCode} +\label{genseries} +The function {\tt extgenSeries2(M,N)} computes $\gen^{M,N}_B(t,u)$ when +$M$ and $N$ are graded modules over a graded complete intersection $B$, +and presents it as a rational function with denominator +$(1-t^2u^{r_1})\cdots(1-t^2u^{r_c})$. +\beginOutput +i143 : extgenSeries2 = (M,N) -> (\\ +\ H := ext(M,N);\\ +\ h := hilbertSeries H;\\ +\ T':= degreesRing H;\\ +\ substitute(h, \{T'_0=>t^-1,T'_1=>u^-1\})\\ +\ );\\ +\endOutput +\end{sCode} + +\begin{sCode} +The function {\tt extgenSeries1(M,N)} computes the Ext-genera\-tor series in +one variable for a pair $(M,N)$ of graded modules over a graded complete +intersection $B$. +\beginOutput +i144 : extgenSeries1 = (M,N) -> (\\ +\ substitute(extgenSeries2(M,N), \{u=>1_T\})\\ +\ );\\ +\endOutput +\end{sCode} + +\begin{sExample} +For $M$, $N$, and $N'$ as in Example \ref{new module} we obtain +\beginOutput +i145 : time extgenSeries2(M,N)\\ +\ -- used 0.44 seconds\\ +\emptyLine +\ -2 -1 2 2 2 2 3 2 4 3 4 3 $\cdot\cdot\cdot$\\ +\ 8u + u + 8t*u - 8t u - 9t u - 9t u + 7t u - 8t u - 8t u $\cdot\cdot\cdot$\\ +o145 = --------------------------------------------------------------- $\cdot\cdot\cdot$\\ +\ $\cdot\cdot\cdot$\\ +\ $\cdot\cdot\cdot$\\ +\emptyLine +o145 : Divide\\ +\endOutput +\beginOutput +i146 : g=time extgenSeries1(M,N)\\ +\ -- used 0.13 seconds\\ +\emptyLine +\ 2 3 4 5 6 7\\ +\ 9 + 8t - 19t - 11t + 17t + 4t - 7t - t\\ +o146 = --------------------------------------------\\ +\ 2 2 2\\ +\ (1 - t )(1 - t )(1 - t )\\ +\emptyLine +o146 : Divide\\ +\endOutput +\beginOutput +i147 : simplify g\\ +\emptyLine +\ 2 3 4\\ +\ 9 - t - 9t + 6t + t\\ +o147 = ----------------------\\ +\ 2\\ +\ (1 + t)(1 - t)\\ +\emptyLine +o147 : Divide\\ +\endOutput +\beginOutput +i148 : time extgenSeries2(M,N')\\ +\ -- used 0.15 seconds\\ +\emptyLine +\ -2 -1 2 2 2 2 2 3 2 4 3 5 $\cdot\cdot\cdot$\\ +\ 7u + 2u + 4t*u - 7t u - 9t u - 9t u + 16t u - 4t u + 2 $\cdot\cdot\cdot$\\ +o148 = --------------------------------------------------------------- $\cdot\cdot\cdot$\\ +\ $\cdot\cdot\cdot$\\ +\ $\cdot\cdot\cdot$\\ +\emptyLine +o148 : Divide\\ +\endOutput +\beginOutput +i149 : g'=time extgenSeries1(M,N')\\ +\ -- used 0.18 seconds\\ +\emptyLine +\ 2 3 4 5 6\\ +\ 9 + 4t - 9t + 4t + 8t - 2t - 2t\\ +o149 = ------------------------------------\\ +\ 2 2 2\\ +\ (1 - t )(1 - t )(1 - t )\\ +\emptyLine +o149 : Divide\\ +\endOutput +\beginOutput +i150 : simplify g'\\ +\emptyLine +\ 2 3 5\\ +\ 9 - 5t - 4t + 8t - 2t\\ +o150 = ------------------------\\ +\ 2 3\\ +\ (1 + t) (1 - t)\\ +\emptyLine +o150 : Divide\\ +\endOutput +\end{sExample} + +\subsection{Complexity} + +The {\it\ie{complexity}\/} of a pair of $B$-modules $(M,N)$ +is the least $d\in\N$ such that there exists +a polynomial of degree $d-1$ bounding above the function +\[ +n \mapsto \dim_K \rExt^n_B(M,N) +\] +It is denoted $\cx_B(M,N)$ and measures on a polynomial scale the rate +of growth of the minimal number of generators of $\Ext^n_B(M,N)$; it +vanishes if and only if $\Ext^n_B(M,N)=0$ for all $n\gg0$. Corollary +\ref{series} yields +\[ +\gen^{M,N}_B(t)=\frac{h(t)}{(1-t^2)^c} +\qquad\text{for some}\qquad h(t)\in\Z[t] +\] +so decomposition into partial fractions shows that $\cx_R(M,N)$ equals +the order of the pole of $\gen^{M,N}_B(t)$ at $t=1$. Alternatively, +$\cx_R(M,N)$ can be obtained by computing the Krull dimension of a +reduced Ext module over $R$. + +\begin{sCode} +The function {\tt complexityPair(M,N)} yields the complexity of a pair +$(M,N)$ of graded modules over a graded complete intersection ring $B$. +\beginOutput +i151 : complexityPair = (M,N) -> dim ext(M,N);\\ +\endOutput + \end{sCode} + +\begin{sExample} +For $M$, $N$, and $N'$ as in Example \ref{new module} we have +\beginOutput +i152 : time complexityPair(M,N)\\ +\ -- used 0.39 seconds\\ +\emptyLine +o152 = 2\\ +\endOutput +\beginOutput +i153 : time complexityPair(M,N')\\ +\ -- used 0.12 seconds\\ +\emptyLine +o153 = 3\\ +\endOutput +\end{sExample} + +\subsection{Support Variety} +\label{Support variety2} + +Let $\overline K$ be an algebraic closure of $K$. The {\it\ie{support +variety}\/} $\var^*_B(M,N)$ is the algebraic set in ${\overline K}{}^c$ +defined by the annihilator of $\rExt^\bu_B(M,N)$ over +$R=K[X_1,\dots,X_c]$. It is clear from the definition that +$\var^*_B(M,k)$ is equal to the variety $\var^*_B(M)$ defined in +\ref{Support variety}. One of the main results of +\cite[Sect.~5]{CI:AB2} shows that $\var^*_B(M,N)=\var^*_B(M)\cap +\var^*_B(N)$, and, as a consequence, $\var^*_B(M)=\var^*_B(M,M)= +\var^*_B(k,M)$. The dimension of $\var^*_B(M,N)$ is equal to the +complexity $\cx_R(M,N)$, already computed above. + +Feeding our computation of $\rExt^\bu_B(M,N)$ to standard \Mtwo +routines we write code for determining a set of equations defining +$\var^*_B(M,N)$. + +\begin{sCode} +The function {\tt supportVarietyPairIdeal(M,N)} yields a set of polynomial +equations with coefficients in $K$, defining the variety +$\var^*_B(M,N)$ in ${\overline K}{}^c$ for graded modules $M$, $N$ over +a graded complete intersection $B$. +\beginOutput +i154 : supportVarietyPairIdeal = (M,N) -> ann ext(M,N);\\ +\endOutput + \end{sCode} + +\begin{sExample} +For $M$, $N$, and $N'$ as in Example \ref{new module} we have +\beginOutput +i155 : time supportVarietyPairIdeal(M,N)\\ +\ -- used 0.97 seconds\\ +\emptyLine +o155 = ideal X\\ +\ 1\\ +\emptyLine +o155 : Ideal of K [X , X , X , Degrees => \{\{-2, -3\}, \{-2, -4\}, \{-2, -5\}\}]\\ +\ 1 2 3\\ +\endOutput +\beginOutput +i156 : time supportVarietyPairIdeal(M,N')\\ +\ -- used 1.73 seconds\\ +\emptyLine +o156 = 0\\ +\emptyLine +o156 : Ideal of K [X , X , X , Degrees => \{\{-2, -3\}, \{-2, -4\}, \{-2, -5\}\}]\\ +\ 1 2 3\\ +\endOutput +\end{sExample} + +\appendix + +\section{Gradings} +\label{Gradings} + +Our purpose here is to set up a context in which the theory of Sections +\ref{Universal homotopies} and \ref{Cohomology operators} translates +into data that \Mtwo can operate with. + +A first point is to develop a {\it flexible\/} and {\it consistent\/} +scheme within which to handle the two kinds of degrees we deal +with---the internal gradings of the input, and the homological degrees +created during computations. + +A purely technological difficulty arises when our data are presented to +\Mtwo: it only accepts multidegrees whose first component is positive, +which is {\it not\/} the case for rings of cohomology operators. + +A final point, mostly notational, tends to generate misunderstanding +and errors if left unaddressed. On the printed page, the difference +between homological and cohomological conventions is handled +graphically by switching between sub- and super-indices, and reversing +signs; both authors were used to it, but \Mtwo has so far refused to +read \TeX\ printouts. + +The {\sl raison d'\^etre\/} of the following remarks was to debug +communications between the three of us. + +\begin{Remark} +\label{bigrading} +Only one degree, denoted $\deg$, appears in Section \ref{Graded +algebras}, and anywhere in the main text before Notation \ref{graded +stuff}; when needed, it will be referred to as {\it homological +degree\/}. + +Assume that $A=\bigoplus_{h\in\Z}A_h$ is a graded ring. Any element +$a$ of $A_h$ is said to be homogeneous of {\it\ie{internal degree}\/} +$h$; the notation for this is $\deg' a=h$. Let ${\boldsymbol f}=\{f_1, +\dots, f_c\}$ be a Koszul-regular set consisting of homogeneous +elements. We give the ring $B=A/({\boldsymbol f})$ the induced +grading, and extend the notation for internal degree to all graded +$B$-modules $M$. + +Let $M$ be a graded $B$-module. For any integer $e$, we let $M[e]$ +denote the graded module with $M[e]_d = M_{d+e}$. We take a projective +resolution $C$ of $M$ by graded $A$-modules, with differential $d_C$ +preserving internal degrees. Recall that we have been writing $\deg x += n$ to indicate that $x$ is an element in $C_n$; we refer to this +situation also by saying that $x$ has {\it\ie{homological degree\/}} +$x$. We combine both degrees in a single {\it\ie{bidegree\/}}, denoted +$\Deg$, as follows: +\[ +\Deg x = (\deg x, \deg' x) +\] +For a bigraded module $H$ and pair of integers $(e, e')$, we let +$H[e,e']$ denote the bigraded module with $H[e,e']_{d,d'} = +H_{d+e,d'+e'}$. + +Because $\deg Y_i = 2$, the elements of the free $B$-module $Q$ have +homological degree $2$. We introduce an internal grading $\deg'$ on +$Q$ by setting $\deg' Y_i = r_i$, where $r_i=\deg' f_i$ for +$i=1,\dots,c$. With this choice, the homomorphism $f\colon Q\to A$ +acquires internal degree $0$ (of course, this was the reason behind our +choice of grading in the first place). The internal grading on $Q$ +defines, in the usual way, internal gradings on all symmetric and +exterior powers of $Q$ and $Q^*$; in particular, $\deg'Y^{(\a)}=\sum +\a_i r_i$ and $\deg' Y^{\wedge\b} = \sum \b_i r_i$. Thus, the ring +$S=A[X_1,\dots,X_c]$ acquires a bigrading defined by +$\Deg a=(0, h)$ for all elements $a\in A_h$ and $\Deg X_i=(-2,-r_i)$ +for $i=1,\dots,c$. + +In this context, we call $S$ the {\it\ie{bigraded ring of cohomology +operators}\/}. + +Since the differential $d_C$ has internal degree $0$, a null-homotopic +chain map $C\to C$ which is homogeneous of internal degree $r$ will +have a null-homotopy that is itself homogeneous of internal degree +$r$. In the proof of Theorem \ref{main} we construct maps $d_\g$ as +null-homotopies, so we may arrange for them to be homogeneous maps with +$\deg' d_\g = \sum \g_i d_i$. Our grading assumptions guarantee that +$d$ is homogeneous with $\Deg d=(-1,0)$. + +With these data, the $B$-free resolution $C\otimes_A D'$ provided by +Theorem \ref{resolution} becomes one by graded $B$-modules, and +its differential $\partial$ is homogeneous with $\Deg +\partial=(-1,0)$. For any graded $B$-module $N$, these properties are +transferred to the complex $\Hom_B(C\otimes_A D',N)$ and its +differential. + \end{Remark} + +We sum up the contents of Remarks \ref{action} and \ref{bigrading}. + +\begin{Remark} +\label{graded action} +If $A$ is a graded ring, $\{f_1, \dots, f_c\}$ is a Koszul-regular set +consisting of homogeneous elements, $B$ is the residue ring +$A/({\boldsymbol f})$, and $M,N$ are graded $B$-modules, then +$\Ext^\bu_B(M,N)$ is a bigraded module over the ring +$S=A[X_1,\dots,X_c]$, itself bigraded by setting $\Deg a = (0, +\deg'(a))$ for all homogeneous $a\in A$ and $\Deg X_i = +(-2,-\deg'(f_i))$ for $i=1,\dots,c$. + \end{Remark} + +\begin{Remark} +\label{macaulay grading} +The core algorithms of the program can handle multi-graded rings and +modules, but only if each variable in the ring has positive first +component of its multi-degree. At the moment, a user who needs a +multi-graded ring {\tt R} which violates this requirement must provide +two linear maps: {\tt R.Adjust}, that transforms the desired +multi-degrees into ones satisfying this requirement, as well as its +inverse map, {\tt R.Repair}. The routine {\tt Ext}, discussed above, +incorporates such adjustments for the rings of cohomology operators it +creates. When we wish to create related rings with some of the same +multi-degrees, we may use the same adjustment operator. + \end{Remark} + +% Local Variables: +% mode: latex +% mode: reftex +% compile-command: "make ci-wrapper.dvi" +% tex-main-file: "ci-wrapper.tex" +% reftex-keep-temporary-buffers: t +% reftex-use-external-file-finders: t +% reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) +% End: +\begin{thebibliography}{10} + +\bibitem{CI:MR86i:55011a} +David~J. Anick: +\newblock A counterexample to a conjecture of {S}erre. +\newblock {\em Ann. of Math. (2)}, 115(1):1--33, 1982\ \,and {116}(3):661, + 1982. + +\bibitem{CI:MR90g:13027} +Luchezar~L. Avramov: +\newblock Modules of finite virtual projective dimension. +\newblock {\em Invent. Math.}, 96(1):71--101, 1989. + +\bibitem{CI:res} +Luchezar~L. Avramov: +\newblock Infinite free resolutions. +\newblock In {\em Six lectures on commutative algebra (Bellaterra, 1996)}, + pages 1--118. Progress in Math., vol 166, Birkh\"auser, Basel, 1998. + +\bibitem{CI:MR1774757} +Luchezar~L. Avramov and Ragnar-Olaf Buchweitz: +\newblock Homological algebra modulo a regular sequence with special attention + to codimension two. +\newblock {\em J. Algebra}, 230(1):24--67, 2000. + +\bibitem{CI:AB2} +Luchezar~L. Avramov and Ragnar-Olaf Buchweitz: +\newblock Support varieties and cohomology over complete intersections. +\newblock {\em Invent. Math.}, 142(2):285--318, 2000. + +\bibitem{CI:MR99c:13033} +Luchezar~L. Avramov, Vesselin~N. Gasharov, and Irena~V. Peeva: +\newblock Complete intersection dimension. +\newblock {\em Inst. Hautes \'Etudes Sci. Publ. Math.}, 86:67--114, 1997. + +\bibitem{CI:AP} +Luchezar~L. Avramov and Irena Peeva: +\newblock Finite regularity and {K}oszul algebras. +\newblock {\em Amer. J. Math}, 123(2):275--281, 2001. + +\bibitem{CI:MR2000e:13021} +Luchezar~L. Avramov and Li-Chuan Sun: +\newblock Cohomology operators defined by a deformation. +\newblock {\em J. Algebra}, 204(2):684--710, 1998. + +\bibitem{CI:MR85a:20004} +Jon~F. Carlson: +\newblock The varieties and the cohomology ring of a module. +\newblock {\em J. Algebra}, 85(1):104--143, 1983. + +\bibitem{CI:MR86b:20009} +Jon~F. Carlson: +\newblock The variety of an indecomposable module is connected. +\newblock {\em Invent. Math.}, 77(2):291--299, 1984. + +\bibitem{CI:Ei} +David Eisenbud: +\newblock Homological algebra on a complete intersection, with an application + to group representations. +\newblock {\em Trans. Amer. Math. Soc.}, 260(1):35--64, 1980. + +\bibitem{CI:MR51:487} +Tor~H. Gulliksen: +\newblock A change of ring theorem with applications to {P}oincar\'e series and + intersection multiplicity. +\newblock {\em Math. Scand.}, 34(1):167--183, 1974. + +\bibitem{CI:Me} +Vikram Mehta: +\newblock {\em Endomorphisms of complexes and modules over {G}olod rings}. +\newblock Thesis. University of California, Berkeley, CA, 1975. + +\bibitem{CI:MR94b:16040} +Jan-Erik Roos: +\newblock Commutative non-{K}oszul algebras having a linear resolution of + arbitrarily high order. {A}pplications to torsion in loop space homology. +\newblock {\em C. R. Acad. Sci. Paris S\'er. I Math.}, 316(11):1123--1128, + 1993. + +\bibitem{CI:Sh} +Jack Shamash: +\newblock The {P}oincar\'e series of a local ring. +\newblock {\em J. Algebra}, 12:453--470, 1969. + +\end{thebibliography} +\egroup +\makeatletter +\renewcommand\thesection{\@arabic\c@section} +\makeatother + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% +%%%%% ../chapters/toricHilbertScheme/chapter +%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\bgroup +\def\A{\mathbb{A}} +\def\k{\mathbb{C}} +\def\N{\mathbb{N}} +\def\R{\mathbb{R}} +\def\P{\mathbb{P}} +\def\ZZ{\mathbb{Z}} + +\title{Algorithms for the Toric Hilbert Scheme} +\titlerunning{Toric Hilbert Schemes} +\toctitle{Algorithms for the Toric Hilbert Scheme} +\author{Michael Stillman + % \inst 1 + \and Bernd Sturmfels + % \inst 2 + \and Rekha Thomas + % \inst 3 + } +\authorrunning{M. Stillman, B. Sturmfels, and R. Thomas} +% \institute{Cornell University, Department of Mathematics, Ithaca, NY 14853, USA +% \and UC Berkeley, Department of Mathematics, Berkeley, CA 94720, USA +% \and University of Washington, Department of Mathematics, Seattle, WA 98195, USA} +\maketitle + +\begin{abstract} +The toric Hilbert scheme parametrizes all algebras isomorphic to a +given semigroup algebra as a multigraded vector space. All components +of the scheme are toric varieties, and among them, there is a fairly +well understood coherent component. It is unknown whether +toric Hilbert schemes are always connected. In this chapter we +illustrate the use of \Mtwo for exploring the structure of toric +Hilbert schemes. In the process we will encounter algorithms from +commutative algebra, algebraic geometry, polyhedral theory and +geometric combinatorics. +\end{abstract} + +\section*{Introduction} +Consider the multigrading of the polynomial ring $R = +\k[x_1,\ldots,x_n]$ specified by a non-negative integer $d \times +n$-matrix $A = (a_1,\ldots,a_n)$ such that degree $(x_i) = a_i \in +\N^d$. This defines a decomposition $\, R = \bigoplus_{b \in \N A} R_b +$, where $\N A$ is the subsemigroup of $\N^d$ spanned by +$a_1,\ldots,a_n$, and $R_b$ is the $\k$-span of all monomials $\, x^u += x_1^{u_1}\cdots x_n^{u_n}$ with degree $Au = a_1 u_1 +\cdots + a_n +u_n = b$. The {\it \ie{toric Hilbert scheme}} $\,Hilb_A +\,$ parametrizes all $A$-homogeneous ideals $I \subset R$ (ideals that +are homogeneous under the multigrading of $R$ by $\N A$) with the +property that $(R/I)_b$ is a $1$-dimensional $\k$-vector space, for all +$b \in \N A$. We call such an ideal $I$ an $A$-{\em graded}\index{ideal!$A$-graded} ideal. +Equivalently, $I$ is $A$-graded if it is $A$-homogeneous and $R/I$ is +isomorphic as a multigraded vector space to the semigroup algebra $\, +\k [ \N A ] = R/I_A$, where $$I_A := \,\langle x^u - x^v \, : \, Au = +Av \rangle \subset R$$ is the {\it \ie{toric ideal}} of $A$. An $A$-graded +ideal is generated by binomials and monomials in $R$ since, by +definition, any two monomials $x^u$ and $x^v$ of the same degree $Au = +Av$ must be $\k$-linearly dependent modulo the ideal. + +We recommend \cite[\S 4, \S 10]{HS:St2} as an introductory reference for the +topics in this chapter. +The study of toric Hilbert schemes for $d=1$ goes back to +Arnold \cite{HS:Arn} and Korkina et al.\cite{HS:KPR}, and it was +further developed by Sturmfels (\cite{HS:St1} and \cite[\S 10]{HS:St2}). +Peeva and Stillman \cite{HS:PS1} introduced the scheme structure +that gives the toric Hilbert scheme its universal property, +and from this they derive a formula for the tangent space +of a point on $\, Hilb_A $. Maclagan recently showed that the +quadratic binomials in \cite[\S 5]{HS:St1} define the same scheme as the +determinantal equations in \cite{HS:PS1}. +Both of these systems of global equations are +generally much too big for +practical computations. Instead, most of our algorithms are based on +the local equations given by Peeva and Stillman in \cite{HS:PS2} +and the combinatorial approach of Maclagan and Thomas in \cite{HS:MT}. + +We begin with the computation of a toric ideal using \Mtwo. Our +running example throughout this chapter is the following $2 \times +5$-matrix: +\begin{equation} +\label{OurMatrix} +A = \left( \begin{matrix} + 1 & 1 & 1 & 1 & 1 \\ + 0 & 1 & 2 & 7 & 8 +\end{matrix} \right), +\end{equation} +which we input to \Mtwo as a list of lists of +integers. +\beginOutput +i1 : A = \{\{1,1,1,1,1\},\{0,1,2,7,8\}\}; \\ +\endOutput +The toric ideal of $A$ lives in the multigraded ring $R := \k [a,b,c,d,e]$. +\beginOutput +i2 : R = QQ[a..e,Degrees=>transpose A]; \\ +\endOutput +\beginOutput +i3 : describe R \\ +\emptyLine +o3 = QQ [a, b, c, d, e, Degrees => \{\{1, 0\}, \{1, 1\}, \{1, 2\}, \{1, 7\}, \{1 $\cdot\cdot\cdot$\\ +\endOutput + +We use Algorithm 12.3 in \cite{HS:St2} to compute $I_A$. The first step is +to find a matrix $B$ whose rows generate the lattice $ker_{\ZZ}(A) +:= \{x \in \ZZ^n : Ax = 0 \}$. + +\beginOutput +i4 : B = transpose syz matrix A \\ +\emptyLine +o4 = | 1 -2 1 0 0 |\\ +\ | 0 5 -6 1 0 |\\ +\ | 0 6 -7 0 1 |\\ +\emptyLine +\ 3 5\\ +o4 : Matrix ZZ <--- ZZ\\ +\endOutput + +Although in theory any basis of $ker_{\ZZ}(A)$ will suffice, in +practice it is more efficient to use a {\em reduced} basis +\cite[\S 6.2]{HS:Sch}, which can be computed using the {\em \ie{basis +reduction}} package {\tt LLL.m2} in \Mtwo. The command {\tt LLL} +when applied to the output of {\tt syz matrix A} will return a +matrix of the same size whose columns form a reduced lattice basis +for $ker_{\ZZ}(A)$. The output appears in compressed form as follows: + +\beginOutput +i5 : load "LLL.m2"; \\ +\endOutput +\beginOutput +i6 : LLL syz matrix A \\ +\emptyLine +o6 = | 0 1 2 |\\ +\ | 1 -1 0 |\\ +\ | -1 0 -3 |\\ +\ | -1 -1 2 |\\ +\ | 1 1 -1 |\\ +\emptyLine +\ 5 3\\ +o6 : Matrix ZZ <--- ZZ\\ +\endOutput + +We recompute $B$ using this package to get the following $3 \times 5$ matrix. +\beginOutput +i7 : B = transpose LLL syz matrix A \\ +\emptyLine +o7 = | 0 1 -1 -1 1 |\\ +\ | 1 -1 0 -1 1 |\\ +\ | 2 0 -3 2 -1 |\\ +\emptyLine +\ 3 5\\ +o7 : Matrix ZZ <--- ZZ\\ +\endOutput + +The advantage of a reduced basis may not be apparent in small +examples. However, as the size of $A$ increases, it becomes +increasingly important for the termination of Algorithm 12.3 in \cite{HS:St2}. (To +appreciate this, consider the matrix (\ref{non-normal}) from +Section~4.) + +A row $b = b^+ - b^-$ of $B$ is then coded as the binomial +$x^{b^+}-x^{b^-} \in R$, and we let $J$ be the ideal generated by all +such binomials. + +\beginOutput +i8 : toBinomial = (b,R) -> (\\ +\ top := 1_R; bottom := 1_R;\\ +\ scan(#b, i -> if b_i > 0 then top = top * R_i^(b_i)\\ +\ else if b_i < 0 then bottom = bottom * R_i^(-b_i));\\ +\ top - bottom); \\ +\endOutput + +\beginOutput +i9 : J = ideal apply(entries B, b -> toBinomial(b,R)) \\ +\emptyLine +\ 2 2 3\\ +o9 = ideal (- c*d + b*e, - b*d + a*e, a d - c e)\\ +\emptyLine +o9 : Ideal of R\\ +\endOutput +The toric ideal equals $(J : (x_1 \cdots x_n)^\infty)$, which is +computed via $n$ successive saturations as follows: +\beginOutput +i10 : scan(gens ring J, f -> J = saturate(J,f))\\ +\endOutput + +Putting the above pieces of code together, we get the following +procedure for computing the toric ideal of a matrix $A$. + +\beginOutput +i11 : toricIdeal = (A) -> (\\ +\ n := #(A_0); \\ +\ R = QQ[vars(0..n-1),Degrees=>transpose A,MonomialSize=>16]; \\ +\ B := transpose LLL syz matrix A;\\ +\ J := ideal apply(entries B, b -> toBinomial(b,R));\\ +\ scan(gens ring J, f -> J = saturate(J,f));\\ +\ J\\ +\ ); \\ +\endOutput + +See \cite{HS:BLR}, \cite{HS:HS} and \cite[\S 4, \S 12]{HS:St2} for other +algorithms for computing toric ideals and various ideas for +speeding up the computation. + +In our example, $I_A = \langle +cd-be,bd-ae,b^2-ac,a^2d^2-c^3e,c^4-a^3e,bc^3-a^3d, +ad^4-c^2e^3,d^6-ce^5 \rangle$, which we now compute using this +procedure. + +\beginOutput +i12 : I = toricIdeal A; \\ +\emptyLine +o12 : Ideal of R\\ +\endOutput + +\beginOutput +i13 : transpose mingens I\\ +\emptyLine +o13 = \{-2, -9\} | cd-be |\\ +\ \{-2, -8\} | bd-ae |\\ +\ \{-2, -2\} | b2-ac |\\ +\ \{-4, -14\} | a2d2-c3e |\\ +\ \{-4, -8\} | c4-a3e |\\ +\ \{-4, -7\} | bc3-a3d |\\ +\ \{-5, -28\} | ad4-c2e3 |\\ +\ \{-6, -42\} | d6-ce5 |\\ +\emptyLine +\ 8 1\\ +o13 : Matrix R <--- R\\ +\endOutput + +This ideal defines an embedding of +$\P^1$ as a degree $8$ curve into $\P^4$. We will see in Section 3 +that its toric Hilbert scheme $Hilb_A$ has a non-reduced component. + +This chapter is organized into four sections and two appendices as +follows. The main goal in Section~1 is to describe an algorithm for +generating all monomial $A$-graded ideals for a given $A$. These +monomial ideals are the vertices of the {\em flip graph} of $A$ whose +connectivity is equivalent to the connectivity of $Hilb_A$. We +describe how all neighbors of a given vertex of this graph can be +calculated. In Section~2, we explain the role of polyhedral geometry +in the study of $Hilb_A$. Our first algorithm tests for {\em +coherence} in a monomial $A$-graded ideal. We then show how to compute +the polyhedral complexes supporting $A$-graded ideals, which in turn +relate the flip graph of $A$ to the {\em \ie{Baues graph}} of $A$. For +unimodular matrices, these two graphs coincide and hence our method of +computing the flip graph can be used to compute the Baues +graph. Section~3 explores the components of $Hilb_A$ via local +equations around the torus fixed points of the scheme. We include a +combinatorial interpretation of these local equations from the point +of view of integer programming. The scheme $Hilb_A$ has a {\em +coherent} component, which is examined in detail in Section~4. We prove +that this component is, in general, not normal and that its +normalization is the toric variety of the Gr\"obner fan of $I_A$. We +conclude the chapter with two appendices, each containing one large +piece of \Mtwo code that we use in this chapter. Appendix \ref{FMe} displays +code from the \Mtwo file {\tt polarCone.m2} that is used to convert a generator +representation of a polyhedron to an inequality representation and +vice versa. Appendix \ref{Mpor} displays code from the file {\tt minPres.m2} used for computing minimal +presentations of polynomial quotient rings. The main ingredient of +this package is the subroutine {\tt removeRedundantVariables}, which is +what we use in this chapter. + +\section{Generating Monomial Ideals} +We start out by computing the {\it \ie{Graver basis}} $Gr_A$, which is the +set of binomials in $I_A$ that are minimal with respect to the +partial order defined by $$\, x^u - x^v \,\leq\, x^{u'} - x^{v'} \quad \iff +\quad \hbox{ $x^u$ divides $x^{u'}$ \ and \ $x^v$ divides $x^{v'}$.} +$$ The set $Gr_A$ is a {\em universal Gr\"obner basis}\index{Grobner basis@Gr\"obner basis!universal} of $I_A$ and +has its origins in the theory of integer programming \cite{HS:Gra}. It +can be computed using \cite[Algorithm 7.2]{HS:St2}, a \Mtwo version of +which is given below. + +\beginOutput +i14 : graver = (I) -> (\\ +\ R := ring I;\\ +\ k := coefficientRing R;\\ +\ n := numgens R;\\ +\ -- construct new ring S with 2n variables\\ +\ S := k[Variables=>2*n,MonomialSize=>16];\\ +\ toS := map(S,R,(vars S)_\{0..n-1\});\\ +\ toR := map(R,S,vars R | matrix(R, \{toList(n:1)\}));\\ +\ -- embed I in S\\ +\ m := gens toS I;\\ +\ -- construct the toric ideal of the Lawrence \\ +\ -- lifting of A\\ +\ i := 0;\\ +\ while i < n do (\\ +\ wts := join(toList(i:0),\{1\},toList(n-i-1:0));\\ +\ wts = join(wts,wts);\\ +\ m = homogenize(m,S_(n+i),wts);\\ +\ i=i+1;\\ +\ );\\ +\ J := ideal m;\\ +\ scan(gens ring J, f -> J = saturate(J,f));\\ +\ -- apply the map toR to the minimal generators of J \\ +\ f := matrix entries toR mingens J;\\ +\ p := sortColumns f;\\ +\ f_p) ; \\ +\endOutput + + The above piece of code first constructs a new polynomial ring $S$ + in $n$ more variables than $R$. Assume $S = \k [x_1, \ldots, x_n, + y_1, \ldots, y_n]$. The inclusion map {\tt toS} $: R \rightarrow + S$ embeds the toric ideal $I$ in $S$ and collects its generators in + the matrix {\tt m}. A binomial $x^a - x^b$ lies in $Gr_A$ if and only + if $x^ay^b-x^by^a$ is a minimal generator of the toric ideal in $S$ + of the $(d+n) \times 2n$ matrix $$\Lambda(A) := \left ( + \begin{array}{cc} A & 0 \\ I_n & I_n \end{array} \right),$$ which + is called the {\em \ie{Lawrence lifting}} of $A$. Since $u \in + ker_{\ZZ}(A) \Leftrightarrow (u,-u) \in ker_{\ZZ} (\Lambda(A))$, we + use the {\tt while}\indexcmd{while} loop to homogenize the binomials in {\tt m} with + respect to $\Lambda(A)$, using the $n$ new variables in $S$. This + converts a binomial $x^a-x^b \in$ {\tt m} to the binomial + $x^ay^b-x^by^a$. The ideal generated by these new binomials is + labeled $J$. As before, we can now successively saturate $J$ + to get the toric ideal of $\Lambda(A)$ in $S$. The image of the + minimal generators of this toric ideal under the map {\tt toR} + $: S \rightarrow R$ such that $x_i \mapsto x_i$ and $y_i \mapsto 1$ + is precisely the Graver basis $Gr_A$. These binomials are the + entries of the matrix {\tt f} and is output by the program. + +In our example $Gr_A$ consists of $42$ binomials. +\beginOutput +i15 : Graver = graver I \\ +\emptyLine +o15 = | -cd+be -bd+ae -b2+ac -cd2+ae2 -a2d2+c3e -c4+a2bd -c4+a3e -bc3+ $\cdot\cdot\cdot$\\ +\emptyLine +\ 1 42\\ +o15 : Matrix R <--- R\\ +\endOutput + + +Returning to the general case, an element $b $ of $\N A$ is called a +{\it \ie{Graver degree}} if there exists a binomial $x^u - x^v$ in the +Graver basis $Gr_A$ such that $Au = Av = b$. If $b$ is a Graver degree +then the set of monomials in $R_b$ is the corresponding {\it \ie{Graver + fiber}}. In our running example there are $37$ distinct Graver +fibers. We define the {\tt ProductIdeal} of $A$ as $PI := +\langle x^ax^b : x^a-x^b \in Gr_A \rangle$. This ideal is contained in +every monomial ideal of $Hilb_A$ and hence no monomial in $PI$ can be +a standard monomial of a monomial $A$-graded ideal. Since our purpose +in constructing Graver fibers is to use them to +generate all monomial $A$-graded ideals, we will be content with +listing just the monomials in each Graver fiber that do not lie in +$PI$. Since $R$ is multigraded by $A$, we can obtain such a +presentation of a Graver fiber by simply asking for the basis of $R$ +in degree $b$ modulo $PI$. + +\beginOutput +i16 : graverFibers = (Graver) -> (\\ +\ ProductIdeal := (I) -> ( trim ideal(\\ +\ apply(numgens I, a -> ( \\ +\ f := I_a; leadTerm f * (leadTerm f - f))))); \\ +\ PI := ProductIdeal ideal Graver; \\ +\ R := ring Graver; \\ +\ new HashTable from apply(\\ +\ unique degrees source Graver,\\ +\ d -> d => compress (basis(d,R) {\char`\%} PI) ));\\ +\endOutput + +\beginOutput +i17 : fibers = graverFibers Graver \\ +\emptyLine +o17 = HashTable\{\{2, 2\} => | ac b2 | \}\\ +\ \{2, 8\} => | ae bd |\\ +\ \{2, 9\} => | be cd |\\ +\ \{3, 16\} => | ae2 bde cd2 |\\ +\ \{4, 14\} => | a2d2 c3e |\\ +\ \{4, 7\} => | a3d bc3 |\\ +\ \{4, 8\} => | a3e a2bd c4 |\\ +\ \{5, 10\} => | a3ce a2b2e a2bcd ab3d c5 |\\ +\ \{5, 14\} => | a3d2 ac3e b2c2e bc3d |\\ +\ \{5, 16\} => | a3e2 a2cd2 ab2d2 c4e |\\ +\ \{5, 21\} => | a2d3 bc2e2 c3de |\\ +\ \{5, 22\} => | a2d2e abd3 c3e2 |\\ +\ \{5, 28\} => | ad4 c2e3 |\\ +\ \{5, 7\} => | a4d abc3 b3c2 |\\ +\ \{5, 8\} => | a4e a3bd ac4 b2c3 |\\ +\ \{6, 12\} => | a3c2e a2bc2d ab4e b5d c6 |\\ +\ \{6, 14\} => | a4d2 a2c3e abc3d b4ce b3c2d |\\ +\ \{6, 18\} => | a3ce2 a2b2e2 a2c2d2 b4d2 c5e |\\ +\ \{6, 21\} => | a3d3 abc2e2 ac3de b3ce2 bc3d2 |\\ +\ \{6, 24\} => | a3e3 a2cd2e abcd3 b3d3 c4e2 |\\ +\ \{6, 28\} => | a2d4 ac2e3 b2ce3 c3d2e |\\ +\ \{6, 30\} => | a2d2e2 acd4 b2d4 c3e3 |\\ +\ \{6, 35\} => | ad5 bce4 c2de3 |\\ +\ \{6, 36\} => | ad4e bd5 c2e4 |\\ +\ \{6, 42\} => | ce5 d6 |\\ +\ \{6, 7\} => | a5d a2bc3 b5c |\\ +\ \{6, 8\} => | a5e a4bd a2c4 b4c2 |\\ +\ \{7, 14\} => | a5d2 a3c3e a2bc3d b6e b5cd c7 |\\ +\ \{7, 21\} => | a4d3 a2bc2e2 a2c3de abc3d2 b5e2 b3c2d2 |\\ +\ \{7, 28\} => | a3d4 a2c2e3 ac3d2e b4e3 bc3d3 |\\ +\ \{7, 35\} => | a2d5 abce4 ac2de3 b3e4 c3d3e |\\ +\ \{7, 42\} => | ace5 ad6 b2e5 c2d2e3 |\\ +\ \{7, 49\} => | be6 cde5 d7 |\\ +\ \{7, 7\} => | a6d a3bc3 b7 |\\ +\ \{7, 8\} => | a6e a5bd a3c4 b6c |\\ +\ \{8, 56\} => | ae7 bde6 cd2e5 d8 |\\ +\ \{8, 8\} => | a7e a6bd a4c4 b8 |\\ +\emptyLine +o17 : HashTable\\ +\endOutput + +For example, the Graver degree $(8,8)$ corresponds to the Graver fiber +$$ \bigl\{\, +\underline{a^7 e}, \, \underline{a^6 b d},\, \underline{a^4 c^4}, \, +a^3 b^2 c^3,\, a^2 b^4 c^2,\, a b^6 c, \, \underline{b^8} \,\bigr\}.$$ +Our \Mtwo code outputs only the four underlined monomials, +in the format {\tt | a7e a6bd a4c4 b8 |}. The three non-underlined +monomials lie in the {\tt ProductIdeal}. Graver degrees are +important because of the following result. + +\begin{lemma}[{\cite[Lemma 10.5]{HS:St2}}] +The multidegree of any minimal generator of any ideal +$I$ in $Hilb_A$ is a Graver degree. +\end{lemma} + +The next step in constructing the toric Hilbert scheme is to compute +all its fixed points with respect to the scaling action of the +$n$-dimensional algebraic torus $(\k^*)^n$. (The torus $(\k^{\ast})^n$ +acts on $R$ by scaling variables : $\lambda \mapsto \lambda \cdot x := +(\lambda_1 x_1, \ldots, \lambda_n x_n)$.) These fixed points are the +monomial ideals $M$ lying on $Hilb_A$. Every term order $\prec$ on +the polynomial ring $R$ gives such a monomial ideal: $M = in_\prec(I_A +)$, the initial ideal of the toric ideal $I_A$ with respect to +$\prec$. Two ideals $J$ and $J'$ are said to be {\em torus + isomorphic}\index{ideal!torus isomorphism} +if $J = \lambda \cdot J'$ for some $\lambda \in (\k^{\ast})^n$. Any +monomial $A$-graded ideal that is torus isomorphic to an initial ideal +of $I_A$ is said to be {\em coherent}\index{ideal!coherent}. In particular, the initial +ideals of $I_A$ are coherent and they can be computed by +\cite[Algorithm 3.6]{HS:St2} applied to $I_A$. A refinement and fast +implementation can be found in the software package {\tt TiGERS} by +Huber and Thomas \cite{HS:HT}. + +Now we wish to compute all monomial ideals $M$ on $Hilb_A$ regardless +of whether $M$ is coherent or not. For this we use the procedure +{\tt generateAmonos} given below. This procedure takes in the Graver +basis $Gr_A$ and records the numerator of the Hilbert series of $I_A$ +in {\tt trueHS}. It then computes the Graver fibers of $A$, sorts them +and calls the subroutine {\tt selectStandard} to generate a +candidate for a monomial ideal on $Hilb_A$. + +\beginOutput +i18 : generateAmonos = (Graver) -> (\\ +\ trueHS := poincare coker Graver;\\ +\ fibers := graverFibers Graver;\\ +\ fibers = apply(sort pairs fibers, last);\\ +\ monos = \{\};\\ +\ selectStandard := (fibers, J) -> (\\ +\ if #fibers == 0 then (\\ +\ if trueHS == poincare coker gens J\\ +\ then (monos = append(monos,flatten entries mingens J));\\ +\ ) else (\\ +\ P := fibers_0;\\ +\ fibers = drop(fibers,1);\\ +\ P = compress(P {\char`\%} J);\\ +\ nP := numgens source P; \\ +\ -- nP is the number of monomials not in J.\\ +\ if nP > 0 then (\\ +\ if nP == 1 then selectStandard(fibers,J)\\ +\ else (--remove one monomial from P,take the rest.\\ +\ P = flatten entries P;\\ +\ scan(#P, i -> (\\ +\ J1 := J + ideal drop(P,\{i,i\});\\ +\ selectStandard(fibers, J1)))));\\ +\ ));\\ +\ selectStandard(fibers, ideal(0_(ring Graver)));\\ +\ ) ; \\ +\endOutput + +The arguments to the subroutine {\tt selectStandard} +are the Graver fibers given as a list of matrices and a monomial +ideal $J$ that should be included in every $A$-graded ideal +that we generate. The subroutine then loops through each Graver fiber, +and at each step selects a standard monomial from that fiber and +updates the ideal $J$ by adding the other monomials in this fiber +to $J$. The final $J$ output by the subroutine is the candidate ideal +that is sent back to {\tt generateAmonos}. It is stored by the program +if its Hilbert series agrees with that of $I_A$. +All the monomial $A$-graded ideals are stored in the list {\tt monos}. +Below, we ask \Mtwo for the cardinality of {\tt monos} and its +first ten elements. +\beginOutput +i19 : generateAmonos Graver;\\ +\endOutput +\beginOutput +i20 : #monos \\ +\emptyLine +o20 = 281\\ +\endOutput +\beginOutput +i21 : scan(0..9, i -> print toString monos#i) \\ +\{c*d, b*d, b^2, c^3*e, c^4, b*c^3, c^2*e^3, b*c^2*e^2, b*c*e^4, d^6\}\\ +\{c*d, b*d, b^2, c^3*e, c^4, b*c^3, c^2*e^3, b*c^2*e^2, c*e^5, b*c*e^4, $\cdot\cdot\cdot$\\ +\{c*d, b*d, b^2, c^3*e, c^4, b*c^3, c^2*e^3, b*c^2*e^2, c*e^5, b*c*e^4, $\cdot\cdot\cdot$\\ +\{c*d, b*d, b^2, c^3*e, c^4, b*c^3, c^2*e^3, b*c^2*e^2, c*e^5, b*c*e^4, $\cdot\cdot\cdot$\\ +\{c*d, b*d, b^2, c^3*e, c^4, b*c^3, c^2*e^3, b*c^2*e^2, d^6, a*d^5\}\\ +\{c*d, b*d, b^2, c^3*e, c^4, b*c^3, b*c^2*e^2, a*d^4, d^6\}\\ +\{c*d, b*d, b^2, c^3*e, c^4, b*c^3, a*d^4, a^2*d^3, d^6\}\\ +\{c*d, b*d, b^2, a^2*d^2, c^4, b*c^3, a*d^4, d^6\}\\ +\{c*d, b*d, b^2, a^2*d^2, a^3*d, c^4, a*d^4, d^6\}\\ +\{c*d, b*d, b^2, a^3*e, a^2*d^2, a^3*d, a*d^4, d^6\}\\ +\endOutput + +The monomial ideals (torus-fixed points) on $Hilb_A$ form the vertices +of the {\it \ie{flip graph}} of $A$ whose edges correspond to the +torus-fixed curves on $Hilb_A$. This graph was introduced in \cite{HS:MT} +and provides structural information about $Hilb_A$. The edges +emanating from a monomial ideal $M$ can be constructed as follows: +For any minimal generator $x^u$ of $M$, let $x^v$ be the unique +monomial with $x^v \not\in M$ and $Au = Av$. Form the {\it \ie{wall ideal}}, +which is generated by $x^u - x^v$ and all minimal generators of $M$ +other than $x^u$, and let $M'$ be the initial monomial ideal of the +wall ideal with respect to any term order $\succ$ for which $x^v \succ +x^u$. It can be shown that $M'$ is the unique initial monomial ideal +of the wall ideal that contains $x^v$. If $M'$ lies on $Hilb_A$ then +$\{M, M'\}$ is an edge of the flip graph. We now illustrate the \Mtwo +procedure for computing all flip neighbors of a monomial $A$-graded +ideal. + +\beginOutput +i22 : findPositiveVector = (m,s) -> (\\ +\ expvector := first exponents s - first exponents m;\\ +\ n := #expvector;\\ +\ i := first positions(0..n-1, j -> expvector_j > 0);\\ +\ splice \{i:0, 1, (n-i-1):0\}\\ +\ );\\ +\endOutput + +\beginOutput +i23 : flips = (M) -> (\\ +\ R := ring M;\\ +\ -- store generators of M in monoms\\ +\ monoms := first entries generators M;\\ +\ result := \{\};\\ +\ -- test each generator of M to see if it leads to a neighbor \\ +\ scan(#monoms, i -> (\\ +\ m := monoms_i;\\ +\ rest := drop(monoms,\{i,i\});\\ +\ b := basis(degree m, R);\\ +\ s := (compress (b {\char`\%} M))_(0,0);\\ +\ J := ideal(m-s) + ideal rest;\\ +\ if poincare coker gens J == poincare coker gens M then (\\ +\ w := findPositiveVector(m,s);\\ +\ R1 := (coefficientRing R)[generators R, Weights=>w];\\ +\ J = substitute(J,R1);\\ +\ J = trim ideal leadTerm J;\\ +\ result = append(result,J);\\ +\ )));\\ +\ result\\ +\ );\\ +\endOutput + +The code above inputs a monomial $A$-graded ideal $M$ whose minimal +generators are stored in the list {\tt monoms}. The flip neighbors of +$M$ will be stored in {\tt result}. For each monomial $x^u$ in {\tt +monoms} we need to test whether it yields a flip neighbor of $M$ or +not. At the $i$-th step of this loop, we let {\tt m} be the $i$-th +monomial in {\tt monoms}. The list {\tt rest} contains all monomials +in {\tt monoms} except {\tt m}. We compute the standard monomial {\tt +s} of $M$ of the same degree as $m$. The wall ideal of $m-s$ is the +binomial ideal $J$ generated by $m-s$ and the monomials in {\tt +rest}. We then check whether $J$ is $A$-graded by comparing its +Hilbert series with that of $M$. (Alternately, one could check whether +$M$ is the initial ideal of the wall ideal with respect to $m \succ +s$.) If this is the case, we use the subroutine {\tt +findPositiveVector} to find a unit vector $w = (0,\ldots,1,\ldots,0)$ +such that $w \cdot s > w \cdot m$. The flip neighbor is then the +initial ideal of $J$ with respect to $w$ and it is stored in {\tt +result}. The program outputs the minimal generators of each flip +neighbor. Here is an example. + +\beginOutput +i24 : R = QQ[a..e,Degrees=>transpose A];\\ +\endOutput +\beginOutput +i25 : M = ideal(a*e,c*d,a*c,a^2*d^2,a^2*b*d,a^3*d,c^2*e^3,\\ +\ c^3*e^2,c^4*e,c^5,c*e^5,a*d^5,b*e^6);\\ +\emptyLine +o25 : Ideal of R\\ +\endOutput +\beginOutput +i26 : F = flips M\\ +\emptyLine +\ 2 2 3 4 2 3 3 2 5 5 $\cdot\cdot\cdot$\\ +o26 = \{ideal (a*e, c*d, a*c, a d , a d, c , c e , c e , a*d , c*e , b* $\cdot\cdot\cdot$\\ +\emptyLine +o26 : List\\ +\endOutput +\beginOutput +i27 : #F\\ +\emptyLine +o27 = 4\\ +\endOutput +\beginOutput +i28 : scan(#F, i -> print toString entries mingens F_i)\\ +\{\{a*e, c*d, a*c, a^2*d^2, a^3*d, c^4, c^2*e^3, c^3*e^2, a*d^5, c*e^5, $\cdot\cdot\cdot$\\ +\{\{c*d, a*e, a*c, a^2*d^2, a^2*b*d, a^3*d, c^3*e^2, c^4*e, c^5, a*d^4, $\cdot\cdot\cdot$\\ +\{\{a*e, c*d, a*c, a^2*d^2, a^3*d, a^2*b*d, c^2*e^3, c^3*e^2, c^4*e, c^5 $\cdot\cdot\cdot$\\ +\{\{a*e, a*c, c*d, a^2*b*d, a^3*d, a^2*d^2, c^2*e^3, c^3*e^2, c^4*e, c^5 $\cdot\cdot\cdot$\\ +\endOutput + +It is an open problem whether the toric Hilbert scheme $Hilb_A$ is +connected. Recent work in geometric combinatorics \cite{HS:San} suggests +that this is probably false for some $A$. This result and its +implications for $Hilb_A$ will be discussed further in Section 2. +The following theorem of Maclagan and Thomas \cite{HS:MT} reduces the +connectivity of $Hilb_A$ to a combinatorial problem. + +\begin{theorem} +The toric Hilbert scheme $Hilb_A$ is connected if and only if the +flip graph of $A$ is connected. +\end{theorem} + +We now have two algorithms for listing monomial ideals on $Hilb_A$. +First, there is the {\it \ie{backtracking algorithm}} whose \Mtwo +implementation was described above. Second, there is the {\it \ie{flip + search algorithm}}, which starts with any coherent monomial ideal $M$ +and then constructs the connected component of $M$ in the flip graph +of $A$ by carrying out local flips as above. This procedure is also +implemented in {\tt TiGERS} \cite{HS:HT}. Clearly, the two algorithms +will produce the same answer if and only if $Hilb_A$ is connected. In +other words, finding an example where $Hilb_A$ is disconnected is +equivalent to finding a matrix $A$ for which the flip search algorithm +produces fewer monomial ideals than the backtracking algorithm. + +\section{Polyhedral Geometry} + +Algorithms from polyhedral geometry are essential in the study of the +toric Hilbert scheme. Consider the problem of deciding whether or not +a given monomial ideal $M$ in $Hilb_A$ is coherent. This problem +gives rise to a system of linear inequalities as follows: Let +$x^{u_1}, \ldots, x^{u_r}$ be the minimal generators of $M$, and let +$x^{v_i}$ be the unique standard monomial with $A u_i = A v_i$. Then +$M$ is coherent if and only if there exists a vector $w \in \R^n$ such +that $\,w \cdot (u_i - v_i) > 0\,$ for $i =1,\ldots,r$. Thus the test +for coherence amounts to solving a {\sl feasibility problem of linear +programming}, and there are many highly efficient algorithms (based on +the simplex algorithms or interior point methods) available for this +task. For our experimental purposes, it is convenient to use the code +{\tt polarCone.m2}, given in Appendix \ref{FMe}, which is based on the +(inefficient but easy-to-implement) {\em \ie{Fourier-Motzkin elimination}} +method (see \cite{HS:Zie} for a description). This code converts the +generator representation of a polyhedron to its inequality +representation and vice versa. A simple example is given in Appendix +\ref{FMe}. In particular, given a Gr\"obner basis $\mathcal G$ of $I_A$, the +function {\tt polarCone} will compute all the extreme rays of the {\em +Gr\"obner cone\index{Grobner cone@Gr\"obner cone}} $\,\{ w \in \R^n \,: \,w \cdot (u_i - v_i) \geq 0\,$ +for each $x^{u_i}-x^{v_i} \in {\mathcal G}\}.$ + +We now show how to use \Mtwo to decide whether a +monomial $A$-graded ideal $M$ is coherent. The first step in +this calculation is to compute all the standard monomials of $M$ +of the same degree as the minimal generators of $M$. We do this +using the procedure {\tt stdMonomials}. + +\beginOutput +i29 : stdMonomials = (M) -> (\\ +\ R := ring M;\\ +\ RM := R/M;\\ +\ apply(numgens M, i -> (\\ +\ s := basis(degree(M_i),RM); lift(s_(0,0), R)))\\ +\ ); \\ +\endOutput + +As an example, consider the following monomial $A$-graded ideal. + +\beginOutput +i30 : R = QQ[a..e,Degrees => transpose A ]; \\ +\endOutput +\beginOutput +i31 : M = ideal(a^3*d, a^2*b*d, a^2*d^2, a*b^3*d, a*b^2*d^2, a*b*d^3, \\ +\ a*c, a*d^4, a*e, b^5*d, b^4*d^2, b^3*d^3, b^2*d^4, \\ +\ b*d^5, b*e, c*e^5); \\ +\emptyLine +o31 : Ideal of R\\ +\endOutput +\beginOutput +i32 : toString stdMonomials M \\ +\emptyLine +o32 = \{b*c^3, c^4, c^3*e, c^5, c^4*e, c^3*e^2, b^2, c^2*e^3, b*d, c^6, $\cdot\cdot\cdot$\\ +\endOutput + +From the pairs $x^u,x^v$ of minimal generators $x^u$ and +the corresponding standard monomials $x^v$, the function {\tt inequalities} +creates a matrix whose columns are the vectors $u-v$. + +\beginOutput +i33 : inequalities = (M) -> (\\ +\ stds := stdMonomials(M);\\ +\ transpose matrix apply(numgens M, i -> (\\ +\ flatten exponents(M_i) - \\ +\ flatten exponents(stds_i)))); \\ +\endOutput +\beginOutput +i34 : inequalities M\\ +\emptyLine +o34 = | 3 2 2 1 1 1 1 1 1 0 0 0 0 0 0 0 |\\ +\ | -1 1 0 3 2 1 -2 0 -1 5 4 3 2 1 1 0 |\\ +\ | -3 -4 -3 -5 -4 -3 1 -2 0 -6 -5 -4 -3 -2 -1 1 |\\ +\ | 1 1 2 1 2 3 0 4 -1 1 2 3 4 5 -1 -6 |\\ +\ | 0 0 -1 0 -1 -2 0 -3 1 0 -1 -2 -3 -4 1 5 |\\ +\emptyLine +\ 5 16\\ +o34 : Matrix ZZ <--- ZZ\\ +\endOutput + +It is convenient to simplify the output of the next procedure +using the following program to divide an integer vector +by the g.c.d. of its components. We also load {\tt polarCone.m2}, +which is needed in {\tt decideCoherence} below. + +\beginOutput +i35 : primitive := (L) -> (\\ +\ n := #L-1; g := L#n;\\ +\ while n > 0 do (n = n-1; g = gcd(g, L#n););\\ +\ if g === 1 then L else apply(L, i -> i // g));\\ +\endOutput + +\beginOutput +i36 : load "polarCone.m2" \\ +\endOutput + +\beginOutput +i37 : decideCoherence = (M) -> (\\ +\ ineqs := inequalities M;\\ +\ c := first polarCone ineqs;\\ +\ m := - sum(numgens source c, i -> c_\{i\});\\ +\ prods := (transpose m) * ineqs;\\ +\ if numgens source prods != numgens source compress prods\\ +\ then false else primitive (first entries transpose m)); \\ +\endOutput + +Let $K$ be the cone $\{x \in {\mathbb R}^n : g \cdot x \leq 0$, +for all columns $g$ of {\tt ineqs} \}. The command {\tt +polarCone ineqs} computes a pair of matrices $P$ and $Q$ such +that $K$ is the sum of the cone generated by the columns of $P$ +and the subspace generated by the columns of $Q$. Let {\tt m} be +the negative of the sum of the columns of $P$. Then {\tt m} lies +in the cone $-K$. The entries in the matrix {\tt prods} are the +dot products $g \cdot m$ for each column $g$ of {\tt ineqs}. +Since $M$ is a monomial $A$-graded ideal, it is coherent if and +only if $K$ is full dimensional, which is the case if and only if +no dot product $g \cdot m$ is zero. This is the conditional in +the {\tt if .. then} statement of {\tt decideCoherence}. If $M$ +is coherent, the program outputs the primitive representative of +{\tt m} and otherwise returns the boolean {\tt false}. Notice that +if $M$ is coherent, the cone $-K$ is the Gr\"obner cone corresponding +to $M$ and the vector {\tt m} is a weight vector $w$ such that +$in_w(I_A) = M$. We now test whether the ideal $M$ from +line {\tt i29} is coherent. + +\beginOutput +i38 : decideCoherence M\\ +\emptyLine +o38 = \{0, 0, 1, 15, 18\}\\ +\emptyLine +o38 : List\\ +\endOutput + +Hence, $M$ is coherent: it is the initial ideal with respect to the +weight vector $w = (0,0,1,15,18)$ of the toric ideal in our running +example (\ref{OurMatrix}). Here is one of the 55 noncoherent +monomial $A$-graded ideals of this matrix. + +\beginOutput +i39 : N = ideal(a*e,c*d,a*c,c^3*e,a^3*d,c^4,a*d^4,a^2*d^3,c*e^5,\\ +\ c^2*e^4,d^7);\\ +\emptyLine +o39 : Ideal of R\\ +\endOutput +\beginOutput +i40 : decideCoherence N\\ +\emptyLine +o40 = false\\ +\endOutput + +In the rest of this section, we study the connection between +$A$-graded ideals and polyhedral complexes defined on $A$. This study +relates the flip graph of the toric Hilbert scheme to the Baues +graph of the configuration $A$. (See \cite{HS:Reiner} for a +survey of the Baues problem and its relatives). Let $pos(A) := \{ Au +: u \in \R^n, u \geq 0 \}$ be the cone generated by the columns of $A$ +in $\R^d$. A {\em \ie{polyhedral subdivision}} $\Delta$ of $A$ is a +collection of full dimensional subcones $pos(A_{\sigma})$ of $pos(A)$ +such that the union of these subcones is $pos(A)$ and the intersection +of any two subcones is a face of each. Here $A_{\sigma} := \{a_j : j +\in \sigma \subseteq \{1,\ldots,n\} \}$. It is customary to identify +$\Delta$ with the set of sets $\{ \sigma : pos(A_{\sigma}) \in \Delta +\}$. If every cone in the +subdivision $\Delta$ is simplicial (the number of extreme rays of the +cone equals the dimension of the cone), we say that $\Delta$ is a {\em + \ie{triangulation}} of $A$. The simplicial complex corresponding +to a triangulation $\Delta$ is uniquely obtained by including in +$\Delta$ all the subsets of every $\sigma \in \Delta$. We refer the +reader to \cite[\S 8]{HS:St2} for more details. + +For each $\sigma \in \Delta$, let $I_{\sigma}$ be the prime ideal +that is the sum of the toric ideal $I_{A_{\sigma}}$ and the monomial +ideal $\langle x_j :j \not \in \sigma \rangle$. Recall that two +ideals $J$ and $J'$ are said to be +{\em torus isomorphic} if $J = \lambda \cdot J'$ for some $\lambda \in +(\k^{\ast})^n$. The following theorem shows that polyhedral +subdivisions of $A$ are related to $A$-graded ideals via their +radicals. + +\begin{theorem}[Theorem~10.10 {\cite[\S 10]{HS:St2}}]\label{polysubdivisions} + If $I$ is an $A$-graded ideal, then there exists a polyhedral + subdivision $\Delta(I)$ of $A$ such that $\sqrt{I} = \cap_{\sigma + \in \Delta(I)} J_{\sigma}$ where each component $J_{\sigma}$ is a + prime ideal that is torus isomorphic to $I_{\sigma}$. +\end{theorem} + +We say that $\Delta(I)$ supports the $A$-graded ideal $I$. +When $M$ is a monomial $A$-graded ideal, $\Delta(M)$ is a +triangulation of $A$. In particular, if $M$ is coherent (i.e, $M = +in_w(I_A)$ for some weight vector $w$), then $\Delta(M)$ is the {\em + regular} or {\em coherent} triangulation\index{triangulation!regular} of $A$ induced by $w$ +\cite[\S 8]{HS:St2}. The coherent triangulations of $A$ are in bijection +with the vertices of the {\em \ie{secondary polytope}} of $A$ \cite{HS:BFS}, +\cite{HS:GKZ}. + +It is convenient to represent a triangulation $\Delta$ of $A$ by its +{\em Stanley-Reisner} ideal\index{Stanley-Reisner ideal} $I_{\Delta} := \langle x_{i_1}x_{i_2} +\cdots x_{i_k} : \{ i_1, i_2, \ldots, i_k \}$ is a non-face of +$\Delta \rangle$. If $M$ is a monomial $A$-graded ideal, +Theorem~\ref{polysubdivisions} implies that $I_{\Delta(M)}$ is the +radical of $M$. Hence we will represent triangulations +of $A$ by their Stanley-Reisner ideals. As seen below, the matrix in +our running example has eight distinct triangulations +corresponding to the eight distinct radicals of the 281 monomial +$A$-graded ideals computed earlier. All eight are coherent. + +\medskip + +\begin{tabular}{lll} +{$\{\{1,2\},\{2,3\},\{3,4\},\{4,5\}\}$} +&\,\,\,\,$\leftrightarrow$\,\,\,\,& $\langle ac, ad, ae, bd, be, ce +\rangle$ \\ +{$\{\{1,3\},\{3,4\},\{4,5\}\}$} &\,\,\,\,$\leftrightarrow$\,\,\,\,& +$\langle b, ad, ae, ce \rangle$ \\ +{$\{\{1,2\},\{2,4\},\{4,5\}\}$} &\,\,\,\,$\leftrightarrow$\,\,\,\,& +$\langle c, ad, ae, be \rangle$ \\ +{$\{\{1,2\},\{2,3\},\{3,5\}\}$} &\,\,\,\,$\leftrightarrow$\,\,\,\,& +$\langle d, ac, ae, be \rangle$ \\ +{$\{\{1,3\},\{3,5\}\}$} &\,\,\,\,$\leftrightarrow$\,\,\,\,& $\langle +b, d, ae \rangle$ \\ +{$\{\{1,4\},\{4,5\}\}$} &\,\,\,\,$\leftrightarrow$\,\,\,\,& $\langle +b, c, ae \rangle$ \\ +{$\{\{1,2\},\{2,5\}\}$} &\,\,\,\,$\leftrightarrow$\,\,\,\,& $\langle +c, d, ae \rangle$ \\ +{$\{\{1,5\}\}$} &\,\,\,\,$\leftrightarrow$\,\,\,\,& $\langle b, c, d +\rangle$ +\end{tabular} + +\medskip + +The Baues graph of $A$ is a graph on all the triangulations of +$A$ in which two triangulations are adjacent if they differ by a +single {\em \ie{bistellar flip}} \cite{HS:Reiner}. The {\em \ie{Baues problem}} from +discrete geometry asked whether the Baues graph of a point +configuration can be disconnected for some $A$. Every edge of the +secondary polytope of $A$ corresponds to a bistellar flip, and hence +the subgraph of the Baues graph that is induced by the coherent +triangulations of $A$ is indeed connected: it is precisely the edge +graph of the secondary polytope of $A$. The Baues problem was +recently settled by Santos \cite{HS:San} who gave an example of a six +dimensional point configuration with $324$ points for which there is +an isolated (necessarily non-regular) triangulation. + +Santos' configuration would also have a disconnected flip graph and hence +a disconnected toric Hilbert scheme if it were true that {\em every} +triangulation of $A$ supports a monomial $A$-graded +ideal. However, Peeva has shown that this need not be the case +(Theorem~10.13 in \cite[\S 10]{HS:St2}). Hence, the map from the set of +all monomial $A$-graded ideals to the set of all triangulations of +$A$ that sends $M \mapsto \Delta(M)$ is not always +surjective, and it is unknown whether Santos' $6 \times 324$ +configuration has a disconnected toric Hilbert scheme. + +Thus, even though one cannot in general conclude that the existence of +a disconnected Baues graph implies the existence of a disconnected +flip graph, there is an important special situation in which such a +conclusion is possible. We call an integer matrix $A$ of full row rank +{\em unimodular}\index{matrix!unimodular} if the absolute value of each of its non-zero maximal +minors is the same constant. A matrix $A$ is unimodular if and only if +every monomial $A$-graded ideal is square-free. For a unimodular +matrix $A$, the Baues graph of $A$ coincides with the flip graph of +$A$. As you might expect, Santos' configuration is not unimodular. + +\begin{theorem}[Lemma~10.14 {\cite[\S 10]{HS:St2}}]\label{unimodular} +If $A$ is unimodular, then each triangulation of $A$ supports a unique +(square-free) monomial $A$-graded ideal. In this case, a monomial +$A$-graded ideal is coherent if and only if the triangulation +supporting it is coherent. +\end{theorem} + +Using Theorem~\ref{unimodular} we can compute all the triangulations +of a unimodular matrix since they are precisely the polyhedral +complexes supporting monomial $A$-graded ideals. Then we could +enumerate the connected component of a coherent monomial $A$-graded +ideal in the flip graph of $A$ to decide whether the Baues/flip graph +is disconnected. + +Let $\Delta_r$ be the standard $r$-simplex that +is the convex hull of the $r+1$ unit vectors in $\R^{r+1}$, and let +$A(r,s)$ be the $(r+s+2) \times (r+1)(s+1)$ matrix whose columns +are the products of the vertices of $\Delta_r$ and $\Delta_s$. All +matrices of type $A(r,s)$ are unimodular. From the +product of two triangles we get $$A(2,2) := +\left ( \begin{array}{ccccccccc} +1&1&1&0&0&0&0&0&0\\ +0&0&0&1&1&1&0&0&0\\ +0&0&0&0&0&0&1&1&1\\ +1&0&0&1&0&0&1&0&0\\ +0&1&0&0&1&0&0&1&0\\ +0&0&1&0&0&1&0&0&1 \end{array} \right ).$$ +We can now use our algebraic algorithms to compute all +the triangulations of $A(2,2)$. Since \Mtwo requires the first entry +of the degree of every variable in a ring to be positive, we use +the following matrix with the same row space as $A(2,2)$ for our +computation: + +\beginOutput +i41 : A22 =\\ +\ \{\{1,1,1,1,1,1,1,1,1\},\{0,0,0,1,1,1,0,0,0\},\{0,0,0,0,0,0,1,1,1\},\\ +\ \{1,0,0,1,0,0,1,0,0\},\{0,1,0,0,1,0,0,1,0\},\{0,0,1,0,0,1,0,0,1\}\}; \\ +\endOutput +\beginOutput +i42 : I22 = toricIdeal A22\\ +\emptyLine +o42 = ideal (f*h - e*i, c*h - b*i, f*g - d*i, e*g - d*h, c*g - a*i, b* $\cdot\cdot\cdot$\\ +\emptyLine +o42 : Ideal of R\\ +\endOutput +The ideal {\tt I22} is generated by the 2 by 2 minors of a 3 by 3 +matrix of indeterminates. This is the ideal of $\P^2 \times \P^2$ +embedded in $\P^8$ via the Segre embedding. +\beginOutput +i43 : Graver22 = graver I22;\\ +\emptyLine +\ 1 15\\ +o43 : Matrix R <--- R\\ +\endOutput +\beginOutput +i44 : generateAmonos(Graver22);\\ +\endOutput +\beginOutput +i45 : #monos\\ +\emptyLine +o45 = 108\\ +\endOutput +\beginOutput +i46 : scan(0..9,i->print toString monos#i) \\ +\{f*h, c*h, f*g, e*g, c*g, b*g, c*e, c*d, b*d\}\\ +\{f*h, d*h, c*h, f*g, c*g, b*g, c*e, c*d, b*d\}\\ +\{d*i, f*h, d*h, c*h, c*g, b*g, c*e, c*d, b*d\}\\ +\{e*i, c*h, f*g, e*g, c*g, b*g, c*e, c*d, b*d\}\\ +\{e*i, d*i, c*h, e*g, c*g, b*g, c*e, c*d, b*d\}\\ +\{e*i, d*i, d*h, c*h, c*g, b*g, c*e, c*d, b*d\}\\ +\{f*h, c*h, f*g, e*g, c*g, b*g, c*e, a*e, c*d\}\\ +\{e*i, c*h, f*g, e*g, c*g, b*g, c*e, a*e, c*d, b*d*i\}\\ +\{e*i, c*h, f*g, e*g, c*g, b*g, c*e, a*e, c*d, a*f*h\}\\ +\{e*i, d*i, c*h, e*g, c*g, b*g, c*e, a*e, c*d\}\\ +\endOutput + +Thus there are 108 monomial $A(2,2)$-graded ideals and +{\tt decideCoherence} will check that all of them +are coherent. Since $A(2,2)$ is unimodular, each monomial +$A(2,2)$-graded ideal is square-free and is hence +radical. These 108 ideals represent the 108 triangulations of +$A(2,2)$ and we have listed ten of them above. +The flip graph (equivalently, Baues graph) of $A(2,2)$ is connected. +However, it is unknown whether the Baues graph of $A(r,s)$ is +connected for all values of $(r,s)$. + +\section{Local Equations} +Consider the reduced Gr\"obner basis of a toric ideal $I_A$ for a +term order $w$: +\begin{equation} +\label{GrobnerBasis} \bigl\{ \, + x^{u_1} - x^{v_1} \, , \,\, x^{u_2} - x^{v_2} \,, \,\, \ldots \, , \,\, +x^{u_r} - x^{v_r}\, \bigr\} . +\end{equation} +The initial ideal $\,M = in_w(I_A) = \langle x^{u_1}, x^{u_2}, \ldots, +x^{u_r} \rangle \,$ is a coherent monomial $A$-graded ideal. In +particular, it is a $(\k^*)^n$-fixed point on the toric Hilbert scheme +$Hilb_A$. We shall explain a method, due to Peeva and Stillman +\cite{HS:PS2}, for computing local equations of $Hilb_A$ around such a +fixed point. A variant of this method also works for computing the +local equations around a non-coherent monomial ideal $M$, but that +variant involves local algebra, specifically Mora's tangent cone +algorithm, which is not yet fully implemented in \Mtwo. See \cite{HS:PS2} +for details. + +We saw how to compute the flip graph of $A$ in Section~1. The vertices +of this graph are the $(\k^*)^n$-fixed points $M$ and its edges +correspond to the $(\k^*)^n$-fixed curves. By computing and +decomposing the local equations around each $M$, we get a complete +description of the scheme $Hilb_A$. + +The first step is to introduce a new variable $ \, z_i \,$ for each +binomial in our Gr\"obner basis (\ref{GrobnerBasis}) and to consider +the following $r$ binomials: +\begin{equation} +\label{FlatFamily} + x^{u_1} - z_1 \cdot x^{v_1} \,, \,\, + x^{u_2} - z_2 \cdot x^{v_2} \,,\, \, \ldots \, , +\,\, x^{u_r} - z_r \cdot x^{v_r} +\end{equation} +in the polynomial ring $\k[x,z]$ in $n+r$ indeterminates. +The term order $w$ can be extended to an elimination term order +in $\k[x,z]$ so that $x^{u_i}$ is the leading term of +$ x^{u_i} - z_i \cdot x^{v_i} $ for all $i$. +We compute the minimal first syzygies +of the monomial ideal $M$, and form the +corresponding $S$-pairs of binomials in (\ref{FlatFamily}). +For each $S$-pair +$$ +\frac{lcm(x^{u_i},x^{u_j})}{x^{u_i}} \cdot (x^{u_i} - z_i \cdot +x^{v_i} ) \,\,\, - \,\,\, \frac{lcm(x^{u_i},x^{u_j})}{x^{u_j}} \cdot +(x^{u_j} - z_j \cdot x^{v_j}) $$ +we compute a normal form with respect +to (\ref{FlatFamily}) using the extended term order $w$. The result +is a binomial in $\k[x,z]$ that factors as +$$ x^\alpha \cdot z^\beta \cdot ( z^\gamma - z^\delta ) , $$ +where $\alpha \in \N^n$ and $\beta,\gamma,\delta \in \N^r$. +Note that this normal form is not unique but depends on our +choice of a reduction path. +Let $J_M$ denote the ideal in $\k[z_1 , \ldots, z_r]$ generated by all +binomials $\, z^\beta \cdot ( z^\gamma - z^\delta ) \,$ +gotten from normal forms of all the $S$-pairs considered above. + +\begin{proposition}[\cite{HS:PS2}]\label{localeqns} +The ideal $J_M$ is independent of the reduction paths chosen. +It defines a subscheme of $\k^r$ isomorphic to +an affine open neighborhood of the point $M$ on +the toric Hilbert scheme $Hilb_A$. +\end{proposition} + +We apply this technique to compute a particularly interesting affine +chart of $Hilb_A$ for our running example. +Consider the following set of $13$ binomials: +\begin{eqnarray*} +& \bigl\{ \,a e - z_1 b d , \, + c d - z_2 b e , \, + a c - z_3 b^2 , \, + a^2 d^2 - z_4 c^3 e , \, + a^2 b d - z_5 c^4 , \\ & + a^3 d - z_6 b c^3 , \, + c^2 e^3 - z_7 a d^4 , \, + c^3 e^2 - z_8 a b d^3 , \, + c^4 e - z_9 a b^2 d^2 , \\ & + c^5 - z_{10} a b^3 d , \, + c e^5 - z_{11} d^6 , \, + a d^5 - z_{12} b c e^4 , \, + b e^6 - z_{13} d^7 \, \bigr\}. +\end{eqnarray*} +If we set $\, z_1 = z_2 = \cdots = z_{13} = 1\,$ +then we get a generating set for the toric ideal $I_A$. +The $13$ monomials obtained by setting +$\, z_1 = z_2 = \cdots = z_{13} = 0 \,$ +generate the initial monomial ideal $ M = in_w (I_A)$ +with respect to the weight vector $w = (9, 3, 5, 0, 0)$. +Thus $M$ is one of the $226$ coherent monomial +$A$-graded ideals of our running example. The above set of +13 binomials in $\k[x,z]$ give the universal family +for $Hilb_A$ around this $M$. + +The local chart of $Hilb_A$ around the point $M$ +is a subscheme of affine space $\k^{13}$ with coordinates +$z_1, \ldots, z_{13}$, whose +defining equations are obtained as follows: +Extend the weight vector $w$ by assigning +weight zero to all variables $z_i$, so that +the first term in each of the above $13$ binomials +is the leading term. For each pair of binomials corresponding to a +minimal syzygy of $M$, form their $S$-pair and then reduce it to a +normal form with respect to the $13$ binomials above. +For instance, +$$ +S \bigl( + c^5 - z_{10} a b^3 d , + c e^5 - z_{11} d^6 \bigr) +\, = \, + z_{11} c^4 d^6 - z_{10} a b^3 d e^5 +\, \longrightarrow \, +b^4 d^2 e^4 \cdot (z_2^4 z_{11} - z_1 z_{10}). +$$ +Each such normal form is a monomial in $a,b,c,d,e$ times a binomial in +$z_1, \ldots, z_{13}$. The set of all these binomials, in the +$z$-variables, generates the ideal $J_M$ of local equations of +$Hilb_A$ around $M$. In our example, $J_M$ is generated by $27$ +nonzero binomials. This computation can be done in \Mtwo using the +procedure {\tt localCoherentEquations}. + +\beginOutput +i47 : localCoherentEquations = (IA) -> (\\ +\ -- IA is the toric ideal of A living in a ring equipped\\ +\ -- with weight order w, if we are computing the local \\ +\ -- equations about the initial ideal of IA w.r.t. w.\\ +\ R := ring IA;\\ +\ w := (monoid R).Options.Weights;\\ +\ M := ideal leadTerm IA;\\ +\ S := first entries ((gens M) {\char`\%} IA);\\ +\ -- Make the universal family J in a new ring.\\ +\ nv := numgens R; n := numgens M;\\ +\ T = (coefficientRing R)[generators R, z_1 .. z_n, \\ +\ Weights => flatten splice\{w, n:0\},\\ +\ MonomialSize=>16];\\ +\ M = substitute(generators M,T);\\ +\ S = apply(S, s -> substitute(s,T));\\ +\ J = ideal apply(n, i -> \\ +\ M_(0,i) - T_(nv + i) * S_i);\\ +\ -- Find the ideal Ihilb of local equations about M:\\ +\ spairs := (gens J) * (syz M);\\ +\ g := forceGB gens J;\\ +\ B = (coefficientRing R)[z_1 .. z_n,MonomialSize=>16];\\ +\ Fones := map(B,T, matrix(B,\{splice \{nv:1\}\}) | vars B);\\ +\ Ihilb := ideal Fones (spairs {\char`\%} g);\\ +\ Ihilb\\ +\ );\\ +\endOutput + + +Suppose we wish to calculate the local equations about $M = +in_w(I_A)$. The input to {\tt localCoherentEquations} is the +toric ideal $I_A$ living in a polynomial ring equipped with the +weight order specified by $w$. This is done as follows: + +\beginOutput +i48 : IA = toricIdeal A;\\ +\emptyLine +o48 : Ideal of R\\ +\endOutput +\beginOutput +i49 : Y = QQ[a..e, MonomialSize => 16,\\ +\ Degrees => transpose A, Weights => \{9,3,5,0,0\}];\\ +\endOutput +\beginOutput +i50 : IA = substitute(IA,Y);\\ +\emptyLine +o50 : Ideal of Y\\ +\endOutput + +The initial ideal $M$ is calculated in the third line of the +algorithm, and {\tt S} stores the standard monomials of $M$ of the +same degrees as the minimal generators of $M$. We could have +calculated {\tt S} using our old procedure {\tt stdMonomials} but this +involves computing the monomials in $R_b$ for various values of $b$, +which can be slow on large examples. As by-products, {\tt + localCoherentEquations} also gets {\tt J}, the ideal of the +universal family for $Hilb_A$ about $M$, the ring {\tt T} of this +ideal, and the ring {\tt B} of {\tt Ihilb}, which is the ideal of the +affine patch of $Hilb_A$ about $M$. The matrix {\tt spairs} contains +all the $S$-pairs between generators of {\tt J} corresponding to the +minimal first syzygies of $M$. The command {\tt forceGB} is used to +declare the generators of {\tt J} to be a Gr\"obner basis, and {\tt + Fones} is the ring map from {\tt T} to {\tt B} that sends each of +$a,b,c,d,e$ to one and the $z$ variables to themselves. The columns +of the matrix {\tt (spairs \% g)} are the normal forms of the +polynomials in {\tt spairs} with respect to the forced Gr\"obner basis +{\tt g} and the ideal {\tt Ihilb} of local equations is generated by +the image of these normal forms in the ring {\tt B} under the map {\tt + Fones}. + +\beginOutput +i51 : JM = localCoherentEquations(IA)\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o51 = ideal (z z - z , z z - z , - z z + z , - z z + z , - z z + $\cdot\cdot\cdot$\\ +\ 1 2 3 1 2 3 4 7 2 5 8 2 1 5 $\cdot\cdot\cdot$\\ +\emptyLine +o51 : Ideal of B\\ +\endOutput + +Removing duplications among the generators: + +\smallskip +$J_M = \langle +z_1-z_{10}z_{11}, +z_2-z_4z_7, +z_2-z_5z_8, +z_2-z_{11}z_{12}, +z_2-z_1z_{11}z_{13},\\ +z_3-z_1z_2, +z_3-z_5z_9, +z_4-z_1z_5, +z_6-z_3z_5, +z_6-z_1z_2z_5, +z_7-z_1z_{10}, +z_8-z_1z_7,\\ +z_9-z_1z_8, +z_{12}-z_1z_{13}, +z_1z_2-z_5z_9, +z_1z_2-z_1z_5z_8, +z_1z_2-z_1^2z_4z_{10}, +z_1z_2-z_1^2z_5z_7,\\ +z_1z_2-z_1z_{11}z_{12}, +z_1z_2-z_2z_{10}z_{11}, +z_1^3z_4-z_3z_{11}, +z_1z_5z_8-z_4z_8, +z_2z_{10}-z_1z_{12},\\ +z_3z_4-z_1z_6, +z_3z_7-z_2z_8, +z_3z_8-z_2z_9, +z_3z_{10}-z_2z_7 +\rangle$. +\smallskip + +Notice that there are many generators of $J_M$ that have a single +variable as one of its terms. Using these generators we can remove +variables from other binomials. This is done in \Mtwo using the +subroutine {\tt removeRedundantVariables}, which is the main ingredient +of the package {\tt minPres.m2} for computing the minimal +presentations of polynomial quotient rings. Both {\tt + removeRedundantVariables} and {\tt minPres.m2} are explained in +Appendix \ref{Mpor}. The command {\tt removeRedundantVariables} applied to an +ideal in a polynomial ring (not quotient ring) creates a ring map from +the ring to itself that sends the redundant variables to polynomials +in the non-redundant variables and the non-redundant variables to +themselves. Applying this to our ideal $J_M$ we obtain the following +simplifications. + +\beginOutput +i52 : load "minPres.m2";\\ +\endOutput +\beginOutput +i53 : G = removeRedundantVariables JM\\ +\emptyLine +\ 3 2 4 3 2 4 3 2 $\cdot\cdot\cdot$\\ +o53 = map(B,B,\{z z , z z z , z z z , z z z , z , z z z , z $\cdot\cdot\cdot$\\ +\ 10 11 5 10 11 5 10 11 5 10 11 5 5 10 11 10 $\cdot\cdot\cdot$\\ +\emptyLine +o53 : RingMap B <--- B\\ +\endOutput +\beginOutput +i54 : ideal gens gb(G JM)\\ +\emptyLine +\ 3 2 2\\ +o54 = ideal(z z z - z z z )\\ +\ 5 10 11 10 11 13\\ +\emptyLine +o54 : Ideal of B\\ +\endOutput + +Thus our affine patch of $Hilb_A$ has the coordinate ring +$$\k[z_1,z_2,\ldots,z_{13}]/J_M \,\, \simeq \,\, +\frac{\k[z_5,z_{10},z_{11},z_{13}]}{ \langle z_5 z_{{10}}^3 z_{11}^2 - + z_{10}z_{11}^2 z_{13} \rangle} = \frac{\k[z_5,z_{10},z_{11},z_{13}]} +{\langle (z_5 z_{10}^2 -z_{13}) z_{10}z_{11}^2 \rangle}.$$ +Hence, we see immediately that there are three +components through the point $M$ on $Hilb_A$. The restriction of the +coherent component to the affine neighborhood of $M$ on $Hilb_A$ is +defined by the ideal quotient $\, (J_M : (z_1 z_2 \cdots +z_{13})^\infty) $ and hence the first of the above components +is an affine patch of the coherent component. Locally near $M$ it is +given by the single equation $z_5 z_{10}^2 - z_{13} = 0$ in $\A^4$. +It is smooth and, as expected, has dimension three. The second +component, $z_{10} = 0$, is also of dimension three and is smooth at $M$. +The third component, given by $z_{11}^2 = 0$ is more interesting. It +has dimension three as well, but is not reduced. Thus we have proved +the following result. + +\begin{proposition} +The toric Hilbert scheme $Hilb_A$ of the matrix +$$A = \left( \begin{matrix} + 1 & 1 & 1 & 1 & 1 \\ + 0 & 1 & 2 & 7 & 8 +\end{matrix} \right)$$ +is not reduced. +\end{proposition} + +We can use the ring map {\tt G} from above to simplify {\tt J} so as +to involve only the four variables $z_5, z_{10},z_{11}$ and $z_{13}$. + +\beginOutput +i55 : CX = QQ[a..e, z_5,z_10,z_11,z_13, Weights =>\\ +\ \{9,3,5,0,0,0,0,0,0\}];\\ +\endOutput + +\beginOutput +i56 : F = map(CX, ring J, matrix\{\{a,b,c,d,e\}\} | \\ +\ substitute(G.matrix,CX))\\ +\emptyLine +\ 3 2 4 3 $\cdot\cdot\cdot$\\ +o56 = map(CX,T,\{a, b, c, d, e, z z , z z z , z z z , z z z , z $\cdot\cdot\cdot$\\ +\ 10 11 5 10 11 5 10 11 5 10 11 $\cdot\cdot\cdot$\\ +\emptyLine +o56 : RingMap CX <--- T\\ +\endOutput +Applying this map to {\tt J} we get the ideal {\tt J1}, +\beginOutput +i57 : J1 = F J\\ +\emptyLine +\ 3 2 2 4 3 $\cdot\cdot\cdot$\\ +o57 = ideal (c*d - b*e*z z , a*e - b*d*z z z , a*c - b z z z , a $\cdot\cdot\cdot$\\ +\ 10 11 5 10 11 5 10 11 $\cdot\cdot\cdot$\\ +\emptyLine +o57 : Ideal of CX\\ +\endOutput + +\noindent and adding the ideal $\langle z_{11}^2 \rangle$ to {\tt J1} +we obtain the universal family for the non-reduced component of +$Hilb_A$ about $M$. + +\beginOutput +i58 : substitute(ideal(z_11^2),CX) + J1\\ +\emptyLine +\ 2 3 2 2 4 $\cdot\cdot\cdot$\\ +o58 = ideal (z , c*d - b*e*z z , a*e - b*d*z z z , a*c - b z z z $\cdot\cdot\cdot$\\ +\ 11 10 11 5 10 11 5 10 $\cdot\cdot\cdot$\\ +\emptyLine +o58 : Ideal of CX\\ +\endOutput + +In the rest of this section, we present an interpretation of +the ideal $J_M$ in terms of the combinatorial theory +of {\it \ie{integer programming}}. See, for instance, +\cite[\S 4]{HS:St2} or \cite{HS:Tho} for +the relevant background. Our reduced Gr\"obner basis +(\ref{GrobnerBasis}) is the {\it \ie{minimal test set}} for +the family of integer programs +\begin{equation} +\label{IP} +{\rm Minimize} \quad +w \cdot u \,\,\quad +{\rm subject} \,\, {\rm to } \,\,\, +A \cdot u = b \,\,\, {\rm and} + \,\,\,u \in \N^n, +\end{equation} +where $A \in \N^{d \times n}$ and $w +\in \ZZ^n$ are fixed and $b$ ranges over $\N^d$. +If $u' \in \N^n$ is any feasible solution +to (\ref{IP}), then the corresponding optimal solution +$u \in \N^n$ is computed as follows: the monomial +$x^u $ is the unique normal form of $x^{u'}$ modulo +the Gr\"obner basis (\ref{GrobnerBasis}). + +Suppose we had reduced $x^{u'}$ +modulo the binomials (\ref{FlatFamily}) instead of (\ref{GrobnerBasis}). +Then the output has a $z$-factor that depends on +our choice of reduction path. To be precise, suppose the +reduction path has length $m$ and at the $j$-th step we had used the +reduction $\, x^{u_{\mu_j}} \rightarrow z_{\mu_j} \cdot x^{v_{\mu_j}} +$. Then we would obtain the normal form +$$ \, z_{\mu_1} z_{\mu_2} z_{\mu_3} \cdots z_{\mu_m} \cdot x^u.$$ +Reduction paths can have different lengths. If we take +another path that +has length $m'$ and uses +$\, x^{u_{\nu_j}} \rightarrow z_{\nu_j} \cdot x^{v_{\nu_j}} \,$ +at the $j$-th step, then the output would be +$$ \, z_{\nu_1} z_{\nu_2} z_{\nu_3} \cdots z_{\nu_{m'}} \cdot x^u .$$ + +\begin{theorem} \label{paths} +The ideal $J_M$ of local equations +on $Hilb_A$ is generated by the binomials +$$ \, z_{\mu_1} z_{\mu_2} z_{\mu_3} \cdots z_{\mu_m} - +z_{\nu_1} z_{\nu_2} z_{\nu_3} \cdots z_{\nu_{m'}} $$ each encoding a +pair of distinct reduction sequences from a feasible solution of an +integer program of the type (\ref{IP}) to the corresponding optimal +solution using the minimal test set in (\ref{GrobnerBasis}). +\end{theorem} + +\begin{proof} +The given ideal is contained in $J_M$ because its generators +are differences of monomials arising from the possible +reduction paths of $\,{lcm(x^{u_i},x^{u_j})} $, +for $1 \leq i,j \leq r $. Conversely, any reduction +sequence can be transformed into an equivalent reduction sequence +using S-pair reductions. This follows from standard +arguments in the proof of Buchberger's criterion +\cite[\S 2.6, Theorem 6]{HS:CLO}, and it implies that +the binomials $ \, z_{\mu_1} \cdots z_{\mu_m} - + z_{\nu_1} \cdots z_{\nu_{m'}} \,$ are $\k[z]$-linear +combinations of the generators of $J_M$. +\qed +\end{proof} + +A given feasible solution of an integer program (\ref{IP}) +usually has many different reduction paths to the optimal solution +using the reduced Gr\"obner basis (\ref{GrobnerBasis}). +For our matrix \ref{OurMatrix} and cost vector +$w = (9,3,5,0,0)$, the monomial +$\, a^2 b d e^6 \,$ encodes the feasible solution $(2,1,0,1,6)$ +of the integer program +$$ {\rm Minimize} \quad +w \cdot u \,\,\quad +{\rm subject} \,\, {\rm to } \,\,\, +A \cdot u = \binom{10}{56} \,\,\, {\rm and} + \,\,\,u \in \N^5.$$ +There are $19$ different paths from this feasible solution +to the optimal solution $(0,3,0,3,4)$ encoded by the monomial +$\, b^3 d^3 e^4 $. The generating function for these paths is: +\begin{eqnarray*} +& z_1^2 + 3 z_1 z_2^2 z_5 z_7 + 2 z_1 z_2 z_5 z_7^2 z_{12} + + 2 z_1 z_2 z_5 z_8 \\ & {} + 2 z_1 z_2 z_{12} z_{13} + z_1 z_5 z_9 + + z_2^3 z_4 z_5 z_7^2 + z_2^3 z_4 z_{13} + z_2^3 z_5 z_{11} \\ & {} + + 2 z_2 z_3 z_5 z_7 + z_3 z_5 z_7^2 z_{12} + z_3 z_5 z_8 + z_3 z_{12} z_{13}. +\end{eqnarray*} +The difference of any two monomials in this generating function +is a valid local equation for the toric Hilbert scheme of +(\ref{OurMatrix}). For instance, the binomial +$\, z_3 z_5 z_7^2 z_{12} - z_3 z_{12} z_{13} \,$ lies in $J_M$, +and, conversely, $J_M$ is generated by binomials obtained in this manner. + +The scheme structure of $J_M$ encodes obstructions to making certain +reductions when solving our family of integer programs. For instance, +the variable $z_3$ is a zero-divisor modulo $J_M$. If we factor it +out from the binomial $\, z_3 z_5 z_7^2 z_{12} - z_3 z_{12} z_{13} +\in J_M \,$, we get +$\, z_5 z_7^2 z_{12} - z_{12} z_{13} \,$, +which does not lie in $J_M$. Thus there is no monomial +$a^{i_1} b^{i_2} c^{i_3} d^{i_4} e^{i_5} \,$ +for which both the paths $ z_5 z_7^2 z_{12} $ and +$ z_{12} z_{13} $ are used to reach the optimum. +It would be a worthwhile combinatorial project to +study the path generating functions and their relation +to the ideal $J_M$ in more detail. + +It is instructive to note that the binomials +$ \, z_{\mu_1} z_{\mu_2} \cdots z_{\mu_m} \, - \, + z_{\nu_1} z_{\nu_2} \cdots z_{\nu_{m'}} $ +in Theorem~\ref{paths} do not form a vector space basis +for the ideal $J_M$. We demonstrate this for the lexicographic +Gr\"obner basis (with $a \succ b \succ c \succ d \succ e$) of +the toric ideal defining the rational normal curve of degree $4$. +In this case, we can take $A = \left ( \begin{array}{ccccc} +1 & 1 & 1 & 1 & 1 \\ 0 & 1 & 2 & 3 & 4 \end{array} \right )$ and the +universal family in question is : +$$ +\bigl\{ +a c - z_1 b^2, \, +a d - z_2 b c,\, +a e - z_3 c^2,\, +b d - z_4 c^2,\, +b e - z_5 c d,\, +c e - z_6 d^2 +\bigr\}. +$$ +The corresponding ideal of local equations is +$J_M = +\langle z_3 - z_2 z_5, z_2 - z_1 z_4, z_5 - z_4 z_6 \rangle $, +from which we see that $M$ is a smooth point of $Hilb_A$. +The binomial $\,z_1 z_5 - z_1 z_4 z_6 \,$ lies in $J_M$ +but there is no monomial that has the reduction path $z_1 z_5$ +or $z_5 z_1 $ to optimality. Indeed, any monomial +that admits the reductions $z_1 z_5$ or $z_5 z_1$ must be +divisible by either $\, a c e \, $ or $\, a b e $. +The path generating functions for these two monomials are +$$ abe \quad \rightarrow \quad +(z_3 \, + \, z_1 z_4 z_5 \, +\, z_2 z_5) \cdot b c^2 $$ +$$ ace \quad \rightarrow \quad +(z_3 \,+ \,z_1 z_4 z_5 \,+\, +z_2 z_4 z_6) \cdot c^3 . $$ +Thus every reduction to optimality using $z_1$ and $z_5$ must +also use $z_4$, and we conclude that $\,z_1 z_5 - z_1 z_4 z_6 \,$ +is not in the $\k$-span of the binomials listed in +Theorem~\ref{paths}. + +\section{The Coherent Component of the Toric Hilbert Scheme} + +In this section we study the component of the toric Hilbert scheme +$Hilb_A$ that contains the point corresponding to the toric ideal +$I_A$. An $A$-graded ideal is +coherent if and only if it is isomorphic to an initial ideal of $I_A$ +under the action of the torus $(\k^\ast)^n$. All coherent $A$-graded +ideals lie on the same component of $Hilb_A$ as $I_A$. +We will show that this component need not be +normal, and we will describe how its local and global equations can be +computed using \Mtwo. Every term order for the toric ideal $I_A$ can +be realized by a weight vector that is an element in the lattice $\,N += Hom_\ZZ( ker_\ZZ(A) , \ZZ) \, \simeq \, \ZZ^{n-d}$. Two weight +vectors $w$ and $w'$ in $N$ are considered {\it equivalent}\index{weight vectors!equivalent} if they +define the same initial ideal $\,in_w(I_A) = in_{w'}(I_A)$. These +equivalence classes are the relatively open cones of a projective fan +$\Sigma_A$ called the {\em Gr\"obner fan\index{Grobner fan@Gr\"obner fan}} of $I_A$ +\cite{HS:MR}, \cite{HS:ST}. This fan lies in +$\mathbb R^{n-d}$, the real vector space spanned by the lattice $N$. + +\begin{theorem} +The toric ideal $I_A$ lies on a unique irreducible component of +the toric Hilbert scheme $Hilb_A$, called the coherent component. +The normalization of the coherent +component is the projective toric variety defined by +the Gr\"obner fan of $I_A$. +\end{theorem} + +\begin{proof} +The {\it \ie{divisor at infinity}} on the toric Hilbert scheme $Hilb_A$ +consists of all points at which at least one of the local coordinates +(around some monomial $A$-graded ideal) is zero. This is a proper +closed codimension one subscheme of $Hilb_A$, parametrizing +all those $A$-graded ideals that contain at least one monomial. +The complement of the divisor at infinity in +$Hilb_A$ consists of precisely the orbit of $I_A$ +under the action of the torus $(\k^*)^n $. +This is the content of \cite[Lemma 10.12]{HS:St2}. + +The closure of the $(\k^*)^n $-orbit of $I_A$ is a +reduced and irreducible component of $Hilb_A$. +It is reduced because $I_A$ is a smooth point on $Hilb_A$, +as can be seen from the local equations, and it is irreducible +since $(\k^*)^n$ is a connected group. It is a component +of $Hilb_A$ because its complement lies in a divisor. +We call this irreducible component the +{\it \ie{coherent component}} of $Hilb_A$. + +Identifying $(\k^*)^n$ with $Hom_\ZZ(\ZZ^n, \k^*)$, we note +that the stabilizer of $I_A$ consists of those linear forms +$w$ that restrict to zero on the kernel of $A$. Therefore +the coherent component is the closure in $Hilb_A$ +of the orbit of the point $I_A$ under the action of the torus +$\, N \otimes \k^* \, = \,Hom_\ZZ( ker_\ZZ(A), \k^*)$. +The $(N \otimes \k^*)$-fixed points +on this component are precisely the coherent monomial +$A$-graded ideals, and the same holds for the +toric variety of the Gr\"obner fan. + +Fix a maximal cone $\sigma$ in the Gr\"obner fan $\Sigma_A$, +and let $M = \langle x^{u_1}, \ldots, x^{u_r} \rangle$ +be the corresponding (monomial) +initial ideal of $I_A$. As before we write +$$ \left \{ x^{u_1} - z_1 \cdot x^{v_1} \,, \,\, + x^{u_2} - z_2 \cdot x^{v_2} \,,\, \, \ldots \, , +\,\, x^{u_r} - z_r \cdot x^{v_r} \right \}$$ +for the universal family arising from the corresponding +reduced Gr\"obner basis of $I_A$. Let $J_M$ be the +ideal in $\k [z_1,z_2,\ldots,z_r]$ defining this family. + +The restriction of the coherent component to the +affine neighborhood of $M$ on $Hilb_A$ is defined +by $\, J_M : (z_1 z_2 \cdots z_r)^\infty $. +It then follows from our combinatorial description of +the ideal $J_M$ that this ideal quotient is a binomial prime ideal. +In fact, it is the ideal of algebraic relations among the +Laurent monomials $\, x^{u_1- v_1}, \ldots, x^{u_r-v_r}$. +We conclude that the restriction of the coherent component to the +affine neighborhood of $M$ on $Hilb_A$ equals +\begin{equation} +\label{uv-algebra} + {\rm Spec} \,\, \k \bigl[ + x^{u_1-v_1}, + x^{u_2-v_2}, \ldots, + x^{u_r-v_r} +\bigr] . +\end{equation} + +The abelian group generated by the vectors +$\, u_1-v_1, \ldots, u_r-v_r \,$ equals +$\ker_\ZZ(A) = Hom_\ZZ(N,\ZZ)$. This follows from +\cite[Lemma 12.2]{HS:St1} because the +binomials $x^{u_i} - x^{v_i}$ generate the toric ideal $I_A$. +The cone generated by the vectors $\, u_1-v_1, \ldots, u_r-v_r \,$ is +precisely the polar dual $\sigma^\vee$ to +the Gr\"obner cone $\sigma$. This follows from + equation (2.6) in \cite{HS:St1}. We conclude that the +normalization of the affine variety +(\ref{uv-algebra}) is the normal affine toric variety +\begin{equation} +\label{normal-uv-algebra} + {\rm Spec} \,\, \k \bigl[ + \ker_\ZZ(A) \,\cap\, \sigma^\vee \bigr] . +\end{equation} + +The normalization morphism from (\ref{normal-uv-algebra}) to +(\ref{uv-algebra}) maps the identity point in the toric variety + (\ref{normal-uv-algebra}) +to the point $I_A$ in the affine chart +(\ref{uv-algebra}) of the toric Hilbert +scheme $Hilb_A$. +Clearly, this normalization morphism is equivariant with respect to the +action by the torus $\, N \otimes \k^* $. +These two properties hold for every maximal cone $\sigma$ of the +Gr\"obner fan $\Sigma_A$. Hence there exists a unique +$\, N \otimes \k^* $-equivariant morphism $\phi$ +from the projective toric variety associated with $\Sigma_A$ +onto the coherent component of $Hilb_A$, such that $\phi$ maps +the identity point to the point $I_A$ on $Hilb_A$, and +$\phi$ restricts to the normalization +morphism (\ref{normal-uv-algebra}) $\rightarrow$ (\ref{uv-algebra}) on each +affine open chart. We conclude that $\phi$ +is the desired normalization map from the +projective toric variety associated with the Gr\"obner fan of $I_A$ +onto the coherent component of the toric Hilbert scheme $Hilb_A$. +\qed +\end{proof} + +We now present an example that shows that the coherent component +of $Hilb_A$ need not be normal. This example is +derived from the matrix that appears in Example 3.15 of \cite{HS:HM}. +This example is also mentioned in \cite{HS:PS1} without details. +Let $d=4$ and $n=7$ and fix the matrix + +\begin{equation} +\label{non-normal} +A = \left( \begin{array}{ccccccc} +1 & 1 & 1 & 1 & 1 & 1 & 1 \\ +0 & 6 & 7 & 5 & 8 & 4 & 3 \\ +3 & 7 & 2 & 0 & 7 & 6 & 1 \\ +6 & 5 & 2 & 6 & 5 & 0 & 0 \end{array} \right). +\end{equation} + +The lattice $\,N = Hom_\ZZ ( ker_\ZZ(A), \ZZ)$ +is three-dimensional. The toric ideal $I_A$ is minimally +generated by $30$ binomials of total degree between $6$ and $93$. + +\beginOutput +i59 : A = \{\{1,1,1,1,1,1,1\},\{0,6,7,5,8,4,3\},\{3,7,2,0,7,6,1\},\\ +\ \{6,5,2,6,5,0,0\}\};\\ +\endOutput +\beginOutput +i60 : IA = toricIdeal A\\ +\emptyLine +\ 2 3 3 2 2 4 4 8 4 4 3 6 7 2 4 4 $\cdot\cdot\cdot$\\ +o60 = ideal (a c e - b*d f , a c*d*e f - b g , d e f - b c g , a*b c $\cdot\cdot\cdot$\\ +\emptyLine +o60 : Ideal of R\\ +\endOutput + +We fix the weight vector $w = (0,0,276,220,0,0,215)$ in $N$ and +compute the initial ideal $M = in_w(I_A)$. This initial ideal +has $44$ minimal generators. + +\beginOutput +i61 : Y = QQ[a..g, MonomialSize => 16,\\ +\ Weights => \{0,0,276,220,0,0,215\},\\ +\ Degrees =>transpose A];\\ +\endOutput +\beginOutput +i62 : IA = substitute(IA,Y);\\ +\emptyLine +o62 : Ideal of Y\\ +\endOutput +\beginOutput +i63 : M = ideal leadTerm IA\\ +\emptyLine +\ 2 3 8 4 7 2 4 4 7 3 5 4 3 5 2 6 5 4 3 3 1 $\cdot\cdot\cdot$\\ +o63 = ideal (a c e, b g , b c g , a*b c f , b c d f , a b c g , a b c $\cdot\cdot\cdot$\\ +\emptyLine +o63 : Ideal of Y\\ +\endOutput + +\begin{proposition} The three dimensional affine variety + (\ref{uv-algebra}), for the initial ideal $M$ with respect to $w = + (0,0,276,220,0,0,215)$ of the toric ideal of $A$ in + (\ref{non-normal}), is not normal. +\end{proposition} + +\begin{proof} +The universal family for the toric Hilbert scheme $Hilb_A$ at $M$ is: +\begin{eqnarray*} +\{& a^2e^{15}g^{18}-z_1b^3c^6d^{10}f^{16}, \,\, +b^{13}d^{15}f^{16}-z_2a^8ce^{21}g^{14}, \\ & +c^{59} d^{57} f^{110} - z_3 e^{92} g^{134}, +a c^{14} d^{11} f^{23} - z_4 b e^{19} g^{29}, \\ & +b^7 c^2 g^4 - z_5 d^4 e^3 f^6, \,\, +\ldots, \,\, +b c^{34} d^{32} f^{62} - z_{44} e^{53} g^{76} \}. +\end{eqnarray*} +The semigroup algebra in (\ref{uv-algebra}) +is generated by $44$ Laurent monomials +gotten from this family. It turns out that the +first four monomials suffice to generate the semigroup. +In other words, for all $j \in \{5,6,\ldots,44\}$ +there exist +$ i_1,i_2,i_3, i_4 \in \N $ such that +$\, +z_{j} - +z_1^{i_1} +z_2^{i_2} +z_3^{i_3} +z_4^{i_4} \in J_M : (z_1 \cdots z_{44})^\infty $. +Hence the semigroup algebra in (\ref{uv-algebra}) is: +$$ \k \bigl[ + \frac{a^2 e^{15} g^{18}}{ b^3 c^6 d^{10} f^{16}}, + \frac{ b^{13} d^{15} f^{16} }{a^8 c e^{21} g^{14}}, + \frac{ c^{59} d^{57} f^{110}} {e^{92} g^{134}}, + \frac{ a c^{14} d^{11} f^{23}} {b e^{19} g^{29}} +\bigr] \,\,\, \simeq \,\,\, +\frac{\k[z_1,z_2,z_3,z_4]}{\langle z_1^5 z_2 z_3 - z_4^2 \rangle}. +$$ +This algebra is not integrally closed, since +a toric hypersurface is normal if and only if +at least one of the two monomials in the defining equation +is square-free. Its integral closure +in $\k[ ker_\ZZ(A) ]$ is generated by the +Laurent monomial +\begin{equation} +\label{witness} +\frac{z_4}{z_1^2} \,\, = \,\, +( z_1 z_2 z_3)^{\frac{1}{2}} \,\, = \,\, +\frac{ b^5 c^{26} d^{31} f^{55}}{a^3 e^{49} g^{65}}. +\end{equation} +Hence the affine chart (\ref{normal-uv-algebra}) of the toric variety +of the Gr\"obner fan of $I_A$ is the spectrum of the normal domain +$ \k[z_1,z_2,z_3,y]/ \langle +z_1 z_2 z_3 - y^2 \rangle$, +where $y$ maps to (\ref{witness}). +\qed +\end{proof} + +We now examine the local equations of $Hilb_A$ about $M$ for this +example. +\beginOutput +i64 : JM = localCoherentEquations(IA)\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o64 = ideal (z z - z , z z - z , z z - z , z z - z , z z - z , z $\cdot\cdot\cdot$\\ +\ 1 2 3 1 2 3 1 5 4 1 3 6 1 3 6 1 $\cdot\cdot\cdot$\\ +\emptyLine +o64 : Ideal of B\\ +\endOutput +\beginOutput +i65 : G = removeRedundantVariables JM;\\ +\emptyLine +o65 : RingMap B <--- B\\ +\endOutput +\beginOutput +i66 : toString ideal gens gb(G JM)\\ +\emptyLine +o66 = ideal(z_32*z_42^2*z_44-z_37^2*z_42,z_32^3*z_35*z_37^2-z_42^2*z_4 $\cdot\cdot\cdot$\\ +\endOutput + +This ideal has six generators and decomposing it +%%% $\langle z_32z_42^2z_44-z_37^2z_42, +%%% z_32^3z_35z_37^2-z_42^2z_44, +%%% z_32^4z_35z_37-z_37z_42, +%%% z_32^2z_35z_37^4z_42-z_42^4z_44^2, +%%% z_32z_35z_37^6z_42-z_42^5z_44^3, +%%% z_35z_37^8z_42-z_42^6z_44^4 \rangle$ +we see that there are five components +through the monomial ideal $M$ on this toric Hilbert scheme. They +are defined by the ideals: +\begin{itemize} +\item $\langle z_{32}z_{42}z_{44}-z_{37}^2,z_{32}^4z_{35}-z_{42}, +z_{32}^3z_{35}z_{37}^2-z_{42}^2z_{44}, +z_{32}^2z_{35}z_{37}^4-z_{42}^3z_{44}^2,\\ +\indent \indent z_{32}z_{35}z_{37}^6-z_{42}^4z_{44}^3, +z_{35}z_{37}^8-z_{42}^5z_{44}^4 \rangle$ +\item $\langle z_{44},z_{37} \rangle$ +\item $\langle z_{37},z_{42}^2 \rangle$ +\item $\langle z_{42},z_{35} \rangle$ +\item $\langle z_{42},z_{32}^3 \rangle$. +\end{itemize} +All five components are three +dimensional. The first component is an affine patch of the coherent +component and two of the components are not reduced. Let $K$ be the +first of these ideals. + +\beginOutput +i67 : K = ideal(z_32*z_42*z_44-z_37^2,z_32^4*z_35-z_42,\\ +\ z_32^3*z_35*z_37^2-z_42^2*z_44,z_32^2*z_35*z_37^4-z_42^3*z_44^2,\\ +\ z_32*z_35*z_37^6-z_42^4*z_44^3,z_35*z_37^8-z_42^5*z_44^4);\\ +\emptyLine +o67 : Ideal of B\\ +\endOutput + +Applying {\tt removeRedundantVariables} to $K$ we see that +the affine patch of the coherent component is, locally at $M$, +a non-normal hypersurface singularity (agreeing with (\ref{witness})). +The labels on the variables depend on the order of elements in +the initial ideal $M$ computed by \Mtwo in line {\tt i61}. + +\beginOutput +i68 : GG = removeRedundantVariables K;\\ +\emptyLine +o68 : RingMap B <--- B\\ +\endOutput +\beginOutput +i69 : ideal gens gb (GG K)\\ +\emptyLine +\ 5 2\\ +o69 = ideal(z z z - z )\\ +\ 32 35 44 37\\ +\emptyLine +o69 : Ideal of B\\ +\endOutput + +There is a general algorithm due to de Jong \cite{HS:DJ} for +computing the \ie{normalization} of any affine variety. +In the toric case, the problem of normalization amounts to +computing the minimal {\em \ie{Hilbert basis}} of a given convex +rational polyhedral cone \cite{HS:Sch}. An efficient implementation can be +found in the software package {\tt Normaliz}\indexcmd{Normaliz} by Bruns and +Koch \cite{HS:BK}. + +Our computational study of the toric Hilbert scheme in this +chapter was based on local equations rather than +global equations (arising from a projective embedding of $Hilb_A$), +because the latter system of equations tends to be too large +for most purposes. Nonetheless, they are interesting. +In the remainder of this section, we present a canonical +projective embedding of the coherent component of $Hilb_A$. + +Let $G_1, G_2, G_3, \ldots, G_s$ denote all the {\it Graver fibers} of +the matrix $A$. In Section 1 we showed how to compute them in +{\sl Macaulay 2}. Each +set $G_i$ consists of the monomials in $\k[x_1,\ldots,x_n]$ +that have a fixed Graver degree. Consider the set $\, {\mathbf G} \, +:= \, G_1 G_2 G_3 \cdots G_s \,$ that consists of all monomials that +are products of monomials, one from each of the distinct Graver +fibers. Let $t$ denote the cardinality of ${\mathbf G}$. We introduce +an extra indeterminate $z$, and we consider the $\N$-graded semigroup +algebra $\,\k[z {\mathbf G}] $, which is a subalgebra of +$\k[x_1,\ldots,x_n,z]$. The grading of this algebra is $\,deg(z) = 1\,$ and +$\, deg(x_i) = 0$. Labeling the elements of ${\mathbf G}$ with +indeterminates $y_i$, we can write +$$ \k[z {\mathbf G}] = +\k[y_1,y_2,\ldots,y_t]/P_A, $$ +where $P_A$ is a homogeneous toric ideal +associated with a configuration of $t$ vectors in $\ZZ^{n+1}$. +We note that the torus $(\k^*)^n$ acts naturally on +$\, \k[z {\mathbf G}]$. + +\begin{example} \rm +Let $n=4,d=2$ and + $\, A \, = \, \left( \begin{array}{cccc} +3 & 2 & 1 & 0 \\ +0 & 1 & 2 & 3 + \end{array} \right) $, +so that $I_A$ is the ideal of the twisted cubic curve. +There are five Graver fibers: + +\beginOutput +i70 : A = \{\{1,1,1,1\},\{0,1,2,3\}\};\\ +\endOutput +\beginOutput +i71 : I = toricIdeal A;\\ +\emptyLine +o71 : Ideal of R\\ +\endOutput +\beginOutput +i72 : Graver = graver I;\\ +\emptyLine +\ 1 5\\ +o72 : Matrix R <--- R\\ +\endOutput +\beginOutput +i73 : fibers = graverFibers Graver;\\ +\endOutput +\beginOutput +i74 : peek fibers\\ +\emptyLine +o74 = HashTable\{\{2, 2\} => | ac b2 | \}\\ +\ \{2, 3\} => | ad bc |\\ +\ \{2, 4\} => | bd c2 |\\ +\ \{3, 3\} => | a2d abc b3 |\\ +\ \{3, 6\} => | ad2 bcd c3 |\\ +\endOutput + +The set ${\mathbf G} = G_1 G_2 G_3 G_4 G_5 \,$ consists of +$22$ monomials of degree $14$. + +\beginOutput +i75 : G = trim product(values fibers, ideal)\\ +\emptyLine +\ 5 5 4 3 5 5 3 4 4 2 2 4 3 4 4 2 6 4 4 $\cdot\cdot\cdot$\\ +o75 = ideal (a b*c*d , a b d , a c d , a b c d , a b c*d , a b d , a b $\cdot\cdot\cdot$\\ +\emptyLine +o75 : Ideal of R\\ +\endOutput +\beginOutput +i76 : numgens G\\ +\emptyLine +o76 = 22\\ +\endOutput + +We introduce a polynomial ring in $22$ variables +$y_1,y_2,\ldots,y_{22}$, and we compute the ideal $P_A$. +It is generated by $180$ binomial quadrics. + +\beginOutput +i77 : z = symbol z;\\ +\endOutput +\beginOutput +i78 : S = QQ[a,b,c,d,z];\\ +\endOutput +\beginOutput +i79 : zG = z ** substitute(gens G, S);\\ +\emptyLine +\ 1 22\\ +o79 : Matrix S <--- S\\ +\endOutput +\beginOutput +i80 : R = QQ[y_1 .. y_22];\\ +\endOutput +\beginOutput +i81 : F = map(S,R,zG)\\ +\emptyLine +\ 5 5 4 3 5 5 3 4 4 2 2 4 3 4 4 2 6 $\cdot\cdot\cdot$\\ +o81 = map(S,R,\{a b*c*d z, a b d z, a c d z, a b c d z, a b c*d z, a b $\cdot\cdot\cdot$\\ +\emptyLine +o81 : RingMap S <--- R\\ +\endOutput +\beginOutput +i82 : PA = trim ker F\\ +\emptyLine +\ 2 $\cdot\cdot\cdot$\\ +o82 = ideal (y - y y , y y - y y , y y - y y , y y - $\cdot\cdot\cdot$\\ +\ 21 20 22 19 21 18 22 18 21 17 22 17 21 $\cdot\cdot\cdot$\\ +\emptyLine +o82 : Ideal of R\\ +\endOutput + +These equations define a toric surface +of degree $30$ in projective $21$-space. +\beginOutput +i83 : codim PA\\ +\emptyLine +o83 = 19\\ +\endOutput +\beginOutput +i84 : degree PA\\ +\emptyLine +o84 = 30\\ +\endOutput + +The surface is smooth, but there are too many equations and the +codimension is too large to use the Jacobian criterion for smoothness +\cite[\S 16.6]{HS:Eis} directly. Instead we check smoothness for each +open set $y_i \neq 0$. + +\beginOutput +i85 : Aff = apply(1..22, v -> (\\ +\ K = substitute(PA,y_v => 1);\\ +\ FF = removeRedundantVariables K;\\ +\ ideal gens gb (FF K)));\\ +\endOutput +\beginOutput +i86 : scan(Aff, i -> print toString i);\\ +ideal()\\ +ideal()\\ +ideal()\\ +ideal(y_1^4*y_5*y_21-1)\\ +ideal(y_1^4*y_6^6*y_21-1)\\ +ideal()\\ +ideal(y_1^2*y_11^2*y_17-1)\\ +ideal(y_1^3*y_9^2*y_21^2-1)\\ +ideal(y_6^3*y_21-y_10,y_1*y_10^3-y_6^2,y_1*y_6*y_10^2*y_21-1)\\ +ideal(y_6*y_15-1,y_2*y_15^2-y_6*y_14,y_6^2*y_14-y_2*y_15)\\ +ideal()\\ +ideal(y_11*y_13-1,y_1^2*y_21^3-y_13^2)\\ +ideal(y_1^2*y_14^3*y_21^3-1)\\ +ideal(y_10^2*y_21-1,y_1*y_15^4-y_10^3)\\ +ideal()\\ +ideal(y_11*y_20-1,y_3*y_20^2-y_11*y_17,y_11^2*y_17-y_3*y_20)\\ +ideal(y_11*y_18*y_21-1,y_1*y_21^3-y_11*y_18^2,y_11^2*y_18^3-y_1*y_21^2)\\ +ideal(y_1*y_19^4*y_21^4-1)\\ +ideal(y_15*y_22-1)\\ +ideal()\\ +ideal(y_20*y_22-1)\\ +ideal()\\ +\endOutput + +By examining these local equations, we see that $Hilb_A$ is smooth, and also +that there are eight fixed points under the +action of the $2$-dimensional torus. They correspond +to the variables $y_1,y_2,y_3,y_6,y_{11},y_{15},y_{20}$ and $y_{22}$. +By setting any of these eight variables to $1$ in the +$180$ quadrics above, we obtain an affine variety +isomorphic to the affine plane. +\end{example} + +\begin{theorem} \label{isomorphism} +The coherent component of the toric Hilbert scheme $Hilb_A$ is +isomorphic to the projective spectrum $\,Proj \,\k[z {\mathbf G}]\,$ +of the algebra $\k[z {\mathbf G}]$. +\end{theorem} + +\begin{proof} The first +step is to define a morphism from $\,Hilb_A \,$ to +the $(t-1)$-dimensional projective space +$\P({\mathbf G}) = Proj \, \k[y_1,y_2,\ldots,y_t]$. +Consider any point $I$ on $Hilb_A$. We intersect +the ideal $I$ with the finite-dimensional vector space +$\k G_i$, consisting of all homogeneous polynomials +in $\k[x_1,\ldots,x_n]$ that lie in the $i$-th Graver degree. +The definition of $A$-graded ideal implies that +$I \cap \k G_i$ is a linear subspace of codimension $1$ in $\k G_i$. +We represent this subspace by an equation +$\, g_i(I) = \sum_{u \in G_i } c_u x^u \,$, which is +unique up to scaling. Taking the product of these +polynomials for $i=1,\ldots,t$, we get a unique (up to scaling) +polynomial that is supported on ${\mathbf G} = G_1 G_2 \cdots G_t$. +The map $\, I \mapsto g_1(I) g_2(I) \cdots g_t(I)\,$ +defines a morphism from $Hilb_A \,$ to $\P({\mathbf G})$. +This morphism is equivariant with respect to the $(\k^*)^n$-action +on both schemes. + +Consider the restriction of this equivariant + morphism to the coherent component of the toric Hilbert scheme. +It maps the $(\k^*)^n$-orbit of the toric ideal $I_A$ +into the subvariety $\,Proj \,\k[z {\mathbf G}]\,$ +of $\P({\mathbf G})$. This inclusion +is an isomorphism onto the dense torus, +as the dimension of the Newton polytope of +$$ g(I_A) = \prod_{i=1}^t \,(\sum_{u \in G_i } x^u \,) $$ +equals the dimension of the kernel of $A$. Equivalently, +the stabilizer of $g(I_A)$ in $(\k^*)^n$ +consists only of those one-parameter subgroups +$w$ that restrict to zero on the kernel of $A$. + +To show that our morphism is an isomorphism between the coherent component +and $\,Proj \,\k[z {\mathbf G}]$, +we consider the affine chart around an initial monomial ideal +$M = in_w(I_A)$. The polynomial $g(M)$ is a monomial, +namely, it is the product of all standard monomials whose +degree is a Graver degree. Moreover, $g(M)$ is the leading monomial +of $g(I_A)$ with respect to the weight vector $w$. The Newton +polytope of $g(I_A)$ is the Minkowski sum of the Newton polytopes +of the polynomials $\,g_1(I_A), \ldots, g_t(I_A)$, +and it is a state polytope for $I_A$, by \cite[Theorem 7.5]{HS:St2}. + +Let $g(M) = x^q$, and let $\sigma$ be the cone of the +Gr\"obner fan $\Sigma_A$ that has $w$ in its interior. +Then $\sigma$ coincides with the normal cone at the vertex $q$ of +the state polytope described above \cite[\S 3]{HS:St2}. +Consider the restriction of our morphism to the affine chart around $M$ +of the coherent component, as described in (\ref{uv-algebra}). +This restriction defines an isomorphism onto the variety +\begin{equation} +\label{other-uv-algebra} +Spec \,\, \k[\, x^{p-q} \, : \,x^p \in {\mathbf G} \, ] +\end{equation} +On the other hand, the semigroup algebra in (\ref{other-uv-algebra}) +is isomorphic to that in (\ref{uv-algebra}) because +each pair of vectors $\{u_i, v_i\}$ seen in the +reduced Gr\"obner basis lies in one of the Graver fibers $G_j$. +Hence our morphism restricts to an isomorphism from the +affine chart around $M$ of the coherent component onto (\ref{other-uv-algebra}). +Finally, note that (\ref{other-uv-algebra}) is the principal affine +open subset of $\,Proj \,\k[z {\mathbf G}]\,$ defined by the +coordinate $x^q$. Hence we get an isomorphism between the +coherent component of $Hilb_A$ and $\,Proj \,\k[z {\mathbf G}]$. +\qed +\end{proof} + +\appendix + +\section{Fourier-Motzkin Elimination}\index{Fourier-Motzkin elimination}\label{FMe} + +We now give the \Mtwo code for converting the generator/inequality +representation of a rational convex polyhedron to the other. It is +based on the Fourier-Motzkin elimination procedure for eliminating a +variable from a system of inequalities \cite {HS:Zie}. This code was +written by Greg Smith. + +Given any cone $C \subset \R^d$, the polar cone of $C$ is defined to be +$$C^{\vee} = \{ x \in \R^d \mid x \cdot y \leq 0, \mbox{for all\ } y +\in C\}.$$ + +\noindent For a $d \times n$ matrix $Z$, define +$cone(Z) = \{ Z x \mid x \in \R_{\geq 0}^n \} \subset \R^d,$ and +$\mathit{affine}(Z) = \{ Z x \mid x \in \R^n \} \subset \R^d.$ +For two integer matrices $Z$ and $H$, both having $d$ +rows, {\tt polarCone(Z,H)} returns a list of two integer matrices +{\tt\char`\{A,E\char`\}} such that $$cone(Z) + \mathit{affine}(H) = \{ x \in \R^d \mid A^t +x \leq 0, E^t x = 0\}.$$ +Equivalently, $(cone(Z) + \mathit{affine}(H))^\vee = cone(A) + \mathit{affine}(E).$ + +We now describe each routine in the package {\tt polarCone.m2}\indexcmd{polarCone.m2}. We have +simplified the code for readability, sometimes at the cost of efficiency. +We start with three simple subroutines: {\tt primitive}, {\tt toZZ}, and {\tt +rotateMatrix}. + +\medskip +The routine {\tt primitive} takes a list of integers {\tt L}, and divides +each element of this list by their greatest common denominator. + +\beginOutput +i87 : code primitive\\ +\emptyLine +o87 = -- polarCone.m2:16-20\\ +\ primitive = (L) -> (\\ +\ n := #L-1; g := L#n;\\ +\ while n > 0 do (n = n-1; g = gcd(g, L#n);\\ +\ if g === 1 then n = 0);\\ +\ if g === 1 then L else apply(L, i -> i // g));\\ +\endOutput + +\medskip +The routine {\tt toZZ} converts a list of rational numbers to a list of +integers, by multiplying by their common denominator. +\beginOutput +i88 : code toZZ\\ +\emptyLine +o88 = -- polarCone.m2:28-32\\ +\ toZZ = (L) -> (\\ +\ d := apply(L, e -> denominator e);\\ +\ R := ring d#0; l := 1_R;\\ +\ scan(d, i -> (l = (l*i // gcd(l,i)))); \\ +\ apply(L, e -> (numerator(l*e))));\\ +\endOutput + +\medskip +The routine {\tt rotateMatrix} is a kind of transpose. Its input is a +matrix, and its output is a matrix of the same shape as the transpose. +It places the matrix in the form so that in the routine {\tt polarCone}, +computing a Gr\"obner basis will do the Gaussian elimination that is needed. +\beginOutput +i89 : code rotateMatrix\\ +\emptyLine +o89 = -- polarCone.m2:41-43\\ +\ rotateMatrix = (M) -> (\\ +\ r := rank source M; c := rank target M;\\ +\ matrix table(r, c, (i,j) -> M_(c-j-1, r-i-1)));\\ +\endOutput + +\medskip +The procedure of Fourier-Motzkin elimination as presented by +Ziegler in \cite{HS:Zie} is used, together with some heuristics that he +presents as exercises. The following, which is a kind of $S$-pair +criterion for inequalities, comes from Exercise 2.15(i) in \cite{HS:Zie}. + +The routine {\tt isRedundant} determines if a row vector (inequality) +is redundant. Its input argument {\tt V} is the same input that is +used in {\tt fourierMotzkin}: it is a list of sets of integers. Each +entry contains indices of the original rays that do {\sl not} vanish +at the corresponding row vector. {\tt vert} is a set of integers; the +original rays for the row vector in question. A boolean value is +returned. + +\beginOutput +i90 : code isRedundant\\ +\emptyLine +o90 = -- polarCone.m2:57-65\\ +\ isRedundant = (V, vert) -> (\\ +\ -- the row vector is redundant iff 'vert' contains an\\ +\ -- entry in 'V'.\\ +\ x := 0; k := 0;\\ +\ numRow := #V; -- equals the number of inequalities\\ +\ while x < 1 and k < numRow do (\\ +\ if isSubset(V#k, vert) then x = x+1;\\ +\ k = k+1;); \\ +\ x === 1);\\ +\endOutput + +\medskip +The main work horse of {\tt polarCone.m2} is the subroutine +{\tt fourierMotzkin}, which eliminates the first variable in the +inequalities {\tt A} using the double description version of +Fourier-Motzkin elimination. The set {\tt A} is a list of lists of +integers, each entry corresponding to a row vector in the system of +inequalities. The argument {\tt V} is a list of sets of integers. +Each entry contains the indices of the original rays that do {\sl + not} vanish at the corresponding row vector in {\tt A}. Note that +this set is the {\sl complement} of the set $V_i$ appearing in +exercise 2.15 in \cite{HS:Zie}. The argument {\tt spot} is the integer +index of the variable being eliminated. + +The routine returns a list {\tt \char`\{projA,projV\char`\}} where {\tt projA} is +a list of lists of integers. Each entry corresponds to a row vector +in the projected system of inequalities. The list {\tt projV} is a +list of sets of integers. Each entry contains indices of the original +rays that do {\sl not} vanish at the corresponding row vector in {\tt + projA}. + +\beginOutput +i91 : code fourierMotzkin\\ +\emptyLine +o91 = -- polarCone.m2:89-118\\ +\ fourierMotzkin = (A, V, spot) -> (\\ +\ -- initializing local variables\\ +\ numRow := #A; -- equal to the length of V\\ +\ numCol := #(A#0); pos := \{\}; \\ +\ neg := \{\}; projA := \{\}; \\ +\ projV := \{\}; k := 0;\\ +\ -- divide the inequalities into three groups.\\ +\ while k < numRow do (\\ +\ if A#k#0 < 0 then neg = append(neg, k)\\ +\ else if A#k#0 > 0 then pos = append(pos, k)\\ +\ else (projA = append(projA, A#k);\\ +\ projV = append(projV, V#k););\\ +\ k = k+1;); \\ +\ -- generate new irredundant inequalities.\\ +\ scan(pos, i -> scan(neg, j -> (vert := V#i + V#j;\\ +\ if not isRedundant(projV, vert) \\ +\ then (iRow := A#i; jRow := A#j;\\ +\ iCoeff := - jRow#0;\\ +\ jCoeff := iRow#0;\\ +\ a := iCoeff*iRow + jCoeff*jRow;\\ +\ projA = append(projA, a);\\ +\ projV = append(projV, vert););)));\\ +\ -- don't forget the implicit inequalities '-t <= 0'.\\ +\ scan(pos, i -> (vert := V#i + set\{spot\};\\ +\ if not isRedundant(projV, vert) then (\\ +\ projA = append(projA, A#i);\\ +\ projV = append(projV, vert););));\\ +\ -- remove the first column \\ +\ projA = apply(projA, e -> e_\{1..(numCol-1)\});\\ +\ \{projA, projV\}); \\ +\endOutput + +\medskip +As mentioned above, {\tt polarCone} takes two matrices {\tt Z, H}, +both having $d$ rows, and outputs a pair of matrices {\tt A, E} +such that $(\operatorname{cone}(Z) + \operatorname{affine}(H))^\vee = +\operatorname{cone}(A) + \operatorname{affine}(E).$ + +\beginOutput +i92 : code(polarCone,Matrix,Matrix)\\ +\emptyLine +o92 = -- polarCone.m2:137-192\\ +\ polarCone(Matrix, Matrix) := (Z, H) -> (\\ +\ R := ring source Z;\\ +\ if R =!= ring source H then error ("polarCone: " | \\ +\ "expected matrices over the same ring");\\ +\ if rank target Z =!= rank target H then error (\\ +\ "polarCone: expected matrices to have the " |\\ +\ "same number of rows"); \\ +\ if (R =!= ZZ) then error ("polarCone: expected " | \\ +\ "matrices over 'ZZ'");\\ +\ -- expressing 'cone(Y)+affine(B)' as '\{x : Ax <= 0\}'\\ +\ Y := substitute(Z, QQ); B := substitute(H, QQ); \\ +\ if rank source B > 0 then Y = Y | B | -B;\\ +\ n := rank source Y; d := rank target Y; \\ +\ A := Y | -id_(QQ^d);\\ +\ -- computing the row echelon form of 'A'\\ +\ A = gens gb rotateMatrix A;\\ +\ L := rotateMatrix leadTerm A;\\ +\ A = rotateMatrix A;\\ +\ -- find pivots\\ +\ numRow = rank target A; -- numRow <= d\\ +\ i := 0; pivotCol := \{\};\\ +\ while i < numRow do (j := 0;\\ +\ while j < n+d and L_(i,j) =!= 1_QQ do j = j+1;\\ +\ pivotCol = append(pivotCol, j);\\ +\ i = i+1;);\\ +\ -- computing the row-reduced echelon form of 'A'\\ +\ A = ((submatrix(A, pivotCol))^(-1)) * A;\\ +\ -- converting 'A' into a list of integer row vectors \\ +\ A = entries A;\\ +\ A = apply(A, e -> primitive toZZ e);\\ +\ -- creating the vertex list 'V' for double description\\ +\ -- and listing the variables 'T' which remain to be\\ +\ -- eliminated\\ +\ V := \{\}; T := toList(0..(n-1));\\ +\ scan(pivotCol, e -> (if e < n then (T = delete(e, T);\\ +\ V = append(V, set\{e\});)));\\ +\ -- separating inequalities 'A' and equalities 'E'\\ +\ eqnRow := \{\}; ineqnRow := \{\};\\ +\ scan(numRow, i -> (if pivotCol#i >= n then \\ +\ eqnRow = append(eqnRow, i)\\ +\ else ineqnRow = append(ineqnRow, i);)); \\ +\ E := apply(eqnRow, i -> A#i);\\ +\ E = apply(E, e -> e_\{n..(n+d-1)\});\\ +\ A = apply(ineqnRow, i -> A#i);\\ +\ A = apply(A, e -> e_(T | toList(n..(n+d-1)))); \\ +\ -- successive projections eliminate the variables 'T'.\\ +\ if A =!= \{\} then scan(T, t -> (\\ +\ D := fourierMotzkin(A, V, t);\\ +\ A = D#0; V = D#1;));\\ +\ -- output formating\\ +\ A = apply(A, e -> primitive e);\\ +\ if A === \{\} then A = map(ZZ^d, ZZ^0, 0)\\ +\ else A = transpose matrix A;\\ +\ if E === \{\} then E = map(ZZ^d, ZZ^0, 0)\\ +\ else E = transpose matrix E;\\ +\ (A, E)); \\ +\endOutput + +If the input matrix $H$ has no columns, it can be omitted. A sequence of two +matrices is returned, as above. +\beginOutput +i93 : code(polarCone,Matrix)\\ +\emptyLine +o93 = -- polarCone.m2:199-200\\ +\ polarCone(Matrix) := (Z) -> (\\ +\ polarCone(Z, map(ZZ^(rank target Z), ZZ^0, 0)));\\ +\endOutput + +As a simple example, consider the permutahedron in $\R^3$ +whose vertices are the following six points. + +\beginOutput +i94 : H = transpose matrix\{\\ +\ \{1,2,3\},\\ +\ \{1,3,2\},\\ +\ \{2,1,3\},\\ +\ \{2,3,1\},\\ +\ \{3,1,2\},\\ +\ \{3,2,1\}\};\\ +\emptyLine +\ 3 6\\ +o94 : Matrix ZZ <--- ZZ\\ +\endOutput + +The inequality representation of the permutahedron is obtained +by calling {\tt polarCone} on $H$: the facet normals of the +polytope are the columns of the matrix in the first argument of the +output. The second argument is trivial since our input is a polytope +and hence there are is no non-trivial affine space contained in it. +If we call {\tt polarCone} on the output, we will get back H as +expected. + +\beginOutput +i95 : P = polarCone H\\ +\emptyLine +o95 = (| 1 1 1 -1 -1 -5 |, 0)\\ +\ | -1 1 -5 1 -1 1 |\\ +\ | -1 -5 1 -1 1 1 |\\ +\emptyLine +o95 : Sequence\\ +\endOutput +\beginOutput +i96 : Q = polarCone P_0\\ +\emptyLine +o96 = (| 1 1 2 2 3 3 |, 0)\\ +\ | 2 3 1 3 1 2 |\\ +\ | 3 2 3 1 2 1 |\\ +\emptyLine +o96 : Sequence\\ +\endOutput + + +\section{Minimal Presentation of Rings}\label{Mpor} + +Throughout this chapter, we have used on several occasions the simple, yet +useful subroutine {\tt removeRedundantVariables}. +In this appendix, we present \Mtwo code for this routine, +which is the main ingredient for finding minimal +presentations of quotients of polynomial rings. +Our code for this routine is a somewhat simplified, but less +efficient version of a routine in the \Mtwo package, {\tt minPres.m2}\indexcmd{minPres.m2}, +written by Amelia Taylor. + +The routine {\tt removeRedundantVariables} takes as input an ideal {\tt I} in +a polynomial ring {\tt A}. It returns a ring map {\tt F} from {\tt A} to +itself that sends redundant variables to polynomials in the non-redundant +variables and sends non-redundant variables to themselves. For example: + \beginOutput +i97 : A = QQ[a..e];\\ +\endOutput + \beginOutput +i98 : I = ideal(a-b^2-1, b-c^2, c-d^2, a^2-e^2)\\ +\emptyLine +\ 2 2 2 2 2\\ +o98 = ideal (- b + a - 1, - c + b, - d + c, a - e )\\ +\emptyLine +o98 : Ideal of A\\ +\endOutput + \beginOutput +i99 : F = removeRedundantVariables I\\ +\emptyLine +\ 8 4 2\\ +o99 = map(A,A,\{d + 1, d , d , d, e\})\\ +\emptyLine +o99 : RingMap A <--- A\\ +\endOutput +The non-redundant variables are $d$ and $e$. The image of $I$ under $F$ +gives the elements in this smaller set of variables. We take the ideal of a +Gr\"obner basis of the image: + \beginOutput +i100 : I1 = ideal gens gb(F I)\\ +\emptyLine +\ 16 8 2\\ +o100 = ideal(d + 2d - e + 1)\\ +\emptyLine +o100 : Ideal of A\\ +\endOutput +The original ideal can be written in a cleaner way as + \beginOutput +i101 : ideal compress (F.matrix - vars A) + I1\\ +\emptyLine +\ 8 4 2 16 8 2\\ +o101 = ideal (d - a + 1, d - b, d - c, d + 2d - e + 1)\\ +\emptyLine +o101 : Ideal of A\\ +\endOutput + + Let us now describe the \Mtwo code. The subroutine {\tt + findRedundant} takes a polynomial $f$, and finds a variable $x_i$ + in the ring of $f$ such that $f = c x_i + g$ for a non-zero + constant $c$ and a polynomial $g$ that does not involve the + variable $x_i$. If there is no such variable, {\tt null} is + returned. Otherwise, if $x_i$ is the first such variable , the list + $\{i, c^{-1} g\}$ is returned. + +\beginOutput +i102 : code findRedundant\\ +\emptyLine +o102 = -- minPres.m2:1-12\\ +\ findRedundant=(f)->(\\ +\ A := ring(f);\\ +\ p := first entries contract(vars A,f);\\ +\ i := position(p, g -> g != 0 and first degree g === 0);\\ +\ if i === null then\\ +\ null\\ +\ else (\\ +\ v := A_i;\\ +\ c := f_v;\\ +\ \{i,(-1)*(c^(-1)*(f-c*v))\}\\ +\ )\\ +\ )\\ +\endOutput + +The main function {\tt removeRedundantVariables} requires an ideal in a +polynomial ring (not a quotient ring) as input. The internal +routine {\tt findnext} finds the first entry of the (one row) matrix {\tt M} +that contains a redundancy. This redundancy is used to modify the list {\tt +xmap}, which contains the images of the redundant variables. +The matrix {\tt M}, and the list {\tt xmap} are both updated, and +then we continue to look for more redundancies. + +\beginOutput +i103 : code removeRedundantVariables\\ +\emptyLine +o103 = -- minPres.m2:14-39\\ +\ removeRedundantVariables = (I) -> (\\ +\ A := ring I;\\ +\ xmap := new MutableList from gens A; \\ +\ M := gens I;\\ +\ findnext := () -> (\\ +\ p := null;\\ +\ next := 0;\\ +\ done := false;\\ +\ ngens := numgens source M;\\ +\ while next < ngens and not done do (\\ +\ p = findRedundant(M_(0,next));\\ +\ if p =!= null then\\ +\ done = true\\ +\ else next=next+1;\\ +\ );\\ +\ p);\\ +\ p := findnext();\\ +\ while p =!= null do (\\ +\ xmap#(p#0) = p#1;\\ +\ F1 := map(A,A,toList xmap);\\ +\ F2 := map(A,A, F1 (F1.matrix));\\ +\ xmap = new MutableList from first entries F2.matrix;\\ +\ M = compress(F2 M);\\ +\ p = findnext();\\ +\ );\\ +\ map(A,A,toList xmap));\\ +\endOutput +\begin{thebibliography}{10} + +\bibitem{HS:Arn} +V.I. Arnold: +\newblock A-graded algebras and continued fractions. +\newblock {\em Communications in Pure and Applied Mathematics}, 42:993--1000, + 1989. + +\bibitem{HS:BLR} +A~Bigatti, R.~La~Scala, and L.~Robbiano: +\newblock Computing toric ideals. +\newblock {\em Journal of Symbolic Computation}, 27:351--365, 1999. + +\bibitem{HS:BFS} +L.~J. Billera, P.~Filliman, and B.~Sturmfels: +\newblock Constructions and complexity of secondary polytopes. +\newblock {\em Advances in {M}athematics}, 83:155--179, 1990. + +\bibitem{HS:BK} +W.~Bruns and R.~Koch: +\newblock Normaliz, a program to compute normalizations of semigroups. +\newblock available by anonymous ftp from + ftp.mathematik.Uni-Osnabrueck.DE/pub/osm/kommalg/software/. + +\bibitem{HS:CLO} +D.~Cox, J.~Little, and D.~O'Shea: +\newblock {\em Ideals, Varieties, and Algorithms. An Introduction to + Computational Algebraic Geometry and Commutative Algebra}. +\newblock Springer-Verlag, New York, 1997. + +\bibitem{HS:DJ} +T.~de~Jong: +\newblock An algorithm for computing the integral closure. +\newblock {\em Journal of Symbolic Computation}, 26:273--277, 1998. + +\bibitem{HS:Eis} +D.~Eisenbud: +\newblock {\em Commutative Algebra with a View Toward Algebraic Geometry}. +\newblock Springer-Verlag, New York, 1994. + +\bibitem{HS:GKZ} +I.~M. Gel'fand, M.~Kapranov, and A.~Zelevinsky: +\newblock {\em Multidimensional Determinants, Discriminants and Resultants}. +\newblock Birkh{\"a}user, Boston, 1994. + +\bibitem{HS:Gra} +J.E. Graver: +\newblock On the foundations of linear and integer programming. +\newblock {\em Mathematical Programming}, 8:207--226, 1975. + +\bibitem{HS:HM} +S.~Ho{\c{s}}ten and D.~Maclagan: +\newblock The vertex ideal of a lattice. +\newblock {P}reprint 2000. + +\bibitem{HS:HS} +S.~Ho{\c{s}}ten and J.~Shapiro: +\newblock Primary decomposition of lattice basis ideals. +\newblock {\em Journal of Symbolic Computation}, 29:625--639, 2000. + +\bibitem{HS:HT} +B.~Huber and R.R. Thomas: +\newblock Computing {G}r\"obner fans of toric ideals. +\newblock {\em Experimental Mathematics}, 9:321--331, 2000. +\newblock Software, {TiGERS}, available at + {http://www.math.washington.edu/\~{}thomas/programs.html}. + +\bibitem{HS:KPR} +E.~Korkina, G.~Post, and M.~Roelofs: +\newblock Classification of generalized ${A}$-graded algebras with $3$ + generators. +\newblock {\em Bulletin de Sciences Math\'ematiques}, 119:267--287, 1995. + +\bibitem{HS:MT} +D.~Maclagan and R.R. Thomas: +\newblock Combinatorics of the toric {H}ilbert scheme. +\newblock {\em Discrete and Computational Geometry}. +\newblock To appear. + +\bibitem{HS:MR} +T.~Mora and L.~Robbiano: +\newblock The {G}r\"obner fan of an ideal. +\newblock {\em Journal of Symbolic Computation}, 6:183--208, 1998. + +\bibitem{HS:PS2} +I.~Peeva and M.~Stillman: +\newblock Local equations for the toric {H}ilbert scheme. +\newblock {\em Advances in Applied Mathematics}. +\newblock To appear. + +\bibitem{HS:PS1} +I.~Peeva and M.~Stillman: +\newblock Toric {H}ilbert schemes. +\newblock Preprint 1999. + +\bibitem{HS:Reiner} +V.~Reiner: +\newblock The generalized {B}aues problem. +\newblock In L.~Billera, A.~Bj{\"o}rner, C.~Greene, R.~Simion, and R.~Stanley, + editors, {\em New {P}erspectives in Algebraic Combinatorics}. Cambridge + University Press, 1999. + +\bibitem{HS:San} +F.~Santos: +\newblock A point configuration whose space of triangulations is disconnected. +\newblock {\em Journal of the American Math.~Soc.}, 13:611--637, 2000. + +\bibitem{HS:Sch} +A.~Schrijver: +\newblock {\em Theory of Linear and Integer Programming}. +\newblock Wiley-Interscience, Chichester, 1986. + +\bibitem{HS:St1} +B.~Sturmfels: +\newblock The geometry of ${A}$-graded algebras. +\newblock math.AG/9410032. + +\bibitem{HS:St2} +B.~Sturmfels: +\newblock {\em Gr\"obner Bases and Convex Polytopes}, volume~8. +\newblock American Mathematical Society, University Lectures, 1996. + +\bibitem{HS:ST} +B.~Sturmfels and R.R. Thomas: +\newblock Variation of cost functions in integer programming. +\newblock {\em Mathematical Programming}, 77:357--387, 1997. + +\bibitem{HS:Tho} +R.R. Thomas: +\newblock Applications to integer programming. +\newblock In D.A. Cox and B.~Sturmfels, editors, {\em Applications of + Computational Algebraic Geometry}. AMS Proceedings of Symposia in Applied + Mathematics, 1997. + +\bibitem{HS:Zie} +G.~Ziegler: +\newblock {\em Lectures on Polytopes}, volume 152. +\newblock Springer-Verlag, New York, 1995. + +\end{thebibliography} +\egroup +\makeatletter +\renewcommand\thesection{\@arabic\c@section} +\makeatother + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% +%%%%% ../chapters/exterior-algebra/chapter +%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\bgroup +\title{Sheaf Algorithms Using the Exterior Algebra} +\titlerunning{Sheaf Algorithms} +\toctitle{Sheaf Algorithms Using the Exterior Algebra} +\author{Wolfram Decker + % \inst 1 + \and David Eisenbud + % \inst 2 + } +\authorrunning{W. Decker and D. Eisenbud} +% \institute{FB Mathematik, Universit\"at des Saarlandes, 66041 Saarbr\"ucken, Germany +% \and +% 1000 Centennial Drive, Mathematical Sciences Research Institute, Berkeley, CA 94720, USA} + +%%%%%%%%%%%%% EISENBUDS %%%%%%%%%%%%%%%%%% +%\input begin.tex +%\showlabels +%\showlabelsabove +% \input diagrams.tex +%\vsize=13.6truecm +%\hsize=19truecm +% \overfullrule=0pt +% Gothic fonts from AMSTeX +\font\tengoth=eufm10 \font\fivegoth=eufm5 +\font\sevengoth=eufm7 +\newfam\gothfam \scriptscriptfont\gothfam=\fivegoth +\textfont\gothfam=\tengoth \scriptfont\gothfam=\sevengoth +\def\goth{\fam\gothfam\tengoth} +% +% Bold italic fonts +\font\tenbi=cmmib10 \font\fivebi=cmmib5 +\font\sevenbi=cmmib7 +\newfam\bifam \scriptscriptfont\bifam=\fivebi +\textfont\bifam=\tenbi \scriptfont\bifam=\sevenbi +\def\bi{\fam\bifam\tenbi} +% +\font\hd=cmbx10 scaled\magstep1 +%%%%%%%%%%%%%%%%%%%%%% EISENBUD ENDE %%%%%%%%%%%%%%%%%% + +%\usepackage{amsmath,amscd,amsthm,amssymb,amsxtra,latexsym,epsfig,epic,eepic,graphics} + +% \usepackage{amsmath,amscd,amsthm,amssymb,amsxtra,latexsym,epsfig,epic,graphics} + +% \usepackage[matrix,arrow,curve]{xy} +% + +\def \fix#1 {{\par \bf (( #1 ))\par}} +\def \Box {\hfill\hbox{}\nobreak \vrule width 1.6mm height 1.6mm +depth 0mm \par \goodbreak \smallskip} +\def \reg {\mathop{\rm regularity}} +\def \coker {\mathop{\rm coker}} +\def \ker {\mathop{\rm ker}} +\def \im {\mathop{\rm im}} +\def \deg {\mathop{\rm deg}} +\def \depth {\mathop{\rm depth}} +\def \span {\mathop{\rm span}} +\def \socle {\mathop{\rm socle}} +\def \dim{{\rm dim}} +\def \codim{{\rm codim}} +\def \Im {\mathop{\rm Im}} +\def \ann {\mathop{\rm ann}} +\def \rank {\mathop{\rm rank}} +\def \sing {\mathop{\rm Sing}} +\def \iso {\cong} +\def \tensor {\otimes} +\def \dsum {\oplus} +\def \intersect {\cap} +\def \Hom {{\mathop{\rm Hom}\nolimits}} +\def \hom {{\mathop{\rm Hom}\nolimits}} +\def \Ext {{\rm Ext}} +\def \ext{{\rm Ext}} +\def \Tor {{\rm Tor}} +\def \tor{{\rm Tor}} +\def \Sym {{\mathop{\rm Sym}\nolimits}} +\def \End {{\mathop{\rm End}\nolimits}} +\def \sym{{\rm Sym}} +\def \GL{{\rm GL}} +\def \Proj{{\rm Proj}} +\def \h {{\rm h}} + +\def \coh{{\rm Coh}} +%\def \BGG{{\rm BGG}} +\def \lin{{\rm lin}} + +\def \th {{^{\rm th}}} +\def \st {{^{\rm st}}} + + +\def \A {{\cal A}} +\def \AA {{\bf A}} +\def \B {{\cal B}} +\def \C {{\cal C}} +\def \CC {{\bf C}} +\def \DD {{\bf D}} +\def \E {{\cal E}} +\def \F {{\cal F}} +\def \FF {{\bf F}} +\def \G {{\cal G}} +\def \GG {{\bf G}} +\def \K {{\cal K}} +\def \H {{\rm H}} +\def \KK {{\bf K}} +\def \L {{\cal L}} +\def \LL {{\bf L}} +\def \MM{{\bf M}} +\def \N {{\cal N}} +\def \O {{\cal O}} +\def \P {{\bf P}} +\def \PP {{\bf P}} +\def \RR {{\bf R}} +\def \TT {{\bf T}} +\def \Z {{\bf Z}} + +\def \gm {{\goth m}} + + + +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%The black board font +%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\newcommand{\A}{{\mathbb A}} +%\newcommand{\B}{{\mathbb B}} +%\newcommand{\C}{{\mathbb C}} +%\newcommand{\D}{{\mathbb D}} +%\newcommand{\E}{{\mathbb E}} +%\newcommand{\F}{{\mathbb F}} +%\newcommand{\G}{{\mathbb G}} +%\newcommand{\H}{{\mathbb H}} +%\newcommand{\I}{{\mathbb I}} +%\newcommand{\J}{{\mathbb J}} +%\newcommand{\K}{{\mathbb K}} +%\newcommand{\L}{{\mathbb L}} +%\newcommand{\M}{{\mathbb M}} +%\newcommand{\N}{{\mathbb N}} +%\newcommand{{\mathbb O}} +%\newcommand{{\mathbb P}} +\newcommand{\QQ}{{\mathbb Q}} +%\newcommand{\R}{{\mathbb R}} +%\newcommand{{\mathbb S}} +%\newcommand{\T}{{\mathbb T}} +%\newcommand{\U}{{\mathbb U}} +%\newcommand{\V}{{\mathbb V}} +%\newcommand{\W}{{\mathbb W}} +%\newcommand{\X}{{\mathbb X}} +%\newcommand{\Y}{{\mathbb Y}} +%\newcommand{\Z}{{\mathbb Z}} + +%\newcommand{\LL}{{\mathbb L}} +%\newcommand{\TT}{{\mathbb T}} +%\newcommand{\HH}{{\mathbb H}} + +\def\pp#1{{\text{$\text{I\!P}_#1$}}} +%\newcommand{\PP}{{\mathbb P}} + +%\DeclareMathOperator{\gin}{gin} + +%\newcommand{\Syz}{{\rm{Syz}\;}} +%\newcommand{\sym}{{\rm{Sym}}} +%\newcommand{\SSyz}{{\rm{Syz}}} +%\newcommand{\spoly}{{\rm{spoly}}} +%\newcommand{\Spe}{{\rm{Sp}}} +%\newcommand{\openC}{{\mathbb C}} +%\newcommand{\ms}{{\rm{m}}} +\newcommand{\SL}{{\rm{SL}}} +%\newcommand{\IS}{{\rm{I}}} +%\newcommand{\Loc}{{\rm{Loc}\,}} +%\newcommand{\lcm}{{\rm{lcm}}} +%\newcommand{\lc}{{\rm{lc}}} +%\newcommand{\lm}{{\rm{lm}}} +%\newcommand{\con}{{\rm{c}}} +%\newcommand{\ext}{{\rm{e}}} +%\newcommand{\ec}{{\rm{ec}}} +%\newcommand{\ann}{{\rm{ann}}} +%\newcommand{\Ext}{{\rm{Ext}}} +%\newcommand{\equi}{{\rm{equi}}} +%\newcommand{\rk}{{\rm{rk}}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% new commands for calligraphic characters with amsmath +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand{\ka}{{\mathcal A}} +\newcommand{\kb}{{\mathcal B}} +\newcommand{\kc}{{\mathcal C}} +\newcommand{\kd}{{\mathcal D}} +\newcommand{\ke}{{\mathcal E}} +\newcommand{\kf}{{\mathcal F}} +\newcommand{\kg}{{\mathcal G}} +\newcommand{\kh}{{\mathcal H}} +\newcommand{\ki}{{\mathcal I}} +\newcommand{\kj}{{\mathcal J}} +\newcommand{\kk}{{\mathcal K}} +\newcommand{\kl}{{\mathcal L}} +\newcommand{\km}{{\mathcal M}} +\newcommand{\kn}{{\mathcal N}} +\newcommand{\ko}{{\mathcal O}} +\newcommand{\kp}{{\mathcal P}} +\newcommand{\kq}{{\mathcal Q}} +\newcommand{\kr}{{\mathcal R}} +\newcommand{\ks}{{\mathcal S}} +\newcommand{\kt}{{\mathcal T}} +\newcommand{\ku}{{\mathcal U}} +\newcommand{\kv}{{\mathcal V}} +\newcommand{\kw}{{\mathcal W}} +\newcommand{\kx}{{\mathcal X}} +\newcommand{\ky}{{\mathcal Y}} +\newcommand{\kz}{{\mathcal Z}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%The mathscript for sheaves +%%%%%%%%%%%%%%%%%%%%% %%%%%%%%% +\newcommand{\s}{\mathscr} +\newcommand{\sA}{{\s A}} +\newcommand{\sB}{{\s B}} +\newcommand{\sC}{{\s C}} +\newcommand{\sD}{{\s D}} +\newcommand{\sE}{{\s E}} +\newcommand{\sF}{{\s F}} +\newcommand{\sG}{{\s G}} +\newcommand{\sH}{{\s H}} +\newcommand{\sI}{{\s I}} +\newcommand{\sJ}{{\s J}} +\newcommand{\sK}{{\s K}} +\newcommand{\sL}{{\s L}} +\newcommand{\sM}{{\s M}} +\newcommand{\sN}{{\s N}} +\newcommand{\sO}{{\s O}} +\newcommand{\sP}{{\s P}} +\newcommand{\sQ}{{\s Q}} +\newcommand{\sR}{{\s R}} +\newcommand{\sS}{{\s S}} +\newcommand{\sT}{{\s T}} +\newcommand{\sU}{{\s U}} +\newcommand{\sV}{{\s V}} +\newcommand{\sW}{{\s W}} +\newcommand{\sX}{{\s X}} +\newcommand{\sY}{{\s Y}} +\newcommand{\sZ}{{\s Z}} + +\newcommand{\cO}{{\s O}} +\newcommand{\cI}{{\s I}} +% \newcommand{\cL}{{\s L}} %% \cL is used in \xy +% \newcommand{\cR}{{\s R}} %% \cR is used in \xy +\newcommand{\cN}{{\s N}} +\newcommand{\cT}{{\s T}} +\newcommand{\cX}{{\s X}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Arrows +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\inj}{\hookrightarrow} +\newcommand{\surj}{\lra \lra} +\newcommand{\lra}{\longrightarrow} +\newcommand{\lla}{\longleftarrow} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\newcommand{\C}{\C} +\newcommand{\openP} +\newcommand{\uf}{{\bf F}} +\newcommand{\uc}{{\bf C}} +%\newcommand{\tensor}{\otimes} +\newcommand{\mi}{{\bf m}} +\newcommand{\tX}{\widetilde{X}} +\newcommand{\punkt}{\hspace{-.3ex}\raise.15ex\hbox to1ex{\Huge.}} +\newcommand{\tpunkt}{\hspace{-.3ex}\hbox to1ex{\Huge.}} +\newlength{\br} +\newlength{\ho} +%\DeclareMathOperator{\GL}{GL} +%\DeclareMathOperator{\Aut}{Aut} +%\DeclareMathOperator{\Oo}{O} +%\DeclareMathOperator{\Spec}{Spec} +%\DeclareMathOperator{\Hom}{Hom} +%\DeclareMathOperator{\Tor}{Tor} +%\DeclareMathOperator{\syz}{syz} +%\DeclareMathOperator{\ord}{ord} +%\DeclareMathOperator{\word}{w\,ord} +%\DeclareMathOperator{\supp}{supp} +%\DeclareMathOperator{\Ker}{Ker} +%\DeclareMathOperator{\im}{im} +%\DeclareMathOperator{\wdeg}{w\,deg} +%\DeclareMathOperator{\depth}{depth} +%\DeclareMathOperator{\Coker}{Coker} +%\DeclareMathOperator{\NF}{NF} +%\DeclareMathOperator{\pd}{pd} +%\DeclareMathOperator{\SL}{SL} +%\DeclareMathOperator{\SO}{SO} +%\DeclareMathOperator{\Ort}{O} +%\DeclareMathOperator{\Spez}{Sp} +%\DeclareMathOperator{\PSL}{PSL} +%\DeclareMathOperator{\wdim}{wdim} +%\DeclareMathOperator{\cdim}{cdim} +%\DeclareMathOperator{\cha}{char} +%\DeclareMathOperator{\trdeg}{trdeg} +%\DeclareMathOperator{\codim}{codim} +%\DeclareMathOperator{\kdim}{kdim} +%\DeclareMathOperator{\height}{height} +%\DeclareMathOperator{\Ass}{Ass} +%\DeclareMathOperator{\Lie}{Lie} +\renewcommand{\labelenumi}{(\arabic{enumi})} +\newcommand{\Ndash}{\nobreakdash--}% for pages 1\Ndash 9 +\newcommand{\somespace}{\hfill{}\\ \vspace{-0.7cm}} + +%%%theosdefinitionen +%newcommand{\gm}{\mathfrak m} +%newcommand{\integer}{\Z} +%newcommand{\proj} +%newcommand{\complex}{\C} +%newcommand{\real}{\mathbb R} +%newcommand{\gp}{\mathfrak p} +%newcommand{\gq}{\mathfrak q} +%newcommand{\scr}{\cal} +%newcommand{\openF}{\F} +%\newcommand{\CC}{\mathbb C} +%newcommand{\ZZ}{\Z} +%newcommand{\QQ}{\Q} +%newcommand{\FF}{\F} + +%%%%%%%%%%%%%%%BIBLIOGRAPHY +%newcommand{\by}{} +%newcommand{\paper}{: \begin{it}} +%newcommand{\jour }{, \end{it}} +%newcommand{\vol}{} +%newcommand{\pages}{} +%newcommand{\yr}{} +%\newcommand{\endref}{} +% Local Variables: +% mode: latex +% TeX-master: "tot" +% End: +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% HOLGERs Stze +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\maketitle + +\begin{abstract} +In this chapter we explain constructive methods for computing +the cohomology of a sheaf on a projective variety. We also +give a construction for the Beilinson monad, a tool for +studying the sheaf from partial knowledge of its cohomology. +Finally, we give some examples illustrating the use of the Beilinson +monad. +\end{abstract} + +\section{Introduction} + +%\textbf{EISENBUD} + +In this chapter $V$ denotes a vector space of finite dimension $n+1$ over +a field $K$ with dual space $W=V^*$, and $S=\sym_K(W)$ is the symmetric +algebra of $W$, isomorphic to the polynomial ring on a basis for $W$. +We write $E$ for the \ie{exterior algebra} on $V$. We grade +$S$ and $E$ by taking elements of $W$ to have +degree 1, and elements of $V$ to have degree $-1$. +We denote the projective space of 1-quotients of $W$ +(or of lines in $V$) by $\P^n = \P(W)$. + +Serre's sheafification functor $M\mapsto \tilde M$ +allows one to consider a coherent sheaf on $\P(W)$ as an +equivalence class of +finitely generated graded $S$-modules, where we identify two such modules +$M$ and $M'$ if, for some $r$, the truncated modules $M_{\geq r}$ and +$M'_{\geq r}$ are isomorphic. A free resolution of $M$, +sheafified, becomes a resolution of $\tilde M$ by sheaves that +are direct sums of line bundles on $\P(W)$ -- that is, a +description of $\tilde M$ in terms of homogeneous matrices +over $S$. Being able to compute +syzygies over +$S$ one can compute the cohomology of $\tilde M$ +starting from the minimal free resolution of $M$ (see +\cite{EA:MR1484973:eisenbud}, \cite{smith} +and Remark \ref{cohold} below). + +The \ie{Bernstein-Gel'fand-Gel'fand correspondence} (\ie{BGG}) is an isomorphism +between the derived category of bounded complexes of finitely +ge\-nerated $S$-modules and the derived category of +bounded complexes of finitely generated $E$-modules +or of certain ``\ie{Tate resolution}s'' of $E$-modules. +In this chapter we show how to effectively compute +the Tate resolution $\TT(\mathcal F)$ +associated to a sheaf $\mathcal F$, and we use this construction +to give relatively cheap computations of the cohomology of $\mathcal F$. + +It turns out that by applying a simple functor to the Tate resolution $\TT(\mathcal F)$ +one gets a finite complex of sheaves whose homology is the sheaf $\mathcal F$ +itself. This complex is called a +{\it Beilinson monad\/} +\index{Beilinson monad} \index{monad!Beilinson} +for $\mathcal F$. The Beilinson monad +provides a powerful method for getting information about a sheaf from +partial knowledge of its cohomology. +It is a representation of the sheaf in terms of direct sums of +(suitably twisted) bundles of differentials and homomorphisms between these +bundles, which are given by homogeneous matrices over $E$. + +The following recipe for computing the cohomology of a sheaf +is typical of our methods: Suppose that +$\F=\tilde M$ is the coherent sheaf on $\P(W)$ associated to a +finitely generated graded $S$-module $M=\oplus M_i$. To +compute the cohomology of $\F$ we consider a +sequence of free $E$-modules and maps +$$ +\FF(M):\quad \cdots \rTo F^{i-1}\rTo^{\phi_{i-1}} +F^i\rTo^{\phi_{i}} +F^{i+1}\rTo\cdots. +$$ +Here we set $F^i=M_i \otimes_K E$ and define $\phi_i:F^i\rTo F^{i+1}$ to be the +map taking $m\otimes 1\in M_{i}\otimes_K E$ to +$$ +\sum_j x_jm\otimes e_j\in M_{i+1}\otimes V\subset F^{i+1}, +$$ +where $\{x_j\}$ and $\{e_j\}$ are dual bases of $W$ and $V$ +respectively. It turns out that $\FF(M)$ +is a complex; that is, $\phi_i\phi_{i-1}=0$ for +every $i$ (the reader may easily check this by direct +computation; a proof without indices is given in +\cite{EA:eis-sch:sheaf}). %Eisenbud and Schreyer [2000]. +If we regard $M_i$ as a vector space concentrated +in degree $i$, so that $F^i$ is a direct sum of copies of $E(-i)$, +then these maps are homogeneous of degree 0. + +We shall see that if $s$ is a sufficiently large integer then +the truncation of the Tate resolution +$$ +F^s\rTo^{\phi_s} F^{s+1}\rTo\cdots +$$ +is exact and is thus the minimal injective +resolution of the finitely generated graded $E$-module +$P_s=\ker \phi_{s+1}$. (In fact any value of $s$ greater +than the +Castelnuovo-Mumford regularity of $M$ will do.) + +Because the number of monomials +in $E$ in any given degree is small compared to the number of monomials of +that degree in the symmetric algebra, it is relatively cheap to compute a free +resolution of +$P_s$ over $E$, and thus to +compute the graded vector +spaces $\Tor^E_t(P_s,K)$. Our algorithm exploits the fact, proved in +\cite{EA:eis-sch:sheaf}, %Eisenbud and Schreyer [2000], +that the $j^\th$ cohomology $\H^j\F$ of $\F$ +in the Zariski topology is isomorphic to the degree $-n-1$ part of +$\Tor^E_{s-j}(P_s,K)$; that is, +$$ +\H^j\F\cong\Tor^E_{s-j}(P_s,K)_{-n-1}. +$$ +In addition, the linear parts of the matrices +in the complex $\TT(\mathcal F)$ determine the +graded +$S$-modules +$$ +\H^j_*\mathcal F := \oplus_{i\in\mathbb Z}\, \H^j \mathcal F(i)\ . +$$ +In many cases this is the fastest known method for computing cohomology. + +Section 2 of this paper is devoted to a sketch of the +Eisenbud-Fl{\o}ystad-Schreyer approach +to the Bernstein-Gel'fand-Gel'fand correspondence, and +the computation of cohomology, together with \Mtwo programs +that carry it out, is explained in Section 3. + + +The remainder of this paper is devoted to an explanation of +the Beilinson monad, how to compute it in \Mtwo, and what it +is good for. +This technique has played an important role in the construction +and study of vector bundles and varieties. In the typical application +one constructs or classifies monads in order to construct or classify +sheaves. + +The BGG correspondence and Beilinson's monad were originally +formulated in the language of derived categories, and the +proofs were rather complicated. +The ideas of Eisenbud-Fl{\o}ystad-Schreyer exposed above allow, +for the first time, an +explanation of these matters on a level that can be understood by +an advanced undergraduate. + +The Beilinson monad is similar in spirit to the technique of +free re\-solutions. That theory essentially describes arbitrary +sheaves by comparing them with direct sums of line bundles. +In the Beilinson technique, one uses a different set of +``elementary" sheaves, direct sums of exterior powers of +the tautological sub-bundle. Beilinson's remarkable observation +was that this comparison has a much more direct connection +with cohomology than does the free resolution method. + +Sections 4 and 5 are introductory in nature. In +Section 4 we begin with a preparatory discussion of the +necessary vector bundles +on projective space and their cohomology. In Section 5 +we define monads, a generalization of resolutions. We give +a completely elementary account which constructs the +Beilinson monad in a very special case, following ideas +of Horrocks, and we use this to sketch part of one of the +first striking applications of monads: the classification of stable +rank 2 vector bundles on the projective plane by +Barth, Hulek and Le Potier. + +In Section 6 we give the construction of Eisenbud-Fl{\o}ystad-Schreyer +for the Beilinson monad in general. This is quite suitable for +computation, and we give \Mtwo code that does this job. + +A natural question for the student at this point is: +``Why should I bother learning Beilinson's theorem, what is it good +for?" In section 7, we describe two more explicit applications +of the theory developed. In the first, the classification of +elliptic conic bundles in $\P^4$, computer algebra played +a significant role, demonstrating that several published papers +contained serious mistakes by constructing an example +they had excluded! Using the routines developed earlier +in the chapter we give a simpler account of the +crucial computation. + +In the second application, the construction of abelian surfaces in +$\P^4$ and the related Horrocks-Mumford bundles, computer algebra +allows one to greatly shorten some of the original arguments made. +As the reader will see, everything follows easily +with computation, once a certain $2\times 5$ matrix of exterior +monomials, given by Horrocks and Mumford, has been written down. +One might compare the computations here with the original paper of Horrocks and +Mumford \cite{EA:HM} (for the cohomology) and the papers by +Manolache \cite{EA:nico} and Decker \cite{EA:cam} (for the +syzygies) of the Horrocks-Mumford bundle. A great deal of effort, using +representation theory, was necessary to derive results that can be +computed in seconds using the \Mtwo programs here. Much more theoretical +effort, however, is needed to derive classification results. + +Another application of the construction of the Beilinson +complex (in a slightly more general setting) is to compute +\ie{Chow form}s of varieties; see +\cite{EA:Eisenbud-Schreyer:ChowForms}. + +Perhaps the +situation is similar to that in the beginning of the 1980's when it +became clear that syzygies could be computed by a machine. Though +syzygies had been used theoretically for many years it took quite a +while until the practical computation of syzygies lead to applications, +too, mostly through the greatly increased ability to study examples. + +A good open problem of this sort is to extend +and make more precise the very useful criterion given in \ref{critsur}: +Can the reader find a necessary and sufficient condition +to replace the necessary condition for surjectivity given there? +How about a criterion for exactness? + +\section{Basics of the Bernstein-Gel'fand-Gel'fand Correspondence} + +\index{Bernstein-Gel'fand-Gel'fand correspondence} +In this section we describe the basic idea of the BGG correspondence, +introduced in \cite{EA:MR80c:14010a}. %Bernstein, Gel'fand, and Gel'fand [1978]. +For a more complete treatment along the lines given here, see the first section +of \cite{EA:eis-sch:sheaf}. %Eisenbud and Schreyer [2000] . + +As a simple example of the construction given in +%%% Referenz +Section~1, consider the case $M=S=\sym_K(W)$. The associated +complex, made from the homogeneous components $\sym_i(W)$ of $S$, +has the form +$$ +\FF(S):\quad E\rTo W\otimes E \rTo \Sym_2(W)\otimes E\rTo\cdots, +$$ +where we regard $\Sym_iW$ as concentrated in degree $i$. +It is easy to see that the kernel of the first map, +$E\rTo W\otimes E$, is exactly the socle $\bigwedge^{n+1} V\subset E$, +which is a 1-dimensional vector space concentrated in degree $-n-1$. +In fact $\FF(S)$ is the minimal injective resolution of +this vector space. If we tensor with the dual vector space +$\bigwedge^{n+1} W$ (which is concentrated in degree $n+1$), +we obtain the minimal injective resolution of the +vector space $\bigwedge^{n+1} W\otimes \bigwedge^{n+1} V$, +which may be identified canonically +with the residue field $K$ of $E$. +This resolution is called the {\it Cartan resolution\/} +\index{Cartan resolution} +of $K$. To write it conveniently, we +set $\omega_E=\bigwedge^{n+1}W\otimes E$. The socle of +$\omega_E$ is $K$. Since $E$ is +injective (as well as projective) as an $E$-module, +the same goes for $\omega_E$, so $\omega_E$ is the +injective envelope of the residue class field $K$ and +we have $\omega_E=\Hom_K(E,K)$. Thus we +can write the injective resolution of the residue field as +$$ +\RR(S):\quad \omega_E\rTo W\otimes \omega_E \rTo +\Sym_2(W)\otimes \omega_E \rTo\cdots, +$$ +or again as +$$ +\Hom_K(E,K)\rTo \Hom_K(E,W) \rTo +\Hom_K(E,\Sym_2(W)) \rTo\cdots. +$$ +Taking our cue from this situation, +our primary object of study in the case of +an arbitrary finitely generated graded $S$-module +$M = \oplus M_i$ will be the complex +$$ +\RR(M):\quad \cdots \rTo M_i\otimes \omega_E +\rTo M_{i+1}\otimes\omega_E\rTo \cdots, +$$ +which will have a more natural grading than $\FF(M)$; +in any case, it differs from $\FF(M)$ +only by tensoring over $K$ with the one-dimensional +$K$-vector space $\bigwedge^{n+1}W$, concentrated in degree $n+1$, and +thus has the same basic properties. +(Writing $\RR(M)$ in terms of +$\Hom$ as above suggests that the functor $\RR$ +might have a left adjoint, and +indeed there is a left adjoint that produces linear free +complexes over $S$ from graded $E$-modules. $\RR$ and its +left adjoint are used to construct the isomorphisms of +derived categories in the BGG correspondence; see +\cite{EA:eis-sch:sheaf} %Eisenbud and Schreyer [2000] +for a treatment in this spirit.) + +An important fact for us is that the complex $\RR(M)$ is eventually +exact (and thus +$$ +F^i\rTo^{\phi_i} F^{i+1}\rTo\cdots +$$ +is the minimal injective resolution of $\ker \phi_i$ when $i \gg 0$). +It turns out that the point at which exactness sets in is +a well-known invariant, the \ie{Castelnuovo-Mumford regularity} of +$M$, whose definition we briefly recall: + +If $M=\oplus M_i$ is a finitely generated graded $S$-module +then for all large integers $r$ +the submodule $M_{\geq r}\subset M$ is generated in degree $r$ and has +a {\it linear free resolution\/}; +\index{linear free resolution} +that is, its first syzygies are +generated in degree $r+1$, its second syzygies in degree $r+2$, +etc. (see \cite[chapter 20]{EA:MR97a:13001}%Eisenbud [1995] +). The {\it Castelnuovo-Mumford regularity\/} of $M$ is the +least integer $r$ for which this occurs. + +\begin{theorem}[\cite{EA:eis-sch:sheaf}]\label{regularity} +% \vskip0.3cm +% \noindent +% \textbf{Theorem 3.1.} +%\theorem{regularity} +% {\em +Let $M$ be a finitely generated graded +$S$-module of Cas\-tel\-nuovo-Mumford regularity $r$. +The complex $\RR(M)$ is exact at $\Hom_K(E,M_i)$ +for all $i\geq s$ if and only if $s>r$.\qed +%} +%\vskip0.3cm +\end{theorem} + +More generally, it is shown in \cite{EA:eis-sch:sheaf} that the components of the +cohomology of the complex $\RR(M)$ can be identified with the Koszul cohomology +of $M$. An equivalent result was stated in +\cite{EA:MR89g:13005:appendix}. %Buchweitz [1985] . + +For instance, it is not hard to show that if +$M$ is of finite length, then the regularity of $M$ +is the largest $i$ such that $M_i\neq 0$. Let us verify Theorem +\ref{regularity} directly in a simple example: + +%\begin{Example} +\begin{example} +Let $S=K[x_0,x_1,x_2]$, and let +$M=S/(x_0^2,x_1^2,x_2^2)$. The module +$M_{\geq 3}= K\cdot x_0x_1x_2$ is a trivial $S$-module, and +its resolution is the Koszul complex on $x_0$, $x_1$ and $x_2$, which is linear. +Thus the Castelnuovo-Mumford regularity of $M$ +is $\leq 3$. On the other hand $M_{\geq 2}$ is, up to twist, +isomorphic to the dual of $S/(x_0,x_1,x_2)^2$, and it follows that +the resolution of $M_{\geq 2}$ has the form +$$ +0\rTo S(-6)\rTo 6\:\! S(-4)\rTo 8\:\! S(-3)\rTo 3\:\! S(-2), +$$ +which is not linear, so the Castelnuovo-Mumford regularity of +$M$ is exactly 3. Note that the regularity is larger than the degrees +of the generators and relations of $M$---in general it +can be much larger. + +Over $E$ the linear free complex +corresponding to $M$ has the form +$$ +\cdots\to 0\to +M_0\otimes\omega_E +\to +M_1\otimes\omega_E +\to +M_2\otimes\omega_E +\to +M_3\otimes\omega_E +\to 0\to +\cdots, +$$ +where all the terms not shown are 0. Using the isomorphism +$\omega_E\cong E(-3)$ this +can be written (non-canonically) as +$$ +0\rTo E(-3) +\rTo^{ \begin{pmatrix} e_0\\ e_1\\ e_2 \end{pmatrix}} +3\:\! E(-2) +\rTo^{\begin{pmatrix} 0&e_2&e_1\\ e_2&0&e_0\\ e_1&e_0&0 \end{pmatrix}} +3\:\! E(-1) +\rTo^{\begin{pmatrix}e_0& e_1& e_2 \end{pmatrix}} +E\rTo 0. +$$ +One checks easily that this complex is inexact at every non-zero term +(despite its resemblance to a Koszul complex), +verifying Theorem \ref{regularity}.\qed +\end{example} +%\end{example} + +Another case in which everything can be checked directly +occurs when $M$ is the homogeneous coordinate ring of a point: + + +%\begin{Example} +\begin{example} +Take $M=S/I$ where $I$ is generated +by a codimension 1 space of linear forms in $W$, so that +$I$ is the homogeneous ideal of a point $p\in \P(W)$. +The free resolution of $M$ is +the Koszul complex on $n$ linear forms, +so $M$ is 0-regular. As $M_i$ +is 1-dimensional for every $i$ the terms of the complex +$\RR(M)$ are all rank 1 free $E$-modules. One +easily checks that $\RR(M)$ takes the form +$$ +\RR(M):\quad \omega_E\rTo^a \omega_E(-1)\rTo^a\omega_E(-2)\rTo^a\cdots\ , +$$ +where $a\in V = W^*$ is a linear functional that vanishes on all +the linear forms in $I$; that is, $a$ is a generator of +the one-dimensional subspace of $V$ corresponding to the point $p$. +As for any linear form in $E$, the annihilator of $a$ +is generated by $a$, and it follows directly that the complex +$\RR(M)$ is acyclic in this case.\qed +\end{example} +%\end{example} + + +We present two \Mtwo functions, {\texttt{symExt}} and +{\texttt{bgg}}, which compute a differential of the complex +$\RR(M)$ for a finitely generated graded module $M$ defined over +some polynomial ring $S=K[x_0,\dots,x_n]$ with variables $x_i$ of +degree 1. Both functions expect as an additional input the name of an +exterior algebra $E$ with the same number $n+1$ of generators, also +supposed to be of degree 1 (and NOT -1). This convention, which +makes the cohomology diagrams more naturally looking when printed in +\Mtwo, necessitates the adjustment of degrees in the second half of +the programs. + +The first of the functions, {\texttt{symExt}}, takes as input a +matrix $m$ with linear entries, which we think of as +a presentation matrix for a positively graded $S$-module +$M = \oplus _{i\geq 0} M_i$, and +returns a matrix represen\-ting the map +$M_{0}\otimes\omega_E\to M_{1}\otimes\omega_E$ +which is the first differential of the complex $\RR(M)$. +\vskip0.3cm + +\beginOutput +i1 : symExt = (m,E) ->(\\ +\ ev := map(E,ring m,vars E);\\ +\ mt := transpose jacobian m;\\ +\ jn := gens kernel mt;\\ +\ q := vars(ring m)**id_(target m);\\ +\ ans:= transpose ev(q*jn);\\ +\ --now correct the degrees:\\ +\ map(E^\{(rank target ans):1\}, E^\{(rank source ans):0\}, \\ +\ ans));\\ +\endOutput + +\vskip0.3cm +\noindent +If $M$ is a module whose presentation is not linear +in the sense above, we can still +apply {\texttt{symExt}} to a high truncation of $M$: +\vskip0.3cm + +\beginOutput +i2 : S=ZZ/32003[x_0..x_2];\\ +\endOutput +\beginOutput +i3 : E=ZZ/32003[e_0..e_2,SkewCommutative=>true];\\ +\endOutput +\beginOutput +i4 : M=coker matrix\{\{x_0^2, x_1^2\}\};\\ +\endOutput +\beginOutput +i5 : m=presentation truncate(regularity M,M);\\ +\emptyLine +\ 4 8\\ +o5 : Matrix S <--- S\\ +\endOutput +\beginOutput +i6 : symExt(m,E)\\ +\emptyLine +o6 = \{-1\} | e_2 e_1 e_0 0 |\\ +\ \{-1\} | 0 e_2 0 e_0 |\\ +\ \{-1\} | 0 0 e_2 e_1 |\\ +\ \{-1\} | 0 0 0 e_2 |\\ +\emptyLine +\ 4 4\\ +o6 : Matrix E <--- E\\ +\endOutput + +\vskip0.3cm +\noindent +The function +{\texttt{symExt}} is a quick-and-dirty tool which requires little +computation. If it is called on two successive truncations +of a module the maps it produces may NOT compose to zero +because the choice of bases is not consistent. +The second function, {\texttt{bgg}}, makes the computation in such a way +that the bases are consistent, but does more computation +to achieve this end. It takes as input an integer $i$ and +a finitely generated graded $S$-module $M$, and +returns the $i^{\text{th}}$ map in $\RR (M)$, +which is an ``adjoint'' of the multiplication +map between $M_i$ and $M_{i+1}$. +\vskip0.3cm + +\beginOutput +i7 : bgg = (i,M,E) ->(\\ +\ S :=ring(M);\\ +\ numvarsE := rank source vars E;\\ +\ ev:=map(E,S,vars E);\\ +\ f0:=basis(i,M);\\ +\ f1:=basis(i+1,M);\\ +\ g :=((vars S)**f0)//f1;\\ +\ b:=(ev g)*((transpose vars E)**(ev source f0));\\ +\ --correct the degrees (which are otherwise\\ +\ --wrong in the transpose)\\ +\ map(E^\{(rank target b):i+1\},E^\{(rank source b):i\}, b));\\ +\endOutput + +\vskip0.3cm +\noindent +For instance, in Example 2.2: +\vskip0.3cm + +\beginOutput +i8 : M=cokernel matrix\{\{x_0^2, x_1^2, x_2^2\}\};\\ +\endOutput +\beginOutput +i9 : bgg(1,M,E)\\ +\emptyLine +o9 = \{-2\} | e_1 e_0 0 |\\ +\ \{-2\} | e_2 0 e_0 |\\ +\ \{-2\} | 0 e_2 e_1 |\\ +\emptyLine +\ 3 3\\ +o9 : Matrix E <--- E\\ +\endOutput + +\vskip0.3cm + +%\textbf{EISENBUD ENDE} + +%{\bf 4. Cohomology and Tate} + + + +%\textbf{EISENBUD} + + + +\section{The Cohomology and the Tate Resolution of a Sheaf} + +\index{sheaf cohomology}\index{cohomology!sheaf} +Given a finitely generated graded $S$-module +$M$ we construct a (doubly infinite) +$E$-free complex $\TT(M)$ with vanishing homology, +called the {\it Tate resolution} +\index{Tate resolution} +of $M$, as follows: +Let $r$ be the Castelnuovo-Mumford regularity of $M$. The +truncation $\TT^{>r}(M)$, the part of $\TT(M)$ with cohomological +degree $>r$, is $\RR(M_{>r})$. We complete this to an exact +complex by adjoining a minimal projective resolution of the kernel +of $\Hom_K(E,M_{r+1})\to\Hom_K(E,M_{r+2})$. + +If, for example, $M$ has finite length as in Example 2.2, the Tate +resolution of $M$ is the complex +$$ +\cdots\to 0\to 0\to 0 \to\cdots. +$$ +At the opposite extreme, take $M=S$, the free module of rank 1. +Since $S$ has regularity 0, it follows that $\RR(S)$ is an injective +resolution of the residue field $K$ of $E$. Applying the exact functor +$\Hom_K(\hbox{\bf---}, K)$, and using the fact that it carries +$\omega_E=\Hom_K(E,K)$ back to $E$, we see that the +Tate resolution $\TT(S)$ is the first row of the diagram +$$ +\xymatrix{ +\cdots \ar[r]& W^*\otimes E \ar[r]& E\ar[dr] \ar[rr]&& \omega_E +\ar[r]& W\otimes\omega_E \ar[r]&\cdots\\ +&&&K\ar[ur] +} +$$ +Another simple example occurs in the case where $M$ is +the homogeneous coordinate ring of a point $p\in\P(W)$. The complex +$\RR(M)$ constructed in Example 2.3 is periodic, so +it may be simply continued to the left, giving +$$ +\TT(M):\quad \cdots \rTo^a \omega_E(i) +\rTo^a\omega_E(i-1)\rTo^a\cdots, +$$ +where again $a\in V=W^*$ is a non-zero linear functional +vanishing on the linear forms in the ideal of $p$. + +For arbitrary $M$, by the results of the previous section, +$\RR(M_{>r})$ has no +homology in cohomological degree $>r+1$, so $\TT(M)$ could be constructed +by a similar recipe from any truncation +$\RR(M_{>s})$ with $s\geq r$. Thus +the Tate resolution depends only on the sheaf $\tilde M$ +on $\P(W)$ corresponding to $M$. +We sometimes write $\TT(M)$ as $\TT(\tilde M)$ to +emphasize this point. + +Using the \Mtwo function {\texttt{symExt}} +of the last section, one can compute any finite piece of the Tate resolution. +\vskip0.3cm + +\beginOutput +i10 : tateResolution = (m,E,loDeg,hiDeg)->(\\ +\ M := coker m;\\ +\ reg := regularity M;\\ +\ bnd := max(reg+1,hiDeg-1);\\ +\ mt := presentation truncate(bnd,M);\\ +\ o := symExt(mt,E);\\ +\ --adjust degrees, since symExt forgets them\\ +\ ofixed := map(E^\{(rank target o):bnd+1\},\\ +\ E^\{(rank source o):bnd\},\\ +\ o);\\ +\ res(coker ofixed, LengthLimit=>max(1,bnd-loDeg+1)));\\ +\endOutput + +\vskip0.3cm +\noindent +{\texttt{tateResolution}} takes as input a presentation matrix $m$ of a +finitely generated graded module $M$ defined +over some polynomial ring $S=K[x_0,\dots,x_n]$ with variables $x_i$ of +degree 1, the name of an exterior algebra $E$ with the same number +$n+1$ of generators, also supposed to be of degree 1, and two integers, +say $l$ and $h$. If $r$ is the regularity of $M$, then +{\tt{tateResolution(m,E,l,h)}} computes the piece +$$ +\TT^{\,l}(M)\to \dots \to \TT^{\,\max(r+2,h)}(M) +$$ +of $\TT(M)$. For instance, for the homogeneous coordinate ring of a point in +the projective plane: +\vskip0.3cm + +\beginOutput +i11 : m = matrix\{\{x_0,x_1\}\};\\ +\emptyLine +\ 1 2\\ +o11 : Matrix S <--- S\\ +\endOutput +\beginOutput +i12 : regularity coker m\\ +\emptyLine +o12 = 0\\ +\endOutput +\beginOutput +i13 : T = tateResolution(m,E,-2,4)\\ +\emptyLine +\ 1 1 1 1 1 1 1\\ +o13 = E <-- E <-- E <-- E <-- E <-- E <-- E\\ +\ \\ +\ 0 1 2 3 4 5 6\\ +\emptyLine +o13 : ChainComplex\\ +\endOutput +\beginOutput +i14 : betti T\\ +\emptyLine +o14 = total: 1 1 1 1 1 1 1\\ +\ -4: 1 1 1 1 1 1 1\\ +\endOutput +\beginOutput +i15 : T.dd_1\\ +\emptyLine +o15 = \{-4\} | e_2 |\\ +\emptyLine +\ 1 1\\ +o15 : Matrix E <--- E\\ +\endOutput + +\vskip0.3cm + +For arbitrary $M$ we have $M_i=\H^0\tilde M(i)$ for +large $i$, so the correspon\-ding term of the complex +$\TT(\tilde M)$ with cohomological degree $i$ is +$M_i\otimes \omega_E=\H^0(\tilde M(i))\otimes \omega_E$. +The following result generalizes +this to a description of all the terms of the Tate resolution, +and gives the formula for the cohomology described in the +introduction. + +\begin{theorem}[\cite{EA:eis-sch:sheaf}]\label{tate} +%\vskip0.3cm +%\noindent +%\textbf{Theorem 4.1.} +%{\em +Let $M$ be a finitely generated graded $S$-module. +The term of the complex $\TT(M)=\TT(\tilde M)$ with cohomological degree $i$ is +$$ +\oplus_j \H^j\tilde M(i-j)\otimes \omega_E \ , +$$ +where $\H^j\tilde M(i-j)$ is regarded as a vector space +concentrated in degree $i-j$, so that the summand +$\H^j\tilde M(i-j)\otimes \omega_E$ is isomorphic to a direct sum +of copies of $\omega_E(j-i)$. +Moreover the subquotient complex +$$ +\cdots \to \H^j\tilde M(i-j)\otimes \omega_E +\to +\H^j\tilde M(i+1-j)\otimes \omega_E +\to \cdots +$$ +is +$\RR(\H^j_*(\tilde M(-j))) (j)$ (up to twists and shifts it is +$\RR(\H^j_* \tilde M).$ )\qed +%} +\end{theorem} + +%\vskip0.3cm +Thus each cohomology group of each twist of the sheaf +$\tilde M$ occurs (exactly once) in +a term of $\TT(M)$. When we compute a part of $\TT(M)$, +we are computing the sheaf cohomology of various twists +of the associated sheaf together with maps +which describe the $S$-module structure of $\H^j_*\tilde M$ +in the sense that the linear maps in this complex +are adjoints of the multiplication maps that determine the +module structure (the multiplication maps themselves could +be computed by a function similar to {\texttt{bgg}}). +The higher degree maps in the complex $\TT(M)$ +determine certain higher cohomology operations, which we understand +only in very special cases (see \cite{EA:Eisenbud-Schreyer:ChowForms}). + +If $M = \coker\, m$, then {\tt{betti tateResolution(m,E,l,h)}} prints +the dimensions $\h^j \tilde M(i-j) = \dim\,\H^j \tilde M(i-j)$ for +$\max(r+2, h) \geq i\geq l$, where $r$ is the regularity of $M$. +Truncating the Tate resolution if necessary allows one to restrict +the size of the output. +\index{sheaf cohomology}\index{cohomology!sheaf} +\vskip0.3cm + +\beginOutput +i16 : sheafCohomology = (m,E,loDeg,hiDeg)->(\\ +\ T := tateResolution(m,E,loDeg,hiDeg);\\ +\ k := length T;\\ +\ d := k-hiDeg+loDeg;\\ +\ if d > 0 then \\ +\ chainComplex apply(d+1 .. k, i->T.dd_(i))\\ +\ else T);\\ +\endOutput + + +\vskip0.3cm +\noindent +The expression +{\tt{betti sheafCohomology(m,E,l,h)}} prints a cohomology table for +$\tilde M$ of the form +$$ +{\setlength{\arraycolsep}{.4cm} +\begin{array}{llcl} +\h^0\tilde M(h)& \dots &\h^0\tilde M(l)\\ +\h^1\tilde M(h-1)& \dots & \h^1\tilde M(l-1)\\ +\hfil\vdots&&\hfil\vdots\\ +\h^n\tilde M(h-n)& \dots &\h^n\tilde M (l-n)\ . +\end{array}} +$$ +As a simple example we consider the cotangent bundle on projective +3-space (see the next section for the Koszul resolution of this bundle): +\vskip0.3cm + +\beginOutput +i17 : S=ZZ/32003[x_0..x_3];\\ +\endOutput +\beginOutput +i18 : E=ZZ/32003[e_0..e_3,SkewCommutative=>true];\\ +\endOutput +\vskip0.1cm + +\noindent +The cotangent bundle is the cokernel of the third +differential of the Koszul complex on the variables of $S$. + +\vskip0.1cm +\beginOutput +i19 : m=koszul(3,vars S);\\ +\emptyLine +\ 6 4\\ +o19 : Matrix S <--- S\\ +\endOutput +\beginOutput +i20 : regularity coker m\\ +\emptyLine +o20 = 2\\ +\endOutput +\beginOutput +i21 : betti tateResolution(m,E,-6,2)\\ +\emptyLine +o21 = total: 45 20 6 1 4 15 36 70 120 189 280\\ +\ -4: 45 20 6 . . . . . . . .\\ +\ -3: . . . 1 . . . . . . .\\ +\ -2: . . . . . . . . . . .\\ +\ -1: . . . . 4 15 36 70 120 189 280\\ +\endOutput +\beginOutput +i22 : betti sheafCohomology(m,E,-6,2)\\ +\emptyLine +o22 = total: 6 1 4 15 36 70 120 189 280\\ +\ -2: 6 . . . . . . . .\\ +\ -1: . 1 . . . . . . .\\ +\ 0: . . . . . . . . .\\ +\ 1: . . 4 15 36 70 120 189 280\\ +\endOutput +\vskip0.1cm +\noindent +Of course these two results differ only in the precise point of +truncation. + +\index{sheaf cohomology}\index{cohomology!sheaf} +\begin{remark}\label{cohold} There is also a built-in sheaf cohomology +function {\texttt{HH}} in \Mtwo which is based on the algorithms in +\cite{EA:MR1484973:eisenbud}. These algorithms are often much +slower than {\texttt{sheafCohomology}}. +To access it, first execute +\begin{verbatim} + M=sheaf coker m; +\end{verbatim} +\noindent +and pick integers $j$ and $d$. Then +\begin{verbatim} + HH^j(M(>=d)) +\end{verbatim} +\noindent +returns the truncated $j^{\text{th}}$ cohomology module +$\H^j_{i\geq d} \tilde M$. In the above example of the cotangent +bundle $\mathcal F$ on projective 3-space we obtain the +Koszul presentation of $H^1 \mathcal F \cong K$ considered as an $S$-module +sitting in degree 0: + +\vskip0.3cm + +\beginOutput +i23 : M=sheaf coker m;\\ +\endOutput +\beginOutput +i24 : HH^1(M(>=0))\\ +\emptyLine +o24 = cokernel | x_3 x_2 x_1 x_0 |\\ +\emptyLine +\ 1\\ +o24 : S-module, quotient of S\\ +\endOutput +\qed +\end{remark} + +The Tate resolutions of sheaves are, as the reader may easily check, +precisely the doubly infinite, graded, exact complexes of finitely-generated +free $E$-modules which are ``eventually linear'' on the right, +in an obvious sense. What about other doubly exact graded free +complexes? For example what if we take the dual of the Tate +resolution of a sheaf? In general it will not be eventually linear. +What is it? + +To explain this we must generalize the construction of $\RR(M)$: +If +$$ +M^\bullet:\quad \cdots\rTo M^{i+1}\rTo M^i\rTo M^{i-1}\rTo\cdots +$$ +is a complex of $S$-modules, then applying the functor +$\RR$ gives a complex of free complexes over $E$. +By changing some signs we get a double complex. +In general the associated total complex is not minimal; but at least if +$M^\bullet$ is a bounded complex then, +just as one produces the unique minimal free +resolution of a module from any free resolution, +we can construct a unique minimal +complex from it. We call this minimal complex $\RR(M^\bullet)$. +(See \cite{EA:eis-sch:sheaf} %Eisenbud and Schreyer [2000] +for more information. This construction is a necessary part of interpreting +the BGG correspondence as an equivalence of derived categories.) + +Again +if $M^\bullet$ is a bounded complex of finitely generated +modules, then as before +one shows +that $\RR(M^\bullet)$ is exact from a certain point on, and +so we can form the Tate resolution $\TT(M^\bullet)$ by adjoining +a free resolution of a kernel. Once again, the Tate resolution +depends only on the bounded complex of coherent sheaves +$\F^\bullet$ associated +to $M^\bullet$, and we write $\TT(\F^\bullet)=\TT(M^\bullet)$. + +A variant of the theorem of Bernstein, Gel'fand and Gel'fand +shows that every minimal graded doubly infinite exact sequence +of finitely generated free $E$-modules is of the form $\TT(\F^\bullet)$ +for some complex of coherent sheaves $\F^\bullet$, unique up +to quasi-isomorphism. The terms of the Tate resolution can +be expressed using hypercohomology +by a formula like that of Theorem \ref{tate}. + +One way that interesting complexes of sheaves arise is through +duality. +\index{duality of sheaves} +For simplicity, +write $\O$ for the structure sheaf $\O_{\P(W)}$. +If $\F=\tilde M$ is a sheaf on $\P(W)$ then +the derived functor $RHom(\F, \O)$ may be computed +by applying the functor $Hom(\hbox{\bf ---},\O)$ +to a sheafified free resolution of $M$; it's value is thus +a complex of sheaves rather than an individual sheaf. + +We can now identify the dual of the Tate resolution: + + +\begin{theorem}\label{duality} +%\noindent +%\textbf{Theorem 4.2.} +%{\em +%\theorem{duality} +$\Hom_K(\TT(\F), K) \iso \TT(RH{\rm om}(\F, \O))[1]$.\qed +%} +\end{theorem} + +Here the $[1]$ denotes a shift by one in cohomological degree. +For example, take $\F=\O$. We have $RH{\rm om}(\O, \O)=\O$. The +Tate resolution is given by +$$ +\xymatrix @R=0mm @C=6mm{ +\TT(\O):\quad\cdots\ar[r]& E \ar[r]& \omega_E\ar[r]&\cdots\\ +&-1&0 +} +$$ +where the number under each term is its cohomological degree. +Taking into account $\omega_E=\Hom_K(E,K)$, +the dual of the Tate resolution is thus +$$ +\xymatrix @R=0mm{ +\Hom_K(\TT(\O),K):\quad\cdots&\ar[l]\omega_E&\ar[l]E&\ar[l]\cdots\\ +&1&0 +} +$$ +which is the same as +$\TT(\O)[1]$. +A completely analogous computation gives the +proof of Theorem \ref{duality} +if $\F=\O(a)$ for some $a$, and the general case follows +by taking free resolutions. + + +%\textbf{EISENBUD ENDE} + + +\section{Cohomology and Vector Bundles} + +\index{vector bundle} +In this section we first recall how vector bundles, +direct sums of line bundles, and bundles of differentials +can be characterized among all coherent sheaves on $\PP (W)$ in terms of +cohomology (as usual we do not distinguish between vector bundles and +locally free sheaves). Then we describe the homomorphisms between the +suitably twisted bundles of differentials in terms of the exterior +algebra $E$. This description plays an important role in the context of +Beilinson monads. + +Vector bundles on $\PP (W)$ are characterized by a criterion of Serre +\index{bundle!Serre's criterion} +\cite{EA:MR16:953c} which can be formulated as follows: +A coherent sheaf $\mathcal F$ on $\PP (W)$ is locally free if and only if +its module of sections $\H^0_* ({\mathcal F})$ is finitely generated and its +{\it {intermediate cohomology modules}} \index{cohomology!intermediate} +$\H^j_*\mathcal F$, $1\leq j \leq n-1$, are of finite length. + + From a cohomological point of view, the simplest vector bundles are +the direct sums of line bundles. Every vector bundle on the projective line +splits into a direct sum of line bundles by Grothendieck's splitting +theorem \index{splitting theorem!of Grothendieck} +(see \cite{EA:MR81b:14001}). Induction yields Horrocks' +splitting theorem \index{splitting theorem!of Horrocks} +(see \cite{EA:MR80f:14005}): A vector bundle on $\P +(W)$ splits into a direct sum of line bundles if and only if its +intermediate cohomology vanishes (originally, this theorem was proved +as a corollary to a more general result, see \cite{EA:MR30:120} and +\cite{EA:MR99f:14064}). + +Just a little bit more complicated are the bundles of differentials. +\index{bundles!of differentials} To fix our notation in this context we write +$\mathcal O = \mathcal O_{\PP (W)}$, +$W \otimes \mathcal O$ for the trivial bundle on $\PP (W)$ with fiber $W$, +$U=\Omega_{\P (W)}(1)$ for the cotangent bundle twisted by 1, and +$$ +U^i = {\textstyle\bigwedge}^i U = {\textstyle\bigwedge}^i (\Omega_{\P (W)}(1)) = \Omega^i_{\PP (W)}(i) +$$ +for the $i^{\text{th}}$ bundle of differentials twisted by $i$; in particular +$U^0 = \mathcal O$, $U^n\cong \mathcal O (-1)$, and $U^i=0$ if $i<0$ or $i>n$. + +\begin{remark} \label{dualitybd} For each $0 \leq i \leq n$ the pairing +$$ +U^i \otimes U^{n-i} \overset\wedge\longrightarrow U^n \cong \mathcal O (-1) +$$ +induces an isomorphism +$$ +U^{n-i} \cong (U^{i})^* (-1)\, .\qquad\qed +$$ +\end{remark} + +The fiber of $U$ at the point of $\PP (W)$ corresponding to the line +$\langle a \rangle\subset V$ is the subspace $(V/\langle a \rangle)^*\subset W$. +Thus $U$ fits into the +short exact sequence +$$ +0\rightarrow U \rightarrow W \otimes \mathcal O \rightarrow +\mathcal O (1) \rightarrow 0\ . +$$ +In fact, $U$ is the {\it tautological subbundle\/} +\index{tautological subbundle} +of $W \otimes \mathcal O$. +Taking exterior powers, we get the short exact sequences +$$ +0\rightarrow U^{i+1} \rightarrow {\textstyle\bigwedge}^{i+1}W \otimes \mathcal O \rightarrow +U^i\otimes \mathcal O (1) \rightarrow 0\ . +$$ +Twisting the $i^\th$ sequence by $-i-1$, and gluing them +together we get the exact sequence +$$ +\xymatrix@1@C=6mm{ +0 \ar[r] & {\bigwedge^{n+1}_{\vbox to 2mm{}}} +W\otimes \mathcal O(-n-1) \ar[r] &\,\cdots\; \ar[r]& {\bigwedge^{0}_{\vbox to 2mm{}}} +W\otimes \mathcal O \ar[r]& 0\ . +} +$$ +This sequence is the sheafification of the Koszul complex, which +is the free resolution of the ``trivial'' graded $S$-module $K=S/(W)$. + +\begin{remark} \label{cohbd} +By taking cohomology in the short exact sequences above we find that +$$ +\H^j_*U^i = +\begin{cases} +K(i)& j=i,\\ +0& j\ne i, +\end{cases} +\qquad 1\leq i,j\leq n-1\ , +$$ +where $K(i)=(S/(W))(i)$. Conversely, every vector bundle $\mathcal F$ on +$\PP(W)$ with this intermediate cohomo\-logy is {\it {stably equivalent}} +\index{stable equivalence} +to $U^i$; that is, there exists a direct sum $\mathcal L$ +of line bundles such that $\mathcal F\cong U^i \oplus\mathcal L.$ +This follows by comparing the sheafified Koszul complex with the minimal free resolution +of the dual bundle $\mathcal F^*$.\qed +\end{remark} + +In what follows we describe the homomorphisms bet\-ween the various $U^i$, +$0 \leq i \leq n$. Note that since $U=U^1\subset W\otimes \mathcal O$ each element +of $V=\hom_K(W,K)$ induces a homomorphism $U^1\to U^0$ which is the composite +$$ +U^1 \subset W\otimes \mathcal O \to K\otimes\mathcal O = \mathcal O = U^0. +$$ +Similarly, using the diagonal map of the exterior algebra +$U^i=\bigwedge^iU \to U\otimes U^{i-1}$, each element of $V$ +induces a homomorphism $U^i\to U^{i-1}$ which is the composite +$$ +U^i \to U\otimes U^{i-1} \to W\otimes U^{i-1} \to K\otimes U^{i-1} = U^{i-1}. +$$ +It is not hard to show that these maps induced by elements of $V$ +anticommute with each other +(see for example \cite[A2.4.1]{EA:MR97a:13001}). +Thus we get maps $\bigwedge^jV\to \hom(U^i, U^{i-j})$ +which together give a graded ring homomorphism +$\bigwedge V \to \hom(\oplus_i U^i, \oplus_i U^i)$. +In fact this construction gives +all the homomorphisms between the $U^i$: +\noindent +\begin{lemma} \label{hombd} The maps +$$ +{\textstyle{\textstyle\bigwedge}}^jV\to \hom(U^i, U^{i-j}),\quad 0 \leq i, i-j \leq n\, , +$$ +described above are isomorphisms. Under these isomorphisms an element +$e\in\bigwedge^jV$ acts by contraction on the fibers of the $U^i$: +$$ +\xymatrix{ +\bigwedge^i(V/\langle a \rangle)^*\;\ar[d]\ar@{^(->}[r]& \bigwedge^{i} W \ar[d]^{e}\\ +\bigwedge^{i-j}(V/\langle a \rangle)^*\;\ar@{^(->}[r] &\bigwedge^{i-j} W\ . +} +$$ +\end{lemma} + +\begin{proof} Every homomorphism +$U^i \rightarrow U^{i-j}$ lifts uniquely to a +homomorphism between shifted Koszul complexes: +$$ +\xymatrix@1@C=4mm{ +0 \ar[r] & {\bigwedge^{n+1}_{\vbox to 2mm{}}} +W\otimes \mathcal O(i-n-1) \ar[d]\ar[r] &\,\cdots\; \ar[r]& {\bigwedge^{j}_{\vbox to 2mm{}}} +W\otimes \mathcal O (i-j) \ar[d]\ar[r]&\cdots\\ + \cdots\, +\ar[r] & {\bigwedge^{n+1-j}_{\vbox to 2mm{}}}W\otimes \mathcal O(i-n-1) +\ar[r] &\,\cdots\; \ar[r]& \mathcal O (i-j) \ar[r]& 0 +} +$$ +Indeed, the corresponding obstructions vanish by Remarks \ref{dualitybd} and +\ref{cohbd}. All results follow since the vertical arrows are necessarily +given by contraction with an element in +$$ +\Hom ({\textstyle\bigwedge}^{j} W \otimes \mathcal O (i-j), \mathcal O (i-j))\cong {\textstyle\bigwedge}^jV\, .\quad\qed +$$ +\end{proof} + + +In practical terms, these results say that a map +$U^i \overset{e}\longrightarrow U^{i-j}$ is represented as +$$ +\xymatrix{ +\bigwedge^{i+1} W \otimes \mathcal O (-1) \ar[d]^e \ar@{->>}[r]& U^i \ar[d]\\ +\bigwedge^{i-j+1} W \otimes \mathcal O (-1) \ar@{->>}[r]& U^{i-j}\ +} +$$ +if $0 < i-j \leq i \leq n$, and as the composite +$$ +\xymatrix{ +\bigwedge^{i+1} W \otimes \mathcal O (-1) \ar@{->>}[r]& U^i\; \ar[d]\ar@{^(->}[r]& +\bigwedge^{i} W \otimes \mathcal O\ar[d]^e\\ +&U^0 \ar@{}[r]|{=} &\mathcal O\ +} +$$ +if $0 = i-j < i \leq n$. + +A map from a sum of copies of various $U^i$ to another +such sum is given by a homogeneous matrix over the exterior algebra $E$. In +general it is an interesting problem to relate properties of +the matrix to properties of the map. Here is one relation +which is easy. We will apply it later on in this chapter. + +\noindent +\begin{proposition}\label{critsur} If +$$ +r\, U^i\overset B \longrightarrow s\,U^{i-1} +$$ +is a homomorphism, that is, if $B$ is an $s\times r$-matrix with entries +in $V$, then the following condition is +necessary for $B$ to be surjective: If $(b_1,\dots, b_r)$ is +a non-trivial linear combination of the rows of $B$, then +$$ +\dim\, {\def\span{\operatorname{span}} \span} (b_1,\dots, b_r)\geq i+1. +$$ +\end{proposition} +\begin{proof} $B$ is surjective if and only if its dual map is injective on fibers: +$$ +s\,{\textstyle\bigwedge}^{i-1}(V/\langle a \rangle) \overset {\wedge B^t}\longrightarrow r +\,{\textstyle\bigwedge}^{i}(V/\langle a \rangle) +$$ +is injective for any line $\langle a\rangle \subset V$. Consider +a non-trivial linear combination $(b_1,\dots, b_r)^t$ of the columns of ${B^t}$, +and write $d = \dim\, \span (b_1,\dots, b_r)$. +If $d=i$, then ${B^t}$ is not injective at any point +of $\P (W)$ corresponding to a vector in ${\def\span{\operatorname{span}} \span} +(b_1,\dots, b_r)$. If $d < i$, then ${B^t}$ is not injective at any point of $\P (W)$.\qed +\end{proof} + +\section{Cohomology and Monads} + +\index{monads!applications of} +The technique of monads provides powerful tools for problems such as the +construction and classification of coherent sheaves with prescribed invariants. +This section is an introduction to monads. We demonstrate their usefulness, +which is not obvious at first glance, by reviewing the +classification of stable rank 2 vector bundles on the projective plane +(see \cite{EA:MR57:324}%Barth [1977] +, \cite{EA:MR80m:14012}%Le Potier [1979] +, and \cite{EA:MR80m:14011}%Hulek [1979] +). Recall that stable bundles admit moduli (see \cite{EA:MR81h:14014}%Gieseker [1977] +, \cite{EA:MR56:8567}, and \cite{EA:MR82h:14011}%Maruyama [1977, 1978] +). + +The basic idea behind monads is to represent arbitrary coherent sheaves +in terms of simpler sheaves such as line +bundles or bundles of differentials, and in terms of homomorphisms +between these simpler sheaves. If $M$ is a finitely generated graded $S$-module, +with associated sheaf $\mathcal F = \tilde M$, then the sheafification of +the minimal free resolution of $M$ is a monad for $\mathcal F$ which involves +direct sums of line bundles and thus homogeneous matrices over $S$. +The Beilinson monad for $\mathcal F$, which +will be considered in the next section, involves direct sums of twisted bundles +of differentials $U^i$, and thus homogeneous matrices over $E$. + + +\noindent +\begin{definition}\label{monad} +A {\it{monad}} +\index{monad} +on $\P (W)$ is a bounded complex +$$ +\cdots\, \longrightarrow {\mathcal K}^{-1} \longrightarrow {\mathcal K}^{0} +\longrightarrow {\mathcal K}^{1} \longrightarrow \, \cdots +$$ +of coherent sheaves on $\P (W)$ which is exact except at +${\mathcal K}^{0}$. The homology $\mathcal F$ at ${\mathcal K}^{0}$ +is called the {\it {homology of the monad}}, \index{monad!homology of} +and the monad is said to be a monad for $\mathcal F$. We say that the +{\it {type of a monad}} \index{monad!type of} is +determined if the sheaves ${\mathcal K}^{i}$ are determined.\qed +\end{definition} + +\noindent +There are different ways of representing a given sheaf as the homology of +a monad, and the type of the monad depends on the way chosen. + +When constructing or classifying sheaves in a given class via +monads, one typically proceeds along the following lines. + +\vskip0.2cm +\noindent +{\it{Step 1.}}\; Compute cohomological information which determines +the type of the corresponding monads. +\vskip0.1cm +\noindent +{\it{Step 2.}}\; Construct or classify the differentials of the monads. + +\vskip0.2cm +\noindent +There are no general recipes for either step and some cases require +sophisticated ideas and quite a bit of intuition (see Example 7.2 below). +If one wants to classify, say, vector bundles, then a third step is needed: + +\vskip0.2cm +\noindent +{\it{Step 3.}}\; Determine which monads lead to isomorphic vector bundles. +\vskip0.2cm + +\noindent +One of the first successful applications of this approach was the classification +of (Gieseker-)stable rank 2 vector bundles with even first Chern class $c_1\in\Z$ on +the complex projective plane by Barth \cite{EA:MR57:324}, who +detected geometric properties of the corresponding moduli spaces without giving +an explicit description of the differentials in the second step. The same ideas +apply in the case $c_1$ odd which we are going to survey in what follows +(see \cite{EA:MR80m:14012}, \cite{EA:MR80m:14011}, and \cite{EA:MR81b:14001} for +full details and proofs). + +In general, rank 2 vector bundles enjoy properties which are not shared by +all vector bundles. + +\begin{remark}\label{remark-5.2} +%{{ +% {\bf Remark 5.2.} +Every rank 2 vector bundle $\mathcal F$ on $\PP (W)$ is +{\it {self-dual}},\index{bundle!self-dual} that is, it admits a symplectic structure. +Indeed, the map +$$\mathcal F \otimes \mathcal F +\overset\wedge\longrightarrow {\textstyle\bigwedge}^2 \mathcal F \cong \mathcal O_{\PP (W)} (c_1) +$$ +induces an isomorphism +$\varphi: \mathcal F \overset{\cong}\to \mathcal F^{\ast} (c_1)$ +with $\varphi = - \varphi^* (c_1)$ (here $c_1$ is the first Chern class +of $\mathcal F$). In particular there are isomorphisms +$$ +(\H^j \mathcal F (i))^*\cong \H^{n-j} \mathcal F (-i-n-1-c_1) +$$ +by Serre duality.\index{bundle!Serre duality} \qed +\end{remark} + + +We will not give a general definition of stability here. For rank 2 vector bundles +stability can be characterized as follows (see \cite{EA:MR81b:14001}). + +\begin{remark}\label{remark-5.3} If $\mathcal F$ is a rank 2 vector bundle +on $\PP (W)$, then the following hold: +\vskip0.1cm +\noindent +(1) \; $\mathcal F$ is stable \index{bundle!stable} +if and only if $\Hom (\mathcal F, \mathcal F)\cong K$. +In this case the symplectic structure on $\mathcal F$ is uniquely determined up to scalars. +\vskip0.1cm +\noindent +(2)\; By tensoring with a line bundle we can {\it {normalize}} $\mathcal F$ +\index{bundle!normalized} +so that its first Chern class is $0$ or $-1$. In this case $\mathcal F$ is stable +\index{bundle!stable} if and only if it has no global sections.\qed +\end{remark} + +\begin{example} By the results of the previous section the twisted cotangent bundle +$U$ on the projective plane is a stable rank 2 vector bundle with Chern classes +$c_1 = -1$ and $c_2 = 1$.\qed +\end{example} + +\begin{remark}\label{remark-5.5} +% \noindent +%{{{\bf Remark 5.3.} +The generalized theorem of Riemann-Roch yields a polynomial +in $\QQ [c_1, \dots , c_r]$ which gives the Euler characteristic +$\chi \mathcal F = \sum_j (-1)^j \h^j \mathcal F$ for e\-very rank $r$ vector bundle +$\mathcal F$ on $\PP (W)$ with Chern classes $c_1, \dots , c_r$. +This polynomial can be determined by interpreting the generalized theorem of Riemann-Roch +or by computing the Euler characteristic for enough special bundles of rank $r$ (like direct +sums of line bundles). For a rank 2 vector bundle on the projective plane, +for example, one obtains +$$\chi (\mathcal F)=(c_1^2-2c_2+3c_1+4)/2\, .\quad\qed$$ +\end{remark} + + +We now focus on stable rank 2 vector bundles on the complex projective plane +$\PP^2(\CC) = \PP(W)$ with first Chern class $c_1 = -1$. +Let $\mathcal F$ be such a bundle. + + +\begin{remark}\label{remark-5.6} Since $\mathcal F$ is stable and +normalized its second Chern class $c_2$ must be $\geq 1$. Indeed, +$$\H^2 \mathcal F (i-2) = \H^0 \mathcal F(-i) = 0 \quad {\text{for}}\quad i\geq 0$$ +by Remarks 5.2 and 5.3, and $\chi (\mathcal F (i)) = (i+1)^2 -c_2$ by +Riemann-Roch. In particular the dimensions +$\h^j \mathcal F (i)$ in the range $-2 \leq i \leq 0$ are +as in the following cohomology table (a zero is represented by an empty box): +\vspace{0.2cm} +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Neue Lngen fr Abstnde horizontal und vertikal +% Nur einmal vor dem ersten Auftreten eines Beilinson-Diagramms +%\newlength{\br} +%\newlength{\ho} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +{ +$$ %Diagramm zentrieren +% +% Whle die Einheiten \br horizontal und \ho vertikal +{ +\setlength{\br}{10mm} +\setlength{\ho}{6mm} +\fontsize{10pt}{8pt} +\selectfont +\begin{xy} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Achsenkreuz im Punkte (0,0) +% +% x-Achse von -3\br bis 1\br +% mit einem "j" an 0.98 der Lnge und 3mm unter der Achse: +% +,<-3.5\br,0\ho>;<1\br,0\ho>**@{-}?>*@{>} +?(0.95)*!/^3mm/{i} +% +% y-Achse von 0\ho bis 4\ho +% mit einem "i" an 0,9 der Lnge und 3mm rechts neben der Achse: +% +,<-1\br,0\ho>;<-1\br,4\ho>**@{-}?>*@{>} +?(0.95)*!/^3mm/{j} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 5 waagrechte Linien von -3\br bis +0\br +% in den Hhen 1\ho,...,5\ho: +% +,0+<-3\br,1\ho>;<0\br,1\ho>**@{-} +,0+<-3\br,2\ho>;<0\br,2\ho>**@{-} +,0+<-3.5\br,3\ho>;<.5\br,3\ho>**@{-} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 11 senkrechte Linien von 0\ho bis 3\ho +% in den waagrechten Punkten -3\br,...,+0\br: +% +,0+<-3\br,0\ho>;<-3\br,3\ho>**@{-} +,0+<-2\br,0\ho>;<-2\br,3\ho>**@{-} +,0+<0\br,0\ho>;<0\br,3\ho>**@{-} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Eintrge in den Mitten der Ksten. Daher die Koordinaten mit .5 +% +,0+<-2.5\br,1.5\ho>*{c_2-1} +,0+<-1.5\br,1.5\ho>*{c_2} +,0+<-0.5\br,1.5\ho>*{c_2-1} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +,0+<-2.5\br,-0.6\ho>*{-2} +,0+<-1.5\br,-0.6\ho>*{-1} +,0+<-0.5\br,-0.6\ho>*{0} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +,0+<-4.0\br,2.5\ho>*{2} +,0+<-4.0\br,1.5\ho>*{1} +,0+<-4.0\br,0.5\ho>*{0} +\end{xy} +} +$$ +\quad\qed +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\vskip0.1cm +\noindent +\end{remark} + +We abbreviate $\mathcal O = \mathcal O_{\PP^2 (\CC)}$ and go through the +three steps above. + +\vskip0.3cm +\noindent +{\it{Step 1.}}\; In this step we show that $\mathcal F$ is the +homology of a monad of type +$$ +0\rightarrow \H^1 \mathcal F (-2)\otimes U^2 +\rightarrow \H^1 \mathcal F (-1) \otimes U \rightarrow +\H^1 \mathcal F \otimes \mathcal O \rightarrow 0\ , +$$ +where the middle term occurs in cohomological degree 0. +This actually follows from the general construction of Beilinson monads presented +in the next chapter and the fact that $\H^2 \mathcal F (i-2) = \H^0 \mathcal F(-i) = 0$ +for $2\geq i\geq 0$ (see Remark \ref{remark-5.6}). Here we derive the existence +of the monad directly with Horrocks' technique of killing cohomology +\index{killing cohomology} \cite{EA:MR84j:14026}, which +requires further cohomological information. Such information is typically obtained +by restricting the given bundles to linear subspaces. In our case we consider +the Koszul complex on the equations of a point $p\in \PP^2(\CC)$: +$$ +\xymatrix @C=11mm{ +0\ar[r]&\ \mathcal O(-2)\ar[r]^{\left(\substack{-x'\\x}\right)} +&2\:\! \mathcal O (-1)\ar[r]^{\quad(x\ x^{\prime})} &\mathcal O +\ar[r]&\mathcal O_p\ar[r]&0\ . +} +$$ +\noindent +By tensoring with $\mathcal F (i+1)$ and taking cohomology we find that +$\H^1 \mathcal F$ generates $\H^1_{\geq 0}\, \mathcal F$. Indeed, the composite map +$${\begin{pmatrix} x & x^{\prime}\end{pmatrix}}: 2 \\\H^1\mathcal F(i) +\longrightarrow \H^1 (\mathcal J_p\otimes\mathcal F(i+1)) +\longrightarrow \H^1\mathcal F(i+1)$$ +is surjective if $i\geq -1$. In particular, if $c_2=1$, then +$\H^1 \mathcal F(i) = 0$ for $i \neq -1$ (apply Serre duality for the +twists $\leq -2$), so $\mathcal F\cong U$ is the twisted cotangent bundle by Remark +\ref{cohbd} since both bundles have the same rank and intermediate cohomology. + +If $c_2\geq 2$ then $\H^1 \mathcal F\neq 0$, and the identity in +$$\Hom (\H^1 \mathcal F, \H^1 \mathcal F)\cong\Ext^1(\H^1 \mathcal F +\otimes \mathcal O, \mathcal F)$$ + defines an extension +$$ +0\rightarrow \mathcal F \rightarrow \mathcal G \rightarrow \H^1 \mathcal F +\otimes \mathcal O\rightarrow 0\ , +$$ +where $\H^1_{\geq 0}\,\mathcal G = 0$, and where $\mathcal G$ is a vector bundle +(apply Serre's criterion in Section 4). Similarly, by taking Serre duality into +account, we obtain an extension +$$ +0\rightarrow \H^1 \mathcal F (-2)\otimes U^2 \rightarrow \mathcal H +\rightarrow \mathcal F\rightarrow 0\ , +$$ +where $\mathcal H$ is a vector bundle with $\H^{1}_{\leq -2} \mathcal H = 0$. +The two extensions fit into a commutative diagram with exact rows and and columns +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +$$ +\xymatrix{ +&&0\ar[d]&0\ar[d]\\ +0\ar[r]& \H^1 \mathcal F (-2)\otimes U^2\ar@{}[d]|{\scriptscriptstyle ||}\ar[r]& +\mathcal H\ar[d]\ar[r]& +\mathcal F\ar[r]\ar[d]& 0\\ +0\ar[r]& \H^1 \mathcal F (-2)\otimes U^2\ar[r]^{\qquad \quad \alpha}& +\mathcal B \ar[d]^{\beta}\ar[r]&\mathcal G\ar[d]\ar[r]& 0\\ +&& \H^1 \mathcal F\otimes \mathcal O \ar[d]\ar@{}[r]|{=}& +\H^1 \mathcal F \otimes \mathcal O \ar[d]\\ +&&0&0 +} +$$ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +since, for example, the extension in the top row lifts uniquely to an extension +as in the middle row (the obstructions in the corresponding Ext-sequence vanish). +Then $\mathcal B \cong \H^1 \mathcal F (-1)\otimes U$ +since by construction these bundles have the same rank and intermediate cohomology. +What we have is the {\it display} +\index{monad!display of} + of (the short exact sequences associated to) +a monad +$$ +0\longrightarrow \H^1 \mathcal F (-2)\otimes U^2 \overset{\alpha} +\longrightarrow \H^1 \mathcal F (-1) \otimes U \overset{\beta}\longrightarrow +\H^1 \mathcal F \otimes \mathcal O \longrightarrow 0 +$$ +for $\mathcal F$. + +\vskip0.3cm +\noindent +{\it{Step 2.}}\; +Our task in this step is to describe what maps $\alpha$ and $\beta$ could +be the differentials of a monad as above. In fact we give a description in terms of +linear algebra for which it is enough to deal with one of the differentials, +say $\alpha$, since the self-duality of $\mathcal F$ and the vanishing +of certain obstructions allows one to represent $\mathcal F$ as the +homology of a ``self-dual'' monad. Let us abbreviate $A=\H^1 \mathcal F (-2)$, +$B=\H^1 \mathcal F (-1)$ and $A^*\cong \H^1 \mathcal F$. By chasing the displays +of a monad as above and its dual we see that the symplectic structure on +$\mathcal F$ lifts to a unique isomorphism of monads +$$ +\xymatrix{ +0\ar[r]& A\otimes U^2 \ar[d]^{\Phi}\ar[r]^{\alpha}& +B \otimes U \ar[d]^{\Psi}\ar[r]^{\beta}& +A^*\otimes\mathcal O \ar[r] \ar[d]^{-\Phi^*(-1)} & 0\\ +0\ar[r]&A\otimes \mathcal O(-1) \ar[r]^{{\beta^*}(-1)} & B^* \otimes U^*(-1) +\ar[r]^{{\alpha^*}(-1)}& A^*\otimes (U^2)^*(-1) \ar[r]& 0 +} +$$ +with $\Psi = -\Psi^*(-1)$. Indeed, the corresponding obstructions vanish +(see \cite{EA:MR80f:14005} and \cite[II, 4.1]{EA:MR81b:14001} for a discussion of +this argument in a general context). $\Psi$ is the tensor product of an isomorphism +$q: B\rightarrow B^*$ and a symplectic form $\iota\in\Hom(U,U^*(-1))\cong\CC$ +on $U$. Note that $q$ is symmetric since +$-(q\otimes\iota) = (q\otimes\iota)^*(-1)=q^*\otimes\iota^*(-1)=-q^*\otimes\iota$. +We may and will now assume that $\mathcal F$ is the homology of a {\it {self-dual monad}}, +\index{monad!self-dual} +where self-dual means that $\beta = \alpha^d:=\alpha^* (-1)\circ(q\otimes\iota)$. +The monad conditions + +\vskip0.2cm +($\alpha_1$) $\alpha^d\circ\alpha = 0$, and +\vskip0.1cm +($\alpha_2$) $\alpha$ is a vector bundle monomorphism ($\alpha^d$ is an epimorphism) +\vskip0.2cm +\noindent +can be rewritten in terms of linear algebra as follows. +The identifications in Lemma \ref{hombd} allow one to view +$$\alpha\in\Hom(A\otimes U^2, B \otimes U) \cong V \otimes \Hom(A, B) $$ +as a homomorphism $\alpha: W \rightarrow \Hom (A,B)$ operating by +$\xi \otimes (x \wedge x^{\prime}) \rightarrow \alpha (x)(\xi) \otimes x^{\prime} +- \alpha (x^{\prime})(\xi) \otimes x$ on the fibers of +$A\otimes U^2$. Similarly we consider $\alpha^d$ +as the homomorphism $\alpha^d: W \rightarrow \Hom (B,A^*), x\mapsto \alpha^*(x) \circ q$, +operating by $\eta \otimes x \rightarrow \alpha^d (x)(\eta)$ on the fibers +of $B \otimes U$. Then + +\vskip0.2cm +($\alpha_1^{\prime}$)\, $\alpha^d(x) \circ \alpha(x^{\prime})= +\alpha^d(x^{\prime}) \circ\alpha(x)$ for all $x, x^{\prime}\in W$, and +\vskip0.1cm +($\alpha_2^{\prime}$)\, for every $\xi\in A\setminus \{0\}$ +the map $W \rightarrow B$, $x \to \alpha(x)(\xi)$ has rank $\geq 2$. + + +\noindent +% \noindent +%\begin{Example} +\begin{example}\label{exc22} +If $c_2=2$, then the monads can be written (non-canonically) as +$$ +\xymatrix @C=9mm{ +0\ar[r]&U^2\ar[r]^{\ \left(\substack{a\\b}\right)} +&2\:\!U\ar[r]^{\,(a\ b)} &\mathcal O\ar[r]&0\ , +} +$$ +where $a, b$ are two vectors in $V$. +In this case ($\alpha_1$) gives no extra condition and +($\alpha_2$) means that $a$ and $b$ are linearly independent. +If $a$ and $b$ are explicitly given, then we can compute the +homology of the monad with the help of \Mtwo: + +\vskip0.3cm +\beginOutput +i25 : S = ZZ/32003[x_0..x_2];\\ +\endOutput +\vskip0.1cm +\noindent +$U$ is obtained from the Koszul complex resolving $S/(x_0, x_1, x_2)$ by +tensoring the cokernel of the differential $\bigwedge^3 W\otimes S(-3) +\to \bigwedge^2W \otimes S(-2)$ with $S(1)$ (and sheafifying). + +\vskip0.1cm +\beginOutput +i26 : U = coker koszul(3,vars S) ** S^\{1\};\\ +\endOutput +\vskip0.1cm + +\noindent +For representing $\alpha$ and $\alpha^d$ we also need the differential +$\bigwedge^2W \otimes S(-2) \to W \otimes S(-1)$ of the Koszul complex. + +\vskip0.1cm +\beginOutput +i27 : k2 = koszul(2,vars S)\\ +\emptyLine +o27 = \{1\} | -x_1 -x_2 0 |\\ +\ \{1\} | x_0 0 -x_2 |\\ +\ \{1\} | 0 x_0 x_1 |\\ +\emptyLine +\ 3 3\\ +o27 : Matrix S <--- S\\ +\endOutput +\vskip0.1cm + +\noindent +The expression +{\tt{koszul(2,vars S)}} computes a matrix representing the differential +with respect to the monomial bases $x_0\wedge x_1, x_0 \wedge x_2, x_1 \wedge x_2$ +of $\bigwedge^2W$ and $x_0, x_1, x_2$ of $W$. +We pick $(a,b) = (e_1, e_2)$ and represent the corresponding maps $\alpha$ +and $\alpha^d$ with respect to the monomial bases (see the discussion following +Lemma \ref{hombd}). + +\vskip0.1cm +\beginOutput +i28 : alpha = map(U ++ U, S^\{-1\}, transpose\{\{0,-1,0,1,0,0\}\});\\ +\emptyLine +o28 : Matrix\\ +\endOutput +\beginOutput +i29 : alphad = map(S^1, U ++ U, matrix\{\{0,1,0,0,0,1\}\} * (k2 ++ k2));\\ +\emptyLine +o29 : Matrix\\ +\endOutput +\vskip0.1cm + +\noindent +Prune computes a minimal presentation. + +\vskip0.1cm +\beginOutput +i30 : F = prune homology(alphad, alpha);\\ +\endOutput +\beginOutput +i31 : betti F\\ +\emptyLine +o31 = relations : total: 3 1\\ +\ 1: 2 .\\ +\ 2: 1 1\\ +\endOutput + +\vskip0.3cm + +In the next section we will present a more elegant way of +computing the homology of Beilinson monads. \qed +\end{example} + +We go back to the general case and reverse our construction. +Let $A$ and $B$ be $\CC$-vector spaces of +the appropriate dimensions, let $q$ be a non-degenerate quadratic form on $B$, +and let +$$ +\widetilde{\cal{M}}=\{\alpha\in\Hom(W, \Hom(A, B)) \mid \alpha {\text { satisfies }} +(\alpha_1^{\prime}) {\text { and }} (\alpha_2^{\prime})\}\ . +$$ +Then every $\alpha\in \widetilde{\cal{M}}$ defines a self-dual +monad as above whose homology is a stable rank 2 vector bundle on $\PP^2(\CC)$ with +Chern classes $c_1=-1$ and $c_2$. In this way we obtain a description of +the differentials of the monads which is not as explicit as we might have +hoped (with the exception of the case $c_2 = 2$). It is, however, enough for detecting +geometric properties of the corresponding moduli spaces. + +\vskip0.3cm +\noindent +{\it{Step 3.}}\; Constructing the moduli spaces means to parametrize +the isomorphism classes of our bundles in a convenient way. We very roughly +outline how to do that. Let ${\text{O}}(B)$ be the orthogonal group of +$(B,q)$, and let $G:= \GL (A)\times {\text{O}}(B)$. Then $G$ acts on +$\widetilde{\cal{M}}$ by $((\Phi, \Psi),\alpha) \mapsto \Psi\alpha\Phi^{-1}$, +where $\Psi\alpha\Phi^{-1}(x) := \Psi\alpha(x)\Phi^{-1}$. We may consider an +element $(\Phi, \Psi)\in G$ as an isomorphism bet\-ween +the monad defined by $\alpha$ and the monad defined by $\Psi\alpha\Phi^{-1}$. +By going back and forth between isomorphisms of bundles +and isomorphisms of mo\-nads one shows that the stabilizer of $G$ in +each point is $\{\pm 1\}$, and that our construction induces a bijection +between the set of isomorphism classes of stable rank 2 vector bundles on $\PP^2(\CC)$ +with Chern classes $c_1=-1$ and $c_2$ and ${\cal{M}}:=\widetilde{\cal{M}}/G_0$, +where $G_0:=G/\{\pm 1\}$. With the help of a universal monad over +$\PP^2(\CC)\times \widetilde{\cal{M}}$ one proves that the analytic structure on +$\widetilde{\cal{M}}$ descends to an analytic structure on ${\cal{M}}$ so that +${\cal{M}}$ is smooth of dimension $\h^1 \mathcal F^* \otimes \mathcal F = 4c_2-4$ +in each point (the obstructions for smoothness in the point corresponding to +$\mathcal F$ lie in $\H^2 \mathcal F^* \otimes \mathcal F$ which is zero). +Moreover the homology of the universal monad tensored by a suitable line bundle +descends to a universal family over ${\cal{M}}$ (here one needs $c_1=-1$). In other +words, ${\cal{M}}$ is what one calls a fine moduli space for our bundles. Further +efforts show that ${\cal{M}}$ is irreducible and rational. + +\begin{remark} Horrocks' technique of killing cohomology always yields 3-term monads. +In general, the bundle in the middle can be pretty complicated.\qed +\end{remark} + + +\section{The Beilinson Monad} + +%\textbf{EISENBUD} + + +%\section{beilinson} The Beilinson Monad + +\index{monad!Beilinson} +We can use the Tate resolution associated to a sheaf to +give a construction of a complex first +described by Beilinson \cite{EA:MR80c:14010b}, which gives a +powerful method for deriving information about a sheaf from +information about a few of its cohomology groups. +The general idea is the following: + + +Suppose that $\A$ is an additive category and consider +a graded object +$ +\oplus_{i=0}^{n+1}U^i +$ +in $\A$. +Given a graded ring homomorphism $E\to \End_\A(\oplus_{i=0}^{n+1}U^i)$ +we can make an additive functor from the category of +free $E$-modules to $\A$: +On objects we take +$$ +\omega_E(i)\mapsto{ \begin{cases} U^i & \text{for } 0\leq i +\leq {n+1} \text{ and}; \\0 & \text{otherwise.}\end{cases}} +$$ +To define the functor on maps, we use +$$ +\begin{aligned} +\Hom_E(\omega_E(i),\omega_E(j))&= +\Hom_E(E(i),E(j))\\ +&= E_{j-i} +\longrightarrow\End(\oplus U^i)_{j-i}\longrightarrow \Hom(U^i,U^j)\ . +\end{aligned} +$$ +(Note that we could have taken any twist of $E$ in place of +$\omega_E\cong E(-n-1)$; the choice of $\omega_E$ is made to +simplify the statement of Theorem \ref{Beilinson-theorem}, below.) +%%%%%%%%% Referenz \ref{Beilinson theorem}, below.) + +We shall be interested in the special case +where $\A$ is the category of coherent sheaves on +$\P(W)$ and where $U^i = \Omega_{\P(W)}^i (i)$ as in Section~4. +Further examples may be obtained by taking $U^i$ to be the $i^\th$ exterior +power of the tautological subbundle $U_k$ on the Grassmannian +of $k$-planes in $W$ for any $k$; the case we have taken +here is the case $k=n$. See \cite{EA:Eisenbud-Schreyer:ChowForms} +for more information on the general case +and applications to the computation of +resultants and more general Chow forms. + +Applying the functor just defined to the Tate resolution $\TT(\F)$ +of a cohe\-rent sheaf $\F$ on $\P(W)$, +and using Theorem \ref{tate}, we get +a complex +$$ +\Omega(\F):\quad +\cdots\rTo \oplus_j \H^j\F(i-j)\otimes U^{j-i}\rTo\dots , +$$ +where the term we have written down occurs in cohomological +degree $i$. The resolution $\TT(\F)$ is well-defined up to homotopy, +so the same is true of $\Omega(\F)$. +Since $U^{k}=0$ unless $0\leq k\leq n$ +the only cohomology groups of $\F$ that +are actually involved in $\Omega(\F)$ are $\H^j\F(k)$ with +$-n\leq k\leq 0$; $\Omega(\F)$ is of type +$$ +\xymatrix@1@C=3mm{ +0\ar[r]& \H^0 \mathcal F (-n)\otimes U^n\ar@{}[d]|{\scriptscriptstyle ||}\ar[r]& +\cdots \ar[r]& +\oplus_{j=0}^{n}\H^j \mathcal F (-j)\otimes U^j\ar@{}[d]|{\scriptscriptstyle ||}\ar[r]& +\cdots \ar[r]& +\H^n \mathcal F \otimes U^0\ar@{}[d]|{\scriptscriptstyle ||}\ar[r]& +0&\\ +0\ar[r]& \Omega^{-n}(\F)\ar[r]&\cdots \ar[r]& \Omega^0(\F)\ar[r]& +\cdots \ar[r]& \Omega^n(\F)\ar[r]& 0&.\\ +} +$$ +For applications it is important to note that instead of working with +$\Omega(\F)$ one can also work with $\Omega(\F(i))$ for some twist $i$. +This gives one some freedom in choosing the cohomology groups of $\F$ +to be involved. + + +To see a simple example, consider again the structure +sheaf $\O_p$ of the subvariety consisting of a point +$p\in \P(W)$. Write $I$ for the homogeneous ideal of $p$, +and let $a\in V=W^*$ be a non-zero functional vanishing +on the linear forms in $I$ as before. +The Tate resolution of the homogeneous coordinate ring $S/I$ +has already been computed, and we have seen that it depends only +on the sheaf $\widetilde{S/I}=\O_p$. From the computation of +$\TT(S/I)=\TT(\O_p)$ made in Section~3 we see that +$\Omega(\O_p)$ takes the form +$$ +\Omega(\O_p):\quad 0\to U^n\rTo^a U^{n-1}\rTo^a +\cdots \rTo^a U^1\rTo^a U^0\rTo 0\ , +$$ +with $U^i$ in cohomological degree $-i$. + +We have already noted that the map +$a: U=U^1 \rTo U^0=\O_{\P(W)}$ is the composite of the +tautological embedding $U\subset W\otimes \O_{\P(W)}$ with the +map $a\otimes 1:\ W\otimes \O_{\P(W)} \to \O_{\P(W)}$. +Thus the image of $a: U^1\to \O_{\P(W)}$ is the ideal +sheaf of $p$, and we see that the homology of the complex +$\Omega(\O_p)$ at $U^0$ is $\O_p$. One can check further +that $\Omega(\O_p)$ is the Koszul complex associated with +the map $a: U^1\to \O_{\P(W)}$, and it follows that +the homology of $\Omega(\O_p)$ at $U^i$ is 0 for $i>0$. +The following result shows that this is typical. + +\begin{theorem}[\cite{EA:eis-sch:sheaf}]\label{Beilinson-theorem} +%\theorem{Beilinson theorem} +%\vskip0.3cm +%\noindent +%\textbf{Theorem 6.1} +%{\em +If $\F$ is a coherent sheaf on +$\P(W)$, then the only non-vanishing homology of the +complex $\Omega(\F)$ is +$$ +\H^0(\Omega(\F))=\F\, .\qquad\qed +$$ +%} +\end{theorem} + +The existence of a complex satisfying the theorem and having the same +terms as $\Omega(\F)$ was first asserted by +Beilinson in \cite{EA:MR80c:14010b}, +and thus we will call $\Omega(\F)$ a {\it Beilinson monad\/} +\index{monad!Beilinson} +\index{Beilinson monad} +for $\F$. +Existence proofs via a somewhat less effective construction than the one +given here may be found in \cite{EA:MR89g:18018} and \cite{EA:MR92g:14013}. + +The explicitness of the construction via Tate resolutions allows one to +detect properties of the differentials of Beilinson monads. +\index{Beilinson monad!differentials of} Let us write +$$ +\begin{aligned} +d_{ij}^{(r)}\in \Hom( \H^j \mathcal F (i-j) \otimes U^{j-i}, +\H^{j-r+1} \mathcal F (i-j+r) \otimes U^{j-i-r})\\ +\cong {\textstyle\bigwedge}^r V\otimes \Hom (\H^j \mathcal F (i-j), +\H^{j-r+1} \mathcal F (i-j+r))\\ +\cong \Hom ({\textstyle\bigwedge}^r W \otimes \H^j \mathcal F (i-j), +\H^{j-r+1} \mathcal F (i-j+r)) +\end{aligned} +$$ +for the degree $r$ maps actually occurring in $\Omega(\F)$. + +\begin{remark}\label{diff1}\; The constant maps $d_{ij}^{(0)}$ in +$\Omega(\F)$ are zero since $\TT(\mathcal F)$ is minimal. \qed +\end{remark} + +\begin{proposition}[\cite{EA:eis-sch:sheaf}]\label{diff2}\; +The linear maps $d_{ij}^{(1)}$ in $\Omega(\F)$ +correspond to the multiplication maps +$$W \otimes \H^j \mathcal F (i-j)\to \H^{j} \mathcal F (i-j+1)\, .\qquad\qed$$ +\end{proposition} + +\noindent +This follows from the identification of the linear strands in $\TT (\F)$ +(see the discussion following Theorem 3.1). The higher degree maps in +$\TT (\F)$ and $\Omega(\F)$, however, are not yet well-understood. + +Since $(\TT(\mathcal F))[1] = \TT(\mathcal F(1))$ we can compare +the differentials in $\Omega(\F)$ with those in $\Omega(\F(1))$: + +\begin{proposition}[\cite{EA:eis-sch:sheaf}]\label{diff3}\; If the maps +$d_{ij}^{(r)}$ in $\Omega(\F)$ and $d_{i-1,j}^{(r)}$ in $\Omega(\F(1))$ +both actually occur, then they correspond to the same element +in +$${\textstyle\bigwedge}^r V\otimes \Hom (\H^j \mathcal F (i-j), +\H^{j-r+1} \mathcal F (i-j+r))\ .\qquad\qed$$ +\end{proposition} + + +In what follows we present some \Mtwo code for computing Beilinson monads. +Our functions {\tt {sortedBasis}}, {\tt {beilinson1}}, {\tt {U}}, and +{\tt {beilinson}} reflect what we did in Example \ref{exc22} . + +The expression +{\tt {sortedBasis(i,E)}} sorts the monomials of degree $i$ in $E$ to match the order +of the columns of {\tt {koszul(i,vars S)}}, where our conventions with respect to $S$ and $E$ +are as in Section 2, and where we suppose that the monomial order on $E$ is +reverse lexicographic, the \Mtwo default order. + +\vskip0.3cm +\beginOutput +i32 : sortedBasis = (i,E) -> (\\ +\ m := basis(i,E);\\ +\ p := sortColumns(m,MonomialOrder=>Descending);\\ +\ m_p);\\ +\endOutput + +\vskip0.1cm +\noindent +For example: +\vskip0.1cm + +\beginOutput +i33 : S=ZZ/32003[x_0..x_3];\\ +\endOutput +\beginOutput +i34 : E=ZZ/32003[e_0..e_3,SkewCommutative=>true];\\ +\endOutput +\beginOutput +i35 : koszul(2,vars S)\\ +\emptyLine +o35 = \{1\} | -x_1 -x_2 0 -x_3 0 0 |\\ +\ \{1\} | x_0 0 -x_2 0 -x_3 0 |\\ +\ \{1\} | 0 x_0 x_1 0 0 -x_3 |\\ +\ \{1\} | 0 0 0 x_0 x_1 x_2 |\\ +\emptyLine +\ 4 6\\ +o35 : Matrix S <--- S\\ +\endOutput +\beginOutput +i36 : sortedBasis(2,E)\\ +\emptyLine +o36 = | e_0e_1 e_0e_2 e_1e_2 e_0e_3 e_1e_3 e_2e_3 |\\ +\emptyLine +\ 1 6\\ +o36 : Matrix E <--- E\\ +\endOutput + +\vskip0.1cm +\noindent +If $e\in E$ is homogeneous of degree $j$, then +{\tt {beilinson1(e,j,i,S)}} computes the map $U^i \overset{e}\longrightarrow U^{i-j}$ +on $\PP^n = \Proj \,S$. If $0 < i-j \leq i \leq n$, then the result is a matrix representing +the map $\bigwedge^{i+1}W \otimes S(-1)\overset{e\otimes 1} \longrightarrow +\bigwedge^{i-j+1}W\otimes S(-1)$ defined by contraction with $e$. If $0 = i-j < i \leq n$, +then the result is a matrix representing the composite +of the map $\bigwedge^{i}W \otimes S \overset{e\otimes 1} +\longrightarrow S$ with the Koszul differential +$\bigwedge^{i+1}W \otimes S(-1) \rightarrow \bigwedge^{i}W \otimes S$. +Note that the degrees of the result are not set correctly since +the functions {\tt {U}} and {\tt {beilinson}} below are supposed to do that. +\vskip0.1cm + +\beginOutput +i37 : beilinson1=(e,dege,i,S)->(\\ +\ E := ring e;\\ +\ mi := if i < 0 or i >= numgens E then map(E^1, E^0, 0)\\ +\ else if i === 0 then id_(E^1)\\ +\ else sortedBasis(i+1,E);\\ +\ r := i - dege;\\ +\ mr := if r < 0 or r >= numgens E then map(E^1, E^0, 0)\\ +\ else sortedBasis(r+1,E);\\ +\ s = numgens source mr;\\ +\ if i === 0 and r === 0 then\\ +\ substitute(map(E^1,E^1,\{\{e\}\}),S)\\ +\ else if i>0 and r === i then substitute(e*id_(E^s),S)\\ +\ else if i > 0 and r === 0 then\\ +\ (vars S) * substitute(contract(diff(e,mi),transpose mr),S)\\ +\ else substitute(contract(diff(e,mi), transpose mr),S));\\ +\endOutput + +\vskip0.1cm +\noindent +For example: +\vskip0.1cm + +\beginOutput +i38 : beilinson1(e_1,1,3,S)\\ +\emptyLine +o38 = \{-3\} | 0 |\\ +\ \{-3\} | 0 |\\ +\ \{-3\} | 1 |\\ +\ \{-3\} | 0 |\\ +\emptyLine +\ 4 1\\ +o38 : Matrix S <--- S\\ +\endOutput +\beginOutput +i39 : beilinson1(e_1,1,2,S)\\ +\emptyLine +o39 = \{-2\} | 0 0 0 0 |\\ +\ \{-2\} | -1 0 0 0 |\\ +\ \{-2\} | 0 0 0 0 |\\ +\ \{-2\} | 0 -1 0 0 |\\ +\ \{-2\} | 0 0 0 0 |\\ +\ \{-2\} | 0 0 0 1 |\\ +\emptyLine +\ 6 4\\ +o39 : Matrix S <--- S\\ +\endOutput +\beginOutput +i40 : beilinson1(e_1,1,1,S)\\ +\emptyLine +o40 = | x_0 0 -x_2 0 -x_3 0 |\\ +\emptyLine +\ 1 6\\ +o40 : Matrix S <--- S\\ +\endOutput + +\vskip0.1cm +\noindent +The function {\tt {U}} computes the bundles $U^i$ on Proj$\,S$: + +\vskip0.1cm +\noindent +\beginOutput +i41 : U = (i,S) -> (\\ +\ if i < 0 or i >= numgens S then S^0\\ +\ else if i === 0 then S^1\\ +\ else cokernel koszul(i+2,vars S) ** S^\{i\});\\ +\endOutput + +\vskip0.1cm +\noindent +Finally, if $o : \oplus E(-a_i) \to \oplus E(-b_j)$ is a homogeneous +matrix over $E$, then {\tt {beilinson(o,S)}} computes the +corresponding map $o : \oplus U^{a_i} \to \oplus U^{b_j}$ on Proj$\,S$ +by calling {\tt {beilinson1}} and {\tt {U}}. +\vskip0.3cm + +\beginOutput +i42 : beilinson = (o,S) -> (\\ +\ coldegs := degrees source o;\\ +\ rowdegs := degrees target o;\\ +\ mats = table(numgens target o, numgens source o,\\ +\ (r,c) -> (\\ +\ rdeg = first rowdegs#r;\\ +\ cdeg = first coldegs#c;\\ +\ overS = beilinson1(o_(r,c),cdeg-rdeg,cdeg,S);\\ +\ -- overS = substitute(overE,S);\\ +\ map(U(rdeg,S),U(cdeg,S),overS)));\\ +\ if #mats === 0 then matrix(S,\{\{\}\})\\ +\ else matrix(mats));\\ +\endOutput + +\vskip 0.1cm +\noindent +With these functions the code in Example \ref{exc22} can be rewritten as follows: +\vskip 0.1cm + +\beginOutput +i43 : S=ZZ/32003[x_0..x_2];\\ +\endOutput +\beginOutput +i44 : E = ZZ/32003[e_0..e_2,SkewCommutative=>true];\\ +\endOutput +\beginOutput +i45 : alphad = map(E^1,E^\{-1,-1\},\{\{e_1,e_2\}\})\\ +\emptyLine +o45 = | e_1 e_2 |\\ +\emptyLine +\ 1 2\\ +o45 : Matrix E <--- E\\ +\endOutput +\beginOutput +i46 : alpha = map(E^\{-1,-1\},E^\{-2\},\{\{e_1\},\{e_2\}\})\\ +\emptyLine +o46 = \{1\} | e_1 |\\ +\ \{1\} | e_2 |\\ +\emptyLine +\ 2 1\\ +o46 : Matrix E <--- E\\ +\endOutput +\beginOutput +i47 : alphad=beilinson(alphad,S);\\ +\emptyLine +o47 : Matrix\\ +\endOutput +\beginOutput +i48 : alpha=beilinson(alpha,S);\\ +\emptyLine +o48 : Matrix\\ +\endOutput +\beginOutput +i49 : F = prune homology(alphad,alpha);\\ +\endOutput +\beginOutput +i50 : betti F\\ +\emptyLine +o50 = relations : total: 3 1\\ +\ 1: 2 .\\ +\ 2: 1 1\\ +\endOutput + +\vskip 0.3cm + +\section{Examples} + +\index{Beilinson monad!applications of} +In this section we give two examples of explicit constructions of Beilinson +monads over $\PP^4(\CC) = \PP(W)$ and of classification results based on these monads. +As in Section 5 we proceed in three steps. Let us write $\mathcal O = +\mathcal O_{\PP^4(\CC)}$. + +%\begin{Example}\label{was7.1} +\begin{example}\label{was7.1} +%\noindent +%{\it{Example 7.1.}}\, +Our first example is taken from the classification +of {\it {conic bundles}} +\index{conic bundle} +in $\PP^4(\CC)$, that is, of smooth surfaces +$X\subset\PP^4(\CC)$ which are ruled in conics in the sense that there exists a +surjective morphism $\pi:X \rightarrow C$ onto a smooth curve $C$ such that the +general fiber of $\pi$ is a smooth conic in the given embedding of $X$. +There are precisely three families of such surfaces (see \cite{EA:ES} and +\cite{EA:BR}). Two families, the Del Pezzo surfaces of +degree 4 and the Castelnuovo surfaces, are classical. +The third family, consisting of {\it {elliptic conic bundles}} +\index{conic bundle!elliptic} +(conic bundles over an elliptic curve) of degree 8, had been falsely +ruled out in two classification papers in the 1980's +(see \cite{EA:okgrad8} and \cite{EA:ionescu}). Only recently Abo, Decker, and Sasakura +\cite{EA:conicbundle} constructed and classified such surfaces by considering the Beilinson +monads for the suitably twisted ideal sheaves of the surfaces. Let us explain how +this works. + +\vskip0.1cm +\noindent +{\it{Step 1.}}\; In this step we suppose that an elliptic conic +bundle $X$ as above exists, and we determine the type of the Beilinson +monad for the suitably twisted ideal sheaf $\mathcal J_X$. +We know from the classification of smooth surfaces in +$\PP^4(\CC)$ which are contained in a cubic hypersurface (see \cite{EA:roth} and +\cite{EA:aure-thesis}) that $\H^0 \mathcal J_X (i) = 0$ for $i\leq 3$. +It follows from general results such as the theorem of Riemann-Roch that the +dimensions $\h^j \mathcal J_X(i)$ in range $-2\leq i \leq 3$ are as follows +(here, again, a zero is represented by an empty box): +\vskip0.2cm +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Neue Lngen fr Abstnde horizontal und vertikal +% Nur einmal vor dem ersten Auftreten eines Beilinson-Diagramms +% \newlength{\br} +% \newlength{\ho} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +{ +$$ %Diagramm zentrieren +% +% Whle die Einheiten \br horizontal und \ho vertikal +{ +\setlength{\br}{9mm} +\setlength{\ho}{6mm} +\fontsize{10pt}{8pt} +\selectfont +\begin{xy} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Achsenkreuz im Punkte (0,0) +% +% x-Achse von -3\br bis 5\br +% mit einem "j" an 0.95 der Lnge und 3mm unter der Achse: +% +,<-2.5\br,0\ho>;<5\br,0\ho>**@{-}?>*@{>} +?(0.98)*!/^3mm/{i} +% +% y-Achse von 0\ho bis 6\ho +% mit einem "i" an 0,9 der Lnge und 3mm rechts neben der Achse: +% +,<0\br,0\ho>;<0\br,6\ho>**@{-}?>*@{>} +?(0.98)*!/^3mm/{j} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 5 waagrechte Linien von -2\br bis +4\br +% in den Hhen 1\ho,...,5\ho: +% +,0+<-2\br,1\ho>;<4\br,1\ho>**@{-} +,0+<-2\br,2\ho>;<4\br,2\ho>**@{-} +,0+<-2\br,3\ho>;<4\br,3\ho>**@{-} +,0+<-2\br,4\ho>;<4\br,4\ho>**@{-} +,0+<-2.5\br,5\ho>;<4.5\br,5\ho>**@{-} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 11 senkrechte Linien von 0\ho bis 5\ho +% in den waagrechten Punkten -2\br,...,+3\br: +% +,0+<-2\br,0\ho>;<-2\br,5\ho>**@{-} +,0+<-1\br,0\ho>;<-1\br,5\ho>**@{-} +% +,0+<1\br,0\ho>;<1\br,5\ho>**@{-} +,0+<2\br,0\ho>;<2\br,5\ho>**@{-} +,0+<3\br,0\ho>;<3\br,5\ho>**@{-} +,0+<4\br,0\ho>;<4\br,5\ho>**@{-} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Eintrge in den Mitten der Ksten. Daher die Koordinaten mit .5 +% +,0+<-1.5\br,3.5\ho>*{8} +,0+<-0.5\br,3.5\ho>*{4} +% +,0+<0.5\br,2.5\ho>*{1} +,0+<1.5\br,2.5\ho>*{1} +,0+<2.5\br,2.5\ho>*{a} +,0+<3.5\br,2.5\ho>*{b} +,0+<2.5\br,1.5\ho>*{a+1} +,0+<3.5\br,1.5\ho>*{b+1} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +,0+<-1.5\br,-0.6\ho>*{-2} +,0+<-0.5\br,-0.6\ho>*{-1} +,0+<0.5\br,-0.6\ho>*{0} +,0+<1.5\br,-0.6\ho>*{1} +,0+<2.5\br,-0.6\ho>*{2} +,0+<3.5\br,-0.6\ho>*{3} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +,0+<-3.0\br,4.5\ho>*{4} +,0+<-3.0\br,3.5\ho>*{3} +,0+<-3.0\br,2.5\ho>*{2} +,0+<-3.0\br,1.5\ho>*{1} +,0+<-3.0\br,0.5\ho>*{0} +\end{xy} +} +$$ +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\vskip0.1cm +\noindent +with $a := \h^2 \mathcal J_X(2)$ and $b := \h^2 \mathcal J_X(3)$ still to +be determined. The Beilinson monad for $\mathcal J_X(2)$ is thus of type +$$ +0 \rightarrow 8\:\! \mathcal O (-1) \rightarrow 4\:\! U^3\oplus U^2 +\rightarrow U\oplus (a+1)\:\! \mathcal O \rightarrow a\:\! \mathcal O \rightarrow 0\ , +$$ +where $\,(a+1)\:\! \mathcal O \rightarrow a\:\! \mathcal O\,$ is the zero map +(see Remark \ref{diff1}), +and where consequently $U$ is mapped surjectively onto $\,a\,\! \mathcal O\,$. By +Proposition \ref{critsur} this is only possible if $a = 0$. The same idea applied to +$\mathcal J_X(3)$ shows that then also $b = 0$. + +The cohomological information obtained so far determines the type of the Beilinson +monad for $\mathcal J_X(2)$ and for $\mathcal J_X(3)$. We decide to concentrate on +the monad for $\mathcal J_X(3)$ since its differentials are smaller in size than those of the +monad for $\mathcal J_X(2)$. In order to ease our calculations further we kill +the 4-dimensional space $\H^3 \mathcal J_X(-1)$. Let us write $\omega_X$ for +the dualizing sheaf of $X$. Serre duality on $\PP^4(\CC)$ +respectively on $X$ yields canonical isomorphisms +$$ +\begin{aligned} +Z& := \Ext^1(\mathcal J_X(-1),\mathcal O(-5))\\ +&\cong (\H^3 \mathcal J_X(-1))^* +\cong (\H^2 \mathcal O_X(-1))^*\cong \H^0(\omega_X(1))\ . +\end{aligned} +$$ +The identity in +$$ +\Hom (Z, Z) \cong \Ext^1(\mathcal J_X(-1), Z^* \otimes \mathcal O(-5)) +$$ +defines an extension which, twisted by 4, can be written as +$$ +0 \rightarrow 4\:\! \mathcal O(-1) \rightarrow \mathcal G +\rightarrow \mathcal J_X(3) \rightarrow 0\ . +$$ +Let us show that $\mathcal G$ is a vector bundle. +We know from the classification of scrolls in $\PP^4(\CC)$ (see \cite{EA:Lanteri} +and \cite{EA:aure-thesis}) that $X$ is not a scroll. +Hence adjunction theory implies that $\omega_X(1)$ is generated by the adjoint linear +system $\H^0(\omega_X(1))$ (see \cite[Corollary 9.2.2]{EA:adj-theory}). It follows by +Serre's criterion (\cite{EA:MR16:953c}, see also \cite[Theorem 2.2]{EA:okreflexiv}) +that $\mathcal G$ is locally free. By construction $\mathcal G$ has a +cohomology table as follows: +\vskip0.2cm +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Neue Lngen fr Abstnde horizontal und vertikal +% Nur einmal vor dem ersten Auftreten eines Beilinson-Diagramms +%\newlength{\br} +%\newlength{\ho} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{ +$$ %Diagramm zentrieren +% +% Whle die Einheiten \br horizontal und \ho vertikal +{ +\setlength{\br}{9mm} +\setlength{\ho}{6mm} +\fontsize{10pt}{8pt} +\selectfont +\begin{xy} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Achsenkreuz im Punkte (0,0) +% +% x-Achse von -5.5\br bis 1\br +% mit einem "j" an 0.95 der Lnge und 3mm unter der Achse: +% +,<-5.5\br,0\ho>;<1\br,0\ho>**@{-}?>*@{>} +?(0.98)*!/^3mm/{i} +% +% y-Achse von 0\ho bis 6\ho +% mit einem "i" an 0,9 der Lnge und 3mm rechts neben der Achse: +% +,<-1\br,0\ho>;<-1\br,6\ho>**@{-}?>*@{>} +?(0.98)*!/^3mm/{j} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 5 waagrechte Linien von -5\br bis +0\br +% in den Hhen 1\ho,...,5\ho: +% +,0+<-5\br,1\ho>;<0\br,1\ho>**@{-} +,0+<-5\br,2\ho>;<0\br,2\ho>**@{-} +,0+<-5\br,3\ho>;<0\br,3\ho>**@{-} +,0+<-5\br,4\ho>;<0\br,4\ho>**@{-} +,0+<-5.5\br,5\ho>;<.5\br,5\ho>**@{-} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 11 senkrechte Linien von 0\ho bis 5\ho +% in den waagrechten Punkten -8\br,...,+3\br: +% +,0+<-5\br,0\ho>;<-5\br,5\ho>**@{-} +,0+<-4\br,0\ho>;<-4\br,5\ho>**@{-} +,0+<-3\br,0\ho>;<-3\br,5\ho>**@{-} +,0+<-2\br,0\ho>;<-2\br,5\ho>**@{-} +,0+<0\br,0\ho>;<0\br,5\ho>**@{-} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Eintrge in den Mitten der Ksten. Daher die Koordinaten mit .5 +% +,0+<-3.5\br,2.5\ho>*{1} +,0+<-2.5\br,2.5\ho>*{1} +,0+<-1.5\br,1.5\ho>*{1} +,0+<-0.5\br,1.5\ho>*{1} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +,0+<-4.5\br,-0.6\ho>*{-4} +,0+<-3.5\br,-0.6\ho>*{-3} +,0+<-2.5\br,-0.6\ho>*{-2} +,0+<-1.5\br,-0.6\ho>*{-1} +,0+<-0.5\br,-0.6\ho>*{0} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +,0+<-6.0\br,4.5\ho>*{4} +,0+<-6.0\br,3.5\ho>*{3} +,0+<-6.0\br,2.5\ho>*{2} +,0+<-6.0\br,1.5\ho>*{1} +,0+<-6.0\br,0.5\ho>*{0} +\end{xy} +} +$$ +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\vskip0.1cm +\noindent +So the Beilinson monad of $\mathcal G$ is of type +$$ +0 \rightarrow U^3 \overset\alpha\rightarrow U^2\oplus U +\overset\beta\rightarrow \mathcal O \rightarrow 0\ . +$$ + +\vskip0.1cm +\noindent +{\it{Step 2.}}\; Now we proceed the other way around. We show that a +rank 5 bundle $\mathcal G$ as in the first step exists, and that the dependency locus of +four general sections of $\mathcal G(1)$ is a surface of the desired type. Differentials which +define a monad as above with a locally free homology can be easily found. +By Lemma \ref{hombd} $\alpha$ corresponds to a pair of vectors $\alpha=(\alpha_1, \alpha_2)^t +\in V \oplus \bigwedge^2 V$ . By dualizing (see Remark \ref{dualitybd}) we find that it +is a vector bundle monomorphism if and only if +$U^2\oplus U^3\overset{\alpha^t}\longrightarrow U^1$ is an epimorphism. Equivalently, +$\alpha_1$ is non-zero and $\alpha_2$ considered as a vector in +$\bigwedge^2 (V/\langle \alpha_1 \rangle)$ is indecomposable (argue as in the proof of +Proposition \ref{critsur}). Taking the other monad conditions into account we see +that we may pick +$$ +\alpha= +\begin{pmatrix} +e_4\\ +e_0\wedge e_2 + e_1\wedge e_3 +\end{pmatrix} +$$ +and +$$ +\beta= +\begin{pmatrix} + e_0\wedge e_2 + e_1\wedge e_3\, ,&-e_4 +\end{pmatrix} , +$$ +where $e_0 , \dots , e_4$ is a basis of $V$, and that up to isomorphisms of monads +and up to the choice of the basis this is the only possibility. We fix $\mathcal G$ as +the homology of this monad and compute the syzygies of $\mathcal G$ with \Mtwo. +\vskip0.3cm + + +\beginOutput +i51 : S = ZZ/32003[x_0..x_4];\\ +\endOutput +\beginOutput +i52 : E = ZZ/32003[e_0..e_4,SkewCommutative=>true];\\ +\endOutput +\beginOutput +i53 : beta=map(E^1,E^\{-2,-1\},\{\{e_0*e_2+e_1*e_3,-e_4\}\})\\ +\emptyLine +o53 = | e_0e_2+e_1e_3 -e_4 |\\ +\emptyLine +\ 1 2\\ +o53 : Matrix E <--- E\\ +\endOutput +\beginOutput +i54 : alpha=map(E^\{-2,-1\},E^\{-3\},\{\{e_4\},\{e_0*e_2+e_1*e_3\}\})\\ +\emptyLine +o54 = \{2\} | e_4 |\\ +\ \{1\} | e_0e_2+e_1e_3 |\\ +\emptyLine +\ 2 1\\ +o54 : Matrix E <--- E\\ +\endOutput +\beginOutput +i55 : beta=beilinson(beta,S);\\ +\emptyLine +o55 : Matrix\\ +\endOutput +\beginOutput +i56 : alpha=beilinson(alpha,S);\\ +\emptyLine +o56 : Matrix\\ +\endOutput +\beginOutput +i57 : G = prune homology(beta,alpha);\\ +\endOutput +\beginOutput +i58 : betti res G\\ +\emptyLine +o58 = total: 10 9 5 1\\ +\ 1: 10 4 1 .\\ +\ 2: . 5 4 1\\ +\endOutput + + +\vskip0.3cm +\noindent +We see in particular that $\mathcal G (1)$ is globally generated. Hence the +dependency locus of four general sections of $\mathcal G (1)$ is indeed a smooth surface +in $\PP^4(\CC)$ by Kleiman's Bertini-type result \cite{EA:Bertini}. The smoothness can +also be checked with \Mtwo in an example via the built-in Jacobian criterion +(see \cite{EA:DSJSC} for a speedier method). +\vskip0.3cm + +\beginOutput +i59 : foursect = random(S^4, S^10) * presentation G;\\ +\emptyLine +\ 4 9\\ +o59 : Matrix S <--- S\\ +\endOutput +\vskip0.1cm + +\noindent +The function +{\tt{trim}} computes a minimal presentation. + +\vskip0.1cm +\beginOutput +i60 : IX = trim minors(4,foursect);\\ +\emptyLine +o60 : Ideal of S\\ +\endOutput + +\beginOutput +i61 : codim IX\\ +\emptyLine +o61 = 2\\ +\endOutput +\beginOutput +i62 : degree IX\\ +\emptyLine +o62 = 8\\ +\endOutput +\beginOutput +i63 : codim singularLocus IX\\ +\emptyLine +o63 = 5\\ +\endOutput + +\vskip0.3cm +\noindent +By construction $X$ has the correct invariants and is in fact an elliptic conic bundle +as claimed: Since the adjoint linear system $\H^0(\omega_X(1))$ is base point free +and 4-dimensional +by what has been said in the first step, the corresponding adjunction map +$X \rightarrow \PP^3$ is a morphism which exhibits, as is easy to see, $X$ as a +conic bundle over a smooth elliptic curve in $\PP^3$ +(see \cite[Proposition 2.1]{EA:conicbundle}). + +\vskip0.1cm +\noindent +{\it{Step 3.}}\; Our discussion in the previous steps gives also a classification +result. Up to projectivities the elliptic conic bundles of degree 8 in $\PP^4(\CC)$ are +precisely the smooth surfaces arising as the dependency locus of four sections of the +bundle $\mathcal G(1)$ fixed in Step 2.\qed +%\end{Example} +\end{example} + +%\begin{Example} +\begin{example} +%\noindent +%{\it {Example 7.2}}\, +This example is concerned with the construction and +classification of \ie{abelian surface}s in $\PP^4(\CC)$, and +with the closely related +\ie{Horrocks-Mumford bundle}s \cite{EA:HM}. +\index{bundle!Horrocks-Mumford} +\vskip0.1cm +\noindent +{\it{Step 1.}}\; Horrocks and Mumford found evidence for the +existence of a family of abelian surfaces in $\PP^4(\CC)$. +Suppose that such a surface $X$ exists. Then the dualizing sheaf of $X$ is trivial, +$\omega_X\cong \mathcal O_X$, and $X$ has degree 10 (see \cite[Example 3.2.15]{EA:fultonit}). +The same arguments as in Example \ref{was7.1} show that $X$ arises as the zero scheme of a +section of a rank 2 vector bundle: There is an extension +$$ +0 \rightarrow \mathcal O \rightarrow \mathcal F (3) +\rightarrow \mathcal J_X(5) \rightarrow 0\ , +$$ +where $\mathcal F (3)$ is a rank 2 vector bundle with Chern classes $c_1 = 5$ and +$c_2 = \deg X = 10$, and where $\mathcal F$ has a cohomology table as +displayed in Figure \ref{cohtable}. +\begin{figure} +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Neue Lngen fr Abstnde horizontal und vertikal +% Nur einmal vor dem ersten Auftreten eines Beilinson-Diagramms +%\newlength{\br} +%\newlength{\ho} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{ +$$ %Diagramm zentrieren +% +% Whle die Einheiten \br horizontal und \ho vertikal +{ +\setlength{\br}{9mm} +\setlength{\ho}{6mm} +\fontsize{10pt}{8pt} +\selectfont +\begin{xy} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Achsenkreuz im Punkte (0,0) +% +% x-Achse von -5.5\br bis 1\br +% mit einem "j" an 0.95 der Lnge und 3mm unter der Achse: +% +,<-5.5\br,0\ho>;<1\br,0\ho>**@{-}?>*@{>} +?(0.98)*!/^3mm/{i} +% +% y-Achse von 0\ho bis 6\ho +% mit einem "i" an 0,9 der Lnge und 3mm rechts neben der Achse: +% +,<-1\br,0\ho>;<-1\br,6\ho>**@{-}?>*@{>} +?(0.98)*!/^3mm/{j} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 5 waagrechte Linien von -5\br bis +0\br +% in den Hhen 1\ho,...,5\ho: +% +,0+<-5\br,1\ho>;<0\br,1\ho>**@{-} +,0+<-5\br,2\ho>;<0\br,2\ho>**@{-} +,0+<-5\br,3\ho>;<0\br,3\ho>**@{-} +,0+<-5\br,4\ho>;<0\br,4\ho>**@{-} +,0+<-5.5\br,5\ho>;<.5\br,5\ho>**@{-} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 11 senkrechte Linien von 0\ho bis 5\ho +% in den waagrechten Punkten -8\br,...,+3\br: +% +,0+<-5\br,0\ho>;<-5\br,5\ho>**@{-} +,0+<-4\br,0\ho>;<-4\br,5\ho>**@{-} +,0+<-3\br,0\ho>;<-3\br,5\ho>**@{-} +,0+<-2\br,0\ho>;<-2\br,5\ho>**@{-} +,0+<0\br,0\ho>;<0\br,5\ho>**@{-} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Eintrge in den Mitten der Ksten. Daher die Koordinaten mit .5 +% +,0+<-4.5\br,3.5\ho>*{5} +,0+<-2.5\br,2.5\ho>*{2} +,0+<-0.5\br,1.5\ho>*{5} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +,0+<-4.5\br,-0.6\ho>*{-4} +,0+<-3.5\br,-0.6\ho>*{-3} +,0+<-2.5\br,-0.6\ho>*{-2} +,0+<-1.5\br,-0.6\ho>*{-1} +,0+<-0.5\br,-0.6\ho>*{0} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +,0+<-6.0\br,4.5\ho>*{4} +,0+<-6.0\br,3.5\ho>*{3} +,0+<-6.0\br,2.5\ho>*{2} +,0+<-6.0\br,1.5\ho>*{1} +,0+<-6.0\br,0.5\ho>*{0} +\end{xy} +} +$$ +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\caption{}\label{cohtable} +\end{figure} +In particular $\mathcal F$, which has Chern classes $c_1=-1$ and $c_2=4$, is stable by +Remark 5.3. A discussion as in Section 5 shows that the Beilinson monad for $\mathcal F$ +is of type +$$ +\xymatrix{ +0\ar[r]& A\otimes \mathcal O(-1)\ar[r]^{\alpha}& +B \otimes U^2 \ar[r]^{\alpha^d}& A^*\otimes\mathcal O \ar[r] & 0 +}\ , +$$ +with $\CC$-vector spaces $A$ and $B$ of dimension 5 and 2 respectively, +and with $\alpha^d = \alpha^*(-1)\circ(q\otimes\iota)$, where $q$ is +a symplectic form on $B$, and where +$\iota : U^2 \overset{\cong}\longrightarrow (U^2)^*(-1)$ is induced +by the pairing $U^2 \otimes U^2 \overset\wedge\longrightarrow U^4\cong\mathcal O(-1)$. +By choosing appropriate bases of $A$ and $B$ we may suppose +that $\alpha$ is a $2\times 5$ matrix with entries in $\bigwedge^2 V$ and that +$\alpha^d = \alpha^t\cdot \begin{pmatrix} 0 & 1\\ -1 & 0\end{pmatrix}$. + +\vskip0.1cm +\noindent +{\it{Step 2.}}\; As in Example 7.1 we now proceed the other way around. +But this time it is not obvious how to define $\alpha$. +Horrocks and Mumford remark that up to projectivities +one may suppose that the abelian surfaces in $\P^4(\CC)$ are invariant under +the action of the {\ie Heisenberg group} $H_5$ in its Schr\"odinger representation, and +they use the representation theory of $H_5$ and its normalizer $N_5$ in +$\SL(5, \CC)$ to find +$$ +\alpha = +\begin{pmatrix} +e_2\wedge e_3\;&e_3\wedge e_4\;&e_4\wedge e_0\;&e_0\wedge e_1\;&e_1\wedge e_2\\ +e_1\wedge e_4\;&e_2\wedge e_0\;&e_3\wedge e_1\;&e_4\wedge e_2\;&e_0\wedge e_3 +\end{pmatrix}\ , +$$ +where $e_0 ,\dots , e_4$ is a basis of $V$. A straightforward computation shows +that with this $\alpha$ the desired monad conditions are indeed satisfied. The resulting +Horrocks-Mumford bundle $\mathcal F_{\text{HM}}$ on $\PP^4(\CC)$ is essentially +the only rank 2 vector bundle known on $\PP^n(\CC)$, $n\geq 4$, which does not +split as direct sum of two line bundles. Let us compute the syzygies of +$\mathcal F_{\text{HM}}$ with \Mtwo. +\vskip0.3cm + +\beginOutput +i64 : alphad = matrix\{\{e_4*e_1, e_2*e_3\},\{e_0*e_2, e_3*e_4\},\\ +\ \{e_1*e_3, e_4*e_0\},\{e_2*e_4, e_0*e_1\},\\ +\ \{e_3*e_0, e_1*e_2\}\};\\ +\emptyLine +\ 5 2\\ +o64 : Matrix E <--- E\\ +\endOutput +\beginOutput +i65 : alphad=map(E^5,E^\{-2,-2\},alphad)\\ +\emptyLine +o65 = | -e_1e_4 e_2e_3 |\\ +\ | e_0e_2 e_3e_4 |\\ +\ | e_1e_3 -e_0e_4 |\\ +\ | e_2e_4 e_0e_1 |\\ +\ | -e_0e_3 e_1e_2 |\\ +\emptyLine +\ 5 2\\ +o65 : Matrix E <--- E\\ +\endOutput +\beginOutput +i66 : alpha=syz alphad\\ +\emptyLine +o66 = \{2\} | e_2e_3 e_0e_4 e_1e_2 -e_3e_4 e_0e_1 |\\ +\ \{2\} | e_1e_4 e_1e_3 e_0e_3 e_0e_2 -e_2e_4 |\\ +\emptyLine +\ 2 5\\ +o66 : Matrix E <--- E\\ +\endOutput +\beginOutput +i67 : alphad=beilinson(alphad,S);\\ +\emptyLine +o67 : Matrix\\ +\endOutput +\beginOutput +i68 : alpha=beilinson(alpha,S);\\ +\emptyLine +o68 : Matrix\\ +\endOutput +\beginOutput +i69 : FHM = prune homology(alphad,alpha);\\ +\endOutput +\beginOutput +i70 : betti res FHM\\ +\emptyLine +o70 = total: 19 35 20 2\\ +\ 3: 4 . . .\\ +\ 4: 15 35 20 .\\ +\ 5: . . . 2\\ +\endOutput +\beginOutput +i71 : regularity FHM\\ +\emptyLine +o71 = 5\\ +\endOutput +\beginOutput +i72 : betti sheafCohomology(presentation FHM,E,-6,6)\\ +\emptyLine +o72 = total: 210 100 37 14 10 5 2 5 10 14 37 100 210\\ +\ -6: 210 100 35 4 . . . . . . . . .\\ +\ -5: . . 2 10 10 5 . . . . . . .\\ +\ -4: . . . . . . 2 . . . . . .\\ +\ -3: . . . . . . . 5 10 10 2 . .\\ +\ -2: . . . . . . . . . 4 35 100 210\\ +\endOutput + + +\vskip0.3cm +\noindent +Since $\H^0 \mathcal F_{\text{HM}}(i) = 0$ for $i<3$ every non-zero section of +$\mathcal F_{\text{HM}}(3)$ vanishes along a surface (with the desired invariants). +Horrocks and Mumford need an extra argument to show that the general such surface +is smooth (and thus abelian) since Kleiman's Bertini-type result does not apply +($\mathcal F_{\text{HM}}(3)$ is not globally generated). Our explicit construction +allows one again to check the smoothness with \Mtwo in an example. +\vskip0.3cm + +\beginOutput +i73 : sect = map(S^1,S^15,0) | random(S^1, S^4);\\ +\emptyLine +\ 1 19\\ +o73 : Matrix S <--- S\\ +\endOutput +\vskip0.1cm + +\noindent +We compute the equations of $X$ via a mapping cone. +\vskip0.1cm + +\beginOutput +i74 : mapcone = sect || transpose presentation FHM;\\ +\emptyLine +\ 36 19\\ +o74 : Matrix S <--- S\\ +\endOutput +\beginOutput +i75 : fmapcone = res coker mapcone;\\ +\endOutput +\beginOutput +i76 : IX = trim ideal fmapcone.dd_2;\\ +\emptyLine +o76 : Ideal of S\\ +\endOutput +\beginOutput +i77 : codim IX\\ +\emptyLine +o77 = 2\\ +\endOutput +\beginOutput +i78 : degree IX\\ +\emptyLine +o78 = 10\\ +\endOutput +\beginOutput +i79 : codim singularLocus IX\\ +\emptyLine +o79 = 5\\ +\endOutput + + +\vskip0.3cm +\noindent +{\it{Step 3.}}\; Horrocks and Mumford showed that up to projectivities +every abelian surface in $\PP^4(\CC)$ arises as the zero scheme of a section +of $\mathcal F_{\text{HM}}(3)$. In fact, one can show much more. +By a careful analysis of possible Beilinson monads and their restrictions +to various linear subspaces Decker \cite{EA:uniquenesshm1} proved that every stable rank 2 +vector bundle $\mathcal F$ on $\PP^4(\CC)$ with Chern classes $c_1=-1$ and $c_2=4$ +is the homology of a monad of the type as in Step 1. From geometric properties of the +``variety of unstable planes'' of $\mathcal F$ Decker and Schreyer \cite{EA:uniquenesshm2} +deduced that up to isomorphisms and projectivities the differentials of the monad coincide +with those of $\mathcal F_{\text{HM}}$. Together with results from \cite{EA:decker24} +this implies that the moduli space of our bundles is isomorphic to the homogeneous +space $\SL(5, \CC)/N_5.$\qed +%\end{Example} +\end{example} + +%\textbf{EISENBUD ENDE} + +% \section*{References} + +% use \cite{EA:MR92g:14013} instead. +% \noindent\textbf{Ancona, V. \& Ottaviani, G.}: +% {\sl An introduction to derived categories and the theorem of Beilinson}, +% Atti Accademia Peloritana dei Pericolanti, Classe I de Scienze +% Fis. Mat. et Nat. LXVII, 99-110 (1989) + +% use \cite{EA:MR57:324} instead +% \noindent\textbf{Barth, W.}: +% {\sl Moduli of vector bundles on the projective plane}, +% Invent. math. {\bf 42}, 63-91 (1977) + + +% use \cite{EA:MR80f:14005} instead +%\noindent\textbf{Barth, W. \& Hulek, K.}: +% {\sl Monads and Moduli of Vector Bundles}, +% manuscripta math. {\bf 25}, 323-347 (1978) + +% use \cite{EA:MR80c:14010b} instead +% \noindent\textbf{Beilinson, A}: +% {\sl Coherent sheaves on $\P^n$ and problems of linear algebra}, +% Funct. Anal. and its Appl. {\bf 12}, 214-216 (1978) + +% use \cite{EA:MR80c:14010a} instead +% \noindent\textbf{Bernstein, Gel'fand, and Gel'fand}: +% {\sl Algebraic bundles on $\P^n$ and problems of linear algebra}, +% Funct. Anal. and its Appl. {\bf 12}, 212-214 (1978) + +% use \cite{EA:MR89g:13005:appendix} instead +% \noindent\textbf{Buchweitz, R.-O.}: +% Appendix to Cohen-Macaulay modules on quadrics, by +% R.-O. Buchweitz, D. Eisenbud, and J. Herzog. In +% {\sl Singularities, representation of algebras, +% and vector bundles} (Lambrecht, 1985), +% Springer-Verlag Lecture Notes in Math, 1273, 96-116 (1987) + + +% use \cite{EA:MR97a:13001} instead +% \noindent\textbf{Eisenbud, David}: +% {\sl Commutative Algebra with a View Toward Algebraic Geometry}, +% Springer Verlag, 1995 + +% use \cite{EA:MR1484973:eisenbud} instead +% \noindent\textbf{Eisenbud, David}: +% {\sl Computing cohomology} in Chapter of +% ``Computational methods in Commutative Algebra and Algebraic Geometry'' +% by ~W.~Vasconcelos, Springer Verlag, Berlin, 1998 + +% use \cite{EA:Eisenbud-Schreyer:ChowForms} instead +% \noindent\textbf{Eisenbud, D. \& Schreyer, F.-O.}: +% {\sl Chow forms and free resolution}, in preparation 2001 + +% use \cite{EA:eis-sch:sheaf} instead +% \noindent\textbf{Eisenbud, D. \& Schreyer, F.-O.}: +% {\sl Sheaf Cohomology and Free Resolutions over Exterior Algebras}, +% AG/0005055, 2000 + +% use \cite{EA:MR81h:14014}% instead +% \noindent\textbf{Gieseker, D.}: +% {\sl On the moduli of vector bundles on an algebraic surface}, +% Ann. of Math. {\bf 106}, 45-60 (1977) + +% use \cite{EA:MR80m:14011}% instead +% \noindent\textbf{Hulek, Klaus}: +% {\sl Stable Rank-2 Vector Bundles on $\P_2$ with $c_1$ odd}, +% Math. Ann. {\bf 242}, 241-266 (1979) + +% use \cite{EA:MR30:120}% instead +% \noindent\textbf{Horrocks, G.}: +% {\sl Vector bundles on the punctured spectrum of a local ring}, +% Proc. London Math. Soc. (3), {\bf 14}, 689-713 (1964) + +% use \cite{EA:MR84j:14026}% instead +% \noindent\textbf{Horrocks, G.}: +% {\sl Construction of bundles on $\PP^n$} in ``Les equations de Yang-Mills'', +% by A. Douady, J.-L. Verdier (eds.), Asterisque {\bf 71-72}, 197-202 (1980) + + +% use \cite{EA:MR89g:18018}% instead +% \noindent\textbf{Kapranov, M. M.}: +% {\sl On the derived categories of coherent sheaves on some +% homogeneous spaces}, Invent. Math. {\bf 92}, 479-508 (1988) + +% use \cite{EA:MR80m:14012} instead +% \noindent\textbf{Le Potier, J.}: +% {\sl Fibr\'es stables de rang 2 sur $\P_2 (\CC)$}, +% Math. Ann. {\bf 241}, 217-256 (1979) + +% use \cite{EA:MR56:8567}% instead +% \noindent\textbf{Maruyama, M.}: +% {\sl Moduli of stable sheaves I}, +% J. Math. Kyoto Univ. {\bf 17}, 91-126 (1977) + +% use \cite{EA:MR82h:14011}% instead +% \noindent\textbf{Maruyama, M.}: +% {\sl Moduli of stable sheaves II}, +% J. Math. Kyoto Univ. {\bf 18}, 557-614 (1978) + + +% use \cite{EA:MR81b:14001}% instead +% \noindent\textbf{Okonek, C., Schneider, M. \& Spindler, H.}: +% {\sl Vector bundles on complex projective spaces}, Boston, 1980 + + +% use \cite{EA:MR16:953c}% instead +% \noindent\textbf{Serre, J.P.}: +% {\sl Faisceaux alg\'ebriques coherents}, +% Ann. of Math. {\bf 61}, 197-278 (1955) + +% use \cite{EA:MR99f:14064}% instead +% \noindent\textbf{Walter, Charles H.}: +% {\sl Pfaffian subschemes}, +% J. Algebr. Geom. {\bf 5}, 671-704 (1996) + +% % Local Variables: +% % mode: latex +% % mode: reftex +% % tex-main-file: "chapter-wrapper.tex" +% % reftex-keep-temporary-buffers: t +% % reftex-use-external-file-finders: t +% % reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) +% % TeX-master: "~/M2BUCH/ComputationsBook/chapters/exterior-alge" +% % End: +\begin{thebibliography}{10} + +\bibitem{EA:conicbundle} +H.~Abo, W.~Decker, and N.~Sasakura: +\newblock An elliptic conic bundle on ${\bf {\char 80}}\sp{4}$ arising from a + stable rank-$3$ vector bundle. +\newblock {\em Math. Z.}, 229:725--741, 1998. + +\bibitem{EA:MR92g:14013} +V.~Ancona and G.~Ottaviani: +\newblock An introduction to the derived categories and the theorem of + {B}eilinson. +\newblock {\em Atti Accad. Peloritana Pericolanti Cl. Sci. Fis. Mat. Natur.}, + 67:99--110 (1991), 1989. + +\bibitem{EA:aure-thesis} +A.~Aure: +\newblock On surfaces in projective 4-space. +\newblock PhD Thesis, Oslo, 1987. + +\bibitem{EA:MR57:324} +W.~Barth: +\newblock Moduli of vector bundles on the projective plane. +\newblock {\em Invent. Math.}, 42:63--91, 1977. + +\bibitem{EA:MR80f:14005} +W.~Barth and K.~Hulek: +\newblock Monads and moduli of vector bundles. +\newblock {\em Manuscripta Math.}, 25:323--347, 1978. + +\bibitem{EA:MR80c:14010b} +A.~A. Be{\u\i}linson: +\newblock Coherent sheaves on ${\bf {\char 80}}\sp{n}$ and problems in linear + algebra. +\newblock {\em Functional Anal. Appl.}, 12:214--216, 1978. + +\bibitem{EA:adj-theory} +M.C. Beltrametti and A.~Sommese: +\newblock {\em The adjunction theory of complex projective varieties}. +\newblock de Gruyter, Berlin, 1995. + +\bibitem{EA:MR80c:14010a} +I.~N. Bern{\v{s}}te{\u\i}n, I.~M. Gel{'}fand, and S.~I. Gel{'}fand: +\newblock Algebraic vector bundles on ${\bf {\char 80}}\sp{n}$\ and problems of + linear algebra. +\newblock {\em Functional Anal. Appl.}, 12:212--214, 1978. + +\bibitem{EA:BR} +R.~Braun and K.~Ranestad: +\newblock Conic bundles in projective fourspace. +\newblock In P.~Newstead, editor, {\em Algebraic geometry. Papers presented for + the EUROPROJ conferences held in Catania, Italy, September 1993, and + Barcelona, Spain, September 1994}, pages 331--339. Marcel Dekker, New York, + 1994. + +\bibitem{EA:MR89g:13005:appendix} +R.-O. Buchweitz: +\newblock Appendix to {C}ohen-{M}acaulay modules on quadrics. +\newblock In {\em Singularities, representation of algebras, and vector bundles + (Lambrecht, 1985)}, pages 96--116. Springer, Berlin, 1987. + +\bibitem{EA:decker24} +W.~Decker: +\newblock Das {H}orrocks-{M}umford-{B}\"undel und das {M}odul-{S}chema f\"ur + stabile $2$-{V}ektorb\"undel \"uber ${\bf {\char 80}}_4$ mit $c_1$=-1, + $c_2$=4. +\newblock {\em Math. Z.}, 188:101--110, 1984. + +\bibitem{EA:uniquenesshm1} +W.~Decker: +\newblock Stable rank 2 vector bundles with {C}hern-classes $c_1$=-1, $c_2$=4. +\newblock {\em Math. Ann.}, 275:481--500, 1986. + +\bibitem{EA:cam} +W.~Decker: +\newblock Monads and cohomoloy modules of rank 2 vector bundles. +\newblock {\em Compositio Math.}, 76:7--17, 1990. + +\bibitem{EA:uniquenesshm2} +W.~Decker and F.-O. Schreyer: +\newblock On the uniqueness of the {H}orrocks-{M}umford-bundle. +\newblock {\em Math. Ann.}, 273:415--443, 1986. + +\bibitem{EA:DSJSC} +W.~Decker and F.-O. Schreyer: +\newblock Non-general type surfaces in ${\bf {\char 80}}^4$: Some remarks on + bounds and constructions. +\newblock {\em J. Symbolic Computation}, 29:545--582, 2000. + +\bibitem{EA:MR1484973:eisenbud} +D.~Eisenbud: +\newblock Computing cohomology. +\newblock A chapter in \cite{EA:VAS}. + +\bibitem{EA:MR97a:13001} +D.~Eisenbud: +\newblock {\em Commutative algebra with a view toward algebraic geometry}. +\newblock Springer-Verlag, New York, 1995. + +\bibitem{EA:eis-sch:sheaf} +D.~Eisenbud, G.~Fl{\o}ystad, and F.-O. Schreyer: +\newblock Sheaf cohomology and free resolutions over exterior algebras. +\newblock Work in progress, 2001. + +\bibitem{EA:Eisenbud-Schreyer:ChowForms} +D.~Eisenbud and F.-O. Schreyer: +\newblock Resultants, chow forms, and free resolutions. +\newblock In preparation, 2001. + +\bibitem{EA:ES} +P.~Ellia and G.~Sacchiero: +\newblock Smooth surfaces of ${\bf {\char 80}}\sp{4}$\ ruled in conics. +\newblock In P.~Newstead, editor, {\em Algebraic geometry. Papers presented for + the EUROPROJ conferences held in Catania, Italy, September 1993, and + Barcelona, Spain, September 1994}, pages 49--62. Marcel Dekker, New York, + 1994. + +\bibitem{EA:fultonit} +W.~Fulton: +\newblock {\em Intersection theory}. +\newblock Springer-Verlag, New York, 1984. + +\bibitem{EA:MR81h:14014} +D.~Gieseker: +\newblock On the moduli of vector bundles on an algebraic surface. +\newblock {\em Ann. of Math. (2)}, 106:45--60, 1977. + +\bibitem{EA:MR30:120} +G.~Horrocks: +\newblock Vector bundles on the punctured spectrum of a local ring. +\newblock {\em Proc. London Math. Soc. (3)}, 14:689--713, 1964. + +\bibitem{EA:MR84j:14026} +G.~Horrocks: +\newblock Construction of bundles on ${\bf {\char 80}}\sp{n}$. +\newblock In A.~Douady and J.-L. Verdier, editors, {\em Les \'equations de + {Y}ang-{M}ills}, pages 197--203. Soci\'et\'e Math\'ematique de France, Paris, + 1980. +\newblock S\'eminaire E. N. S., 1977-1978, Ast\'erisqe 71--72. + +\bibitem{EA:HM} +G.~Horrocks and D.~Mumford: +\newblock A rank 2 vector bundle on ${\bf {\char 80}}\sp{4}$\ with 15,000 + symmetries. +\newblock {\em Topology}, 12:63--81, 1973. + +\bibitem{EA:MR80m:14011} +Klaus Hulek: +\newblock Stable rank-$2$\ vector bundles on ${\bf {\char 80}}\sb{2}$\ with + $c\sb{1}$\ odd. +\newblock {\em Math. Ann.}, 242(3):241--266, 1979. + +\bibitem{EA:ionescu} +P.~Ionescu: +\newblock Embedded projective varieties of small invariants {I}{I}{I}. +\newblock In A.J. Sommese, A.~Biancofiore, and E.~Livorni, editors, {\em + Algebraic Geometry (L`A\-qui\-la 1988)}, pages 138--154. Springer, New York, + 1990. + +\bibitem{EA:MR89g:18018} +M.~M. Kapranov: +\newblock On the derived categories of coherent sheaves on some homogeneous + spaces. +\newblock {\em Invent. Math.}, 92(3):479--508, 1988. + +\bibitem{EA:Bertini} +S.~Kleiman: +\newblock Geometry on grassmanians and applications to splitting bundles and + smoothing cycles. +\newblock {\em Publ. Math. I.H.E.S.}, 36:281--297, 1969. + +\bibitem{EA:Lanteri} +A.~Lanteri: +\newblock On the existence of scrolls in ${\bf {\char 80}}\sp{4}$. +\newblock {\em Atti Accad. Naz. Lincei, VIII. Ser., Rend., Cl. Sci. Fis. Mat. + Nat.}, 69:223--227, 1980. + +\bibitem{EA:MR80m:14012} +J.~Le~Potier: +\newblock Fibr\'es stables de rang $2$\ sur ${\bf {\char 80}}\sb{2}({\bf {\char + 67}})$. +\newblock {\em Math. Ann.}, 241:217--256, 1979. + +\bibitem{EA:nico} +N.~Manolache: +\newblock Syzygies of abelian surfaces embedded in ${\bf {\char 80}}^4({\bf + {\char 67}})$. +\newblock {\em J. reine angew. Math.}, 384:180--191, 1988. + +\bibitem{EA:MR56:8567} +M.~Maruyama: +\newblock Moduli of stable sheaves {I}. +\newblock {\em J. Math. Kyoto Univ.}, 17:91--126, 1977. + +\bibitem{EA:MR82h:14011} +M.~Maruyama: +\newblock Moduli of stable sheaves {I}{I}. +\newblock {\em J. Math. Kyoto Univ.}, 18:557--614, 1978. + +\bibitem{EA:okreflexiv} +Ch. Okonek: +\newblock Reflexive {G}arben auf ${\bf {\char 80}}\sp{4}$. +\newblock {\em Math. Ann.}, 260:211--237, 1982. + +\bibitem{EA:okgrad8} +Ch. Okonek: +\newblock Fl\"achen vom {G}rad 8 im ${\bf {\char 80}}\sp{4}$. +\newblock {\em Math. Z.}, 191:207--223, 1986. + +\bibitem{EA:MR81b:14001} +Ch. Okonek, M.~Schneider, and H.~Spindler: +\newblock {\em Vector bundles on complex projective spaces}. +\newblock Birkh\"auser Boston, Mass., 1980. + +\bibitem{EA:roth} +L.~Roth: +\newblock On the projective classification of surfaces. +\newblock {\em Proc. of London Math. Soc.}, 42:142--170, 1937. + +\bibitem{EA:MR16:953c} +J.-P. Serre: +\newblock Faisceaux alg\'ebriques coh\'erents. +\newblock {\em Ann. of Math. (2)}, 61:197--278, 1955. + +\bibitem{smith} +Gregory~G. Smith: +\newblock Computing global extension modules. +\newblock {\em J. Symbolic Comput.}, 29(4-5):729--746, 2000. +\newblock Symbolic computation in algebra, analysis, and geometry (Berkeley, + CA, 1998). + +\bibitem{EA:VAS} +Wolmer~V. Vasconcelos: +\newblock {\em Computational methods in commutative algebra and algebraic + geometry}. +\newblock Springer-Verlag, Berlin, 1998. +\newblock With chapters by David Eisenbud, Daniel R. Grayson, J\"urgen Herzog + and Michael Stillman. + +\bibitem{EA:MR99f:14064} +C.~H. Walter: +\newblock Pfaffian subschemes. +\newblock {\em J. Algebraic Geom.}, 5:671--704, 1996. + +\end{thebibliography} +\egroup +\makeatletter +\renewcommand\thesection{\@arabic\c@section} +\makeatother + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% +%%%%% ../chapters/constructions/chapter +%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\bgroup +% $Source: /home/cvs/M2/Macaulay2/ComputationsBook/chapters/constructions/chapter.tex,v $ +% $Revision: 1.30 $ +% $Date: 2001/03/16 22:03:06 $ + +\title{Needles in a Haystack:\\Special Varieties via Small Fields} +\titlerunning{Needles in a Haystack: Special Varieties via Small Fields} +\toctitle{Needles in a Haystack: Special Varieties via Small Fields} +\author{Frank-Olaf Schreyer + % \inst 1 + \and Fabio Tonoli + % \inst 2 + } +\authorrunning{F-O. Schreyer and F. Tonoli} +% \institute{Fakult\"at f\"ur Mathematik und Physik, +% Universit\"at Bayreuth, D-95440 Bayreuth, Germany +% \and +% Mathematisches Institut, Georg--August Universit\"at, D-37073 +% G\"ottingen, Germany} + +% \newtheorem{lemma}{Lemma}[section] +% \newtheorem{proposition}[lemma]{Proposition} +% \newtheorem{theorem}[lemma]{Theorem} +% \newtheorem{corollary}[lemma]{Corollary} +\newtheorem{conjecture}[theorem]{Conjecture}{\itshape}{\rm} + +% \theoremstyle{definition} +% \newtheorem{definition}[theorem]{Definition} +% \newtheorem{remark}{Remark}[section] +% \newtheorem{example}{Example}[section] +% \newtheorem{exercise}{Exercise}[section] +% \newtheorem{algorithm}{Algorithm}[subsection] +% \newtheorem{sub}[subsubsection]{} + + +\newcommand{\AAA}{{\mathbb A}} +\newcommand{\BB}{{\mathbb B}} +\newcommand{\CC}{{\mathbb C}} +\newcommand{\DD}{{\mathbb D}} +\newcommand{\EE}{{\mathbb E}} +\newcommand{\FF}{{\mathbb F}} +\newcommand{\GG}{{\mathbb G}} +%\newcommand{\HH}{{\mathbb H}} +\newcommand{\II}{{\mathbb I}} +\newcommand{\JJ}{{\mathbb J}} +\newcommand{\KK}{{\mathbb K}} +%\newcommand{\LL}{{\mathbb L}} +\newcommand{\MM}{{\mathbb M}} +\newcommand{\NN}{{\mathbb N}} +%\newcommand{{\mathbb O}} +\newcommand{\PP}{{\mathbb P}} +\newcommand{\QQ}{{\mathbb Q}} +\newcommand{\RR}{{\mathbb R}} +\renewcommand{\SS}{{\mathbb S}} +\newcommand{\Ss}{{\mathbf S}} +\newcommand{\TT}{{\mathbb T}} +\newcommand{\UU}{{\mathbb U}} +\newcommand{\VV}{{\mathbb V}} +\newcommand{\WW}{{\mathbb W}} +\newcommand{\XX}{{\mathbb X}} +\newcommand{\YY}{{\mathbb Y}} +\newcommand{\ZZ}{{\mathbb Z}} + +\newcommand{\LL}{{\mathbb L}} +\newcommand{\HH}{{\mathbb H}} +\newcommand{\Syz}{{\rm{Syz}\;}} +\newcommand{\Sym}{{\rm{Sym}\;}} +\newcommand{\SSyz}{{\rm{Syz}}} +\newcommand{\spoly}{{\rm{spoly}}} +\newcommand{\Spe}{{Sp}} +\newcommand{\openC}{{\mathbb C}} +\newcommand{\ms}{{\rm{m}}} +\newcommand{\LS}{{\rm{L}}} +\newcommand{\IS}{{\rm{I}}} +\newcommand{\Loc}{{\rm{Loc}\,}} +\newcommand{\lcm}{{\rm{lcm}}} +\newcommand{\lc}{{\rm{lc}}} +\newcommand{\lm}{{\rm{lm}}} +\newcommand{\con}{{\rm{c}}} +\newcommand{\ext}{{\rm{e}}} +\newcommand{\ec}{{\rm{ec}}} +\newcommand{\ann}{{\rm{ann}}} +% \newcommand{\Ext}{{\rm{Ext}}} +\newcommand{\equi}{{\rm{equi}}} +\newcommand{\Tor}{{\rm{Tor}}} +\newcommand{\rad}{{\rm{rad\;}}} +\newcommand{\ini}{{\rm{in}}} +\newcommand{\Hilb}{{\rm{Hilb}}} +\newcommand{\image}{{\rm{image}}} +\newcommand{\cliff}{{\rm{cliff}}} +\newcommand{\Pic}{{\rm{Pic}}} +\newcommand{\PR}{{\KK [x_1, \dots , x_n]}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% new commands for calligraphic characters with amsmath +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand{\ka}{{\mathcal A}} +\newcommand{\kb}{{\mathcal B}} +\newcommand{\kc}{{\mathcal C}} +\newcommand{\kd}{{\mathcal D}} +\newcommand{\ke}{{\mathcal E}} +\newcommand{\kf}{{\mathcal F}} +\newcommand{\kg}{{\mathcal G}} +\newcommand{\kh}{{\mathcal H}} +\newcommand{\ki}{{\mathcal I}} +\newcommand{\kj}{{\mathcal J}} +\newcommand{\kk}{{\mathcal K}} +\newcommand{\kl}{{\mathcal L}} +\newcommand{\km}{{\mathcal M}} +\newcommand{\kn}{{\mathcal N}} +\newcommand{\ko}{{\mathcal O}} +\newcommand{\kp}{{\mathcal P}} +\newcommand{\kq}{{\mathcal Q}} +\newcommand{\kr}{{\mathcal R}} +\newcommand{\ks}{{\mathcal S}} +\newcommand{\kt}{{\mathcal T}} +\newcommand{\ku}{{\mathcal U}} +\newcommand{\kv}{{\mathcal V}} +\newcommand{\kw}{{\mathcal W}} +\newcommand{\kx}{{\mathcal X}} +\newcommand{\ky}{{\mathcal Y}} +\newcommand{\kz}{{\mathcal Z}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%The mathscript for sheaves +%%%%%%%%%%%%%%%%%%%%% %%%%%%%%% +\newcommand{\s}{\mathscr} +\newcommand{\sA}{{\s A}} +\newcommand{\sB}{{\s B}} +\newcommand{\sC}{{\s C}} +\newcommand{\sD}{{\s D}} +\newcommand{\sE}{{\s E}} +\newcommand{\sF}{{\s F}} +\newcommand{\sG}{{\s G}} +\newcommand{\sH}{{\s H}} +\newcommand{\sI}{{\s I}} +\newcommand{\sJ}{{\s J}} +\newcommand{\sK}{{\s K}} +\newcommand{\sL}{{\s L}} +\newcommand{\sM}{{\s M}} +\newcommand{\sN}{{\s N}} +\newcommand{\sO}{{\s O}} +\newcommand{\sP}{{\s P}} +\newcommand{\sQ}{{\s Q}} +\newcommand{\sR}{{\s R}} +\newcommand{\sS}{{\s S}} +\newcommand{\sT}{{\s T}} +\newcommand{\sU}{{\s U}} +\newcommand{\sV}{{\s V}} +\newcommand{\sW}{{\s W}} +\newcommand{\sX}{{\s X}} +\newcommand{\sY}{{\s Y}} +\newcommand{\sZ}{{\s Z}} + + + +\newcommand{\cO}{{\s O}} +\newcommand{\cI}{{\s I}} +% \newcommand{\cL}{{\s L}} +% \newcommand{\cR}{{\s R}} +\newcommand{\cN}{{\s N}} +\newcommand{\cT}{{\s T}} +\newcommand{\cX}{{\s X}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Arrows +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\inj}{\hookrightarrow} +%\newcommand{\surj}{\lra} +\newcommand{\lra}{\longrightarrow} +\newcommand{\lla}{\longleftarrow} +\def\lto{\leftarrow} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\newcommand{\C}{\C} +%\newcommand{\openP}{\P} +\newcommand{\uf}{{\bf F}} +\newcommand{\uc}{{\bf C}} +\newcommand{\tensor}{\otimes} +\newcommand{\mi}{{\bf m}} +\newcommand{\tX}{\widetilde{X}} +\newcommand{\punkt}{\hspace{-.3ex}\raise.15ex\hbox to1ex{\Huge.}} +\newcommand{\tpunkt}{\hspace{-.3ex}\hbox to1ex{\Huge.}} +% \newlength{\br} +% \newlength{\ho} +\def\DeclareMathOperator#1#2{\def#1{\operatorname{#2}}} +\DeclareMathOperator{\det}{det} +\DeclareMathOperator{\GL}{GL} +\DeclareMathOperator{\Aut}{Aut} +\DeclareMathOperator{\Oo}{O} +\DeclareMathOperator{\Spec}{Spec} +\DeclareMathOperator{\Hom}{Hom} +\DeclareMathOperator{\syz}{syz} +\DeclareMathOperator{\ord}{ord} +\DeclareMathOperator{\word}{w\,ord} +\DeclareMathOperator{\supp}{supp} +\DeclareMathOperator{\Ker}{Ker} +\DeclareMathOperator{\im}{im} +%\DeclareMathOperator{\wdeg}{w\,deg} +\DeclareMathOperator{\depth}{depth} +\DeclareMathOperator{\gin}{gin} +\DeclareMathOperator{\Coker}{Coker} +\DeclareMathOperator{\NF}{NF} +\DeclareMathOperator{\pd}{pd} +\DeclareMathOperator{\SL}{SL} +\DeclareMathOperator{\SO}{SO} +\DeclareMathOperator{\Ort}{O} +\DeclareMathOperator{\Spez}{Sp} +\DeclareMathOperator{\PSL}{PSL} +\DeclareMathOperator{\PGL}{PGL} +\DeclareMathOperator{\wdim}{wdim} +\DeclareMathOperator{\cdim}{cdim} +\DeclareMathOperator{\cha}{char} +\DeclareMathOperator{\trdeg}{trdeg} +\DeclareMathOperator{\codim}{codim} +\DeclareMathOperator{\kdim}{kdim} +\DeclareMathOperator{\height}{height} +\DeclareMathOperator{\Ass}{Ass} +\DeclareMathOperator{\Lie}{Lie} +\DeclareMathOperator{\rk}{rk} + + +\renewcommand{\labelenumi}{(\arabic{enumi})} +\newcommand{\Ndash}{\nobreakdash--}% for pages 1\Ndash 9 +%\newcommand{\somespace}{\hfill{}\\ \vspace{-0.7cm}} +%\def\partitle#1{{\medskip\noindent {\bf #1.\hbox to 12pt{}}}} +\def\partitle{\subsubsection} + +%%%theosdefinitionen +\newcommand{\gm}{\mathfrak m} +\newcommand{\gM}{\mathfrak M} +\newcommand{\integer}{\ZZ} +\newcommand{\proj}{\PP} +\newcommand{\complex}{\CC} +\newcommand{\real}{\mathbb R} +\newcommand{\gp}{\mathfrak p} +\newcommand{\gq}{\mathfrak q} +% \newcommand{\go}{\mathfrak so} +%\newcommand{\openF}{\F} + +%%%%%%%%%%%%%%%betti table more wide! +\tabcolsep 3pt + + + +%%%%%%%%%%%%%%%BIBLIOGRAPHY +\newcommand{\by}{} +\newcommand{\paper}{: \begin{it}} +\newcommand{\jour }{, \end{it}} +\newcommand{\vol}{\begin{bf} } +\newcommand{\yr}{\end{bf}(} +\newcommand{\pages}{),} + +\maketitle + +\begin{abstract} In this article we illustrate how picking points +over a finite field at random +can help to investigate algebraic geometry questions. +In the first part we develop a program that produces random +curves of genus $g \le 14$. In the second part we use the program to test +Green's Conjecture on syzygies of canonical curves and compare +it with the corresponding statement for Coble self-dual sets of +points. +In the third section we apply our techniques to produce Calabi-Yau +3-folds of degree $17$ in $\PP^6$. +\end{abstract} + +\section*{Introduction} + +The advances in speed of modern computers and computer algebra systems gave +life to the idea of solving equations\index{solving polynomial equations} by guessing a solution. +Suppose $\MM \subset \GG$ is a subvariety of a rational variety +of codimension $c$. +Then we expect that the probability for a point $p \in \GG(\FF_q)$ to lie in +$\MM(\FF_q)$ is about $1/q^c$. +Here $\FF_q$ denotes the field with $q$ elements. + +We will discuss this idea in the following setting: +$\MM$ will be a parameter space for objects in algebraic geometry, e.g., +a \ie{Hilbert scheme}, a \ie{moduli space}, or a space dominating such spaces. + +The most basic question we might have in this case is whether $\MM$ is +non-empty and whether an open part of $\MM$ corresponds to smooth objects. + +Typically in these cases +we will not have explicit equations for $\MM \subset \GG$ +but only an implicit algebraic description of $\MM$, and our approach will +be successful if the time required to check $p \notin \MM(\FF_q)$ is sufficiently +small compared to $q^c$. +The first author applied this method first in \cite{CO:Sch1} to construct some +rational surfaces in $\PP^4$; see \cite{CO:ElPe,CO:DS} for motivation. + + +In this first section we describe a program that picks curve of genus +$g \le 14$ at random. The moduli spaces $\gM_g$ are known to be unirational +for $g\le 13$; see \cite{CO:Se,CO:CR}. + +Our approach based on this result +can viewed as a computer aided proof of the \ie{unirationality}. +Many people might object +that this not a proof because we cannot control every single step in the +computation. We however think that such a proof is much more reliable than +a proof based on man-made computations. +A mistake in a computer aided approach most often leads to an output far +away from our expectation, hence it is easy to spot. +A substantial improvement of present computers and computer algebra systems +would give us an explicit unirational parametrization of $\gM_g$ for $g\le 13$. +\medskip + +In the second part we apply our ``random curves'' to probe the consequences +of Green's conjecture on syzygies of canonical curves, +and compare these results with the corresponding statements for +``Coble self-dual'' sets of $2g-2$ points in $\PP^{g-2}$. +\medskip + +In the last section we exploit our method to prove the existence +of three components of the Hilbert scheme of Calabi-Yau 3-folds of degree $17$ +in $\PP^6$ over the complex numbers. +This is one of the main results of the second author's thesis +\cite[Chapter 4]{CO:To}. +Calabi-Yau threefolds of lower degree in $\PP^6$ are easy to construct, +using the Pfaffian construction and a study of their Hartshorne-Rao modules. +For degree $17$ the Hartshorne-Rao module has to satisfy a subtle condition. +Explicit examples of such Calabi-Yau 3-folds are first +constructed over a finite field by our probabilistic method. +Then a delicate semi-continuity argument gives us the existence of such Calabi-Yau 3-folds +over some number field. + + +\begin{acknowledgment} +We thank Hans-Christian v. Bothmer and Dan Gray\-son for valuable discussions and +remarks. +\end{acknowledgment} + + +\partitle{Notation} +For a finitely generated graded module $M$ over the polynomial ring +$S=k[x_0,\ldots,x_r]$ we summarize the numerical information of a finite +free resolution +$$ 0 \lto M \lto F_0 \lto F_1 \lto \ldots \lto F_n\lto 0 $$ +with $F_i = \oplus_j S(-j)^{\beta_{ij}}$ in a \ie{table of Betti numbers}, +whose $ij^{th}$ entry is +$$ \beta_{i,i+j} = \dim \Tor_i^S(M,k)_{i+j}.$$ +As in the \Mtwo command {\tt betti} we suppress zeroes. +For example the syzygies of the rational normal curve in $\PP^3$ +have the following Betti table. +$$\begin{tabular}{|ccc} +\hline +1 & - & - \cr +- & 3 & 2 \cr +\end{tabular}$$ +Note that the degrees of the entries of the matrices in the free +resolution can be read off from the relative position of two numbers in +consecutive columns. A pair of numbers in a line corresponds to linear entries. +Quadratic entries correspond to two numbers of a square. Thus +$$\begin{tabular}{|cccc} +\hline +1 & - & - & - \cr +- & 5 & 5 & - \cr +- & - & - & 1 \cr +\end{tabular}$$ +corresponds to a 4 term complex with a quadratic, a linear and another +quadratic map. The Grassmannian $\GG(2,5)$ in its Pl\"ucker embedding +has such a free resolution. + + + + + +\section{How to Make Random Curves up to Genus $14$} + +\index{random curves} +The \ie{moduli space of curves} $\gM_g$ is known to be of general type for +$g \ge 24$ and has non-negative Kodaira dimension for $g=23$ by work of +Harris, Mumford and Eisenbud \cite{CO:HM,CO:EH}. +For genus $g \le 13 $ unirationality is known \cite{CO:CR,CO:Se}. +In this section we present a \Mtwo program that over a finite field $\FF_q$ +picks a point in $\gM_g(\FF_q)$ for $g \le 14$ at random. + +By Brill-Noether theory \cite{CO:ACGH} every curve of genus $g$ has a linear +system $g^r_d$ of dimension $r$ and degree $d$, provided that the +\ie{Brill-Noether number} +$\rho$ satisfies +$$\rho := \rho(g,d,r) := g-(r+1)(g-d+r)\geq 0.$$ +We utilize this to find appropriate (birational) models for general curves of genus $g$. + + + +\subsection{Plane Models, $g\le 10$} + +This case was known to Severi; see \cite{CO:AC}. +Choose $d = g+2 - \lfloor g/3 \rfloor$. +Then $\rho(g,d,2) \ge 0$ +i.e., a general curve of genus g has a plane model $C'$ of degree $d$. +We expect that $C'$ has +$$\delta= \binom{d-1}{2} - g$$ +double points. +If the double points are in general position, then +$$s=h^0(\PP^2,\ko(d))-3\delta-1$$ +is the expected dimension of the linear system of curves of degree $d$ +with $\delta$ assigned double points. +We have the following table: +$$ +{\tabcolsep 5pt +\begin{tabular}{l|rrrrr rrrrr rr} +g & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \cr +\hline +$\rho$ & 1 & 2 & 0 & 1 & 2 & 0 & 1 & 2 & 0 & 1 & 2 & 0 \cr +\hline +$d$ & 3 & 4 & 4 & 5 & 6 & 6 & 7 & 8 & 8 & 9 & 10 & 10 \cr +\hline +$\delta$ & 0 & 1 & 0 & 2 & 5 & 4 & 8 & 13 & 12 & 18 & 25 & 24 \cr +\hline +$s$ & 9 & 11 & 14 & 14 & 12 & 15 & 11 & 5 & 8 & 0 & -10 & -7 \cr +\end{tabular}} +$$ +Thus for $g\le 10$ we assume that these double points lie in general position. +For $g>10$ the double points cannot lie in general position because $s<0$. +Since it is difficult to describe the special locus +$H_\delta(g) \subset \Hilb_\delta(\PP^2)$ +of double points of nodal genus $g$ curves, the plane model approach collapses for $g>10$. + +\partitle{Random Points} +\index{random points} +In our program, which picks plane models at random from an Zariski open subspace of $\gM_g$, +we start by picking the nodes. +However, over a small field $\FF_q$ it is not a good idea to pick points individually, +because there might be simply too few: $|\PP^2(\FF_q)|=1+q+q^2$. +What we should do is to pick a collection $\Gamma$ of $\delta$ points in $\PP^2(\bar \FF_q)$ +that is defined over $\FF_q$. +General points in $\PP^2$ satisfy the minimal resolution condition, +that is, they have expected Betti numbers. +This follows from the Hilbert-Burch theorem \cite[Theorem 20.15]{CO:Ei}. +If the ideal of such $\Gamma$ has generators in minimal degree $k$, +then +$\binom{k+1}2 \le \delta < \binom{k+2}2$, +which gives $\delta= \binom{k+1}{2} + \epsilon$ with $0 \le \epsilon \le k$. +Thus $k=\lceil ({-3+\sqrt{9+8\delta}})/{2} \rceil$. +The Betti table is one of the following two tables: + + +\medskip +$2\epsilon \le k :$ +\begin{tabular}{c|ccc}\cline{2-4} +0 & 1 & - & - \cr +1 & - & - & - \cr +\vdots & \vdots & \vdots & \vdots \cr +$k-2$ & - & - & - \cr +$k-1$ & - & $k+1-\epsilon$ & $k-2\epsilon$ \cr +$k$ & - & - & \hbox to 20pt{\hfil$\epsilon$\hfil} \cr +\end{tabular} +$\quad2\epsilon \ge k :$ +\begin{tabular}{c|ccc}\cline{2-4} +0 & 1 &- & - \cr +1 & - & - & - \cr +\vdots & \vdots & \vdots & \vdots \cr +$k-2$ & - & - & - \cr +$k-1$ & - & $k+1-\epsilon$ & - \cr +$k$ & - & $2\epsilon-k$ & \hbox to 20pt{\hfil$\epsilon$\hfil} \cr +\end{tabular} +\medskip + +\noindent +So we can specify a collection $\Gamma$ of $\delta$ points by picking +the Hilbert-Burch matrix of their resolution; see \cite[Thm 20.15]{CO:Ei}. +This is a matrix with linear and quadratic entries only, +whose minors of size $\epsilon$ ($k-\epsilon$ if $2\epsilon\leq k$) +generate the homogeneous ideal of $\Gamma$. +\beginOutput +i1 : randomPlanePoints = (delta,R) -> (\\ +\ k:=ceiling((-3+sqrt(9.0+8*delta))/2);\\ +\ eps:=delta-binomial(k+1,2);\\ +\ if k-2*eps>=0 \\ +\ then minors(k-eps,\\ +\ random(R^(k+1-eps),R^\{k-2*eps:-1,eps:-2\}))\\ +\ else minors(eps,\\ +\ random(R^\{k+1-eps:0,2*eps-k:-1\},R^\{eps:-2\})));\\ +\endOutput +In unlucky cases these points might be infinitesimally near. +\beginOutput +i2 : distinctPoints = (J) -> (\\ +\ singJ:=minors(2,jacobian J)+J;\\ +\ codim singJ == 3);\\ +\endOutput + +\medskip \noindent +The procedure that returns the ideal of a \ie{random nodal curve} is then straightforward: +\beginOutput +i3 : randomNodalCurve = method();\\ +\endOutput +\beginOutput +i4 : randomNodalCurve (ZZ,ZZ,Ring) := (d,g,R) -> (\\ +\ delta:=binomial(d-1,2)-g;\\ +\ K:=coefficientRing R;\\ +\ if (delta==0) \\ +\ then ( --no double points\\ +\ ideal random(R^1,R^\{-d\}))\\ +\ else ( --delta double points \\ +\ Ip:=randomPlanePoints(delta,R);\\ +\ --choose the curve\\ +\ Ip2:=saturate Ip^2;\\ +\ ideal (gens Ip2 * random(source gens Ip2, R^\{-d\}))));\\ +\endOutput +\beginOutput +i5 : isNodalCurve = (I) -> (\\ +\ singI:=ideal jacobian I +I;delta:=degree singI;\\ +\ d:=degree I;g:=binomial(d-1,2)-delta;\\ +\ \{distinctPoints(singI),delta,g\});\\ +\endOutput + +We next ask if we indeed get in this way points in a parameter space +that dominates $\gM_g$ for $g \le 10$. +Let $\Hilb_{(d,g)}(\PP^2)$ denote the Hilbert scheme of nodal plane curves +of degree $d$ and geometric genus $g$. +Our construction starts from a random element in $\Hilb_\delta(\PP^2)$ and picks +a random curve in the corresponding fiber of +$\Hilb_{(d,g)}(\PP^2)\to\Hilb_\delta(\PP^2)$: +$$\xymatrix{\Hilb_{(d,g)}(\PP^2) \ar[r] \ar[d] &\gM_g\\ \Hilb_\delta(\PP^2)}.$$ +So the question is whether $\Hilb_{(d,g)}(\PP^2)$ dominates $\Hilb_\delta(\PP^2)$. +A naive dimension count suggests that this should be true: +the dimension of our parameter space is given by $2\delta +s$, +which is $3(g-1)+\rho+\dim\PGL(3)$, as it should be. +To conclude this there is more to verify: +it could be that the nodal models of general curves have double points +in special position, +while all curve constructed above lie over a subvariety of $\gM_g$. +One way to exclude this is to prove that the variety $G(g,d,2)$ over $\gM_g$, +whose fiber over a curve ${\tilde C}\in\gM_g$ is $G^2_d(\tilde C)=\{g^2_d\text{'s}\}$, +is irreducible or, to put it differently, that the Severi Conjecture holds: + +\begin{theorem}[Harris \cite{CO:Ha1}] The space +of nodal degree d genus g curves in $\PP^2$ is irreducible. +\end{theorem} + +Another much easier proof for the few $(d,g)$ we are interested in is to +establish that our parameter space $\MM$ of the construction is smooth of +expected dimension at our random point $p \in \MM$, as in \cite{CO:AC}. +Consider the following diagram: +$$\HH = \Hilb_{(d,g)}(\PP^2)/\Aut(\PP^2) \stackrel{\pi}{\lra} \gM_g.$$ +For a given curve ${\tilde C}\in\gM_g$, the inverse image $\pi^{-1} ({\tilde C})$ +consists of the variety $W^2_d({\tilde C})\subset\Pic^d({\tilde C})$. +Moreover the choice of a divisor $L\in W^2_d({\tilde C})$ is equivalent to the +choice of $p \in \MM$, modulo $\Aut(\PP^2)$: +indeed $p$ determines a morphism $\nu\colon {\tilde C} \lra C\subset \PP^2$ +and a line bundle $L=\nu^{-1}\ko_{\PP^2}(1)$, where ${\tilde C}$ is the +normalization of the (nodal) curve $C$. +Therefore $\MM$ is smooth of expected dimension $3(g-1)+\rho+\dim \PGL(3)$ +at $p \in \MM$ +if and only if $W^2_d({\tilde C})$ is smooth of expected dimension $\rho$ in $L$. +This is well known to be equivalent to the injectivity of the multiplication map +$\mu_L$ +$$ +H^0(L)\otimes H^0(K_{\tilde C}\otimes L^{-1}) \stackrel{\mu_L}{\lra}H^0(K_{\tilde C}), +$$ +which can be easily checked in our cases, +see \cite[p. 189]{CO:ACGH}. +In our cases $\mu_L$ can be rewritten as +$$ +H^0(\ko_{\PP^2}(1))\otimes H^0(I_\Gamma(d-4)) \stackrel{\mu_L}{\lra} +H^0(I_\Gamma(d-3)). +$$ +So we need two conditions: +\begin{enumerate} +\item $H^0(I_\Gamma(d-5))=0$; +\item there are no linear relations among the generators of $H^0(I_\Gamma(d-4))$ of +degree $d-3$. +\end{enumerate} +We proceed case by case. +For genus $g\leq 5$ this is clear, since $H^0(I_\Gamma(d-4))=0$ for $g=2,3$ and +$\dim H^0(I_\Gamma(d-3))=1$ for $g=4,5$. +For $g=6$ we have $\dim H^0(I_\Gamma(d-3))= \dim H^0(I_\Gamma(2))=2$ and +the Betti numbers of $\Gamma$ +$$ +\begin{tabular}{|ccc}\hline +1 & - & - \cr +- & 2 & - \cr +- & - & 1 \cr +\end{tabular} +$$ +shows there are no relations +with linear coefficients in $H^0(I_\Gamma(2))$. +For $7\leq g \leq 10$ the method is similar: +everything is clear once the Betti table of resolution of the set of nodal points +$\Gamma$ is computed. As a further example we do here the case $g=10$: we see that +$\dim H^0(I_\Gamma(d-3))=\dim H^0(I_\Gamma(5))=3$ and the Betti numbers of $\Gamma$ are +$$ +\begin{tabular}{|ccc}\hline +1 & - & - \cr +- & - & - \cr +- & - & - \cr +- & - & - \cr +- & 3 & - \cr +- & 1 & 3 \cr +\end{tabular} +$$ +from which it is clear that there are no linear relations between the quintic generators +of $I_\Gamma$. + +%% and that the +%% Kodaira-Spencer map +%% $$T_p(\MM) \to T_C(\gM_g) = H^0(C,\omega^{\tensor 2})^*$$ +%% is surjective. This is a first order deformation problem, which can be easily +%% solved by linear algebra in Macaulay2: +%% +%% {\scriptsize +%% \begin{verbatim} +%% Kodaira-SpencerMap = (I) -> ??? +%% \end{verbatim}} + + +\subsection{Space Models and Hartshorne-Rao Modules} +\partitle{The Case of Genus $g=11$} +In this case we have $\rho(11,12,3)=3$. +Hence every general curve of genus 11 has a space model of degree 12. +Moreover for a general curve the general space model of this degree +is linearly normal, because $\rho(11,13,4)=-1$ takes a smaller value. +If moreover such a curve $C \subset \PP^3$ has \ie{maximal rank}, +i.e., for each $m \in \ZZ$ the map +$$H^0(\PP^3,\ko(m)) \to H^0(C,\ko_C(m))$$ +has maximal rank, +then the \ie{Hartshorne-Rao module} $M$, +defined as +$M=H^1_*(\ki_C)=\oplus_m H^1(\PP^3,\ki_C(m))$, +has Hilbert function with values $(0,0,4,6,3,0,$ $0,\dots)$. For readers who want to know more about the +Hartshorne-Rao module, we refer to the pleasant treatment in \cite{CO:MDP}. + +Since being of maximal rank is an open condition, we will try a construction +of maximal rank curves. +Consider the vector bundle $\kg$ on $\PP^3$ associated to the first syzygy +module of $I_C$: +$$ 0 \lto \ki_C \lto \oplus_i \ko(-a_i) \lto \kg \lto 0 \leqno(1)$$ +In this set-up $H^2_*(\kg)=H^1_*(\ki_C)$. +Thus $\kg$ is, up to direct sum of line bundles, the sheafified second syzygy +module of $M$; see e.g., \cite[Prop. 1.5]{CO:DES}. + +The expected Betti numbers of $M$ are +$$ +\begin{tabular}{|ccccc}\hline +4 & 10 & 3 & - & - \cr +- & - & 8 & 2 & - \cr +- & - & - & 6 & 3 \cr +\end{tabular} +$$ +Thus the $\FF$-dual $M^* = \Hom_\FF(M,\FF)$ is presented as +$\FF[x_0,\dots,x_3]$-module by a +$3 \times 8$ matrix with linear and quadratic entries, and a general such matrix +will give a general module +(if the construction works, i.e., if the desired space of modules is non-empty), +because all conditions we impose are semi-continuous and open. +Thus $M$ depends on +$$\dim \GG(6,3h^0\ko(1))+\dim \GG(2,3h^0\ko(2)-6h^0\ko(1))-\dim SL(3)=36$$ +parameters. + +Assuming that $C$ has minimal possible syzygies: +$$ +\begin{tabular}{|cccc}\hline +1 & - & - & - \cr +-&-&-&-\cr +-&-&-&-\cr +-&-&-&-\cr +-&6&2&-\cr +-&-&6&3\cr +\end{tabular} +$$ +we obtain, by dualizing the sequence (1), the following exact sequence +$$ \kg^* {\lto } 6\ko(5) \lto \ko \lto 0.$$ +If everything is as expected, +i.e., the general curve is of maximal rank and its syzygies have minimal possible +Betti numbers, then the entries of the right hand matrix are +homogeneous polynomials that generate $I_C$. +We will compute $I_C$ by determining $ \ker (\phi \colon 6\ko(5) \to \kg^*)$. +Comparing with the syzygies of $M$ we obtain the following isomorphism +$$\kg^* \cong \ker(2\ko(6)\oplus6\ko(7) \to 3\ko(8)) \cong +\image(3\ko(4)\oplus8\ko(5) \to 2\ko(6)\oplus6\ko(7)).$$ +and $\kg^* \lto 6\ko(5)$ factors over $\kg^* \lto 8\ko(5)\oplus3\ko(4)$. +A general $\phi \in \Hom(6\ko(5),$ $\kg^*)$ gives a point in $\GG(6,8)$ +and the Hilbert scheme of desired curves would have dimension +$36+12=48=4\cdot12=30+3+15$ as expected, c.f.~\cite{CO:Ha2}. + +\medskip +Therefore the computation for obtaining a random space curve of genus $11$ +is done as follows: +\beginOutput +i6 : randomGenus11Curve = (R) -> (\\ +\ correctCodimAndDegree:=false;\\ +\ while not correctCodimAndDegree do (\\ +\ Mt=coker random(R^\{3:8\},R^\{6:7,2:6\});\\ +\ M=coker (transpose (res Mt).dd_4);\\ +\ Gt:=transpose (res M).dd_3;\\ +\ I:=ideal syz (Gt*random(source Gt,R^\{6:5\}));\\ +\ correctCodimAndDegree=(codim I==2 and degree I==12););\\ +\ I);\\ +\endOutput + +\medskip +In general for these problems there is rarely an a priori reason +why such a construction for general choices will give a smooth curve. +Kleiman's global generation condition \cite{CO:Klei} is much too +strong a hypothesis for many interesting examples. +But it is easy to check an example over a finite field with a computer: +\beginOutput +i7 : isSmoothSpaceCurve = (I) -> (\\ +\ --I generates the ideal sheaf of a pure codim 2 scheme in P3\\ +\ singI:=I+minors(2,jacobian I);\\ +\ codim singI==4);\\ +\endOutput + +Hence by semi-continuity this is true over $\QQ$ and the +desired unirationality of $G(11,12,3)/\gM_{11}$ holds for all fields, +except possibly for those whose ground field has characteristic is in some finite set. + +A calculation of an example over the integers +would bound the number of exceptional characteristics, +which then can be ruled out case by case, +or by considering sufficiently many integer examples. + +As in case of nodal curves, to prove \ie{unirationality} of $\gM_{11}$ by computer +aided computations we have to show the injectivity of +$$ +H^0(L)\otimes H^0(K_{C}\otimes L^{-1}) \stackrel{\mu_L}{\lra}H^0(K_{C}), +$$ +where $L$ is the restriction of $\ko_{\PP^3}(1)$ to the curve $C\subset \PP^3$. +The following few lines do the job: +\beginOutput +i8 : K=ZZ/101;\\ +\endOutput +\beginOutput +i9 : R=K[x_0..x_3];\\ +\endOutput +\beginOutput +i10 : C=randomGenus11Curve(R);\\ +\emptyLine +o10 : Ideal of R\\ +\endOutput +\beginOutput +i11 : isSmoothSpaceCurve(C)\\ +\emptyLine +o11 = true\\ +\endOutput +\beginOutput +i12 : Omega=prune Ext^2(coker gens C,R^\{-4\});\\ +\endOutput +\beginOutput +i13 : betti Omega\\ +\emptyLine +o13 = relations : total: 5 10\\ +\ -1: 2 .\\ +\ 0: 3 10\\ +\endOutput + +\noindent +We see that there are no linear relations among the two generators +of $H^0_*(\Omega_C)$ in degree -1. + +%% to prove uniratioanlity of $\gM_{11}$ by Computer +%% aided computations we have to show that the Kodaira-Spencer map +%% $$ H^0(C,\kn_C) \to H^1(C,\kt_C) $$ +%% is onto in our example. +%% The following procedure returns the dimension +%% of the image of the Kodaira-Spencer map for a smooth projective variety +%% (of codimension at least 2, +%% otherwise $\kn_C^*=${\tt I2} is free and {\tt T} is just {\tt coker djt}): +%% +%% {\scriptsize +%% \begin{verbatim} +%% kodairaSpencerMap = (I) -> ( +%% S:=R/I; +%% dIt:=substitute(transpose jacobian I,S); +%% I2:=substitute(syz gens I,S); --the conormal bundle +%% T:=prune(kernel transpose I2/image dIt); +%% hilbertFunction(0,T)) +%% \end{verbatim}} +%% THIS SCRIPT FORGETS THE CONTRIBUTION OF H1 IN THE SEQUENCE GIVING T_P|C + + + +\partitle{Betti Numbers for Genus $g=12,13,14,15$} +The approach in these cases is similar to $g=11$. We choose here $d=g$, +so $\rho(g,g,3)=g-12\ge 0$. +Under the maximal rank assumption the corresponding space curve has +a Hartshorne-Rao module whose Hilbert function takes values +$(0,0,g-9,2g-19,3g-34,0,\ldots)$ in case $g=12,13$ +and $(0,0,g-9,2g-19,3g-34,4g-55,0,\ldots)$ in case $g=14,15$. +Expected syzygies of $M$ have Betti tables: + +$$g=12: \; +\begin{tabular}{|ccccc}\hline +3 & 7 & - & - & - \cr +- & - & 10 & 5 & - \cr +- & - & - & 3 & 2 \cr +\end{tabular} +\qquad +g=13: \; +\begin{tabular}{|ccccc}\hline +4 & 9 & 1 & - & - \cr +- & - & 6 & - & - \cr +- & - & 6 & 13 & 5 \cr +\end{tabular} +$$ +\medskip +$$g=14: \; +\begin{tabular}{|ccccc}\hline +5 & 11 & 2 & - & - \cr +- & - & 3 & - & - \cr +- & - & 13 & 17 & 4 \cr +- & - & - & - & 1 \cr +\end{tabular} +\qquad +g=15: \; +\begin{tabular}{|ccccc} +\hline +6 & 13 & 3 & - & - \cr +- & - & 3 & - & - \cr +- & - & 8 & 3 & - \cr +- & - & - & 9 & 5 \cr +\end{tabular} +$$ + +\medskip +Comparing with the expected syzygies of $C$ +$$g=12: \; +\begin{tabular}{|cccc}\hline + 1 & - & - & - \cr + - & - & - & - \cr + - & - & - & - \cr + - & - & - & - \cr + - & 7 & 5 & - \cr + - & - & 3 & 2 \cr +\end{tabular} +\qquad +g=13: \; +\begin{tabular}{|cccc}\hline + 1 & - & - & - \cr + - & - & - & - \cr + - & - & - & - \cr + - & - & - & - \cr + - & 3 & - & - \cr + - & 6 & 13 & 5 \cr +\end{tabular} +$$ +\medskip +$$g=14: \; +\begin{tabular}{|cccc}\hline + 1 & - & - & - \cr + - & - & - & - \cr + - & - & - & - \cr +- & - & - & - \cr +- & - & - & - \cr + - & 13 & 17 & 4 \cr + - & - & - & 1 \cr +\end{tabular} +\qquad +g=15: \; +\begin{tabular}{|cccc} +\hline + 1 & - & - & - \cr + - & - & - & - \cr +- & - & - & - \cr + - & - & - & - \cr + - & - & - & - \cr + - & 8 & 3 & - \cr + - & - & 9 & 5 \cr +\end{tabular} +$$ +we see that given $M$ the choice of a curve corresponds to a point +in $\GG(7,10)$ or $\GG(3,6)$ for $g=12,13$ respectively, +while for $g=14,15$ everything is determined by the Hartshorne-Rao module. +For $g=12$ Kleiman's result guarantees smoothness for general choices, +in contrast to the more difficult cases $g=14,15$. +So the construction of $M$ is the crucial step. + + + + +\partitle{Construction of Hartshorne-Rao Modules} +In case $g=12$ the construction of $M$ is straightforward. +It is presented by a sufficiently general matrix of linear forms: +$$0 \lto M \lto 3S(-2) \lto 7S(-3).$$ + +\noindent +The procedure for obtaining a random genus 12 curve is: +\beginOutput +i14 : randomGenus12Curve = (R) -> (\\ +\ correctCodimAndDegree:=false;\\ +\ while not correctCodimAndDegree do (\\ +\ M:=coker random(R^\{3:-2\},R^\{7:-3\});\\ +\ Gt:=transpose (res M).dd_3;\\ +\ I:=ideal syz (Gt*random(source Gt,R^\{7:5\}));\\ +\ correctCodimAndDegree=(codim I==2 and degree I==12););\\ +\ I);\\ +\endOutput + + +\medskip +In case $g=13$ we have to make sure that M has a second linear syzygy. +Consider the end of the Koszul complex: +$$6R(-2) \stackrel{\kappa}{\lto} 4R(-3) \lto R(-1) \lto 0.$$ +Any product of a general map $4R(-2) \stackrel{\alpha}{\lto} 6R(-2)$ with +the Koszul matrix $\kappa$ yields +$4R(-2) \lto 4R(-3)$ with a linear syzygy, +and concatenated with a general map $4R(-2) \stackrel{\beta}{\lto} 5R(-3)$ +gives a presentation matrix of a module M of desired type: +$$ 0 \lto M \lto 4R(-2) \lto 4R(-3) \oplus 5R(-3).$$ + +\noindent +The procedure for obtaining a random genus 13 curve is: +\beginOutput +i15 : randomGenus13Curve = (R) -> (\\ +\ kappa:=koszul(3,vars R);\\ +\ correctCodimAndDegree:=false;\\ +\ while not correctCodimAndDegree do (\\ +\ test:=false;while test==false do ( \\ +\ alpha:=random(R^\{4:-2\},R^\{6:-2\});\\ +\ beta:=random(R^\{4:-2\},R^\{5:-3\});\\ +\ M:=coker(alpha*kappa|beta);\\ +\ test=(codim M==4 and degree M==16););\\ +\ Gt:=transpose (res M).dd_3;\\ +\ --up to change of basis we can reduce phi to this form\\ +\ phi:=random(R^6,R^3)++id_(R^6);\\ +\ I:=ideal syz(Gt_\{1..12\}*phi);\\ +\ correctCodimAndDegree=(codim I==2 and degree I==13););\\ +\ I);\\ +\endOutput + + +\medskip +The case of genus $g=14$ is about a magnitude more difficult. +To start with, we can achieve two second linear syzygies by the same method as +in the case $g=13$. +A general matrix +$5R(-2) \stackrel{\alpha}{\lto} 12R(-2)$ composed with +$12R(-2) \stackrel{\kappa \oplus \kappa}{\lto} 8R(-3)$ +yields the first component of +$$5R(-2) \lto (8+3)R(-3).$$ +For a general choice of the second component +$5R(-2) \stackrel{\beta}{ \lto} 3R(-3)$ the cokernel +will be a module with Hilbert function $(0,0,5,9,8,0,0,\ldots)$ and syzygies +$$ +\begin{tabular}{|ccccc}\hline +5 & 11 & 2 & - & - \cr +- & - & 2 & - & - \cr +- & - & 17 & 23 & 8 \cr +- & - & - & - & - \cr +\end{tabular} +$$ +What we want is to find $\alpha$ and $\beta$ so that $\dim M_5 = 1$ +and $\dim \Tor_2^R(M,\FF)_5 = 3$. +Taking into account that we ensured $\dim \Tor_2^R(M,\FF)_4 =2$ +this amounts to asking that the $100 \times 102$ matrix $m(\alpha,\beta)$ +obtained from +$$[0 \lto 5R(-2)_5 \lto 11R(-3)_5 \lto 2R(-4)_5 \lto 0] +\cong [0 \lto 100 \FF \stackrel{m(\alpha,\beta)} \lto 102 \FF \lto 0]$$ +drops rank by 1. +We do not know a systematic approach to produce such +$m(\alpha,\beta)$'s. +However, we can find such matrices in a probabilistic way. +In the space of the matrices $m(\alpha,\beta)$, +those which drop rank by 1 have expected codimension 3. +Hence over a finite field $\FF=\FF_q$ we expect to find the desired modules $M$ +with a probability of $1/q^3$. +The code to detect bad modules is rather fast. +\beginOutput +i16 : testModulesForGenus14Curves = (N,p) ->(\\ +\ x := local x;\\ +\ R := ZZ/p[x_0..x_3];\\ +\ i:=0;j:=0;\\ +\ kappa:=koszul(3,vars R);\\ +\ kappakappa:=kappa++kappa;\\ +\ utime:=timing while (i3);\\ +\ if (tally degrees fM_2)_\{5\}==3 then (\\ +\ --further checks to pick up the right module\\ +\ test=(tally degrees fM_2)_\{4\}==2 and\\ +\ codim M==4 and degree M==23;);\\ +\ i=i+1;if test==true then (j=j+1;););\\ +\ timeForNModules:=utime#0; numberOfGoodModules:=j;\\ +\ \{timeForNModules,numberOfGoodModules\});\\ +\endOutput +\beginOutput +i17 : testModulesForGenus14Curves(1000,5)\\ +\emptyLine +o17 = \{41.02, 10\}\\ +\emptyLine +o17 : List\\ +\endOutput + +\noindent +For timing tests we used a Pentium2 400Mhz with 128Mb of memory running GNU Linux. +On such a machine examples can be tested at a rate +of $0.04$ seconds per example. +Hence an approximate estimation of the CPU-time required to find a good example +is $q^3 \cdot 0.04$ seconds. +Comparing this with the time to verify smoothness, +which is about $12$ seconds for an example of this degree, +we see that up to $|\FF_q|=q \le 13$ we can expect to obtain examples within +few minutes. +Actually the computations for $q=2$ and $q=3$ take longer than for $q=5$ on average, +because examples of ``good modules'' tend to give singular curves more often. +Here is a table of statistics which summarizes the situation. +$$ +\def\sb#1{\hbox to 22pt{\hfil#1}} %small fixed size box --text mode +\begin{tabular}{l|rrrrrrr} +$q$ & \sb2 &\sb3 &\sb5 &\sb7 &\sb{11} &\sb{13}\cr +\hline +smooth curves & 100 &100 &100 &100 &100 &100\cr +1-nodal curves & 75 &53 &31 &16 &10 &8\cr +reduced more singular & 1012&142 &24 &11 &2 &0\cr +non reduced curves & 295 &7 &0 &0 &0 &0\cr +\hline +total number of curves & 1482&302 &155 &127 &112 &108\cr +percentage of smooth curves \quad & %the quad will be divided, ok + 6.7\% &33\% &65\% &79\% &89\% &93\%\cr +approx. time (in seconds) & 7400&3100&2700&3400&6500&9500\cr +\end{tabular} +$$ + +\medskip +\goodbreak +\noindent +The procedure for obtaining a random genus 14 curve is +\beginOutput +i18 : randomGenus14Curve = (R) -> (\\ +\ kappa:=koszul(3,vars R);\\ +\ kappakappa:=kappa++kappa;\\ +\ correctCodimAndDegree:=false;\\ +\ count:=0;while not correctCodimAndDegree do (\\ +\ test:=false;\\ +\ t:=timing while test==false do (\\ +\ alpha=random(R^\{5:-2\},R^\{12:-2\});\\ +\ beta=random(R^\{5:-2\},R^\{3:-3\});\\ +\ M:=coker (alpha*kappakappa|beta);\\ +\ fM:=res (M,DegreeLimit =>3);\\ +\ if (tally degrees fM_2)_\{5\}==3 then (\\ +\ --further checks to pick up the right module\\ +\ test=(tally degrees fM_2)_\{4\}==2 and\\ +\ codim M==4 and degree M==23;);\\ +\ count=count+1;);\\ +\ Gt:=transpose (res M).dd_3;\\ +\ I:=ideal syz (Gt_\{5..17\});\\ +\ correctCodimAndDegree=(codim I==2 and degree I==14););\\ +\ <<" -- "<}$ where $U$ denotes +the universal subbundle on $\GG(5,12)$ and ${<}\alpha{>}$ +the subspace generated by the 8 columns of $\alpha\circ(\kappa \oplus \kappa)$. +So $\dim B_\alpha = 20-8=12$ and $\GG(3,B_\alpha) \to \GG(5,12)$ +is a Grassmannian bundle with fiber dimension 27 and total dimension 62. +In this space the scheme of good modules has codimension 3, +so we get a 59 dimensional family. +This is larger than the expected dimension $56=4\cdot 14=39+2+15$ +of the Hilbert scheme, c.f.~\cite{CO:Ha2}. +Indeed the construction gives a curve together +with a basis of $\Tor_2^R(M,\FF)_4$. +Subtracting the dimension of the group of the projective coordinate changes +we arrive at the desired dimension $59-3=56$. + +The unirationality of $\gM_{12}$ and $\gM_{13}$ can be proved by computer +as in case $\gM_{11}$, +while in case $g=14$ we don't know the unirationality of +the parameter space of the modules $M$ with +$\dim M_5=1$ and $\dim \Tor^R_2(M,\FF)_5=3$. + +\section[Comparing Green's Conjecture for Curves and Points] + {Comparing Green's Conjecture for Curves \\ and Points} + +\subsection{Syzygies of Canonical Curves} +\index{Green's conjecture} +\index{Syzygies of canonical curves} +One of the most outstanding conjectures about free resolutions is +Green's prediction +for the syzygies of canonical curves. + +A \ie{canonical curve} +$C \subset \PP^{g-1}$, i.e., a linearly normal curve with $\ko_C(1) \equiv +\omega_C$, the canonical line bundle, is projectively normal by a result of +Max Noether, and hence has a Gorenstein homogeneous coordinate ring and is +3-regular. + +Therefore the Betti numbers of the free resolution of a canonical curve +are symmetric, that is, $\beta_{j,j+1}=\beta_{g-2-j,g-j}$, +and essentially only two rows of Betti numbers occur. +The situation is summarized in the following table. +$$ +\raise 0pt\hbox to 0 pt{\hspace{121.8pt} $\bullet$\hss} +\def\sb#1{\hbox to 5mm{\hfil#1\hfil}} +\begin{tabular}{|ccccc ccccc cc} +\hline +1 & - & - & - & - & \sb{-} & \sb{-} & - & - & - & - & - \cr +- & $\beta_{1,2}$ & $\beta_{2,3}$ & $\cdots$ & $\beta_{p,p+1}$ & $\cdots$ +& $\cdots$ & $\beta_{p,p+2}$ & - & - & - & - \cr +- & - & - & - & $\beta_{p,p+2}$ & $\cdots$ +& $\cdots$ & $\beta_{p,p+1}$ & $\cdots$ & $\beta_{2,3}$ & $\beta_{1,2}$ & - \cr +- & - & - & - & - & - & - & - & - & - & - & 1 \cr +\end{tabular} +$$ +%%$$ +%%\def\hd#1{\hbox to 14.5mm{\hfil$#1$\hfil}} %for hodge diagrams --math mode +%%\setlength{\unitlength}{1mm} +%%\begin{picture}(116,36)(-58,-18) +%%\put (-58,7.5){\hd{1}} +%%\put (-43.5,1.5){\hd{\beta_{1,2}}} +%%\put (-29,1.5){\hd{\ldots}} +%%\put (-14.5,1.5){\hd{\ldots}} +%%\put (-14.5,-4.5){\hd{\ldots}} %-0.85=-1+.25-.8 +%%\put (0,0){\circle*{2.5}} +%%\put (0,1.5){\hd{\ldots}} +%%\put (0,-4.5){\hd{\ldots}} +%%\put (14.5,-4.5){\hd{\ldots}} +%%\put (29,-4.5){\hd{\beta_{g-3,g-1}}} +%%\put (43.5,-10.5){\hd{1}} +%%%hor lines +%%\put (-58,12) {\line(1,0){116}} +%%\put (-58,6) {\line(1,0){116}} +%%\put (-58,0) {\line(1,0){116}} +%%\put (-58,-6) {\line(1,0){116}} +%%\put (-58,-12) {\line(1,0){116}} +%%%vert lines +%%\put (-58,-12) {\line(0,1){24}} +%%\put (-43.5,-12) {\line(0,1){24}} +%%\put (-29,-12) {\line(0,1){24}} +%%\put (-14.5,-12) {\line(0,1){24}} +%%\put (0,-12) {\line(0,1){24}} +%%\put (14.5,-12) {\line(0,1){24}} +%%\put (29,-12) {\line(0,1){24}} +%%\put (43.5,-12) {\line(0,1){24}} +%%\put (58,-12) {\line(0,1){24}} +%%%mark the resolution +%%\linethickness{1pt} +%%\put (-43.5,6) {\line(1,0){58}} +%%\put (-43.5,0) {\line(1,0){29}} \put (14.5,0) {\line(1,0){29}} +%%\put (-14.5,-6) {\line(1,0){58}} +%%\put (-43.5,0) {\line(0,1){6}} +%%\put (43.5,-6) {\line(0,1){6}} +%%\put (-14.5,-6) {\line(0,1){6}} +%%\put (14.5,0) {\line(0,1){6}} +%%% description +%%\put (-58,13) {$\overbrace{\hspace{116mm}}^{\displaystyle g-1}$} +%%\put (-58,-13) {$\underbrace{\hspace{43.5mm}}_{\displaystyle p}$} +%%\end{picture} +%%$$ + +The first $p$ such that $\beta_{p,p+2}\neq 0$ is conjecturally precisely +the \ie{Clifford index} of the curve. + +\begin{conjecture}[Green \cite{CO:Gr2}]\label{GConj} +Let $C$ be a smooth canonical curve over $\CC$. +Then $\beta_{p,p+2} \ne 0$ if and only if $\exists L\in \Pic^d(C)$ with +$h^0(C,L),h^1(C,L) \ge 2$ and $\cliff(L):=d-2(h^0(C,L))-1) \le p$. +In particular, $\beta_{j,j+2}= 0$ for $j \le \lfloor \frac{g-3}{2} \rfloor$ +for a general curve of genus $g$. +\end{conjecture} + +The ``if'' part is proved by Green and Lazarsfeld in \cite{CO:GL} +and holds for arbitrary ground fields. +For some partial results see \cite{CO:Vo,CO:Sch2,CO:Sch3,CO:BaEi,CO:vB,CO:HR,CO:Mu}. +The conjecture is known to be false for some (algebraically closed) fields of +finite characteristic, e.g., +genus $g=7$ and characteristic $\cha \FF=2$; see \cite{CO:Sch4}. + + +\subsection{Coble Self-Dual Sets of Points} +\index{Coble self-dual sets of points} +The free resolution of a hyperplane section of a Cohen-Macaulay ring +has the same Betti numbers. Thus we may ask for a geometric +interpretation of the syzygies of $2g-2$ points in $\PP^{g-2}$ +(hyperplane section of a canonical curve), +or syzygies of a graded Artinian Gorenstein algebra with Hilbert function +$(1,g-2,g-2,1,0,\ldots)$ +(twice a hyperplane section). + Any collection of $2g-2$ points obtained as a hyperplane section of a + canonical curve is special in the sense that it imposes only $2g-3$ + conditions on quadrics. +An equivalent condition for points in linearly uniform position is that +they are Coble (or Gale) self-dual; see \cite{CO:EiPo}. +Thus if we distribute the $2g-2$ points into two collections each of $g-1$ points, +with, say, the first consisting of the coordinate points +and the second corresponding to the rows of a $(g-1) \times (g-1)$ matrix +$A=(a_{ij})$, then $A$ can be chosen to be an orthogonal matrix, i.e., +$A^t A = 1$; see \cite{CO:EiPo}. + +To see what the analogue of Green's Conjecture for the general curve means for +orthogonal matrices we recall a result of \cite{CO:RS1}. + +Set $n=g-2$. We identify the homogeneous coordinate ring of $\PP^n$ with +the ring $S=\FF[\partial_0,\ldots,\partial_n]$ of +\ie{differential operators} with +constant coefficients, $\partial_i=\frac{\partial}{\partial x_i}$. +The ring $S$ acts on $\FF[x_0,\ldots,x_n]$ by differentiation. +The annihilator of $q=x_0^2+\ldots+x_n^2$ is a homogeneous ideal +$J \subset S$ such that +$S/J$ is a \ie{graded Artinian Gorenstein ring} with Hilbert function $(1,n+1,1)$ +and socle induced by $q$, +see \cite{CO:RS2}, \cite[Section 21.2 and related exercise 21.7]{CO:Ei}. +The syzygy numbers of S/J are +$$ +\begin{tabular}{|ccccc cc}\hline +1 &- &- &- &- &- &-\cr +- &$\frac{n}{n+2}\binom{n+3}{2}$ &$\cdots$ &$\frac{p(n+1-p)}{n+2}\binom{n+3}{p+1}$ +&$\cdots$ &$\frac{n}{n+2}\binom{n+3}{n+1}$ &-\cr +- &- &- &- &- &- &1\cr +\end{tabular} +$$ + + +A collection $H_0,\ldots,H_n$ of hyperplanes in $\PP^n$ is said to +form a polar simplex to $q$ +if and only if the collection $\Gamma=\{p_0,\ldots,p_n\} \subset \check \PP^n$ +of the corresponding points in the dual space has its homogeneous ideal +$I_\Gamma \subset S$ contained in $J$. + +In particular the set $\Lambda$ consisting of the coordinate points correspond +to a polar simplex, because +$\partial_i\partial_j$ annihilates $q$ for $i\ne j$. + +For any polar collection of points $\Gamma$ the free resolution +$\Ss_\Gamma$ is a subcomplex of the resolution $\Ss_{S/J}$. Green's conjecture +for the generic curve of genus $g=n+2$ would imply: + +\begin{conjecture}\label{PConj} For a general +$\Gamma$ and the given $\Lambda$ the corresponding Tor-groups +$$\Tor^S_k(S/I_\Gamma,\FF)_{k+1} \cap \Tor^S_k(S/I_\Lambda,\FF)_{k+1} +\subset \Tor^S_k(S/J,\FF)_{k+1}$$ +intersect transversally. +\end{conjecture} + +\begin{proof} +A zero-dimensional non-degenerate scheme $\Gamma\subset\PP^n$ of degree n+1 +has syzygies +$$ +\begin{tabular}{|ccccc c}\hline +1 &- &- &- &- &-\cr +- &$\binom{n+1}{2}$ &$\cdots$ &$k\binom{n+1}{k+1}$ +&$\cdots$ &$n$ +\end{tabular} +$$ + +Since both Tor groups are contained in $\Tor^S_k(S/J,\FF)_{k+1}$, +the claim is equivalent to saying that for a general polar simplex $\Gamma$ +the expected dimension of their intersection is +$\dim\Tor^S_k(S/_\Gamma,\FF)_{k+1}+\dim\Tor^S_k(S/_\Gamma,\FF)_{k+1} +-\dim\Tor^S_k(S/J,\FF)_{k+1}$, which is +$$ +2k\binom{g-1}{k+1}-\frac{k(g-1-k)}{g}\binom{g+1}{k+1}. +$$ + +On the other hand, $I_{\Gamma\cup\Lambda}=I_\Gamma\cap I_\Lambda$, hence +$$\Tor^S_k(S/I_\Gamma,\FF)_{k+1} \cap \Tor^S_k(S/I_\Lambda,\FF)_{k+1} +=\Tor^S_k(S/I_{\Gamma\cup\Lambda},\FF)_{k+1},$$ +and Green's conjecture would imply +$$ +\dim\Tor^S_k(S/I_{\Gamma\cup\Lambda},\FF)_{k+1} +=\beta_{k,k+1}(\Gamma\cup\Lambda) +=k\binom{g-2}{k+1}-(g-1-k)\binom{g-2}{k-2}. +$$ +Now a calculation shows that the two dimensions above are equal. +\end{proof} + + +The family of all polar simplices $V$ is dominated by the family defined +by the ideal of $2 \times 2$ minors of the matrix +$$\begin{pmatrix} +\partial_0 & \ldots & \partial_i & \ldots &\partial_n \cr +\sum_j b_{0j} \partial_j & \ldots &\sum_j b_{ij} \partial_j & \ldots & \sum_j b_{nj} \partial_j +\end{pmatrix}$$ +depending on +a symmetric matrix $B=(b_{ij})$, i.e., $b_{ij}=b_{ji}$ as parameters. +For $B$ a general diagonal matrix +we get $\Lambda$ together with a specific element in +$\Tor^S_n(S/I_\Lambda,\FF)_{n+1}$. + + + + + +\subsection{Comparison and Probes} + +One of the peculiar consequences of Green's conjecture for odd genus $g=2k+1$ +is that, if $\beta_{k,k+1} = \beta_{k-1,k+1} \ne 0$, then the curve $C$ lies +in the closure of the locus of $k+1$-gonal curve. Any $k+1$-gonal curve +lies on a rational normal +scroll $X$ of codimension $k$ that satisfies +$\beta_{k,k+1}(X) = k$. Hence +$$\beta_{k,k+1}(C) \ne 0 \Rightarrow \beta_{k,k+1}(C) \ge k$$ + +We may ask whether a result like this is true for the union of two polar simplices $\Lambda \cup \Gamma \subset \PP^{2k-1}$. Define +$$\tilde D=\{ \Gamma \in V | \Gamma \cup \Lambda \hbox{ is syzygy special} \}$$ +where, as above, $V$ denotes the variety of polar simplices and +$\Lambda$ denotes the coordinate simplex. +If $\tilde D$ is a proper subvariety, then it is a divisor, +because +$\beta_{k,k+1}(\Gamma \cup \Lambda) =\beta_{k-1,k+1}(\Gamma \cup \Lambda) $. + + +\begin{conjecture}\label{Exceptional locus} The subscheme +$\tilde D \subset V$ is an irreducible divisor, +for $g=n+2=2k+1 \in \{7,9,11\}$. +The value of $\beta_{k,k+1}$ on a general point of $D$ +is $3, 2, 1$ respectively. +\end{conjecture} + +We can prove this for $g=7$ by computer algebra. For +$g=9$ and $g=11$ a proof is +computationally out of reach with our methods, but we can get some +evidence from examples over finite fields. + +\partitle{Evidence} +Since $\tilde D$ is a divisor, we expect that if we pick symmetric +matrices $B$ over $\FF_q$ at random, we will hit points on every component +of $\tilde D$ at a +probability of $1/q$. For a general point on $ \tilde D$ the corresponding Coble +self-dual set of points will have the generic number of extra syzygies +of that component. Points with even more syzygies will occur in higher +codimension, hence only with a probability of $1/q^2$. +Some evidence for irreducibility can be obtained from the Weil formulas: +for sufficiently large $q$ we should see points on $\tilde D$ with +probability +$C q^{-1} + O(q^{-\frac32})$, where $C$ is the number of components. + +The following tables give for small fields $\FF_q$ the number $s_i$ +of examples with $i$ extra syzygies in a test of 1000 examples for $g=9$ and +100 examples for $g=11$. +The number $s_{\rm tot}= \sum_{i>0} s_i$ is the total number of examples with extra +syzygies. + +\noindent +Genus $g=9$: +$$ +\def\sb#1{\hbox to .8cm{\hfil$#1$}} %small fixed size box --text mode +\begin{tabular}{r|r|r|r|r|r|r|} +$q$ & $\ {\scriptstyle 1000}/q$ & \sb{s_{\rm tot}} & \sb{s_1} & \sb{s_2} & \sb{s_3} & \sb{s_4} \cr +\hline +2 & 500 & 925 & 0 & 130 & 0 & 63 \cr +3 & 333 & 782 & 0 & 273 & 0 & 33 \cr +4 & 250 & 521 & 0 & 279 & 0 & 99 \cr +5 & 200 & 350 & 0 & 217 & 0 &74 \cr +7 & 143 & 197 & 0 & 144 & 0 &36 \cr +8 & 125 & 199 & 0 & 147 & 0 & 43 \cr +9 & 111 & 218 & 0 & 98 & 0 & 0 \cr +11 & 91 & 118 & 0 & 102 & 0 & 15 \cr +13 & 77 & 90 & 0 & 79 & 0 & 10 \cr +16 & 62 & 72 & 0 & 68 & 0 & 4 \cr +17 & 59 & 76 & 0 & 69 & 0 & 6 \cr +\end{tabular}$$ + +\noindent +Genus $g=11$: +$$ +\def\sb#1{\hbox to .8cm{\hfil$#1$}} %small fixed size box --text mode +\begin{tabular}{r|r|r|r|r|r|r|} +$q$ & $\ {\scriptstyle 100}/q$ & \sb{s_{\rm tot}} & \sb{s_1} & \sb{s_2} & \sb{s_3} & \sb{s_4} \cr +\hline +7 & 14.3 & 16 & 14 & 0 & 0 & 0 \cr +17 & 5.9 & 7 & 7 & 0 & 0 & 0 \cr +\end{tabular}$$ + +\noindent +In view of these numbers, it is more likely that +the set $\tilde D$ of syzygy special Coble points is irreducible +than that it is reducible. For a more precise statement we refer to \cite{CO:vBS}. + + + +\medskip +\noindent +{\bf A test of Green's Conjecture for Curves.} +In view of \ref{Exceptional locus} it seems plausible that for a general curve +of odd genus $g \ge 11$ with $\beta_{k,k+1}(C) \ne 0$ the value might +be $\beta_{k,k+1}=1$ contradicting Green's conjecture. +It is clear that the syzygy +exceptional locus has codimension 1 in $\gM_g$ for odd genus, if it is proper, +i.e., if Green's +conjecture holds for the general curve of that genus. So picking points +at random we might be able to find such curve over a finite field $\FF_q$ +with probability $1/q$, roughly. +%%$$<<\hbox{testGreensConjecture}>>$$ + +Writing code that does this is straightforward. One makes a loop that +picks up randomly a curve, computes its canonical image, and resolves +its ideal, counting the possible values $\beta_{k,k+1}$ +until a certain amount of special curves is reached. +The result for 10 special curves in $\FF_7$ is as predicted: +$$ +\def\sb#1{\hbox to .65cm{\hfil$#1$}} %small fixed size box --text mode +\begin{tabular}{r|r|r|r|rrrrrr|} +& &total &\ special &\multicolumn{6}{r}{possible values of $\beta_{k,k+1}$}\vrule\cr +$g$ &\ seconds &\ curves &curves +&\sb{\le 2}&\sb3&\sb4&\sb5&\sb6&\sb{\ge 7} \cr +\hline +7&148&75&10&0&10&0&0&0&0\cr +9&253&58&10&0&0&9&0&0&1\cr +11&25640&60&10&0&0&0&9&0&1\cr +\end{tabular} +$$ +(The test for genus 9 and 11 used about 70 +and 120 megabytes of memory, respectively.) + + +So Green's conjecture passed the test for $g=9,11$. +Shortly after the first author tried this test for the first time, +a paper of Hirschowitz and Ramanan appeared proving this in general: + +\begin{theorem}[\cite{CO:HR}] If the general curve of odd genus $g=2k+1$ +satisfies Green's conjecture then the syzygy special curves lie on the divisor +$D=\{ C \in \gM_g | W^1_{k+1}(C) \ne \emptyset \}$ +\end{theorem} + +The theorem gives strong evidence for the full Green's conjecture in +view of our study of Coble self-dual sets of points. + +\medskip +Our findings suggest that the variety of points arising as +hyperplane sections of smooth canonical curves has the strange +property that it intersects the divisor of syzygy special sets of +points $\tilde D$ only in its singular locus. + +\bigskip +The conjecture for general curves is known to us up to $g \le 17$, which is +as far as a computer allows us to do a ribbon example; see \cite{CO:BaEi}. + +%%{\bf The end of the section should be deleted or expanded.} +%%The following scripts we do these example and allow to verify +%% the generic Green's conjecture +%%up to genus 17 (in that case the tests took 4556 seconds and 113Mbyte of memory). +%% +%% ( +%% collectGarbage(); +%% x=symbol x;X=K[x_1..x_a]; +%% mult1Withs2=matrix(apply((k-2)+1,i->(apply((a-1-k)+1,j->x_(i+j+1))))); +%% mult1Withst=matrix(apply((k-2)+1,i->(apply((a-1-k)+1,j->x_(i+j+2))))); +%% mult1Witht2=matrix(apply((k-2)+1,i->(apply((a-1-k)+1,j->x_(i+j+3))))); +%% --the Kozsul matrix \wedge^(k-1) Fa ->\wedge^k Fa ** Fa^ is given by +%% y=symbol y;Y=K[y_1..y_a]; +%% alpha=transpose koszul(k,vars Y); +%% --the contraction map +%% QX=sum(numgens X,i->x_(i+1)^2); +%% JX=ideal (symmetricPower(2,vars X)*(syz diff(QX, symmetricPower(2,vars X)))); +%% Xquot=X/JX;XY=X**Y;contractMap=map(Xquot,XY,vars Xquot|vars Xquot); +%% --Now s^2*(\wedge^(k-1) Fa -> \wedge^k Fa ** Fa^* ** (S_(k-2))^* ** Fa) is symply: +%% alpha1=substitute(alpha,XY)**substitute(mult1Withs2,XY); +%% --and we just have to contract the x_i's with the y_i's, which are of bidegree (1,1) +%% alpha1=substitute(contractMap(alpha1),matrix(K,{toList(numgens X:1)})); +%% --and the same for the other 2 terms +%% alpha2=-2*substitute(alpha,XY)**substitute(mult1Withst,XY); +%% alpha2=substitute(contractMap(alpha2),matrix(K,{toList(numgens X:1)})); +%% alpha3=substitute(alpha,XY)**substitute(mult1Witht2,XY); +%% alpha3=substitute(contractMap(alpha3),matrix(K,{toList(numgens X:1)})); +%% --THE SAME WITH THE S_b, with variables (w,z) +%% w=symbol w;W=K[w_1..w_b]; +%% mult2Withs2=matrix(apply((l-2)+1,i->(apply((b-1-l)+1,j->w_(i+j+1))))); +%% mult2Withst=matrix(apply((l-2)+1,i->(apply((b-1-l)+1,j->w_(i+j+2))))); +%% mult2Witht2=matrix(apply((l-2)+1,i->(apply((b-1-l)+1,j->w_(i+j+3))))); +%% z=symbol z;Z=K[z_1..z_b]; +%% beta=transpose koszul(l,vars Z); +%% QW=sum(numgens W,i->w_(i+1)^2); +%% JW=ideal (symmetricPower(2,vars W)*(syz diff(QW, symmetricPower(2,vars W)))); +%% Wquot=W/JW;WZ=W**Z;contractMap=map(Wquot,WZ,vars Wquot|vars Wquot); +%% beta1=substitute(beta,WZ)**substitute(mult2Withs2,WZ); +%% beta1=substitute(contractMap(beta1),matrix(K,{toList(numgens W:1)})); +%% beta2=substitute(beta,WZ)**substitute(mult2Withst,WZ); +%% beta2=substitute(contractMap(beta2),matrix(K,{toList(numgens W:1)})); +%% beta3=substitute(beta,WZ)**substitute(mult2Witht2,WZ); +%% beta3=substitute(contractMap(beta3),matrix(K,{toList(numgens W:1)})); +%% --FINAL EQUATIONS +%% equat=alpha1**beta1+alpha2**beta2+alpha3**beta3; +%% < +%% +%% ( +%% if p==0 then K=QQ else K=ZZ/p; +%% test=true; +%% a:=floor((g-1)/2); +%% k:=2;while k<=ceiling(a/2) do ( +%% < +%% + + + + + + + + +\section{Pfaffian Calabi-Yau Threefolds in $\PP^6$} + +\ie{Calabi-Yau 3-folds} caught the attention of physicists +because they can serve as the compact factor of the +Kaluza-Klein model of spacetime +in superstring theory. +One of the remarkable things that grows out of the work in physics +is the discovery of mirror symmetry, which associates to a family of +Calabi-Yau 3-folds $(M_\lambda)$, another family $(W_\mu)$ whose Hodge +diamond is the mirror of the Hodge diamond of the original family. + +Although there is an enormous amount of evidence at present, the existence +of a mirror is still a hypothesis for general Calabi-Yau 3-folds. +The thousands of cases where this was established all are close to toric +geometry, where through the work of Batyrev and others \cite{CO:Ba,CO:CK} +rigorous mirror +constructions were given and parts of their conjectured properties proved. + + +\medskip +From a commutative algebra point of view the examples studied so far are +rather trivial, because nearly all are hypersurfaces or complete +intersections on toric varieties, or zero loci of sections in +homogeneous bundles on homogeneous spaces. + +Of course only a few families of Calabi-Yau 3-folds should be of this kind. +Perhaps the easiest examples beyond the toric/homogeneous range are +Ca\-la\-bi-Yau 3-folds in $\PP^6$. +Here examples can be obtained by the Pfaffian +construction of Buchsbaum-Eisenbud \cite{CO:BE} with vector bundles; see +section \ref{Pfaffian complex} below. +Indeed a recent theorem of Walter \cite{CO:Wa} says +that any smooth Calabi-Yau in $\PP^6$ can be obtained in this way. +In this section we report on our construction of such examples. + +As is quite usual in this kind of problem, there is a range where the +construction is still quite easy, +e.g., for surfaces in $\PP^4$ the work in \cite{CO:DES,CO:Po} +shows that the construction of nearly all the 50 known families +of smooth non-general type surfaces is straight forward +and their Hilbert scheme component unirational. +Only in very few known examples is the construction more difficult +and the unirationality of the Hilbert scheme component an open problem. + +The second author did the first ``non-trivial'' case of a construction of +Calabi-Yau 3-folds in $\PP^6$. +Although in the end the families turned out to be unirational, +the approach utilized small finite field constructions as a research tool. + + + + +\subsection{The Pfaffian Complex} +\index{Pfaffian complex} +Let $\kf$ be a vector bundle of odd rank $\rk \kf = 2r+1$ on a projective +manifold $M$, and let $\kl$ be a line bundle. Let $\varphi +\in H^0(M,\Lambda^2 \kf \otimes \kl)$ be a section. We can +think of $\varphi$ as a skew-symmetric twisted homomorphism +$$\kf^* \stackrel{\varphi}{\longrightarrow} \kf \otimes \kl.$$ + +The $r^{th}$ divided power of $\varphi$ is a section +$\varphi^{(r)} = \frac{1}{r!}(\varphi \wedge \dots \wedge \varphi) \in +H^0(M,$ $\Lambda^{2r}\kf \otimes \kl^r)$. Wedge product with $\varphi^{(r)}$ +defines a morphism +$$ \kf \tensor \kl \stackrel{\psi}{\longrightarrow} \Lambda^{2r+1} \kf \otimes \kl^{r+1}=\det(\kf)\tensor\kl^{r+1}.$$ + +The twisted image +$\ki = \image(\psi) \tensor \det(\kf^*) \tensor \kl^{-r-1} \subset \ko_M$ +is called the {\sl Pfaffian ideal} of $\varphi$, because working locally +with frames, it is given by the ideal generated by the $2r\times 2r$ principle +Pfaffians of the matrix describing $\varphi$. +Let $\kd$ denote the determinant line bundle $\det(\kf^*)$. + +\begin{theorem}[Buchsbaum-Eisenbud \cite{CO:BE}]\label{Pfaffian complex} +With this notation +$$0 \to \kd^2\tensor\kl^{-2r-1} +\stackrel{\psi^t}{\longrightarrow} \kd\tensor\kl^{-r-1}\tensor\kf^* +\stackrel{\varphi}{\longrightarrow} \kf\tensor\kd\tensor\kl^{-r} +\stackrel{\psi}{\longrightarrow} \ko_M$$ +is a complex. +$X=V(\ki) \subset M$ has codimension $\le 3$ at every point, and in case equality +holds (everywhere along $X$) then +this complex is exact and resolves the structure sheaf $\ko_X=\ko_M/\ki$ +of the locally Gorenstein subscheme $X$. +\end{theorem} + +We will apply this to construct Calabi-Yau 3-folds in $\PP^6$. +In that case we want $X$ to be smooth and +$\det(\kf)^{-2}\tensor\kl^{-2r-1} \cong \omega_\PP\cong \ko(-7)$, +so we may conclude that $\omega_X \cong \ko_X$. +A result of Walter \cite{CO:Wa} for $\PP^n$ guarantees the existence +of a Pfaffian presentation in $\PP^6$ for every subcanonical embedded 3-fold. +Moreover Walter's choice of $\kf\tensor\kd\tensor\kl^{-r}$ for Calabi-Yau 3-folds $X \subset \PP^6$ +is the sheafified first syzygy module $H^1_*(\ki_X)$ plus possibly +a direct sum of line bundles +(indeed $H^2_*(\ki_X)=0$ because of the Kodaira vanishing theorem). +Under the maximal rank assumption for +$$H^0(\PP^6,\ko(m)) \to H^0(X,\ko_X(m))$$ +the Hartshorne-Rao module is zero for $d=\deg X \in \{12,13,14\}$ and +an arithmetically Cohen-Macaulay $X$ is readily found. +For $d \in \{15,16,17,18\}$ +the Hartshorne-Rao modules $M$ have Hilbert functions with values +$(0,0,1,0,$ $\ldots)$, $(0,0,2,1,0,\ldots)$, $(0,0,3,5,0,\ldots)$ and +$(0,0,4,9,0,\ldots)$ respectively. + +We do not discuss the cases $d\le 16$ further. +The construction in those cases is obvious; see \cite{CO:To}. + + +\subsection{Analysis of the Hartshorne-Rao Module for Degree $17$} + +Denote with $\kf_1$ the sheaf $\kf\tensor\kd\tensor\kl^{-r}$. +We try to construct $\kf_1$ as the sheafified first syzygy module of $M$. +The construction of a module with the desired Hilbert function is straightforward. +The cokernel of $3S(-2) \stackrel{b}{\longleftarrow} 16S(-3)$ for a general +matrix of linear forms has this property. +However, for a general $b$ and +$\kf_1 = \ker( 16\ko(-3) \stackrel{b}{\longrightarrow} 3\ko(-2))$ +the space of skew-symmetric maps $\Hom_{\rm skew}(\kf_1^*(-7),\kf_1)$ is zero: +$M$ has syzygies +$$ +\begin{tabular}{|cccccccc} +\hline +3 & 16 & 28 & - & - & - & - \cr +- & - & - & 70 & 112 & 84 & 32 & 5 \cr +\end{tabular} +$$ +\noindent +Any map $\varphi \colon \kf_1^*(-7) \to \kf_1$ induces a map on the free +resolutions: +$$ +\xymatrix{ +0 &\kf_1 \ar[l] &28\ko(-4) \ar[l] &70\ko(-6) \ar[l] &112\ko(-7) \ar[l] \\ +0 &\kf_1^*(-7) \ar[l] \ar[u]_\varphi &16\ko(-4) \ar[l] \ar[u]_{\varphi_0} +&3\ko(-5) \ar[l] \ar[u]_{\varphi_1} &0 \ar[l] +} +$$ +%\begin{diagram}[small] +%0 &\lTo &\kf &\lTo &28\ko &\lTo &70\ko(-2) &\lTo &112\ko(-3) \cr +%&&\varphi\; \uTo && \varphi_0 \;\uTo && \varphi_1\; \uTo&& \cr +%0&\lTo & \kf^*(1) &\lTo & 16\ko & \lTo &3\ko(-1) &\lTo & 0 \cr +%\end{diagram} +\noindent +Since $\varphi_1=0$ for degree reasons, $\varphi=0$ as well, and +$\Hom(\kf_1^*(-7),\kf_1)=0$ for a general module $M$. + +What we need are special modules $M$ that have extra syzygies +$$ +\begin{tabular}{|cccccccc} +\hline +3 & 16 & 28 & $k$ & - & - & - \cr +- & - & $k$ & 70 & 112 & 84 & 32 & 5 \cr +\end{tabular} +$$ +with $k$ at least 3. + +In a neighborhood of $o \in \Spec B$, where denotes $B$ the base space of +a semi-universal deformation of $M$, +the resolution above would lift to a complex over $B[x_0,\ldots,x_6]$ +and in the lifted complex there is a $k\times k$ matrix $\Delta$ +with entries in the maximal ideal $o \subset B$. +By the principal ideal theorem we see that Betti numbers stay constant +in a subvariety of codimension at most $k^2$. +To check for second linear syzygies on a randomly chosen M +is a computationally rather easy task. +The following procedure tests the computer speed of this task. +\beginOutput +i19 : testModulesForDeg17CY = (N,k,p) -> (\\ +\ x:=symbol x;R:=(ZZ/p)[x_0..x_6];\\ +\ numberOfGoodModules:=0;i:=0;\\ +\ usedTime:=timing while (i60 because we expect \\ +\ --k<16 syzygies, so 16+28+k<=60\\ +\ fb:=res(coker b, \\ +\ DegreeLimit =>0,SyzygyLimit=>60,LengthLimit =>3);\\ +\ if rank fb_3>=k and (dim coker b)==0 then (\\ +\ fb=res(coker b, DegreeLimit =>0,LengthLimit =>4);\\ +\ if rank fb_4==0 \\ +\ then numberOfGoodModules=numberOfGoodModules+1;);\\ +\ i=i+1;);\\ +\ collectGarbage();\\ +\ timeForNModules:=usedTime#0;\\ +\ \{timeForNModules,numberOfGoodModules\});\\ +\endOutput + +Running this procedure we see that it takes not more than +$0.64$ seconds per example. +Hence we can hope to find examples with $k=3$ within a reasonable time +for a very small field, say $\FF_3$. + +\medskip +The first surprise is that examples with $k$ extra syzygies +are found much more often, +as can be seen by looking at the second value output by the function {\tt testModulesForDeg17CY()}. + +This is not only a ``statistical'' remark, in the sense that +the result is confirmed by computing the semi-universal deformations of these modules. +Indeed define $\MM_k=\{ M \mid \Tor^S_3(M,\FF)_5 \ge k \}$ and +consider a module $M\in \MM_k$: +``generically'' we obtain $\codim(\MM_k)_M=k$ instead of $k^2$ +(and in fact one can diagonalize the matrix $\Delta$ over +the algebraic closure $\bar{\FF}$). + +The procedure is straightforward but a bit long. +First we pick up an example with $k$-extra syzygies. +\beginOutput +i20 : randomModuleForDeg17CY = (k,R) -> (\\ +\ isGoodModule:=false;i:=0;\\ +\ while not isGoodModule do (\\ +\ b:=random(R^3,R^\{16:-1\});\\ +\ --we put SyzygyLimit=>60 because we expect \\ +\ --k<16 syzygies, so 16+28+k<=60\\ +\ fb:=res(coker b, \\ +\ DegreeLimit =>0,SyzygyLimit=>60,LengthLimit =>3);\\ +\ if rank fb_3>=k and (dim coker b)==0 then (\\ +\ fb=res(coker b, DegreeLimit =>0,LengthLimit =>4);\\ +\ if rank fb_4==0 then isGoodModule=true;);\\ +\ i=i+1;);\\ +\ <<" -- Trial n. " << i <<", k="<< rank fb_3 < (\\ +\ fb:=res(coker b, LengthLimit =>3);\\ +\ k:=numgens target fb.dd_3-28; --# of linear syzygies\\ +\ b1:=fb.dd_1;b2:=fb.dd_2_\{0..27\};b2':=fb.dd_2_\{28..28+k-1\};\\ +\ b3:=fb.dd_3_\{0..k-1\}^\{0..27\};\\ +\ --the equation for f2 is b1*f2+f1*b2=0, \\ +\ --so f2 is a lift of (-f1*b2) through b1 \\ +\ f2:=-(f1*b2)//b1;\\ +\ --the equation for A=(f3||Delta) is -f2*b3 = (b2|b2') * A\\ +\ A:=(-f2*b3)//(b2l|b2');\\ +\ Delta:=A^\{28..28+k-1\});\\ +\endOutput +Now we just parametrize all possible maps $f_1\colon 16S(-3) \to 3S(-2)$, +compute their respective maps $\Delta$, +and find the codimension of the condition that $\Delta$ is the zero map: +\beginOutput +i22 : codimInfDefModuleForDeg17CY = (b) -> (\\ +\ --we create a parameter ring for the matrices f1's\\ +\ R:=ring b;K:=coefficientRing R;\\ +\ u:=symbol u;U:=K[u_0..u_(3*16*7-1)];\\ +\ i:=0;while i<3 do (\\ +\ <apply(16,n->\\ +\ if m==i and n==j then x_k else 0)));\\ +\ Delta:=substitute(getDeltaForDeg17CY(b,f1),U);\\ +\ if l==0 then (equations=u_l*Delta;) else (\\ +\ equations=equations+u_l*Delta;);\\ +\ k=k+1;);\\ +\ collectGarbage(); --frees up memory in the stack\\ +\ j=j+1;);\\ +\ i=i+1;);\\ +\ codim ideal equations);\\ +\endOutput + + +\medskip +The second surprise is that for $\kf_1 = syz_1(M)$ we find +$$\dim \Hom_{\rm skew}(\kf_1^*(-7),\kf_1) =k= \dim \Tor_3^S(M,\FF)_5.$$ +$\Hom_{\rm skew}(\kf_1^*(-7),\kf_1)$ is the vector space of skew-symmetric +linear matrices $\varphi$ such that $b \circ \varphi = 0$. +The following procedure gives a matrix of size +$\binom{16}2\times\dim \Hom_{\rm skew}(\kf_1^*(-7),\kf_1)$ +whose $i$-th column gives the entries of a $16\times16$ skew-symmetric matrix +inducing the $i$-th basis element of the vector space $\Hom_{\rm skew}(\kf_1^*(-7),\kf_1)$. +\beginOutput +i23 : skewSymMorphismsForDeg17CY = (b) -> (\\ +\ --we create a parameter ring for the morphisms: \\ +\ K:=coefficientRing ring b;\\ +\ u:=symbol u;U:=K[u_0..u_(binomial(16,2)-1)];\\ +\ --now we compute the equations for the u_i's:\\ +\ UU:=U**ring b;\\ +\ equationsInUU:=flatten (substitute(b,UU)*\\ +\ substitute(genericSkewMatrix(U,u_0,16),UU));\\ +\ uu:=substitute(vars U,UU);\\ +\ equations:=substitute(\\ +\ diff(uu,transpose equationsInUU),ring b);\\ +\ syz(equations,DegreeLimit =>0));\\ +\endOutput +A morphism parametrized by a column $\tt skewSymMorphism$ is then recovered +by the following code. +\beginOutput +i24 : getMorphismForDeg17CY = (SkewSymMorphism) -> (\\ +\ u:=symbol u;U:=K[u_0..u_(binomial(16,2)-1)];\\ +\ f=map(ring SkewSymMorphism,U,transpose SkewSymMorphism);\\ +\ f genericSkewMatrix(U,u_0,16));\\ +\endOutput + + +\partitle{Rank 1 Linear Syzygies of $M$} +To understand this phenomenon we consider the multiplication tensor of $M$: +$$\mu \colon M_2 \tensor V \to M_3$$ +where $V=H^0(\PP^6,\ko(1))$. + +\begin{definition} A decomposable element of $M_2 \tensor V$ in the kernel of +$\mu$ is called a \ie{rank 1 linear syzygy} of $M$. +The (projective) space of rank 1 syzygies is +$$Y=(\PP^2 \times \PP^6) \cap \PP^{15} \subset \PP^{20}$$ +where $\PP^2=\PP(M_2^*),\PP^6=\PP(V^*)$ and $\PP^{15}=\PP(\ker(\mu)^*)$ +inside the Segre space $\PP((M_2 \tensor V)^*)\cong \PP^{20}$. +\end{definition} + +Proposition 1.5 of \cite{CO:Gr1} says that, for $\dim M_2 \le j$, +the existence of a $j^{th}$ linear syzygy implies $\dim Y \ge j-1$. +This is automatically satisfied for $j=3$ +in our case: $\dim Y \ge 3$ with equality expected. + +The projection $Y \to \PP^2$ has linear fibers, and the general fiber is a +$\PP^1$. However, special fibers might have higher dimension. In terms +of the presentation matrix $b$ a special 2-dimensional fiber (defined +over $\FF$) corresponds to a block +$$ +b=\begin{pmatrix} +0 & 0 & 0 & * & \ldots \cr +0 & 0 & 0 & * & \ldots \cr +l_1 & l_2 & l_3 & *& \ldots \cr +\end{pmatrix}, +$$ +where $l_1,l_2,l_3$ are linear forms, in the $3\times16$ presentation matrix of $M$. +Such a block gives a +$$ +\begin{tabular}{|cccccccc} +\hline +1 & 3 & 3 & 1 & - & - & - &- \cr +- & - & - & - & - & - & - & - \cr +\end{tabular} +$$ +subcomplex in the free resolution of $M$ and an element +$s \in H^0(\PP^6,\Lambda^2 \kf_1 \tensor \ko(7))$ +since the syzygy matrix +$$ +\begin{pmatrix} +0 & -l_3 & l_2 \cr +l_3 & 0 & -l_1 \cr +-l_2 & l_1 & 0 \cr +\end{pmatrix} +$$ +is skew. + +This answers the questions posed by both surprises: +we want a module $M$ with at least $k \ge 3$ special +fibers and these satisfy $h^0(\PP^6,\Lambda^2 \kf_1 \tensor \ko(7)) \ge k$, +if the $k$ sections are linearly independent. +The condition for $k$ special fibers is of expected codimension $k$ in the +parameter space $\GG(16,3h^0(\PP^6,\ko(1))$ of the presentation matrices. +In a given point $M$ the actual codimension can be readily computed +by a first order deformations and that +$H^0(\PP^6,\Lambda^2 \kf_1 \tensor \ko(7))$ is $k$-dimensional, and spanned by the +$k$ sections corresponding to the $k$ special fibers can be checked as well. + +First we check that $M$ has $k$ distinct points in $\PP(M_2^*)$ where +the multiplication map drops rank. +(Note that this condition is likely to fail over small fields. +However, the check is computationally easy). +\beginOutput +i25 : checkBasePtsForDeg17CY = b -> (\\ +\ --firstly the number of linear syzygies\\ +\ fb:=res(coker b, DegreeLimit=>0, LengthLimit =>4);\\ +\ k:=#select(degrees source fb.dd_3,i->i==\{3\});\\ +\ --then the check\\ +\ a=symbol a;A=K[a_0..a_2];\\ +\ mult:=(id_(A^7)**vars A)*substitute(\\ +\ syz transpose jacobian b,A);\\ +\ basePts=ideal mingens minors(5,mult);\\ +\ codim basePts==2 and degree basePts==k and distinctPoints(\\ +\ basePts));\\ +\endOutput +Next we check that $H^0(\PP^6,\Lambda^2 \kf_1 \tensor \ko(7))$ is $k$-dimensional, +by looking at the numbers of columns of {\tt skewSymMorphismsForDeg17CY(b)}. +Finally we do the computationally hard part of the check, which is to +verify that the k special sections corresponding to the k special +fibers of $Y \to \PP^2$ span $H^0(\PP^6,\Lambda^2 \kf_1 \tensor \ko(7))$. +\beginOutput +i26 : checkMorphismsForDeg17CY = (b,skewSymMorphisms) -> (\\ +\ --first the number of linear syzygies\\ +\ fb:=res(coker b, DegreeLimit=>0, LengthLimit =>4);\\ +\ k:=#select(degrees source fb.dd_3,i->i==\{3\});\\ +\ if (numgens source skewSymMorphisms)!=k then (\\ +\ error "the number of skew-sym morphisms is wrong";);\\ +\ --we parametrize the morphisms:\\ +\ R:=ring b;K:=coefficientRing R;\\ +\ w:=symbol w;W:=K[w_0..w_(k-1)];\\ +\ WW:=R**W;ww:=substitute(vars W,WW);\\ +\ genericMorphism:=getMorphismForDeg17CY(\\ +\ substitute(skewSymMorphisms,WW)*transpose ww);\\ +\ --we compute the scheme of the 3x3 morphisms:\\ +\ equations:=mingens pfaffians(4,genericMorphism);\\ +\ equations=diff(\\ +\ substitute(symmetricPower(2,vars R),WW),equations);\\ +\ equations=saturate ideal flatten substitute(equations,W);\\ +\ CorrectDimensionAndDegree:=(\\ +\ dim equations==1 and degree equations==k);\\ +\ isNonDegenerate:=#select(\\ +\ (flatten degrees source gens equations),i->i==1)==0;\\ +\ collectGarbage();\\ +\ isOK:=CorrectDimensionAndDegree and isNonDegenerate;\\ +\ if isOK then (\\ +\ --in this case we also look for a skew-morphism f \\ +\ --which is a linear combination of the special \\ +\ --morphisms with all coefficients nonzero.\\ +\ isGoodMorphism:=false;while isGoodMorphism==false do (\\ +\ evRandomMorphism:=random(K^1,K^k);\\ +\ itsIdeal:=ideal(\\ +\ vars W*substitute(syz evRandomMorphism,W));\\ +\ isGoodMorphism=isGorenstein(\\ +\ intersect(itsIdeal,equations));\\ +\ collectGarbage());\\ +\ f=map(R,WW,vars R|substitute(evRandomMorphism,R));\\ +\ randomMorphism:=f(genericMorphism);\\ +\ \{isOK,randomMorphism\}) else \{isOK\});\\ +\endOutput +The code above is structured as follows. +First we parametrize the skew-symmetric morphisms with new variables. +The ideal of $4\times4$ Pfaffians is generated by forms of bidegree $(2,2)$ +over $\PP^6 \times \PP^{k-1}$. We are interested in +points $p \in \PP^{k-1}$ such that the whole fiber +$\PP^6 \times \{ p \}$ is contained in the zero locus of the Pfaffian +ideal. The next two lines produce the ideal of these points on +$\PP^{k-1}$. Since we already know of $k$ distinct points by the +previous check, it suffices to establish that the set consists of +collection of k spanning points. Finally, if this is the case, a further +point, i.e., a further skew morphism, is a linear combination with all +coefficients non-zero, if and only if the union with this point is a Gorenstein set +of $k+1$ points in $\PP^{k-1}$. +\beginOutput +i27 : isGorenstein = (I) -> (\\ +\ codim I==length res I and rank (res I)_(length res I)==1);\\ +\endOutput + + +It is clear that all 16 relations should take part in the desired +skew homomorphism $\kf_1^*(-7) \stackrel{\varphi}{\longrightarrow} \kf_1$. +Thus we need $k \ge 6$ to have a chance for a Calabi-Yau. +Since $3\cdot5 <16$ it easy to guarantee 5 special fibers by suitable choice +of the presentation matrix. +So the condition $k \ge 6$ is only of codimension $k-5$ on this subspace, +and we have a good chance to find a module of the desired type. +\beginOutput +i28 : randomModule2ForDeg17CY = (k,R) -> (\\ +\ isGoodModule:=false;i:=0;\\ +\ while not isGoodModule do (\\ +\ b:=(random(R^1,R^\{3:-1\})++\\ +\ random(R^1,R^\{3:-1\})++\\ +\ random(R^1,R^\{3:-1\})|\\ +\ matrix(R,\{\{1\},\{1\},\{1\}\})**random(R^1,R^\{3:-1\})|\\ +\ random(R^3,R^1)**random(R^1,R^\{3:-1\})|\\ +\ random(R^3,R^\{1:-1\}));\\ +\ --we put SyzygyLimit=>60 because we expect \\ +\ --k<16 syzygies, so 16+28+k<=60\\ +\ fb:=res(coker b, \\ +\ DegreeLimit =>0,SyzygyLimit=>60,LengthLimit =>3);\\ +\ if rank fb_3>=k and dim coker b==0 then (\\ +\ fb=res(coker b, DegreeLimit =>0,LengthLimit =>4);\\ +\ if rank fb_4==0 then isGoodModule=true;);\\ +\ i=i+1;);\\ +\ <<" -- Trial n. " << i <<", k="<< rank fb_3 <c$ and all $R$-modules $M$. If $R$ is the +coordinate ring of an affine variety $X$ and $I\subseteq R$ is the defining +ideal of the Zariski closed subset $Y\subseteq X$ then the {\em local +cohomological dimension of $Y$ in $X$} \index{local cohomological +dimension} is defined as $\cd(R,I)$. +It is not hard to show that if $X$ is smooth, then the integer +$\dim(X)-\cd(R,I)$ depends only on $Y$ but neither on $X$ nor on the +embedding $Y\into X$. +% +\subsection{Motivation} +As one sees from the definition of local cohomology, the +modules $H^i_I(R)$ carry information about the sections of the +structure sheaf on Zariski open sets, and hence about the topology of +these open sets. +This is illustrated by the following examples. Let $I\subseteq +R$ and $c=\cd(R,I)$. Then +$I$ cannot be generated by fewer than $c$ elements -- in other words, +$\spec(R)\setminus \var(I)$ cannot be covered by fewer than $c$ affine +open subsets (i.e., $\var(I)$ cannot be cut out by fewer than $c$ +hypersurfaces). In fact, no ideal $J$ +with the same radical as $I$ will be generated by fewer than $c$ +elements, \cite{DM:B-S}. + +Let $H^i_{{\rm Sing}}(-;\C)$ stand for the $i$-th singular cohomology +functor with complex coefficients. +The classical +Lefschetz Theorem \index{Lefschetz Theorem} \cite{DM:Gri-Har} +states that if $X\subseteq \P^n_\C$ is a + variety in projective $n$-space +and $Y$ a hyperplane section of $X$ such that $X\setminus Y$ +is smooth, +then $H^i_{{\rm Sing}}(X;\C)\to +H^i_{{\rm Sing}}(Y;\C)$ is an isomorphism for $i<\dim (X)-1$ and injective for +$i=\dim (X)-1$. +The Lefschetz Theorem has generalizations in terms of local +cohomology, called Theorems of Barth Type. +For example, let $Y\subseteq \P_\C^n$ be Zariski +closed +and $I\subseteq +R=\C[x_0,\ldots,x_n]$ the +defining ideal of $Y$. +Then $H^i_{{\rm Sing}}(\P^n_\C;\C)\to H^i_{{\rm Sing}}(Y;\C)$ is an isomorphism for $i< +n-\cd(R,I)$ and injective if $i=n-\cd(R,I)$ (\cite{DM:DRCAV}, Theorem III.7.1). + +A consequence of the work of Ogus and Hartshorne +(\cite{DM:Og}, 2.2, 2.3 and \cite{DM:DRCAV}, Theorem IV.3.1) is the +following. +If $I\subseteq +R=\C[x_0,\ldots,x_n]$ is the defining +ideal of a complex smooth variety $Y\subseteq \P^n_\C$ then, for +$ic$ implies +$\cd(R,I)\le c$ (see \cite{DM:CDAV}, Section 1). + +Unfortunately, +calculations are complicated by the fact that $H^i_I(M)$ is rarely +finitely generated as $R$-module, even for very nice $R$ and $M$. +In this +chapter we show how in an important class of examples one may still +carry out explicit computations, by enlarging $R$. + +We shall assume that +$I\subseteq R_n=K[x_1,\ldots,x_n]$ where $K$ is a +computable field +containing the rational numbers. (By a +{\em computable field}\index{computable field} +we mean a subfield $K$ of $\C$ such that $K$ is +described by a finite set of data and for which addition, subtraction, +multiplication and division as well as the test whether the result of +any of these operations is zero in the field can be executed by the +Turing machine. For example, $K$ could be $\Q[\sqrt 2]$ stored as a +2-dimensional vector space over $\Q$ with an appropriate +multiplication table.) + +The ring of $K$-linear differential operators $D(R,K)$ of the +commutative $K$-algebra $R$ is defined inductively: one sets +$D_0(R,K)=R$, and for $i>0$ defines +\[ +D_i(R,K)=\left\{P\in\hom_K(R,R):Pr-rP\in D_{i-1}(R,K) \text{ for all } r\in +R\right\}. +\] +Here, $r\in R$ is interpreted as the endomorphism of $R$ that +multiplies by $r$. + +The local cohomology +modules $H^i_I(R_n)$ have a natural +structure of finitely generated left $D(R_n,K)$-modules (see for +example \cite{DM:K2,DM:L-Dmod}). +The basic reason for this finiteness is that in this case +$R_n[f^{-1}]$ is a cyclic +$D(R_n,K)$-module, generated by $f^{a}$ for $\Z\ni a\ll 0$ +(compare \cite{DM:B}): +\begin{eqnarray} +\label{eqn-loc-iso} +R_n[f^{-1}]=D(R_n,K)\action f^{a}. +\end{eqnarray} + +Using +this finiteness we employ the theory of +Gr\"obner bases in $D(R_n,K)$ +to develop +algorithms that give a presentation of $H^i_I(R_n)$ and $H^i_\m (H^j_I(R_n))$ +for all triples $i,j\in \N$, $I\subseteq R_n$ in terms of generators and +relations over +$D(R_n,K)$ (where $\m=R_n\cdot(x_1,\ldots,x_n)$), see Section \ref{sec-lc}. +This also leads to an +algorithm for the computation of the invariants +\[ +\lambda_{i,j}(R_n/I)=\dim_K\soc_{R_n}(H^i_\m(H^{n-j}_I(R_n))) +\] +introduced in +\cite{DM:L-Dmod}. + + +At the basis for the computation of local cohomology are algorithms that +compute the localization of a $D(R_n,K)$-module at a hypersurface $f\in +R_n$. That means, if the left module $M={D(R_n,K)}^d/L$ is given by means of a +finite number of generators for the left module $L\subseteq {D(R_n,K)}^d$ +then we want to compute a finite number of generators for the left +module $L'\subseteq {D(R_n,K)}^{d'}$ which satisfies + +\[ +{D(R_n,K)}^{d'}/L'\cong +({D(R_n,K)}^d/L)\otimes_{R_n}R_n[f^{-1}] +, +\] +which we do in Section \ref{sec-loc}. + +Let $L$ be a left ideal of $D(R_n,K)$. +The computation of the localization of +$M=D(R_n,K)/L$ at $f\in R_n$ is closely related to the +$D(R_n,K)[s]$-module $\M_f$ generated by +\begin{eqnarray} +\bar 1\otimes 1\otimes f^s\in M\otimes_{R_n} R_n[f^{-1},s]\otimes f^s +\end{eqnarray} +and the minimal polynomial $b_f(s)$ +of $s$ on the quotient of $\M_f$ by its submodule $\M_f\cdot f$ +generated over $D(R_n,K)[s]$ by $\bar 1\otimes f\otimes f^s$, + cf.\ Section \ref{sec-loc}. +Algorithms for the computation of these objects have been +established by T.\ Oaku in a sequence of papers +\cite{DM:Oa,DM:Oa3,DM:Oa2}. + +Astonishingly, the roots of $b_f(s)$ prescribe the exponents $a$ that +can be used in the isomorphism (\ref{eqn-loc-iso}) +between $R_n[f^{-1}]$ and the +$D(R_n,K)$-module generated by $f^{a}$. Moreover, any + good exponent $a$ can be used to transform $\M_f$ into +$M\otimes R_n[f^{-1}]$ by a suitable ``plugging in'' procedure. + +Thus the strategy for the computation of local cohomology will be +to compute $\M_f$ and a good $a$ for each $f\in\{f_1,\ldots,f_r\}$, +and then assemble the \v Cech complex. + +\subsection{Outline of the Chapter} +The next section is devoted to a short introduction of results on +the Weyl algebra $D(R_n,K)$ and $D$-modules as they apply to our +work. +We start with some remarks on the theory of Gr\"obner +bases in the Weyl algebra. + +In Section \ref{sec-loc} we investigate Bernstein-Sato polynomials, +localizations and the \v Cech complex. +The purpose of +that section is to find a +presentation of $M\otimes R_n[f^{-1}]$ as a cyclic $D(R_n,K)$-module +if $M=D(R_n,K)/L$ +is a given holonomic $D$-module (for a definition and some properties +of holonomic modules, see Subsection \ref{subsec-D-modules} below). + + + +In +Section \ref{sec-lc} we describe +algorithms that for +arbitrary $i,j,k,I$ +determine the structure of +$H^k_I(R), H^i_\m (H^j_I(R))$ and find $\lambda_{i,j}(R/I)$. +The final section is devoted to comments on +implementations, efficiency, discussions of other topics, and open problems. + + + +%\input{2.tex} +\section{The Weyl Algebra and Gr\"obner Bases} +\mylabel{sec-weyl} + +$D$-modules, that is, rings or sheaves of differential operators and +modules over these, have been around for several decades and played +prominent roles in representation theory, some parts of analysis and +in algebraic geometry. The founding fathers of the theory are +M.\ Sato, M.\ Kashiwara, T.\ Kawai, J.\ Bernstein, and A.\ Beilinson. + The area has also benefited much from the work of P.\ Deligne, +J.-E.\ Bj\"ork, J.-E.\ Roos, +B.\ Malgrange and Z.\ Mebkhout. The more computational aspects of the +theory have been initiated by T.\ Oaku and N.\ Takayama. + +The simplest example of a ring of differential +operators is given by the Weyl algebra, the ring of $K$-linear +differential operators on $R_n$. In characteristic +zero, this is a finitely generated $K$-algebra that resembles the ring +of polynomials in $2n$ variables but fails to be commutative. +\subsection{Notation} Throughout we shall use the following notation: +$K$ will +denote a computable field +of characteristic zero and $R_n=K[x_1,\ldots,x_n]$ the ring of polynomials +over $K$ in $n$ variables. The $K$-linear differential operators on +$R_n$ are +then the elements of +\[D_n=K\langle +x_1,\del_1,\ldots,x_n,\del_n\rangle, +\] +the {\em $n$-th Weyl algebra}\myindex{Weyl algebra} + over $K$, where the symbol $x_i$ denotes the operator ``multiply by + $x_i$'' and $\del_i$ denotes the operator ``take partial +derivative with respect to $x_i$''. We therefore have in $D_n$ the relations +\begin{eqnarray*} +x_ix_j&=&x_jx_i\quad \text{ for all } 1\le i,j\le n,\\ +\del_i\del_j&=&\del_j\del_i \quad \text{ for all } 1\le i,j\le n,\\ +x_i\del_j&=&\del_jx_i \quad \text{ for all } 1\le i\not =j\le n,\\ +\text{ and }\, x_i\del_i+1&=&\del_ix_i \quad \text{ for all } 1\le i\le n. +\end{eqnarray*} +The last relation is nothing but +the {\em product} (or {\em Leibniz})\myindex{Leibniz rule} {\em rule}, +$xf'+f=(xf)'$. +We shall use multi-index notation: $x^\alpha\del^\beta$ denotes the +monomial +\[ +{x_1}^{\alpha_1}\cdots {x_n}^{\alpha_n}\cdot +{\del_1}^{\beta_1}\cdots{\del_n}^{\beta_n} +\] +and $|\alpha|=\alpha_1+ \dots +\alpha_n$. + +In order to keep the product $\del_i x_i\in D_n$ +and the application of $\del_i\in D_n$ to $x_i\in R_n$ apart, we shall +write $\del_i\action (g)$ to mean the result of +the action\myindex{action (of a differential operator)} of $\del_i$ on $g\in +R_n$. So for example, $\del_ix_i=x_i\del_i+1\in D_n$ but +$\del_i\action x_i=1\in R_n$. The action of $D_n$ on $R_n$ takes +precedence over the multiplication in $R_n$ (and is of course +compatible with the multiplication in $D_n$), so for +example $\del_2\action (x_1)x_2=0\cdot x_2=0\in R_n$. + +The symbol +$\m$ will stand for the maximal ideal $R_n\cdot (x_1,\ldots,x_n)$ of +$R_n$, $\Delta$ will denote the maximal left ideal $D_n\cdot +(\del_1,\ldots,\del_n)$ +of $D_n$ and $I$ will stand for the ideal $R_n\cdot (f_1,\ldots,f_r)$ in +$R_n$. Every $D_n$-module becomes an $R_n$-module via the embedding +$R_n\into D_n$ as $D_0(R_n,K)$. + +All tensor products in this chapter will be over $R_n$ and all +$D_n$-modules (resp.\ ideals)\myindex{$D_n$-modules} + will be left modules (resp.\ left ideals) unless specified otherwise. +% +\subsection{Gr\"obner Bases in $D_n$} +\mylabel{subsec-GB} +This subsection is a severely shortened version of Chapter 1 in +\cite{DM:SST} (and we strongly recommend that the reader take a look at +this book). The +purpose is to see how Gr\"obner basis theory applies to the Weyl algebra. + +The elements in $D_n$ allow a {\em normally ordered +expression}\myindex{normally ordered expression}. +Namely, if $P\in D_n$ then we can write it as +\[ +P=\sum_{(\alpha,\beta)\in E}c_{\alpha,\beta}x^\alpha\del^\beta +\] +where $E$ is a finite subset of $\N^{2n}$. +Thus, as $K$-vector spaces there is an isomorphism +\[ +\Psi:K[x,\xi]\to D_n +\] +(with $\xi=\xi_1,\ldots,\xi_n$) +sending $x^\alpha\xi^\beta$ to $x^\alpha\del^\beta$. We will assume +that every $P\in D_n$ is normally ordered. + +We shall say that $(u,v)\in\R^{2n}$ is a {\em weight vector for +$D_n$}\myindex{weight vector for $D_n$} +if $u+v\geq 0$, that is $u_i+v_i\geq 0$ for all $1\le i\le n$. We +set the {\em weight}\myindex{weight} + of the monomial $x^\alpha\del^\beta$ under +$(u,v)$ to be $u\cdot\alpha+v\cdot\beta$ (scalar product). The weight +of an operator is then the maximum of the weights of the nonzero +monomials appearing in the normally ordered expression of $P$. + If $(u,v)$ +is a weight vector for $D_n$, there is an associated graded ring +$\gr_{(u,v)}(D_n)$ with +\[ +\gr_{(u,v)}^r(D_n)=\frac{\{P\in D_n : w(P)\le r\}}{\{P\in D_n : w(P)< +r\}}. +\] +So $\gr_{(u,v)}(D_n)$ is +the +$K$-algebra on the symbols $\{x_i:1\le i\le n\}\cup +\{\del_i:u_i+v_i=0\}\cup\{\xi_i:u_i+v_i>0\}$. Here all variables +commute with each other except $\del_i$ and $x_i$ for which the +Leibniz rule holds. + +Each $P\in D_n$ has an {\em initial form}\myindex{initial form} + or {\em symbol} \myindex{symbol} $\ini_{(u,v)}(P)$ +in $\gr_{(u,v)}(D_n)$ defined by +taking all monomials in the normally ordered expression for $P$ that +have maximal weight, and replacing all $\del_i$ with $u_i+v_i>0$ by +the corresponding $\xi_i$. + +The inequality $u_i+v_i\geq +0$ is +needed to assure that the product of the initial forms of two +operators equals the initial form of their product: one would not want +to have $\ini(\del_i\cdot x_i)=\ini(x_i\cdot\del_i +1)=1$. + + + +A weight of particular importance is $-u=v=(1,\ldots,1)$, or more +generally $-u=v=(1,\ldots,1,0,\ldots,0)$. In these cases +$\gr_{(u,v)}(D_n)\cong D_n$. On the other hand, if $u+v$ is +componentwise positive, then $\gr_{(u,v)}(D_n)$ is commutative +(compare the initial forms of $\del_ix_i$ and $x_i\del_i$) and +isomorphic to the polynomial ring in $2n$ variables corresponding to +the symbols of $x_1,\ldots,x_n,\del_1,\ldots,\del_n$. + + +If $L$ is a left ideal in $D_n$ +we write $\ini_{(u,v)}(L)$\myindex{$\ini_{(u,v)}(L)$} + for $\{\ini_{(u,v)}(P):P\in L\}$. This is a +left ideal in $\gr_{(u,v)}(D_n)$. If $G\subset L$ is a finite set we +call it a {\em $(u,v)$-Gr\"obner basis}\myindex{$(u,v)$-Gr\"obner basis} + if the left ideal of +$\gr_{(u,v)}(D_n)$ generated by the initial forms of the elements of +$G$ agrees with $\ini_{(u,v)}(L)$. + +A {\em multiplicative monomial order on $D_n$}\myindex{monomial order +on $D_n$} +is a total order $\order$ +on the normally ordered monomials such that +\begin{enumerate} +\item $1\order x_i\del_i$ for all $i$, and +\item $x^\alpha\del^\beta\order x^{\alpha'}\del^{\beta'}$ implies +$x^{\alpha+\alpha''}\del^{\beta+\beta''}\order +x^{\alpha'+\alpha''}\del^{\beta'+\beta''}$ for all +$\alpha'',\beta''\in \N^n$. +\end{enumerate} +A multiplicative monomial order is a {\em +term order}\myindex{term order on $D_n$} + if $1$ is the (unique) smallest monomial. +Multiplicative monomial orders, and more specifically term orders, +clearly abound. + +Multiplicative monomial orders (and hence term orders) allow the +construction of initial forms just like weight vectors. Now, however, the +initial forms are always monomials, and always elements of $K[x,\xi]$ +(due to the total order requirement on $\order$). One +defines Gr\"obner bases for multiplicative monomial orders analogously +to the weight vector case. + +For our algorithms +we have need to compute weight vector Gr\"obner bases, and this can be +done as follows. Suppose $(u,v)$ is a weight vector on $D_n$ and +$\order$ a term order. Define a +multiplicative monomial order $\order_{(u,v)}$ as follows: +\begin{eqnarray*} +x^\alpha\del^\beta\order_{(u,v)} +x^{\alpha'}\del^{\beta'}&\Leftrightarrow& \left[(\alpha-\alpha')\cdot +u+(\beta-\beta')\cdot +v<0\right] \text{ or }\\ +&&\left[(\alpha-\alpha')\cdot +u+(\beta-\beta')\cdot +v=0 \text{ and } x^\alpha\del^\beta\order x^{\alpha'}\del^{\beta'}\right]. +\end{eqnarray*} +Note that $\order_{(u,v)}$ is a term order precisely when $(u,v)$ is +componentwise nonnegative. +\begin{theorem}[\cite{DM:SST}, Theorem 1.1.6.] +Let $L$ be a left ideal in $D_n$, $(u,v)$ a weight vector for $D_n$, +$\order$ a term +order and $G$ a Gr\"obner basis for $L$ with respect to +$\order_{(u,v)}$. Then +\begin{enumerate} +\item $G$ is a Gr\"obner basis for $L$ with respect to $(u,v)$. +\item $\ini_{(u,v)}(G)$ is a Gr\"obner basis for $\ini_{(u,v)}(L)$ with +respect to $\order$.\qed +\end{enumerate} +\end{theorem} +We end this subsection with the remarks that Gr\"obner bases with +respect to multiplicative monomial + orders can be computed using the Buchberger algorithm +adapted to the non-commutative situation (thus, Gr\"obner bases with +respect to weight vectors are computable according to the theorem), +and that the computation of +syzygies, kernels, intersections and preimages in $D_n$ +works essentially as in the commutative algebra $K[x,\xi]$. For precise +statements of the algorithms we refer the reader to \cite{DM:SST}. + +\subsection{$D$-modules} \mylabel{subsec-D-modules} +A good introduction to $D$-modules\myindex{$D$-modules} + are the book by J.-E.\ Bj\"ork, +\cite{DM:B}, the nice introduction \cite{DM:Coutinho} by S.~Coutinho, +and the lecture notes by J.~Bernstein + \cite{DM:Bernstein-notes}. +In this subsection we list some properties of +localizations of $R_n$ that are important for module-finiteness over + $D_n$. Most of this section is taken from Section 1 in \cite{DM:B}. + +Let $f\in R_n$. Then the $R_n$-module $R_n[f^{-1}]$ has a +structure as left $D_n$-module via the extension of the action +$\action$\myindex{action (of a differential operator)}: +\begin{eqnarray*} +x_i\action (\frac{g}{f^k})=\frac{x_ig}{f^k},&\quad& +\del_i\action (\frac{g}{f^k})=\frac{\del_i\action(g)f- + k\del_i\action(f)g}{f^{k+1}}. +\end{eqnarray*} +This may be thought of as a special case of localizing a $D_n$-module: if +$M$ is a $D_n$-module and $f\in R_n$ then $M\otimes_{R_n} R_n[f^{-1}]$ +becomes a +$D_n$-module via the {\em product rule}\myindex{product +rule}\myindex{action} +\begin{eqnarray*} +x_i\action (m\otimes \frac{g}{f^k})=m\otimes (\frac{x_ig}{f^k}), +&\quad& +\del_i\action (m\otimes \frac{g}{f^k})= + m\otimes \del_i\action(\frac{g}{f^k})+\del_i m\otimes \frac{g}{f^k}. +\end{eqnarray*} + +Of particular interest are the {\em +holonomic} modules\myindex{holonomic module} + which are those finitely generated $D_n$-modules $M$ +for which $\ext^j_{D_n}(M,D_n)$ vanishes +unless $j=n$. +This innocent looking definition has surprising consequences, +some of which we discuss now. + +The holonomic modules form a full Abelian subcategory of +the category of left $D_n$-modules, closed under the formation of +subquotients. +Our standard example of a holonomic module is\myindex{$R_n$ as a +$D_n$-module} +\[ +R_n=D_n/\Delta. +\] +This equality may require some thought -- it pictures $R_n$ as a +$D_n$-module generated by $1\in R_n$. It is particularly noteworthy +that not all elements of $R_n$ are killed by $\Delta$ -- quite +impossible if $D_n$ were commutative. + +Holonomic modules are +always cyclic and of finite length over $D_n$. These fundamental +properties are consequences of the {\em Bernstein +inequality}\myindex{Bernstein inequality}. To +understand this inequality we associate with the $D_n$-module +$M=D_n/L$ the Hilbert function $q_L(k)$ with values in the integers which +counts for each $k\in\N$ the number of monomials $x^\alpha\del^\beta$ with +$|\alpha|+|\beta|\le k$ whose cosets in $M$ are $K$-linearly +independent. The filtration $k\mapsto K\cdot \{x^\alpha\del^\beta\mod L: +|\alpha|+|\beta|\le k\}$ is called the \myindex{Bernstein filtration} +{\em Bernstein filtration}. The Bernstein inequality states that +$q_L(k)$ is either identically +zero (in which case $M=0$) or asymptotically a +polynomial in $k$ of degree between $n$ and $2n$. +This degree is called the {\em dimension of $M$}\myindex{dimension (of a +$D$-module)}. +A holonomic module is one of dimension $n$, the minimal possible value +for a nonzero module. + +This characterization of holonomicity can be used quite easily to +check with \Mtwo that $R_n$ is holonomic. Namely, let's say $n=3$. +Start a \Mtwo session with +\beginOutput +i1 : load "D-modules.m2"\\ +\endOutput +\beginOutput +i2 : D = QQ[x,y,z,Dx,Dy,Dz, WeylAlgebra => \{x=>Dx, y=>Dy, z=>Dz\}]\\ +\emptyLine +o2 = D\\ +\emptyLine +o2 : PolynomialRing\\ +\endOutput +\beginOutput +i3 : Delta = ideal(Dx,Dy,Dz)\\ +\emptyLine +o3 = ideal (Dx, Dy, Dz)\\ +\emptyLine +o3 : Ideal of D\\ +\endOutput +The first of these commands loads the $D$-module library +by A.\ Leykin, M.\ Stillman and H.\ Tsai, \cite{DM:M2D}. +The second line defines the +base ring $D_3=\Q\langle x,y,z,\del_x,\del_y,\del_z\rangle$, +while the third command defines the $D_3$-module $D_3/\Delta\cong +R_3$. + +As one can see, \Mtwo thinks of {\tt D} as a ring of polynomials. This is +using the vector space isomorphism $\Psi$ from Subsection +\ref{subsec-GB}. Of course, two elements are multiplied according to +the Leibniz rule. +To see how \Mtwo uses the map $\Psi$, we enter the following expression. +\beginOutput +i4 : (Dx * x)^2\\ +\emptyLine +\ 2 2\\ +o4 = x Dx + 3x*Dx + 1\\ +\emptyLine +o4 : D\\ +\endOutput +All Weyl algebra ideals and modules +are by default left +ideals and left modules in \Mtwo. + +If we don't explicitly specify a monomial ordering to be used in the Weyl +algebra, then \Mtwo uses graded reverse lex ({\tt GRevLex}), as we can see by +examining the options of the ring. +\beginOutput +i5 : options D\\ +\emptyLine +o5 = OptionTable\{Adjust => identity \}\\ +\ Degrees => \{\{1\}, \{1\}, \{1\}, \{1\}, \{1\}, \{1\}\}\\ +\ Inverses => false\\ +\ MonomialOrder => GRevLex\\ +\ MonomialSize => 8\\ +\ NewMonomialOrder => \\ +\ Repair => identity\\ +\ SkewCommutative => false\\ +\ VariableBaseName => \\ +\ VariableOrder => \\ +\ Variables => \{x, y, z, Dx, Dy, Dz\}\\ +\ Weights => \{\}\\ +\ WeylAlgebra => \{x => Dx, y => Dy, z => Dz\}\\ +\emptyLine +o5 : OptionTable\\ +\endOutput + +To compute the initial ideal of $\Delta$ with respect to the weight +that associates $1$ to each $\del$ and to each variable, execute +\beginOutput +i6 : DeltaBern = inw(Delta,\{1,1,1,1,1,1\}) \\ +\emptyLine +o6 = ideal (Dz, Dy, Dx)\\ +\emptyLine +o6 : Ideal of QQ [x, y, z, Dx, Dy, Dz]\\ +\endOutput +The command {\tt inw} can be used with any weight vector for $D_n$ as +second argument. +One notes that the output is not an ideal in a Weyl algebra any more, +but in a ring of polynomials, as it should. +The dimension of $R_3$, which is the dimension of the variety +associated to {\tt DeltaBern}, is computed by +\beginOutput +i7 : dim DeltaBern \\ +\emptyLine +o7 = 3\\ +\endOutput +As this is equal to $n=3$, the ideal $\Delta$ is holonomic. + +\bigskip + +Let $R_n[f^{-1},s]\otimes f^s$ be the free $R_n[f^{-1},s]$-module +generated by the symbol $f^s$. +Using the action $\action$ of $D_n$ on $R_n[f^{-1},s]$ we define an +action\myindex{action (of a differential operator)} $\action$ +of $D_n[s]$ on +$R_n[f^{-1},s]\otimes f^s$ by setting +\begin{eqnarray*} +s\action \left(\frac{g(x,s)}{f^k}\otimes f^s\right)&=& +\frac{sg(x,s)}{f^k}\otimes f^s,\\ +x_i\action\left(\frac{g(x,s)}{f^k}\otimes f^s\right)&=& + \frac{x_ig(x,s)}{f^k}\otimes f^s,\\ +\del_i\action\left(\frac{g(x,s)}{f^k}\otimes f^s\right)&=& + \left(\del_i\action\left(\frac{g(x,s)}{f^k}\right)+s\del_i\action(f)\cdot + \frac{g(x,s)}{f^{k+1}}\right)\otimes f^s. +\end{eqnarray*} +The last rule justifies the choice for the symbol of the generator. + +Writing $M=D_n/L$ and denoting by $\bar 1$ the coset of $1\in D_n$ in +$M$, +this action extends to an action\myindex{action (of a differential + operator)} + of $D_n[s]$ on +\begin{eqnarray} +\M^L_f=D_n[s]\action(\bar 1\otimes 1\otimes f^s)\subseteq +M\otimes_{R_n} \left(R_n[f^{-1},s]\otimes f^s\right) +\end{eqnarray} +by the product rule\myindex{product rule} for all left $D_n$-modules $M$. +The interesting bit about $\M^L_f$ +is the following fact. +If $M=D_n/L$ is holonomic +then +there is a nonzero polynomial $b(s)$ in $K[s]$ and an +operator $P(s)\in D_n[s]$ such that +\begin{eqnarray} +\label{def-b-poly} +P(s)\action(\bar 1\otimes f\otimes f^s)= +\bar 1\otimes b(s)\otimes f^s +\end{eqnarray} +in $\M^L_f$. +This entertaining equality, often written as +\[ +P(s)\left( \bar 1\otimes f^{s+1}\right)=\bar{b(s)}\otimes f^s, +\] +says that $P(s)$ is roughly equal to +division by $f$. +The unique monic polynomial that divides +all other polynomials $b(s)$ satisfying an identity of this type is called the +{\em Bernstein} (or also {\em Bernstein-Sato}) {\em +polynomial}\myindex{Bernstein (Bernstein-Sato) polynomial} of $L$ and +$f$ and denoted by $b_f^L(s)$\myindex{$b_f^L(s)$}. +Any operator $P(s)$ that satisfies (\ref{def-b-poly}) with +$b(s)=b_f(s)$ + we shall call a +{\em Bernstein operator}\myindex{Bernstein operator} and refer +to the roots of $b_f^L(s)$ as {\em Bernstein roots}\myindex{Bernstein +root} +of $f$ on $D_n/L$. +It is clear from (\ref{def-b-poly}) and the definitions that +$b^L_f(s)$ is the minimal polynomial of $s$ on the quotient of +$\M^L_f$ by $D_n[s]\action(\bar 1\otimes f\otimes f^s)$. + +The Bernstein roots of the polynomial $f$ are somewhat mysterious, but +related to other algebro-geometric invariants as, for example, the +monodromy of $f$ (see \cite{DM:M}), the Igusa zeta function (see \cite{Loeser}), and the log-canonical threshold +(see \cite{DM:Kollar}). For a long time it was also unclear how to +compute $b_f(s)$ for given $f$. In \cite{DM:Yano} many interesting examples of +Bernstein-Sato polynomials are worked out by hand, while in +\cite{DM:AK,DM:Brianconetal,DM:Maisonobe,DM:Satoetal} +algorithms were given that compute $b_f(s)$ under certain conditions +on $f$. The general algorithm we are going to explain was given by +T.\ Oaku. Here is a classical example. +\begin{example} +Let $f=\sum_{i=1}^n {x_i}^2$ and $M=R_n$ with $L=\Delta$. One can check +that +\[ +\sum_{i=1}^n{\del_i}^2\action(\bar 1\otimes 1\otimes f^{s+1})=\bar 1\otimes +4(s+1)(\frac{n}{2}+s)\otimes f^{s} +\] +and hence that +$\frac{1}{4}\sum_{i=1}^n{\del_i}^2$ is a Bernstein operator while the +Bernstein roots of $f$ are $-1$ and $-{n}/{2}$ and the Bernstein +polynomial is $(s+1)(s+\frac{n}{2})$. +\end{example} +\begin{example} +Although in the previous example the Bernstein operator looked a lot +like the polynomial $f$, this is not often the case and it is +usually hard to guess Bernstein operators. For example, one has +\[ +\left(\frac{1}{27}\,{\del_y}^3+ +\frac{y}{6}{\del_x}^2\del_y+\frac{x}{8}{\del_x}^3\right)(x^2+y^3)^{s+1}= +(s+\frac{5}{6})(s+1)(s+\frac{7}{6}) (x^2+y^3)^s. +\] +In the case of non-quasi-homogeneous polynomials, there is usually no +resemblance between $f$ and any Bernstein operator. +\end{example} +A very important property of holonomic modules is the +(somewhat counterintuitive) fact that any localization of a +holonomic module $M=D_n/L$ at a single element +(and hence at any finite number +of elements) of $R_n$ is holonomic (\cite{DM:B}, 1.5.9) and +in particular cyclic over $D_n$, generated by $\bar 1\otimes f^{a}$ for +sufficiently small $a\in \Z$. +As a +special case we note that +localizations of $R_n$ are holonomic, and hence finitely generated +over $D_n$. +Coming back to the \v Cech complex we see that the complex $\check +C^\bullet(M;f_1,\ldots,f_r)$ +consists of holonomic $D_n$-modules whenever $M$ is holonomic. + +As a consequence, local cohomology modules of $R_n$ are +$D_n$-modules and in fact holonomic. To see this it +suffices to know that the maps +in the \v Cech complex are +$D_n$-linear, which we will explain in Section \ref{sec-lc}. +Since the category +of holonomic $D_n$-modules and their $D_n$-linear maps +is closed under subquotients, +holonomicity of $H^k_I(R_n)$ +follows. + +For similar reasons, $H^i_\m (H^j_I(R_n))$ is holonomic for +$i,j\in \N$ (since $H^j_I(R_n)$ is holonomic). +These modules, investigated in Subsections \ref{subsec-lclc} and +\ref{subsec-lambda}, are +rather special $R_n$-modules and seem to carry some very interesting +information about $\var(I)$, see \cite{DM:G-S,DM:W-lambda}. + +The fact that $R_n$ is holonomic and every localization of a holonomic +module is as well, provides motivation for us to study this class of +modules. There are, however, more occasions where holonomic modules +show up. One such situation arises in the study of linear partial +differential equations. More specifically, the so-called GKZ-systems +(which we will meet again in the final chapter) provide a very +interesting class of objects with fascinating combinatorial and +analytic properties \cite{DM:SST}. + + +%\input{3.tex} +\section{Bernstein-Sato Polynomials and Localization} +\mylabel{sec-loc} +We mentioned in the introduction that for the computation +of local cohomology the following is an +important algorithmic problem to solve. + +\begin{problem} +\mylabel{prob} +Given $f\in +R_n$ and a left ideal $L\subseteq D_n$ such that $M=D_n/L$ is holonomic, +compute the structure of the module +$D_n/L\otimes R_n[f^{-1}]$ in terms of generators and relations. +\end{problem} +This section is about solving Problem \ref{prob}. +\subsection{The Line of Attack} +Recall for a given $D_n$-module $M=D_n/L$ the action of $D_n[s]$ on the +tensor product $M\otimes_{R_n}(R_n[f^{-1},s]\otimes f^s)$ from +Subsection \ref{subsec-D-modules}. +We begin with defining an ideal of operators: +\begin{definition} +Let $J^L(f^s)$ stand for the ideal in $D_n[s]$ +that kills $\bar 1\otimes 1\otimes f^s\in (D_n/L)\otimes_{R_n} +R_n[f^{-1},s]\otimes f^s$. +\end{definition} +It turns out that it is very useful to know this ideal. +If $L=\Delta$ then there are some obvious candidates for generators of +$J^L(f^s)$. For example, there are $f\del_i-\del_i\action(f)s$ for all +$i$. However, unless the affine hypersurface defined by $f=0$ is smooth, these will not generate +$J^\Delta(f^s)$. For a more general $L$, there is a similar set of +(somewhat less) obvious candidates, but again finding all elements of +$J^\Delta(f^s)$ is far from elementary, even for smooth $f$. + +In order to find $J^L(f^s)$, we will consider the module +$(D_n/L)\otimes R_n[f^{-1},s]\otimes f^s$ over the ring $D_{n+1}=D_n\langle +t,\del_t\rangle$ by defining an appropriate action of $t$ and $\del_t$ +on it. It is then not hard to +compute the ideal $J^L_{n+1}(f^s)\subseteq D_{n+1}$ consisting of all +operators that kill $\bar 1\otimes 1\otimes f^s$, see Lemma +\ref{lem-malgrange}. +In Proposition \ref{prop-oaku} +we will then explain how to compute $J^L(f^s)$ from $J_{n+1}^L(f^s)$. + +This construction +gives an answer to the question of determining +a presentation of $D_n\action (\bar 1\otimes f^a)$ for ``most'' $a\in +K$, which we make precise as follows. +\begin{definition} +We say that a property depending on $a\in K^m$ {\em holds for $a$ + in +very general position}, if there is a countable set of hypersurfaces + in $K^m$ such that the property holds for all $a$ not on any of the + exceptional hypersurfaces. +\end{definition} +It will turn out that for $a\in K$ in very general position $J^L(f^s)$ +``is'' the annihilator for $f^a$: we shall very explicitly +identify a countable number of +exceptional values +in $K$ such that if $a$ is not equal to one of them, then $J^L(f^s)$ +evaluates under $s\mapsto a$ to the annihilator inside $D_n$ of $\bar 1\otimes f^a$. + +For $a\in\Z$ we have +of course +$D_n\action (\bar 1\otimes f^a)\subseteq M\otimes +R_n[f^{-1}]$ but the inclusion may be strict +(e.g., for $L=\Delta$ and $a=0$). +Proposition \ref{prop-kashiwara} +shows how +$(D_n/L)\otimes R_n[f^{-1}]$ and +$J^L(f^s)$ are related. +\subsection{Undetermined Exponents} +Consider $D_{n+1}=D_n\langle t,\del_t\rangle$, \myindex{$D_{n+1}$} +the Weyl algebra in +$x_1,\ldots,x_n$ and the new variable $t$. B.\ Malgrange +\cite{DM:M} +has defined an\myindex{action} +action $\action$ of $D_{n+1}$ on +$(D_n/L)\otimes R_n[f^{-1},s]\otimes f^s$ as follows. +We require that $x_i$ acts as multiplication on the first factor, and +for the other variables we set (with $\bar P\in D_n/L$ and $g(x,s)\in +R_n[s]$) +\begin{eqnarray*} +\del_i\action(\bar P\otimes \frac{g(x,s)}{f^k}\otimes f^s)&= + &\left(\bar P\otimes + \left(\del_i\action(\frac{g(x,s)}{f^k})+\frac{s\del_i\action(f)g(x,s)}{f^{k+1}}\right) +\right. \\ & & \left. \quad {} + +\bar{\del_iP}\otimes \frac{g(x,s)}{f^k}\right)\otimes f^s,\\ +t\action(\bar P\otimes \frac{g(x,s)}{f^k}\otimes f^s)&= + &\bar P\otimes \frac{g(x,s+1)f}{f^k}\otimes f^s,\\ +\del_t\action(\bar P\otimes \frac{g(x,s)}{f^k}\otimes f^s)&= + &\bar P\otimes \frac{-sg(x,s-1)}{f^{k+1}} \otimes f^s. +\end{eqnarray*} +One checks that this actually +defines a left $D_{n+1}$-module structure + (i.e., $\del_tt$ acts like $t\del_t+1$) +and that +$-\del_tt$ acts as +multiplication by $s$. + +\begin{definition} +We denote by $J^L_{n+1}(f^s)$ the ideal in $D_{n+1}$ that annihilates the +element $\bar 1\otimes 1\otimes f^s$ in $(D_n/L)\otimes +R_n[f^{-1},s]\otimes f^s$ with $D_{n+1}$ acting +as defined above. +Then we have an induced morphism +of $D_{n+1}$-modules $D_{n+1}/J^L_{n+1}(f^s)\to (D_n/L)\otimes +R_n[f^{-1},s]\otimes f^s$ sending +$P+J^L_{n+1}(f^s)$ to +$P\action (\bar 1\otimes 1\otimes f^s)$. +\end{definition} + +We say that an ideal $L\subseteq D_n$ is {\em + $f$-saturated}\myindex{saturated@$f$-saturated} + if $f\cdot +P\in L$ implies $P\in L$ and we say that $D_n/L$ is {\em $f$-torsion +free}\myindex{torsion free@$f$-torsion free} if $L$ is $f$-saturated. +$R_n$ and all its localizations are examples of $f$-torsion free +modules for arbitrary $f$. + +The +following lemma is a modification of Lemma 4.1 in \cite{DM:M} +where the special case +$L=D_n\cdot (\del_1,\ldots,\del_n), D_n/L=R_n$ is considered (compare also +\cite{DM:W1}). + +\begin{lemma} +\mylabel{lem-malgrange} +Suppose that $L=D_n\cdot (P_1,\ldots,P_r)$ is $f$-saturated. +With the above definitions, $J^L_{n+1}(f^s)$ is the +ideal generated by $f-t$ together with the images of the $P_j$ under +the automorphism $\phi$ of $D_{n+1}$ induced by $x_i\mapsto x_i$ for all +$i$, and $t \mapsto t-f$. +\end{lemma} + +\begin{proof} +The automorphism sends $\del_i$ to $\del_i+\del_i\action(f)\del_t$ +and $\del_t$ to +$\del_t$. So if we write $P_j$ as a polynomial +$P_j(\del_1,\ldots,\del_n)$ +in the $\del_i$ +with coefficients in +$K[x_1,\ldots,x_n]$, then +\[ +\phi +(P_j)=P_j(\del_1+\del_1\action(f)\del_t,\ldots,\del_n+\del_n\action(f)\del_t). +\] + +One checks that $(\del_i+\del_i\action(f)\del_t)\action +(\bar Q\otimes 1\otimes f^s)= +\bar{\del_i +Q}\otimes 1\otimes f^s$ for all $Q\in D_{n+1}$, so that +$\phi(P_j(\del_1,\ldots,\del_n))\action ( +\bar 1\otimes 1\otimes f^s)=\bar{P_j(\del_1,\ldots,\del_n)}\otimes 1 +\otimes f^s=0$. By +definition, $f\action +(\bar 1\otimes 1\otimes f^s)=t\action (\bar 1\otimes 1\otimes f^s)$. So $t-f\in +J^L_{n+1}(f^s)$ and $\phi(P_j)\in J^L_{n+1}(f^s)$ for $j=1,\ldots,r$. + +Conversely let $P\action (\bar 1\otimes 1\otimes f^s)=0$. The proof that +$P\in\phi(J^L_{n+1}+D_{n+1}\cdot t)$ relies on +an elimination idea and has some Gr\"obner basis flavor. +We have to show that +$P\in D_{n+1}\cdot (\phi(P_1),\ldots,\phi(P_r),t-f)$. +We may assume, that $P$ does +not contain +any power of $t$ since we can eliminate $t$ using $f-t$. Now rewrite $P$ in +terms of $\del_t$ and the $\del_i+\del_i\action(f)\del_t$. Say, +$P=\sum_{\alpha,\beta} +\del_t^\alpha +x^\beta +Q_{\alpha,\beta} +(\del_1+\del_1\action(f)\del_t,\ldots,\del_n+\del_n\action(f)\del_t)$, +where the $Q_{\alpha,\beta}\in K[y_1,\ldots,y_n]$ are polynomial +expressions. +Then +\[ +P\action (\bar 1\otimes 1\otimes f^s)=\sum_{\alpha,\beta} +\del_t^\alpha\action( +\bar{x^\beta +Q_{\alpha,\beta}(\del_1,\ldots,\del_n)}\otimes 1\otimes f^s). +\] +Let $\bar\alpha$ be the largest $\alpha\in\N$ for which there is a +nonzero $Q_{\alpha,\beta}$ occurring in $P=\sum_{\alpha,\beta} +\del_t^\alpha +x^\beta Q_{\alpha,\beta}(\del_1+\del_1\action(f)\del_t,\ldots,\del_n+\del_n\action(f)\del_t)$. +We show that the sum of terms that contain +$\del_t^{\bar\alpha}$ is in $D_{n+1}\cdot \phi(L)$ as +follows. In +order for $P\action +(\bar 1\otimes 1\otimes f^s)$ to vanish, the sum of terms with the +highest $s$-power, namely $s^{\bar\alpha}$, must vanish. Hence +$\sum_\beta +x^\beta Q_{\bar\alpha,\beta}(\del_1,\ldots,\del_n) +\otimes (-1/f)^{\bar\alpha}\otimes f^s +\in +L\otimes R_n[f^{-1},s]\otimes f^s$ as $R_n[f^{-1},s]$ is $R_n[s]$-flat. +It follows that $\sum_\beta x^\beta +Q_{\bar\alpha,\beta}(\del_1,\ldots,\del_n)\in L$ ($L$ is +$f$-saturated!) and hence $\sum_\beta +\del_t^{\bar\alpha} +x^\beta +Q_{\bar\alpha,\beta} +(\del_1+\del_1\action(f)\del_t,\ldots,\del_n+\del_n\action(f) +\del_t)\in +D_{n+1}\cdot \phi(L)$ as announced. + +So by the first part, +$P-\sum_\beta \del_t^{\bar\alpha} x^\beta +Q_{\bar\alpha,\beta}(\del_1+\del_1\action(f)\del_t,\ldots,\del_n+\del_n +\action(f)\del_t)$ kills +$\bar 1\otimes 1\otimes f^s$, but is of +smaller degree in $\del_t$ than $P$ was. + +The claim follows by induction on $\bar\alpha$.\qed +\end{proof} + +\bigskip + +If we identify $D_n[-\del_tt]$ with $D_n[s]$ then $J^L_{n+1}(f^s)\cap +D_n[-\del_tt]$ is identified with $J^L(f^s)$ since, as we observed +earlier, $-\del_tt$ multiplies by $s$ on $\M^L_f$. +As we pointed out in the beginning, the crux of our algorithms is to +calculate $J^L(f^s)=J^L_{n+1}(f^s)\cap D_n[s]$. We shall deal with +this computation now. + +\mylabel{subsec-oaku} +In Theorem 19 of \cite{DM:Oa2}, T.~Oaku +showed how to construct a generating set for $J^L(f^s)$ in the case +$L=D_n\cdot(\del_1,\ldots,\del_n)$. +%According to Subsection +%\ref{subsec-special-exp}, $J^L(f^s)$ is the +%intersection of $J^L_{n+1}(f^s)$ with $D_n[-\del_tt]$. +Using his ideas we explain how one may calculate $J\cap +D_n[-\del_tt]$ whenever $J\subseteq D_{n+1}$ is any given ideal, and as a +corollary develop an algorithm that for $f$-saturated $D_n/L$ +computes $J^L(f^s)=J^L_{n+1}(f^s)\cap D_n[-\del_tt]$. + +We first review some work +of Oaku. +On $D_{n+1}$ we define the weight vector\myindex{weight vector} + $w$ by $w(t)=1, +w(\del_t)=-1, w(x_i)=w(\del_i)=0$ and we extend it to +$D_{n+1}[y_1,y_2]$ by $w(y_1)=-w(y_2)=1$. If $P=\sum_i P_i\in +D_{n+1}[y_1,y_2]$ and all $P_i$ are monomials, then we will write +$(P)^h$ for the operator $\sum_i P_i\cdot y_1^{d_i}$ where +$d_i=\max_j(w(P_j))-w(P_i)$ and call it the {\em +$y_1$-homogenization}\myindex{$y_1$-homogenization} +of $P$. + +Note that the +Buchberger algorithm preserves homogeneity +in the following sense: if a set of generators for an ideal is given +and these generators are homogeneous with respect to the weight above, +then any new generator for the ideal constructed with the classical +Buchberger algorithm will also be homogeneous. (This is a consequence +of the facts that the $y_i$ commute with all other variables and that +$\del_t t=t\del_t+1$ is homogeneous of weight zero.) +This homogeneity is very important for the following +result of Oaku: +\begin{proposition} +\mylabel{prop-oaku} +Let $J=D_{n+1}\cdot(Q_1,\ldots,Q_r)$. +Let $I$ be the left ideal in $D_{n+1}[y_1]$ generated by the +$y_1$-homogenizations $(Q_i)^h$ of the $Q_i$, relative to the weight +$w$ above, and set $\tilde +I=D_{n+1}[y_1,y_2]\cdot (I,1-y_1y_2)$. Let $G$ be a Gr\"obner basis +for $\tilde I$ under a monomial order that eliminates $y_1,y_2$. For +each $P\in G\cap D_{n+1}$ +set $P'=t^{-w(P)}P$ if $w(P)<0$ and $P'=\del_t^{w(P)}P$ if +$w(P)\geq 0$. Set $G_0=\{ P': P\in G\cap D_{n+1}\}$. Then +$G_0\subseteq D_n[-\del_tt]$ generates $J\cap D_n[-\del_tt]$. +\end{proposition} + +\begin{proof} +This is in essence Theorem 18 of \cite{DM:Oa2}. (See the remarks +in Subsection \ref{subsec-GB} on how to compute such Gr\"obner +bases.)\qed +\end{proof} + +As a corollary to this proposition we obtain an algorithm for the +computation of $J^\Delta(f^s)$: + +\begin{alg}[Parametric Annihilator] +\mylabel{alg-ann-fs}~ + +\noindent {\sc Input}: $f\in R_n$; $L\subseteq D_n$ such that $L$ is +$f$-saturated. + +\noindent {\sc Output}: Generators for $J^L(f^s)$\myindex{$J^L(f^s)$, +algorithm for}. + +\begin{enumerate} +\item For each generator $Q_i$ of $D_{n+1}\cdot (L,t)$ +compute the image $\phi(Q_i)$ +under $x_i\mapsto +x_i$, $t\mapsto t-f$, $\del_i\mapsto \del_i+\del_i\action(f)\del_t$, +$\del_t\mapsto\del_t$. + +\item Homogenize all $\phi(Q_i)$ with respect to the new variable +$y_1$ relative to the weight $w$ introduced before Proposition \ref{prop-oaku}. + +\item Compute a Gr\"obner basis for the ideal +\[ +D_{n+1}[y_1,y_2]\cdot((\phi(Q_1))^h, \ldots, (\phi(Q_r))^h, 1-y_1y_2) +\] +in $D_{n+1}[y_1,y_2]$ +using an order that eliminates $y_1,y_2$. + +\item Select the operators $\{ P_j\}_1^b$ in this basis which do not +contain $y_1, y_2$. + +\item For each $P_j$, $1\le j\le b$, if $w(P_j)>0$ replace $P_j$ by +$P_j'=\del_t^{w(P_j)}P_j$. Otherwise replace $P_j$ by +$P_j'=t^{-w(P_j)}P_j$. + +\item Return the new operators $\{P_j'\}_1^b$. +\end{enumerate} +End. +\end{alg} +The output will be operators in $D_n[-\del_tt]$ which is naturally +identified with $D_n[s]$ (including the action on $\M^L_f$). +This algorithm is in effect Proposition 7.1 of \cite{DM:Oa3}. + +In \Mtwo, one can compute the parametric annihilator ideal (for +$R_n=\Delta$) by the command {\tt AnnFs}: +\beginOutput +i8 : D = QQ[x,y,z,w,Dx,Dy,Dz,Dw, \\ +\ WeylAlgebra => \{x=>Dx, y=>Dy, z=>Dz, w=>Dw\}];\\ +\endOutput +\beginOutput +i9 : f = x^2+y^2+z^2+w^2\\ +\emptyLine +\ 2 2 2 2\\ +o9 = x + y + z + w\\ +\emptyLine +o9 : D\\ +\endOutput +\beginOutput +i10 : AnnFs(f)\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o10 = ideal (w*Dz - z*Dw, w*Dy - y*Dw, z*Dy - y*Dz, w*Dx - x*Dw, z*Dx $\cdot\cdot\cdot$\\ +\ $\cdot\cdot\cdot$\\ +\emptyLine +o10 : Ideal of QQ [x, y, z, w, Dx, Dy, Dz, Dw, \$s, WeylAlgebra => \{x = $\cdot\cdot\cdot$\\ +\endOutput +If we want to compute $J^L(f^s)$ +for more general $L$, we have to use +the command {\tt AnnIFs}: +\beginOutput +i11 : L=ideal(x,y,Dz,Dw)\\ +\emptyLine +o11 = ideal (x, y, Dz, Dw)\\ +\emptyLine +o11 : Ideal of D\\ +\endOutput +\beginOutput +i12 : AnnIFs(L,f)\\ +\emptyLine +\ 1 1\\ +o12 = ideal (y, x, w*Dz - z*Dw, -*z*Dz + -*w*Dw - \$s)\\ +\ 2 2\\ +\emptyLine +o12 : Ideal of QQ [x, y, z, w, Dx, Dy, Dz, Dw, \$s, WeylAlgebra => \{x = $\cdot\cdot\cdot$\\ +\endOutput +It should be emphasized that saturatedness of $L$ with respect to $f$ is +a must for {\tt AnnIFs}. + +\subsection{The Bernstein-Sato Polynomial} +Knowing $J^L(f^s)$ allows us to get our hands on the Bernstein-Sato +polynomial of $f$ on $M$: + +\begin{corollary} +\mylabel{cor-b-poly} +Suppose $L$ is a holonomic ideal in $D_n$ (i.e., $D_n/L$ is holonomic). +The +Bernstein polynomial $b_f^L(s)$ of $f$ on $(D_n/L)$ satisfies +\begin{eqnarray} +(b^L_f(s))=\left(D_n[s]\cdot(J^L(f^s),f)\right)\cap K[s]. +\end{eqnarray} +Moreover, if $L$ is $f$-saturated then +$b^L_f(s)$ can be computed with Gr\"obner basis computations. +\end{corollary} + +\begin{proof} +By definition of $b^L_f(s)$ we have +$(b_f^L(s)-P_f^L(s)\cdot f)\action (\bar 1\otimes 1\otimes f^s)=0$ for +a suitable $P^L_f(s)\in D_n[s]$. Hence +$b_f^L(s)$ is in $K[s]$ and in +$D_n[s](J^L(f^s),f)$. Conversely, if $b(s)$ is in this intersection +then $b(s)$ satisfies an equality of the type of (\ref{def-b-poly}) and +hence is a multiple of $b^L_f(s)$. + +If we use +an elimination order for which $\{x_i,\del_i\}_1^n\gg s$ in $D_n[s]$, then +if $J^L(f^s)$ is known, +$b^L_f(s)$ will be (up to a scalar +factor) the unique element in the reduced Gr\"obner basis for +$D_n[s]\cdot (J^L(f^s),f)$ that +contains no $x_i$ nor $\del_i$. Since we assume $L$ to be +$f$-saturated, $J^L(f^s)$ can be computed +according to Proposition \ref{prop-oaku}. +\qed +\end{proof} + +We therefore arrive at the following algorithm for the Bernstein-Sato +polynomial \cite{DM:Oa}. + +\begin{alg}[Bernstein-Sato polynomial]~ + +\mylabel{alg-b-poly-L} +\noindent {\sc Input}: $f\in R_n$; $ L\subseteq D_n$ such that +$D_n/L$ is holonomic and +$f$-torsion free. + +\noindent {\sc Output}: The Bernstein polynomial\myindex{Bernstein +polynomial, algorithm for} $b^L_f(s)$. +\begin{enumerate} +\item Determine $J^L(f^s)$ following Algorithm \ref{alg-ann-fs}. + +\item Find a reduced Gr\"obner basis for the ideal +$J^L(f^s)+D_n[s]\cdot f$ +using an elimination order for $x$ and $\del$. + +\item Pick the unique element $b(s)\in K[s]$ contained in that basis and +return it. +\end{enumerate} +End. +\end{alg} + +We illustrate the algorithm with two examples. We first recall $f$ +which was defined at the end of the previous subsection. +\beginOutput +i13 : f\\ +\emptyLine +\ 2 2 2 2\\ +o13 = x + y + z + w\\ +\emptyLine +o13 : D\\ +\endOutput +Now we compute the Bernstein-Sato polynomial. +\beginOutput +i14 : globalBFunction(f)\\ +\emptyLine +\ 2\\ +o14 = \$s + 3\$s + 2\\ +\emptyLine +o14 : QQ [\$s]\\ +\endOutput +The routine {\tt globalBFunction} computes the +Bernstein-Sato polynomial of $f$ on $R_n$. We also take a look at the +Bernstein-Sato polynomial of a cubic: +\beginOutput +i15 : g=x^3+y^3+z^3+w^3\\ +\emptyLine +\ 3 3 3 3\\ +o15 = x + y + z + w\\ +\emptyLine +o15 : D\\ +\endOutput +\beginOutput +i16 : factorBFunction globalBFunction(g)\\ +\emptyLine +\ 7 8 4 5\\ +o16 = (\$s + 1)(\$s + -)(\$s + -)(\$s + 2)(\$s + -)(\$s + -)\\ +\ 3 3 3 3\\ +\emptyLine +o16 : Product\\ +\endOutput +In \Mtwo one can also find $b^L_f(s)$ for more general $L$. We will +see in the following remark what the appropriate commands are. + +\begin{remark} +\mylabel{rem-nonQ-root} +It is clear that $s+1$ is always a factor of any Bernstein-Sato +polynomial on $R_n$, but this is not necessarily the case if $L\not = +\Delta$. For example, +$b^L_f(s)=s$ for $n=1$, $f=x$ and $L=x\del_x+1$ (in which case +$D_1/L\cong R_1[x^{-1}]$, generated by ${1}/{x}$). +In particular, it is not true that +the roots of $b_f^L(s)$ are negative for general holonomic $L$. + +If $L$ is equal to $\Delta$, and if +$f$ is nice, then the Bernstein roots are all between $-n$ and $0$ +\cite{DM:Varchenko}. But for general $f$ very little is known besides +a famous theorem of Kashiwara + that states that $b^\Delta_f(s)$ factors over +$\Q$ \cite{DM:K} and all roots are negative. + +For $L$ arbitrary, the situation is more complicated. +The Bernstein-Sato polynomial of any polynomial $f$ on the +$D_n$-module generated by $\bar 1\otimes f^a$ with $a\in K$ is +related to that of $f$ on $D_n/L$ by a simple shift, and so the +Bernstein roots of $f$ on the $D_n$-module generated by the function +germ $f^a$, $a\in K$, +are still all +in $K$ by +\cite{DM:K}. Localizing other modules however can easily lead to +nonrational roots. As an example, consider +\beginOutput +i17 : D1 = QQ[x,Dx,WeylAlgebra => \{x=>Dx\}];\\ +\endOutput +\beginOutput +i18 : I1 = ideal((x*Dx)^2+1)\\ +\emptyLine +\ 2 2\\ +o18 = ideal(x Dx + x*Dx + 1)\\ +\emptyLine +o18 : Ideal of D1\\ +\endOutput +This is input defined over the rationals. +Even localizing $D_1/I_1$ at a very simple $f$ leads to nonrational roots: +\beginOutput +i19 : f1 = x;\\ +\endOutput +\beginOutput +i20 : b=globalB(I1, f1)\\ +\emptyLine +\ 2\\ +o20 = HashTable\{Boperator => - x*Dx + 2Dx*\$s + Dx\}\\ +\ 2\\ +\ Bpolynomial => \$s + 2\$s + 2\\ +\emptyLine +o20 : HashTable\\ +\endOutput +The routine {\tt globalB} is to be used if a Bernstein-Sato polynomial +is suspected to fail to factor over $\Q$. If $b_f^L(s)$ does factor +over $\Q$, one can also use the routine {\tt DlocalizeAll} to be +discussed below. It +would be very interesting to determine rules that govern the splitting field +of $b^L_f(s)$ in general. + + +\end{remark} + +\subsection{Specializing Exponents} +\mylabel{subsec-special-exp} +In this subsection we investigate the result of substituting $a\in K$ +for $s$ in $J^L(f^s)$. +Recall that the Bernstein polynomial $b^L_f(s)$ +will exist (i.e., be nonzero) if $D_n/L$ +is holonomic. As outlined in the previous subsection, $b^L_f(s)$ can +be computed if $D_n/L$ is holonomic and $f$-torsion free. +The following proposition +(Proposition 7.3 in \cite{DM:Oa3}, see also Proposition 6.2 in \cite{DM:K}) + shows that replacing $s$ by an +exponent in very general position +leads to a solution of the localization problem. + +\begin{proposition} +\mylabel{prop-kashiwara} +If $L$ is holonomic and $a\in K$ is such that +no element of $\{a-1,a-2,\ldots\}$ is a Bernstein +root of $f$ on $L$ then we have $D_n$-isomorphisms +\begin{equation} +%% \label{eqn-s=a-iso} +(D_n/L)\otimes_{R_n}\left( R_n[f^{-1}]\otimes f^a\right) +\cong \left(D_n[s]/J^L(f^s)\right)|_{s=a}\cong D_n\action +(\bar 1 \otimes 1\otimes f^a). +\end{equation} +\qed +\end{proposition} +One notes in particular that +if any $a\in\Z $ satisfies the conditions of the +proposition, then so does every integer smaller than $a$. This +motivates the following +\begin{definition} +The {\em stable integral exponent of $f$ on $L$} is the smallest +integral root of $b^L_f(s)$, and denoted $a^L_f$. +\end{definition} +In terms of this definition, +\[ +\left(D_n/J^L(f^s)\right)|_{s=a^L_f}\cong +(D_n/L)\otimes_{R_n}R_n[f^{-1}], +\] +and the presentation corresponds to the generator $\bar 1\otimes +f^{a^L_f}$. +If $L=\Delta$ then Kashiwara's result tells us that $b^L_f(s)$ will +factor over the rationals, and thus it is very easy to find the stable +integral exponent. If we localize a more general module, +the roots may not even be +$K$-rational anymore as we saw at the end of the previous subsection. + +The following lemma deals with the question of finding the smallest +integer root of a polynomial. We let $|s|$ denote the complex absolute +value. +\begin{lemma} +Suppose that in the situation of Corollary \ref{cor-b-poly}, +\[ +b^L_f(s)=s^d+b_{d-1}s^{d-1}+\dots+b_0, +\] +and define +$B=\max_{i}\{|b_i|^{1/(d-i)}\}$. +The smallest integer root of $b^L_f(s)$ is an integer between $-2B$ +and $2B$. +If in particular $L=D_n\cdot +(\del_1,\ldots,\del_n)$, it suffices to check the +integers between $-b_{d-1}$ and $-1$. +\end{lemma} + +\begin{proof} +Suppose +$|s_0|=2B\rho$ where $B$ is as defined above and $\rho>1$. +Assume +also that $s_0$ is a root of $b_f^L(s)$. We find +\begin{eqnarray*} +(2B\rho)^d=|s_0|^d&=&|-\sum_{i=0}^{d-1}b_i{s_0}^i| +%&\le&\sum_0^{d-1}|b_i|\cdot|s_0|^i \\ +\le\sum_{i=0}^{d-1}B^{d-i}|s_0|^i\\ +&=&B^d\sum_{i=0}^{d-1}(2\rho)^i +\le B^d((2\rho)^d-1), +\end{eqnarray*} +using $\rho\geq 1$. +By contradiction, $s_0$ is not a root. + +The +final claim is a consequence of Kashiwara's work + \cite{DM:K} where +he proves that if $L=D_n\cdot(\del_1,\ldots,\del_n)$ then all roots of +$b_f^L(s)$ are rational and negative, and hence +$-b_{n-1}$ is a +lower bound for each single root. +\qed +\end{proof} + +Combining Proposition \ref{prop-kashiwara} +with Algorithms +\ref{alg-ann-fs} +and +\ref{alg-b-poly-L} +we therefore obtain +\begin{alg}[Localization]~ + +\mylabel{alg-D/L-loc-f} +\myindex{localization!algorithm for} +\noindent {\sc Input}: + $f\in R_n$; $L\subseteq D_n$ such that $D_n/L$ is holonomic and +$f$-torsion free. + +\noindent {\sc Output}: + Generators for an ideal $J$ such that $(D_n/L)\otimes_{R_n} + R_n[f^{-1}]\cong D_n/J$. + +\begin{enumerate} +\item Determine $J^L(f^s)$ following Algorithm \ref{alg-ann-fs}. +\item Find the Bernstein polynomial $b_f^L(s)$ using Algorithm +\ref{alg-b-poly-L}. +\item Find the smallest integer root $a$ of $b_f^L(s)$. +\item Replace $s$ by $a$ in all generators for $J^L(f^s)$ and +return these generators. +\end{enumerate} +End. +\end{alg} +Algorithms \ref{alg-b-poly-L} and \ref{alg-D/L-loc-f} are +Theorems 6.14 and Proposition 7.3 in \cite{DM:Oa3}. + +\begin{example} +For $f=x^2+y^2+z^2+w^2$, we found a stable integral exponent of $-2$ +in the previous subsection. +To compute the annihilator of +$f^{-2}$ using \Mtwo, we use the command {\tt +Dlocalize} which automatically uses the stable integral exponent. +We first change the current ring back to the ring {\tt D} which we used +in the previous subsection: +\beginOutput +i21 : use D\\ +\emptyLine +o21 = D\\ +\emptyLine +o21 : PolynomialRing\\ +\endOutput +Here is the +module to be localized. +\beginOutput +i22 : R = (D^1/ideal(Dx,Dy,Dz,Dw))\\ +\emptyLine +o22 = cokernel | Dx Dy Dz Dw |\\ +\emptyLine +\ 1\\ +o22 : D-module, quotient of D\\ +\endOutput +The localization then is obtained by running +\beginOutput +i23 : ann2 = relations Dlocalize(R,f)\\ +\emptyLine +o23 = | wDz-zDw wDy-yDw zDy-yDz wDx-xDw zDx-xDz yDx-xDy xDx+yDy+zDz+wD $\cdot\cdot\cdot$\\ +\emptyLine +\ 1 10\\ +o23 : Matrix D <--- D\\ +\endOutput +The output {\tt ann2} is a $1\times 10$ matrix whose entries generate +$\ann_{D_4}(f^{-2})$. +\end{example} + +\begin{remark} +The computation of the annihilator +of $f^a$ for values of $a$ such that $a-k$ is a +Bernstein root for some $k\in\N^+$ can be achieved by an appropriate +syzygy computation. For example, we saw above +that the Bernstein-Sato +polynomial of $f=x^2+y^2+z^2+w^2$ on $R_4$ is $(s+1)(s+2)$. So +evaluation of $J^L(f^s)$ at $-1$ does not necessarily yield +$\ann_{D_4}(f^{-1})$, as will be documented in the next remark. +On the other hand, evaluation at $-2$ gives +$\ann_{D_4}(f^{-2})$. It is not hard to see that +$\ann_{D_4}(f^{-1})=\{P\in D_n:Pf\in \ann_{D_n}(f^{-2})\}$ because +$D_4\action f^{-1}=D_4f\action f^{-2} +\subseteq D_4\action f^{-2}$. So we set: +\beginOutput +i24 : F = matrix\{\{f\}\}\\ +\emptyLine +o24 = | x2+y2+z2+w2 |\\ +\emptyLine +\ 1 1\\ +o24 : Matrix D <--- D\\ +\endOutput +To find $\ann_{D_4}(f^{-1})$, we use the command {\tt modulo} which +computes relations: {\tt modulo(M,N)} computes for two matrices $M, N$ +the set of (vectors of) operators $P$ such that $P\cdot M\subseteq \im(N)$. +\beginOutput +i25 : ann1 = gb modulo(F,ann2)\\ +\emptyLine +o25 = \{2\} | wDz-zDw wDy-yDw zDy-yDz Dx^2+Dy^2+Dz^2+Dw^2 wDx-xDw zDx-xD $\cdot\cdot\cdot$\\ +\emptyLine +o25 : GroebnerBasis\\ +\endOutput +The generator $\del_2^2+\del_y^2+\del_z^2+\del_w^2$ is particularly interesting. +To see the quotient of +$D_4\action f^{-2}$ by $D_4\action f^{-1}$ we execute +\beginOutput +i26 : gb((ideal ann2) + (ideal F))\\ +\emptyLine +o26 = | w z y x |\\ +\emptyLine +o26 : GroebnerBasis\\ +\endOutput +which shows that $D_4\action f^{-2}$ is an extension of +$D_4/D_4(x,y,z,w)$ by $D_4\action f^{-1}$. This is not surprising, +since $(0,0,0,0)$ is the only singularity of $f$ and hence the +difference between $D_4\action f^{-2}$ and $D_4\action f^{-1}$ must be +supported at the origin. + +It is perhaps interesting to note that for a more complicated (but still +irreducible) polynomial $f$ the +quotient $({D_n\action f^{a}})/({D_n\action f^{a+1}})$ can +be a nonsimple nonzero $D_n$-module. For example, let +$f=x^3+y^3+z^3+w^3$ and $a=a^\Delta_f=-2$. +A computation similar to the quadric case above +shows that here $({D_n\action f^{a}})/({D_n\action f^{a+1}})$ is a +$(x,y,z,w)$-torsion module (supported at the singular locus of $f$) +isomorphic to $(D_4/D_4\cdot (x,y,z,w))^6$. The socle elements of the +quotient are the degree 2 polynomials in $x,y,z,w$. +\end{remark} + +\begin{example} +\mylabel{ex-cubic} +Here we show how with \Mtwo one can get more information +from the localization +procedure. +\beginOutput +i27 : D = QQ[x,y,z,Dx,Dy,Dz, WeylAlgebra => \{x=>Dx, y=>Dy, z=>Dz\}];\\ +\endOutput +\beginOutput +i28 : Delta = ideal(Dx,Dy,Dz);\\ +\emptyLine +o28 : Ideal of D\\ +\endOutput +We now define a polynomial and compute the localization of $R_3$ +at the +polynomial. +\beginOutput +i29 : f=x^3+y^3+z^3;\\ +\endOutput +\beginOutput +i30 : I1=DlocalizeAll(D^1/Delta,f,Strategy=>Oaku)\\ +\emptyLine +\ 1 1 1 2 $\cdot\cdot\cdot$\\ +o30 = HashTable\{annFS => ideal (-*x*Dx + -*y*Dy + -*z*Dz - \$s, z Dy - $\cdot\cdot\cdot$\\ +\ 3 3 3\\ +\ 2 5 4\\ +\ Bfunction => (\$s + 1) (\$s + -)(\$s + -)(\$s + 2)\\ +\ 3 3\\ +\ 2 3 2 4 1 2 $\cdot\cdot\cdot$\\ +\ Boperator => --*y*z*Dx Dy*Dz - --*y*z*Dy Dz + ---*z Dx $\cdot\cdot\cdot$\\ +\ 81 81 243 $\cdot\cdot\cdot$\\ +\ GeneratorPower => -2\\ +\ LocMap => | x6+2x3y3+y6+2x3z3+2y3z3+z6 |\\ +\ LocModule => cokernel | 1/3xDx+1/3yDy+1/3zDz+2 z2Dy-y2 $\cdot\cdot\cdot$\\ +\emptyLine +o30 : HashTable\\ +\endOutput +\beginOutput +i31 : I2=DlocalizeAll(D^1/Delta,f)\\ +\emptyLine +o31 = HashTable\{GeneratorPower => -2 $\cdot\cdot\cdot$\\ +\ 2 2 2 1\\ +\ IntegrateBfunction => (\$s) (\$s + 1) (\$s + -)(\$s + -)\\ +\ 3 3\\ +\ LocMap => | x6+2x3y3+y6+2x3z3+2y3z3+z6 |\\ +\ LocModule => cokernel | xDx+yDy+zDz+6 z2Dy-y2Dz z2Dx-x $\cdot\cdot\cdot$\\ +\emptyLine +o31 : HashTable\\ +\endOutput + +%\begin{verbatim} +%i1 : load "Dloadfile.m2" +%i2 : D = QQ[x,y,z,Dx,Dy,Dz, WeylAlgebra => {x=>Dx, y=>Dy, z=>Dz}] +%i3 : Delta=ideal(Dx,Dy,Dz) +%i4 : f=x^3+y^3+z^3 +%i5 : I1=DlocalizeAll(D^1/Delta,f,Strategy=>Oaku) +%i6 : I2=DlocalizeAll(D^1/Delta,f) +%\end{verbatim} +The last two commands both compute the localization of +$R_3$ +at $f$ but follow different localization algorithms. The +former uses our Algorithm \ref{alg-D/L-loc-f} while the latter follows +\cite{DM:O-T-W}. + +The output of the command {\tt DlocalizeAll} is a hashtable, because +it contains a variety of data that pertain to the map $R_n\into +R_n[f^{-1}]$. {\tt LocMap} gives the element that induces the map on +the $D_n$-module level (by right multiplication). {\tt LocModule} gives +the localized module as cokernel of the displayed matrix. {\tt +Bfunction} is the Bernstein-Sato polynomial and {\tt annFS} the +generic annihilator $J^L(f^s)$. {\tt Boperator} displays a +Bernstein operator and the stable integral exponent is stored in {\tt +GeneratorPower}. + + %% The warning {\tt Oaku's \ldots saturated} refers + %% to the fact that +Algorithm \ref{alg-D/L-loc-f} requires the ideal $L$ to be +$f$-saturated. This property is not checked by \Mtwo, so the user +needs to make sure it holds. For example, this is always the case if +$D_n/L$ is a localization of $R_n$. One can check the saturation +property in \Mtwo, but it is a rather involved computation. This difficulty can +be circumvented by omitting the option {\tt Strategy=>Oaku}, in +which case the localization algorithm of \cite{DM:O-T-W} is used. In +terms of complexity, using the Oaku strategy is much better behaved. + +One can address the entries of a hashtable. For +example, executing +\beginOutput +i32 : I1.LocModule\\ +\emptyLine +o32 = cokernel | 1/3xDx+1/3yDy+1/3zDz+2 z2Dy-y2Dz z2Dx-x2Dz y2Dx-x2Dy |\\ +\emptyLine +\ 1\\ +o32 : D-module, quotient of D\\ +\endOutput +one can see that +$R_3[f^{-1}]$ is isomorphic to the cokernel of the {\tt LocModule} +entry which (for either localization method) is +\begin{eqnarray*} +D_3/&D_3\cdot(&x\del_x+y\del_y+z\del_z+6,\,\,\,z^2\del_y-y^2\del_z,\,\,\,x^3\del_y+y^3\del_y+y^2z\del_z+6y^2,\\ + && z^2\del_x-x^2\del_z,\,\,\,y^2\del_x-x^2\del_y,\,\,\, + x^3\del_z+y^3\del_z+z^3\del_z+6z^2). +\end{eqnarray*} +The first line of the hashtable {\tt I1} shows +that $R_3[f^{-1}]$ is generated +by $f^{-2}$ over $D_3$, while {\tt I1.LocMap} shows that the natural inclusion +$D_3/\Delta=R_3\into R_3[f^{-1}]=D_3/J^\Delta(f^s)|_{s=a^\Delta_f}$ +is given by right multiplication by $f^2$, shown as the third entry +of the hashtable {\tt I1}. +%The Bernstein polynomial {\tt I1.Bfunction} can be computed by +%<> +It is perhaps useful to point out that the fourth entry of hashtable +{\tt I2} is a relative of the Bernstein-Sato polynomial of $f$, and is +used for the computation of the so-called restriction functor (compare +with \cite{DM:O-T1,DM:W2}). +\end{example} + +\begin{remark} +Plugging in bad values $a$ for $s$ (such that $a-k$ {\em is} a Bernstein +root for some $k\in \N^+$) can have unexpected results. Consider the +case $n=1$, $f=x$. Then $J^\Delta(f^s)=D_1\cdot(s+1-\del_1x_1)$. Hence +$b^\Delta_f(s)=s+1$ and $-1$ is the unique Bernstein root. According +to Proposition \ref{prop-kashiwara}, +\[ +\left(D_1[s]/J^\Delta(f^s)\right)|_{s=a} +\cong R_1[{x_1}^{-1}]\otimes {x_1}^a\cong D_1\action {x_1}^a +\] +for all $a\in K\setminus\N$. For $a\in\N^+$, we also have +$D_1[s]/J^\Delta(f^s)|_{s=a}\cong D_1\action x^a$, but this is of +course not $R_1[{x_1}^{-1}]$ but just $R_1$. + +For $a=0$ however, $\left(D_1[s]/J^\Delta(f^s)\right)|_{s=a}$ +has $x_1$-torsion! It +equals in fact what is called the Fourier transform of +$R_1[{x_1}^{-1}]$ and fits into an exact sequence +\[ +0\to H^1_{x_1}(R_1)\to{\mathcal F}(R_1[{x_1}^{-1}])\to R_1\to 0. +\] +\end{remark} + + + +\begin{remark} +If $D_n/L$ is holonomic but has $f$-torsion, then +$(D_n/L)\otimes R_n[f^{-1}]$ +and $((D_n/L)/H^0_{(f)}(D_n/L))\otimes R_n[f^{-1}]$ are of course +isomorphic. So if we +knew how to find $M/H^0_f(M)$ for holonomic modules $M$, our localization +algorithm could be generalized to all holonomic modules. There are two +different approaches to the problem of $f$-torsion, presented in +\cite{DM:O-T1} and in \cite{DM:Ts,DM:Ts0}. The former is based on homological +methods and restriction to the diagonal +while the latter aims at direct computation of +those $P\in D_n$ for which $f^k P\in L$ for some $k$. + +There is also another direct method for localizing $M=D_n/L$ at $f$ +that works in the situation where the nonholonomic locus of $M$ is +contained in the variety of $f$ (irrespective of torsion). +It was proved by Kashiwara, that +$M[f^{-1}]$ is then holonomic, and in \cite{DM:O-T-W} an algorithm based +on integration is +given that computes a presentation for it. +\end{remark} + +%\input{5.tex} +\section{Local Cohomology Computations} +\mylabel{sec-lc} +The purpose of this section is to present algorithms +that compute +for given $i,j,k\in \N, I\subseteq R_n$ +the structure of the +local cohomology modules $H^k_I(R_n)$ and $H^i_\m(H^j_I(R_n))$, and the +invariants $\lambda_{i,j}(R_n/I)$ associated to $I$. +% +In particular, the algorithms +detect the vanishing of local +cohomology modules. +\subsection{Local Cohomology} +\mylabel{subsec-lc} +We will first describe an algorithm that takes a finite +set of polynomials $\{f_1,\ldots,f_r\}\subset R_n$ and +returns a +presentation of $H^k_I(R_n)$ where $I=R_n\cdot(f_1,\ldots,f_r)$. In particular, +if $H^k_I(R_n)$ is zero, then the algorithm will return the zero +presentation. + +\begin{definition} +Let $\Theta^r_k$\myindex{$\Theta^r_k$} +be the set of $k$-element subsets of $\{1,\ldots,r\}$ and +for $\theta\in \Theta^r_k$ write $F_\theta$ for the product $\prod_{i\in +\theta}f_{i}$. +\end{definition} +Consider the \v Cech complex $\check C^\bullet=\check +C^\bullet(f_1,\ldots,f_r)$ associated to $f_1,\ldots,f_r$ in +$R_n$, +\begin{equation} +%% \label{cechcomplex} +0\to R_n\to \bigoplus_{\theta\in\Theta^r_1} R_n[{F_\theta}^{-1}]\to + \bigoplus_{\theta\in\Theta^r_2}R_n[{F_\theta}^{-1}] + \to\cdots\to R_n[{(f_1\cdots f_r)}^{-1}]\to 0. +\end{equation} +Its $k$-th cohomology group is +$H^k_I(R_n)$. +The map +\begin{equation} +\label{cechmap} +M_k:\left(\check C^k=\bigoplus\limits_{\theta\in\Theta^r_k} + R_n[{F_\theta}^{-1}]\right)\to +\left(\bigoplus\limits_{\theta'\in\Theta^r_{k+1}} + R_n[{F_{\theta'}}^{-1}]=\check C^{k+1} \right) +\end{equation} + is the sum of maps +\begin{equation} +\label{cechmap-parts} +R_n[{(f_{i_1}\cdots f_{i_k})}^{-1}]\to R_n[{(f_{j_1}\dotsb +f_{j_{k+1}})}^{-1}] +\end{equation} +which are zero if $\{i_1,\ldots,i_k\}\not\subseteq +\{j_1,\ldots,j_{k+1}\}$, or send $\frac{1}{1}$ to +$\frac{1}{1}$ (up to sign). +With $D_n/\Delta\cong R_n$, identify +$R_n[{(f_{i_1}\cdots f_{i_k})}^{-1}]$ with +$D_n/J^\Delta((f_{i_1}\cdots f_{i_k})^s)|_{s=a}$ and +$R_n[{(f_{j_1}\cdots f_{j_{k+1}})}^{-1}]$ with +$D_n/J^\Delta((f_{j_1}\cdots f_{j_{k+1}})^s)|_{s=a'}$ where +$a,a'$ are sufficiently small integers. By +Proposition \ref{prop-kashiwara} we may assume that $a=a'\le 0$. Then the map +(\ref{cechmap-parts}) is in the nonzero case multiplication from the right by +$(f_l)^{-a}$ where $l=\{j_1,\ldots,j_{k+1}\}\backslash \{i_1,\ldots,i_k\}$, +again up to sign. For example, consider the inclusion +\[ +D_2/D_2\cdot(\del_xx,\del_y)=R_2[x^{-1}]\into +R_2[(xy)^{-1}]=D_2/D_2\cdot (\del_xx, +\del_yy). +\] +Since $\frac{1}{x} +=\frac{y}{xy}$, the inclusion on the level of $D_2$-modules +maps $P+\ann(x^{-1})$ to $Py+\ann((xy)^{-1})$. + +It follows that the matrix representing the map $\check C^k\to \check +C^{k+1}$ in +terms of $D_n$-modules is very easy to write down once the annihilator +ideals and Bernstein polynomials for all $k$- and $(k+1)$-fold products +of the $f_i$ are known: the entries are 0 or $\pm f_l^{-a}$ where +$f_l$ is the new factor. These considerations give the following + +\begin{alg}[Local cohomology\index{local cohomology!algorithm for}]~ + +\mylabel{alg-lc} + +\noindent {\sc Input}: $f_1,\ldots,f_r\in R_n; k\in \N$. + +\noindent {\sc Output}: $H_I^k(R_n)$ in terms of generators and relations as finitely +generated $D_n$-module where $I=R_n\cdot(f_1,\ldots,f_r)$. +\begin{enumerate} +\item Compute the annihilator ideal $J^\Delta((F_\theta)^s)$ +and the Bernstein +polynomial $b^\Delta_{F_\theta}(s)$ for all $(k-1)$-, $k$- and $(k+1)$-fold +products $F_\theta$ of +${f_1},\ldots,{f_r}$ following Algorithms \ref{alg-ann-fs} and \ref{alg-b-poly-L} (so +$\theta$ runs through $\Theta^r_{k-1}\cup \Theta^r_k\cup \Theta^r_{k+1}$). + +\item Compute the stable integral exponents $a^\Delta_{F_\theta}$, + let $a$ +be their minimum +and replace $s$ by $a$ in all the annihilator ideals. + +\item Compute the two matrices $M_{k-1},M_k$ representing the +$D_n$-linear maps +$\check C^{k-1}\to \check C^k$ and $\check C^k\to \check +C^{k+1}$ as explained above. + +\item Compute a Gr\"obner basis $G$ for the kernel of the composition +\[ +\bigoplus_{\theta\in\Theta_k^r}D_n\onto \bigoplus_{\theta\in\Theta^r_k} +D_n/J^\Delta({F_\theta}^s)|_{s=a}\stackrel{M_k}{\longrightarrow} +\bigoplus_{\theta'\in +\Theta^r_{k+1}}D_n/J^\Delta({F_{\theta'}}^s)|_{s=a}. +\] + +\item Compute a Gr\"obner basis $G_0$ for the preimage +in $\bigoplus_{\theta\in\Theta_k^r}D_n$ of the module +\[ +\im(M_{k-1}) +\subseteq \bigoplus_{\theta\in\Theta^r_k} +D_n/J^\Delta((F_\theta)^s)|_{s=a}\leftarrow\hskip-1.7ex\leftarrow \bigoplus_{\theta\in\Theta_k^r}D_n +\] +under the indicated projection. +\item Compute the remainders of all elements of $G$ with +respect to $G_0$. + +\item Return these remainders and $G_0$. +\end{enumerate} +End. +\end{alg} +The nonzero elements of $G$ generate the quotient $G/G_0\cong +H^k_I(R_n)$ so that in particular +$H^k_I(R_n)=0$ if and only if all returned remainders are zero. + +\begin{example} +\mylabel{ex-minors} +Let $I$ be the ideal in $R_6=K[x,y,z,u,v,w]$ that is generated by the +$2\times 2$ minors $f,g,h$ of the matrix +$\left(\begin{array}{ccc}x&y&z\\u&v&w\end{array}\right)$. +Then $H_I^i(R_6)=0$ for $i<2$ and +$H^2_I(R_6)\ne 0$ because $I$ is a height 2 prime, + and $H^i_I(R_6)=0$ for $i>3$ +because $I$ is +3-generated, so the only open case is $H^3_I(R_6)$. This module + in +fact does +not vanish, and our algorithm provides a proof of this +fact by direct calculation. The \Mtwo commands are as follows. +\beginOutput +i33 : D= QQ[x,y,z,u,v,w,Dx,Dy,Dz,Du,Dv,Dw, WeylAlgebra =>\\ +\ \{x=>Dx, y=>Dy, z=>Dz, u=>Du, v=>Dv, w=>Dw\}];\\ +\endOutput +\beginOutput +i34 : Delta=ideal(Dx,Dy,Dz,Du,Dv,Dw);\\ +\emptyLine +o34 : Ideal of D\\ +\endOutput +\beginOutput +i35 : R=D^1/Delta;\\ +\endOutput +\beginOutput +i36 : f=x*v-u*y;\\ +\endOutput +\beginOutput +i37 : g=x*w-u*z;\\ +\endOutput +\beginOutput +i38 : h=y*w-v*z;\\ +\endOutput +These commands define the relevant rings and polynomials. The +following three +compute the localization of $R_6$ at $f$: +\beginOutput +i39 : Rf=DlocalizeAll(R,f,Strategy => Oaku)\\ +\emptyLine +o39 = HashTable\{annFS => ideal (Dw, Dz, x*Du + y*Dv, y*Dy - u*Du, x*Dy $\cdot\cdot\cdot$\\ +\ Bfunction => (\$s + 1)(\$s + 2)\\ +\ Boperator => - Dy*Du + Dx*Dv\\ +\ GeneratorPower => -2\\ +\ LocMap => | y2u2-2xyuv+x2v2 |\\ +\ LocModule => cokernel | Dw Dz xDu+yDv yDy-uDu xDy+uDv $\cdot\cdot\cdot$\\ +\emptyLine +o39 : HashTable\\ +\endOutput +of $R_6[f^{-1}]$ at +$g$: +\beginOutput +i40 : Rfg=DlocalizeAll(Rf.LocModule,g, Strategy => Oaku)\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o40 = HashTable\{annFS => ideal (Dz*Dv - Dy*Dw, x*Du + y*Dv + z*Dw, z*D $\cdot\cdot\cdot$\\ +\ Bfunction => (\$s + 1)(\$s)\\ +\ Boperator => - Dz*Du + Dx*Dw\\ +\ GeneratorPower => -1\\ +\ LocMap => | -zu+xw |\\ +\ LocModule => cokernel | DzDv-DyDw xDu+yDv+zDw zDz-uDu- $\cdot\cdot\cdot$\\ +\emptyLine +o40 : HashTable\\ +\endOutput +and of $R_6[(fg)^{-1}]$ at $h$: +\beginOutput +i41 : Rfgh=DlocalizeAll(Rfg.LocModule,h, Strategy => Oaku)\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o41 = HashTable\{annFS => ideal (x*Du + y*Dv + z*Dw, z*Dz - u*Du - v*Dv $\cdot\cdot\cdot$\\ +\ Bfunction => (\$s - 1)(\$s + 1)\\ +\ Boperator => - Dz*Dv + Dy*Dw\\ +\ GeneratorPower => -1\\ +\ LocMap => | -zv+yw |\\ +\ LocModule => cokernel | xDu+yDv+zDw zDz-uDu-vDv-2 yDy- $\cdot\cdot\cdot$\\ +\emptyLine +o41 : HashTable\\ +\endOutput +From the output of these commands +one sees that $R_6[(fgh)^{-1}]$ is generated by +${1}/{f^2gh}$. This follows from considering the stable integral exponents +of the three localization procedures, +encoded in the hashtable entry stored under the key {\tt GeneratorPower}: +for example, +\beginOutput +i42 : Rf.GeneratorPower\\ +\emptyLine +o42 = -2\\ +\endOutput +shows that the generator for $R_6[f^{-1}]$ is $f^{-2}$. +Now we compute the annihilator of $H^3_I(R_6)$. +From the \v Cech complex it follows that + $H^3_I(R_6)$ is the quotient of the output of {\tt Rfgh.LocModule} + (isomorphic to $R_6[(fgh)^{-1}]$) +by the submodules generated by $f^2$, $g$ and $h$. (These submodules + represent $R_6[(gh)^{-1}]$, $R_6[(fh)^{-1}]$ and $R_6[(fg)^{-1}]$ + respectively.) +\beginOutput +i43 : Jfgh=ideal relations Rfgh.LocModule;\\ +\emptyLine +o43 : Ideal of D\\ +\endOutput +\beginOutput +i44 : JH3=Jfgh+ideal(f^2,g,h);\\ +\emptyLine +o44 : Ideal of D\\ +\endOutput +\beginOutput +i45 : JH3gb=gb JH3\\ +\emptyLine +o45 = | w z uDu+vDv+wDw+4 xDu+yDv+zDw yDy-uDu-wDw-1 xDy+uDv uDx+vDy+wD $\cdot\cdot\cdot$\\ +\emptyLine +o45 : GroebnerBasis\\ +\endOutput +So {\tt JH3} is the ideal of $D_3$ generated by +\begin{eqnarray*} +&w,\,\,\, z,\,\,\, u\del_u+v\del_v+w\del_w+4,\,\,\, +x\del_u+y\del_v+z\del_w,\,\, \, +y\del_y-u\del_u-w\del_w-1,&\\ +&x\del_y+u\del_v,\,\,\, + u\del_x+v\del_y+w\del_z,\,\,\, y\del_x+v\del_u,\,\,\, +x\del_x-v\del_v-w\del_w-1,&\\ & v^2,\,\,\, uv,\,\, yv,\,\,\, +u^2,\,\,\, yu+xv,\,\, \, + xu,\,\,\, y^2,\,\, \,xy,&\\ &x^2,\,\,\, xv\del_v+2x,\,\,\, +v\del_y\del_u+w\del_z\del_u-v\del_x\del_v-w\del_x\del_w-3\del_x& +\end{eqnarray*} +which form a Gr\"obner basis. +This proves that $H^3_I(R)\not =0$, because $1$ is not in the +Gr\"obner basis of {\tt JH3}. +(There are also algebraic and topological proofs to this account. +Due to Hochster, and Bruns and +Schw\"anzl, they are quite +ingenious and work only in rather special situations.) + + +From our output one can see that $H^3_I(R_6)$ is +$(x,y,z,u,v,w)$-torsion as {\tt JH3} contains $(x,y,z,u,v,w)^2$. +The following sequence of commands defines a procedure {\tt testmTorsion} +which as the name suggests tests a module $D_n/L$ for being $\m$-torsion. +We first replace the generators of $L$ with a Gr\"obner basis. +Then we pick the elements of the Gr\"obner basis not using any $\del_i$. +If now the left over polynomials define an ideal of dimension $0$ in +$R_n$, the ideal was $\m$-torsion and otherwise not. +\beginOutput +i46 : testmTorsion = method();\\ +\endOutput +\beginOutput +i47 : testmTorsion Ideal := (L) -> (\\ +\ LL = ideal generators gb L;\\ +\ n = numgens (ring (LL)) // 2;\\ +\ LLL = ideal select(first entries gens LL, f->(\\ +\ l = apply(listForm f, t->drop(t#0,n));\\ +\ all(l, t->t==toList(n:0)) \\ +\ ));\\ +\ if dim inw(LLL,toList(apply(1..2*n,t -> 1))) == n\\ +\ then true\\ +\ else false);\\ +\endOutput +If we apply {\tt testmTorsion} to {\tt JH3} we obtain +\beginOutput +i48 : testmTorsion(JH3)\\ +\emptyLine +o48 = true\\ +\endOutput +Further inspection shows that the ideal +{\tt JH3} is in fact the annihilator of the fraction +${f}/({wzx^2y^2u^2v^2})$ in +$R_6[(xyzuvw)^{-1}]/R_6\cong +D_6/D_6\cdot(x,y,z,u,v,w)$, and that the fraction +generates $D_6/D_6\cdot(x_1,\dots,x_6)$. +Since $D_6/D_6\cdot(x_1,\dots,x_6)$ is +isomorphic to +$E_{R_6}(R_6/R_6\cdot(x_1,\dots,x_6))$, the injective hull of +$R_6/R_6\cdot(x_1,\dots,x_6)=K$ in +the category +of $R_6$-modules, we conclude that +$H^3_I(R_6)\cong E_{R_6}(K)$. (In the next subsection we will display +a way to use \Mtwo to find the length of an $\m$-torsion module.) + + + +In contrast, let $I$ be defined as generated by the three +minors, but this time over a field of finite characteristic. Then + $H^3_I(R_6)$ is +zero because Peskine and Szpiro proved using the Frobenius functor +\cite{DM:P-S} that $R_6/I$ +Cohen-Macaulay implies that $H^k_I(R_6)$ is nonzero only if $k=\codim(I)$. + +Also opposite to the above example, but in any characteristic, is the +following calculation. Let $I$ be the ideal in $K[x,y,z,w]$ +describing the twisted cubic: $I=R_4\cdot (f,g,h)$ with $f=xz-y^2$, +$g=yw-z^2$, +$h=xw-yz$. +The projective variety $V_2$ defined by $I$ is isomorphic to the +projective +line. It is of interest to determine whether $V_2$ and other Veronese +embeddings of the projective line are complete +intersections. The set-theoretic complete intersection property can +occasionally be ruled out with local cohomology techniques: if $V$ is +of codimension $c$ in the affine variety $X$ and +$H^{c+k}_{I(V)}(O(X))\not =0$ for any positive $k$ then $V$ cannot be +a set-theoretic complete intersection. +In the case of the twisted cubic, it turns out hat $H^3_I(R_4)=0$ as +can be seen from the following computation: +\beginOutput +i49 : D=QQ[x,y,z,w,Dx,Dy,Dz,Dw,WeylAlgebra => \{x=>Dx, y=>Dy, z=>Dz,\\ +\ w=>Dw\}];\\ +\endOutput +\beginOutput +i50 : f=y^2-x*z;\\ +\endOutput +\beginOutput +i51 : g=z^2-y*w;\\ +\endOutput +\beginOutput +i52 : h=x*w-y*z;\\ +\endOutput +\beginOutput +i53 : Delta=ideal(Dx,Dy,Dz,Dw);\\ +\emptyLine +o53 : Ideal of D\\ +\endOutput +\beginOutput +i54 : R=D^1/Delta;\\ +\endOutput +\beginOutput +i55 : Rf=DlocalizeAll(R,f,Strategy => Oaku) \\ +\emptyLine +\ 1 $\cdot\cdot\cdot$\\ +o55 = HashTable\{annFS => ideal (Dw, x*Dy + 2y*Dz, y*Dx + -*z*Dy, x*Dx $\cdot\cdot\cdot$\\ +\ 2 $\cdot\cdot\cdot$\\ +\ 3\\ +\ Bfunction => (\$s + -)(\$s + 1)\\ +\ 2\\ +\ 1 2\\ +\ Boperator => -*Dy - Dx*Dz\\ +\ 4\\ +\ GeneratorPower => -1\\ +\ LocMap => | y2-xz |\\ +\ LocModule => cokernel | Dw xDy+2yDz yDx+1/2zDy xDx-zDz $\cdot\cdot\cdot$\\ +\emptyLine +o55 : HashTable\\ +\endOutput + +\beginOutput +i56 : Rfg=DlocalizeAll(Rf.LocModule,g, Strategy => Oaku);\\ +\endOutput + +\beginOutput +i57 : Rfgh=DlocalizeAll(Rfg.LocModule,h, Strategy => Oaku);\\ +\endOutput + +\beginOutput +i58 : Ifgh=ideal relations Rfgh.LocModule;\\ +\emptyLine +o58 : Ideal of D\\ +\endOutput +\beginOutput +i59 : IH3=Ifgh+ideal(f,g,h);\\ +\emptyLine +o59 : Ideal of D\\ +\endOutput +\beginOutput +i60 : IH3gb=gb IH3\\ +\emptyLine +o60 = | 1 |\\ +\emptyLine +o60 : GroebnerBasis\\ +\endOutput +It follows that we cannot conclude from local cohomological +considerations that $V_2$ is not a set-theoretic complete +intersection. This is not an accident but typical, as the second +vanishing theorem +of Hartshorne, Speiser, Huneke and Lyubeznik shows +\cite{DM:CDAV,DM:H-Sp,DM:Hu-L}: if a homogeneous ideal $I\subseteq R_n$ +describes an geometrically connected projective variety of positive +dimension then $H^{n-1}_I(R_n)=H^{n}_I (R_n)=0$. +\end{example} + + +\subsection{Iterated Local Cohomology} +\mylabel{subsec-lclc} + +Recall that $\m=R_n\cdot(x_1,\ldots,x_n)$. +As a second application of Gr\"ob\-ner basis computations over the +Weyl algebra we +show now how to compute the $\m$-torsion modules $H^i_\m (H^j_I(R_n))$. +Note that we cannot apply Lemma \ref{lem-malgrange} to $D_n/L=H^j_I(R_n)$ +since $H^j_I(R_n)$ may well +contain some torsion. + +$\check C^j(R_n;f_1,\ldots,f_r)$ denotes the $j$-th +module in the +\v Cech complex to $R_n$ and $\{f_1,\ldots,f_r\}$. +Let $\check C^{\bullet,\bullet}$ be the double complex + +\[ +\check C^{i,j}=\check C^i(R_n;x_1,\ldots,x_n)\otimes_{R_n} \check + C^j(R_n;f_1,\ldots,f_r), +\] +with +vertical maps $\phi^{\bullet,\bullet}$ induced by the identity on the +first factor and the +usual \v Cech maps on the second, and horizontal maps +$\xi^{\bullet,\bullet} $ induced +by the \v Cech maps on the first factor and the identity on the +second. +Now $\check C^{i,j}$ is a direct sum of modules $R_n[g^{-1}]$ where +$g=x_{\alpha_1}\cdots x_{\alpha_i}\cdot +f_{\beta_1}\cdots f_{\beta_j}$. So the whole double complex +can be rewritten in terms of $D_n$-modules and $D_n$-linear maps using +Algorithm \ref{alg-D/L-loc-f}: +\[ +\diagram +{\,\check C^{i-1,j+1}\,}{\rto^{\,\,\xi^{i-1,j+1}}}& + \check C^{i,j+1}\rto^{\xi^{i,j+1}}& + \check C^{i+1,j+1}\\ +\check C^{i-1,j}\rto^{\xi^{i-1,j}}\uto_{\phi^{i-1,j}}& + \check C^{i,j}\rto^{\xi^{i,j}}\uto_{\phi^{i,j}}& + \check C^{i+1,j}\uto_{\phi^{i+1,j}}\\ +\check C^{i-1,j-1}\rto^{\xi^{i-1,j-1}}\uto_{\phi^{i-1,j-1}}& + \check C^{i,j-1}\rto^{\xi^{i,j-1}}\uto_{\phi^{i,j-1}}& + \check C^{i+1,j-1}\uto_{\phi^{i+1,j-1}} +\enddiagram +\] +Since $\check C^i(R_n;x_1,\ldots,x_n)$ is $R_n$-flat, the column +co\-ho\-mo\-lo\-gy of $\check C^{\bullet,\bullet}$ at $(i,j)$ is +$\check C^i(R_n;x_1,\ldots,x_n)\otimes_{R_n}H^j_I(R_n)$ and the induced horizontal maps +in the $j$-th row are +simply the maps in the \v Cech complex $\check C^\bullet(H^j_I(R_n);x_1,\ldots,x_n)$. +It follows that +the row cohomology of the column cohomology at $(i_0,j_0)$ is +$H^{i_0}_\m(H^{j_0}_I(R_n))$, the object of our interest. + +We have, denoting by $X_{\theta'}$ +in analogy to $F_\theta$ the product $\prod_{i\in +\theta'}x_i$, + the following +\begin{alg}[Iterated local cohomology]~ + +\mylabel{alg-lclc} +\myindex{local cohomology!algorithm for} +\myindex{local cohomology!iterated} +\noindent {\sc Input}: $f_1,\ldots,f_r\in R_n; i_0,j_0\in \N$. + +\noindent {\sc Output}: +$H^{i_0}_\m (H^{j_0}_I(R_n))$ in terms of generators and relations as +finitely generated $D_n$-module where $I=R_n\cdot(f_1,\ldots,f_r)$. + +\begin{enumerate} +\item For $i=i_0-1, i_0, i_0+1$ and $j=j_0-1,j_0,j_0+1$ compute the +annihilators $J^\Delta((F_\theta\cdot X_{\theta'})^s)$, Bernstein +polynomials $b^\Delta_{F_\theta\cdot X_{\theta'}}(s)$, and stable +integral exponents $a^\Delta_{F_\theta\cdot X_{\theta '}}$ +of $F_\theta\cdot +X_{\theta'}$ +where $\theta \in \Theta^r_j, \theta'\in \Theta^n_i$. + +\item Let $a$ be the minimum of all $a^\Delta_{F_\theta\cdot X_{\theta '}}$ +and replace $s$ by $a$ in all the annihilators +computed in the previous step. + +\item Compute the matrices to the $D_n$-linear maps + $\phi^{i,j}:\check C^{i,j}\to +\check C^{i,j+1}$ +and $\xi^{k,l}:\check C^{k,l}\to \check C^{k+1,l}$, for +$(i,j)\in\{(i_0,j_0),(i_0+1,j_0-1),(i_0,j_0-1),(i_0-1,j_0)\}$ and +$(k,l)\in \{(i_0,j_0),(i_0-1,j_0)\}$. +\item Compute a Gr\"obner basis $G$ for the module +\[ +D_n\cdot G=\ker(\phi^{i_0,j_0})\cap +\left[ +(\xi^{i_0,j_0})^{-1}(\im(\phi^{i_0+1,j_0-1}))\right]+\im(\phi^{i_0,j_0-1}) +\] +and a Gr\"obner basis $G_0$ for the module +\[ +D_n\cdot +G_0=\xi^{i_0-1,j_0}(\ker(\phi^{i_0-1,j_0}))+\im(\phi^{i_0,j_0-1}). +\] +\item Compute the remainders of all elements of $G$ with +respect to $G_0$. + +\item Return these remainders together with $G_0$. +\end{enumerate} +End. +\end{alg} + +Note that $(D_n\cdot G)/(D_n\cdot G_0)$ is isomorphic to +\[\frac{ + \ker\left(\frac{\displaystyle\ker(\phi^{i_0,j_0})} + {\displaystyle\im(\phi^{i_0,j_0-1})} + \stackrel{\xi^{i_0,j_0}}{\longrightarrow} + \frac{\displaystyle\ker(\phi^{i_0+1,j_0})} + {\displaystyle\im(\phi^{i_0+1,j_0-1})}\right)} + {\xi^{i_0-1,j_0}\left( + \frac{\displaystyle\ker(\phi^{i_0-1,j_0})} + {\displaystyle\im(\phi^{i_0-1,j_0-1})}\right)}\cong H^{i_0}_\m(H^{j_0}_I(R_n)). +\] +The elements of $G$ will be generators for $H^{i_0}_\m +(H^{j_0}_I(R_n))$ and +the elements of $G_0$ generate the extra relations that are not +syzygies. + +The algorithm can of course be modified to compute any iterated local +cohomology group $H^j_J(H^i_I(R_n))$ for $J\supseteq I$ by replacing +the generators $x_1,\ldots,x_n$ for $\m$ by those for $J$. Moreover, +the iteration depth can also be increased by considering +``tricomplexes'' etc.\ instead of bicomplexes. + +Again we would like to point out that with the methods of \cite{DM:O-T1} +or \cite{DM:O-T-W} one could actually compute first $H^i_I(R_n)$ and from +that $H^j_J(H^i_I(R_n))$, but probably that is quite a bit more +complex a computation. +% +\subsection{Computation of Lyubeznik Numbers} +\mylabel{subsec-lambda} +G.\ Lyubeznik proved in \cite{DM:L-Dmod} that if $K$ is a field, +$R=K[x_1,\ldots,x_n]$, +$I\subseteq R$, $\m=R\cdot (x_1,\ldots,x_n)$ +and $A=R/I$ then $\lambda_{i,j}(A)=\dim_K\soc_R H^i_\m(H^{n-j}_I(R))$ is +invariant under change of presentation of $A$. +In other words, it only +depends on $A$ and $i,j$ but not the projection $R\onto A$. +Lyubeznik proved that $H^i_\m (H^j_I(R_n))$ is in fact an injective +$\m$-torsion $R_n$-module of finite socle dimension $\lambda_{i,n-j}(A)$ +and so +isomorphic to $(E_{R_n}(K))^{\lambda_{i,n-j}(A)}$ where $E_{R_n}(K)$ is the +injective hull of $K$ over $R_n$. We +are now in a position to compute these invariants of $R_n/I$ in +characteristic zero.. + +\begin{alg}[Lyubeznik numbers\index{Lyubeznik numbers}]~ + +\mylabel{alg-lambda} +\noindent {\sc Input}: $f_1,\ldots,f_r\in R_n; i,j\in \N$. + +\noindent {\sc Output}: $\lambda_{i,n-j}(R_n/R_n\cdot(f_1,\ldots,f_r))$. + +\begin{enumerate} +\item Using Algorithm \ref{alg-lclc} find $g_1,\ldots,g_l\in {D_n}^d$ +and $h_1,\ldots,h_e\in {D_n}^d$ such that $H^i_\m(H^j_I(R_n))$ is +isomorphic to $D_n\cdot (g_1,\ldots,g_l)$ modulo $H=D_n\cdot (h_1,\ldots,h_e)$. +\item Assume that after a suitable renumeration +$g_1$ is not in $H$. If such a $g_1$ cannot be +chosen, quit. +\item Find a monomial $m\in R_n$ such that $m\cdot g_1\not\in H$ but +$x_img_1\in H$ for all $x_i$. +\item Replace $H$ by $D_nmg_1+H$ and reenter at Step 2. +\item Return $\lambda_{i,n-j}(R_n/I)$, the number of times Step 3 was +executed. +\end{enumerate} +End. +\end{alg} +The reason that this works is as follows. +We know that +$(D_n\cdot g_1+H)/H$ is $\m$-torsion (as $H^i_\m(H^j_I(R_n))$ is) +and so it is possible (with trial +and error, or a suitable syzygy computation) +to find the monomial $m$ in Step 3. +The element $mg_1 \mod H\in D_n/H$ has annihilator equal +to $\m$ over $R_n$ and therefore generates a $D_n$-module isomorphic to +$D_n/D_n\cdot \m\cong E_{R_n}(K)$. The injection +\[ +(D_n\cdot mg_1+H)/H\into +(D_n\cdot(g_1,\ldots,g_l)+H)/H +\] +splits as map of $R_n$-modules because $E_{R_n}(K)$ is +injective and so the cokernel +$D_n\cdot (g_1,\ldots,g_l)/D_n\cdot (mg_1,h_1,\ldots,h_e)$ is isomorphic to +$(E_{R_n}(K))^{\lambda_{i,n-j}(A)-1}$. + +Reduction of the $g_i$ with respect to a Gr\"obner basis of the new +relation module and repetition will lead to +the determination of $\lambda_{i,n-j}(A)$. +% + +Assume that $D_n/L$ is an $\m$-torsion module. For example, we could +have $D_n/L\cong H^i_\m(H^j_I(R_n))$. +Here is a procedure that finds by trial and error +the monomial socle element $m$ of Step +3 in Algorithm \ref{alg-lclc}. +\beginOutput +i61 : findSocle = method();\\ +\endOutput +\beginOutput +i62 : findSocle(Ideal, RingElement):= (L,P) -> (\\ +\ createDpairs(ring(L));\\ +\ v=(ring L).dpairVars#0;\\ +\ myflag = true;\\ +\ while myflag do (\\ +\ w = apply(v,temp -> temp*P {\char`\%} L);\\ +\ if all(w,temp -> temp == 0) then myflag = false\\ +\ else (\\ +\ p = position(w, temp -> temp != 0);\\ +\ P = v#p * P;)\\ +\ );\\ +\ P);\\ +\endOutput +For example, if we want to apply this socle search to the ideal +{\tt JH3} describing $H^3_I(R_6)$ of Example \ref{ex-minors} we do +\beginOutput +i63 : D = ring JH3\\ +\emptyLine +o63 = D\\ +\emptyLine +o63 : PolynomialRing\\ +\endOutput +(as {\tt D} was most recently the differential operators on $\Q[x,y,z,w]$) +\beginOutput +i64 : findSocle(JH3,1_D)\\ +\emptyLine +o64 = x*v\\ +\emptyLine +o64 : D\\ +\endOutput +One can then repeat the socle search and kill the newly found element +as suggested in the explanation above: +\beginOutput +i65 : findLength = method();\\ +\endOutput +\beginOutput +i66 : findLength Ideal := (I) -> ( \\ +\ l = 0;\\ +\ while I != ideal 1_(ring I) do (\\ +\ l = l + 1;\\ +\ s = findSocle(I,1_(ring I));\\ +\ I = I + ideal s;);\\ +\ l);\\ +\endOutput +Applied to {\tt JH3} of the previous subsection this yields +\beginOutput +i67 : findLength JH3\\ +\emptyLine +o67 = 1\\ +\endOutput +and hence {\tt JH3} does indeed describe a module isomorphic to $E_{R_6}(K)$. +\nocite{DM:W1} + +%\input{6.tex} +\section{Implementation, Examples, Questions} +\mylabel{sec-ausblick} +\subsection{Implementations and Optimizing} +The Algorithms \ref{alg-ann-fs}, \ref{alg-b-poly-L} and \ref{alg-D/L-loc-f} +have first been implemented by +T.\ Oaku + and N.\ Takayama +using the package Kan \cite{DM:T} which +is a postscript language for computations in the Weyl algebra and in +polynomial rings. +In \Mtwo Algorithms \ref{alg-ann-fs}, +\ref{alg-b-poly-L} and \ref{alg-D/L-loc-f} as well as Algorithm +\ref{alg-lc} +have been implemented by A.~Leykin, M.~Stillman and H.~Tsai. They additionally +implemented a wealth of $D$-module routines that +relate to topics which we cannot all cover in this chapter. These include +homomorphisms between holonomic modules and extension functors, +restriction functors to linear subspaces, integration (de Rham) +functors to quotient spaces and others. For further theoretical +information +the reader is referred to \cite{DM:O-T1,DM:O-T2,DM:O-T-T,DM:SST,DM:T-W,DM:W2,DM:W4,DM:W3}. + +\mylabel{efficiency} +Computation of Gr\"obner bases in many variables is in general a time +and space consuming enterprise. In commutative polynomial +rings the worst case performance for the number of elements in reduced +Gr\"obner bases +is doubly exponential in the number of variables and the degrees of +the generators. In the (relatively) small +Example \ref{ex-minors} above $R_6$ is of dimension 6, +so that the intermediate ring $D_{n+1}[y_1,y_2]$ contains 16 +variables. In view of these facts the following idea +has proved useful. + +The general context in which Lemma \ref{lem-malgrange} and Proposition +\ref{prop-kashiwara} were stated allows successive localization of +$R_n[(fg)^{-1}]$ +in the following way. First one computes $R_n[f^{-1}]$ according to +Algorithm \ref{alg-D/L-loc-f} as quotient $D_n/J^\Delta(f^s)|_{s=a}$, +$\Z\ni a\ll 0$. +Then $R_n[(fg)^{-1}]$ may be +computed using Algorithm +\ref{alg-D/L-loc-f} again since $R_n[(fg)^{-1}]\cong +R_n[g^{-1}]\otimes_{R_n} +D_n/J^\Delta(f^s)|_{s=a}$. (Note that all +localizations of $R_n$ are automatically $f$-torsion free for $f\in R_n$ +so that Algorithm \ref{alg-D/L-loc-f} can be used.) This process +may be iterated for products with any finite number of factors. +Of course the exponents for the various factors might be different. +This requires some care +%as the following situations illustrate. Assume +%first that $-1$ is the smallest integer root of the Bernstein The +%Bernstein polynomials +%of $f$ and $g$ (both in $R_n$) with respect to the holonomic module +%$R_n$. Assume further that $R_n[(fg)^{-1}]\cong D_n\action +%( f^{-2}g^{-1}) +%\supsetneq +%D_n\action( (fg)^{-1})$. Then $R_n[f^{-1}]\to R_n[(fg)^{-1}]$ can be written as +%$D_n/\ann(f^{-1})\to D_n/\ann(f^{-2}\cdot g^{-1})$ sending $P\in D_n$ to +%$P\cdot f\cdot g$. +% +%Suppose on the other hand that we are interested in $H^2_I(R_n)$ where +%$I=(f,g,h)$ and we know that $R_n[f^{-1}]=D_n\action +%( f^{-2})\supsetneq +%D_n\action( +%f^{-1}), R_n[g^{-1}]=D_n\action( g^{-2})$ and $R_n[(fg)^{-1}]=D_n\action( f^{-1}g^{-2})$. (In +%fact, the degree 2 part of the \v Cech complex of Example +%\ref{ex-minors} consists of such localizations.) We cannot write +%the embedding $R_n[f^{-1}]\to R_n[(fg)^{-1}]$ with the use of a +%Bernstein operator for $s=-2$ since $f^{-1}$ is not a +%generator for $R_n[f^{-1}]$. So we must +%write $R_n[(fg)^{-1}]$ as $D_n/\ann((fg)^{-2})$ and then send $P\in +%\ann(f^{-2})$ to $P\cdot g^2$. +% +%The two examples indicate how to write the \v Cech complex in terms +%of generators and relations over $D_n$ while making +% +% +when setting up the \v Cech complex. In particular one needs to make +sure that the maps +$\check C^k\to \check C^{k+1}$ can be made explicit using the $f_i$. +% -- the exponents +%used in $C^k$ have to be at least as big as those in $C^{k-1}$ (for the +%same $f_i$). +(In our Example \ref{ex-minors}, this is precisely how we proceeded +when we found {\tt Rfgh}.) +\begin{remark} +\label{remark} +One might hope that for all holonomic $fg$-torsion free +modules $M=D_n/L$ +we have (with $M\otimes R_n[g^{-1}]\cong D_n/L'$): +\begin{eqnarray} +\label{eq-ineq} +a^L_f=\min\{s\in\Z:b_f^L(s)=0\}\le \min\{s\in\Z:b_f^{L'}(s)=0\}=a^{L'}_f. +\end{eqnarray} +This hope is unfounded. Let $R_5=K[x_1,\ldots,x_5]$, +$f=x_1^2+x_2^2+x_3^2+x_4^2+x_5^2$. One may check that then +$b^\Delta_f(s)=(s+1)(s+5/2)$. Hence $R_5[f^{-1}]=D_5\action f^{-1}$, let +$L=\ker(D_5\to D_5\action f^{-1})$. Set $g=x_1$. Then +$b^\Delta_g(s)=s+1$, let $L'=\ker(D_5\to D_5\action g^{-1})$. + +Then +$b^{L'}_f(s)=(s+1)(s+2)(s+5/2)$ and $b^L_g(s)=(s+1)(s+3)$ because of +the following computations. +\beginOutput +i68 : erase symbol x; erase symbol Dx;\\ +\endOutput +These two commands essentially clear the history of the variables {\tt +x} and {\tt Dx} and make them available for future computations. +\beginOutput +i70 : D = QQ[x_1..x_5, Dx_1..Dx_5, WeylAlgebra =>\\ +\ apply(toList(1..5), i -> x_i => Dx_i)];\\ +\endOutput +\beginOutput +i71 : f = x_1^2 + x_2^2 + x_3^2 + x_4^2 +x_5^2;\\ +\endOutput +\beginOutput +i72 : g = x_1;\\ +\endOutput +\beginOutput +i73 : R = D^1/ideal(Dx_1,Dx_2,Dx_3,Dx_4,Dx_5);\\ +\endOutput +As usual, these commands defined the base ring, two polynomials and +the $D_5$-module $R_5$. Now we compute the respective localizations. +\beginOutput +i74 : Rf =DlocalizeAll(R,f,Strategy => Oaku);\\ +\endOutput +\beginOutput +i75 : Bf = Rf.Bfunction\\ +\emptyLine +\ 5\\ +o75 = (\$s + -)(\$s + 1)\\ +\ 2\\ +\emptyLine +o75 : Product\\ +\endOutput +\beginOutput +i76 : Rfg = DlocalizeAll(Rf.LocModule,g,Strategy => Oaku);\\ +\endOutput +\beginOutput +i77 : Bfg = Rfg.Bfunction\\ +\emptyLine +o77 = (\$s + 1)(\$s + 3)\\ +\emptyLine +o77 : Product\\ +\endOutput +\beginOutput +i78 : Rg = DlocalizeAll(R,g,Strategy => Oaku);\\ +\endOutput +\beginOutput +i79 : Bg = Rg.Bfunction\\ +\emptyLine +o79 = (\$s + 1)\\ +\emptyLine +o79 : Product\\ +\endOutput +\beginOutput +i80 : Rgf = DlocalizeAll(Rg.LocModule,f,Strategy => Oaku);\\ +\endOutput +\beginOutput +i81 : Bgf = Rgf.Bfunction\\ +\emptyLine +\ 5\\ +o81 = (\$s + 2)(\$s + 1)(\$s + -)\\ +\ 2\\ +\emptyLine +o81 : Product\\ +\endOutput + +%\begin{verbatim} +%i20 : D = QQ[x_1..x_5, Dx_1..Dx_5, WeylAlgebra => +% apply(toList(1..5), i -> x_i => Dx_i)] +%i21 : f = x_1^2 + x_2^2 + x_3^2 + x_4^2 +x_5^2 +%i22 : g = x_1 +%i23 : R = D^1/ideal(Dx_1,Dx_2,Dx_3,Dx_4,Dx_5) +%i24 : M1 =DlocalizeAll(R,f,Strategy => Oaku) +%i25 : M12 = DlocalizeAll(M1.LocModule,g,Strategy => Oaku) +%i26 : M2 = DlocalizeAll(R,g,Strategy => Oaku) +%i27 : M21 = DlocalizeAll(M2.LocModule,f,Strategy => Oaku) +%\end{verbatim} +The output shows +that $R_n[(fg)^{-1}]$ is generated by $f^{-2}g^{-1}$ or $f^{-1}g^{-3}$ but not +by $f^{-1}g^{-2}$ and in particular not by $f^{-1}g^{-1}$. +This can be seen from the various Bernstein-Sato polynomials: as for +example the smallest integral root of {\tt Bf} is $-1$ and that of +{\tt Bfg} is $-3$, $R_3[f^{-1}]$ is generated by $f^{-1}$ and +$R_3[(fg)^{-1}]$ by $f^{-1}g^{-3}$. +This example not only disproves the above inequality (\ref{eq-ineq}) +but also shows +the inequality to be wrong if $\Z$ is replaced by $\R$ (as +$-3<\min(-5/2,-1)$). +\end{remark} + + +Nonetheless, localizing $R_n[(fg)^{-1}]$ as $(R_n[f^{-1}])[g^{-1}]$ is +heuristically advantageous, apparently for two reasons. For +one, it allows the exponents of the various factors to be distinct +which is useful for the subsequent cohomology computation: it helps +to keep the degrees of the maps small. So in +Example \ref{ex-minors} we can write $R_6[(fg)^{-1}]$ as $D_6\action +(f^{-1} g^{-2})$ instead +of $D_6\action (fg)^{-2}$. +Secondly, +since the computation of Gr\"obner bases is potentially +doubly exponential it +seems to be advantageous to break a big problem (localization at a +product) into several ``easy'' problems (successive localization). + +An interesting case of this behavior is our Example \ref{ex-minors}. If we +compute $R_n[(fgh)^{-1}]$ as $((R_n[f^{-1}])[g^{-1}])[h^{-1}]$, +the calculation uses +approximately 6MB and lasts a few seconds +using \Mtwo. If one tries to localize $R_n$ at the +product of the three generators at once, \Mtwo +runs out of memory on all machines the author has +tried this computation on. +\subsection{Projects for the Future} +This is a list of theoretical and implementational questions that the +author finds +important and interesting. +\subsubsection{Prime Characteristic} In \cite{DM:L-Fmod}, +G.~Lyubeznik gave an +algorithm for deciding whether or not +$H^i_I(R)=0$ for any given $I\subseteq R=K[x_1,\ldots,x_n]$ where +$K$ is a computable field of positive characteristic. His algorithm is built on +entirely different methods than the ones used in this chapter +and relies on the Frobenius functor. The +implementation of this algorithm would be quite worthwhile. +\subsubsection{Ambient Spaces Different from ${\mathbb A}^n_K$} +\mylabel{singular-spaces} +If $A$ equals $K[x_1,\ldots,x_n]$, +$I\subseteq A$, $X=\spec (A)$ and $Y=\spec(A/I)$, +knowledge of $H^i_I(A)$ for all $i\in \N$ answers of course the +question about the local cohomological dimension of $Y$ in $X$. +If $W\subseteq X$ is a smooth variety containing $Y$ +then Algorithm \ref{alg-lc} for the computation of $H^i_I(A)$ also +leads to a determination of the local cohomological dimension of $Y$ +in $W$. Namely, if $J$ stands for the +defining ideal of $W$ in $X$ so that $R=A/J$ is the affine +coordinate ring of $W$ and if we set $c=\height(J)$, then it can be +shown that +$H^{i-c}_{I}(R)=\hom_A(R,H^i_I(A))$ for all $i\in\N$. +As $H^i_I(A)$ is +$I$-torsion (and hence $J$-torsion), $\hom_A(R,H^i_I(A))$ is zero if +and only if +$H^i_I(A)=0$. It follows that the local cohomological dimension of $Y$ +in $W$ equals $\cd(A,I)-c$ and in fact $\{i\in \N:H^i_I(A)\not =0\}=\{i\in +\N:H^{i-c}_I(R)\not =0\}$. + +If however $W=\spec(R)$ is not smooth, no algorithms for the computation of +either $H^i_I(R)$ or $\cd(R,I)$ are known, irrespective of the +characteristic of the base field. It would be very interesting to have +even partial ideas for computations in that case. +\subsubsection{De Rham Cohomology} In \cite{DM:O-T1,DM:W2} algorithms are given + to compute de Rham (in this case equal to singular) +cohomology of complements of complex affine +hypersurfaces and more general varieties. In \cite{DM:W3} an algorithm +is given to compute the multiplicative (cup product) structure, and in +\cite{DM:W4} the computation of the de Rham cohomology of open and +closed sets in projective +space is explained. Some of these +algorithms have been implemented while others are still waiting. + +For +example, de Rham cohomology of complements of hypersurfaces, and +partially the cup product routine, are implemented. +\begin{example} +Let $f=x^3+y^3+z^3$ in $R_3$. One can compute with \Mtwo +the de Rham cohomology of the complement of $\var(f)$, and +it turns out that the +cohomology in degrees 0 and 1 is 1-dimensional, in degrees 3 and 4 +2-dimensional and zero otherwise -- here is the input: +\beginOutput +i82 : erase symbol x;\\ +\endOutput +Once {\tt x} gets used as a subscripted +variable, it's hard to use it as a nonsubscripted variable. So let's just +erase it. +\beginOutput +i83 : R = QQ[x,y,z];\\ +\endOutput +\beginOutput +i84 : f=x^3+y^3+z^3;\\ +\endOutput +\beginOutput +i85 : H=deRhamAll(f);\\ +\endOutput +%\begin{verbatim} +%i28 ; R = QQ[x,y,z] +%i29 ; f=x^3+y^3+z^3 +%i30 : deRhamAll(f) +%\end{verbatim} +{\tt H} is a hashtable with the entries +{\tt Bfunction}, +{\tt LocalizeMap}, +{\tt VResolution}, +{\tt TransferCycles}, +{\tt PreCycles}, +{\tt OmegaRes} and +{\tt CohomologyGroups}. For example, +we have +\beginOutput +i86 : H.CohomologyGroups\\ +\emptyLine +\ 1\\ +o86 = HashTable\{0 => QQ \}\\ +\ 1\\ +\ 1 => QQ\\ +\ 2\\ +\ 2 => QQ\\ +\ 2\\ +\ 3 => QQ\\ +\emptyLine +o86 : HashTable\\ +\endOutput +showing that the dimensions are as claimed above. One can also extract +information on the generator of $R_3[f^{-1}]$ used to represent the +cohomology classes by +\beginOutput +i87 : H.LocalizeMap\\ +\emptyLine +o87 = | \$x_1^6+2\$x_1^3\$x_2^3+\$x_2^6+2\$x_1^3\$x_3^3+2\$x_2^3\$x_3^3+\$x_3^6 |\\ +\emptyLine +o87 : Matrix\\ +\endOutput +which proves that the generator in question is $f^{-2}$. The cohomology +classes that \Mtwo computes are differential forms: +\beginOutput +i88 : H.TransferCycles\\ +\emptyLine +o88 = HashTable\{0 => | -1/12\$x_1^4\$x_2^3\$D_1-1/3\$x_1\$x_2^6\$D_1-1/12\$x_ $\cdot\cdot\cdot$\\ +\ 1 => | 2/3\$x_1^5+2/3\$x_1^2\$x_2^3+2/3\$x_1^2\$x_3^3 |\\ +\ | -2/3\$x_1^3\$x_2^2-2/3\$x_2^5-2/3\$x_2^2\$x_3^3 |\\ +\ | 2/3\$x_1^3\$x_3^2+2/3\$x_2^3\$x_3^2+2/3\$x_3^5 |\\ +\ 2 => | 48\$x_1\$x_2\$x_3^2 600\$x_3^4 |\\ +\ | 48\$x_1\$x_2^2\$x_3 600\$x_2\$x_3^3 |\\ +\ | 48\$x_1^2\$x_2\$x_3 600\$x_1\$x_3^3 |\\ +\ 3 => | -\$x_1\$x_2\$x_3 -\$x_3^3 |\\ +\emptyLine +o88 : HashTable\\ +\endOutput +So, for example, the left column of the three rows that correspond to +$H^2_{{\rm dR}}(\C^3\setminus\var(f),\C)$ represent the form +$({xyz(48zdxdy+48ydzdx+48xdydz)})/{f^2}$. +If we apply the above elements of $D_3$ to $f^{-2}$ and equip the +results with appropriate differentials one arrives (after dropping +unnecessary integral factors) at +the results displayed in the table in Figure \ref{Figure}. +\begin{figure} +\[ +\def\sp#1{\vcenter{\vskip 2pt \hbox{$#1$}\vskip 2pt}} +\begin{array}{|c|c|c|} +\hline +\text{Group}&\text{Dimension}&\text{Generators}\\ +\hline +\hline +H^0_{{\rm dR}}&1&\sp{e:=\frac{\displaystyle f^2}{\displaystyle f^2}}\\ +\hline +H^1_{{\rm dR}}&1&\sp{o:=\frac{\displaystyle (x^2dx-y^2dy+z^2dz)f}{\displaystyle f^2}}\\ +\hline +H^2_{{\rm dR}}&2&\sp{t_1:=\frac{\displaystyle xyz(zdxdy+ydzdx+xdydz)}{\displaystyle f^2}}\\ + & &\sp{t_2:=\frac{\displaystyle (zdxdy+ydzdx+xdydz)z^3}{\displaystyle f^2}}\\ +\hline +H^3_{{\rm dR}}&2&\sp{d_1:=\frac{\displaystyle xyzdxdydz}{\displaystyle f^2}}\\ + & &\sp{d_2:=\frac{\displaystyle z^3dxdydz}{\displaystyle f^2}}\\ +\hline +\end{array} +\] +\caption{}\label{Figure} +\end{figure} +In terms of de Rham cohomology, the cup product is given by the wedge +product of differential forms. So +from the table one reads off the cup product +relations +$o\cup t_1=d_1$, $o\cup t_2=d_2$, $o\cup +o=0$, and that $e$ operates as the identity. +\end{example} +For more involved examples, and the algorithms in \cite{DM:W4}, an +actual implementation would be necessary since paper and pen are +insufficient tools then. +\begin{remark} +The reader should be warned: if $f^{-a}$ generates $R_n[f^{-1}]$ over +$D_n$, then it is not necessarily the case that each de Rham +cohomology class of $U=\C^n\setminus\var(f)$ can be written as a form +with a pole of order at most $a$. A counterexample is given by +$f=(x^3+y^3+xy)xy$, where $H^1_{{\rm dR}}(U;\C)$ has a class that requires a +third order pole, although $-2$ is the smallest integral Bernstein root +of $f$ on $R_2$. +\end{remark} + +\subsubsection{Hom and Ext} +In \cite{DM:O-T-T,DM:Ts0,DM:T-W} algorithms are explained that compute homomorphisms +between holonomic systems. In particular, rational and polynomial +solutions can be found because, for example, a polynomial solution to the system +$\{P_1,\ldots,P_r\}\in D_n$ corresponds to an element of +$\hom_{D_n}(D_n/I,R_n)$ where $I=D_n\cdot(P_1,\ldots,P_r)$. +\begin{example} +Consider the GKZ system in 2 variables associated to the matrix +$(1,2)\in \Z^{1\times 2}$ and the parameter vector $(5)\in\C^1$. +Named after +Gelfand-Kapranov-Zelevinski \cite{DM:GKZ}, this +is the following system of +differential equations: +\begin{eqnarray*} +(x\del_x+y\del_y)\action f&=&5f,\\ +(\del_x^2-\del_y)\action f&=&0. +\end{eqnarray*} +With \Mtwo one can solve systems of this sort as follows: +\beginOutput +i89 : I = gkz(matrix\{\{1,2\}\}, \{5\})\\ +\emptyLine +\ 2\\ +o89 = ideal (D - D , x D + 2x D - 5)\\ +\ 1 2 1 1 2 2\\ +\emptyLine +o89 : Ideal of QQ [x , x , D , D , WeylAlgebra => \{x => D , x => D \}]\\ +\ 1 2 1 2 1 1 2 2\\ +\endOutput +This is a simple command to set up the GKZ-ideal associated to a +matrix and a parameter vector. The polynomial solutions are obtained +by +\beginOutput +i90 : PolySols I\\ +\emptyLine +\ 5 3 2\\ +o90 = \{x + 20x x + 60x x \}\\ +\ 1 1 2 1 2\\ +\emptyLine +o90 : List\\ +\endOutput + +This means that there is exactly one polynomial solution to the given +GKZ-system, and it is +\[ +x^5+20x^3y+60xy^2. +\] +\end{example} +The algorithm for $\hom_{D_n}(M,N)$ is implemented and +can be used to check whether two given $D$-modules are +isomorphic. +Moreover, there are algorithms (not implemented yet) +to compute the ring structure of +$\endo_D(M)$ for a given $D$-module $M$ of finite holonomic +rank which can be used to split a given holonomic module into its +direct summands. +Perhaps an adaptation of these methods can be used to construct +Jordan-H\"older sequences for holonomic $D$-modules. + +\subsubsection{Finiteness and Stratifications} +Lyubeznik pointed out in \cite{DM:L-Bpoly} the following curious +fact. +\begin{theorem} +Let $P(n,d;K)$ denote the set of polynomials of degree at most $d$ in +at most $n$ variables over the field $K$ of characteristic zero. Let +$B(n,d;K)$ denote the set of Bernstein-Sato polynomials +\[ +B(n,d;K)=\{b_f(s):f\in P(n,d;K)\}. +\] +Then $B(n,d;K)$ is finite.\qed +\end{theorem} +So $P(n,d;K)$ has a finite decomposition into strata with constant +Bernstein-Sato polynomial. +A.\ Leykin proved in \cite{DM:Ley} that this decomposition is independent +of $K$ and computable +in the sense that membership in each stratum can be tested by the +vanishing of a +finite set of algorithmically computable polynomials over $\Q$ in the +coefficients of the given polynomial in $P(n,d;K)$. In particular, +the stratification is algebraic and for each $K$ induced by base +change from $\Q$ to $K$. It makes thus sense to define $B(n,d)$ which +is the finite set of Bernstein polynomials that can occur for $f\in +P(n,d;K)$ (where $K$ is in fact irrelevant). +\begin{example} +Consider $P(2,2;K)$, the set of quadratic binary forms over $K$. With +\Mtwo, Leykin showed that there are +precisely 4 different Bernstein polynomials possible: +\def\labelitemi{$\bullet$} +\begin{itemize} +\item $b_{f}(s)=1$ +iff $f\in V_{1}=V_{1}'\setminus V_{1}''$, +where $V_{1}'=V(a_{1,1},a_{0,1},a_{0,2},a_{1,0},a_{2,0}) $, while +$V_{1}''=V(a_{0,0})$ +\item $ b_{f}(s)=s+1 $ +iff $ f\in V_{2}=(V_{2}'\setminus V_{2}'')\cup (V_{3}'\setminus V_{3}'') $, +where $ V_{2}'=V(0) $, $ V_{2}''=V(\gamma _{1}) $, +$V_{3}'=V\left( \gamma _{2},\gamma _{3},\gamma _{4}\right)$, +$V_{3}''=V\left( \gamma _{3},\gamma _{4},\gamma _{5},\gamma _{6},\gamma _{7},\gamma _{8}\right) $, +\item $ b_{f}(s)=(s+1)^{2} $ +iff $ f\in V_{4}'\setminus V_{4}'' $, +where $ V_{4}'=V(\gamma _{1}) $, +$ V_{4}''=V\left( \gamma _{2},\gamma _{3},\gamma _{4}\right) $, +\item $ b_{f}(s)=(s+1)(s+\frac{1}{2}) $ +iff $ f\in V_{5}'\setminus V_{5}'' $, +where $ V_{5}'=V\left( \gamma _{3},\gamma _{4},\gamma _{5},\gamma _{6},\gamma _{7},\gamma _{8}\right) $, +$ V_{5}''=V(a_{1,1},a_{0,1},a_{0,2},a_{1,0},a_{2,0}) $. +\end{itemize} +Here we have used the abbreviations +\begin{itemize} +\item $ \gamma_{1}= +a_{0,2}a_{1,0}^{2}-a_{0,1}a_{1,0}a_{1,1}+a_{0,0}a_{1,1}^{2}+ +a_{0,1}^{2}a_{2,0}-4a_{0,0}a_{0,2}a_{2,0}$, +\item$ \gamma _{2}=2a_{0,2}a_{1,0}-a_{0,1}a_{1,1} $, + +\item $ \gamma _{3}=a_{1,0}a_{1,1}-2a_{0,1}a_{2,0} $, + +\item $ \gamma _{4}=a_{1,1}^{2}-4a_{0,2}a_{2,0} $, + +\item $ \gamma _{5}=2a_{0,2}a_{1,0}-a_{0,1}a_{1,1} $, + +\item $ \gamma _{6}=a_{0,1}^{2}-4a_{0,0}a_{0,2} $, + +\item $ \gamma _{7}=a_{0,1}a_{1,0}-2a_{0,0}a_{1,1} $, + +\item $ \gamma _{8}=a_{1,0}^{2}-4a_{0,0}a_{2,0} $. +\end{itemize} +Similarly, Leykin shows that there are 9 possible Bernstein +polynomials for $f\in B(2,3;K)$: +\begin{eqnarray*} +B(2,3)&=&\left\{\, + (s+1)^{2}(s+\frac{2}{3})(s+\frac{4}{3}),\,\,\,(s+1)^{2}(s+\frac{1}{2}),\,\,\,(s+1),\,\,\,1,\right.\\ + & &\phantom{x}(s+1)(s+\frac{2}{3})(s+\frac{1}{3}),\,\,\,(s+1)^{2},\,\,\,(s+1)(s+\frac{1}{2}),\\ + & &\phantom{x}\left.(s+1)(s+\frac{7}{6})(s+\frac{5}{6}),\,\,\,(s+1)^{2}(s+\frac{3}{4})(s+\frac{5}{4})\right\}. +\end{eqnarray*} +\end{example} +It would be very interesting to study the nature of the stratification +in larger cases, and its restriction to hyperplane arrangements. + +A generalization of this stratification result is obtained in +\cite{DM:W5}. There it is shown that there is an algorithm to give +$P(n,d;K)$ an algebraic +stratification defined over $\Q$ +such that the algebraic de Rham cohomology groups of the +complement of $\var(f)$ do not vary on the stratum in a rather strong +sense. +Again, the study +and explicit computation of this stratification should be very +interesting. + +\subsubsection{Hodge Numbers} +If $Y$ is a projective variety in $\P^n_\C$ then algorithms outlined in \cite{DM:W4} +show how to compute the dimensions not only of the de Rham cohomology +groups of $\P^n_\C\setminus Y$ but also of $Y$ itself. +Suppose now that $Y$ is in fact a smooth projective variety. +An interesting set of invariants are the Hodge numbers, defined by +$h^{p,q}=\dim H^p(Y,\Omega^q)$, where $\Omega^q$ denotes the sheaf of +$\C$-linear differential $q$-forms with coefficients in $\OO_Y$. +At present we do not know how to +compute them. Of course there is a spectral sequence $ +H^p(Y,\Omega^q)\Rightarrow H^{p+q}_{{\rm dR}}(Y,\C)$ and we know the abutment +(or at least its dimensions), but the technique for computing the +abutment does not seem to be usable +to compute the $E^1$ term because on an affine +patch $H^p(Y,\Omega^q)$ is either zero or an infinite dimensional +vector space. + +Hodge structures and Bernstein-Sato polynomials are related as is for +example shown in \cite{DM:Varchenko}. + +\subsection{Epilogue} +In this chapter we have only touched a few highlights of the theory of +computations in $D$-modules, most of them related to homology and +topology. Despite this we hardly touched on the topics of integration +and restriction, which are the $D$-module versions of a pushforward +and pullback, \cite{DM:K2,DM:Mebkhout,DM:O-T1,DM:W2}. + +A very different aspect of $D$-modules is discussed in +\cite{DM:SST} where at the center of investigations is the combinatorics of +solutions of hypergeometric differential equations. The combinatorial +structure is used to find series solutions for the differential +equations which are polynomial in certain logarithmic functions and +power series with respect to the variables. + +Combinatorial elements can also be found in the work of Assi, Castro +and Granger, see \cite{DM:ACG1,DM:ACG2}, +on Gr\"obner fans in rings of differential +operators. An important (open) question in this direction is the +determination of the set of ideals in $D_n$ that are initial ideals +under {\em some} weight. + + + +Algorithmic $D$-module theory promises to be an active +area of research for many years to come, and to have interesting +applications to various other parts of mathematics. + + +%\begin{example} +%In the case $n=d=2$ one has clearly 2 cases of the de Rham cohomology ring +%$DR(f)$ in $P_h(n,d;K)$: +%\begin{itemize} +%\item $DR(f)=K\oplus K\cdot e$ with $e^2=0$ iff $4a_{2,0}a_{02}=a_{1,1}^2$, +%\item $DR(f)=K\oplus K\cdot e_1\oplus K\cdot e_2$ with +%$e_1^2=e_2^2=e_1e_2=0$ iff $4a_{20}a_{0,2}\not =a_{1,1}^2$. +%\end{itemize} +%\end{example} + + +% Local Variables: +% mode: latex +% mode: reftex +% tex-main-file: "chapter-wrapper.tex" +% reftex-keep-temporary-buffers: t +% reftex-use-external-file-finders: t +% reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) +% End: +\begin{thebibliography}{10} + +\bibitem{DM:AK} +A.G.\ Aleksandrov and V.L.\ Kistlerov: +\newblock Computer method in calculating $b$-functions of non-isolated + singularities. +\newblock {\em Contemp.\ Math.}, 131:319--335, 1992. + +\bibitem{DM:ACG1} +A.~Assi, F.J. Castro-Jim\'enez, and M.~Granger: +\newblock How to calculate the slopes of a $\mathcal {D}$-module.. +\newblock {\em Compositio Math.}, 104(2):107--123, 1996. + +\bibitem{DM:ACG2} +A.~Assi, F.J. Castro-Jim\'enez, and M.~Granger: +\newblock The {G}r\"obner fan of an ${A}\sb n$-module.. +\newblock {\em J.\ Pure Appl.\ Algebra}, 150(1):27--39, 2000. + +\bibitem{DM:Bernstein-notes} +J.~Bernstein: +\newblock Lecture notes on the theory of ${D}$-modules. +\newblock Unpublished. + +\bibitem{DM:B} +J.-E. Bj\"ork: +\newblock {\em Rings of Differential Operators}. +\newblock North Holland, New York, 1979. + +\bibitem{DM:Brianconetal} +J.~Brian{\c c}on, M.\ Granger, Ph.\ Maisonobe, and M.\ Miniconi: +\newblock Algorithme de calcul du polyn\^ome de {B}ernstein: cas + nond\'eg\'en\'er\'e. +\newblock {\em Ann.\ Inst.\ Fourier}, 39:553--610, 1989. + +\bibitem{DM:Br-R} +M.~Brodmann and J.~Rung: +\newblock Local cohomology and the connectedness dimension in algebraic + varieties. +\newblock {\em Comment.\ Math.\ Helvetici}, 61:481--490, 1986. + +\bibitem{DM:B-S} +M.P.\ Brodmann and R.Y.\ Sharp: +\newblock {\em Local Cohomology: an algebraic introduction with geometric + applications.}. +\newblock Cambridge Studies in Advanced Mathematics, 60. Cambridge University + Press, 1998. + +\bibitem{DM:Coutinho} +S.C.\ Coutinho: +\newblock {\em A primer of algebraic ${D}$-modules}. +\newblock London Mathematical Society Student Texts 33. Cambridge University + Press, Cambridge, 1995. + +\bibitem{DM:G-S} +R.~Garcia and C.~Sabbah: +\newblock Topological computation of local cohomology multiplicities. +\newblock {\em Coll.\ Math.}, XLIX(2-3):317--324, 1998. + +\bibitem{DM:GKZ} +I.\ Gelfand, M.\ Kapranov, and A.\ Zelevinski: +\newblock {\em Discriminants, resultants, and multidimensional determinants}. +\newblock Mathematics: Theory \& Applications. Birkh\"auser Boston, Inc., + Boston, MA, 1994. + +\bibitem{DM:Gri-Har} +P.\ Griffiths and J.\ Harris: +\newblock {\em Principles of Algebraic Geometry}. +\newblock A Wiley Interscience Publication. WILEY and Sons, 1978. + +\bibitem{DM:lc-notes} +R.\ Hartshorne: +\newblock {\em Local Cohomology. A seminar given by A.{} Grothendieck}, + volume~41 of {\em Lecture Notes in Mathematics}. +\newblock Springer Verlag, 1967. + +\bibitem{DM:CDAV} +R.~Hartshorne: +\newblock {C}ohomological {D}imension of {A}lgebraic {V}arieties. +\newblock {\em Ann.~Math.}, 88:403--450, 1968. + +\bibitem{DM:H-Sp} +R.~Hartshorne and R.~Speiser: +\newblock Local cohomological dimension in characteristic $p$. +\newblock {\em Ann.~Math.(2)}, 105:45--79, 1977. + +\bibitem{DM:DRCAV} +Robin Hartshorne: +\newblock On the {D}e {R}ham cohomology of algebraic varieties. +\newblock {\em Inst. Hautes \'Etudes Sci. Publ. Math.}, 45:5--99, 1975. + +\bibitem{DM:Hu} +C.\ Huneke: +\newblock Problems on local cohomology. +\newblock {\em Res.\ Notes Math.}, 2:93--108, 1992. + +\bibitem{DM:Hu-L} +C.~Huneke and G.~Lyubeznik: +\newblock On the vanishing of local cohomology modules. +\newblock {\em Invent.~Math.}, 102:73--93, 1990. + +\bibitem{DM:K} +M.~Kashiwara: +\newblock ${B}$-functions and holonomic systems, rationality of + ${B}$-functions.. +\newblock {\em Invent.~Math.}, 38:33--53, 1976. + +\bibitem{DM:K2} +M.~Kashiwara: +\newblock On the holonomic systems of linear partial differential equations, + {II}. +\newblock {\em Invent.~Math.}, 49:121--135, 1978. + +\bibitem{DM:Kollar} +J.~Koll\'ar: +\newblock Singularities of pairs, {\em in} {A}lgebraic {G}eometry, {S}anta + {C}ruz, 1995. +\newblock {\em Proc.\ Symp. Pure Math.\ Amer.\ Math.\ Soc.}, 62:221--287, 1997. + +\bibitem{DM:Ley} +A.\ Leykin: +\newblock Towards a definitive computation of {B}ernstein-{S}ato polynomials. +\newblock {\em {math.AG/0003155}\footnote{ The webpage {http://xxx.lanl.gov/} + is a page designed for the storage of preprints, and allows posting and + downloading free of charge.}}, 2000. + +\bibitem{DM:M2D} +A.~Leykin, M.\ Stillman, and H.~Tsai: +\newblock The ${D}$-module package for {{{\sl Macaulay~2\/}\xispace}}. +\newblock {http://www.math.umn.edu/\~{}leykin/}. + +\bibitem{Loeser} +Fran{\c{c}}ois Loeser: +\newblock Fonctions d'{I}gusa $p$-adiques, polyn\^omes de {B}ernstein, et + poly\`edres de {N}ewton. +\newblock {\em J. Reine Angew. Math.}, 412:75--96, 1990. + +\bibitem{DM:L-Dmod} +G.~Lyubeznik: +\newblock Finiteness {P}roperties of {L}ocal {C}ohomology {M}odules: an + {A}pplication of ${D}$-modules to {C}ommutative {A}lgebra. +\newblock {\em Invent.~Math.}, 113:41--55, 1993. + +\bibitem{DM:L-Fmod} +G.~Lyubeznik: +\newblock ${F}$-modules: applications to local cohomology and ${D}$-modules in + characteristic $p>0$. +\newblock {\em Journal f\"ur die Reine und Angewandte Mathematik}, 491:65--130, + 1997. + +\bibitem{DM:L-Bpoly} +G.~Lyubeznik: +\newblock On {B}ernstein-{S}ato polynomials. +\newblock {\em Proc.\ Amer.\ Math.\ Soc.}, 125(7):1941--1944, 1997. + +\bibitem{DM:Maisonobe} +Ph.\ Maisonobe: +\newblock ${D}$-modules: an overview towards effectivity, in: {E}.\ {T}ournier, + ed., {C}omputer {A}lgebra and {D}ifferential {E}quations. +\newblock {\em London Math. Soc. Lecture Note Ser., 193, Cambridge Univ.\ + Press, Cambridge}, pages 21--55, 1994. + +\bibitem{DM:M} +B.~Malgrange: +\newblock Le polyn\^ome de {B}ernstein d'une singularit\'e isol\'ee. +\newblock {\em Lecture Notes in Mathematics, Springer Verlag}, 459:98--119, + 1975. + +\bibitem{DM:Mebkhout} +Z.\ Mebkhout: +\newblock {\em Le formalisme des six op\'erations de Grothendieck pour les + ${D_X}$-modules coh\'erents.}. +\newblock Travaux en Cours. Hermann, Paris, 1989. + +\bibitem{DM:Oa} +T.~Oaku: +\newblock An algorithm for computing ${B}$-functions. +\newblock {\em Duke Math.~Journal}, 87:115--132, 1997. + +\bibitem{DM:Oa3} +T.~Oaku: +\newblock {A}lgorithms for ${b}$-functions, restrictions, and algebraic local + cohomology groups of ${D}$-modules. +\newblock {\em Advances in Appl.\ Math.}, 19:61--105, 1997. + +\bibitem{DM:Oa2} +T.~Oaku: +\newblock {A}lgorithms for the $b$-function and ${D}$-modules associated with a + polynomial. +\newblock {\em J.\ Pure Appl.\ Algebra}, 117-118:495--518, 1997. + +\bibitem{DM:O-T2} +T.\ Oaku and N.\ Takayama: +\newblock An algorithm for de {R}ham cohomology groups of the complement of an + affine variety via ${D}$-module computation. +\newblock {\em J.\ Pure Appl.\ Algebra}, 139:201--233, 1999. + +\bibitem{DM:O-T1} +T.\ Oaku and N.\ Takayama: +\newblock Algorithms for ${D}$-modules -- restriction, tensor product, + localization and local cohomology groups. +\newblock {\em Journal of Pure and Applied Algebra}, 156(2-3):267--308, + February 2001. + +\bibitem{DM:O-T-T} +T.\ Oaku, N.\ Takayama, and H.\ Tsai: +\newblock Polynomial and rational solutions of holonomic systems. +\newblock {\em {math.AG/0001064}}, 1999. + +\bibitem{DM:O-T-W} +T.\ Oaku, N.\ Takayama, and U.\ Walther: +\newblock A localization algorithm for {D}-modules. +\newblock {\em J.\ Symb.\ Comp.}, 29(4/5):721--728, May 2000. + +\bibitem{DM:Og} +A.~Ogus: +\newblock Local cohomological dimension of algebraic varieties. +\newblock {\em Ann.~Math. (2)}, 98:327--365, 1973. + +\bibitem{DM:P-S} +C.~Peskine and L.~Szpiro: +\newblock Dimension projective finie et cohomologie locale. +\newblock {\em Inst.~Hautes \'Etudes Sci.~Publ.~Math.}, 42:47--119, 1973. + +\bibitem{DM:SST} +M.~Saito, {B.\ Sturmfels}, and {N.\ Takayama}: +\newblock {\em Gr\"obner deformations of hypergeometric differential + equations}. +\newblock Algorithms and Computation in Mathematics, 6. Springer Verlag, 1999. + +\bibitem{DM:Satoetal} +M.\ Sato, M.\ Kashiwara, T.\ Kimura, and T.\ Oshima: +\newblock Micro-local analysis of prehomogeneous vector spaces. +\newblock {\em Inv.\ Math.}, 62:117--179, 1980. + +\bibitem{DM:T} +N.\ Takayama: +\newblock Kan: A system for computation in algebraic analysis. {S}ource code + available at {{www.math.kobe-u.ac.jp/{K}{A}{N}}}. +\newblock {\em Version 1 (1991), Version 2 (1994)}, the latest Version is + 2.990914 (1999). + +\bibitem{DM:Ts} +H.\ Tsai: +\newblock Weyl closure, torsion, and local cohomology of ${D}$-modules. +\newblock Preprint, 1999. + +\bibitem{DM:Ts0} +H.\ Tsai: +\newblock Algorithms for algebraic analysis. +\newblock {\em Thesis, University of California at Berkeley}, 2000. + +\bibitem{DM:T-W} +H.\ Tsai and U.\ Walther: +\newblock Computing homomorphisms between holonomic ${D}$-modules. +\newblock {\em {math.RA/0007139}}, 2000. + +\bibitem{DM:Varchenko} +A.\ Varchenko: +\newblock Asymptotic {H}odge structure in the vanishing cohomology. +\newblock {\em Math.\ USSR Izvestija}, 18(3):469--512, 1982. + +\bibitem{DM:W1} +U.\ Walther: +\newblock Algorithmic {C}omputation of {L}ocal {C}ohomology {M}odules and the + {L}ocal {C}ohomological {D}imension of {A}lgebraic {V}arieties. +\newblock {\em J.\ Pure Appl.\ Algebra}, 139:303--321, 1999. + +\bibitem{DM:W2} +U.\ Walther: +\newblock Algorithmic {C}omputation of de {R}ham {C}ohomology of {C}omplements + of {C}omplex {A}ffine {V}arieties. +\newblock {\em J.\ Symb.\ Comp.}, 29(4/5):795--839, May 2000. + +\bibitem{DM:W5} +U.\ Walther: +\newblock Homotopy {T}ype, {S}tratifications and {G}r\"obner bases. +\newblock In preparation, 2000. + +\bibitem{DM:W4} +U.\ Walther: +\newblock {C}ohomology with {R}ational {C}oefficients of {C}omplex {V}arieties. +\newblock {\em Contemp.\ Math.}, to appear. + +\bibitem{DM:W3} +U.\ Walther: +\newblock The {C}up {P}roduct {S}tructure for {C}omplements of {C}omplex + {A}ffine {V}arieties. +\newblock {\em J.\ Pure Appl.\ Algebra}, to appear. + +\bibitem{DM:W-lambda} +U.\ Walther: +\newblock On the {L}yubeznik numbers of a local ring. +\newblock {\em Proc.\ Amer. Math.\ Soc.}, to appear. + +\bibitem{DM:Yano} +T.\ Yano: +\newblock On the theory of $b$-functions. +\newblock {\em Publ.\ RIMS, Kyoto Univ.}, 14:111--202, 1978. + +\end{thebibliography} +\egroup +\makeatletter +\renewcommand\thesection{\@arabic\c@section} +\makeatother + + + \vfill\eject + \rhpage + \addtocontents{toc}{\protect\vskip 8pt } + \addcontentsline{toc}{title}{Index} + \markboth{Index}{Index} + \renewcommand{\indexname}{Index} + \threecolindex + \printindex + \end{document} diff --git a/Book/ComputationsBook/book/book.words b/Book/ComputationsBook/book/book.words new file mode 100644 index 0000000..2765271 --- /dev/null +++ b/Book/ComputationsBook/book/book.words @@ -0,0 +1,182 @@ +abs +all +and +ann +append +apply +ass +assert +basis +betti +binomial +borel +break +ceiling +chainComplex +char +class +clearAll +close +code +codim +coefficientRing +coker +cokernel +collectGarbage +compress +contract +cotangentSheaf +dd +decompose +degree +degrees +degreesRing +delete +demark +denominator +describe +det +diff +dim +drop +dual +else +endl +entries +erase +error +even +exponents +exteriorPower +factor +false +first +flatten +fold +for +forceGB +from +gb +gcd +generators +genericMatrix +genericSkewMatrix +gens +get +hilbertPolynomial +hilbertSeries +homogenize +homology +homomorphism +id +ideal +if +image +input +intersect +isBorel +isMonomialIdeal +isPrime +isSubset +jacobian +join +ker +kernel +koszul +last +leadTerm +length +lift +list +listForm +load +local +map +matrix +max +member +method +mingens +minors +module +modulo +monoid +monomialCurveIdeal +monomialIdeal +not +nullhomotopy +number +numerator +numgens +odd +of +oo +ooo +options +or +pairs +peek +pfaffians +poincare +position +positions +prepend +presentation +primaryDecomposition +print +product +promote +prune +radical +random +rank +regularity +relations +resolution +return +reverse +ring +saturate +scan +select +selectInSubring +set +sheaf +simplify +sin +singularLocus +sortColumns +source +splice +sqrt +standardPairs +submatrix +subsets +substitute +sum +symbol +symmetricPower +syz +table +tally +target +terms +then +time +timing +to +toExternalString +toList +top +transpose +trim +true +truncate +unique +use +value +values +variety +vars +when +while diff --git a/Book/ComputationsBook/book/book.words.ps b/Book/ComputationsBook/book/book.words.ps new file mode 100644 index 0000000..32e7aaf Binary files /dev/null and b/Book/ComputationsBook/book/book.words.ps differ diff --git a/Book/ComputationsBook/book/octahedron.eps b/Book/ComputationsBook/book/octahedron.eps new file mode 120000 index 0000000..09252cc --- /dev/null +++ b/Book/ComputationsBook/book/octahedron.eps @@ -0,0 +1 @@ +../chapters/monomialIdeals/octahedron.eps \ No newline at end of file diff --git a/Book/ComputationsBook/book/standardpairs-fixed.eps b/Book/ComputationsBook/book/standardpairs-fixed.eps new file mode 120000 index 0000000..0dbeff7 --- /dev/null +++ b/Book/ComputationsBook/book/standardpairs-fixed.eps @@ -0,0 +1 @@ +../chapters/monomialIdeals/standardpairs-fixed.eps \ No newline at end of file diff --git a/Book/ComputationsBook/book/standardpairs.eps b/Book/ComputationsBook/book/standardpairs.eps new file mode 120000 index 0000000..4319a14 --- /dev/null +++ b/Book/ComputationsBook/book/standardpairs.eps @@ -0,0 +1 @@ +../chapters/monomialIdeals/standardpairs.eps \ No newline at end of file diff --git a/Book/ComputationsBook/book/test-print.ps b/Book/ComputationsBook/book/test-print.ps new file mode 100644 index 0000000..780c5c1 Binary files /dev/null and b/Book/ComputationsBook/book/test-print.ps differ diff --git a/Book/ComputationsBook/chapters/Makefile b/Book/ComputationsBook/chapters/Makefile new file mode 100644 index 0000000..909afd2 --- /dev/null +++ b/Book/ComputationsBook/chapters/Makefile @@ -0,0 +1,2 @@ + +all : diff --git a/Book/ComputationsBook/chapters/TEMPLATE/Makefile b/Book/ComputationsBook/chapters/TEMPLATE/Makefile new file mode 100644 index 0000000..fac273a --- /dev/null +++ b/Book/ComputationsBook/chapters/TEMPLATE/Makefile @@ -0,0 +1,2 @@ +NAME := chapter +include ../../Makefile.chapter diff --git a/Book/ComputationsBook/chapters/TEMPLATE/chapter-m2.tex b/Book/ComputationsBook/chapters/TEMPLATE/chapter-m2.tex new file mode 100644 index 0000000..0035f51 --- /dev/null +++ b/Book/ComputationsBook/chapters/TEMPLATE/chapter-m2.tex @@ -0,0 +1,38 @@ +\title{TEMPLATE\\Preliminary draft} +\titlerunning{TEMPLATE} +\toctitle{TEMPLATE} +\author{J. Author\thanks{Supported by the NSF}} +\authorrunning{J. Author} +\institute{Some University, Department of Mathematics} +\maketitle + +\begin{abstract} +Here we would write the abstract. +\end{abstract} + +\section*{Introduction} +Here we would write the introduction. See the next chapter for more detailed instructions. + +\section{Some interesting math} +Here we could write some interesting math. We could even index things like +$H^2(X,\mathbf O_X)$\index{$H^i$} with math. + +\section{Some interesting computations} +Here we could write some interesting computations. + +\subsection{A subsection title} This is a subsection. + +\subsubsection{A subsubsection title} This is a subsubsection. + +\section{Yet more stuff} +For some reason {\tt bibtex} gets upset if we don't have at least one +citation in the paper \cite{MR47:3318}. + +% Local Variables: +% mode: latex +% mode: reftex +% tex-main-file: "chapter-wrapper.tex" +% reftex-keep-temporary-buffers: t +% reftex-use-external-file-finders: t +% reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) +% End: diff --git a/Book/ComputationsBook/chapters/TEMPLATE/chapter-trial-wrapper.dvi b/Book/ComputationsBook/chapters/TEMPLATE/chapter-trial-wrapper.dvi new file mode 100644 index 0000000..c582664 Binary files /dev/null and b/Book/ComputationsBook/chapters/TEMPLATE/chapter-trial-wrapper.dvi differ diff --git a/Book/ComputationsBook/chapters/TEMPLATE/chapter-trial-wrapper.tex b/Book/ComputationsBook/chapters/TEMPLATE/chapter-trial-wrapper.tex new file mode 100644 index 0000000..4645b12 --- /dev/null +++ b/Book/ComputationsBook/chapters/TEMPLATE/chapter-trial-wrapper.tex @@ -0,0 +1,21 @@ + \documentclass[runningheads]{lncse} + \usepackage{makeidx,multicol}\makeindex + \input book-macros.tex + \begin{document} + \bgroup + \input chapter-m2.tex + \egroup + \clearpage + \addtocmark[2]{Index} + \markboth{Index}{Index} + \renewcommand{\indexname}{Index} + \threecolindex + \printindex + \end{document} + + % Local Variables: + % mode: latex + % mode: reftex + % reftex-use-external-file-finders: t + % reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) + % End: diff --git a/Book/ComputationsBook/chapters/TEMPLATE/chapter-wrapper.dvi b/Book/ComputationsBook/chapters/TEMPLATE/chapter-wrapper.dvi new file mode 100644 index 0000000..09118dc Binary files /dev/null and b/Book/ComputationsBook/chapters/TEMPLATE/chapter-wrapper.dvi differ diff --git a/Book/ComputationsBook/chapters/TEMPLATE/chapter-wrapper.pdf b/Book/ComputationsBook/chapters/TEMPLATE/chapter-wrapper.pdf new file mode 100644 index 0000000..99a4d06 Binary files /dev/null and b/Book/ComputationsBook/chapters/TEMPLATE/chapter-wrapper.pdf differ diff --git a/Book/ComputationsBook/chapters/TEMPLATE/chapter-wrapper.ps b/Book/ComputationsBook/chapters/TEMPLATE/chapter-wrapper.ps new file mode 100644 index 0000000..b5c0d6a Binary files /dev/null and b/Book/ComputationsBook/chapters/TEMPLATE/chapter-wrapper.ps differ diff --git a/Book/ComputationsBook/chapters/TEMPLATE/chapter-wrapper.tex b/Book/ComputationsBook/chapters/TEMPLATE/chapter-wrapper.tex new file mode 100644 index 0000000..f4615f6 --- /dev/null +++ b/Book/ComputationsBook/chapters/TEMPLATE/chapter-wrapper.tex @@ -0,0 +1,22 @@ + \documentclass[runningheads]{lncse} + \usepackage{makeidx,multicol}\makeindex + \input book-macros.tex + \begin{document} + \bgroup + \input chapter-m2.tex + \egroup + \bibliography{papers} + \clearpage + \addtocmark[2]{Index} + \markboth{Index}{Index} + \renewcommand{\indexname}{Index} + \threecolindex + \printindex + \end{document} + + % Local Variables: + % mode: latex + % mode: reftex + % reftex-use-external-file-finders: t + % reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) + % End: diff --git a/Book/ComputationsBook/chapters/TEMPLATE/chapter.m2 b/Book/ComputationsBook/chapters/TEMPLATE/chapter.m2 new file mode 100644 index 0000000..e69de29 diff --git a/Book/ComputationsBook/chapters/TEMPLATE/chapter.out b/Book/ComputationsBook/chapters/TEMPLATE/chapter.out new file mode 100644 index 0000000..9c64d4d --- /dev/null +++ b/Book/ComputationsBook/chapters/TEMPLATE/chapter.out @@ -0,0 +1 @@ +i1 : \ No newline at end of file diff --git a/Book/ComputationsBook/chapters/TEMPLATE/chapter.tex b/Book/ComputationsBook/chapters/TEMPLATE/chapter.tex new file mode 100644 index 0000000..0035f51 --- /dev/null +++ b/Book/ComputationsBook/chapters/TEMPLATE/chapter.tex @@ -0,0 +1,38 @@ +\title{TEMPLATE\\Preliminary draft} +\titlerunning{TEMPLATE} +\toctitle{TEMPLATE} +\author{J. Author\thanks{Supported by the NSF}} +\authorrunning{J. Author} +\institute{Some University, Department of Mathematics} +\maketitle + +\begin{abstract} +Here we would write the abstract. +\end{abstract} + +\section*{Introduction} +Here we would write the introduction. See the next chapter for more detailed instructions. + +\section{Some interesting math} +Here we could write some interesting math. We could even index things like +$H^2(X,\mathbf O_X)$\index{$H^i$} with math. + +\section{Some interesting computations} +Here we could write some interesting computations. + +\subsection{A subsection title} This is a subsection. + +\subsubsection{A subsubsection title} This is a subsubsection. + +\section{Yet more stuff} +For some reason {\tt bibtex} gets upset if we don't have at least one +citation in the paper \cite{MR47:3318}. + +% Local Variables: +% mode: latex +% mode: reftex +% tex-main-file: "chapter-wrapper.tex" +% reftex-keep-temporary-buffers: t +% reftex-use-external-file-finders: t +% reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) +% End: diff --git a/Book/ComputationsBook/chapters/TEMPLATE/papers.bib b/Book/ComputationsBook/chapters/TEMPLATE/papers.bib new file mode 100644 index 0000000..d35eae4 --- /dev/null +++ b/Book/ComputationsBook/chapters/TEMPLATE/papers.bib @@ -0,0 +1,9 @@ +@book {MR47:3318, + AUTHOR = {Shimura, Goro}, + TITLE = {Introduction to the arithmetic theory of automorphic functions}, + NOTE = {Kan\^o Memorial Lectures, No.~1}, +PUBLISHER = {Publications of the Mathematical Society of Japan, No.~11. + Iwanami Shoten, Publishers, Tokyo}, + YEAR = {1971}, + PAGES = {xiv+267}, +} diff --git a/Book/ComputationsBook/chapters/authorInstructions/Makefile b/Book/ComputationsBook/chapters/authorInstructions/Makefile new file mode 100644 index 0000000..fac273a --- /dev/null +++ b/Book/ComputationsBook/chapters/authorInstructions/Makefile @@ -0,0 +1,2 @@ +NAME := chapter +include ../../Makefile.chapter diff --git a/Book/ComputationsBook/chapters/authorInstructions/chapter-m2.tex b/Book/ComputationsBook/chapters/authorInstructions/chapter-m2.tex new file mode 100644 index 0000000..ad02627 --- /dev/null +++ b/Book/ComputationsBook/chapters/authorInstructions/chapter-m2.tex @@ -0,0 +1,429 @@ +\title{Author instructions} +\author{Daniel R. Grayson\thanks{Supported by the NSF}} +\authorrunning{Grayson} +\institute{University of Illinois at Urbana-Champaign, Department of Mathematics} +\maketitle + +\def\lll{{\tt\char`\<\char`\<\char`\<}} +\def\rrr{{\tt\char`\>\char`\>\char`\>}} +\def\slash{\char`\\} + +\begin{abstract} +The abstract should summarize the contents of the paper +using at least 70 and at most 150 words. It will be set in 9-point +font size and be inset 1.0 cm from the right and left margins. +There will be two blank lines before and after the Abstract. +\end{abstract} + +\section*{Introduction} +Run TeX on the files {\tt lncse-doc.tex} and {\tt lncse-dem.tex} in the +directory {\tt lncse-macros} to produce the documentation and a demonstration +of the macro package {\tt lncse} provided to us by Springer. It's almost +compatible with AMS-Latex and Latex-2e, but multiple authors are handled with +a single {\tt \slash author} macro, the macros {\tt \slash email} and {\tt + \slash urladdr} are missing, the macro {\tt \slash address} is replaced by +{\tt \slash institute}, and the macro {\tt \slash thanks} should be inserted +where the corresponding footnote indicator is needed. Another difference is +that the command {\tt \slash theoremstyle} does not exist, and the command +{\tt \slash newtheorem} has been modified to take a few extra arguments. + +To create your own chapter, copy the entire directory {\tt TEMPLATE} to +create a directory for your own chapter, and edit the files there. For +example, the command +\par\smallskip +\centerline{\tt +cp -a TEMPLATE foo +} +\smallskip\noindent +will copy the files to a new directory named {\tt foo}. Then you should also +add a line $$\text{\tt \slash getChapter\char`\{foo/chapter\char`\}}$$ to the file +{\tt book/book.tex}, and a pair of dependency lines to the top of {\tt +book/Makefile}. + +The file {\tt foo/chapter.tex} is the one you where you should insert your +text, after deleting the TeX code for these paragraphs. It is not a complete +TeX file, because it gets eventually input into TeX by the file {\tt +book/book.tex} or the file {\tt foo/chapter-wrapper.tex}. It is +intentionally missing the $$\text{\tt \slash documentclass\char`\{lncse\char`\}}$$ and +$$\text{\tt \slash begin\char`\{document\char`\}}$$ macros at the top, and the +$$\text{\tt \slash bibliography\char`\{papers\char`\}}$$ and $$\text{\tt \slash +end\char`\{document\char`\}}$$ macros at the bottom, so don't add them; these things have +to be done in a special way when the chapter is incorporated into the book. + +If you want to change the name of the file {\tt foo/chapter.tex}, you should +edit {\tt book/Makefile}, {\tt book/book.tex}, the top line of {\tt +foo/Makefile}, and in the value of {\tt tex-main-file} at the bottom of {\tt +foo/chapter.tex}. + +We include a file $$\text{\tt inputs/book-macros.tex},$$ which authors should not +modify, which provides macros and commands which can be used throughout the +book. It loads the {\tt amsmath}, {\tt amscd}, {\tt amssymb}, {\tt +latexsym} packages. + +We can produce an entry in the index for the whole book using the macro {\tt +\slash index}, illustrated here with \index{indexing} $$\text{\tt +\slash index\char`\{indexing\char`\}}.$$ + +Use the macro $${\tt \slash Mtwo}$$ to incorporate the name \Mtwo into +your text. This ensures the name will be uniformly italicized. Spaces after +the macro will be obeyed, and an italic correction will be inserted. + +References to the literature \cite{MR47:3318} are created as usual with {\tt +\slash cite}. Make sure you put the corresponding bibtex entries, +obtainable from MathSciNet, in the file {\tt papers.bib} in the same +directory as your chapter. Bibtex entries that duplicate those in other +chapters will cause harmless warning messages. + +The file {\tt Makefile} contains the information needed for GNU make to run +TeX and various auxiliary programs in the correct sequence. To make sure you +have GNU make installed, execute the command {\tt make -v}. GNU make will +identify itself with a first line like this: +\par\smallskip +\centerline{\tt +GNU Make version 3.77, by Richard Stallman and Roland McGrath. +} +\smallskip\noindent +You can type {\tt make} in your chapter's directory to process just your +chapter, or you can type {\tt make} in the top level directory to create the +whole book. It runs TeX in scroll mode, so you can get many error messages +at once; you can change that if you'd like it to be more interactive. + +If {\tt make} runs successfully, your chapter can be viewed in the file $$\text{\tt +foo/chapter-wrapper.dvi},$$ and the book can be viewed in the file $$\text{\tt +book/book.dvi}.$$ + +\section{Incorporating \Mtwo code in your chapter.} + +To incorporate \Mtwo code into your text, surround each statement to be +executed with \lll{} and \rrr, and the result will be automatically run +through \Mtwo for you. +\beginOutput +i1 : A = QQ[x,y]\\ +\emptyLine +o1 = A\\ +\emptyLine +o1 : PolynomialRing\\ +\endOutput +For example, the code above was inserted by the following line. +\par\smallskip +\centerline{\tt +\lll A = QQ[x,y]\rrr +} +\smallskip\noindent +A single statement can span multiple lines, but try to keep it short. +\beginOutput +i2 : N = cokernel random (\\ +\ A^1, \\ +\ A^\{-2,-2\}\\ +\ )\\ +\emptyLine +o2 = cokernel | 5/2xy+y2 -8/9xy-2/5y2 |\\ +\emptyLine +\ 1\\ +o2 : A-module, quotient of A\\ +\endOutput +\beginOutput +i3 : res N\\ +\emptyLine +\ 1 2 1\\ +o3 = A <-- A <-- A <-- 0\\ +\ \\ +\ 0 1 2 3\\ +\emptyLine +o3 : ChainComplex\\ +\endOutput +If the output from \Mtwo is too wide, dots will appear indicating +where it was truncated. +\beginOutput +i4 : 100!\\ +\emptyLine +o4 = 93326215443944152681699238856266700490715968264381621468592963895 $\cdot\cdot\cdot$\\ +\endOutput + +Make sure you always have the most recent version of \Mtwo installed, for +you will be running other authors' code through it. + +\section{Running \Mtwo in emacs} + +Because some answers can be very wide, it is a good idea to run \Mtwo in +a window which does not wrap output lines and allows the user to scroll +horizontally to see the rest of the output. We provide a package for {\tt +{}emacs} which implements this, in {\tt {}emacs/M2.el} (the directory {\tt +emacs} is in the \Mtwo distribution). It also provides for dynamic +completion of symbols in the language. + +There is an ASCII version of this section of the documentation distributed +in the file {\tt {}emacs/emacs.hlp}. It might be useful for you to visit +that file with emacs now, thereby avoiding having to cut and paste bits of +text into emacs buffers for the demonstrations below. + +If you are a newcomer to emacs, start up emacs with the command +{\tt {}emacs} and then start up the emacs tutorial with the keystrokes +{\tt {}C-H\ t}. (The notation {\tt {}C-H} indicates that you should type +{\tt {}Control-H}, by holding down the control key, +and pressing {\tt {}H}.) The emacs tutorial will introduce you to the +basic keystrokes useful with emacs. After running through that you will want +to examine the online emacs manual which can be read with {\tt {}info} +mode; you may enter or re-enter that mode with the keystrokes {\tt {}C-H\ i}. +You may also want to purchase (or print out) the emacs manual. It is cheap, +comprehensive and informative. Once you have spent an hour with the emacs +tutorial and manual, come back and continue from this point. + +Edit your {\tt {}.emacs} initialization file, located in your home directory, +creating one if necessary. (Under Windows, this file is called {\tt {}\_emacs}.) +Insert into it the following lines of emacs-lisp code. + +\medskip + +{\scriptsize\ttfamily\obeylines +(setq~auto-mode-alist~(append~auto-mode-alist~'(("{\tt\char`\\}{\tt\char`\\}.m2\$"~.~M2-mode)))) +(autoload~'M2-mode~"M2-mode.el"~"Macaulay~2~editing~mode"~t) +(global-set-key~"{\tt\char`\\}{\char94}Cm"~'M2)~(global-set-key~[~f12~]~'M2) +(global-set-key~"{\tt\char`\\}{\char94}Cm"~'M2)~(global-set-key~[~SunF37~]~'M2) +(autoload~'M2~"M2.el"~"Run~Macaulay~2~in~a~buffer."~t) +(setq~load-path~(cons~"/usr/local/Macaulay2/emacs"~load-path)) +(make-variable-buffer-local~'transient-mark-mode) +(add-hook~'M2-mode-hook~'(lambda~()~(setq~transient-mark-mode~t))) +(add-hook~'comint-M2-hook~'(lambda~()~(setq~transient-mark-mode~t))) +} + +\smallskip + +The first two lines cause emacs to enter a special mode for editing \Mtwo +code whenever a file whose name has the form {\tt {}*.m2} is encountered. +The next three lines provide a special mode for running \Mtwo in an emacs buffer. +The sixth line tells emacs where to find the emacs-lisp files provided in the +\Mtwo emacs directory - you must edit the string in that line to +indicate the correct path on your system to the \Mtwo emacs directory. +The files needed from that directory are {\tt {}M2-mode.el}, +{\tt {}M2-symbols.el}, and {\tt {}M2.el}. The seventh line sets +the variable {\tt {}transient-mark-mode} so that it can +have a different value in each buffer. The eighth and ninth lines set +hooks so that {\tt {}transient-mark-mode} will be set to {\tt {}t} +in M2 buffers. The effect of this is that the mark is only active occasionally, +and then emacs functions which act on a region of text will refuse to proceed +unless the mark is active. The {\tt {}set-mark} function or the +{\tt {}exchange-point-and-mark} function will activate the mark, and it +will remain active until some change occurs to the buffer. The only reason +we recommend the use of this mode is so the same key can be used to evaluate +a line or a region of code, depending on whether the region is active. + +Exit and restart emacs with your new initialization file. +If you are reading this file with emacs, then use the keystrokes +{\tt {}C-x\ 2} to divide the buffer containing this file into two windows. +Then press the {\tt {}F12} function key to start up +\Mtwo in a buffer named {\tt {}*M2*}. + +If this doesn't start up \Mtwo, one reason may be that your function +keys are not operable. In that case press {\tt {}C-C\ m} instead. (The +notation {\tt {}C-C} is standard emacs notation for Control-C.) Another +reason may be that you have not installed \Mtwo properly - the startup +script ({\tt {}M2} or {\tt {}M2.bat}) should be on your path. +A third reason may be that you are in Windows-98 and are using anti-virus +software such as {\tt {}Dr.\ Solomon's}, which can interfere with emacs +when it tries to run a subprocess. + +You may use {\tt {}C-x\ o} freely to switch from one window to the other. +Verify that \Mtwo is running by entering a command such as {\tt {}2+2}. +Now paste the following text into a buffer, unless you have the ASCII +version of this documentation in an emacs buffer already, position +the cursor on the first line of code, and press the {\tt {}F11} function +key (or {\tt {}C-C\ s}) repeatedly to present each line to \Mtwo. + +\smallskip + +{\ttfamily\obeylines +i1~=~R~=~ZZ/101[x,y,z] +i2~=~f~=~symmetricPower(2,vars~R) +i3~=~M~=~cokernel~f +i4~=~C~=~resolution~M +i5~=~betti~C +} + +\smallskip + +Notice that the input prompts are not submitted to \Mtwo. + +Here is a way to conduct a demo of \Mtwo in which the code to be +submitted is not visible on the screen. Paste the following text into +an emacs buffer. + +\smallskip + +{\ttfamily\obeylines +~~~~20! +~~~~4~+~5~2{\char94}20 +~~~~--~that's~all~folks! +} + +\smallskip + +Press {\tt {}M-F11} with your cursor in this buffer to designate it as +the source for the \Mtwo commands. (The notation {\tt {}M-F11} means +that while holding the {\tt {}Meta} key down, you should press the {\tt {}F11} +key. The Meta key is the Alt key on some keyboards, or it can be simulated by +pressing Escape (just once) and following that with the key you wanted to press +while the meta key was held down.) Then position your cursor (and thus the +emacs point) within the line containing {\tt {}20!}. Now press {\tt {}M-F12} +to open up a new frame called {\tt {}DEMO} for the {\tt {}*M2*} window with +a large font suitable for use with a projector, and with your cursor in that +frame, press {\tt {}F11} a few times to conduct the demo. (If the font or frame is the +wrong size, you may have to create a copy of the file {\tt {}M2.el} +with a version of the function {\tt {}M2-demo} modified to fit your screen.) + +One press of {\tt {}F11} brings the next line of code forward into the +{\tt {}*M2*} buffer, and the next press executes it. Use {\tt {}C-x\ 5\ 0} +when you want the demo frame to go away. + +There is a way to send a region of text to \Mtwo: simply select a region +of text, making sure the mark is active (as described above) and press {\tt {}F11}. +Try that on the list below; put it into an emacs buffer, move your cursor to the +start of the list, press {\tt {}M-C-@} or {\tt {}M-C-space} to mark the list, +and then press {\tt {}F11} to send it to \Mtwo. (The notation {\tt {}M-C-@} +means: while holding down the Meta key and the Control key press the {\tt {}@} key, +for which you'll also need the shift key.) + +\smallskip + +{\ttfamily\obeylines +{\tt\char`\{}a,b,c,d,e,f, +g,h,i,j,k,l, +m,n{\tt\char`\}} +} + +\smallskip + +We have developed a system for incorporating \Mtwo interactions into TeX +files. Here is an example of how that looks. Paste the following text, +representing something you might see in a TeX file, into an emacs buffer. + +\medskip + +{\ttfamily\obeylines\scriptsize +~~~The~answer,~4,~is~displayed~after~the~output~label~``{\tt\char`\{}{\tt\char`\\}tt~o1{\tt\char`\\}~={\tt\char`\}}''.~~ +~~~Multiplication~is~indicated~with~the~traditional~{\tt\char`\{}{\tt\char`\\}tt~*{\tt\char`\}}. +~~~{\tt \char`\<}{\tt\char`\<}{\tt\char`\<}1*2*3*4{\tt\char`\>}{\tt\char`\>}{\tt\char`\>} +~~~Powers~are~obtained~as~follows. +~~~{\tt\char`\<}{\tt\char`\<}{\tt\char`\<}2{\char94}100{\tt\char`\>}{\tt\char`\>}{\tt\char`\>} +} + +\smallskip + +The bits in brackets can be submitted to \Mtwo easily. Position your +cursor at the top of the buffer and press {\tt {}F10.} The cursor will move +just past the first {\tt {<}<<}, and the emacs mark will be positioned just +before the {\tt {}>>>}. Thus {\tt {}1*2*3*4} is the region, and it will +even be highlighted if you have set the emacs variable {\tt {}transient-mark-mode} +to {\tt {}t} for this buffer. Pressing {\tt {}F11} will send {\tt {}1*2*3*4} +to \Mtwo for execution: try it now. A sequence of such \Mtwo commands +can be executed by alternately pressing {\tt {}F10} and {\tt {}F11}. You may +also use {\tt {}M-F10} to move backward to the previous bracketed expression. + +Now let's see how we can handle wide and tall \Mtwo output. Execute the +following line of code. + +\smallskip + +{\ttfamily\obeylines +random(R{\char 94}20,R{\char94}{\tt\char`\{}6:-2{\tt\char`\}}) +} + +\smallskip + +Notice that the long lines in the \Mtwo window, instead of being wrapped +around to the next line, simply disappear off the right side of the screen, +as indicated by the dollar signs in the rightmost column. Switch to the +other window and practice scrolling up and down with {\tt {}M-v} and {\tt {}C-v}, +and scrolling left and right with the function key {\tt {}F3} (or {\tt {}C-C\ <}) +and the function key {\tt {}F4} (or {\tt {}C-C\ >}). Notice how the use of +{\tt {}C-E} to go to the end of the line +sends the cursor to the dollar sign at the right hand side of the screen; +that's where the cursor will appear whenever you go to a position off the +screen to the right. Then use the {\tt {}F2} function key (or {\tt {}C-C\ .}) to +scroll the text so the cursor appears at the center of the screen. Use {\tt {}C-A} to +move to the beginning of the line and then the {\tt {}F2} function key +(or {\tt {}C-C\ .}) to bring the left margin back into view. + +You may use the {\tt {}F5} function key or (or {\tt {}C-C\ ?}) to +toggle whether long lines are truncated or wrapped; initially they are truncated. + +Now go to the very end of the {\tt {}*M2*} buffer with {\tt {}M->} and +experiment with keyword completion. Type {\tt {}reso} and then press the +{\tt {}TAB} key. Notice how the word is completed to {\tt {}resolution} +for you. Delete the word with {\tt {}M-DEL}, type {\tt {}res} +and then press the {\tt {}TAB} key. The possible completions are displayed +in a window. Switch to it with the {\tt {}F8} key, move to the desired +completion, select it with the {\tt {}RETURN} key, and then return to the +{\tt {}*M2*} buffer with {\tt {}C-X\ o}. Alternatively, if you have a +mouse, use the middle button to select the desired completion. + +Experiment with command line history in the {\tt {}*M2*} buffer. Position +your cursor at the end of the buffer, and then use {\tt {}M-p} and {\tt {}M-n} +to move to the previous and next line of input remembered in the history. When you +get to one you'd like to run again, simply press return to do so. Or edit it +slightly to change it before pressing return. + +\section{Editing \Mtwo code with emacs} + +In this section we learn how to use emacs to edit \Mtwo code. Assuming you +have set up your emacs init file as described in {\tt {}running\ Macaulay\ 2\ in\ emacs} +when you visit a file whose name ends with {\tt {}.m2} +you will see on the mode line the name {\tt {}Macaulay\ 2} in +parentheses, indicating that the file is being edited in \Mtwo mode. (Make +sure that the file {\tt {}emacs/M2-mode.el} is on your {\tt {}load-path}.) + +To see how electric parentheses, electric semicolons, and indentation work, +move to a blank line of this file and type the following text. + +\smallskip + +{\ttfamily\obeylines +f~=~()~-{\tt\char`\>}~( +~~~~~a~:=~4; +~~~~~b~:=~{\tt\char`\{}6,7{\tt\char`\}}; +~~~~~a+b) +} + +\smallskip + +Observe carefully how matching left parentheses are indicated briefly when a +right parenthesis is typed. + +Now position your cursor in between the 6 and 7. Notice how +pressing {\tt {}M-C-u} moves you up out of the list to its left. Do it +again. Experiment with {\tt {}M-C-f} and {\tt {}M-C-b} to move forward +and back over complete parenthesized +expressions. (In the emacs manual a complete parenthesized expression is +referred to as an sexp, which is an abbreviation for S-expression.) Try out +{\tt {}C-U\ 2\ M-C-@} as a way of marking the next two complete parenthesized +expression, and see how to use {\tt {}C-W} to kill them and {\tt {}C-Y} to yank +them back. Experiment with {\tt {}M-C-K} to kill the next complete parenthesized +expression. + +Position your cursor on the 4 and observe how {\tt {}M-;} will start a comment +for you with two hyphens, and position the cursor at the point where commentary +may be entered. + +Type {\tt {}res} somewhere and then press {\tt {}C-C\ TAB} to bring up the +possible completions of the word to documented \Mtwo symbols. + +Finally, notice how {\tt {}C-H\ m} will display the keystrokes peculiar to +the mode in a help window. + +The text below is for testing purposes: + + \def\f{\edef\g{\the\lastskip}{\tt<----- \g}\par} + + a: \f + a. \f + a? \f + a; \f + +% Local Variables: +% mode: latex +% mode: reftex +% tex-main-file: "chapter-wrapper.tex" +% reftex-keep-temporary-buffers: t +% reftex-use-external-file-finders: t +% reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) +% End: diff --git a/Book/ComputationsBook/chapters/authorInstructions/chapter-trial-wrapper.dvi b/Book/ComputationsBook/chapters/authorInstructions/chapter-trial-wrapper.dvi new file mode 100644 index 0000000..832dddb Binary files /dev/null and b/Book/ComputationsBook/chapters/authorInstructions/chapter-trial-wrapper.dvi differ diff --git a/Book/ComputationsBook/chapters/authorInstructions/chapter-trial-wrapper.tex b/Book/ComputationsBook/chapters/authorInstructions/chapter-trial-wrapper.tex new file mode 100644 index 0000000..4645b12 --- /dev/null +++ b/Book/ComputationsBook/chapters/authorInstructions/chapter-trial-wrapper.tex @@ -0,0 +1,21 @@ + \documentclass[runningheads]{lncse} + \usepackage{makeidx,multicol}\makeindex + \input book-macros.tex + \begin{document} + \bgroup + \input chapter-m2.tex + \egroup + \clearpage + \addtocmark[2]{Index} + \markboth{Index}{Index} + \renewcommand{\indexname}{Index} + \threecolindex + \printindex + \end{document} + + % Local Variables: + % mode: latex + % mode: reftex + % reftex-use-external-file-finders: t + % reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) + % End: diff --git a/Book/ComputationsBook/chapters/authorInstructions/chapter-wrapper.dvi b/Book/ComputationsBook/chapters/authorInstructions/chapter-wrapper.dvi new file mode 100644 index 0000000..f9e4010 Binary files /dev/null and b/Book/ComputationsBook/chapters/authorInstructions/chapter-wrapper.dvi differ diff --git a/Book/ComputationsBook/chapters/authorInstructions/chapter-wrapper.pdf b/Book/ComputationsBook/chapters/authorInstructions/chapter-wrapper.pdf new file mode 100644 index 0000000..63cec6c Binary files /dev/null and b/Book/ComputationsBook/chapters/authorInstructions/chapter-wrapper.pdf differ diff --git a/Book/ComputationsBook/chapters/authorInstructions/chapter-wrapper.ps b/Book/ComputationsBook/chapters/authorInstructions/chapter-wrapper.ps new file mode 100644 index 0000000..068235a Binary files /dev/null and b/Book/ComputationsBook/chapters/authorInstructions/chapter-wrapper.ps differ diff --git a/Book/ComputationsBook/chapters/authorInstructions/chapter-wrapper.tex b/Book/ComputationsBook/chapters/authorInstructions/chapter-wrapper.tex new file mode 100644 index 0000000..f4615f6 --- /dev/null +++ b/Book/ComputationsBook/chapters/authorInstructions/chapter-wrapper.tex @@ -0,0 +1,22 @@ + \documentclass[runningheads]{lncse} + \usepackage{makeidx,multicol}\makeindex + \input book-macros.tex + \begin{document} + \bgroup + \input chapter-m2.tex + \egroup + \bibliography{papers} + \clearpage + \addtocmark[2]{Index} + \markboth{Index}{Index} + \renewcommand{\indexname}{Index} + \threecolindex + \printindex + \end{document} + + % Local Variables: + % mode: latex + % mode: reftex + % reftex-use-external-file-finders: t + % reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) + % End: diff --git a/Book/ComputationsBook/chapters/authorInstructions/chapter.m2 b/Book/ComputationsBook/chapters/authorInstructions/chapter.m2 new file mode 100644 index 0000000..344a9a0 --- /dev/null +++ b/Book/ComputationsBook/chapters/authorInstructions/chapter.m2 @@ -0,0 +1,7 @@ +A = QQ[x,y] +N = cokernel random ( + A^1, + A^{-2,-2} + ) +res N +100! diff --git a/Book/ComputationsBook/chapters/authorInstructions/chapter.out b/Book/ComputationsBook/chapters/authorInstructions/chapter.out new file mode 100644 index 0000000..170d5ca --- /dev/null +++ b/Book/ComputationsBook/chapters/authorInstructions/chapter.out @@ -0,0 +1,26 @@ +i1 : A = QQ[x,y] + +o1 = A + +o1 : PolynomialRing +i2 : N = cokernel random ( + A^1, + A^{-2,-2} + ) + +o2 = cokernel | 5/2xy+y2 -8/9xy-2/5y2 | + + 1 +o2 : A-module, quotient of A +i3 : res N + + 1 2 1 +o3 = A <-- A <-- A <-- 0 + + 0 1 2 3 + +o3 : ChainComplex +i4 : 100! + +o4 = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 +i5 : \ No newline at end of file diff --git a/Book/ComputationsBook/chapters/authorInstructions/chapter.tex b/Book/ComputationsBook/chapters/authorInstructions/chapter.tex new file mode 100644 index 0000000..a86f920 --- /dev/null +++ b/Book/ComputationsBook/chapters/authorInstructions/chapter.tex @@ -0,0 +1,403 @@ +\title{Author instructions} +\author{Daniel R. Grayson\thanks{Supported by the NSF}} +\authorrunning{Grayson} +\institute{University of Illinois at Urbana-Champaign, Department of Mathematics} +\maketitle + +\def\lll{{\tt\char`\<\char`\<\char`\<}} +\def\rrr{{\tt\char`\>\char`\>\char`\>}} +\def\slash{\char`\\} + +\begin{abstract} +The abstract should summarize the contents of the paper +using at least 70 and at most 150 words. It will be set in 9-point +font size and be inset 1.0 cm from the right and left margins. +There will be two blank lines before and after the Abstract. +\end{abstract} + +\section*{Introduction} +Run TeX on the files {\tt lncse-doc.tex} and {\tt lncse-dem.tex} in the +directory {\tt lncse-macros} to produce the documentation and a demonstration +of the macro package {\tt lncse} provided to us by Springer. It's almost +compatible with AMS-Latex and Latex-2e, but multiple authors are handled with +a single {\tt \slash author} macro, the macros {\tt \slash email} and {\tt + \slash urladdr} are missing, the macro {\tt \slash address} is replaced by +{\tt \slash institute}, and the macro {\tt \slash thanks} should be inserted +where the corresponding footnote indicator is needed. Another difference is +that the command {\tt \slash theoremstyle} does not exist, and the command +{\tt \slash newtheorem} has been modified to take a few extra arguments. + +To create your own chapter, copy the entire directory {\tt TEMPLATE} to +create a directory for your own chapter, and edit the files there. For +example, the command +\par\smallskip +\centerline{\tt +cp -a TEMPLATE foo +} +\smallskip\noindent +will copy the files to a new directory named {\tt foo}. Then you should also +add a line $$\text{\tt \slash getChapter\char`\{foo/chapter\char`\}}$$ to the file +{\tt book/book.tex}, and a pair of dependency lines to the top of {\tt +book/Makefile}. + +The file {\tt foo/chapter.tex} is the one you where you should insert your +text, after deleting the TeX code for these paragraphs. It is not a complete +TeX file, because it gets eventually input into TeX by the file {\tt +book/book.tex} or the file {\tt foo/chapter-wrapper.tex}. It is +intentionally missing the $$\text{\tt \slash documentclass\char`\{lncse\char`\}}$$ and +$$\text{\tt \slash begin\char`\{document\char`\}}$$ macros at the top, and the +$$\text{\tt \slash bibliography\char`\{papers\char`\}}$$ and $$\text{\tt \slash +end\char`\{document\char`\}}$$ macros at the bottom, so don't add them; these things have +to be done in a special way when the chapter is incorporated into the book. + +If you want to change the name of the file {\tt foo/chapter.tex}, you should +edit {\tt book/Makefile}, {\tt book/book.tex}, the top line of {\tt +foo/Makefile}, and in the value of {\tt tex-main-file} at the bottom of {\tt +foo/chapter.tex}. + +We include a file $$\text{\tt inputs/book-macros.tex},$$ which authors should not +modify, which provides macros and commands which can be used throughout the +book. It loads the {\tt amsmath}, {\tt amscd}, {\tt amssymb}, {\tt +latexsym} packages. + +We can produce an entry in the index for the whole book using the macro {\tt +\slash index}, illustrated here with \index{indexing} $$\text{\tt +\slash index\char`\{indexing\char`\}}.$$ + +Use the macro $${\tt \slash Mtwo}$$ to incorporate the name \Mtwo into +your text. This ensures the name will be uniformly italicized. Spaces after +the macro will be obeyed, and an italic correction will be inserted. + +References to the literature \cite{MR47:3318} are created as usual with {\tt +\slash cite}. Make sure you put the corresponding bibtex entries, +obtainable from MathSciNet, in the file {\tt papers.bib} in the same +directory as your chapter. Bibtex entries that duplicate those in other +chapters will cause harmless warning messages. + +The file {\tt Makefile} contains the information needed for GNU make to run +TeX and various auxiliary programs in the correct sequence. To make sure you +have GNU make installed, execute the command {\tt make -v}. GNU make will +identify itself with a first line like this: +\par\smallskip +\centerline{\tt +GNU Make version 3.77, by Richard Stallman and Roland McGrath. +} +\smallskip\noindent +You can type {\tt make} in your chapter's directory to process just your +chapter, or you can type {\tt make} in the top level directory to create the +whole book. It runs TeX in scroll mode, so you can get many error messages +at once; you can change that if you'd like it to be more interactive. + +If {\tt make} runs successfully, your chapter can be viewed in the file $$\text{\tt +foo/chapter-wrapper.dvi},$$ and the book can be viewed in the file $$\text{\tt +book/book.dvi}.$$ + +\section{Incorporating \Mtwo code in your chapter.} + +To incorporate \Mtwo code into your text, surround each statement to be +executed with \lll{} and \rrr, and the result will be automatically run +through \Mtwo for you. +<<>> +For example, the code above was inserted by the following line. +\par\smallskip +\centerline{\tt +\lll A = QQ[x,y]\rrr +} +\smallskip\noindent +A single statement can span multiple lines, but try to keep it short. +<<>> +<<>> +If the output from \Mtwo is too wide, dots will appear indicating +where it was truncated. +<<<100!>>> + +Make sure you always have the most recent version of \Mtwo installed, for +you will be running other authors' code through it. + +\section{Running \Mtwo in emacs} + +Because some answers can be very wide, it is a good idea to run \Mtwo in +a window which does not wrap output lines and allows the user to scroll +horizontally to see the rest of the output. We provide a package for {\tt +{}emacs} which implements this, in {\tt {}emacs/M2.el} (the directory {\tt +emacs} is in the \Mtwo distribution). It also provides for dynamic +completion of symbols in the language. + +There is an ASCII version of this section of the documentation distributed +in the file {\tt {}emacs/emacs.hlp}. It might be useful for you to visit +that file with emacs now, thereby avoiding having to cut and paste bits of +text into emacs buffers for the demonstrations below. + +If you are a newcomer to emacs, start up emacs with the command +{\tt {}emacs} and then start up the emacs tutorial with the keystrokes +{\tt {}C-H\ t}. (The notation {\tt {}C-H} indicates that you should type +{\tt {}Control-H}, by holding down the control key, +and pressing {\tt {}H}.) The emacs tutorial will introduce you to the +basic keystrokes useful with emacs. After running through that you will want +to examine the online emacs manual which can be read with {\tt {}info} +mode; you may enter or re-enter that mode with the keystrokes {\tt {}C-H\ i}. +You may also want to purchase (or print out) the emacs manual. It is cheap, +comprehensive and informative. Once you have spent an hour with the emacs +tutorial and manual, come back and continue from this point. + +Edit your {\tt {}.emacs} initialization file, located in your home directory, +creating one if necessary. (Under Windows, this file is called {\tt {}\_emacs}.) +Insert into it the following lines of emacs-lisp code. + +\medskip + +{\scriptsize\ttfamily\obeylines +(setq~auto-mode-alist~(append~auto-mode-alist~'(("{\tt\char`\\}{\tt\char`\\}.m2\$"~.~M2-mode)))) +(autoload~'M2-mode~"M2-mode.el"~"Macaulay~2~editing~mode"~t) +(global-set-key~"{\tt\char`\\}{\char94}Cm"~'M2)~(global-set-key~[~f12~]~'M2) +(global-set-key~"{\tt\char`\\}{\char94}Cm"~'M2)~(global-set-key~[~SunF37~]~'M2) +(autoload~'M2~"M2.el"~"Run~Macaulay~2~in~a~buffer."~t) +(setq~load-path~(cons~"/usr/local/Macaulay2/emacs"~load-path)) +(make-variable-buffer-local~'transient-mark-mode) +(add-hook~'M2-mode-hook~'(lambda~()~(setq~transient-mark-mode~t))) +(add-hook~'comint-M2-hook~'(lambda~()~(setq~transient-mark-mode~t))) +} + +\smallskip + +The first two lines cause emacs to enter a special mode for editing \Mtwo +code whenever a file whose name has the form {\tt {}*.m2} is encountered. +The next three lines provide a special mode for running \Mtwo in an emacs buffer. +The sixth line tells emacs where to find the emacs-lisp files provided in the +\Mtwo emacs directory - you must edit the string in that line to +indicate the correct path on your system to the \Mtwo emacs directory. +The files needed from that directory are {\tt {}M2-mode.el}, +{\tt {}M2-symbols.el}, and {\tt {}M2.el}. The seventh line sets +the variable {\tt {}transient-mark-mode} so that it can +have a different value in each buffer. The eighth and ninth lines set +hooks so that {\tt {}transient-mark-mode} will be set to {\tt {}t} +in M2 buffers. The effect of this is that the mark is only active occasionally, +and then emacs functions which act on a region of text will refuse to proceed +unless the mark is active. The {\tt {}set-mark} function or the +{\tt {}exchange-point-and-mark} function will activate the mark, and it +will remain active until some change occurs to the buffer. The only reason +we recommend the use of this mode is so the same key can be used to evaluate +a line or a region of code, depending on whether the region is active. + +Exit and restart emacs with your new initialization file. +If you are reading this file with emacs, then use the keystrokes +{\tt {}C-x\ 2} to divide the buffer containing this file into two windows. +Then press the {\tt {}F12} function key to start up +\Mtwo in a buffer named {\tt {}*M2*}. + +If this doesn't start up \Mtwo, one reason may be that your function +keys are not operable. In that case press {\tt {}C-C\ m} instead. (The +notation {\tt {}C-C} is standard emacs notation for Control-C.) Another +reason may be that you have not installed \Mtwo properly - the startup +script ({\tt {}M2} or {\tt {}M2.bat}) should be on your path. +A third reason may be that you are in Windows-98 and are using anti-virus +software such as {\tt {}Dr.\ Solomon's}, which can interfere with emacs +when it tries to run a subprocess. + +You may use {\tt {}C-x\ o} freely to switch from one window to the other. +Verify that \Mtwo is running by entering a command such as {\tt {}2+2}. +Now paste the following text into a buffer, unless you have the ASCII +version of this documentation in an emacs buffer already, position +the cursor on the first line of code, and press the {\tt {}F11} function +key (or {\tt {}C-C\ s}) repeatedly to present each line to \Mtwo. + +\smallskip + +{\ttfamily\obeylines +i1~=~R~=~ZZ/101[x,y,z] +i2~=~f~=~symmetricPower(2,vars~R) +i3~=~M~=~cokernel~f +i4~=~C~=~resolution~M +i5~=~betti~C +} + +\smallskip + +Notice that the input prompts are not submitted to \Mtwo. + +Here is a way to conduct a demo of \Mtwo in which the code to be +submitted is not visible on the screen. Paste the following text into +an emacs buffer. + +\smallskip + +{\ttfamily\obeylines +~~~~20! +~~~~4~+~5~2{\char94}20 +~~~~--~that's~all~folks! +} + +\smallskip + +Press {\tt {}M-F11} with your cursor in this buffer to designate it as +the source for the \Mtwo commands. (The notation {\tt {}M-F11} means +that while holding the {\tt {}Meta} key down, you should press the {\tt {}F11} +key. The Meta key is the Alt key on some keyboards, or it can be simulated by +pressing Escape (just once) and following that with the key you wanted to press +while the meta key was held down.) Then position your cursor (and thus the +emacs point) within the line containing {\tt {}20!}. Now press {\tt {}M-F12} +to open up a new frame called {\tt {}DEMO} for the {\tt {}*M2*} window with +a large font suitable for use with a projector, and with your cursor in that +frame, press {\tt {}F11} a few times to conduct the demo. (If the font or frame is the +wrong size, you may have to create a copy of the file {\tt {}M2.el} +with a version of the function {\tt {}M2-demo} modified to fit your screen.) + +One press of {\tt {}F11} brings the next line of code forward into the +{\tt {}*M2*} buffer, and the next press executes it. Use {\tt {}C-x\ 5\ 0} +when you want the demo frame to go away. + +There is a way to send a region of text to \Mtwo: simply select a region +of text, making sure the mark is active (as described above) and press {\tt {}F11}. +Try that on the list below; put it into an emacs buffer, move your cursor to the +start of the list, press {\tt {}M-C-@} or {\tt {}M-C-space} to mark the list, +and then press {\tt {}F11} to send it to \Mtwo. (The notation {\tt {}M-C-@} +means: while holding down the Meta key and the Control key press the {\tt {}@} key, +for which you'll also need the shift key.) + +\smallskip + +{\ttfamily\obeylines +{\tt\char`\{}a,b,c,d,e,f, +g,h,i,j,k,l, +m,n{\tt\char`\}} +} + +\smallskip + +We have developed a system for incorporating \Mtwo interactions into TeX +files. Here is an example of how that looks. Paste the following text, +representing something you might see in a TeX file, into an emacs buffer. + +\medskip + +{\ttfamily\obeylines\scriptsize +~~~The~answer,~4,~is~displayed~after~the~output~label~``{\tt\char`\{}{\tt\char`\\}tt~o1{\tt\char`\\}~={\tt\char`\}}''.~~ +~~~Multiplication~is~indicated~with~the~traditional~{\tt\char`\{}{\tt\char`\\}tt~*{\tt\char`\}}. +~~~{\tt \char`\<}{\tt\char`\<}{\tt\char`\<}1*2*3*4{\tt\char`\>}{\tt\char`\>}{\tt\char`\>} +~~~Powers~are~obtained~as~follows. +~~~{\tt\char`\<}{\tt\char`\<}{\tt\char`\<}2{\char94}100{\tt\char`\>}{\tt\char`\>}{\tt\char`\>} +} + +\smallskip + +The bits in brackets can be submitted to \Mtwo easily. Position your +cursor at the top of the buffer and press {\tt {}F10.} The cursor will move +just past the first {\tt {<}<<}, and the emacs mark will be positioned just +before the {\tt {}>>>}. Thus {\tt {}1*2*3*4} is the region, and it will +even be highlighted if you have set the emacs variable {\tt {}transient-mark-mode} +to {\tt {}t} for this buffer. Pressing {\tt {}F11} will send {\tt {}1*2*3*4} +to \Mtwo for execution: try it now. A sequence of such \Mtwo commands +can be executed by alternately pressing {\tt {}F10} and {\tt {}F11}. You may +also use {\tt {}M-F10} to move backward to the previous bracketed expression. + +Now let's see how we can handle wide and tall \Mtwo output. Execute the +following line of code. + +\smallskip + +{\ttfamily\obeylines +random(R{\char 94}20,R{\char94}{\tt\char`\{}6:-2{\tt\char`\}}) +} + +\smallskip + +Notice that the long lines in the \Mtwo window, instead of being wrapped +around to the next line, simply disappear off the right side of the screen, +as indicated by the dollar signs in the rightmost column. Switch to the +other window and practice scrolling up and down with {\tt {}M-v} and {\tt {}C-v}, +and scrolling left and right with the function key {\tt {}F3} (or {\tt {}C-C\ <}) +and the function key {\tt {}F4} (or {\tt {}C-C\ >}). Notice how the use of +{\tt {}C-E} to go to the end of the line +sends the cursor to the dollar sign at the right hand side of the screen; +that's where the cursor will appear whenever you go to a position off the +screen to the right. Then use the {\tt {}F2} function key (or {\tt {}C-C\ .}) to +scroll the text so the cursor appears at the center of the screen. Use {\tt {}C-A} to +move to the beginning of the line and then the {\tt {}F2} function key +(or {\tt {}C-C\ .}) to bring the left margin back into view. + +You may use the {\tt {}F5} function key or (or {\tt {}C-C\ ?}) to +toggle whether long lines are truncated or wrapped; initially they are truncated. + +Now go to the very end of the {\tt {}*M2*} buffer with {\tt {}M->} and +experiment with keyword completion. Type {\tt {}reso} and then press the +{\tt {}TAB} key. Notice how the word is completed to {\tt {}resolution} +for you. Delete the word with {\tt {}M-DEL}, type {\tt {}res} +and then press the {\tt {}TAB} key. The possible completions are displayed +in a window. Switch to it with the {\tt {}F8} key, move to the desired +completion, select it with the {\tt {}RETURN} key, and then return to the +{\tt {}*M2*} buffer with {\tt {}C-X\ o}. Alternatively, if you have a +mouse, use the middle button to select the desired completion. + +Experiment with command line history in the {\tt {}*M2*} buffer. Position +your cursor at the end of the buffer, and then use {\tt {}M-p} and {\tt {}M-n} +to move to the previous and next line of input remembered in the history. When you +get to one you'd like to run again, simply press return to do so. Or edit it +slightly to change it before pressing return. + +\section{Editing \Mtwo code with emacs} + +In this section we learn how to use emacs to edit \Mtwo code. Assuming you +have set up your emacs init file as described in {\tt {}running\ Macaulay\ 2\ in\ emacs} +when you visit a file whose name ends with {\tt {}.m2} +you will see on the mode line the name {\tt {}Macaulay\ 2} in +parentheses, indicating that the file is being edited in \Mtwo mode. (Make +sure that the file {\tt {}emacs/M2-mode.el} is on your {\tt {}load-path}.) + +To see how electric parentheses, electric semicolons, and indentation work, +move to a blank line of this file and type the following text. + +\smallskip + +{\ttfamily\obeylines +f~=~()~-{\tt\char`\>}~( +~~~~~a~:=~4; +~~~~~b~:=~{\tt\char`\{}6,7{\tt\char`\}}; +~~~~~a+b) +} + +\smallskip + +Observe carefully how matching left parentheses are indicated briefly when a +right parenthesis is typed. + +Now position your cursor in between the 6 and 7. Notice how +pressing {\tt {}M-C-u} moves you up out of the list to its left. Do it +again. Experiment with {\tt {}M-C-f} and {\tt {}M-C-b} to move forward +and back over complete parenthesized +expressions. (In the emacs manual a complete parenthesized expression is +referred to as an sexp, which is an abbreviation for S-expression.) Try out +{\tt {}C-U\ 2\ M-C-@} as a way of marking the next two complete parenthesized +expression, and see how to use {\tt {}C-W} to kill them and {\tt {}C-Y} to yank +them back. Experiment with {\tt {}M-C-K} to kill the next complete parenthesized +expression. + +Position your cursor on the 4 and observe how {\tt {}M-;} will start a comment +for you with two hyphens, and position the cursor at the point where commentary +may be entered. + +Type {\tt {}res} somewhere and then press {\tt {}C-C\ TAB} to bring up the +possible completions of the word to documented \Mtwo symbols. + +Finally, notice how {\tt {}C-H\ m} will display the keystrokes peculiar to +the mode in a help window. + +The text below is for testing purposes: + + \def\f{\edef\g{\the\lastskip}{\tt<----- \g}\par} + + a: \f + a. \f + a? \f + a; \f + +% Local Variables: +% mode: latex +% mode: reftex +% tex-main-file: "chapter-wrapper.tex" +% reftex-keep-temporary-buffers: t +% reftex-use-external-file-finders: t +% reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) +% End: diff --git a/Book/ComputationsBook/chapters/authorInstructions/papers.bib b/Book/ComputationsBook/chapters/authorInstructions/papers.bib new file mode 100644 index 0000000..d35eae4 --- /dev/null +++ b/Book/ComputationsBook/chapters/authorInstructions/papers.bib @@ -0,0 +1,9 @@ +@book {MR47:3318, + AUTHOR = {Shimura, Goro}, + TITLE = {Introduction to the arithmetic theory of automorphic functions}, + NOTE = {Kan\^o Memorial Lectures, No.~1}, +PUBLISHER = {Publications of the Mathematical Society of Japan, No.~11. + Iwanami Shoten, Publishers, Tokyo}, + YEAR = {1971}, + PAGES = {xiv+267}, +} diff --git a/Book/ComputationsBook/chapters/completeIntersections/.#ci.out.1.7 b/Book/ComputationsBook/chapters/completeIntersections/.#ci.out.1.7 new file mode 100644 index 0000000..6c5ec00 --- /dev/null +++ b/Book/ComputationsBook/chapters/completeIntersections/.#ci.out.1.7 @@ -0,0 +1,979 @@ +i1 : A = QQ[w,x,y,z] + +o1 = A + +o1 : PolynomialRing +i2 : U = matrix {{w,x},{y,z}} + +o2 = | w x | + | y z | + + 2 2 +o2 : Matrix A <--- A +i3 : C = chainComplex U + + 2 2 +o3 = A <-- A + + 0 1 + +o3 : ChainComplex +i4 : L = HH_0 C + +o4 = cokernel | w x | + | y z | + + 2 +o4 : A-module, quotient of A +i5 : f = -det U + +o5 = x*y - w*z + +o5 : A +i6 : f * L == 0 + +o6 = true +i7 : s = nullhomotopy (-f * id_C) + + 2 2 +o7 = 1 : A <----------------- A : 0 + {1} | z -x | + {1} | -y w | + +o7 : ChainComplexMap +i8 : s * C.dd + C.dd * s == -f + +o8 = true +i9 : V = s_0 + +o9 = {1} | z -x | + {1} | -y w | + + 2 2 +o9 : Matrix A <--- A +i10 : A = QQ[x,y,z]; +i11 : f = x^3 + 3*y^3 - 2*y*z^2 + 5*z^3; +i12 : B = A/f; +i13 : m = ideal(x,y,z) + +o13 = ideal (x, y, z) + +o13 : Ideal of B +i14 : M = B^1/m^2; +i15 : F = resolution(M, LengthLimit=>8) + + 1 6 9 9 9 9 9 9 9 +o15 = B <-- B <-- B <-- B <-- B <-- B <-- B <-- B <-- B + + 0 1 2 3 4 5 6 7 8 + +o15 : ChainComplex +i16 : restrict1 = N -> coker(lift(presentation N,A) | f); +i17 : L = restrict1 cokernel F.dd_4; +i18 : C = res L; +i19 : U = C.dd_1; + + 9 9 +o19 : Matrix A <--- A +i20 : print U +{4} | 0 xy x2 y2 0 0 0 yz-5/2z2 0 | +{4} | 0 x2 -3y2 xy yz-5/2z2 0 yz-5/2z2 0 0 | +{4} | x2 0 -2yz+5z2 0 y2-5/2yz yz-5/2z2 -5/2yz 0 0 | +{5} | 0 0 0 1/3z 0 0 0 1/2y x | +{5} | 0 0 -z 0 1/2y 0 1/2y -1/2x 0 | +{5} | 0 -z 0 0 -1/2x 0 -1/2x 0 3y | +{5} | 0 0 0 -1/3x 0 1/2y -1/3z 0 0 | +{5} | -z y x 0 0 -1/2x 0 0 0 | +{5} | y 0 0 0 0 0 1/3x 0 -2y+5z | +i21 : s = nullhomotopy (-f * id_C); +i22 : V = s_0; + + 9 9 +o22 : Matrix A <--- A +i23 : print V +{6} | 0 0 -x 0 0 -2y2+5yz 0 -2yz+5z2 -3y2 | +{6} | 0 -x 0 0 0 -2yz+5z2 -3xy -3y2 -3yz | +{6} | -x y 0 0 -2yz+5z2 0 0 0 0 | +{6} | -3y 0 0 6yz-15z2 0 0 3x2 3xy 3xz | +{6} | 0 2z -3y -15xz -15yz 2x2 6yz-15z2 0 3x2 | +{6} | -2x 0 2z 0 -4yz+10z2 0 -6y2 2x2 0 | +{6} | 0 0 3y -6xy+15xz -6y2+15yz 0 -6yz+15z2 0 -3x2 | +{6} | 2z 0 0 -6y2 2x2 2xy 0 0 0 | +{6} | 0 0 0 -x2 -xy -y2 -xz -yz -z2 | +i24 : U*V+f==0 + +o24 = true +i25 : V*U+f==0 + +o25 = true +i26 : matrixFactorization = M -> ( + B := ring M; + f := (ideal B)_0; + e := numgens B; + F := resolution(M, LengthLimit => e+1); + L := restrict1 cokernel F.dd_(e+1); + C := res L; + U := C.dd_1; + s := nullhomotopy (-f * id_C); + V := s_0; + assert( U*V + f == 0 ); + assert( V*U + f == 0 ); + return (U,V)); +i27 : time (U,V) = matrixFactorization(B^1/m^3); + -- used 0.2 seconds +i28 : U; + + 15 15 +o28 : Matrix A <--- A +i29 : V; + + 15 15 +o29 : Matrix A <--- A +i30 : F.dd_3 - F.dd_5 == 0 + +o30 = false +i31 : F.dd_4 - F.dd_6 == 0 + +o31 = false +i32 : F.dd_5 - F.dd_7 == 0 + +o32 = true +i33 : M = B^1/m^2; +i34 : G = resolution(M, LengthLimit => 8, Strategy => 0) + + 1 6 9 9 9 9 9 9 9 +o34 = B <-- B <-- B <-- B <-- B <-- B <-- B <-- B <-- B + + 0 1 2 3 4 5 6 7 8 + +o34 : ChainComplex +i35 : G.dd_3 - G.dd_5 == 0 + +o35 = true +i36 : G.dd_4 - G.dd_6 == 0 + +o36 = true +i37 : G.dd_5 - G.dd_7 == 0 + +o37 = true +i38 : M = B^1/m^3; +i39 : F = resolution(M, LengthLimit=>8) + + 1 10 16 15 15 15 15 15 15 +o39 = B <-- B <-- B <-- B <-- B <-- B <-- B <-- B <-- B + + 0 1 2 3 4 5 6 7 8 + +o39 : ChainComplex +i40 : M' = restrict1 M; +i41 : C = res M' + + 1 10 15 6 +o41 = A <-- A <-- A <-- A <-- 0 + + 0 1 2 3 4 + +o41 : ChainComplex +i42 : K = ZZ/103; +i43 : A = K[x,Degrees=>{5}]; +i44 : B = A/(x^3); +i45 : M = B^1/(x^2); +i46 : N = B^1/(x); +i47 : H = Ext(M,N); +i48 : ring H + +o48 = K [$X , x, Degrees => {{-2, -15}, {0, 5}}] + 1 + +o48 : PolynomialRing +i49 : degree \ gens ring H + +o49 = {{-2, -15}, {0, 5}} + +o49 : List +i50 : S = ring H; +i51 : H + +o51 = cokernel {0, 0} | 0 x | + {-1, -10} | x 0 | + + 2 +o51 : S-module, quotient of S +i52 : A = K[x,y]; +i53 : J = ideal(x^3,y^2); + +o53 : Ideal of A +i54 : B = A/J; +i55 : N = cokernel matrix{{x^2,x*y}} + +o55 = cokernel | x2 xy | + + 1 +o55 : B-module, quotient of B +i56 : time H = Ext(N,N); + -- used 0.2 seconds +i57 : ring H + +o57 = K [$X , $X , x, y, Degrees => {{-2, -2}, {-2, -3}, {0, 1}, {0, 1}}] + 1 2 + +o57 : PolynomialRing +i58 : S = ring H; +i59 : transpose vars S + +o59 = {2, 2} | $X_1 | + {2, 3} | $X_2 | + {0, -1} | x | + {0, -1} | y | + + 4 1 +o59 : Matrix S <--- S +i60 : trim J + + 2 3 +o60 = ideal (y , x ) + +o60 : Ideal of A +i61 : H + +o61 = cokernel {-2, -2} | 0 0 0 0 0 0 0 0 0 0 0 y x 0 0 0 0 | + {-1, -1} | y 0 0 0 0 x 0 0 0 0 0 0 0 $X_1 0 0 0 | + {-1, -1} | 0 0 0 y 0 0 0 x 0 0 0 0 0 0 $X_1 0 0 | + {-1, -1} | 0 y 0 0 x 0 0 0 0 0 0 0 0 0 0 0 0 | + {-1, -1} | 0 0 y 0 0 0 x 0 0 0 0 0 0 0 0 0 0 | + {0, 0} | 0 0 0 0 0 0 0 0 y2 xy x2 0 0 0 0 $X_1y $X_1x | + + 6 +o61 : S-module, quotient of S +i62 : partSelector = predicate -> H -> ( + R := ring H; + H' := prune image matrix { + select( + apply(numgens H, i -> H_{i}), + f -> predicate first first degrees source f + ) + }; + H'); +i63 : evenPart = partSelector even; oddPart = partSelector odd; +i65 : evenPart H + +o65 = cokernel {-2, -2} | 0 0 0 y x 0 0 | + {0, 0} | y2 xy x2 0 0 $X_1y $X_1x | + + 2 +o65 : S-module, quotient of S +i66 : oddPart H + +o66 = cokernel {-1, -1} | 0 0 y 0 0 0 x 0 0 0 | + {-1, -1} | 0 y 0 0 x 0 0 0 0 0 | + {-1, -1} | 0 0 0 y 0 0 0 x 0 $X_1 | + {-1, -1} | y 0 0 0 0 x 0 0 $X_1 0 | + + 4 +o66 : S-module, quotient of S +i67 : print code(Ext,Module,Module) +-- ../../../m2/ext.m2:82-171 +Ext(Module,Module) := Module => (M,N) -> ( + cacheModule := youngest(M,N); + cacheKey := (Ext,M,N); + if cacheModule#?cacheKey then return cacheModule#cacheKey; + B := ring M; + if B =!= ring N + then error "expected modules over the same ring"; + if not isCommutative B + then error "'Ext' not implemented yet for noncommutative rings."; + if not isHomogeneous B + then error "'Ext' received modules over an inhomogeneous ring"; + if not isHomogeneous N or not isHomogeneous M + then error "'Ext' received an inhomogeneous module"; + if N == 0 then B^0 + else if M == 0 then B^0 + else ( + p := presentation B; + A := ring p; + I := ideal mingens ideal p; + n := numgens A; + c := numgens I; + if c =!= codim B + then error "total Ext available only for complete intersections"; + f := apply(c, i -> I_i); + pM := lift(presentation M,A); + pN := lift(presentation N,A); + M' := cokernel ( pM | p ** id_(target pM) ); + N' := cokernel ( pN | p ** id_(target pN) ); + C := complete resolution M'; + X := local X; + K := coefficientRing A; + -- compute the fudge factor for the adjustment of bidegrees + fudge := if #f > 0 then 1 + max(first \ degree \ f) // 2 else 0; + S := K(monoid [X_1 .. X_c, toSequence A.generatorSymbols, + Degrees => { + apply(0 .. c-1, i -> {-2, - first degree f_i}), + apply(0 .. n-1, j -> { 0, first degree A_j}) + }, + Adjust => v -> {- fudge * v#0 + v#1, - v#0}, + Repair => w -> {- w#1, - fudge * w#1 + w#0} + ]); + -- make a monoid whose monomials can be used as indices + Rmon := monoid [X_1 .. X_c,Degrees=>{c:{2}}]; + -- make group ring, so 'basis' can enumerate the monomials + R := K Rmon; + -- make a hash table to store the blocks of the matrix + blks := new MutableHashTable; + blks#(exponents 1_Rmon) = C.dd; + scan(0 .. c-1, i -> + blks#(exponents Rmon_i) = nullhomotopy (- f_i*id_C)); + -- a helper function to list the factorizations of a monomial + factorizations := (gamma) -> ( + -- Input: gamma is the list of exponents for a monomial + -- Return a list of pairs of lists of exponents showing the + -- possible factorizations of gamma. + if gamma === {} then { ({}, {}) } + else ( + i := gamma#-1; + splice apply(factorizations drop(gamma,-1), + (alpha,beta) -> apply (0..i, + j -> (append(alpha,j), append(beta,i-j)))))); + scan(4 .. length C + 1, + d -> if even d then ( + scan( exponents \ leadMonomial \ first entries basis(d,R), + gamma -> ( + s := - sum(factorizations gamma, + (alpha,beta) -> ( + if blks#?alpha and blks#?beta + then blks#alpha * blks#beta + else 0)); + -- compute and save the nonzero nullhomotopies + if s != 0 then blks#gamma = nullhomotopy s; + )))); + -- make a free module whose basis elements have the right degrees + spots := C -> sort select(keys C, i -> class i === ZZ); + Cstar := S^(apply(spots C, + i -> toSequence apply(degrees C_i, d -> {i,first d}))); + -- assemble the matrix from its blocks. + -- We omit the sign (-1)^(n+1) which would ordinarily be used, + -- which does not affect the homology. + toS := map(S,A,apply(toList(c .. c+n-1), i -> S_i), + DegreeMap => prepend_0); + Delta := map(Cstar, Cstar, + transpose sum(keys blks, m -> S_m * toS sum blks#m), + Degree => {-1,0}); + DeltaBar := Delta ** (toS ** N'); + assert isHomogeneous DeltaBar; + assert(DeltaBar * DeltaBar == 0); + -- now compute the total Ext as a single homology module + cacheModule#cacheKey = prune homology(DeltaBar,DeltaBar))) +i68 : A = K[x,y,z]; +i69 : J = trim ideal(x^3,y^4,z^5) + + 3 4 5 +o69 = ideal (x , y , z ) + +o69 : Ideal of A +i70 : B = A/J; +i71 : f = random (B^3, B^{-2,-3}) + +o71 = | 27x2+49xy-14y2-23xz-6yz-19z2 38x2y-34xy2+4y3+x2z+16xyz-y2z-5xz2-6yz2+47z3 | + | -5x2+44xy+38y2+40xz+15yz+4z2 -37x2y+51xy2-36y3+26x2z-38xyz-17y2z+17xz2-11yz2+8z3 | + | 21x2-30xy+32y2-47xz+7yz-50z2 -6x2y-14xy2-26y3-7x2z+41xyz+50y2z+26xz2+46yz2-44z3 | + + 3 2 +o71 : Matrix B <--- B +i72 : f_{1} + +o72 = | 38x2y-34xy2+4y3+x2z+16xyz-y2z-5xz2-6yz2+47z3 | + | -37x2y+51xy2-36y3+26x2z-38xyz-17y2z+17xz2-11yz2+8z3 | + | -6x2y-14xy2-26y3-7x2z+41xyz+50y2z+26xz2+46yz2-44z3 | + + 3 1 +o72 : Matrix B <--- B +i73 : M = cokernel f; +i74 : time P = Ext(M,B^1/(x,y,z)); + -- used 1.65 seconds +i75 : S = ring P; +i76 : transpose vars S + +o76 = {2, 3} | $X_1 | + {2, 4} | $X_2 | + {2, 5} | $X_3 | + {0, -1} | x | + {0, -1} | y | + {0, -1} | z | + + 6 1 +o76 : Matrix S <--- S +i77 : R = K[X_1..X_3,Degrees => {{-2,-3},{-2,-4},{-2,-5}}, + Adjust => S.Adjust, Repair => S.Repair]; +i78 : phi = map(R,S,{X_1,X_2,X_3,0,0,0}) + +o78 = map(R,S,{X , X , X , 0, 0, 0}) + 1 2 3 + +o78 : RingMap R <--- S +i79 : P = prune (phi ** P); +i80 : transpose vars ring P + +o80 = {2, 3} | X_1 | + {2, 4} | X_2 | + {2, 5} | X_3 | + + 3 1 +o80 : Matrix R <--- R +i81 : evenPart P + +o81 = cokernel {-4, -10} | 0 0 0 0 0 0 0 0 0 0 | + {-4, -10} | 0 0 0 0 0 0 0 0 0 -X_2 | + {-4, -11} | 0 0 0 0 0 0 0 0 0 X_1 | + {0, 0} | 0 0 X_3 0 0 X_2 0 X_1 0 0 | + {0, 0} | 0 X_3 0 0 X_2 0 X_1 0 0 0 | + {0, 0} | X_3 0 0 X_2 0 0 0 0 X_1 0 | + {-2, -7} | 0 0 0 0 0 0 0 0 0 0 | + {-2, -7} | 0 0 0 0 0 0 0 0 0 0 | + {-2, -7} | 0 0 0 0 0 0 0 0 0 0 | + {-2, -7} | 0 0 0 0 0 0 0 0 0 0 | + + 10 +o81 : R-module, quotient of R +i82 : oddPart P + +o82 = cokernel {-1, -2} | X_3 0 X_2 0 0 0 0 X_1 | + {-3, -9} | 0 0 0 0 0 0 X_1 0 | + {-3, -9} | 0 0 0 0 0 X_1 0 0 | + {-3, -9} | 0 0 0 0 X_1 0 0 0 | + {-1, -3} | 0 X_2 0 X_1 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + + 11 +o82 : R-module, quotient of R +i83 : changeRing = H -> ( + S := ring H; + K := coefficientRing S; + degs := select(degrees source vars S, + d -> 0 != first d); + R := K[X_1 .. X_#degs, Degrees => degs, + Repair => S.Repair, Adjust => S.Adjust]; + phi := map(R,S,join(gens R,(numgens S - numgens R):0)); + prune (phi ** H) + ); +i84 : Ext(Module,Ring) := (M,k) -> ( + B := ring M; + if ideal k != ideal vars B + then error "expected the residue field of the module"; + changeRing Ext(M,coker vars B) + ); +i85 : use B; +i86 : k = B/(x,y,z); +i87 : use B; +i88 : P = Ext(M,k); +i89 : time oddPart P + -- used 0.09 seconds + +o89 = cokernel {-1, -2} | X_3 0 X_2 0 0 0 0 X_1 | + {-3, -9} | 0 0 0 0 0 0 X_1 0 | + {-3, -9} | 0 0 0 0 0 X_1 0 0 | + {-3, -9} | 0 0 0 0 X_1 0 0 0 | + {-1, -3} | 0 X_2 0 X_1 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + + 11 +o89 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-module, quotient of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}] + 1 2 3 1 2 3 +i90 : Ext(Ring,Module) := (k,M) -> ( + B := ring M; + if ideal k != ideal vars B + then error "expected the residue field of the module"; + changeRing Ext(coker vars B,M) + ); +i91 : time I = Ext(k,M); + -- used 14.83 seconds +i92 : evenPart I + +o92 = cokernel {0, 6} | 37X_2 37X_1 | + {0, 6} | -18X_2 -18X_1 | + {0, 6} | -13X_2 -13X_1 | + {0, 6} | -37X_2 -37X_1 | + {0, 6} | 22X_2 22X_1 | + {0, 6} | 0 0 | + {0, 6} | X_2 X_1 | + + 7 +o92 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-module, quotient of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}] + 1 2 3 1 2 3 +i93 : oddPart I + +o93 = cokernel {-1, 5} | -48X_3 13X_3 34X_3 3X_3 0 0 0 5X_1 -20X_1 X_1 | + {-1, 5} | 3X_3 -40X_3 8X_3 8X_3 0 0 0 33X_1 X_1 0 | + {-1, 5} | -X_3 37X_3 -13X_3 -35X_3 0 0 0 X_1 0 0 | + {-1, 4} | 4X_2 20X_2 3X_2 -47X_2 4X_1 20X_1 3X_1 0 0 0 | + {-1, 4} | 0 51X_2 0 -30X_2 0 51X_1 0 0 0 0 | + {-1, 4} | 0 12X_2 0 -3X_2 0 12X_1 0 0 0 0 | + {-1, 4} | 42X_2 12X_2 46X_2 25X_2 42X_1 12X_1 46X_1 0 0 0 | + {-1, 4} | 45X_2 24X_2 -14X_2 -35X_2 45X_1 24X_1 -14X_1 0 0 0 | + {-1, 4} | 0 0 X_2 0 0 0 X_1 0 0 0 | + {-1, 4} | X_2 0 0 0 X_1 0 0 0 0 0 | + {-1, 4} | 0 -40X_2 0 10X_2 0 -40X_1 0 0 0 0 | + {-1, 4} | 0 X_2 0 0 0 X_1 0 0 0 0 | + {-1, 3} | 0 0 0 X_1 0 0 0 0 0 0 | + + 13 +o93 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-module, quotient of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}] + 1 2 3 1 2 3 +i94 : T = ZZ[t,u,Inverses=>true,MonomialOrder=>RevLex]; +i95 : poincareSeries2 = M -> ( + B := ring M; + k := B/ideal vars B; + P := Ext(M,k); + h := hilbertSeries P; + T':= degreesRing P; + substitute(h, {T'_0=>t^-1,T'_1=>u^-1}) + ); +i96 : poincareSeries1 = M -> ( + substitute(poincareSeries2 M, {u=>1_T}) + ); +i97 : A' = K[x,y,z]; +i98 : B' = A'/(x^2,y^2,z^3); +i99 : C' = res(B'^1/(x,y,z), LengthLimit => 6) + + 1 3 6 10 15 21 28 +o99 = B' <-- B' <-- B' <-- B' <-- B' <-- B' <-- B' + + 0 1 2 3 4 5 6 + +o99 : ChainComplex +i100 : M' = coker transpose C'.dd_5 + +o100 = cokernel {-5} | -y 0 0 0 z 0 0 0 0 0 0 0 0 0 0 | + {-5} | -x -y 0 0 0 z 0 0 0 0 0 0 0 0 0 | + {-5} | 0 x -y 0 0 0 z 0 0 0 0 0 0 0 0 | + {-5} | 0 0 x -y 0 0 0 z 0 0 0 0 0 0 0 | + {-5} | 0 0 0 -x 0 0 0 0 z 0 0 0 0 0 0 | + {-5} | 0 0 0 0 y 0 0 0 0 0 0 0 0 0 0 | + {-5} | 0 0 0 0 -x y 0 0 0 0 0 0 0 0 0 | + {-5} | 0 0 0 0 0 x y 0 0 0 0 0 0 0 0 | + {-5} | 0 0 0 0 0 0 x y 0 0 0 0 0 0 0 | + {-5} | 0 0 0 0 0 0 0 -x y 0 0 0 0 0 0 | + {-5} | 0 0 0 0 0 0 0 0 x 0 0 0 0 0 0 | + {-6} | 0 0 0 0 0 0 0 0 0 -y 0 z 0 0 0 | + {-6} | 0 0 0 0 0 0 0 0 0 x -y 0 z 0 0 | + {-6} | 0 0 0 0 0 0 0 0 0 0 -x 0 0 z 0 | + {-6} | z2 0 0 0 0 0 0 0 0 0 0 y 0 0 0 | + {-6} | 0 -z2 0 0 0 0 0 0 0 0 0 x y 0 0 | + {-6} | 0 0 z2 0 0 0 0 0 0 0 0 0 -x y 0 | + {-6} | 0 0 0 z2 0 0 0 0 0 0 0 0 0 x 0 | + {-7} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z | + {-7} | 0 0 0 0 0 0 0 0 0 z2 0 0 0 0 y | + {-7} | 0 0 0 0 0 0 0 0 0 0 z2 0 0 0 x | + + 21 +o100 : B'-module, quotient of B' +i101 : poincareSeries2 M' + + -7 -6 -5 -6 -5 -4 2 -5 2 -4 2 -3 2 -2 3 -4 3 -3 3 -2 3 -1 4 -3 4 -2 4 -1 4 5 -2 5 -1 5 5 6 4 7 5 8 4 8 6 9 5 9 7 10 6 11 7 + 3u + 7u + 11u + t*u + 5t*u + 9t*u - 6t u - 14t u - 22t u - 11t u - 2t u - 10t u - 18t u - 9t u + 3t u + 7t u + 11t u + 15t + t u + 5t u + 9t + 13t u + t u + 3t u - t u + 3t u - 3t u + t u - 3t u - t u +o101 = ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + 2 2 2 2 3 + (1 - t u ) (1 - t u ) + +o101 : Divide +i102 : p = poincareSeries1 M + + 2 3 4 5 6 7 + 3 + 2t - 5t + 4t + 12t + t - 4t - t +o102 = ----------------------------------------- + 2 2 2 + (1 - t )(1 - t )(1 - t ) + +o102 : Divide +i103 : load "simplify.m2" +i104 : simplify p + + 2 3 4 5 6 + 3 - t - 4t + 8t + 4t - 3t - t +o104 = ---------------------------------- + 2 3 + (1 + t) (1 - t) + +o104 : Divide +i105 : T' = QQ[t,Inverses=>true,MonomialOrder=>RevLex]; +i106 : expansion = (n,q) -> ( + t := T'_0; + rho := map(T',T,{t,1}); + num := rho value numerator q; + den := rho value denominator q; + n = n + first degree den; + n = max(n, first degree num + 1); + (num + t^n) // den + ); +i107 : expansion(20,p) + + 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 +o107 = 3 + 2t + 4t + 10t + 15t + 25t + 32t + 46t + 55t + 73t + 84t + 106t + 119t + 145t + 160t + 190t + 207t + 241t + 260t + 298t + 319t + +o107 : T' +i108 : psi = map(K,B) + +o108 = map(K,B,{0, 0, 0}) + +o108 : RingMap K <--- B +i109 : apply(10, i -> rank (psi ** Ext^i(M,coker vars B))) + +o109 = {3, 2, 4, 10, 15, 25, 32, 46, 55, 73} + +o109 : List +i110 : use T; +i111 : complexity = M -> dim Ext(M,coker vars ring M); +i112 : complexity M + +o112 = 3 +i113 : k = coker vars ring H; +i114 : prune Hom(k,H) + +o114 = 0 + +o114 : K [$X , $X , x, y, Degrees => {{-2, -2}, {-2, -3}, {0, 1}, {0, 1}}]-module + 1 2 +i115 : criticalDegree = M -> ( + B := ring M; + k := B / ideal vars B; + P := Ext(M,k); + k = coker vars ring P; + - min ( first \ degrees source gens prune Hom(k,P)) + ); +i116 : criticalDegree M + +o116 = 1 +i117 : criticalDegree M' + +o117 = 5 +i118 : supportVarietyIdeal = M -> ( + B := ring M; + k := B/ideal vars B; + ann Ext(M,k) + ); +i119 : K'' = ZZ/7; +i120 : A'' = K''[x,y,z]; +i121 : J'' = ideal(x^7,y^7,z^7); + +o121 : Ideal of A'' +i122 : B'' = A''/J''; +i123 : scan((1,1) .. (3,3), (r,d) -> ( + V := cokernel random (B''^r,B''^{-d}); + << "------------------------------------------------------------------" + << endl + << "V = " << V << endl + << "support variety ideal = " + << timing supportVarietyIdeal V + << endl)) +------------------------------------------------------------------ +V = cokernel | -2x+3y+2z | +support variety ideal = ideal (X - 2X , X + X ) + 2 3 1 3 + -- 0.69 seconds +------------------------------------------------------------------ +V = cokernel | 3x2-2xy+xz-3yz | +support variety ideal = ideal(X + 3X + 2X ) + 1 2 3 + -- 0.48 seconds +------------------------------------------------------------------ +V = cokernel | -2x3+3x2y+y3-x2z-3y2z-xz2-3z3 | +support variety ideal = 0 + -- 1.27 seconds +------------------------------------------------------------------ +V = cokernel | -3y+3z | + | -2x-2y | +support variety ideal = ideal(X + X - X ) + 1 2 3 + -- 0.87 seconds +------------------------------------------------------------------ +V = cokernel | -x2+2y2-xz+yz+3z2 | + | 2xy-3xz-3yz-2z2 | +support variety ideal = 0 + -- 1.32 seconds +------------------------------------------------------------------ +V = cokernel | -x3-2x2y-xy2-2xyz+3y2z+2xz2-yz2-2z3 | + | 2xy2+3y3-3x2z-2y2z+2xz2+2yz2 | +support variety ideal = 0 + -- 2.25 seconds +------------------------------------------------------------------ +V = cokernel | 3x-y-z | + | -3x-y+2z | + | x-2y+3z | +support variety ideal = 0 + -- 1.36 seconds +------------------------------------------------------------------ +V = cokernel | 2x2-2xy+2y2+2xz-3z2 | + | -x2+2xy+y2+3xz+3yz-z2 | + | -2xz+2yz+2z2 | +support variety ideal = 0 + -- 1.43 seconds +------------------------------------------------------------------ +V = cokernel | 2x3-x2y+2xy2-y3-2xyz+3y2z+xz2+3yz2+z3 | + | -3x3-3x2y+3xy2+2x2z+3xyz-3y2z-xz2 | + | -3x3-2x2y-xy2-2y3-2xyz+y2z+xz2+3yz2-z3 | +support variety ideal = 0 + -- 1.96 seconds +i124 : bassSeries2 = M -> ( + B := ring M; + k := B/ideal vars B; + I := Ext(k,M); + h := hilbertSeries I; + T':= degreesRing I; + substitute(h, {T'_0=>t^-1, T'_1=>u}) + ); +i125 : bassSeries1 = M -> ( + substitute(bassSeries2 M, {u=>1_T}) + ); +i126 : use B; +i127 : L = B^1/(x,y,z); +i128 : p = poincareSeries2 L + + 2 2 3 3 + 1 + 3t*u + 3t u + t u +o128 = ------------------------------ + 2 3 2 4 2 5 + (1 - t u )(1 - t u )(1 - t u ) + +o128 : Divide +i129 : b = bassSeries2 L + + -1 2 -2 3 -3 + 1 + 3t*u + 3t u + t u +o129 = --------------------------------- + 2 -3 2 -4 2 -5 + (1 - t u )(1 - t u )(1 - t u ) + +o129 : Divide +i130 : b2 = bassSeries2 M + + 6 3 4 5 2 2 2 3 3 3 3 2 4 -1 5 -3 + 7u + t*u + 9t*u + 3t*u - t u - t u - 4t - 3t u - 3t u + t u + 3t u +o130 = ------------------------------------------------------------------------------ + 2 -3 2 -4 2 -5 + (1 - t u )(1 - t u )(1 - t u ) + +o130 : Divide +i131 : b1 = bassSeries1 M; +i132 : simplify b1 + + 2 3 4 + 7 + 6t - 8t - 2t + 3t +o132 = ------------------------ + 2 3 + (1 + t) (1 - t) + +o132 : Divide +i133 : ext = (M,N) -> changeRing Ext(M,N); +i134 : use B; +i135 : N = B^1/(x^2 + z^2,y^3); +i136 : time rH = ext(M,N); + -- used 15.88 seconds +i137 : evenPart rH + +o137 = cokernel {-4, -9} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 | + {0, 2} | 0 0 0 0 0 0 0 X_3 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 | + {0, 2} | 0 0 0 0 0 X_3 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 | + {0, 2} | 0 0 0 0 0 0 X_3 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | 0 0 0 0 X_3 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | 0 0 0 X_3 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | 0 0 X_3 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | 0 X_3 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | X_3 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -4X_2 -22X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -50X_2 8X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 46X_2 9X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16X_2 -14X_2 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7X_2 -48X_2 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 | + {0, 1} | 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + + 17 +o137 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-module, quotient of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}] + 1 2 3 1 2 3 +i138 : oddPart rH + +o138 = cokernel {-3, -6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -45X_1 4X_1 -31X_1 -13X_1 X_1 | + {-3, -6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -41X_1 7X_1 -43X_1 X_1 0 | + {-3, -6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10X_1 -32X_1 X_1 0 0 | + {-3, -6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4X_1 X_1 0 0 0 | + {-3, -6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 | + {-1, -1} | -39X_3 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 | + {-1, -1} | 31X_3 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 | + {-1, -1} | -34X_3 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 | + {-1, -1} | -35X_3 0 0 0 0 X_2 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 | + {-1, -1} | -29X_3 0 0 0 X_2 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 | + {-1, -1} | 12X_3 0 0 X_2 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 | + {-1, -1} | -8X_3 0 X_2 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 | + {-1, -1} | X_3 X_2 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 | + {-3, -7} | 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 | + + 14 +o138 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-module, quotient of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}] + 1 2 3 1 2 3 +i139 : N' = B^1/(x^2 + z^2,y^3 - 2*z^3); +i140 : time rH' = ext(M,N'); + -- used 20.28 seconds +i141 : evenPart rH' + +o141 = cokernel {-4, -8} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48X_2 -48X_2 47X_2 -45X_2 -17X_2 | + {-4, -8} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -5X_2 44X_2 -23X_2 0 0 | + {-4, -9} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -51X_1 42X_1 11X_1 19X_1 -X_1 30X_1 | + {-4, -9} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -32X_1 -11X_1 -49X_1 -49X_1 45X_1 44X_1 | + {-4, -9} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35X_1 48X_1 -13X_1 25X_1 -33X_1 -35X_1 | + {-4, -9} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -51X_1 -3X_1 -8X_1 -16X_1 17X_1 -24X_1 | + {-4, -9} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -46X_1 34X_1 -27X_1 11X_1 -5X_1 -41X_1 | + {-4, -9} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -24X_1 -17X_1 16X_1 -7X_1 24X_1 -5X_1 | + {0, 2} | 0 0 0 0 0 0 X_3 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | 0 0 0 0 0 X_3 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 4X_2 0 0 0 0 -14X_2 -4X_2 12X_2 47X_2 18X_2 -45X_2 31X_2 37X_2 3X_2 45X_2 0 0 0 0 0 0 0 0 0 49X_1 -43X_1 26X_1 -40X_1 X_1 32X_1 0 -49X_1 21X_1 -13X_1 -44X_1 30X_1 19X_1X_3 -14X_2^2+2X_1X_3 -29X_2^2-7X_1X_3 -2X_2^2-32X_1X_3 -23X_2^2+12X_1X_3 X_2^2+13X_1X_3 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 41X_2 0 0 0 0 8X_2 -44X_2 9X_2 12X_2 48X_2 -7X_2 0 -22X_2 -50X_2 11X_2 0 0 0 0 0 0 0 0 0 -8X_1 35X_1 -8X_1 29X_1 -2X_1 3X_1 47X_1 7X_1 0 -28X_1 -34X_1 36X_1 39X_1X_3 -33X_2^2+20X_1X_3 -47X_2^2-21X_1X_3 -6X_2^2+41X_1X_3 X_2^2+2X_1X_3 33X_1X_3 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 14X_2 0 0 0 0 -42X_2 17X_2 40X_2 40X_2 23X_2 42X_2 -44X_2 39X_2 -41X_2 5X_2 0 0 0 0 0 0 0 0 0 -18X_1 45X_1 30X_1 -10X_1 -28X_1 -19X_1 10X_1 -10X_1 -16X_1 7X_1 -37X_1 13X_1 -27X_1X_3 10X_2^2+35X_1X_3 -40X_2^2+17X_1X_3 X_2^2+29X_1X_3 -33X_1X_3 -48X_1X_3 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 24X_2 0 0 0 0 19X_2 -16X_2 49X_2 51X_2 -49X_2 31X_2 -33X_2 -48X_2 18X_2 -46X_2 0 0 0 0 0 0 0 0 0 13X_1 -38X_1 11X_1 -39X_1 -11X_1 46X_1 20X_1 -2X_1 20X_1 -17X_1 49X_1 27X_1 X_1X_3 32X_2^2 X_2^2 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 50X_2 0 0 0 0 25X_2 -X_2 -12X_2 29X_2 27X_2 50X_2 37X_2 28X_2 28X_2 27X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 X_2^2 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 | + {0, 2} | 0 0 0 0 X_3 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | 0 0 X_3 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | 0 0 0 X_3 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | 0 X_3 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | X_3 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {0, 1} | 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {0, 1} | 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + + 33 +o141 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-module, quotient of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}] + 1 2 3 1 2 3 +i142 : oddPart rH' + +o142 = cokernel {-3, -6} | 0 0 0 0 0 0 0 0 -42X_2 21X_2 -47X_2 -13X_2 32X_2 49X_2 | + {-3, -6} | 0 0 0 0 0 0 0 0 -6X_2 -32X_2 -38X_2 -27X_2 -11X_2 -47X_2 | + {-3, -6} | 0 0 0 0 0 0 0 0 -8X_2 12X_2 -12X_2 -34X_2 -12X_2 -5X_2 | + {-3, -6} | 0 0 0 0 0 0 0 0 26X_2 -36X_2 36X_2 21X_2 47X_2 29X_2 | + {-3, -6} | 0 0 0 0 0 0 0 0 50X_2 18X_2 -37X_2 23X_2 -12X_2 42X_2 | + {-3, -6} | 0 0 0 0 0 0 0 0 31X_2 7X_2 -49X_2 -34X_2 -46X_2 11X_2 | + {-3, -7} | 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 | + {-3, -7} | 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 | + {-3, -7} | 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 | + {-3, -7} | 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 | + {-3, -7} | 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 | + {-3, -7} | 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 | + {-1, -2} | 0 0 0 X_2 0 0 0 X_1 0 0 0 0 0 0 | + {-1, -2} | 0 0 X_2 0 0 0 X_1 0 0 0 0 0 0 0 | + {-1, -2} | 0 X_2 0 0 0 X_1 0 0 0 0 0 0 0 0 | + {-1, -2} | X_2 0 0 0 X_1 0 0 0 0 0 0 0 0 0 | + + 16 +o142 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-module, quotient of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}] + 1 2 3 1 2 3 +i143 : extgenSeries2 = (M,N) -> ( + H := ext(M,N); + h := hilbertSeries H; + T':= degreesRing H; + substitute(h, {T'_0=>t^-1,T'_1=>u^-1}) + ); +i144 : extgenSeries1 = (M,N) -> ( + substitute(extgenSeries2(M,N), {u=>1_T}) + ); +i145 : time extgenSeries2(M,N) + -- used 0.13 seconds + + -2 -1 2 2 2 2 3 2 4 3 4 3 5 3 6 3 7 4 5 4 6 4 7 4 8 4 9 5 8 5 9 6 10 6 11 6 12 7 13 + 8u + u + 8t*u - 8t u - 9t u - 9t u + 7t u - 8t u - 8t u + 4t u + t u + 8t u + 9t u + t u - 2t u + t u + 8t u - 4t u - 8t u + 2t u - t u - t u +o145 = ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- + 2 3 2 4 2 5 + (1 - t u )(1 - t u )(1 - t u ) + +o145 : Divide +i146 : g=time extgenSeries1(M,N) + -- used 0.45 seconds + + 2 3 4 5 6 7 + 9 + 8t - 19t - 11t + 17t + 4t - 7t - t +o146 = -------------------------------------------- + 2 2 2 + (1 - t )(1 - t )(1 - t ) + +o146 : Divide +i147 : simplify g + + 2 3 4 + 9 - t - 9t + 6t + t +o147 = ---------------------- + 2 + (1 + t)(1 - t) + +o147 : Divide +i148 : time extgenSeries2(M,N') + -- used 0.15 seconds + + -2 -1 2 2 2 2 2 3 2 4 3 5 3 6 3 7 4 5 4 6 4 7 4 8 4 9 5 9 5 10 6 10 6 11 6 12 + 7u + 2u + 4t*u - 7t u - 9t u - 9t u + 16t u - 4t u + 2t u + 6t u + 7t u + 9t u - 5t u - 9t u + 6t u + 4t u - 6t u - 7t u + 11t u - 6t u +o148 = ---------------------------------------------------------------------------------------------------------------------------------------------------------------- + 2 3 2 4 2 5 + (1 - t u )(1 - t u )(1 - t u ) + +o148 : Divide +i149 : g'=time extgenSeries1(M,N') + -- used 0.18 seconds + + 2 3 4 5 6 + 9 + 4t - 9t + 4t + 8t - 2t - 2t +o149 = ------------------------------------ + 2 2 2 + (1 - t )(1 - t )(1 - t ) + +o149 : Divide +i150 : simplify g' + + 2 3 5 + 9 - 5t - 4t + 8t - 2t +o150 = ------------------------ + 2 3 + (1 + t) (1 - t) + +o150 : Divide +i151 : complexityPair = (M,N) -> dim ext(M,N); +i152 : time complexityPair(M,N) + -- used 0.41 seconds + +o152 = 2 +i153 : time complexityPair(M,N') + -- used 0.12 seconds + +o153 = 3 +i154 : supportVarietyPairIdeal = (M,N) -> ann ext(M,N); +i155 : time supportVarietyPairIdeal(M,N) + -- used 0.99 seconds + +o155 = ideal X + 1 + +o155 : Ideal of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}] + 1 2 3 +i156 : time supportVarietyPairIdeal(M,N') + -- used 1.69 seconds + +o156 = 0 + +o156 : Ideal of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}] + 1 2 3 +i157 : \ No newline at end of file diff --git a/Book/ComputationsBook/chapters/completeIntersections/Makefile b/Book/ComputationsBook/chapters/completeIntersections/Makefile new file mode 100644 index 0000000..cefcd00 --- /dev/null +++ b/Book/ComputationsBook/chapters/completeIntersections/Makefile @@ -0,0 +1,2 @@ +NAME := ci +include ../../Makefile.chapter diff --git a/Book/ComputationsBook/chapters/completeIntersections/authors b/Book/ComputationsBook/chapters/completeIntersections/authors new file mode 100644 index 0000000..ef568e5 --- /dev/null +++ b/Book/ComputationsBook/chapters/completeIntersections/authors @@ -0,0 +1,3 @@ +To: Luchezar Avramov +CC: Daniel Grayson +Subject: Macaulay 2 book diff --git a/Book/ComputationsBook/chapters/completeIntersections/ci-m2.tex b/Book/ComputationsBook/chapters/completeIntersections/ci-m2.tex new file mode 100644 index 0000000..02c73aa --- /dev/null +++ b/Book/ComputationsBook/chapters/completeIntersections/ci-m2.tex @@ -0,0 +1,3418 @@ +% Dan: 333-6209 (office) 367-6384 (home) + +\CompileMatrices + +\newtheorem{sRemark}{Remark}{\bfseries}{\rm} +\newtheorem{notation}[theorem]{Notation}{\bfseries}{\rm} +\newtheorem{construction}[theorem]{Construction}{\bfseries}{\rm} +\numberwithin{sRemark}{subsection} +\newtheorem{sExample}[sRemark]{Example}{\bfseries}{\rm} +\newtheorem{sCode}[sRemark]{Code}{\bfseries}{\rm} + +\title{Resolutions and Cohomology \\ over Complete Intersections} +\titlerunning{Complete Intersections} +\toctitle{Resolutions and Cohomology over Complete Intersections} + +\author{Luchezar L. Avramov + %\inst 1 + \and Daniel R. Grayson% + %\inst 2 + %\fnmsep + \thanks{Authors supported by the NSF, grants DMS 99-70375 and + DMS 99-70085.}} +\authorrunning{L. L. Avramov and D. R. Grayson} +% \institute{Purdue University, Department of Mathematics +% % \endgraf {\tt http://www.math.purdue.edu/\char`\~avramov} +% % \endgraf {\tt avramov\char`\@math.purdue.edu} +% \and University of Illinois at Urbana-Champaign, +% Department of Mathematics +% % \endgraf {\tt http://www.math.uiuc.edu/\char`\~dan} +% % \endgraf {\tt dan\char`\@math.uiuc.edu} +% } + +\hyphenation{quasi-iso-mor-phism} + +\newcommand\ssum[1]{{\underset{#1}{\sum{\vphantom\sum}^{\scriptscriptstyle+}}}} + +\def\ann{{\operatorname{ann}}} +\def\inv{{\operatorname{inv}}} +\def\reg{{\operatorname{reg}}} +\def\gr{{\operatorname{gr}}} +\def\bu{{\scriptscriptstyle\bullet}} +\def\HH{{\operatorname{H}}} +\def\Tor{\operatorname{Tor}} +\def\Ext{\operatorname{Ext}} +\def\rExt{\operatorname{ext}} +\def\Deg{\operatorname{Deg}} +\def\Poi{{P}} +\def\Ba{{I}} +\def\gen{{G}} +\def\depth{\operatorname{depth}} +\def\pd{\operatorname{pd}} +\def\cx{\operatorname{cx}} +\def\crdeg{\operatorname{crdeg}} +\def\rank{\operatorname{rank}} +\def\var{\operatorname{V}} +\def\lcontract{\operatorname{\lrcorner}} +\def\Hom{\operatorname{Hom}} +\def\Coker{\operatorname{Coker}} +\def\Ker{\operatorname{Ker}} +\def\Ima{\operatorname{Im}} +\def\C{{\mathbb C}} +\def\F{{\mathbb F}} +\def\N{{\mathbb N}} +\def\Z{{\mathbb Z}} +\def\DD{{\mathsf D}} +\def\SS{{\mathsf S}} +\def\Wedge{{\textstyle\bigwedge\limits}} +\def\a{\alpha} +\def\b{\beta} +\def\g{\gamma} +\def\d{\delta} +\def\e{\epsilon} +\def\o{\otimes} + +\maketitle +\begin{abstract} +This chapter contains a new proof and new applications of a theorem of +Shamash and Eisenbud, providing a construction of projective +resolutions of modules over a complete intersection. The duals of +these infinite projective resolutions are finitely generated +differential graded modules over a graded polynomial ring, so they can +be represented in the computer, and can be used to compute $\Ext$ +modules simultaneously in all homological degrees. It is shown how to +write \Mtwo code to implement the construction, and how to use the +computer to determine invariants of modules over complete intersections +that are difficult to obtain otherwise. +\index{complete intersection} + \end{abstract} + +\section*{Introduction} +\label{sec:introduction} + +Let $A=K[x_1,\dots,x_e]$ be a polynomial ring with variables of +positive degree over a field $K$, and $B=A/J$ a quotient ring modulo a +homogeneous ideal. + +In this paper we consider the case when $B$ is a {\it\ie{graded +complete intersection}\/}, that is, when the defining ideal $J$ is +generated by a homogeneous $A$-regular sequence. We set up, describe, +and illustrate a routine {\tt Ext}\indexcmd{Ext}, now implemented in +\Mtwo. For any two finitely generated graded $B$-modules $M$ and $N$ +it yields a presentation of $\Ext^\bu_B(M,N)$ as a bigraded module over +an appropriately bigraded polynomial ring $S=A[X_1,\dots,X_c]$. + +A novel feature of our routine is that it computes the modules +$\Ext^n_B(M,N)$ {\it simultaneously in all cohomological degrees\/} +$n\ge0$. This is made possible by the use of {\it cohomology +operations\/}, a technique usually confined to theoretical +considerations. Another aspect worth noticing is that, although the +result is over a ring $B$ with nontrivial relations, all the +computations are made over the {\it polynomial ring\/} $S$; this may +account for the effectiveness of the algorithm. + +To explain the role of the complete intersection hypothesis, we cast it +into the broader context of homological algebra over graded rings. + +Numerous results indicate that the high syzygy modules of $M$ exhibit +`similar' properties. For an outrageous example, assume that $M$ has +finite projective dimension. Its distant syzygies are then all equal +to $0$, and so---for trivial reasons---display an extremely uniform +behavior. However, even this case has a highly nontrivial aspect: due +to the Auslander-Buchsbaum Equality asymptotic information is available +after at most $(e+1)$ steps. This accounts for the effectiveness of +computer constructions of {\it finite\/} free resolutions. + +Problems that computers are not well equipped to handle arise +unavoidably when studying asymptotic behavior of {\it infinite\/} +resolutions. We describe some, using graded Betti numbers +$\b^B_{ns}(M)=\dim_K\Ext^n_B(M,k)_{-s}$, where $k=B/(x_1,\dots,x_e)B$, +and regularity $\reg_B(M)= \sup_{n,s}\{s-n\,|\, \b^B_{ns}(M)\ne0\}$. +\begin{itemize} +\item[$\bullet$] +{\it Irrationality\/}. +There are rings $B$ for which no recurrent relation with constant +coefficients exists among the numbers $\b^B_n(k)=\sum_{s}\b^B_{ns}(k)$, +see \cite{CI:MR86i:55011a}. +\item[$\bullet$] +{\it Irregularity\/}. +For each $r\ge2$ there exists a ring $B(r)$ with $\b^{B(r)}_{ns}(k)=0$ +for $s\ne n$ and $0\le n\le r$, but with $\b^{B(r)}_{r,r+1}(k)\ne0$, +see \cite{CI:MR94b:16040}. +\item[$\bullet$] +{\it Span\/}. +If $B$ is generated over $K$ by elements of degree one and $\reg_B(k) +\ne0$, then $\reg_B(k) =\infty$, see \cite{CI:AP}. +\item[$\bullet$] +{\it Size\/}. +There are inequalities $\b^B_n(k)\ge\beta^n$ for all $n\ge0$ and for +some constant $\beta>1$, unless $B$ is a complete intersection, see +\cite{CI:res}. + \end{itemize} + +These obstructions vanish miraculously when $B$ is a graded complete +intersection: For each $M$ and all $n\gg0$ the number $\b_{n+1}(M)$ is +a linear combination with constant coefficients of $\b^B_{n-2c}(M), +\dots,\b^B_{n}(M)$. If $B$ is generated in degree one, then +$\reg_B(k)=0$ if and only if the ideal $J$ is generated by quadratic +forms. There are inequalities $\b^B_n(M)\le\beta(M)n^{c-1}$ for all +$n\ge1$ and for some constant $\beta(M)>0$. + +The algebra behind the miracle is a theorem of Gulliksen +\cite{CI:MR51:487}, who proves that $\Ext^\bu_B(M,N)$ is a finitely +generated bigraded module over a polynomial {\it ring of cohomology +operators\/} $S=A[X_1,\dots,X_c]$, where each variable $X_i$ has +cohomological degree $2$. As a consequence of this result, problems in +Homological Algebra can be answered in terms of Commutative Algebra. + +Gulliksen's definition of the operators $X_i$ as iterated connecting +homomorphisms is badly suited for use by a computer. Other definitions +have been given subsequently by several authors, see Remark +\ref{history}. We take the approach of Eisenbud \cite{CI:Ei}, who +derives the operators from a specific $B$-free resolution of $M$, +obtained by extending a construction of Shamash \cite{CI:Sh}. + +The resolution of Shamash and Eisenbud, and Gulliksen's Finiteness +Theorem, are presented with detailed proofs in Section \ref{Cohomology +operators}. They are obtained through a new construction---that of an +intermediate resolution of $M$ over the polynomial ring---that encodes +$C$ and all the null-homotopies of $C$ corresponding to multiplication +with elements of $J$; this material is contained in Section +\ref{Universal homotopies}. It needs standard multilinear algebra, +developed {\sl ad hoc\/} in Section \ref{Graded algebras}. Rules for +juggling several gradings are discussed in an Appendix. + +In Section \ref{Computation of Ext modules} we present and illustrate +the code for the routine {\tt Ext}, which runs remarkably close to the +proofs in Sections \ref{Universal homotopies} and \ref{Cohomology +operators}. Section \ref{Invariants of modules} contains numerous +computations of popular numerical invariants of a graded module, like +its complexity, Poincar\'e series, and Bass series. They are extracted +from knowledge of the bigraded modules $\Ext^\bu_B(M,k)$ and +$\Ext^\bu_B(k,M)$, whose computation is also illustrated by examples, +and is further used to obtain explicit equations for the cohomology +variety $\var^*_B(M)$ defined in \cite{CI:MR90g:13027}. For most +invariants we include some short code that automates their +computation. In Section \ref{Invariants of pairs of modules} we +extend these procedures to invariants of pairs of modules. + +\section{Matrix Factorizations} +\label{Matrix factorizations} + +We start the discussion of homological algebra over a complete +intersection with a very special case, that can be packaged +attractively in matrix terms. + +Let $f$ be a non-zero-divisor in a commutative ring $A$. + +Following Eisenbud \cite[Sect.\ 5]{CI:Ei} we say that a pair $(U,V)$ of +matrices with entries in $A$, of sizes $k\times \ell$ and $\ell\times +k$, is a {\it\ie{matrix factorization}\/} of $-f$ if +\[ +U\cdot V= -f\cdot I_k \qquad\text{and}\qquad V\cdot U=-f\cdot I_\ell +\] +where $I_m$ denotes the $m\times m$ unit matrix. Localizing at $f$, one +sees that $-f^{-1}\cdot U$ and $V$ are inverse matrices over $A_f$; as a +consequence $\ell=k$, and each equality above implies the other, for +instance: +\[ +V\cdot U=\big(-f^{-1}\cdot U\big)^{-1}\cdot U= -f\cdot U^{-1}\cdot U= +-f\cdot I_k +\] +Here is a familiar example of matrix factorization, with $f=xy-wz$: +\[ +\begin{pmatrix} w & x \\ y & z \end{pmatrix}\cdot +\begin{pmatrix} z & -y \\ -x & w \end{pmatrix}= +-(xy-wz)\cdot +\begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}= +\begin{pmatrix} z & -y \\ -x & w \end{pmatrix}\cdot +\begin{pmatrix} w & x \\ y & z \end{pmatrix} +\] + +Let now $C_1$ and $C_0$ be free $A$-modules of rank $r$, and let +\[ +d_1\colon C_1\to C_0 \qquad\text{and}\qquad s_0\colon C_0\to C_1 +\] +be $A$-linear homomorphisms defined by the matrices $U$ and $V$, +respectively, after bases have been tacitly chosen. + +The second condition on the matrices $U$ and $V$ implies that $d_1$ is +injective, while the first condition on these matrices shows that +$fC_0$ is contained in $\Ima(d_1)$. Setting $L=\Coker(d_1)$, one sees +that the chosen matrix factorization defines a commutative diagram with +exact rows +\[ +\xymatrixrowsep{3pc} +\xymatrixcolsep{4pc} +\xymatrix{ +0 +\ar[r] +& C_1 +\ar[r]^-{d_1} +\ar[d]_{-f\cdot 1_{C_1}} +& C_0 +\ar[r] +\ar[d]^{-f\cdot 1_{C_0}} +\ar[dl]_-{s_0} +& L +\ar[r] +\ar[d]_{0_L=}^{-f\cdot1_L} +& 0 +\\ +0 +\ar[r] +& C_1 +\ar[r]^-{d_1} +& C_0 +\ar[r] +& L +\ar[r] +& 0 +} +\] +which expresses the following facts: $C=\ 0\to C_1\xrightarrow{d_1} +C_0\to 0$ is a free resolution of the $A$-module $L$, this module is +annihilated by $f$, and $s_0$ is a homotopy between the maps +$-f\cdot 1_C$ and $0_C$, both of which lift $-f\cdot 1_L$. + +Conversely, if an $A$-module $L$ annihilated by $f$ has a free +resolution $(C,d_1)$ of length $1$, then $\rank_AC_1=\rank_AC_0$, and +any choice of homotopy $s_0$ between $-f\cdot 1_C$ and $0_C$ provides a +matrix factorization of $-f$. + +When we already have an $A$-module $L$ with a presentation matrix $U$ +that defines an injective $A$-linear map, we can use \Mtwo to create a +matrix factorization $(U,V)$ of $-f$. + +\begin{Example} +\label{familiar} +We revisit the familiar example from a higher perspective. +\beginOutput +i1 : A = QQ[w,x,y,z]\\ +\emptyLine +o1 = A\\ +\emptyLine +o1 : PolynomialRing\\ +\endOutput +\beginOutput +i2 : U = matrix \{\{w,x\},\{y,z\}\}\\ +\emptyLine +o2 = | w x |\\ +\ | y z |\\ +\emptyLine +\ 2 2\\ +o2 : Matrix A <--- A\\ +\endOutput +\beginOutput +i3 : C = chainComplex U\\ +\emptyLine +\ 2 2\\ +o3 = A <-- A\\ +\ \\ +\ 0 1\\ +\emptyLine +o3 : ChainComplex\\ +\endOutput +\beginOutput +i4 : L = HH_0 C\\ +\emptyLine +o4 = cokernel | w x |\\ +\ | y z |\\ +\emptyLine +\ 2\\ +o4 : A-module, quotient of A\\ +\endOutput +\beginOutput +i5 : f = -det U\\ +\emptyLine +o5 = x*y - w*z\\ +\emptyLine +o5 : A\\ +\endOutput +Let's verify that $f$ annihilates $L$. +\beginOutput +i6 : f * L == 0\\ +\emptyLine +o6 = true\\ +\endOutput +We use the {\tt nullhomotopy} function.\indexcmd{nullhomotopy} +\beginOutput +i7 : s = nullhomotopy (-f * id_C)\\ +\emptyLine +\ 2 2\\ +o7 = 1 : A <----------------- A : 0\\ +\ \{1\} | z -x |\\ +\ \{1\} | -y w |\\ +\emptyLine +o7 : ChainComplexMap\\ +\endOutput +Let's verify that $s$ is a null-homotopy for $-f$, using {\tt +C.dd}\indexcmd{dd} to obtain the differential of the chain complex {\tt +C} as a map of graded modules. +\beginOutput +i8 : s * C.dd + C.dd * s == -f\\ +\emptyLine +o8 = true\\ +\endOutput +We extract the matrix $V$ from the null-homotopy to get our factorization. +\beginOutput +i9 : V = s_0\\ +\emptyLine +o9 = \{1\} | z -x |\\ +\ \{1\} | -y w |\\ +\emptyLine +\ 2 2\\ +o9 : Matrix A <--- A\\ +\endOutput +\end{Example} + +For every $f$ and every $r\ge1$ there exists a trivial matrix +factorization of $-f$, namely, $(f\cdot I_k, -I_k)$; it can be obtained +from the $A$-module $L=A^k/fA^k$. In general, it may not be clear how +to find an $A$-module $L$ with the properties necessary to obtain an +`interesting' matrix factorization of $-f$. + +However, in some cases the supply is plentiful. + +\begin{Remark} +\label{factorization} +Let $A$ be a graded polynomial ring in $e$ variables of positive degree +over a field $K$, let $f$ be a homogeneous polynomial in $A$, and set +$B=A/(f)$. Every $B$-module $M$ of infinite projective dimension +{\it\ie{generates}\/} a matrix factorization $(U,V)$ of $-f$, as follows. + +Let $(F,d_F)$ be a minimal graded free resolution of $M$ over $B$, and +set $L=\Coker\big(d_F\colon F_{e+1}\to F_e\big)$. Since $M$ has +infinite projective dimension, we have $L\ne0$. By the Depth Lemma, +$\depth_BL=\depth B$. On the other hand, $\depth_BL=\depth_AL$ and +$\depth B=\depth A-1$. By Hilbert's Syzygy Theorem, the minimal graded +free resolution $(C,d_C)$ of $L$ over $A$ is finite. By the +Auslander-Buchsbaum Equality, $C_n=0$ for $n>\depth A-\depth_AL=1$. + +The minimality of $F$ ensures that all nonzero entries of the +presentation matrix $U$ of $L$ are forms of positive degree. On +the other hand, by \cite[Sect.~0]{CI:Ei} the module $L$ has no direct +summand isomorphic to $B$: it follows that all nonzero entries of +the homotopy matrix $V$ are forms of positive degree (this is the +reason for choosing $L$ as above---stopping one step earlier in the +resolution $F$ could have produced a module $L$ with a non-zero free +direct summand). + \end{Remark} + +Our reader would have noticed that \Mtwo can read all the data and +perform all the operations needed to construct a module $L$ by the +procedure described in the preceding remark. Here is how it does it. + +\begin{Example} +\label{square} +We produce a matrix factorization of $-f$, where +\[ +f=x^3 + 3y^3 - 2yz^2 + 5z^3 \in\mathbb Q[x,y,z]=A +\] +generated by the module $M=B/{\mathfrak m}^2$, where $B=A/(f)$ and +${\mathfrak m}=(x,y,z)B$. +\beginOutput +i10 : A = QQ[x,y,z];\\ +\endOutput +\beginOutput +i11 : f = x^3 + 3*y^3 - 2*y*z^2 + 5*z^3;\\ +\endOutput +\beginOutput +i12 : B = A/f;\\ +\endOutput +\beginOutput +i13 : m = ideal(x,y,z)\\ +\emptyLine +o13 = ideal (x, y, z)\\ +\emptyLine +o13 : Ideal of B\\ +\endOutput +Let's take the $B$-module $M$ and compute its minimal $B$-free +resolution. +\beginOutput +i14 : M = B^1/m^2;\\ +\endOutput +\beginOutput +i15 : F = resolution(M, LengthLimit=>8)\\ +\emptyLine +\ 1 6 9 9 9 9 9 9 9\\ +o15 = B <-- B <-- B <-- B <-- B <-- B <-- B <-- B <-- B\\ +\ \\ +\ 0 1 2 3 4 5 6 7 8\\ +\emptyLine +o15 : ChainComplex\\ +\endOutput +We introduce a function {\tt restrict1 N} which accepts a $B$-module +$N$ and restricts scalars to produce an $A$-module. +\beginOutput +i16 : restrict1 = N -> coker(lift(presentation N,A) | f);\\ +\endOutput +Now make $L$ as described in Remark \ref{factorization} +\beginOutput +i17 : L = restrict1 cokernel F.dd_4;\\ +\endOutput +We proceed as in Example \ref{familiar} to get a matrix factorization. +\beginOutput +i18 : C = res L;\\ +\endOutput +\beginOutput +i19 : U = C.dd_1;\\ +\emptyLine +\ 9 9\\ +o19 : Matrix A <--- A\\ +\endOutput +\beginOutput +i20 : print U\\ +\{4\} | 0 xy x2 y2 0 0 0 yz-5/2z2 0 |\\ +\{4\} | 0 x2 -3y2 xy yz-5/2z2 0 yz-5/2z2 0 0 |\\ +\{4\} | x2 0 -2yz+5z2 0 y2-5/2yz yz-5/2z2 -5/2yz 0 0 |\\ +\{5\} | 0 0 0 1/3z 0 0 0 1/2y x |\\ +\{5\} | 0 0 -z 0 1/2y 0 1/2y -1/2x 0 |\\ +\{5\} | 0 -z 0 0 -1/2x 0 -1/2x 0 3y |\\ +\{5\} | 0 0 0 -1/3x 0 1/2y -1/3z 0 0 |\\ +\{5\} | -z y x 0 0 -1/2x 0 0 0 |\\ +\{5\} | y 0 0 0 0 0 1/3x 0 -2y+5z |\\ +\endOutput +\beginOutput +i21 : s = nullhomotopy (-f * id_C);\\ +\endOutput +\beginOutput +i22 : V = s_0;\\ +\emptyLine +\ 9 9\\ +o22 : Matrix A <--- A\\ +\endOutput +\beginOutput +i23 : print V\\ +\{6\} | 0 0 -x 0 0 -2y2+5yz 0 -2yz+5z2 -3y2 |\\ +\{6\} | 0 -x 0 0 0 -2yz+5z2 -3xy -3y2 -3yz |\\ +\{6\} | -x y 0 0 -2yz+5z2 0 0 0 0 |\\ +\{6\} | -3y 0 0 6yz-15z2 0 0 3x2 3xy 3xz |\\ +\{6\} | 0 2z -3y -15xz -15yz 2x2 6yz-15z2 0 3x2 |\\ +\{6\} | -2x 0 2z 0 -4yz+10z2 0 -6y2 2x2 0 |\\ +\{6\} | 0 0 3y -6xy+15xz -6y2+15yz 0 -6yz+15z2 0 -3x2 |\\ +\{6\} | 2z 0 0 -6y2 2x2 2xy 0 0 0 |\\ +\{6\} | 0 0 0 -x2 -xy -y2 -xz -yz -z2 |\\ +\endOutput +\beginOutput +i24 : U*V+f==0\\ +\emptyLine +o24 = true\\ +\endOutput +\beginOutput +i25 : V*U+f==0\\ +\emptyLine +o25 = true\\ +\endOutput +\end{Example} + +The procedure described above can be automated for more pleasant usage. + +\begin{code} +\label{factorization code} +The function {\tt matrixFactorization M} produces a matrix factorization +$(U,V)$ of $-f$ generated by a module $M$ over $B=A/(f)$. +\beginOutput +i26 : matrixFactorization = M -> (\\ +\ B := ring M;\\ +\ f := (ideal B)_0;\\ +\ e := numgens B;\\ +\ F := resolution(M, LengthLimit => e+1);\\ +\ L := restrict1 cokernel F.dd_(e+1);\\ +\ C := res L;\\ +\ U := C.dd_1;\\ +\ s := nullhomotopy (-f * id_C);\\ +\ V := s_0;\\ +\ assert( U*V + f == 0 );\\ +\ assert( V*U + f == 0 );\\ +\ return (U,V));\\ +\endOutput +We use the {\tt assert}\indexcmd{assert} command to signal an error in +case the matrices found don't satisfy our requirement for a matrix +factorization. + \end{code} + +Let's illustrate the new code with a slightly bigger module $M$ than +before. + +\begin{Example} +\label{cube} +With the same $A$, $f$, $B$, and $\mathfrak m$ as in Example +\ref{square}, we produce a matrix factorization generated by the +$B$-module $M=B/{\mathfrak m}^3$. +\beginOutput +i27 : time (U,V) = matrixFactorization(B^1/m^3);\\ +\ -- used 0.21 seconds\\ +\endOutput +The parallel assignment statement above provides both variables {\tt U} +and {\tt V} with matrix values. We examine their shapes without +viewing the matrices themselves by appending a semicolon to the +appropriate command. +\beginOutput +i28 : U;\\ +\emptyLine +\ 15 15\\ +o28 : Matrix A <--- A\\ +\endOutput +\beginOutput +i29 : V;\\ +\emptyLine +\ 15 15\\ +o29 : Matrix A <--- A\\ +\endOutput +\end{Example} + +Matrix factorizations were introduced to construct resolutions over the +the residue ring $B=A/(f)$, using the following observation. + +\begin{Remark} +\label{periodicity} +If $(U,V)$ is a factorization of $-f$ by $k\times k$ matrices and the +maps $d_1\colon C_1\to C_0$ and $s_0\colon C_0\to C_1$ are +homomorphisms of free $A$-modules defined by $U$ and $V$, respectively, +then the sequence +\[ +\cdots \to +C_1\otimes_AB \xrightarrow{d_1\o 1_B} +C_0\otimes_AB \xrightarrow{s_0\o 1_B} +C_1\otimes_AB \xrightarrow{d_1\o 1_B} +C_0\otimes_AB\to0 +\] +of $B$-linear maps is a free resolution of the $B$-module +$L=\Coker(d_1)$. + +Indeed, freeness is clear, and we have a complex because $d_1s_0= +-f\cdot 1_{C_0}$ and $s_0d_1=-f\cdot 1_{C_1}$. If $x\in C_1$ satisfies +$\big(d_1\o1_B\big)(x\o 1)=0$, then $d_1(x)=fy$ for some $y\in C_0$, +hence $d_1x=d_1s_0(y)$. As $d_1$ is injective, we get $x=s_0(y)$, so +$\Ker\big(d_1\o1_B\big)\subseteq \Ima\big(s_0\o1_B\big)$; the reverse +inclusion follows by symmetry. + \end{Remark} + +Pooling Remarks \ref{factorization} and \ref{periodicity} we recover +Eisenbud's result \cite[Sect.\ 6]{CI:Ei}. + +\begin{theorem} +Let $A$ be a graded polynomial ring in $e$ variables of positive degree +over a field $K$, and $f$ a homogeneous polynomial in $A$. The minimal +graded free resolution of every finitely generated graded module over +$B=A/(f)$ becomes periodic of period $2$ after at most $e$ steps. The +periodic part of the resolution is given by a matrix factorization of +$-f$ generated by $M$. + \end{theorem} + +We illustrate the theorem on an already computed example. + +\begin{Example} +Let $A$, $f$, $B$, $M$, and $F$ be as in Example \ref{square}. + +To verify the periodicity of $F$ we subtract pairs of differentials and +compare the result with $0$: direct comparison of the differentials +would not work, because the free modules involved have different degrees. +\beginOutput +i30 : F.dd_3 - F.dd_5 == 0\\ +\emptyLine +o30 = false\\ +\endOutput +\beginOutput +i31 : F.dd_4 - F.dd_6 == 0\\ +\emptyLine +o31 = false\\ +\endOutput +\beginOutput +i32 : F.dd_5 - F.dd_7 == 0\\ +\emptyLine +o32 = true\\ +\endOutput +The first two answers above come as a surprise---and suggest a property +of $F$ that is weaker than the one we already know to be true! + +There is an easy explanation: we checked the syzygy modules for {\it +equality\/}, rather than for {\it isomorphism\/}. We do not know why +\Mtwo didn't produce an equality at the earliest possible stage, nor why it +eventually produced one. The program has other strategies for computing +resolutions, so let's try one. +\beginOutput +i33 : M = B^1/m^2;\\ +\endOutput +\beginOutput +i34 : G = resolution(M, LengthLimit => 8, Strategy => 0)\\ +\emptyLine +\ 1 6 9 9 9 9 9 9 9\\ +o34 = B <-- B <-- B <-- B <-- B <-- B <-- B <-- B <-- B\\ +\ \\ +\ 0 1 2 3 4 5 6 7 8\\ +\emptyLine +o34 : ChainComplex\\ +\endOutput +\beginOutput +i35 : G.dd_3 - G.dd_5 == 0\\ +\emptyLine +o35 = true\\ +\endOutput +\beginOutput +i36 : G.dd_4 - G.dd_6 == 0\\ +\emptyLine +o36 = true\\ +\endOutput +\beginOutput +i37 : G.dd_5 - G.dd_7 == 0\\ +\emptyLine +o37 = true\\ +\endOutput +The strategy paid off, revealing periodicity at the earliest possible +stage. However, the algorithm used may be a lot slower that the +default algorithm. + \end{Example} + +\section{Graded Algebras} +\label{Graded algebras} + +We describe some standard universal algebras over a commutative ring $A$. + +Let $Q$ denote a free $A$-module of rank $c$, and set $Q^*=\Hom_A(Q,A)$. +We assign degree $2$ to the elements of $Q$, and degree $-2$ to those +of $Q^*$. We let $Q^\wedge$ denote a copy of $Q$ whose elements are +assigned degree $1$; if $x$ is an element of $Q$, then $x^\wedge$ +denotes the corresponding element of $Q^\wedge$. + +We use $\a = (\a_1 , \dots , \a_c ) \in \Z^c$ as a multi-index, set +$|\a| = \sum_i \a_i$, and order $\Z^c$ by the rule: $\a \ge \b$ means +$\a_i \ge \b_i$ for each $i$. We let $o$ denote the trivial element +of $\Z^c$, and $\e_i$ the $i$'th element of its standard basis. + +\begin{construction} +\label{algebras} +For each integer ${m}\ge0$ we form free $A$-modules +\begin{gather*} +\SS^{m}(Q^*) \quad\text{with basis}\quad \big\{X^{\a} : |\a|={m}\big\}\\ +\DD^{m}(Q) \quad\text{with basis}\quad \big\{Y^{(\a)} : |\a|={m}\big\}\\ +\Wedge^{m}(Q^\wedge) \quad\text{with basis}\quad +\big\{Y^{\wedge\a} : |\a|={m} \quad\text{and}\quad\a\le(\e_1+\cdots+\e_c)\big\} +\end{gather*} +For $m<0$ we declare the modules $\SS^{m}(Q^*)$, $\DD^{m}(Q)$, +and $\Wedge^{m}(Q^\wedge)$ to be equal to $0$, and define the symbols +$X^{\a}$, $Y^{(\a)}$, and $Y^{\wedge\a}$ accordingly; in addition, +we set $\Wedge^{m}(Q^\wedge)=0$ and $Y^{\wedge\a}=0$ if $|\a|\not\le +(\e_1+\cdots+\e_c)$, and we set +\begin{gather*} +X_i=X^{\e_i}\qquad Y_i=Y^{(\e_i)}\qquad Y_i^\wedge=Y^{\wedge\e_i} +\qquad\text{for}\qquad i=1,\dots,c +\end{gather*} +Taking $\SS^{m}(Q^*)$, $\DD^{m}(Q)$, and $\Wedge{}^{m}(Q^\wedge)$ as +homogeneous components of degree $-2m$, $2m$, and $m$, respectively, +we introduce graded algebras +\[ +S = \SS(Q^*)\qquad +D = \DD(Q)\qquad +E = \Wedge(Q^\wedge) +\] +by defining products of basis elements by the formulas +\begin{gather*} +X^{\a}\cdot X^{\b}=X^{\a+\b}\\ +Y^{(\a)}\cdot Y^{(\b)}= +\prod_{i=1}^c\frac{(\a_i+\b_i)!}{\a_i!\b_i!}Y^{(\a+\b)}\\ +Y^{\wedge\a}\cdot Y^{\wedge\b}=\inv(\a,\b)Y^{\wedge\,\a+\b} +\end{gather*} +where $\inv(\a,\b)$ denotes the number of pairs $(i,j)$ with +$\a_i=\b_j=1$ and $i>j$. Thus, $S$ is the {\it\ie{symmetric +algebra}\/} of $Q^*$, with $X^{o}=1$, while $D$ is the {\it\ie{divided +powers algebra}\/} of $Q$, with $Y^{(o)}=1$, and $E$ is the +{\it\ie{exterior algebra}\/} of $Q^\wedge$, with $Y^{\wedge\,o}=1$. We +identify $S$ and the polynomial ring $A[X_1,\dots,X_c]$. + \end{construction} + +A {\it\ie{homogeneous derivation}\/} of a graded $A$-algebra $W$ is a +homogeneous $A$-linear map $d\colon W\to W$ such that the +{\it\ie{Leibniz rule}\/} +\[ +d(x y) = d(x) y + (-1)^{\deg x\cdot\deg d} x d(y) +\] +holds for all homogeneous elements $x,y\in W$. + +\begin{construction} +\label{koszul} +Each sequence $f_1,\dots,f_c\in A$ yields a {\it\ie{Koszul map}\/} +\[ +\begin{gathered} +d_E \colon E \to E +\qquad\text{defined by the formula}\\ +d_E(Y^{\wedge\b}) = +\sum_{i=1}^c (-1)^{\b_1+\cdots+\b_{i-1}}f_iY^{\wedge\, \b-\e_i} +\end{gathered} +\] +It is a derivation of degree $-1$ and satisfies $d_E^2 = 0$. + \end{construction} + +\begin{construction} +\label{actions} +For every $X_i\in\SS^1(Q^*)$ and each $Y^{(\b)} \in \DD^{m}(Q)$ we set +\[ +X_i \lcontract Y^{(\b)} = Y^{(\b-\e_i)} \in \DD^{{m}-1}(Q) +\] +Extending this formula by $A$-bilinearity, we define $g\lcontract y$ for +all $g\in\SS^1(Q^*)$ and all $y\in D$. It is well known, and easily +verified, that the map $g\lcontract\colon y\mapsto g\lcontract y$ is a +graded derivation $D\to D$ of degree $-2$, and that the derivations +associated with arbitrary $g$ and $g'$ commute. As a consequence, the +formula +\[ +X^\a\lcontract Y^{(\b)} = +(X_1\lcontract)^{\a_1}\cdots(X_c\lcontract)^{\a_c}\big(Y^{(\b)}\big) +\in\DD^{|\b-\a|}(Q) +\] +extended $A$-linearly to all $u\in S$, defines on $D$ a structure of +graded $S$-module. + +The usual products on $S\otimes_AE$ and $D\otimes_A E$ and the induced +gradings +\begin{gather*} +(S\otimes_AE)_n= +\bigoplus_{\ell-2k=n}\SS^{k}(Q^*)\otimes_A \Wedge{}^{\ell}(Q^\wedge)\\ +(D\otimes_AE)_n= +\bigoplus_{\ell+2k=n}\DD^{(k)}(Q)\otimes_A \Wedge{}^{\ell}(Q^\wedge) +\end{gather*} +turn $S\otimes_AE$ and $D\otimes_A E$ into graded algebras. The +second one is a graded module over the first, for the action +$(u\o z)\cdot(y\o z')=(u\lcontract v)\o(z\cdot z')$. + \end{construction} + +\begin{construction} +\label{cartan} +The element $w=\sum_{i=1}^c X_i\o Y_i^\wedge$ yields a {\it\ie{Cartan +map}\/} +\[ +\begin{gathered} +d_{DE} \colon D \otimes_A E \to D \otimes_A E +\qquad\text{defined by the formula}\\ +d_{DE}( y \o z ) = w\cdot(y \o z) += \sum_{i=1}^c (X_i \lcontract y) \o (Y_i^\wedge\cdot z) +\end{gathered} +\] +It is an $E$-linear derivation of degree $-1$, and $d_{DE}^2 = 0$ +because $w^2=0$. + \end{construction} + +\begin{lemma} +\label{split} +For each integer $s$ define a complex $G^s$ as follows: +\[ +\cdots\to \DD^{k}(Q)\otimes_A \Wedge^{s-k}(Q^\wedge)\xrightarrow{w} +\DD^{k-1}(Q)\otimes_A \Wedge^{s-k+1}(Q^\wedge) \to \cdots +\] +with $\DD^{0}(Q)\otimes_A \Wedge^{s}(Q^\wedge)$ in degree $s$. If +$s>0$, then $G^s$ is split exact. +\end{lemma} + +\begin{proof} +Note that for each $s\in\Z$ there exist isomorphisms of complexes +$\bigoplus_{s=1}^\infty G^s\cong (D \otimes_A E)_{\ge1} \cong +\big(\bigotimes_{i=1}^c G(i)\big)_{\ge1}$, where $G(i)$ is the complex +\[ +\cdots\to +AY^{(k+1)}_i\otimes_A A +\xrightarrow{w_i}(AY^{(k)}_i)\otimes(AY^\wedge_i) +\xrightarrow{0}(AY^{(k)}_i)\otimes_A A +\to\cdots +\] +and $w_i$ is left multiplication with $X_i\o Y_i^\wedge$. This map +bijective, so each complex $G(i)_{\ge1}$ is split exact. The assertion +follows. \qed + \end{proof} + +\section{Universal Homotopies} +\label{Universal homotopies} + +This section contains the main new mathematical result of the paper. + +We introduce a universal construction, that takes as input a projective +resolution $C$ of an $A$-module $M$ and a finite set $\boldsymbol f$ of +elements annihilating $M$; the output is a new projective resolution of +$M$ over $A$. If $\boldsymbol f\ne\varnothing$, then the new +resolution is infinite---even when $C$ is finite---because it encodes +additional data: the null-homotopies for $f\cdot1_C$ for all +$f\in\boldsymbol f$, all compositions of such homotopies, and all +relations between those compositions. This higher-order information +tracks the transformation of the homological properties of $M$ when its +ring of operators is changed from $A$ to $A/({\boldsymbol f})$. + +Our construction is motivated by, and is similar to, one due to Shamash +\cite{CI:Sh} and Eisenbud \cite{CI:Ei}: assuming that the elements of +$\boldsymbol f$ form an $A$-regular sequence, they produce a projective +resolution of $M$ over $A/({\boldsymbol f})$. By contrast, we make no +assumption whatsoever on $\boldsymbol f$. With the additional +hypothesis, in the next section we quickly recover the original result +from the one below. As an added benefit, we eliminate the use of +spectral sequences from the proof. + +\begin{theorem} +\label{main} +Let $A$ be a commutative ring, let $f_1 , \dots, f_c$ be a sequence of +elements of $A$, let $M$ be an $A$-module annihilated by $f_i$ for +$i=1,\dots,c$, and let $r \colon C \to M$ be a resolution of $M$ by +projective (respectively, free) $A$-modules. + +There exists a family of homogeneous $A$-linear maps +\[ +\{d_\g \colon C \to C\mid \deg(d_\g)=2|\g| - 1\}_{\g \in \N^c} +\] +satisfying the following conditions +\begin{equation} +\label{family} +\begin{aligned} +d_o &= d_C +\quad\text{is the differential of}\quad C\\ +[d_o,d_\g] &= +\begin{cases} +-f_i\cdot 1_C &\text{if\quad} \g=\e_i \text{ for } i=1,\dots,c\\ +-\ssum{\a+\b=\g}d_\a d_\b &\text{if\quad} |\g|\ge2 +\end{cases} +\end{aligned} +\end{equation} +where $\sum^{\scriptscriptstyle +}$ denotes a summation restricted to +indices in $\N^c\smallsetminus\{o\}$. + +Any family $\{d_\g\}_{\g\in\N^c}$ as above defines an $A$-linear map +of degree $-1$, +\begin{equation} +\begin{gathered} +\label{dCD} +d_{CD} \colon C\otimes_AD \to C\otimes_AD +\qquad\text{given by}\\ +d_{CD}(x\o y) = \sum_{\g \in\N^c} d_\g(x) \o (X^{\g} \lcontract y) +\end{gathered} +\end{equation} +where $D$ is the divided powers algebra defined in Construction +\ref{algebras}, and the action of $X^{\g}$ on $D$ is defined in +Construction \ref{actions}. + +With $d_{E}$ and $d_{DE}$ defined in Constructions \ref{koszul} and +\ref{cartan} and the tensor product of maps of graded modules defined +as in Remark \ref{graded-map-tensor}, +the map +\begin{equation} +\begin{gathered} +\label{diff} +d\colon C \otimes_A D \otimes_A E \to C \otimes_A D \otimes_A E +\qquad\text{given by}\\ +d = d_{CD}\o 1_E + 1_C\o d_{DE} + 1_C\o 1_D\o d_E +\end{gathered} +\end{equation} +is an $A$-linear differential of degree $-1$, and the map +\begin{gather*} +q\colon C \otimes_A D \otimes_A E \to M +\qquad\text{given by}\\ +q(x\o y\o z)= +\begin{cases} +yz\cdot r(x) &\quad\text{if } \deg(y)=\deg(z)=0\\ +0 &\quad\text{otherwise} +\end{cases} +\end{gather*} +is a resolution of $M$ by projective (respectively, free) $A$-modules. + \end{theorem} + +For use in the proof, we bring up a few general homological points. + +A {\it\ie{bounded filtration}\/} of a chain complex $F$ is a sequence +\[ +0=F^0\subseteq F^1\subseteq\cdots\subseteq F^{s-1}\subseteq +F^s\subseteq\cdots +\] +of subcomplexes such that for each $n$ there exists an $s$ with +$F^s_n=F_n$. As usual, we let $\gr^s(F)$ denote the complex of +$A$-modules $F^s/F^{s-1}$. + +\begin{lemma} +\label{filtration} +Let $q\colon F \to F'$ be a morphism of complexes with bounded +filtrations, such that $q(F^s)\subseteq F'{}^s$ for all $s \in \Z$. If +for each $s$ the induced map $\gr^s(q)\colon\gr^s(F)\to\gr^s(F')$ is a +quasi-isomorphism, then so is $q$. + \end{lemma} + +\begin{proof} +Denoting $q^s$ the restriction of $q$ to $F^s$, we first show by +induction on $s$ that $\HH_n(q^s)$ is bijective for all $n$. The +assertion is clear for $s=0$, since $F^0=0$ and $F^{\prime\,0} = 0$. +For the inductive step, we assume that $q^{s-1}$ is a quasi-isomorphism +for some $s\ge1$. We have a commutative diagram of complexes +\[ + \xymatrix{ + 0 \ar[r] & F^{s-1} \ar[d]_{q^{s-1}} \ar[r] & F^s \ar[d]_{q^{s}}\ar[r] + & \gr^s(F) \ar[d]_{\gr^s(q)}\ar[r] & 0 \\ + 0 \ar[r] & F^{\prime\,s-1} \ar[r] & F^{\prime\, s} \ar[r] + & \gr^s(F') \ar[r] & 0 + } +\] +By hypothesis and inductive assumption, in the induced diagram +\[ +\xymatrixcolsep{0.65pc} + \xymatrix{ + \HH_{n+1}(\gr^s(F)) \ar[d]_{\HH_{n+1}(\gr^s(q))}^\cong \ar[r] & + \HH_n (F^{s-1}) \ar[d]_{\HH_n(q^{s-1})}^\cong \ar[r] & + \HH_n (F^s) \ar[d]_{\HH_n(q^s)} \ar[r] & + \HH_n (\gr^s(F)) \ar[d]_{\HH_n(\gr^s(q))}^\cong \ar[r] & + \HH_{n-1}(F^{s-1}) \ar[d]_{\HH_{n-1}(q^{s-1})}^\cong + \\ + \HH_{n+1}(\gr^s(F')) \ar[r] & + \HH_n (F^{\prime\,s-1}) \ar[r] & + \HH_n (F^{\prime\,s}) \ar[r] & + \HH_n (\gr^s{F'}) \ar[r] & + \HH_{n-1}(F^{\prime\,s-1}) + } +\] +the four outer vertical maps are bijective. By the Five-Lemma, so is +$\HH_n(q^s)$. + +Now we fix an integer $n \in \Z$, and pick $s$ so large that +\[ +F^s_{k}=F_{k} \qquad\text{and}\qquad +F^{\prime\, s}_{k}=F'_{k}\qquad\text{hold for}\qquad +k=n-1,n,n+1\,. +\] +The choice of $s$ implies that $\HH_n(F^{s}) = \HH_n(F)$, +$\HH_n(F^{\prime\,s}) = \HH_n(F')$, and $\HH_n(q^s) = \HH_n(q)$. Since +we have already proved that $\HH_n(q^s)$ is an isomorphism, we conclude +that $\HH_n(q)\colon \HH_n(F)\to \HH_n(F')$ is an isomorphism. + \qed \end{proof} + +\begin{Remark} +\label{commutator} +If $(F,d_F)$ is a complex of $A$-modules, then $\Hom^{\gr}_A(F,F)$ +denotes the graded module whose $n$'th component consists of the +$A$-linear maps $g\colon F\to F$ with $g(F_i)\subseteq F_{i+n}$ for all +$i\in\Z$. + +If $g,h$ are homogeneous +$A$-linear maps, then their composition $gh$ is homogeneous of degree +$\deg(g)+\deg(h)$, and so is their graded commutator +\[ +[g,h] = g h - (-1)^{\deg g\cdot \deg h} h g +\] +Commutation is a graded derivation: for each homogeneous map $h'$ one has +\[ +[g,hh']= [g,h]h'+(-1)^{\deg g\cdot \deg h}h[g,h'] +\] + +The map $h\mapsto [d_F,h]$ has square $0$, and transforms +$\Hom^{\gr}_A(F,F)$ into a complex of $A$-modules; by definition, its +cycles are the chain maps $F\to F$, and its boundaries are the +null-homotopic maps. + \end{Remark} + +\begin{Remark}\label{graded-map-tensor} +If $p\colon F \to F'$ and $q\colon G \to G'$ are graded maps of graded +modules, we define the tensor product $p \otimes q\colon F \otimes F' +\to G \otimes G'$ by the formula $(p \otimes q)(f \otimes g)=(-1)^{\deg +q \cdot\deg f}( p(f) \otimes q(g) )$. With this convention, when $F=F'$ +and $G=G'$, the graded commutator $[1_F \otimes q,p \otimes 1_G]$ +vanishes. + \end{Remark} + +\begin{lemma} +\label{quism} +Let $M$ be an $A$-module and let $r\colon C\to M$ be a free resolution. +If $g\colon C\to C$ is an $A$-linear map with $\deg(g)>0$, and +$[d_C,g]=0$, then $g=[d_C,h]$ for some $A$-linear map $h\colon C\to C$ +with $\deg(h)=\deg(g)+1$. + \end{lemma} + +\begin{proof} +The augmentation $r\colon C \to M$ defines a chain map of degree zero +\[ +\Hom^\gr_A(C,r)\colon \Hom^\gr_A(C,C)\to\Hom^\gr_A(C,M) +\] +The map induced in homology is an isomorphism: to see this, apply the +`comparison theorem for projective resolutions'. Since $A$-linear maps +$C\to M$ of positive degree are trivial, the conclusion follows from +Remark \ref{commutator}. \qed + \end{proof} + +\begin{proof}[of Theorem \ref{main}] +Recall that $D$ is the divided powers algebra of a free $A$-module $Q$ +with basis $Y_1,\dots, Y_c$, that $X_1, \dots,X_c$ is the dual basis of +the free $A$-module $Q^*$, and $S$ for the symmetric algebra of $Q^*$, +see Construction \ref{algebras} for details. We set $f=\sum_{i=1}^c +f_iX_i \in\SS^{1}(Q^*)$. + +We first construct the maps $d_\g$ by induction on $|\g|$. + +If $|\g|=0$, then $\g=o$, so $d_o=d_C$ is predefined. If $|\g|=1$, +then $\g=\e_i$ for some $i$ with $1\le i\le c$. Since $f_i$ +annihilates the $B$-module $M$, the map $-f_i \cdot 1_C$ lifts the +zero map on $M$, hence is null-homotopic. For each $i$ we take +$d_{\e_i}$ to be a null-homotopy, that is, $[d_o,d_{\e_i}]=-f_i +\cdot 1_C$. With these choices, the desired formulas hold for all $\g$ +with $|\g|\le1$. + +Assume by induction that maps $d_\g$ satisfying the conclusion of the +lemma have been chosen for all $\g\in\N^c$ with $|\g|0$, hence $\HH_n(C\otimes_A +G^s)=0$ for all $n\in\Z$. As $G^0=A$ and $\gr^0(q)=r$, we are done. + \qed \end{proof} + +\section{Cohomology Operators} +\label{Cohomology operators} + +We present a new approach to the procedure of Shamash \cite{CI:Sh} and +Eisenbud \cite{CI:Ei} for building projective resolutions over a +complete intersection. We then use this resolution to prove a +fundamental result of Gulliksen \cite{CI:MR51:487} on the structure of +Ext modules over complete intersections. + +A set ${\boldsymbol f}=\{f_1 , \dots, f_c\}\subseteq A$ is +{\it\ie{Koszul-regular}\/} if the complex $(E,d_E)$ of Construction +\ref{koszul}, has $\HH_n(E)=0$ for $n>0$. A sufficient condition for +Koszul-regularity is that the elements of ${\boldsymbol f}$, in some +order, form a regular sequence. + +\begin{theorem} +\label{resolution} +Let $A$ be a commutative ring, ${\boldsymbol f}=\{f_1,\dots,f_c\} +\subseteq A$ a subset, $B=A/({\boldsymbol f})$ the residue ring, +$M$ a $B$-module, and $r \colon C \to M$ a resolution of +$M$ by projective (respectively, free) $A$-modules. + +Let $\{d_\g\colon C\to C\}_{\g\in\N^c}$ be a family of $A$-linear maps +provided by Theorem \ref{main}, set $D'=D\otimes_AB$, and $y'=y\o 1$ +for $y\in D$. The map +\begin{equation} +\begin{gathered} +\label{partial} +\partial \colon C\otimes_A D' \to C\otimes_A D' +\qquad\text{given by}\\ +\partial(x\o y') = \sum_{\g \in\N^c} d_\g(x) \o (X^{\g} \lcontract y)' +\end{gathered} +\end{equation} +is a $B$-linear differential of degree $-1$. If ${\boldsymbol f}$ is +Koszul-regular, then the map +\begin{gather*} + q'\colon C \otimes_A D' \to M \qquad \text{given by}\\ + q'(x\o y')= \begin{cases} + y \cdot r(x) &\quad\text{if $\deg(y')=0$}\\ + 0 &\quad\text{otherwise} + \end{cases} +\end{gather*} +is a resolution of $M$ by projective (respectively, free) $A$-modules. + \end{theorem} + +\begin{Remark} +\label{hypersurface} +Assume that in the theorem ${\boldsymbol f}=\{f_1\}$. The module +$D_\ell$ is then trivial if $\ell$ is odd, and is free with basis +consisting of a single element $Y_1^{(\ell/2)}$ if $\ell$ is even. +Thus, the resolution $C\otimes_AD'$ has the form +\[ +\cdots\xrightarrow{\partial_{2n+1}} +\bigoplus_{j=0}^\infty C_{2j}\otimes_A BY_1^{(n-j)} +\xrightarrow{\partial_{2n}} +\bigoplus_{j=1}^\infty C_{2j-1}\otimes_A BY_1^{(n-j)} +\xrightarrow{\partial_{2n-1}} +\cdots +\] + +The simplest situation occurs when, in addition, $C$ is a free +resolution with $C_n=0$ for $n\ge 2$. In this case the differential +$d_o$ has a single non-zero component, $d_1\colon C_1\to C_0$, the +homotopy $d_{\e_1}$ between $-f\cdot 1_C$ and $0_C$ has a single +non-zero component, $s_0\colon C_0\to C_1$, and all the maps $d_\g$ +with $\g\in\N^1\smallsetminus\{o,\e_1\}$ are trivial for degree +reasons. It is now easy to see that the complex above coincides with +the one constructed, {\sl ad hoc\/}, in Remark \ref{periodicity}. + \end{Remark} + +\begin{proof}[of the theorem] +In the notation of Theorem \ref{main}, we have equalities +\[ +C \otimes_A D'=(C\otimes_A D \otimes_A E)\otimes_E B +\qquad\text{and}\qquad +\partial= d\o 1_B +\] +It follows that $\partial^2=0$. For each $s\ge0$ consider the +subcomplexes +\begin{gather*} +F^s = \bigoplus_{k+\ell \le s} C_k \otimes_A D_\ell \otimes_A E +\qquad\text{of}\qquad F=C \otimes_A D \otimes_A E\\ +F^{\prime\,s} = \bigoplus_{k+\ell \le s} C_k \otimes_A D'_\ell +\qquad\text{of}\qquad F'=C \otimes_A D' +\end{gather*} +They provide bounded filtrations of the complexes $F$ and $F'$, +respectively, such that the map $p'=1_C\o 1_D\o p\colon F\to F'$ +satisfies $p'(F^s)\subseteq F^{\prime\,s}$ for all $s\ge0$. +Setting $G_s=\bigoplus_{k+\ell=s}(C_k \otimes_A D_\ell)$, we obtain +equalities $\gr^s(F)=(G_s\otimes_AE,1_{G_s}\o d_E)$ and $\gr^s(F')= +(G_s\otimes_AB,0)$ of complexes of $A$-modules. + +If $\boldsymbol f$ is Koszul regular, then $p\colon E\to B$ is a +quasi-isomorphism, hence so is $1_{G_s}\o p=\gr^s(p')$ for each +$s\ge0$. Lemma \ref{filtration} then shows that $p'$ is a +quasi-isomorphism. The quasi-isomorphism $q\colon F\to M$ of Theorem +\ref{main} factors as $q=q'(1_C\o 1_D\o p)$, so we see that $q'$ is +a quasi-isomorphism, as desired. + \qed\end{proof} + +Let $M$ and $N$ be $B$-modules, and let $\Ext^\bu_B(M,N)$ denote the +graded $B$-module having $\Ext^n_B(M,N)$ as component of degree $-n$. +To avoid negative numbers, it is customary to regrade $\Ext^\bu_B(M,N)$ +by {\it co\/}homological degree, under which the elements of +$\Ext^n_B(M,N)$ are assigned degree $n$; we do not do it here, in order +not to confuse \Mtwo. Of course, these modules can be computed from any +projective resolution of $M$ over $B$. + +The next couple of remarks collect a few innocuous observations. In +hindsight, they provide some of the basic tools for studying cohomology +of modules over complete intersections: see Remark \ref{history} for +some related material. + +\begin{Remark} +\label{action} +The resolution $(C\otimes_A D',\partial)$ provided by Theorem +\ref{resolution} is a graded module over the graded algebra $S$, with +action defined by the formula +\[ +u\cdot(x\o y')= x\o (u\lcontract y)' +\] +and this action commutes with the differential $\partial$. The induced +action provides a structure of graded $S$-module on the complex +$\Hom_B(C\otimes_A D',N)$. + +The action of $S$ commutes with the differential $\partial^*= +\Hom_B(\partial,N)$ of this complex, hence passes to its homology, +making it a graded a $S$-module. Thus, each element $u\in +S_{-2k}=\SS^k(Q)$ determines homomorphisms +\[ +\Ext^n_B(M,N)\xrightarrow{\ u\ }\Ext^{n+2k}_B(M,N) +\qquad\text{for all}\qquad n\in\Z +\] +For this reason, from now on we refer to the graded ring $S$ as the +{\it\ie{ring of cohomology operators}\/} determined by the +Koszul-regular set $\boldsymbol f$. + \end{Remark} + +\begin{Remark} +\label{canonical} +The canonical isomorphisms of complexes of $A$-modules +\begin{equation*} +\Hom_B(C \otimes_A D', N)=S \otimes_A \Hom_A(C, N)= +S \otimes_A \Hom_A(C, A) \otimes_A N +\end{equation*} +commute with the actions of $S$. + \end{Remark} + +The following fundamental result shows that in many important cases the +action of the cohomology operators is highly nontrivial. + +\begin{theorem} +\label{finiteness} +Let $A$ be a commutative ring, let ${\boldsymbol f}$ be a Koszul +regular subset of $A$, and let $S$ be the graded ring of cohomology +operators defined by $\boldsymbol f$. + +If $M$ and $N$ are finitely generated modules over $B=A/({\boldsymbol +f})$, and $M$ has finite projective dimension over $A$ (in particular, +if $A$ is regular), then the graded $S$-module $\Ext^\bu_B(M,N)$ is +finitely generated. + \end{theorem} + +\begin{proof} +Choose a resolution $r\colon C\to M$ with $C_n$ a finite projective +$A$-module for each $n$ and $C_n=0$ for all $n\gg0$. By Remark +\eqref{canonical}, the graded $S$-module $\Hom_B(C \otimes_A D',N)$ is +finitely generated. Since $S$ is noetherian, so is the submodule +$\Ker(\partial^*)$, and hence the homology module, $\Ext^\bu_B(M,N)$. + \qed + \end{proof} + +\begin{Remark} +\label{history} +The resolution of Remark \ref{hypersurface} was constructed by Shamash +\cite[Sect.\ 3]{CI:Sh}, that of Theorem \ref{resolution} by Eisenbud +\cite[Sect.\ 7]{CI:Ei}. The new aspect of our approach is indicated at +the beginning of Section \ref{Universal homotopies}. + +As introduced in Remark \ref{action}, the $S$-module structure on Ext +may appear {\sl ad hoc\/}. In fact, it is independent of all choices +of resolutions and maps, it can be computed from {\it any\/} projective +resolution of $M$ over $B$, it is natural in both module arguments +and---in an appropriate sense---in the ring argument, and it commutes +with Yoneda products from either side. These properties were proved by +Gulliksen \cite[Sect.~2]{CI:MR51:487}, Mehta \cite[Ch.~2]{CI:Me}, +Eisenbud \cite[Sect.\ 4]{CI:Ei}, and Avramov +\cite[Sect.\ 2]{CI:MR90g:13027}. However, each author used a different +construction of cohomology operators, and comparison of the +different approaches has turned to be an unexpectedly delicate +problem. It was finally resolved in \cite{CI:MR2000e:13021}, where +complete proofs of the main properties of the operators can be found. + +Gulliksen \cite[Sect.~3]{CI:MR51:487} established a stronger form of +Theorem \ref{finiteness}, without finiteness hypotheses on the ring +$A$: If the $A$-module $\Ext^\bu_A(M,N)$ is noetherian, then the +$S$-module $\Ext^\bu_B(M,N)$ is noetherian; this can be obtained from +the complexes of Remark \eqref{canonical} by means of a spectral +sequence, cf.\ \cite[Sect.~6]{CI:MR1774757}. The converse of +Gulliksen's theorem was proved in \cite[Sect.~4]{CI:MR99c:13033}. + \end{Remark} + +For the rest of the paper we place ourselves in a situation where \Mtwo +operates best---graded modules over positively graded rings. This +grading is inherited by the various Ext modules, and we keep careful +track of it. Our conventions and bookkeeping procedures are discussed +in detail in an Appendix, which the reader is invited to consult as +needed. + +For ease of reference, we collect some notation. + +\begin{notation} +\label{graded stuff} +The following is assumed for the rest of the paper. +\begin{itemize} +\item[$\bullet$] +$K$ is a field. +\item[$\bullet$] +$\{x_h\,\vert\,\deg'(x_h)>0\}_{h=1,\dots,e}$ is a set of +indeterminates over $K$. +\item[$\bullet$] +$A=K[x_1,\dots,x_e]$, graded by $\deg'(a)=0$ for $a\in K$. +\item[$\bullet$] +$f_1,\dots,f_c$ is a homogeneous $A$-regular sequence +in $(x_1,\dots,x_e)^2$. +%% +%% Lucho, why do we want the f's to be of degree at least 2? +%% +\item[$\bullet$] +$r_i=\deg'(f_i)$ for $i=1,\dots,c$. +\item[$\bullet$] +$\{X_i\,\vert\,\Deg X_i=(-2,-r_i)\}_{i=1,\dots,c}$ is a set +of indeterminates over $A$. +\item[$\bullet$] +$S=A[X_1,\dots, X_c]$, bigraded by $\Deg(a)=(0,\deg'(a))$. +\item[$\bullet$] +$B=A/({\boldsymbol f})$, with degree induced by $\deg'$. +\item[$\bullet$] +$M$ and $N$ are finitely generated graded $B$-modules. +\item[$\bullet$] +$S$ acts as bigraded ring of cohomology operators on +$\Ext^\bu_B(M,N)$. +\item[$\bullet$] +$k=B/(x_1,\dots,x_e)B$, with degree induced by $\deg'$. +\item[$\bullet$] +$R=S\otimes_A k\cong K[X_1,\dots,X_c]$, with bidegree induced by +$\Deg$. +\end{itemize} + \end{notation} + +\begin{Remark} +Under the conditions above, it is reasonable to ask when the $B$-free +resolution $G$ of Theorem \ref{resolution}, obtained from a {\it +minimal\/} $A$-free resolution $C$ of $M$, will itself be minimal. +Shamash \cite[Sect.~3]{CI:Sh} proves that $G$ is minimal if +$f_i\in(x_1,\dots,x_e)\ann_A(M)$ for $i=1,\dots,c$. An obvious example +with non-minimal $G$ occurs when $M$ has finite projective dimension +over $B$: if $c>0$ then $G$ is infinite. A more interesting failure of +minimality follows. + \end{Remark} + +\begin{Example} +Let $A$, $f$, $B$, and $M$ be as in Example \ref{cube}. +\beginOutput +i38 : M = B^1/m^3;\\ +\endOutput +\beginOutput +i39 : F = resolution(M, LengthLimit=>8)\\ +\emptyLine +\ 1 10 16 15 15 15 15 15 15\\ +o39 = B <-- B <-- B <-- B <-- B <-- B <-- B <-- B <-- B\\ +\ \\ +\ 0 1 2 3 4 5 6 7 8\\ +\emptyLine +o39 : ChainComplex\\ +\endOutput +Thus, the sequence of Betti numbers $\b^B_n(M)$ is +$(1,10,16,15,15,15,\dots)$. +\beginOutput +i40 : M' = restrict1 M;\\ +\endOutput +\beginOutput +i41 : C = res M'\\ +\emptyLine +\ 1 10 15 6\\ +o41 = A <-- A <-- A <-- A <-- 0\\ +\ \\ +\ 0 1 2 3 4\\ +\emptyLine +o41 : ChainComplex\\ +\endOutput +By Remark \ref{hypersurface}, the sequence $\rank_B F_n$ is +$(1,10,16,16,16,16,\dots)$. + \end{Example} + +In a graded context, all cohomological entities discussed so far in the +text acquire an extra grading, discussed in detail in the Appendix. +The notions below are used, but not named, in \cite{CI:AB2} in a local +situation. + +\begin{Remark} +\label{reduced ext} +We define the {\it\ie{reduced Ext module}\/} for $M$ and $N$ over $B$ +by +\[ +\rExt^\bu_B(M,N)=\Ext^\bu_B(M,N)\otimes_Ak +\] +With the induced bigrading and action, it is a bigraded module over the +bigraded ring $R$, that we call the {\it\ie{reduced ring of cohomology +operators}\/}. + +The dimension of the $K$-vector space $\rExt^n_B(M,N)_{s}$ is equal to +the number of generators of bidegree $(-n,s)$ in any minimal set of +generators of the graded $B$-module $\Ext^n_B(M,N)$. We define the +graded (respectively, ungraded) {\it\ie{Ext-generator series}\/} of $M$ +and $N$ to be the formal power series +\begin{gather*} +\gen_B^{M,N}(t,u)= +\sum_{n\in\N\,,\,s\in\Z}\dim_K \rExt^n_B(M,N)_{s}\, t^n u^{-s} +\in\Z[u,u^{-1}][[t]]\\ +\gen_B^{M,N}(t)= +\sum_{n=0}^\infty\dim_K \rExt^n_B(M,N)\, t^n +\in\Z[[t]] +\end{gather*} +There is a simple relation between these series: $\gen_B^{M,N}(t)= +\gen_B^{M,N}(t,1)$. + \end{Remark} + +\begin{corollary} +\label{series} +In the notation above, $\rExt^\bu_B(M,N)$ is a finitely generated +bigraded $R$-module, and $\gen_B^{M,N}(t,u)$ represents a rational +function of the form +\begin{equation*} +\frac{g_B^{M,N}(t,u)}{(1-t^2u^{r_1})\cdots(1-t^2u^{r_c})} +\qquad\text{with}\qquad g_B^{M,N}(t,u)\in\Z[t,u,u^{-1}] +\end{equation*} +\end{corollary} + +\begin{proof} +The assertion on finite generation results from Theorem +\ref{finiteness} and the one on bigradings from Remark \ref{graded +action}. The form of the power series is then given by the +Hilbert-Serre Theorem. \qed + \end{proof} + +\section{Computation of Ext Modules} +\label{Computation of Ext modules} + +This section contains the main new computational result of the paper. + +We discuss, apply, and present an algorithm that computes, for graded +modules $M$ and $N$ over a graded complete intersection ring $B$, the +graded $B$-modules $\Ext^n_B(M,N)$ simultaneously in all degrees $n$, +along with all the cohomology operators defined in Remark +\ref{action}. + +More precisely, the input consists of a field $K$, a polynomial ring +$A=K[x_1,\dots,x_e]$ with $\deg'(x_h)>0$, a sequence $f_1,\dots,f_c$ of +elements of $A$, and finitely generated modules $M$, $N$ over +$B=A/(f_1,\dots,f_c)$. The program checks whether the sequence +consists of homogeneous elements, whether it is regular, and whether +the modules $M$, $N$ are graded, sending the appropriate error message +if any one of these conditions is violated. If the input data pass +those tests, then the program produces a presentation of the bigraded +module $H=\Ext^\bu_B(M,N)$, where the elements of $\Ext^n_B(M,N)$ have +homological degree $-n$, over the polynomial ring $A[X_1,\dots,X_c]$, +bigraded by $\Deg(a)=(0,\deg'(a))$ and $\Deg(X_i)=(-2,-\deg'(f_i))$. + +The algorithm is based on the proofs of Theorems \ref{resolution} and +\ref{finiteness}, and is presented in Code \ref{master} below. We +start with an informal discussion. + +\begin{Remark} +\label{algorithm} +The routine {\tt resolution}\indexcmd{resolution} of \Mtwo finds the matrices $d_{o,n}\colon +C_n\to C_{n-1}$ of the differential $d_C$ of a minimal free resolution +$C$ of $M$ over $A$. Matrices $d_{\g,n}\colon C_n\to C_{n+2|\g|-1}$ +satisfying equation \eqref{family} for $\g\in\N^c$ with $|\g|>0$ are +computed using the routine {\tt nullhomotopy} of the \Mtwo language in +a loop that follows the first part of the proof of Theorem +\ref{resolution}. + +The transposed matrix $d^*_{\g,n}$ yields an endomorphism of the free +bigraded $A$-module $C^*=\bigoplus_{n=0}^e \Hom_A(C_n,A)$ of rank $m$, +where $m=\sum_{n=0}^e\rank_A C_n$. The $m\times m$ matrix ${\widetilde +d}^*_{\g,n}$ describing this endomorphism is formed using the routines +{\tt transpose} and {\tt sum}. The $m\times m$ matrix +\[ +\Delta = \sum_{n=0}^e(-1)^{n+2|\g|-1} +\sum_{\substack{\g\in\N^c\\ |\g|\le(e-n+1)/2}} +X^{\g}\cdot\widetilde d_{\g,n}^* +\] +with entries in $S=A[X_1,\dots,X_c]$ defines an endomorphism of the +free bigraded $S$-module $S\otimes_A C^*$. It induces an endomorphism +$\overline\Delta$ of the bigraded $S$-module $S\otimes_A C^*\otimes_A +N$. The bigraded $S$-module $H=\Ext^\bu_B(M,N)$ is computed as +$H=\Ker(\overline\Delta)/ \Ima(\overline\Delta)$ using the routine {\tt +homology}\indexcmd{homology}. + \end{Remark} + +In the computations we let $H$ denote the bigraded $S$-module +$\Ext^\bu_B(M,N)$. As the graded ring $S$ is zero in odd homological +degrees, there is a canonical direct sum decomposition $H = +H^{\text{even}} \oplus H^{\text{odd}}$ of bigraded $S$-modules, where +`even' or `odd' refers to the parity of the {\it first\/} degree in +each pair $\Deg(x)$. + +We begin with an example in codimension 1, where it is possible to +construct the infinite resolution and the action of $S$ on it by +hand. + +\begin{Example} +Consider the ring $A = K[x]$ where the variable $x$ is assigned degree +$5$, and set $B = A/(x^3)$. The bigraded ring of cohomology operators +then is $S=A[X,x]$, where $\Deg(X)=(-2,-15)$ and $\Deg x=(0,5)$. + +For the $B$-modules $M = B/(x^2)$ and $N = B/(x)$, the bigraded +$S$-module $H=\Ext^\bu_B(M,N)$ is described by the isomorphism +\[ + H\cong (S/(x))\oplus (S/(x))[1,10] +\] + +A minimal free resolution of $M$ over $B$ is displayed below. +\[ +F = \quad \dots \longrightarrow + B[-30] \xrightarrow{-x\,} B[-25] \xrightarrow{\ x^2\,} + B[-15] \xrightarrow{-x\,} B[-10] \xrightarrow{\ x^2\,} + B \longrightarrow 0 +\] +This resolution is actually isomorphic to the resolution $C\otimes_A +D'$ described in Remark \ref{hypersurface}, formed from the free +resolution +\[C += \quad 0 \longrightarrow A[-10] \xrightarrow{\ x^2\,} A +\longrightarrow 0 +\] +of $M$ over $A$ and the nullhomotopy $d_{\e_1}$ displayed in the diagram +\[ +\xymatrix{ +0 \ar[r] & A[-10] \ar[r]^-{x^2} \ar[d]_{-x^3} & A \ar[r] \ar[d]^{-x^3} + \ar[dl]_-{-x} & 0 \\ +0 \ar[r] & A[-10] \ar[r]^-{x^2} & A \ar[r] & 0 +} +\] +The isomorphism of $F$ with $C \otimes_A D'$ endows $F$ with a +structure of bigraded module over $S$, where the action of $X$ on +$F$ is the chain map $F \to F$ of homological degree $-2$ and internal +degree $-15$ that corresponds to the identity map of $B$ in each +component. + +The bigraded $S$-module $H=\Ext^\bu_B(M,N)$ is the homology of the +complex +\[ +\Hom_R(F,N) = \quad 0 \xrightarrow{\ \ } +N \xrightarrow{\ 0\ } N[10] \xrightarrow{\ 0\,} +N[15] \xrightarrow{\ 0\ } N[25] \xrightarrow{\ 0\,} +N[30] \longrightarrow\cdots +\] +where multiplication by $x\in S$ is the zero map, and for each $i\ge0$ +multiplication by $X\in S$ sends $N[15i]$ to $N[15i+15]$ +(respectively, $N[10i+10]$ to $N[10i+25]$) by the identity map. This +description provides the desired isomorphisms of bigraded $S$-modules. + +Here is how to compute $H$ with \Mtwo. + +Create the rings and modules. +\beginOutput +i42 : K = ZZ/103; \\ +\endOutput +\beginOutput +i43 : A = K[x,Degrees=>\{5\}];\\ +\endOutput +\beginOutput +i44 : B = A/(x^3);\\ +\endOutput +\beginOutput +i45 : M = B^1/(x^2);\\ +\endOutput +\beginOutput +i46 : N = B^1/(x);\\ +\endOutput +Use the function {\tt Ext} to compute $H = \Ext^\bu_B(M,N)$ (the +semicolon at the end of the line will suppress printing until we have +assigned the name {\tt S} to the ring of cohomology operators +constructed by \Mtwo.) +\beginOutput +i47 : H = Ext(M,N);\\ +\endOutput +We may look at the ring. +\beginOutput +i48 : ring H\\ +\emptyLine +o48 = K [\$X , x, Degrees => \{\{-2, -15\}, \{0, 5\}\}]\\ +\ 1\\ +\emptyLine +o48 : PolynomialRing\\ +\endOutput +\Mtwo has assigned the name {\tt \$X\char`\_1} to the variable $X$. +The dollar sign indicates an internal name that cannot be entered from +the keyboard: if necessary, obtain the variable by entering {\tt +S\char`\_0}; notice that indexing in \Mtwo starts with $0$ rather than $1$. +Notice also the appearance of braces rather than +parentheses in \Mtwo's notation for bidegrees. +\beginOutput +i49 : degree {\char`\\} gens ring H\\ +\emptyLine +o49 = \{\{-2, -15\}, \{0, 5\}\}\\ +\emptyLine +o49 : List\\ +\endOutput +Assign the ring a name. +\beginOutput +i50 : S = ring H;\\ +\endOutput +We can now look at the $S$-module $H$. +\beginOutput +i51 : H\\ +\emptyLine +o51 = cokernel \{0, 0\} | 0 x |\\ +\ \{-1, -10\} | x 0 |\\ +\emptyLine +\ 2\\ +o51 : S-module, quotient of S\\ +\endOutput +Each row in the display above is labeled with the bidegree of the +corresponding generator of $H$. This presentation gives the +isomorphisms of bigraded $S$-modules, already computed by hand +earlier. +\end{Example} + +Let's try an example with a complete intersection of codimension 2. It +is not so easy to do by hand, but can be checked using the theory in +\cite{CI:MR1774757}. + +\begin{Example} +Begin by constructing a polynomial ring $A=K[x,y]$. +\beginOutput +i52 : A = K[x,y];\\ +\endOutput +Now we produce a complete intersection quotient ring $B=A/(x^3,y^2)$. +\beginOutput +i53 : J = ideal(x^3,y^2);\\ +\emptyLine +o53 : Ideal of A\\ +\endOutput +\beginOutput +i54 : B = A/J;\\ +\endOutput +We take $N$ to be the $B$-module $B/(x^2,xy)$. +\beginOutput +i55 : N = cokernel matrix\{\{x^2,x*y\}\}\\ +\emptyLine +o55 = cokernel | x2 xy |\\ +\emptyLine +\ 1\\ +o55 : B-module, quotient of B\\ +\endOutput +Remark \ref{bigrading} shows that $H=\Ext^\bu_B(N,N)$ is a bigraded module +over the bigraded ring $S=A[X_1,X_2]=K[X_1,X_2,x,y]$ where +\begin{alignat*}{2} +\Deg(X_1)&=(-2,-3)\quad &\Deg(X_2)&=(-2,-2)\\ +\Deg(x)&=(0,1) &\Deg(y)&=(0,1) +\end{alignat*} +Using \Mtwo (below) we obtain an isomorphism of bigraded $S$-modules +\begin{gather*} +H^{\text{even}}\cong \frac{S}{(x^2,xy,y^2,xX_1,yX_1)} + \oplus \frac{S}{(x,y)}[2,2]\\ +H^{\text{odd}} \cong \left(\frac{S}{(x,y,X_1)} +\oplus \frac{S}{(x,y)}\right)^2[1,1] +\end{gather*} +These isomorphisms also yield expressions for the graded $B$-modules: +\begin{gather*} +\Ext_B^{2i}(N,N)\cong +N\cdot X_2^{i}\oplus +\bigoplus_{h=1}^{i} k\cdot X_1^{h}X_2^{i-h}\oplus +\bigoplus_{h=0}^{i-1}k[2]\cdot X_1^{h}X_2^{i-1-h}\\ +\Ext_B^{2i+1}(N,N)\cong +\bigg(k[1]\cdot X_2^{i}\oplus +\bigoplus_{h=0}^{i}k[1]\cdot X_1^{i-h}X_2^{h}\bigg)^2 +\end{gather*} + +Now we follow in detail the computation of the bigraded $S$-module $H$. +\beginOutput +i56 : time H = Ext(N,N);\\ +\ -- used 0.2 seconds\\ +\endOutput +\beginOutput +i57 : ring H\\ +\emptyLine +o57 = K [\$X , \$X , x, y, Degrees => \{\{-2, -2\}, \{-2, -3\}, \{0, 1\}, \{0, 1\}\}]\\ +\ 1 2\\ +\emptyLine +o57 : PolynomialRing\\ +\endOutput +\beginOutput +i58 : S = ring H;\\ +\endOutput +One might wish to have a better view of the bidegrees of the variables +of the ring $S$. An easy way to achieve this, with signs reversed, is +to display the transpose of the matrix of variables. +\beginOutput +i59 : transpose vars S\\ +\emptyLine +o59 = \{2, 2\} | \$X_1 |\\ +\ \{2, 3\} | \$X_2 |\\ +\ \{0, -1\} | x |\\ +\ \{0, -1\} | y |\\ +\emptyLine +\ 4 1\\ +o59 : Matrix S <--- S\\ +\endOutput +The internal degrees displayed for the cohomology operators may come +as a surprise. To understand what is going on, recall that these +degrees are determined by a choice of minimal generators for $J$. +At this point we do not know what is the sequence of generators that +\Mtwo used, so let's compute those generators the way the program did. +\beginOutput +i60 : trim J\\ +\emptyLine +\ 2 3\\ +o60 = ideal (y , x )\\ +\emptyLine +o60 : Ideal of A\\ +\endOutput +Notice that \Mtwo has reordered the original sequence of generators. +Now we see that our variable $X_1$, which corresponds to $x^3$, is +denoted {\tt X\char`\_2} by \Mtwo, and that $X_2$, which corresponds +to $y^2$ is denoted {\tt X\char`\_1}. This explains the bidegrees used +by the program. + +Display $H$. +\beginOutput +i61 : H\\ +\emptyLine +o61 = cokernel \{-2, -2\} | 0 0 0 0 0 0 0 0 0 0 0 y x 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | y 0 0 0 0 x 0 0 0 0 0 0 0 \$X_1 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | 0 0 0 y 0 0 0 x 0 0 0 0 0 0 \$X_1 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | 0 y 0 0 x 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | 0 0 y 0 0 0 x 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 0\} | 0 0 0 0 0 0 0 0 y2 xy x2 0 0 0 0 \$X_1y $\cdot\cdot\cdot$\\ +\emptyLine +\ 6\\ +o61 : S-module, quotient of S\\ +\endOutput +That's a bit large, so we want to look at the even and odd parts separately. + +We may compute the even and odd parts of $H$ as the span of the +generators of $H$ with the appropriate parity. Since the two desired +functions differ only in the predicate to be applied, we can generate +them both by writing a function that accepts the predicate as its +argument and returns a function. +\beginOutput +i62 : partSelector = predicate -> H -> (\\ +\ R := ring H;\\ +\ H' := prune image matrix \{\\ +\ select(\\ +\ apply(numgens H, i -> H_\{i\}),\\ +\ f -> predicate first first degrees source f\\ +\ )\\ +\ \};\\ +\ H');\\ +\endOutput +\beginOutput +i63 : evenPart = partSelector even; oddPart = partSelector odd;\\ +\endOutput +Now to obtain the even part, $H^{\text{even}}$, simply type +\beginOutput +i65 : evenPart H\\ +\emptyLine +o65 = cokernel \{-2, -2\} | 0 0 0 y x 0 0 |\\ +\ \{0, 0\} | y2 xy x2 0 0 \$X_1y \$X_1x |\\ +\emptyLine +\ 2\\ +o65 : S-module, quotient of S\\ +\endOutput +Do the same thing for the odd part, $H^{\text{odd}}$. +\beginOutput +i66 : oddPart H\\ +\emptyLine +o66 = cokernel \{-1, -1\} | 0 0 y 0 0 0 x 0 0 0 |\\ +\ \{-1, -1\} | 0 y 0 0 x 0 0 0 0 0 |\\ +\ \{-1, -1\} | 0 0 0 y 0 0 0 x 0 \$X_1 |\\ +\ \{-1, -1\} | y 0 0 0 0 x 0 0 \$X_1 0 |\\ +\emptyLine +\ 4\\ +o66 : S-module, quotient of S\\ +\endOutput +These presentations yield the desired isomorphism of bigraded $S$-modules. + \end{Example} + +Here is the source code which implements the routine {\tt Ext}. It is +incorporated into \Mtwo. + +\begin{code} +\label{master} +The function {\tt Ext(M,N)} computes $\Ext_B^\bu(M,N)$ for graded modules +$M$, $N$ over a graded complete intersection ring $B$. The function {\tt + code}\indexcmd{code} can be used to obtain a copy of the source code.\indexcmd{Ext} +\beginOutput +i67 : print code(Ext,Module,Module)\\ +-- ../../../m2/ext.m2:82-171\\ +Ext(Module,Module) := Module => (M,N) -> (\\ +\ cacheModule := youngest(M,N);\\ +\ cacheKey := (Ext,M,N);\\ +\ if cacheModule#?cacheKey then return cacheModule#cacheKey;\\ +\ B := ring M;\\ +\ if B =!= ring N\\ +\ then error "expected modules over the same ring";\\ +\ if not isCommutative B\\ +\ then error "'Ext' not implemented yet for noncommutative rings.";\\ +\ if not isHomogeneous B\\ +\ then error "'Ext' received modules over an inhomogeneous ring";\\ +\ if not isHomogeneous N or not isHomogeneous M\\ +\ then error "'Ext' received an inhomogeneous module";\\ +\ if N == 0 then B^0\\ +\ else if M == 0 then B^0\\ +\ else (\\ +\ p := presentation B;\\ +\ A := ring p;\\ +\ I := ideal mingens ideal p;\\ +\ n := numgens A;\\ +\ c := numgens I;\\ +\ if c =!= codim B \\ +\ then error "total Ext available only for complete intersections";\\ +\ f := apply(c, i -> I_i);\\ +\ pM := lift(presentation M,A);\\ +\ pN := lift(presentation N,A);\\ +\ M' := cokernel ( pM | p ** id_(target pM) );\\ +\ N' := cokernel ( pN | p ** id_(target pN) );\\ +\ C := complete resolution M';\\ +\ X := local X;\\ +\ K := coefficientRing A;\\ +\ -- compute the fudge factor for the adjustment of bidegrees\\ +\ fudge := if #f > 0 then 1 + max(first {\char`\\} degree {\char`\\} f) // 2 else 0;\\ +\ S := K(monoid [X_1 .. X_c, toSequence A.generatorSymbols,\\ +\ Degrees => \{\\ +\ apply(0 .. c-1, i -> \{-2, - first degree f_i\}),\\ +\ apply(0 .. n-1, j -> \{ 0, first degree A_j\})\\ +\ \},\\ +\ Adjust => v -> \{- fudge * v#0 + v#1, - v#0\},\\ +\ Repair => w -> \{- w#1, - fudge * w#1 + w#0\}\\ +\ ]);\\ +\ -- make a monoid whose monomials can be used as indices\\ +\ Rmon := monoid [X_1 .. X_c,Degrees=>\{c:\{2\}\}];\\ +\ -- make group ring, so 'basis' can enumerate the monomials\\ +\ R := K Rmon;\\ +\ -- make a hash table to store the blocks of the matrix\\ +\ blks := new MutableHashTable;\\ +\ blks#(exponents 1_Rmon) = C.dd;\\ +\ scan(0 .. c-1, i -> \\ +\ blks#(exponents Rmon_i) = nullhomotopy (- f_i*id_C));\\ +\ -- a helper function to list the factorizations of a monomial\\ +\ factorizations := (gamma) -> (\\ +\ -- Input: gamma is the list of exponents for a monomial\\ +\ -- Return a list of pairs of lists of exponents showing the\\ +\ -- possible factorizations of gamma.\\ +\ if gamma === \{\} then \{ (\{\}, \{\}) \}\\ +\ else (\\ +\ i := gamma#-1;\\ +\ splice apply(factorizations drop(gamma,-1), \\ +\ (alpha,beta) -> apply (0..i, \\ +\ j -> (append(alpha,j), append(beta,i-j))))));\\ +\ scan(4 .. length C + 1, \\ +\ d -> if even d then (\\ +\ scan( exponents {\char`\\} leadMonomial {\char`\\} first entries basis(d,R), \\ +\ gamma -> (\\ +\ s := - sum(factorizations gamma,\\ +\ (alpha,beta) -> (\\ +\ if blks#?alpha and blks#?beta\\ +\ then blks#alpha * blks#beta\\ +\ else 0));\\ +\ -- compute and save the nonzero nullhomotopies\\ +\ if s != 0 then blks#gamma = nullhomotopy s;\\ +\ ))));\\ +\ -- make a free module whose basis elements have the right degrees\\ +\ spots := C -> sort select(keys C, i -> class i === ZZ);\\ +\ Cstar := S^(apply(spots C,\\ +\ i -> toSequence apply(degrees C_i, d -> \{i,first d\})));\\ +\ -- assemble the matrix from its blocks.\\ +\ -- We omit the sign (-1)^(n+1) which would ordinarily be used,\\ +\ -- which does not affect the homology.\\ +\ toS := map(S,A,apply(toList(c .. c+n-1), i -> S_i),\\ +\ DegreeMap => prepend_0);\\ +\ Delta := map(Cstar, Cstar, \\ +\ transpose sum(keys blks, m -> S_m * toS sum blks#m),\\ +\ Degree => \{-1,0\});\\ +\ DeltaBar := Delta ** (toS ** N');\\ +\ assert isHomogeneous DeltaBar;\\ +\ assert(DeltaBar * DeltaBar == 0);\\ +\ -- now compute the total Ext as a single homology module\\ +\ cacheModule#cacheKey = prune homology(DeltaBar,DeltaBar)))\\ +\endOutput +\end{code} + +\begin{Remark} +The bigraded module $\Tor_\bu^B(M,N)$ is the homology of the complex +$(C \otimes_A D') \otimes_B N$, where $C\otimes_A D'$ is the complex +from Theorem \ref{resolution}. Observations parallel to Remarks +\ref{action} and \ref{bigrading} show that $\Tor_\bu^B(M,N)$ inherits +from $D'$ a structure of bigraded $S$-module. + +It would be desirable also to have algorithms to compute +$\Tor_\bu^B(M,N)$ in the spirit of the algorithm presented above for +$\Ext^\bu_B(M,N)$. If one of the modules has finite length, then +each $\Tor_n^B(M,N)$ is a $B$-module of finite length, and the +computation of $\Tor_\bu^B(M,N)$ can be reduced to a computation of +$\Ext$ by means of Matlis duality, which here can be realized as vector +space duality over the field $K$. However, in homology there is no +equivalent for the finiteness property described in Remark +\ref{canonical}; it is an {\bf open problem} to devise algorithms that +would compute $\Tor_\bu^B(M,N)$ in general. + \end{Remark} + +\section{Invariants of Modules} +\label{Invariants of modules} + +In this section we apply our techniques to develop effective methods +for computation (for graded modules over a graded complete +intersection) of invariants such as cohomology modules, Poincar\'e +series, Bass series, complexity, critical degree, and support +varieties. For each invariant we produce code that computes it, and +illustrate the action of the code on some explicit example. + +Whenever appropriate, we describe {\bf open problems} on which the +computational power of \Mtwo could be unleashed. + +Notation \ref{graded stuff} is used consistently throughout the section. + +\subsection{Cohomology Modules} +\label{Computation of cohomology} + +We call the bigraded $R$-module $P=\Ext^\bu_B(M,k)$ the +{\it\ie{contravariant cohomology module}\/} of $M$ over $B$, and the +bigraded $R$-module $I=\Ext^\bu_B(k,M)$ the {\it\ie{covariant +cohomology module}\/} of $M$. Codes that display presentations of the +cohomology modules are presented after a detailed discussion of an example. + +\begin{sExample} +\label{random} +Let us create the ring $B=K[x,y,z]/(x^3,y^4,z^5)$. +\beginOutput +i68 : A = K[x,y,z];\\ +\endOutput +\beginOutput +i69 : J = trim ideal(x^3,y^4,z^5)\\ +\emptyLine +\ 3 4 5\\ +o69 = ideal (x , y , z )\\ +\emptyLine +o69 : Ideal of A\\ +\endOutput +\beginOutput +i70 : B = A/J;\\ +\endOutput +We trimmed the ideal, so that we know the generators \Mtwo will use. + +This time we want a graded $B$-module $M$ about whose homology we know +nothing {\sl a priori\/}. One way to proceed is to create $M$ as the +cokernel of some random matrix of forms; let's try a 3 by 2 matrix of +quadratic forms. +\beginOutput +i71 : f = random (B^3, B^\{-2,-3\})\\ +\emptyLine +o71 = | 27x2+49xy-14y2-23xz-6yz-19z2 38x2y-34xy2+4y3+x2z+16xyz-y2z-5xz $\cdot\cdot\cdot$\\ +\ | -5x2+44xy+38y2+40xz+15yz+4z2 -37x2y+51xy2-36y3+26x2z-38xyz-17y $\cdot\cdot\cdot$\\ +\ | 21x2-30xy+32y2-47xz+7yz-50z2 -6x2y-14xy2-26y3-7x2z+41xyz+50y2z $\cdot\cdot\cdot$\\ +\emptyLine +\ 3 2\\ +o71 : Matrix B <--- B\\ +\endOutput +We can't read the second column of that matrix, so let's display it +separately. +\beginOutput +i72 : f_\{1\}\\ +\emptyLine +o72 = | 38x2y-34xy2+4y3+x2z+16xyz-y2z-5xz2-6yz2+47z3 |\\ +\ | -37x2y+51xy2-36y3+26x2z-38xyz-17y2z+17xz2-11yz2+8z3 |\\ +\ | -6x2y-14xy2-26y3-7x2z+41xyz+50y2z+26xz2+46yz2-44z3 |\\ +\emptyLine +\ 3 1\\ +o72 : Matrix B <--- B\\ +\endOutput +Now let's make the module $M$. +\beginOutput +i73 : M = cokernel f;\\ +\endOutput + +We are going to produce isomorphisms of bigraded modules +\begin{gather*} +P^{\text{even}} \cong R[4,10] \oplus (X_1,X_2)[2,7] + \oplus\left(\frac{R}{(X_1,X_2,X_3)}\right)^3\oplus R^4[2,7]\\ +P^{\text{odd}} \cong \frac{R}{(X_1,X_2,X_3)}[1,2] + \oplus\left(\frac{R}{(X_1)}\right)^3[3,9] + \oplus \frac{R}{(X_1,X_2)}[1,3] \oplus R^6[3,9] +\end{gather*} +over the polynomial ring $R=K[X_1,X_2,X_3]$ over $K$, bigraded by +\[ +\Deg(X_1)=(-2,-3)\qquad \Deg(X_2)=(-2,-4) \qquad \Deg(X_3)=(-2,-5) +\] + +Let's compute $\Ext^\bu_B(M,B/(x,y,z))$ by the routine from Section +\ref{Computation of Ext modules}. +\beginOutput +i74 : time P = Ext(M,B^1/(x,y,z));\\ +\ -- used 1.64 seconds\\ +\endOutput +\beginOutput +i75 : S = ring P;\\ +\endOutput +Examine the variables of $S$; due to transposing, their bidegrees +are displayed with the {\it opposite\/} signs. +\beginOutput +i76 : transpose vars S\\ +\emptyLine +o76 = \{2, 3\} | \$X_1 |\\ +\ \{2, 4\} | \$X_2 |\\ +\ \{2, 5\} | \$X_3 |\\ +\ \{0, -1\} | x |\\ +\ \{0, -1\} | y |\\ +\ \{0, -1\} | z |\\ +\emptyLine +\ 6 1\\ +o76 : Matrix S <--- S\\ +\endOutput +The variables $x$, $y$, and $z$ of $A$ annihilate $P$, and so appear in +many places in a presentation of $P$. To reduce the size of such a +presentation, we pass to a ring which eliminates those variables. +\beginOutput +i77 : R = K[X_1..X_3,Degrees => \{\{-2,-3\},\{-2,-4\},\{-2,-5\}\},\\ +\ Adjust => S.Adjust, Repair => S.Repair];\\ +\endOutput +\beginOutput +i78 : phi = map(R,S,\{X_1,X_2,X_3,0,0,0\})\\ +\emptyLine +o78 = map(R,S,\{X , X , X , 0, 0, 0\})\\ +\ 1 2 3\\ +\emptyLine +o78 : RingMap R <--- S\\ +\endOutput +\beginOutput +i79 : P = prune (phi ** P);\\ +\endOutput +\beginOutput +i80 : transpose vars ring P\\ +\emptyLine +o80 = \{2, 3\} | X_1 |\\ +\ \{2, 4\} | X_2 |\\ +\ \{2, 5\} | X_3 |\\ +\emptyLine +\ 3 1\\ +o80 : Matrix R <--- R\\ +\endOutput +As we planned, the original variables $x$, $y$, $z$, which act +trivially on the cohomology, are no longer present in the ring. +Next we compute presentations +\beginOutput +i81 : evenPart P\\ +\emptyLine +o81 = cokernel \{-4, -10\} | 0 0 0 0 0 0 0 0 0 0 |\\ +\ \{-4, -10\} | 0 0 0 0 0 0 0 0 0 -X_2 |\\ +\ \{-4, -11\} | 0 0 0 0 0 0 0 0 0 X_1 |\\ +\ \{0, 0\} | 0 0 X_3 0 0 X_2 0 X_1 0 0 |\\ +\ \{0, 0\} | 0 X_3 0 0 X_2 0 X_1 0 0 0 |\\ +\ \{0, 0\} | X_3 0 0 X_2 0 0 0 0 X_1 0 |\\ +\ \{-2, -7\} | 0 0 0 0 0 0 0 0 0 0 |\\ +\ \{-2, -7\} | 0 0 0 0 0 0 0 0 0 0 |\\ +\ \{-2, -7\} | 0 0 0 0 0 0 0 0 0 0 |\\ +\ \{-2, -7\} | 0 0 0 0 0 0 0 0 0 0 |\\ +\emptyLine +\ 10\\ +o81 : R-module, quotient of R\\ +\endOutput +\beginOutput +i82 : oddPart P\\ +\emptyLine +o82 = cokernel \{-1, -2\} | X_3 0 X_2 0 0 0 0 X_1 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 X_1 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 X_1 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 X_1 0 0 0 |\\ +\ \{-1, -3\} | 0 X_2 0 X_1 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\emptyLine +\ 11\\ +o82 : R-module, quotient of R\\ +\endOutput +These presentations yield the desired isomorphisms of bigraded +$R$-modules. + \end{sExample} + +The procedure above can be automated by installing a method that will +be run when {\tt Ext} is presented with a module $M$ and the residue +field $k$. It displays a presentation of $\Ext_B^\bu(M,k)$ as a bigraded +$R$-module. + +\begin{sCode} +\label{change} +The function {\tt changeRing H} takes an $S$-module $H$ and tensors it +with $R$. It does this by constructing $R$ and a ring homomorphism +\[ +\varphi\colon A[X_1,\dots,X_c] = S \to R = K[X_1,\dots,X_c] +\] +\beginOutput +i83 : changeRing = H -> (\\ +\ S := ring H;\\ +\ K := coefficientRing S;\\ +\ degs := select(degrees source vars S,\\ +\ d -> 0 != first d);\\ +\ R := K[X_1 .. X_#degs, Degrees => degs,\\ +\ Repair => S.Repair, Adjust => S.Adjust];\\ +\ phi := map(R,S,join(gens R,(numgens S - numgens R):0));\\ +\ prune (phi ** H)\\ +\ );\\ +\endOutput +\end{sCode} + +\begin{sCode} +\label{cohomology} +The function {\tt Ext(M,k)} computes $\Ext_B^\bu(M,k)$ when $B$ is a +graded complete intersection, $M$ a graded $B$-module, and $k$ is the +residue field of $B$. The result is presented as a module over the +ring $k[X_1,\dots,X_c]$. +\beginOutput +i84 : Ext(Module,Ring) := (M,k) -> (\\ +\ B := ring M;\\ +\ if ideal k != ideal vars B\\ +\ then error "expected the residue field of the module";\\ +\ changeRing Ext(M,coker vars B)\\ +\ );\\ +\endOutput +\end{sCode} + +\begin{sExample} +For a test, we run again the computation for $P^{\text{odd}}$. +\beginOutput +i85 : use B;\\ +\endOutput +\beginOutput +i86 : k = B/(x,y,z);\\ +\endOutput +\beginOutput +i87 : use B;\\ +\endOutput +\beginOutput +i88 : P = Ext(M,k);\\ +\endOutput +\beginOutput +i89 : time oddPart P\\ +\ -- used 0.09 seconds\\ +\emptyLine +o89 = cokernel \{-1, -2\} | X_3 0 X_2 0 0 0 0 X_1 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 X_1 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 X_1 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 X_1 0 0 0 |\\ +\ \{-1, -3\} | 0 X_2 0 X_1 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\ \{-3, -9\} | 0 0 0 0 0 0 0 0 |\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o89 : K [X , X , X , Degrees => \{\{-2, -3\}, \{-2, -4\}, \{-2, -5\}\}]-module $\cdot\cdot\cdot$\\ +\ 1 2 3 $\cdot\cdot\cdot$\\ +\endOutput +\end{sExample} + +We also introduce code for computing the covariant cohomology modules. + +\begin{sCode} +\label{covariant-cohomology} +The function {\tt Ext(k,M)} computes $\Ext_B^\bu(k,M)$ when $B$ is a +graded complete intersection, $M$ a graded $B$-module, and $k$ is the +residue field of $B$. The result is presented as a module over the +ring $k[X_1,\dots,X_c]$. +\beginOutput +i90 : Ext(Ring,Module) := (k,M) -> (\\ +\ B := ring M;\\ +\ if ideal k != ideal vars B\\ +\ then error "expected the residue field of the module";\\ +\ changeRing Ext(coker vars B,M)\\ +\ );\\ +\endOutput +\end{sCode} + +Let's see the last code in action. + +\begin{sExample} +For $B$ and $M$ from Example \ref{random} we compute the odd part of +the covariant cohomology module $\Ext^\bu_B(k,M)$. +\beginOutput +i91 : time I = Ext(k,M);\\ +\ -- used 14.81 seconds\\ +\endOutput +\beginOutput +i92 : evenPart I\\ +\emptyLine +o92 = cokernel \{0, 6\} | 37X_2 37X_1 |\\ +\ \{0, 6\} | -18X_2 -18X_1 |\\ +\ \{0, 6\} | -13X_2 -13X_1 |\\ +\ \{0, 6\} | -37X_2 -37X_1 |\\ +\ \{0, 6\} | 22X_2 22X_1 |\\ +\ \{0, 6\} | 0 0 |\\ +\ \{0, 6\} | X_2 X_1 |\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o92 : K [X , X , X , Degrees => \{\{-2, -3\}, \{-2, -4\}, \{-2, -5\}\}]-module $\cdot\cdot\cdot$\\ +\ 1 2 3 $\cdot\cdot\cdot$\\ +\endOutput +\beginOutput +i93 : oddPart I\\ +\emptyLine +o93 = cokernel \{-1, 5\} | -48X_3 13X_3 34X_3 3X_3 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, 5\} | 3X_3 -40X_3 8X_3 8X_3 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, 5\} | -X_3 37X_3 -13X_3 -35X_3 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, 4\} | 4X_2 20X_2 3X_2 -47X_2 4X_1 20X_1 3X_1 $\cdot\cdot\cdot$\\ +\ \{-1, 4\} | 0 51X_2 0 -30X_2 0 51X_1 0 $\cdot\cdot\cdot$\\ +\ \{-1, 4\} | 0 12X_2 0 -3X_2 0 12X_1 0 $\cdot\cdot\cdot$\\ +\ \{-1, 4\} | 42X_2 12X_2 46X_2 25X_2 42X_1 12X_1 46X_ $\cdot\cdot\cdot$\\ +\ \{-1, 4\} | 45X_2 24X_2 -14X_2 -35X_2 45X_1 24X_1 -14X $\cdot\cdot\cdot$\\ +\ \{-1, 4\} | 0 0 X_2 0 0 0 X_1 $\cdot\cdot\cdot$\\ +\ \{-1, 4\} | X_2 0 0 0 X_1 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, 4\} | 0 -40X_2 0 10X_2 0 -40X_1 0 $\cdot\cdot\cdot$\\ +\ \{-1, 4\} | 0 X_2 0 0 0 X_1 0 $\cdot\cdot\cdot$\\ +\ \{-1, 3\} | 0 0 0 X_1 0 0 0 $\cdot\cdot\cdot$\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o93 : K [X , X , X , Degrees => \{\{-2, -3\}, \{-2, -4\}, \{-2, -5\}\}]-module $\cdot\cdot\cdot$\\ +\ 1 2 3 $\cdot\cdot\cdot$\\ +\endOutput +\end{sExample} + +\subsection{Poincar\'e Series} +\label{Poincare series} + +The {\it\ie{graded Betti number}\/} of $M$ over $B$ is the number +$\b_{ns}^B(M)$ of direct summands isomorphic to the free module +$B[-s]$ in the $n$'th module of a minimal free resolution of $M$ over +$B$. It can be computed from the equality +\[ +\b_{ns}^B(M)=\dim_K\Ext^n_B(M,k)_{s} +\] +The {\it\ie{graded Poincar\'e series}\/} of $M$ over $B$ is the +generating function +\[ +\Poi^B_M(t,u)=\sum_{n\in\N\,,\,s\in\Z}\b_{ns}^B(M)\, t^n u^{-s} +\in\Z[u,u^{-1}][[t]] +\] +It is easily computable with \Mtwo from the contravariant cohomology +module, by using the {\tt hilbertSeries}\indexcmd{hilbertSeries} routine. + +\begin{sCode} +The function {\tt poincareSeries2 M} computes the graded Poin\-car\'e +series of a graded module $M$ over a graded complete intersection $B$. + +First we set up a ring whose elements can serve as Poincar\'e series. +\beginOutput +i94 : T = ZZ[t,u,Inverses=>true,MonomialOrder=>RevLex];\\ +\endOutput +\beginOutput +i95 : poincareSeries2 = M -> (\\ +\ B := ring M;\\ +\ k := B/ideal vars B;\\ +\ P := Ext(M,k);\\ +\ h := hilbertSeries P;\\ +\ T':= degreesRing P;\\ +\ substitute(h, \{T'_0=>t^-1,T'_1=>u^-1\})\\ +\ );\\ +\endOutput +The last line in the code above replaces the variables in the +Poincar\'e series provided by the {\tt hilbertSeries} function with the +variables in our ring {\tt T}. + \end{sCode} + +The $n$th {\it\ie{Betti number}\/} $\b^B_n(M)$ of $M$ over $B$ is the +rank of the $n$th module in a minimal resolution of $M$ by free +$B$-modules. The {\it\ie{Poincar\'e series}\/} $\Poi^B_M(t)$ is the +generating function of the Betti numbers. There are expressions +\[ +\b^B_n(M)=\sum_{s=0}^\infty\b^B_{ns}(M) +\qquad\text{and}\qquad +\Poi^B_M(t)=\Poi^B_M(t,1) +\] +Accordingly, the code for $\Poi^B_M(t)$ just replaces +in $\Poi^B_M(t,u)$ the variable $u$ by $1$. + +\begin{sCode} +The function {\tt poincareSeries1 M} computes the Poincar\'e series of a +graded module $M$ over a graded complete intersection $B$. +\beginOutput +i96 : poincareSeries1 = M -> (\\ +\ substitute(poincareSeries2 M, \{u=>1_T\})\\ +\ );\\ +\endOutput +\end{sCode} + +Now let's use these codes in computations. + +\begin{sExample} +\label{cosyzygy} +To get a module whose Betti sequence initially decreases, we form +an artinian complete intersection $B'$ and take $M'$ to be a cosyzygy +in a minimal injective resolution of the residue field $k$. Since $B'$ +is self-injective, this can be achieved by taking a syzygy of $k$, then +transposing its presentation matrix. Of course, we ask \Mtwo to carry +out these steps. +\beginOutput +i97 : A' = K[x,y,z];\\ +\endOutput +\beginOutput +i98 : B' = A'/(x^2,y^2,z^3);\\ +\endOutput +\beginOutput +i99 : C' = res(B'^1/(x,y,z), LengthLimit => 6)\\ +\emptyLine +\ 1 3 6 10 15 21 28\\ +o99 = B' <-- B' <-- B' <-- B' <-- B' <-- B' <-- B'\\ +\ \\ +\ 0 1 2 3 4 5 6\\ +\emptyLine +o99 : ChainComplex\\ +\endOutput +\beginOutput +i100 : M' = coker transpose C'.dd_5\\ +\emptyLine +o100 = cokernel \{-5\} | -y 0 0 0 z 0 0 0 0 0 0 0 0 0 0 |\\ +\ \{-5\} | -x -y 0 0 0 z 0 0 0 0 0 0 0 0 0 |\\ +\ \{-5\} | 0 x -y 0 0 0 z 0 0 0 0 0 0 0 0 |\\ +\ \{-5\} | 0 0 x -y 0 0 0 z 0 0 0 0 0 0 0 |\\ +\ \{-5\} | 0 0 0 -x 0 0 0 0 z 0 0 0 0 0 0 |\\ +\ \{-5\} | 0 0 0 0 y 0 0 0 0 0 0 0 0 0 0 |\\ +\ \{-5\} | 0 0 0 0 -x y 0 0 0 0 0 0 0 0 0 |\\ +\ \{-5\} | 0 0 0 0 0 x y 0 0 0 0 0 0 0 0 |\\ +\ \{-5\} | 0 0 0 0 0 0 x y 0 0 0 0 0 0 0 |\\ +\ \{-5\} | 0 0 0 0 0 0 0 -x y 0 0 0 0 0 0 |\\ +\ \{-5\} | 0 0 0 0 0 0 0 0 x 0 0 0 0 0 0 |\\ +\ \{-6\} | 0 0 0 0 0 0 0 0 0 -y 0 z 0 0 0 |\\ +\ \{-6\} | 0 0 0 0 0 0 0 0 0 x -y 0 z 0 0 |\\ +\ \{-6\} | 0 0 0 0 0 0 0 0 0 0 -x 0 0 z 0 |\\ +\ \{-6\} | z2 0 0 0 0 0 0 0 0 0 0 y 0 0 0 |\\ +\ \{-6\} | 0 -z2 0 0 0 0 0 0 0 0 0 x y 0 0 |\\ +\ \{-6\} | 0 0 z2 0 0 0 0 0 0 0 0 0 -x y 0 |\\ +\ \{-6\} | 0 0 0 z2 0 0 0 0 0 0 0 0 0 x 0 |\\ +\ \{-7\} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z |\\ +\ \{-7\} | 0 0 0 0 0 0 0 0 0 z2 0 0 0 0 y |\\ +\ \{-7\} | 0 0 0 0 0 0 0 0 0 0 z2 0 0 0 x |\\ +\emptyLine +\ 21\\ +o100 : B'-module, quotient of B'\\ +\endOutput +Compute the Poincar\'e series in two variables $\Poi^{B'}_{M'}(t,u)$. +\beginOutput +i101 : poincareSeries2 M'\\ +\emptyLine +\ -7 -6 -5 -6 -5 -4 2 -5 2 - $\cdot\cdot\cdot$\\ +\ 3u + 7u + 11u + t*u + 5t*u + 9t*u - 6t u - 14t u $\cdot\cdot\cdot$\\ +o101 = --------------------------------------------------------------- $\cdot\cdot\cdot$\\ +\ $\cdot\cdot\cdot$\\ +\ $\cdot\cdot\cdot$\\ +\emptyLine +o101 : Divide\\ +\endOutput +\end{sExample} + +\begin{sExample} +We compute $\Poi^B_M(t)$ for the module $M$ from Example \ref{random}. +\beginOutput +i102 : p = poincareSeries1 M\\ +\emptyLine +\ 2 3 4 5 6 7\\ +\ 3 + 2t - 5t + 4t + 12t + t - 4t - t\\ +o102 = -----------------------------------------\\ +\ 2 2 2\\ +\ (1 - t )(1 - t )(1 - t )\\ +\emptyLine +o102 : Divide\\ +\endOutput +We have written some rather na\"\i ve code for simplifying rational +functions as above. It locates factors of the form $1-t^n$ in the +denominator, factors out $1-t$, and factors out $1+t$ if $n$ is even. +Keeping the factors of the denominator separate, it then cancels as +many of them as it can with the numerator. +\beginOutput +i103 : load "simplify.m2"\\ +\endOutput +\beginOutput +i104 : simplify p\\ +\emptyLine +\ 2 3 4 5 6\\ +\ 3 - t - 4t + 8t + 4t - 3t - t\\ +o104 = ----------------------------------\\ +\ 2 3\\ +\ (1 + t) (1 - t)\\ +\emptyLine +o104 : Divide\\ +\endOutput +In this case, it succeeded in canceling a factor of $1+t$. +\end{sExample} + +\begin{sExample} + We compute some Betti numbers for $M$. We use the division operation in + the Euclidean domain $T' = \mathbb Q[t,t^{-1}]$ with the reverse monomial ordering + to compute power series expansions. +\beginOutput +i105 : T' = QQ[t,Inverses=>true,MonomialOrder=>RevLex];\\ +\endOutput +\beginOutput +i106 : expansion = (n,q) -> (\\ +\ t := T'_0;\\ +\ rho := map(T',T,\{t,1\});\\ +\ num := rho value numerator q;\\ +\ den := rho value denominator q;\\ +\ n = n + first degree den;\\ +\ n = max(n, first degree num + 1);\\ +\ (num + t^n) // den\\ +\ );\\ +\endOutput +Now let's expand the Poincar\'e series up to $t^{20}$. +\beginOutput +i107 : expansion(20,p)\\ +\emptyLine +\ 2 3 4 5 6 7 8 9 $\cdot\cdot\cdot$\\ +o107 = 3 + 2t + 4t + 10t + 15t + 25t + 32t + 46t + 55t + 73t + $\cdot\cdot\cdot$\\ +\emptyLine +o107 : T'\\ +\endOutput +Just to make sure, let's compare the first few coefficients with the +more pedestrian way of doing the computation, one Ext module at a time. +\beginOutput +i108 : psi = map(K,B)\\ +\emptyLine +o108 = map(K,B,\{0, 0, 0\})\\ +\emptyLine +o108 : RingMap K <--- B\\ +\endOutput +\beginOutput +i109 : apply(10, i -> rank (psi ** Ext^i(M,coker vars B)))\\ +\emptyLine +o109 = \{3, 2, 4, 10, 15, 25, 32, 46, 55, 73\}\\ +\emptyLine +o109 : List\\ +\endOutput +Now we restore {\tt t} to its original use. +\beginOutput +i110 : use T;\\ +\endOutput + \end{sExample} + +\subsection{Complexity} + +The {\it\ie{complexity}\/} of $M$ is the least $d\in\N$ such that +the function +\[ +n \mapsto \dim_K \Ext^n_B(M,k) +\] +is bounded above by a polynomial of degree $d-1$ (with the convention +that the zero polynomial has degree $-1$). This number, denoted +$\cx_B(M)$, was introduced in +\cite{CI:MR90g:13027} to measures on a polynomial scale the rate of +growth of the Betti numbers of $M$. It is calibrated so that +$\cx_B(M)=0$ if and only if $M$ has finite projective dimension. +Corollary \ref{series} yields +\[ +\Poi^B_M(t)=\frac{p^B_M(t)}{(1-t^2)^c} +\qquad\text{for some}\qquad p^B_M(t)\in\Z[t] +\] +Decomposing the right hand side into partial fractions, one sees that +$\cx_R(M)$ equals the order of the pole of $\Poi^B_M(t)$ at $t=1$; in +particular, $\cx_R(M,N)\le c$. However, since we get $\Poi^B_M(t)$ +from a computation of the $R$-module $P=\Ext^\bu_B(M,k)$, it is natural +to obtain $\cx_R(M)$ as the Krull dimension of $P$. + +\begin{sCode} +The function {\tt complexity M} yields the complexity of a graded +module $M$ over a graded complete intersection ring $B$. +\beginOutput +i111 : complexity = M -> dim Ext(M,coker vars ring M);\\ +\endOutput + \end{sCode} + +\begin{sExample} +We compute $\cx_B(M)$ for $M$ from Example \ref{random}. +\beginOutput +i112 : complexity M\\ +\emptyLine +o112 = 3\\ +\endOutput + \end{sExample} + +\subsection{Critical Degree} + +The {\it\ie{critical degree}\/} of $M$ is the least integer $\ell$ for +which the minimal resolution $F$ of $M$ admits a chain map $g\colon +F\to F$ of degree $m<0$, such that $g_{m+n}\colon F_{m+n}\to F_n$ is +surjective for all $n>\ell$. This number, introduced in +\cite{CI:MR99c:13033} and denoted $\crdeg_BM$, is meaningful over every +graded ring $B$. It is equal to the projective dimension whenever the +latter is finite. + +When $B$ is a complete intersection it is proved in +\cite[Sect.~7]{CI:MR99c:13033} that $\crdeg_BM$ is finite and yields +important information on the Betti sequence: +\begin{itemize} +\item[$\bullet$] +if $\cx_BM\le1$, then $\b^B_n(M) =\b^B_{n+1}(M)$ for all $n>\crdeg_BM$. +\item[$\bullet$] +if $\cx_BM\ge2$, then $\b^B_n(M)<\b^B_{n+1}(M)$ for all $n>\crdeg_BM$. +\end{itemize} +Thus, it is interesting to know $\crdeg_BM$, or at least to have a good +upper bound. Here is what is known, in terms of $h=\depth B-\depth_BM$. +\begin{itemize} +\item[$\bullet$] +if $\cx_BM=0$, then $\crdeg_BM=h$. +\item[$\bullet$] +if $\cx_BM=1$, then $\crdeg_BM\le h$. +\item[$\bullet$] +if $\cx_BM=2$, then $\crdeg_BM\le h+1+\max\{2\beta^B_h(M)-1\,,\, +2\beta^B_{h+1}(M)\}$. +\end{itemize} +The first part is the Auslander-Buchsbaum Equality, the second part is +proved in \cite[Sect.~6]{CI:Ei}, the third is established in +\cite[Sect.~7]{CI:MR1774757}. + +These upper bounds are realistic: there exist examples in complexity +$1$ when they are reached, and examples in complexity $2$ when they are +not more than twice the actual value of the critical degree. If +$\cx_RM\ge3$, then it is an {\bf open problem} whether the critical +degree of $M$ can be bounded in terms that do not depend on the action +of the cohomology operators. + +However, in every concrete case $\crdeg_RM$ can be computed explicitly +by using \Mtwo. Indeed, it is proved in \cite[Sect.~7]{CI:MR99c:13033} +that $\crdeg_RM$ is equal to the highest degree of a non-zero element +in the socle of the $R$-module $\Ext^\bu_B(M,k)$, that is, the +submodule consisting of elements annihilated by $(X_1,\dots,X_c)$. The +socle is naturally isomorphic to $\Hom_B(k,\Ext^\bu_B(M,k))$, so it can +be obtained by standard \Mtwo routines. + +For instance, for the module $M$ from Example \ref{random}, we get +\beginOutput +i113 : k = coker vars ring H;\\ +\endOutput +\beginOutput +i114 : prune Hom(k,H)\\ +\emptyLine +o114 = 0\\ +\emptyLine +o114 : K [\$X , \$X , x, y, Degrees => \{\{-2, -2\}, \{-2, -3\}, \{0, 1\}, \{0, $\cdot\cdot\cdot$\\ +\ 1 2\\ +\endOutput +The degrees displayed above show that $\crdeg_RM=1$. +\medskip + +Of course, one might prefer to see the number $\crdeg_BM$ directly. + +\begin{sCode} +The function {\tt criticalDegree M} computes the critical degree of a +graded module $M$ over a graded complete intersection ring $B$. +\beginOutput +i115 : criticalDegree = M -> (\\ +\ B := ring M;\\ +\ k := B / ideal vars B;\\ +\ P := Ext(M,k);\\ +\ k = coker vars ring P;\\ +\ - min ( first {\char`\\} degrees source gens prune Hom(k,P))\\ +\ );\\ +\endOutput +\end{sCode} + +Let's test the new code in a couple of cases. + +\begin{sExample} +For the module $M$ of Example \ref{random} we have +\beginOutput +i116 : criticalDegree M\\ +\emptyLine +o116 = 1\\ +\endOutput +in accordance with what was already observed above. + +For the module $M'$ of Example \ref{cosyzygy} we obtain +\beginOutput +i117 : criticalDegree M'\\ +\emptyLine +o117 = 5\\ +\endOutput +\end{sExample} + +\subsection{Support Variety} +\label{Support variety} + +Let $\overline K$ denote an algebraic closure of $K$. The +{\it\ie{support variety}\/} $\var^*_B(M)$ is the algebraic set in +${\overline K}{}^c$ defined by the annihilator of $\Ext^\bu_B(M,k)$ +over $R=K[X_1,\dots,X_c]$. This `geometric image' of the +contravariant cohomology module was introduced in \cite{CI:MR90g:13027} +and used to study the minimal free resolution of $M$. The dimension of +the support variety is equal to the complexity $\cx_R(M)$, that we can +already compute. There is no need to associate a variety to the +covariant cohomology module, see \ref{Support variety2}. + +Since $\var^*_B(M)$ is defined by homogeneous equations, it is a cone +in ${\overline K}{}^c$. An important {\bf open problem} is whether +every cone in ${\overline K}{}^c$ that can be defined over $K$ is the +variety of some $B$-module $M$. By \cite[Sect.~6]{CI:MR90g:13027} all +linear subspaces and all hypersurfaces arise in this way, but little +more is known in general. + +Feeding our computation of $\Ext^\bu_B(M,k)$ to standard \Mtwo routines +we write code for determining a set of equations defining $\var^*_B(M)$. + +\begin{sCode} +The function {\tt supportVarietyIdeal M} yields a set of polynomial +equations with coefficients in $K$, defining the support variety +$\var^*_B(M)$ in ${\overline K}{}^c$ for a graded module $M$ over a +graded complete intersection $B$. +\beginOutput +i118 : supportVarietyIdeal = M -> (\\ +\ B := ring M;\\ +\ k := B/ideal vars B;\\ +\ ann Ext(M,k)\\ +\ );\\ +\endOutput + \end{sCode} + +As before, we illustrate the code with explicit computations. In +view of the open problem mentioned above, we fix a ring and a type of +presentation, then change randomly the presentation matrix in the hope +of finding an `interesting' variety. The result of the experiment +is assessed in Remark \ref{letdown}. + +\begin{sExample} +Let $\F_7$ denote the prime field with $7$ elements, and form the +zero-dimensional complete intersection $B''=\F_7[x,y,z]/(x^7,y^7,z^7)$. +\beginOutput +i119 : K'' = ZZ/7;\\ +\endOutput +\beginOutput +i120 : A'' = K''[x,y,z];\\ +\endOutput +\beginOutput +i121 : J'' = ideal(x^7,y^7,z^7);\\ +\emptyLine +o121 : Ideal of A''\\ +\endOutput +\beginOutput +i122 : B'' = A''/J'';\\ +\endOutput +We apply the code above to search, randomly, for some varieties. Using +{\tt scan}\indexcmd{scan} we print the results from several runs with one command. +\beginOutput +i123 : scan((1,1) .. (3,3), (r,d) -> (\\ +\ V := cokernel random (B''^r,B''^\{-d\});\\ +\ << "--------------------------------------------------- $\cdot\cdot\cdot$\\ +\ << endl\\ +\ << "V = " << V << endl\\ +\ << "support variety ideal = "\\ +\ << timing supportVarietyIdeal V\\ +\ << endl))\\ +------------------------------------------------------------------\\ +V = cokernel | -2x+3y+2z |\\ +support variety ideal = ideal (X - 2X , X + X )\\ +\ 2 3 1 3\\ +\ -- 0.7 seconds\\ +------------------------------------------------------------------\\ +V = cokernel | 3x2-2xy+xz-3yz |\\ +support variety ideal = ideal(X + 3X + 2X )\\ +\ 1 2 3\\ +\ -- 0.48 seconds\\ +------------------------------------------------------------------\\ +V = cokernel | -2x3+3x2y+y3-x2z-3y2z-xz2-3z3 |\\ +support variety ideal = 0\\ +\ -- 1.54 seconds\\ +------------------------------------------------------------------\\ +V = cokernel | -3y+3z |\\ +\ | -2x-2y |\\ +support variety ideal = ideal(X + X - X )\\ +\ 1 2 3\\ +\ -- 0.86 seconds\\ +------------------------------------------------------------------\\ +V = cokernel | -x2+2y2-xz+yz+3z2 |\\ +\ | 2xy-3xz-3yz-2z2 |\\ +support variety ideal = 0\\ +\ -- 1.31 seconds\\ +------------------------------------------------------------------\\ +V = cokernel | -x3-2x2y-xy2-2xyz+3y2z+2xz2-yz2-2z3 |\\ +\ | 2xy2+3y3-3x2z-2y2z+2xz2+2yz2 |\\ +support variety ideal = 0\\ +\ -- 2.21 seconds\\ +------------------------------------------------------------------\\ +V = cokernel | 3x-y-z |\\ +\ | -3x-y+2z |\\ +\ | x-2y+3z |\\ +support variety ideal = 0\\ +\ -- 1.1 seconds\\ +------------------------------------------------------------------\\ +V = cokernel | 2x2-2xy+2y2+2xz-3z2 |\\ +\ | -x2+2xy+y2+3xz+3yz-z2 |\\ +\ | -2xz+2yz+2z2 |\\ +support variety ideal = 0\\ +\ -- 1.67 seconds\\ +------------------------------------------------------------------\\ +V = cokernel | 2x3-x2y+2xy2-y3-2xyz+3y2z+xz2+3yz2+z3 |\\ +\ | -3x3-3x2y+3xy2+2x2z+3xyz-3y2z-xz2 |\\ +\ | -3x3-2x2y-xy2-2y3-2xyz+y2z+xz2+3yz2-z3 |\\ +support variety ideal = 0\\ +\ -- 1.92 seconds\\ +\endOutput +\end{sExample} + +\begin{sRemark} +\label{letdown} +The (admittedly short) search above did not turn up any non-linear +variety. This should be contrasted with the known result that +{\it every\/} cone in ${\overline \F_7}{}^3$ is the support variety of +some $B''$-module. + +Indeed, $B''$ is isomorphic to the group algebra $\F_7[G]$ of the +elementary abelian group $G=\C_7\times\C_7\times\C_7$, where $\C_7$ is +a cyclic group of order $7$. It is shown in +\cite[Sect.~7]{CI:MR90g:13027} that $\var^*_{B''}(V)$ is equal to a +variety $\var^*_G(V)$, defined in a different way in +\cite{CI:MR85a:20004} by Carlson. He proves in \cite{CI:MR86b:20009} +that if $K$ is a field of characteristic $p>0$, and $G$ is an +elementary abelian $p$-group of rank $c$, then every cone in +${\overline K}{}^c$ is the rank variety of a finitely generated module +over $K[G]$. + \end{sRemark} + +\subsection{Bass Series} +\label{Bass series} + +The {\it\ie{graded Bass number}\/} $\mu^{ns}_B(M)$ of $M$ over $B$ is +the number of direct summands isomorphic to $U[s]$ in the $n$'th module +of a minimal graded injective resolution of $M$ over $B$, where $U$ +is the injective envelope of $k$. It satisfies +\[ +\mu^{ns}_B(M)=\dim_K\Ext^n_B(k,M)_{s} +\] +The {\it\ie{graded Bass series}\/} of $M$ over $B$ is the generating +function +\[ +\Ba^M_B(t,u)=\sum_{n\in\N\,,\,s\in\Z}\mu^{ns}_B(M)\, t^nu^s +\in\Z[u,u^{-1}][[t]] +\] +It is easily computable with \Mtwo from the covariant cohomology module, +by using the {\tt hilbertSeries}\indexcmd{hilbertSeries} routine. + +\begin{sCode} +The function {\tt bassSeries2 M} computes the graded Bass series of a +graded module $M$ over a graded complete intersection $B$. +\beginOutput +i124 : bassSeries2 = M -> (\\ +\ B := ring M;\\ +\ k := B/ideal vars B;\\ +\ I := Ext(k,M);\\ +\ h := hilbertSeries I;\\ +\ T':= degreesRing I;\\ +\ substitute(h, \{T'_0=>t^-1, T'_1=>u\})\\ +\ );\\ +\endOutput + \end{sCode} + +As with Betti numbers and Poincar\'e series, there are ungraded versions +of Bass numbers and Bass series; they are given, respectively, by +\[ +\mu_B^n(M)=\sum_{s=0}^\infty\mu_B^{ns}(M) +\qquad\text{and}\qquad +\Ba_B^M(t)=\Ba_B^M(t,1) +\] + +\begin{sCode} +The function {\tt bassSeries1 M} computes the Bass series of a graded +module $M$ over a graded complete intersection $B$. +\beginOutput +i125 : bassSeries1 = M -> (\\ +\ substitute(bassSeries2 M, \{u=>1_T\})\\ +\ );\\ +\endOutput +\end{sCode} + +Now let's use these codes in computations. + +\begin{sExample} +For $k$, the residue field of $B$, the contravariant and covariant +cohomology modules coincide. For comparison, we compute side by side +the Poincar\'e series and the Bass series of $k$, when +$B=K[x,y,z]/(x^3,y^4,z^5)$ is the ring defined in Example +\ref{random}. +\beginOutput +i126 : use B;\\ +\endOutput +\beginOutput +i127 : L = B^1/(x,y,z);\\ +\endOutput +\beginOutput +i128 : p = poincareSeries2 L\\ +\emptyLine +\ 2 2 3 3\\ +\ 1 + 3t*u + 3t u + t u\\ +o128 = ------------------------------\\ +\ 2 3 2 4 2 5\\ +\ (1 - t u )(1 - t u )(1 - t u )\\ +\emptyLine +o128 : Divide\\ +\endOutput +\beginOutput +i129 : b = bassSeries2 L\\ +\emptyLine +\ -1 2 -2 3 -3\\ +\ 1 + 3t*u + 3t u + t u\\ +o129 = ---------------------------------\\ +\ 2 -3 2 -4 2 -5\\ +\ (1 - t u )(1 - t u )(1 - t u )\\ +\emptyLine +o129 : Divide\\ +\endOutput +The reader would have noticed that the two series are different, and +that one is obtained from the other by the substitution $u\mapsto +u^{-1}$. This underscores the different meanings of the graded Betti +numbers and Bass numbers. + \end{sExample} + +\begin{sExample} +Here we compute the graded and ungraded Bass series of the $B$-module +$M$ of Example \ref{random}. +\beginOutput +i130 : b2 = bassSeries2 M\\ +\emptyLine +\ 6 3 4 5 2 2 2 3 3 3 3 2 $\cdot\cdot\cdot$\\ +\ 7u + t*u + 9t*u + 3t*u - t u - t u - 4t - 3t u - 3t u + $\cdot\cdot\cdot$\\ +o130 = --------------------------------------------------------------- $\cdot\cdot\cdot$\\ +\ 2 -3 2 -4 2 -5\\ +\ (1 - t u )(1 - t u )(1 - t u )\\ +\emptyLine +o130 : Divide\\ +\endOutput +\beginOutput +i131 : b1 = bassSeries1 M;\\ +\endOutput +\beginOutput +i132 : simplify b1\\ +\emptyLine +\ 2 3 4\\ +\ 7 + 6t - 8t - 2t + 3t\\ +o132 = ------------------------\\ +\ 2 3\\ +\ (1 + t) (1 - t)\\ +\emptyLine +o132 : Divide\\ +\endOutput + \end{sExample} + +\section{Invariants of Pairs of Modules} +\label{Invariants of pairs of modules} + +In this final section we compute invariants of a pair $(M,N)$ of graded +modules over a graded complete intersection $B$, derived from the +reduced Ext module $\rExt^\bu_B(M,N)$ defined in Remark \ref{reduced +ext}. The treatment here is parallel to that in Section +\ref{Invariants of modules}. When one of the modules $M$ or $N$ is +equal to the residue field $k$, the invariants discussed below reduce +to those treated in that section. + +\subsection{Reduced Ext Module} + +The reduced Ext module $\rExt^\bu_B(M,N)=\Ext^\bu_B(M,N)\otimes_Ak$ +defined in Remark \ref{reduced ext} is computed from our basic +routine {\tt Ext(M,N)} by applying the function {\tt changeRing} +defined in Code \ref{change}. + +\begin{sCode} +\label{reduced} +The function {\tt ext(M,N)} computes $\rExt_B^\bu(M,N)$ when $M$ +and $N$ are graded modules over a graded complete intersection $B$. +\beginOutput +i133 : ext = (M,N) -> changeRing Ext(M,N);\\ +\endOutput + \end{sCode} + +\begin{sExample} +\label{new module} +Using the ring $B=K[x,y,z]/(x^3,y^4,z^5)$ and the module $M$ created +in Example \ref{random}, we make new modules +\[ +N=B/(x^2+z^2\,,\,y^3) \qquad\text{and}\qquad +N'=B/(x^2+z^2\,,\,y^3-2z^3) +\] +\beginOutput +i134 : use B;\\ +\endOutput +\beginOutput +i135 : N = B^1/(x^2 + z^2,y^3);\\ +\endOutput +\beginOutput +i136 : time rH = ext(M,N);\\ +\ -- used 15.91 seconds\\ +\endOutput +\beginOutput +i137 : evenPart rH\\ +\emptyLine +o137 = cokernel \{-4, -9\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 0 0 0 0 0 X_3 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 0 0 0 X_3 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 0 0 0 0 X_3 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 0 0 X_3 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 0 X_3 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 X_3 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 X_3 0 0 0 0 0 0 0 0 X_2 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | X_3 0 0 0 0 0 0 0 0 X_2 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 1\} | 0 0 0 0 0 0 0 0 X_2 0 0 $\cdot\cdot\cdot$\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o137 : K [X , X , X , Degrees => \{\{-2, -3\}, \{-2, -4\}, \{-2, -5\}\}]-modul $\cdot\cdot\cdot$\\ +\ 1 2 3 $\cdot\cdot\cdot$\\ +\endOutput +\beginOutput +i138 : oddPart rH\\ +\emptyLine +o138 = cokernel \{-3, -6\} | 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-3, -6\} | 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-3, -6\} | 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-3, -6\} | 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-3, -6\} | 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | -39X_3 0 0 0 0 0 0 0 X_2 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | 31X_3 0 0 0 0 0 0 X_2 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | -34X_3 0 0 0 0 0 X_2 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | -35X_3 0 0 0 0 X_2 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | -29X_3 0 0 0 X_2 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | 12X_3 0 0 X_2 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | -8X_3 0 X_2 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -1\} | X_3 X_2 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-3, -7\} | 0 0 0 0 0 0 0 0 0 X_1 $\cdot\cdot\cdot$\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o138 : K [X , X , X , Degrees => \{\{-2, -3\}, \{-2, -4\}, \{-2, -5\}\}]-modul $\cdot\cdot\cdot$\\ +\ 1 2 3 $\cdot\cdot\cdot$\\ +\endOutput +\beginOutput +i139 : N' = B^1/(x^2 + z^2,y^3 - 2*z^3);\\ +\endOutput +\beginOutput +i140 : time rH' = ext(M,N');\\ +\ -- used 20.26 seconds\\ +\endOutput +\beginOutput +i141 : evenPart rH'\\ +\emptyLine +o141 = cokernel \{-4, -8\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-4, -8\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-4, -9\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-4, -9\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-4, -9\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-4, -9\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-4, -9\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-4, -9\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 0 0 0 0 X_3 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 0 0 0 X_3 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 0 0 X_3 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 X_3 0 0 0 0 0 0 0 X_2 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 0 0 X_3 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | 0 X_3 0 0 0 0 0 0 0 X_2 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-2, -4\} | 0 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 2\} | X_3 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 1\} | 0 0 0 0 0 0 0 X_2 0 0 0 $\cdot\cdot\cdot$\\ +\ \{0, 1\} | 0 0 0 0 0 0 0 0 X_2 0 0 $\cdot\cdot\cdot$\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o141 : K [X , X , X , Degrees => \{\{-2, -3\}, \{-2, -4\}, \{-2, -5\}\}]-modul $\cdot\cdot\cdot$\\ +\ 1 2 3 $\cdot\cdot\cdot$\\ +\endOutput +\beginOutput +i142 : oddPart rH'\\ +\emptyLine +o142 = cokernel \{-3, -6\} | 0 0 0 0 0 0 0 0 -42X_2 21X_ $\cdot\cdot\cdot$\\ +\ \{-3, -6\} | 0 0 0 0 0 0 0 0 -6X_2 -32X $\cdot\cdot\cdot$\\ +\ \{-3, -6\} | 0 0 0 0 0 0 0 0 -8X_2 12X_ $\cdot\cdot\cdot$\\ +\ \{-3, -6\} | 0 0 0 0 0 0 0 0 26X_2 -36X $\cdot\cdot\cdot$\\ +\ \{-3, -6\} | 0 0 0 0 0 0 0 0 50X_2 18X_ $\cdot\cdot\cdot$\\ +\ \{-3, -6\} | 0 0 0 0 0 0 0 0 31X_2 7X_2 $\cdot\cdot\cdot$\\ +\ \{-3, -7\} | 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-3, -7\} | 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-3, -7\} | 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-3, -7\} | 0 0 0 0 0 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-3, -7\} | 0 0 0 0 0 0 0 0 0 X_1 $\cdot\cdot\cdot$\\ +\ \{-3, -7\} | 0 0 0 0 0 0 0 0 X_1 0 $\cdot\cdot\cdot$\\ +\ \{-1, -2\} | 0 0 0 X_2 0 0 0 X_1 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -2\} | 0 0 X_2 0 0 0 X_1 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -2\} | 0 X_2 0 0 0 X_1 0 0 0 0 $\cdot\cdot\cdot$\\ +\ \{-1, -2\} | X_2 0 0 0 X_1 0 0 0 0 0 $\cdot\cdot\cdot$\\ +\emptyLine +\ $\cdot\cdot\cdot$\\ +o142 : K [X , X , X , Degrees => \{\{-2, -3\}, \{-2, -4\}, \{-2, -5\}\}]-modul $\cdot\cdot\cdot$\\ +\ 1 2 3 $\cdot\cdot\cdot$\\ +\endOutput +\end{sExample} + +\subsection{Ext-generator Series} + +The Ext-generator series $\gen^{M,N}_B(t,u)$ defined in Remark +\ref{reduced ext} generalizes both the Poincar\'e series of $M$ +and the Bass series of $N$, as seen from the formulas +\[ +\Poi^B_M(t,u)=\gen^{M,k}_B(t,u) +\qquad\text{and}\qquad +\Ba^N_B(t,u)=\gen^{k,N}_B(t,u^{-1}) +\] +Similar equalities hold for the corresponding series in one variable. +Codes for computing Ext-generator series are easy to produce. + +\begin{sCode} +\label{genseries} +The function {\tt extgenSeries2(M,N)} computes $\gen^{M,N}_B(t,u)$ when +$M$ and $N$ are graded modules over a graded complete intersection $B$, +and presents it as a rational function with denominator +$(1-t^2u^{r_1})\cdots(1-t^2u^{r_c})$. +\beginOutput +i143 : extgenSeries2 = (M,N) -> (\\ +\ H := ext(M,N);\\ +\ h := hilbertSeries H;\\ +\ T':= degreesRing H;\\ +\ substitute(h, \{T'_0=>t^-1,T'_1=>u^-1\})\\ +\ );\\ +\endOutput +\end{sCode} + +\begin{sCode} +The function {\tt extgenSeries1(M,N)} computes the Ext-genera\-tor series in +one variable for a pair $(M,N)$ of graded modules over a graded complete +intersection $B$. +\beginOutput +i144 : extgenSeries1 = (M,N) -> (\\ +\ substitute(extgenSeries2(M,N), \{u=>1_T\})\\ +\ );\\ +\endOutput +\end{sCode} + +\begin{sExample} +For $M$, $N$, and $N'$ as in Example \ref{new module} we obtain +\beginOutput +i145 : time extgenSeries2(M,N)\\ +\ -- used 0.44 seconds\\ +\emptyLine +\ -2 -1 2 2 2 2 3 2 4 3 4 3 $\cdot\cdot\cdot$\\ +\ 8u + u + 8t*u - 8t u - 9t u - 9t u + 7t u - 8t u - 8t u $\cdot\cdot\cdot$\\ +o145 = --------------------------------------------------------------- $\cdot\cdot\cdot$\\ +\ $\cdot\cdot\cdot$\\ +\ $\cdot\cdot\cdot$\\ +\emptyLine +o145 : Divide\\ +\endOutput +\beginOutput +i146 : g=time extgenSeries1(M,N)\\ +\ -- used 0.13 seconds\\ +\emptyLine +\ 2 3 4 5 6 7\\ +\ 9 + 8t - 19t - 11t + 17t + 4t - 7t - t\\ +o146 = --------------------------------------------\\ +\ 2 2 2\\ +\ (1 - t )(1 - t )(1 - t )\\ +\emptyLine +o146 : Divide\\ +\endOutput +\beginOutput +i147 : simplify g\\ +\emptyLine +\ 2 3 4\\ +\ 9 - t - 9t + 6t + t\\ +o147 = ----------------------\\ +\ 2\\ +\ (1 + t)(1 - t)\\ +\emptyLine +o147 : Divide\\ +\endOutput +\beginOutput +i148 : time extgenSeries2(M,N')\\ +\ -- used 0.15 seconds\\ +\emptyLine +\ -2 -1 2 2 2 2 2 3 2 4 3 5 $\cdot\cdot\cdot$\\ +\ 7u + 2u + 4t*u - 7t u - 9t u - 9t u + 16t u - 4t u + 2 $\cdot\cdot\cdot$\\ +o148 = --------------------------------------------------------------- $\cdot\cdot\cdot$\\ +\ $\cdot\cdot\cdot$\\ +\ $\cdot\cdot\cdot$\\ +\emptyLine +o148 : Divide\\ +\endOutput +\beginOutput +i149 : g'=time extgenSeries1(M,N')\\ +\ -- used 0.18 seconds\\ +\emptyLine +\ 2 3 4 5 6\\ +\ 9 + 4t - 9t + 4t + 8t - 2t - 2t\\ +o149 = ------------------------------------\\ +\ 2 2 2\\ +\ (1 - t )(1 - t )(1 - t )\\ +\emptyLine +o149 : Divide\\ +\endOutput +\beginOutput +i150 : simplify g'\\ +\emptyLine +\ 2 3 5\\ +\ 9 - 5t - 4t + 8t - 2t\\ +o150 = ------------------------\\ +\ 2 3\\ +\ (1 + t) (1 - t)\\ +\emptyLine +o150 : Divide\\ +\endOutput +\end{sExample} + +\subsection{Complexity} + +The {\it\ie{complexity}\/} of a pair of $B$-modules $(M,N)$ +is the least $d\in\N$ such that there exists +a polynomial of degree $d-1$ bounding above the function +\[ +n \mapsto \dim_K \rExt^n_B(M,N) +\] +It is denoted $\cx_B(M,N)$ and measures on a polynomial scale the rate +of growth of the minimal number of generators of $\Ext^n_B(M,N)$; it +vanishes if and only if $\Ext^n_B(M,N)=0$ for all $n\gg0$. Corollary +\ref{series} yields +\[ +\gen^{M,N}_B(t)=\frac{h(t)}{(1-t^2)^c} +\qquad\text{for some}\qquad h(t)\in\Z[t] +\] +so decomposition into partial fractions shows that $\cx_R(M,N)$ equals +the order of the pole of $\gen^{M,N}_B(t)$ at $t=1$. Alternatively, +$\cx_R(M,N)$ can be obtained by computing the Krull dimension of a +reduced Ext module over $R$. + +\begin{sCode} +The function {\tt complexityPair(M,N)} yields the complexity of a pair +$(M,N)$ of graded modules over a graded complete intersection ring $B$. +\beginOutput +i151 : complexityPair = (M,N) -> dim ext(M,N);\\ +\endOutput + \end{sCode} + +\begin{sExample} +For $M$, $N$, and $N'$ as in Example \ref{new module} we have +\beginOutput +i152 : time complexityPair(M,N)\\ +\ -- used 0.39 seconds\\ +\emptyLine +o152 = 2\\ +\endOutput +\beginOutput +i153 : time complexityPair(M,N')\\ +\ -- used 0.12 seconds\\ +\emptyLine +o153 = 3\\ +\endOutput +\end{sExample} + +\subsection{Support Variety} +\label{Support variety2} + +Let $\overline K$ be an algebraic closure of $K$. The {\it\ie{support +variety}\/} $\var^*_B(M,N)$ is the algebraic set in ${\overline K}{}^c$ +defined by the annihilator of $\rExt^\bu_B(M,N)$ over +$R=K[X_1,\dots,X_c]$. It is clear from the definition that +$\var^*_B(M,k)$ is equal to the variety $\var^*_B(M)$ defined in +\ref{Support variety}. One of the main results of +\cite[Sect.~5]{CI:AB2} shows that $\var^*_B(M,N)=\var^*_B(M)\cap +\var^*_B(N)$, and, as a consequence, $\var^*_B(M)=\var^*_B(M,M)= +\var^*_B(k,M)$. The dimension of $\var^*_B(M,N)$ is equal to the +complexity $\cx_R(M,N)$, already computed above. + +Feeding our computation of $\rExt^\bu_B(M,N)$ to standard \Mtwo +routines we write code for determining a set of equations defining +$\var^*_B(M,N)$. + +\begin{sCode} +The function {\tt supportVarietyPairIdeal(M,N)} yields a set of polynomial +equations with coefficients in $K$, defining the variety +$\var^*_B(M,N)$ in ${\overline K}{}^c$ for graded modules $M$, $N$ over +a graded complete intersection $B$. +\beginOutput +i154 : supportVarietyPairIdeal = (M,N) -> ann ext(M,N);\\ +\endOutput + \end{sCode} + +\begin{sExample} +For $M$, $N$, and $N'$ as in Example \ref{new module} we have +\beginOutput +i155 : time supportVarietyPairIdeal(M,N)\\ +\ -- used 0.97 seconds\\ +\emptyLine +o155 = ideal X\\ +\ 1\\ +\emptyLine +o155 : Ideal of K [X , X , X , Degrees => \{\{-2, -3\}, \{-2, -4\}, \{-2, -5\}\}]\\ +\ 1 2 3\\ +\endOutput +\beginOutput +i156 : time supportVarietyPairIdeal(M,N')\\ +\ -- used 1.73 seconds\\ +\emptyLine +o156 = 0\\ +\emptyLine +o156 : Ideal of K [X , X , X , Degrees => \{\{-2, -3\}, \{-2, -4\}, \{-2, -5\}\}]\\ +\ 1 2 3\\ +\endOutput +\end{sExample} + +\appendix + +\section{Gradings} +\label{Gradings} + +Our purpose here is to set up a context in which the theory of Sections +\ref{Universal homotopies} and \ref{Cohomology operators} translates +into data that \Mtwo can operate with. + +A first point is to develop a {\it flexible\/} and {\it consistent\/} +scheme within which to handle the two kinds of degrees we deal +with---the internal gradings of the input, and the homological degrees +created during computations. + +A purely technological difficulty arises when our data are presented to +\Mtwo: it only accepts multidegrees whose first component is positive, +which is {\it not\/} the case for rings of cohomology operators. + +A final point, mostly notational, tends to generate misunderstanding +and errors if left unaddressed. On the printed page, the difference +between homological and cohomological conventions is handled +graphically by switching between sub- and super-indices, and reversing +signs; both authors were used to it, but \Mtwo has so far refused to +read \TeX\ printouts. + +The {\sl raison d'\^etre\/} of the following remarks was to debug +communications between the three of us. + +\begin{Remark} +\label{bigrading} +Only one degree, denoted $\deg$, appears in Section \ref{Graded +algebras}, and anywhere in the main text before Notation \ref{graded +stuff}; when needed, it will be referred to as {\it homological +degree\/}. + +Assume that $A=\bigoplus_{h\in\Z}A_h$ is a graded ring. Any element +$a$ of $A_h$ is said to be homogeneous of {\it\ie{internal degree}\/} +$h$; the notation for this is $\deg' a=h$. Let ${\boldsymbol f}=\{f_1, +\dots, f_c\}$ be a Koszul-regular set consisting of homogeneous +elements. We give the ring $B=A/({\boldsymbol f})$ the induced +grading, and extend the notation for internal degree to all graded +$B$-modules $M$. + +Let $M$ be a graded $B$-module. For any integer $e$, we let $M[e]$ +denote the graded module with $M[e]_d = M_{d+e}$. We take a projective +resolution $C$ of $M$ by graded $A$-modules, with differential $d_C$ +preserving internal degrees. Recall that we have been writing $\deg x += n$ to indicate that $x$ is an element in $C_n$; we refer to this +situation also by saying that $x$ has {\it\ie{homological degree\/}} +$x$. We combine both degrees in a single {\it\ie{bidegree\/}}, denoted +$\Deg$, as follows: +\[ +\Deg x = (\deg x, \deg' x) +\] +For a bigraded module $H$ and pair of integers $(e, e')$, we let +$H[e,e']$ denote the bigraded module with $H[e,e']_{d,d'} = +H_{d+e,d'+e'}$. + +Because $\deg Y_i = 2$, the elements of the free $B$-module $Q$ have +homological degree $2$. We introduce an internal grading $\deg'$ on +$Q$ by setting $\deg' Y_i = r_i$, where $r_i=\deg' f_i$ for +$i=1,\dots,c$. With this choice, the homomorphism $f\colon Q\to A$ +acquires internal degree $0$ (of course, this was the reason behind our +choice of grading in the first place). The internal grading on $Q$ +defines, in the usual way, internal gradings on all symmetric and +exterior powers of $Q$ and $Q^*$; in particular, $\deg'Y^{(\a)}=\sum +\a_i r_i$ and $\deg' Y^{\wedge\b} = \sum \b_i r_i$. Thus, the ring +$S=A[X_1,\dots,X_c]$ acquires a bigrading defined by +$\Deg a=(0, h)$ for all elements $a\in A_h$ and $\Deg X_i=(-2,-r_i)$ +for $i=1,\dots,c$. + +In this context, we call $S$ the {\it\ie{bigraded ring of cohomology +operators}\/}. + +Since the differential $d_C$ has internal degree $0$, a null-homotopic +chain map $C\to C$ which is homogeneous of internal degree $r$ will +have a null-homotopy that is itself homogeneous of internal degree +$r$. In the proof of Theorem \ref{main} we construct maps $d_\g$ as +null-homotopies, so we may arrange for them to be homogeneous maps with +$\deg' d_\g = \sum \g_i d_i$. Our grading assumptions guarantee that +$d$ is homogeneous with $\Deg d=(-1,0)$. + +With these data, the $B$-free resolution $C\otimes_A D'$ provided by +Theorem \ref{resolution} becomes one by graded $B$-modules, and +its differential $\partial$ is homogeneous with $\Deg +\partial=(-1,0)$. For any graded $B$-module $N$, these properties are +transferred to the complex $\Hom_B(C\otimes_A D',N)$ and its +differential. + \end{Remark} + +We sum up the contents of Remarks \ref{action} and \ref{bigrading}. + +\begin{Remark} +\label{graded action} +If $A$ is a graded ring, $\{f_1, \dots, f_c\}$ is a Koszul-regular set +consisting of homogeneous elements, $B$ is the residue ring +$A/({\boldsymbol f})$, and $M,N$ are graded $B$-modules, then +$\Ext^\bu_B(M,N)$ is a bigraded module over the ring +$S=A[X_1,\dots,X_c]$, itself bigraded by setting $\Deg a = (0, +\deg'(a))$ for all homogeneous $a\in A$ and $\Deg X_i = +(-2,-\deg'(f_i))$ for $i=1,\dots,c$. + \end{Remark} + +\begin{Remark} +\label{macaulay grading} +The core algorithms of the program can handle multi-graded rings and +modules, but only if each variable in the ring has positive first +component of its multi-degree. At the moment, a user who needs a +multi-graded ring {\tt R} which violates this requirement must provide +two linear maps: {\tt R.Adjust}, that transforms the desired +multi-degrees into ones satisfying this requirement, as well as its +inverse map, {\tt R.Repair}. The routine {\tt Ext}, discussed above, +incorporates such adjustments for the rings of cohomology operators it +creates. When we wish to create related rings with some of the same +multi-degrees, we may use the same adjustment operator. + \end{Remark} + +% Local Variables: +% mode: latex +% mode: reftex +% compile-command: "make ci-wrapper.dvi" +% tex-main-file: "ci-wrapper.tex" +% reftex-keep-temporary-buffers: t +% reftex-use-external-file-finders: t +% reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) +% End: diff --git a/Book/ComputationsBook/chapters/completeIntersections/ci-trial-wrapper.dvi b/Book/ComputationsBook/chapters/completeIntersections/ci-trial-wrapper.dvi new file mode 100644 index 0000000..9b3f56a Binary files /dev/null and b/Book/ComputationsBook/chapters/completeIntersections/ci-trial-wrapper.dvi differ diff --git a/Book/ComputationsBook/chapters/completeIntersections/ci-trial-wrapper.tex b/Book/ComputationsBook/chapters/completeIntersections/ci-trial-wrapper.tex new file mode 100644 index 0000000..be7307a --- /dev/null +++ b/Book/ComputationsBook/chapters/completeIntersections/ci-trial-wrapper.tex @@ -0,0 +1,21 @@ + \documentclass[runningheads]{lncse} + \usepackage{makeidx,multicol}\makeindex + \input book-macros.tex + \begin{document} + \bgroup + \input ci-m2.tex + \egroup + \clearpage + \addtocmark[2]{Index} + \markboth{Index}{Index} + \renewcommand{\indexname}{Index} + \threecolindex + \printindex + \end{document} + + % Local Variables: + % mode: latex + % mode: reftex + % reftex-use-external-file-finders: t + % reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) + % End: diff --git a/Book/ComputationsBook/chapters/completeIntersections/ci-wrapper.dvi b/Book/ComputationsBook/chapters/completeIntersections/ci-wrapper.dvi new file mode 100644 index 0000000..30ec309 Binary files /dev/null and b/Book/ComputationsBook/chapters/completeIntersections/ci-wrapper.dvi differ diff --git a/Book/ComputationsBook/chapters/completeIntersections/ci-wrapper.pdf b/Book/ComputationsBook/chapters/completeIntersections/ci-wrapper.pdf new file mode 100644 index 0000000..ba8f66c Binary files /dev/null and b/Book/ComputationsBook/chapters/completeIntersections/ci-wrapper.pdf differ diff --git a/Book/ComputationsBook/chapters/completeIntersections/ci-wrapper.ps b/Book/ComputationsBook/chapters/completeIntersections/ci-wrapper.ps new file mode 100644 index 0000000..8f2847e Binary files /dev/null and b/Book/ComputationsBook/chapters/completeIntersections/ci-wrapper.ps differ diff --git a/Book/ComputationsBook/chapters/completeIntersections/ci-wrapper.tex b/Book/ComputationsBook/chapters/completeIntersections/ci-wrapper.tex new file mode 100644 index 0000000..f096a33 --- /dev/null +++ b/Book/ComputationsBook/chapters/completeIntersections/ci-wrapper.tex @@ -0,0 +1,22 @@ + \documentclass[runningheads]{lncse} + \usepackage{makeidx,multicol}\makeindex + \input book-macros.tex + \begin{document} + \bgroup + \input ci-m2.tex + \egroup + \bibliography{papers} + \clearpage + \addtocmark[2]{Index} + \markboth{Index}{Index} + \renewcommand{\indexname}{Index} + \threecolindex + \printindex + \end{document} + + % Local Variables: + % mode: latex + % mode: reftex + % reftex-use-external-file-finders: t + % reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) + % End: diff --git a/Book/ComputationsBook/chapters/completeIntersections/ci.m2 b/Book/ComputationsBook/chapters/completeIntersections/ci.m2 new file mode 100644 index 0000000..18647b6 --- /dev/null +++ b/Book/ComputationsBook/chapters/completeIntersections/ci.m2 @@ -0,0 +1,245 @@ +A = QQ[w,x,y,z] +U = matrix {{w,x},{y,z}} +C = chainComplex U +L = HH_0 C +f = -det U +f * L == 0 +s = nullhomotopy (-f * id_C) +s * C.dd + C.dd * s == -f +V = s_0 +A = QQ[x,y,z]; +f = x^3 + 3*y^3 - 2*y*z^2 + 5*z^3; +B = A/f; +m = ideal(x,y,z) +M = B^1/m^2; +F = resolution(M, LengthLimit=>8) +restrict1 = N -> coker(lift(presentation N,A) | f); +L = restrict1 cokernel F.dd_4; +C = res L; +U = C.dd_1; +print U +s = nullhomotopy (-f * id_C); +V = s_0; +print V +U*V+f==0 +V*U+f==0 +matrixFactorization = M -> ( + B := ring M; + f := (ideal B)_0; + e := numgens B; + F := resolution(M, LengthLimit => e+1); + L := restrict1 cokernel F.dd_(e+1); + C := res L; + U := C.dd_1; + s := nullhomotopy (-f * id_C); + V := s_0; + assert( U*V + f == 0 ); + assert( V*U + f == 0 ); + return (U,V)); +time (U,V) = matrixFactorization(B^1/m^3); +U; +V; +F.dd_3 - F.dd_5 == 0 +F.dd_4 - F.dd_6 == 0 +F.dd_5 - F.dd_7 == 0 +M = B^1/m^2; +G = resolution(M, LengthLimit => 8, Strategy => 0) +G.dd_3 - G.dd_5 == 0 +G.dd_4 - G.dd_6 == 0 +G.dd_5 - G.dd_7 == 0 +M = B^1/m^3; +F = resolution(M, LengthLimit=>8) +M' = restrict1 M; +C = res M' +K = ZZ/103; +A = K[x,Degrees=>{5}]; +B = A/(x^3); +M = B^1/(x^2); +N = B^1/(x); +H = Ext(M,N); +ring H +degree \ gens ring H +S = ring H; +H +A = K[x,y]; +J = ideal(x^3,y^2); +B = A/J; +N = cokernel matrix{{x^2,x*y}} +time H = Ext(N,N); +ring H +S = ring H; +transpose vars S +trim J +H +partSelector = predicate -> H -> ( + R := ring H; + H' := prune image matrix { + select( + apply(numgens H, i -> H_{i}), + f -> predicate first first degrees source f + ) + }; + H'); +evenPart = partSelector even; oddPart = partSelector odd; +evenPart H +oddPart H +print code(Ext,Module,Module) +A = K[x,y,z]; +J = trim ideal(x^3,y^4,z^5) +B = A/J; +f = random (B^3, B^{-2,-3}) +f_{1} +M = cokernel f; +time P = Ext(M,B^1/(x,y,z)); +S = ring P; +transpose vars S +R = K[X_1..X_3,Degrees => {{-2,-3},{-2,-4},{-2,-5}}, + Adjust => S.Adjust, Repair => S.Repair]; +phi = map(R,S,{X_1,X_2,X_3,0,0,0}) +P = prune (phi ** P); +transpose vars ring P +evenPart P +oddPart P +changeRing = H -> ( + S := ring H; + K := coefficientRing S; + degs := select(degrees source vars S, + d -> 0 != first d); + R := K[X_1 .. X_#degs, Degrees => degs, + Repair => S.Repair, Adjust => S.Adjust]; + phi := map(R,S,join(gens R,(numgens S - numgens R):0)); + prune (phi ** H) + ); +Ext(Module,Ring) := (M,k) -> ( + B := ring M; + if ideal k != ideal vars B + then error "expected the residue field of the module"; + changeRing Ext(M,coker vars B) + ); +use B; +k = B/(x,y,z); +use B; +P = Ext(M,k); +time oddPart P +Ext(Ring,Module) := (k,M) -> ( + B := ring M; + if ideal k != ideal vars B + then error "expected the residue field of the module"; + changeRing Ext(coker vars B,M) + ); +time I = Ext(k,M); +evenPart I +oddPart I +T = ZZ[t,u,Inverses=>true,MonomialOrder=>RevLex]; +poincareSeries2 = M -> ( + B := ring M; + k := B/ideal vars B; + P := Ext(M,k); + h := hilbertSeries P; + T':= degreesRing P; + substitute(h, {T'_0=>t^-1,T'_1=>u^-1}) + ); +poincareSeries1 = M -> ( + substitute(poincareSeries2 M, {u=>1_T}) + ); +A' = K[x,y,z]; +B' = A'/(x^2,y^2,z^3); +C' = res(B'^1/(x,y,z), LengthLimit => 6) +M' = coker transpose C'.dd_5 +poincareSeries2 M' +p = poincareSeries1 M +load "simplify.m2" +simplify p +T' = QQ[t,Inverses=>true,MonomialOrder=>RevLex]; +expansion = (n,q) -> ( + t := T'_0; + rho := map(T',T,{t,1}); + num := rho value numerator q; + den := rho value denominator q; + n = n + first degree den; + n = max(n, first degree num + 1); + (num + t^n) // den + ); +expansion(20,p) +psi = map(K,B) +apply(10, i -> rank (psi ** Ext^i(M,coker vars B))) +use T; +complexity = M -> dim Ext(M,coker vars ring M); +complexity M +k = coker vars ring H; +prune Hom(k,H) +criticalDegree = M -> ( + B := ring M; + k := B / ideal vars B; + P := Ext(M,k); + k = coker vars ring P; + - min ( first \ degrees source gens prune Hom(k,P)) + ); +criticalDegree M +criticalDegree M' +supportVarietyIdeal = M -> ( + B := ring M; + k := B/ideal vars B; + ann Ext(M,k) + ); +K'' = ZZ/7; +A'' = K''[x,y,z]; +J'' = ideal(x^7,y^7,z^7); +B'' = A''/J''; +scan((1,1) .. (3,3), (r,d) -> ( + V := cokernel random (B''^r,B''^{-d}); + << "------------------------------------------------------------------" + << endl + << "V = " << V << endl + << "support variety ideal = " + << timing supportVarietyIdeal V + << endl)) +bassSeries2 = M -> ( + B := ring M; + k := B/ideal vars B; + I := Ext(k,M); + h := hilbertSeries I; + T':= degreesRing I; + substitute(h, {T'_0=>t^-1, T'_1=>u}) + ); +bassSeries1 = M -> ( + substitute(bassSeries2 M, {u=>1_T}) + ); +use B; +L = B^1/(x,y,z); +p = poincareSeries2 L +b = bassSeries2 L +b2 = bassSeries2 M +b1 = bassSeries1 M; +simplify b1 +ext = (M,N) -> changeRing Ext(M,N); +use B; +N = B^1/(x^2 + z^2,y^3); +time rH = ext(M,N); +evenPart rH +oddPart rH +N' = B^1/(x^2 + z^2,y^3 - 2*z^3); +time rH' = ext(M,N'); +evenPart rH' +oddPart rH' +extgenSeries2 = (M,N) -> ( + H := ext(M,N); + h := hilbertSeries H; + T':= degreesRing H; + substitute(h, {T'_0=>t^-1,T'_1=>u^-1}) + ); +extgenSeries1 = (M,N) -> ( + substitute(extgenSeries2(M,N), {u=>1_T}) + ); +time extgenSeries2(M,N) +g=time extgenSeries1(M,N) +simplify g +time extgenSeries2(M,N') +g'=time extgenSeries1(M,N') +simplify g' +complexityPair = (M,N) -> dim ext(M,N); +time complexityPair(M,N) +time complexityPair(M,N') +supportVarietyPairIdeal = (M,N) -> ann ext(M,N); +time supportVarietyPairIdeal(M,N) +time supportVarietyPairIdeal(M,N') diff --git a/Book/ComputationsBook/chapters/completeIntersections/ci.out b/Book/ComputationsBook/chapters/completeIntersections/ci.out new file mode 100644 index 0000000..f0deb9e --- /dev/null +++ b/Book/ComputationsBook/chapters/completeIntersections/ci.out @@ -0,0 +1,979 @@ +i1 : A = QQ[w,x,y,z] + +o1 = A + +o1 : PolynomialRing +i2 : U = matrix {{w,x},{y,z}} + +o2 = | w x | + | y z | + + 2 2 +o2 : Matrix A <--- A +i3 : C = chainComplex U + + 2 2 +o3 = A <-- A + + 0 1 + +o3 : ChainComplex +i4 : L = HH_0 C + +o4 = cokernel | w x | + | y z | + + 2 +o4 : A-module, quotient of A +i5 : f = -det U + +o5 = x*y - w*z + +o5 : A +i6 : f * L == 0 + +o6 = true +i7 : s = nullhomotopy (-f * id_C) + + 2 2 +o7 = 1 : A <----------------- A : 0 + {1} | z -x | + {1} | -y w | + +o7 : ChainComplexMap +i8 : s * C.dd + C.dd * s == -f + +o8 = true +i9 : V = s_0 + +o9 = {1} | z -x | + {1} | -y w | + + 2 2 +o9 : Matrix A <--- A +i10 : A = QQ[x,y,z]; +i11 : f = x^3 + 3*y^3 - 2*y*z^2 + 5*z^3; +i12 : B = A/f; +i13 : m = ideal(x,y,z) + +o13 = ideal (x, y, z) + +o13 : Ideal of B +i14 : M = B^1/m^2; +i15 : F = resolution(M, LengthLimit=>8) + + 1 6 9 9 9 9 9 9 9 +o15 = B <-- B <-- B <-- B <-- B <-- B <-- B <-- B <-- B + + 0 1 2 3 4 5 6 7 8 + +o15 : ChainComplex +i16 : restrict1 = N -> coker(lift(presentation N,A) | f); +i17 : L = restrict1 cokernel F.dd_4; +i18 : C = res L; +i19 : U = C.dd_1; + + 9 9 +o19 : Matrix A <--- A +i20 : print U +{4} | 0 xy x2 y2 0 0 0 yz-5/2z2 0 | +{4} | 0 x2 -3y2 xy yz-5/2z2 0 yz-5/2z2 0 0 | +{4} | x2 0 -2yz+5z2 0 y2-5/2yz yz-5/2z2 -5/2yz 0 0 | +{5} | 0 0 0 1/3z 0 0 0 1/2y x | +{5} | 0 0 -z 0 1/2y 0 1/2y -1/2x 0 | +{5} | 0 -z 0 0 -1/2x 0 -1/2x 0 3y | +{5} | 0 0 0 -1/3x 0 1/2y -1/3z 0 0 | +{5} | -z y x 0 0 -1/2x 0 0 0 | +{5} | y 0 0 0 0 0 1/3x 0 -2y+5z | +i21 : s = nullhomotopy (-f * id_C); +i22 : V = s_0; + + 9 9 +o22 : Matrix A <--- A +i23 : print V +{6} | 0 0 -x 0 0 -2y2+5yz 0 -2yz+5z2 -3y2 | +{6} | 0 -x 0 0 0 -2yz+5z2 -3xy -3y2 -3yz | +{6} | -x y 0 0 -2yz+5z2 0 0 0 0 | +{6} | -3y 0 0 6yz-15z2 0 0 3x2 3xy 3xz | +{6} | 0 2z -3y -15xz -15yz 2x2 6yz-15z2 0 3x2 | +{6} | -2x 0 2z 0 -4yz+10z2 0 -6y2 2x2 0 | +{6} | 0 0 3y -6xy+15xz -6y2+15yz 0 -6yz+15z2 0 -3x2 | +{6} | 2z 0 0 -6y2 2x2 2xy 0 0 0 | +{6} | 0 0 0 -x2 -xy -y2 -xz -yz -z2 | +i24 : U*V+f==0 + +o24 = true +i25 : V*U+f==0 + +o25 = true +i26 : matrixFactorization = M -> ( + B := ring M; + f := (ideal B)_0; + e := numgens B; + F := resolution(M, LengthLimit => e+1); + L := restrict1 cokernel F.dd_(e+1); + C := res L; + U := C.dd_1; + s := nullhomotopy (-f * id_C); + V := s_0; + assert( U*V + f == 0 ); + assert( V*U + f == 0 ); + return (U,V)); +i27 : time (U,V) = matrixFactorization(B^1/m^3); + -- used 0.21 seconds +i28 : U; + + 15 15 +o28 : Matrix A <--- A +i29 : V; + + 15 15 +o29 : Matrix A <--- A +i30 : F.dd_3 - F.dd_5 == 0 + +o30 = false +i31 : F.dd_4 - F.dd_6 == 0 + +o31 = false +i32 : F.dd_5 - F.dd_7 == 0 + +o32 = true +i33 : M = B^1/m^2; +i34 : G = resolution(M, LengthLimit => 8, Strategy => 0) + + 1 6 9 9 9 9 9 9 9 +o34 = B <-- B <-- B <-- B <-- B <-- B <-- B <-- B <-- B + + 0 1 2 3 4 5 6 7 8 + +o34 : ChainComplex +i35 : G.dd_3 - G.dd_5 == 0 + +o35 = true +i36 : G.dd_4 - G.dd_6 == 0 + +o36 = true +i37 : G.dd_5 - G.dd_7 == 0 + +o37 = true +i38 : M = B^1/m^3; +i39 : F = resolution(M, LengthLimit=>8) + + 1 10 16 15 15 15 15 15 15 +o39 = B <-- B <-- B <-- B <-- B <-- B <-- B <-- B <-- B + + 0 1 2 3 4 5 6 7 8 + +o39 : ChainComplex +i40 : M' = restrict1 M; +i41 : C = res M' + + 1 10 15 6 +o41 = A <-- A <-- A <-- A <-- 0 + + 0 1 2 3 4 + +o41 : ChainComplex +i42 : K = ZZ/103; +i43 : A = K[x,Degrees=>{5}]; +i44 : B = A/(x^3); +i45 : M = B^1/(x^2); +i46 : N = B^1/(x); +i47 : H = Ext(M,N); +i48 : ring H + +o48 = K [$X , x, Degrees => {{-2, -15}, {0, 5}}] + 1 + +o48 : PolynomialRing +i49 : degree \ gens ring H + +o49 = {{-2, -15}, {0, 5}} + +o49 : List +i50 : S = ring H; +i51 : H + +o51 = cokernel {0, 0} | 0 x | + {-1, -10} | x 0 | + + 2 +o51 : S-module, quotient of S +i52 : A = K[x,y]; +i53 : J = ideal(x^3,y^2); + +o53 : Ideal of A +i54 : B = A/J; +i55 : N = cokernel matrix{{x^2,x*y}} + +o55 = cokernel | x2 xy | + + 1 +o55 : B-module, quotient of B +i56 : time H = Ext(N,N); + -- used 0.2 seconds +i57 : ring H + +o57 = K [$X , $X , x, y, Degrees => {{-2, -2}, {-2, -3}, {0, 1}, {0, 1}}] + 1 2 + +o57 : PolynomialRing +i58 : S = ring H; +i59 : transpose vars S + +o59 = {2, 2} | $X_1 | + {2, 3} | $X_2 | + {0, -1} | x | + {0, -1} | y | + + 4 1 +o59 : Matrix S <--- S +i60 : trim J + + 2 3 +o60 = ideal (y , x ) + +o60 : Ideal of A +i61 : H + +o61 = cokernel {-2, -2} | 0 0 0 0 0 0 0 0 0 0 0 y x 0 0 0 0 | + {-1, -1} | y 0 0 0 0 x 0 0 0 0 0 0 0 $X_1 0 0 0 | + {-1, -1} | 0 0 0 y 0 0 0 x 0 0 0 0 0 0 $X_1 0 0 | + {-1, -1} | 0 y 0 0 x 0 0 0 0 0 0 0 0 0 0 0 0 | + {-1, -1} | 0 0 y 0 0 0 x 0 0 0 0 0 0 0 0 0 0 | + {0, 0} | 0 0 0 0 0 0 0 0 y2 xy x2 0 0 0 0 $X_1y $X_1x | + + 6 +o61 : S-module, quotient of S +i62 : partSelector = predicate -> H -> ( + R := ring H; + H' := prune image matrix { + select( + apply(numgens H, i -> H_{i}), + f -> predicate first first degrees source f + ) + }; + H'); +i63 : evenPart = partSelector even; oddPart = partSelector odd; +i65 : evenPart H + +o65 = cokernel {-2, -2} | 0 0 0 y x 0 0 | + {0, 0} | y2 xy x2 0 0 $X_1y $X_1x | + + 2 +o65 : S-module, quotient of S +i66 : oddPart H + +o66 = cokernel {-1, -1} | 0 0 y 0 0 0 x 0 0 0 | + {-1, -1} | 0 y 0 0 x 0 0 0 0 0 | + {-1, -1} | 0 0 0 y 0 0 0 x 0 $X_1 | + {-1, -1} | y 0 0 0 0 x 0 0 $X_1 0 | + + 4 +o66 : S-module, quotient of S +i67 : print code(Ext,Module,Module) +-- ../../../m2/ext.m2:82-171 +Ext(Module,Module) := Module => (M,N) -> ( + cacheModule := youngest(M,N); + cacheKey := (Ext,M,N); + if cacheModule#?cacheKey then return cacheModule#cacheKey; + B := ring M; + if B =!= ring N + then error "expected modules over the same ring"; + if not isCommutative B + then error "'Ext' not implemented yet for noncommutative rings."; + if not isHomogeneous B + then error "'Ext' received modules over an inhomogeneous ring"; + if not isHomogeneous N or not isHomogeneous M + then error "'Ext' received an inhomogeneous module"; + if N == 0 then B^0 + else if M == 0 then B^0 + else ( + p := presentation B; + A := ring p; + I := ideal mingens ideal p; + n := numgens A; + c := numgens I; + if c =!= codim B + then error "total Ext available only for complete intersections"; + f := apply(c, i -> I_i); + pM := lift(presentation M,A); + pN := lift(presentation N,A); + M' := cokernel ( pM | p ** id_(target pM) ); + N' := cokernel ( pN | p ** id_(target pN) ); + C := complete resolution M'; + X := local X; + K := coefficientRing A; + -- compute the fudge factor for the adjustment of bidegrees + fudge := if #f > 0 then 1 + max(first \ degree \ f) // 2 else 0; + S := K(monoid [X_1 .. X_c, toSequence A.generatorSymbols, + Degrees => { + apply(0 .. c-1, i -> {-2, - first degree f_i}), + apply(0 .. n-1, j -> { 0, first degree A_j}) + }, + Adjust => v -> {- fudge * v#0 + v#1, - v#0}, + Repair => w -> {- w#1, - fudge * w#1 + w#0} + ]); + -- make a monoid whose monomials can be used as indices + Rmon := monoid [X_1 .. X_c,Degrees=>{c:{2}}]; + -- make group ring, so 'basis' can enumerate the monomials + R := K Rmon; + -- make a hash table to store the blocks of the matrix + blks := new MutableHashTable; + blks#(exponents 1_Rmon) = C.dd; + scan(0 .. c-1, i -> + blks#(exponents Rmon_i) = nullhomotopy (- f_i*id_C)); + -- a helper function to list the factorizations of a monomial + factorizations := (gamma) -> ( + -- Input: gamma is the list of exponents for a monomial + -- Return a list of pairs of lists of exponents showing the + -- possible factorizations of gamma. + if gamma === {} then { ({}, {}) } + else ( + i := gamma#-1; + splice apply(factorizations drop(gamma,-1), + (alpha,beta) -> apply (0..i, + j -> (append(alpha,j), append(beta,i-j)))))); + scan(4 .. length C + 1, + d -> if even d then ( + scan( exponents \ leadMonomial \ first entries basis(d,R), + gamma -> ( + s := - sum(factorizations gamma, + (alpha,beta) -> ( + if blks#?alpha and blks#?beta + then blks#alpha * blks#beta + else 0)); + -- compute and save the nonzero nullhomotopies + if s != 0 then blks#gamma = nullhomotopy s; + )))); + -- make a free module whose basis elements have the right degrees + spots := C -> sort select(keys C, i -> class i === ZZ); + Cstar := S^(apply(spots C, + i -> toSequence apply(degrees C_i, d -> {i,first d}))); + -- assemble the matrix from its blocks. + -- We omit the sign (-1)^(n+1) which would ordinarily be used, + -- which does not affect the homology. + toS := map(S,A,apply(toList(c .. c+n-1), i -> S_i), + DegreeMap => prepend_0); + Delta := map(Cstar, Cstar, + transpose sum(keys blks, m -> S_m * toS sum blks#m), + Degree => {-1,0}); + DeltaBar := Delta ** (toS ** N'); + assert isHomogeneous DeltaBar; + assert(DeltaBar * DeltaBar == 0); + -- now compute the total Ext as a single homology module + cacheModule#cacheKey = prune homology(DeltaBar,DeltaBar))) +i68 : A = K[x,y,z]; +i69 : J = trim ideal(x^3,y^4,z^5) + + 3 4 5 +o69 = ideal (x , y , z ) + +o69 : Ideal of A +i70 : B = A/J; +i71 : f = random (B^3, B^{-2,-3}) + +o71 = | 27x2+49xy-14y2-23xz-6yz-19z2 38x2y-34xy2+4y3+x2z+16xyz-y2z-5xz2-6yz2+47z3 | + | -5x2+44xy+38y2+40xz+15yz+4z2 -37x2y+51xy2-36y3+26x2z-38xyz-17y2z+17xz2-11yz2+8z3 | + | 21x2-30xy+32y2-47xz+7yz-50z2 -6x2y-14xy2-26y3-7x2z+41xyz+50y2z+26xz2+46yz2-44z3 | + + 3 2 +o71 : Matrix B <--- B +i72 : f_{1} + +o72 = | 38x2y-34xy2+4y3+x2z+16xyz-y2z-5xz2-6yz2+47z3 | + | -37x2y+51xy2-36y3+26x2z-38xyz-17y2z+17xz2-11yz2+8z3 | + | -6x2y-14xy2-26y3-7x2z+41xyz+50y2z+26xz2+46yz2-44z3 | + + 3 1 +o72 : Matrix B <--- B +i73 : M = cokernel f; +i74 : time P = Ext(M,B^1/(x,y,z)); + -- used 1.64 seconds +i75 : S = ring P; +i76 : transpose vars S + +o76 = {2, 3} | $X_1 | + {2, 4} | $X_2 | + {2, 5} | $X_3 | + {0, -1} | x | + {0, -1} | y | + {0, -1} | z | + + 6 1 +o76 : Matrix S <--- S +i77 : R = K[X_1..X_3,Degrees => {{-2,-3},{-2,-4},{-2,-5}}, + Adjust => S.Adjust, Repair => S.Repair]; +i78 : phi = map(R,S,{X_1,X_2,X_3,0,0,0}) + +o78 = map(R,S,{X , X , X , 0, 0, 0}) + 1 2 3 + +o78 : RingMap R <--- S +i79 : P = prune (phi ** P); +i80 : transpose vars ring P + +o80 = {2, 3} | X_1 | + {2, 4} | X_2 | + {2, 5} | X_3 | + + 3 1 +o80 : Matrix R <--- R +i81 : evenPart P + +o81 = cokernel {-4, -10} | 0 0 0 0 0 0 0 0 0 0 | + {-4, -10} | 0 0 0 0 0 0 0 0 0 -X_2 | + {-4, -11} | 0 0 0 0 0 0 0 0 0 X_1 | + {0, 0} | 0 0 X_3 0 0 X_2 0 X_1 0 0 | + {0, 0} | 0 X_3 0 0 X_2 0 X_1 0 0 0 | + {0, 0} | X_3 0 0 X_2 0 0 0 0 X_1 0 | + {-2, -7} | 0 0 0 0 0 0 0 0 0 0 | + {-2, -7} | 0 0 0 0 0 0 0 0 0 0 | + {-2, -7} | 0 0 0 0 0 0 0 0 0 0 | + {-2, -7} | 0 0 0 0 0 0 0 0 0 0 | + + 10 +o81 : R-module, quotient of R +i82 : oddPart P + +o82 = cokernel {-1, -2} | X_3 0 X_2 0 0 0 0 X_1 | + {-3, -9} | 0 0 0 0 0 0 X_1 0 | + {-3, -9} | 0 0 0 0 0 X_1 0 0 | + {-3, -9} | 0 0 0 0 X_1 0 0 0 | + {-1, -3} | 0 X_2 0 X_1 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + + 11 +o82 : R-module, quotient of R +i83 : changeRing = H -> ( + S := ring H; + K := coefficientRing S; + degs := select(degrees source vars S, + d -> 0 != first d); + R := K[X_1 .. X_#degs, Degrees => degs, + Repair => S.Repair, Adjust => S.Adjust]; + phi := map(R,S,join(gens R,(numgens S - numgens R):0)); + prune (phi ** H) + ); +i84 : Ext(Module,Ring) := (M,k) -> ( + B := ring M; + if ideal k != ideal vars B + then error "expected the residue field of the module"; + changeRing Ext(M,coker vars B) + ); +i85 : use B; +i86 : k = B/(x,y,z); +i87 : use B; +i88 : P = Ext(M,k); +i89 : time oddPart P + -- used 0.09 seconds + +o89 = cokernel {-1, -2} | X_3 0 X_2 0 0 0 0 X_1 | + {-3, -9} | 0 0 0 0 0 0 X_1 0 | + {-3, -9} | 0 0 0 0 0 X_1 0 0 | + {-3, -9} | 0 0 0 0 X_1 0 0 0 | + {-1, -3} | 0 X_2 0 X_1 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + {-3, -9} | 0 0 0 0 0 0 0 0 | + + 11 +o89 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-module, quotient of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}] + 1 2 3 1 2 3 +i90 : Ext(Ring,Module) := (k,M) -> ( + B := ring M; + if ideal k != ideal vars B + then error "expected the residue field of the module"; + changeRing Ext(coker vars B,M) + ); +i91 : time I = Ext(k,M); + -- used 14.81 seconds +i92 : evenPart I + +o92 = cokernel {0, 6} | 37X_2 37X_1 | + {0, 6} | -18X_2 -18X_1 | + {0, 6} | -13X_2 -13X_1 | + {0, 6} | -37X_2 -37X_1 | + {0, 6} | 22X_2 22X_1 | + {0, 6} | 0 0 | + {0, 6} | X_2 X_1 | + + 7 +o92 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-module, quotient of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}] + 1 2 3 1 2 3 +i93 : oddPart I + +o93 = cokernel {-1, 5} | -48X_3 13X_3 34X_3 3X_3 0 0 0 5X_1 -20X_1 X_1 | + {-1, 5} | 3X_3 -40X_3 8X_3 8X_3 0 0 0 33X_1 X_1 0 | + {-1, 5} | -X_3 37X_3 -13X_3 -35X_3 0 0 0 X_1 0 0 | + {-1, 4} | 4X_2 20X_2 3X_2 -47X_2 4X_1 20X_1 3X_1 0 0 0 | + {-1, 4} | 0 51X_2 0 -30X_2 0 51X_1 0 0 0 0 | + {-1, 4} | 0 12X_2 0 -3X_2 0 12X_1 0 0 0 0 | + {-1, 4} | 42X_2 12X_2 46X_2 25X_2 42X_1 12X_1 46X_1 0 0 0 | + {-1, 4} | 45X_2 24X_2 -14X_2 -35X_2 45X_1 24X_1 -14X_1 0 0 0 | + {-1, 4} | 0 0 X_2 0 0 0 X_1 0 0 0 | + {-1, 4} | X_2 0 0 0 X_1 0 0 0 0 0 | + {-1, 4} | 0 -40X_2 0 10X_2 0 -40X_1 0 0 0 0 | + {-1, 4} | 0 X_2 0 0 0 X_1 0 0 0 0 | + {-1, 3} | 0 0 0 X_1 0 0 0 0 0 0 | + + 13 +o93 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-module, quotient of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}] + 1 2 3 1 2 3 +i94 : T = ZZ[t,u,Inverses=>true,MonomialOrder=>RevLex]; +i95 : poincareSeries2 = M -> ( + B := ring M; + k := B/ideal vars B; + P := Ext(M,k); + h := hilbertSeries P; + T':= degreesRing P; + substitute(h, {T'_0=>t^-1,T'_1=>u^-1}) + ); +i96 : poincareSeries1 = M -> ( + substitute(poincareSeries2 M, {u=>1_T}) + ); +i97 : A' = K[x,y,z]; +i98 : B' = A'/(x^2,y^2,z^3); +i99 : C' = res(B'^1/(x,y,z), LengthLimit => 6) + + 1 3 6 10 15 21 28 +o99 = B' <-- B' <-- B' <-- B' <-- B' <-- B' <-- B' + + 0 1 2 3 4 5 6 + +o99 : ChainComplex +i100 : M' = coker transpose C'.dd_5 + +o100 = cokernel {-5} | -y 0 0 0 z 0 0 0 0 0 0 0 0 0 0 | + {-5} | -x -y 0 0 0 z 0 0 0 0 0 0 0 0 0 | + {-5} | 0 x -y 0 0 0 z 0 0 0 0 0 0 0 0 | + {-5} | 0 0 x -y 0 0 0 z 0 0 0 0 0 0 0 | + {-5} | 0 0 0 -x 0 0 0 0 z 0 0 0 0 0 0 | + {-5} | 0 0 0 0 y 0 0 0 0 0 0 0 0 0 0 | + {-5} | 0 0 0 0 -x y 0 0 0 0 0 0 0 0 0 | + {-5} | 0 0 0 0 0 x y 0 0 0 0 0 0 0 0 | + {-5} | 0 0 0 0 0 0 x y 0 0 0 0 0 0 0 | + {-5} | 0 0 0 0 0 0 0 -x y 0 0 0 0 0 0 | + {-5} | 0 0 0 0 0 0 0 0 x 0 0 0 0 0 0 | + {-6} | 0 0 0 0 0 0 0 0 0 -y 0 z 0 0 0 | + {-6} | 0 0 0 0 0 0 0 0 0 x -y 0 z 0 0 | + {-6} | 0 0 0 0 0 0 0 0 0 0 -x 0 0 z 0 | + {-6} | z2 0 0 0 0 0 0 0 0 0 0 y 0 0 0 | + {-6} | 0 -z2 0 0 0 0 0 0 0 0 0 x y 0 0 | + {-6} | 0 0 z2 0 0 0 0 0 0 0 0 0 -x y 0 | + {-6} | 0 0 0 z2 0 0 0 0 0 0 0 0 0 x 0 | + {-7} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z | + {-7} | 0 0 0 0 0 0 0 0 0 z2 0 0 0 0 y | + {-7} | 0 0 0 0 0 0 0 0 0 0 z2 0 0 0 x | + + 21 +o100 : B'-module, quotient of B' +i101 : poincareSeries2 M' + + -7 -6 -5 -6 -5 -4 2 -5 2 -4 2 -3 2 -2 3 -4 3 -3 3 -2 3 -1 4 -3 4 -2 4 -1 4 5 -2 5 -1 5 5 6 4 7 5 8 4 8 6 9 5 9 7 10 6 11 7 + 3u + 7u + 11u + t*u + 5t*u + 9t*u - 6t u - 14t u - 22t u - 11t u - 2t u - 10t u - 18t u - 9t u + 3t u + 7t u + 11t u + 15t + t u + 5t u + 9t + 13t u + t u + 3t u - t u + 3t u - 3t u + t u - 3t u - t u +o101 = ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + 2 2 2 2 3 + (1 - t u ) (1 - t u ) + +o101 : Divide +i102 : p = poincareSeries1 M + + 2 3 4 5 6 7 + 3 + 2t - 5t + 4t + 12t + t - 4t - t +o102 = ----------------------------------------- + 2 2 2 + (1 - t )(1 - t )(1 - t ) + +o102 : Divide +i103 : load "simplify.m2" +i104 : simplify p + + 2 3 4 5 6 + 3 - t - 4t + 8t + 4t - 3t - t +o104 = ---------------------------------- + 2 3 + (1 + t) (1 - t) + +o104 : Divide +i105 : T' = QQ[t,Inverses=>true,MonomialOrder=>RevLex]; +i106 : expansion = (n,q) -> ( + t := T'_0; + rho := map(T',T,{t,1}); + num := rho value numerator q; + den := rho value denominator q; + n = n + first degree den; + n = max(n, first degree num + 1); + (num + t^n) // den + ); +i107 : expansion(20,p) + + 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 +o107 = 3 + 2t + 4t + 10t + 15t + 25t + 32t + 46t + 55t + 73t + 84t + 106t + 119t + 145t + 160t + 190t + 207t + 241t + 260t + 298t + 319t + +o107 : T' +i108 : psi = map(K,B) + +o108 = map(K,B,{0, 0, 0}) + +o108 : RingMap K <--- B +i109 : apply(10, i -> rank (psi ** Ext^i(M,coker vars B))) + +o109 = {3, 2, 4, 10, 15, 25, 32, 46, 55, 73} + +o109 : List +i110 : use T; +i111 : complexity = M -> dim Ext(M,coker vars ring M); +i112 : complexity M + +o112 = 3 +i113 : k = coker vars ring H; +i114 : prune Hom(k,H) + +o114 = 0 + +o114 : K [$X , $X , x, y, Degrees => {{-2, -2}, {-2, -3}, {0, 1}, {0, 1}}]-module + 1 2 +i115 : criticalDegree = M -> ( + B := ring M; + k := B / ideal vars B; + P := Ext(M,k); + k = coker vars ring P; + - min ( first \ degrees source gens prune Hom(k,P)) + ); +i116 : criticalDegree M + +o116 = 1 +i117 : criticalDegree M' + +o117 = 5 +i118 : supportVarietyIdeal = M -> ( + B := ring M; + k := B/ideal vars B; + ann Ext(M,k) + ); +i119 : K'' = ZZ/7; +i120 : A'' = K''[x,y,z]; +i121 : J'' = ideal(x^7,y^7,z^7); + +o121 : Ideal of A'' +i122 : B'' = A''/J''; +i123 : scan((1,1) .. (3,3), (r,d) -> ( + V := cokernel random (B''^r,B''^{-d}); + << "------------------------------------------------------------------" + << endl + << "V = " << V << endl + << "support variety ideal = " + << timing supportVarietyIdeal V + << endl)) +------------------------------------------------------------------ +V = cokernel | -2x+3y+2z | +support variety ideal = ideal (X - 2X , X + X ) + 2 3 1 3 + -- 0.7 seconds +------------------------------------------------------------------ +V = cokernel | 3x2-2xy+xz-3yz | +support variety ideal = ideal(X + 3X + 2X ) + 1 2 3 + -- 0.48 seconds +------------------------------------------------------------------ +V = cokernel | -2x3+3x2y+y3-x2z-3y2z-xz2-3z3 | +support variety ideal = 0 + -- 1.54 seconds +------------------------------------------------------------------ +V = cokernel | -3y+3z | + | -2x-2y | +support variety ideal = ideal(X + X - X ) + 1 2 3 + -- 0.86 seconds +------------------------------------------------------------------ +V = cokernel | -x2+2y2-xz+yz+3z2 | + | 2xy-3xz-3yz-2z2 | +support variety ideal = 0 + -- 1.31 seconds +------------------------------------------------------------------ +V = cokernel | -x3-2x2y-xy2-2xyz+3y2z+2xz2-yz2-2z3 | + | 2xy2+3y3-3x2z-2y2z+2xz2+2yz2 | +support variety ideal = 0 + -- 2.21 seconds +------------------------------------------------------------------ +V = cokernel | 3x-y-z | + | -3x-y+2z | + | x-2y+3z | +support variety ideal = 0 + -- 1.1 seconds +------------------------------------------------------------------ +V = cokernel | 2x2-2xy+2y2+2xz-3z2 | + | -x2+2xy+y2+3xz+3yz-z2 | + | -2xz+2yz+2z2 | +support variety ideal = 0 + -- 1.67 seconds +------------------------------------------------------------------ +V = cokernel | 2x3-x2y+2xy2-y3-2xyz+3y2z+xz2+3yz2+z3 | + | -3x3-3x2y+3xy2+2x2z+3xyz-3y2z-xz2 | + | -3x3-2x2y-xy2-2y3-2xyz+y2z+xz2+3yz2-z3 | +support variety ideal = 0 + -- 1.92 seconds +i124 : bassSeries2 = M -> ( + B := ring M; + k := B/ideal vars B; + I := Ext(k,M); + h := hilbertSeries I; + T':= degreesRing I; + substitute(h, {T'_0=>t^-1, T'_1=>u}) + ); +i125 : bassSeries1 = M -> ( + substitute(bassSeries2 M, {u=>1_T}) + ); +i126 : use B; +i127 : L = B^1/(x,y,z); +i128 : p = poincareSeries2 L + + 2 2 3 3 + 1 + 3t*u + 3t u + t u +o128 = ------------------------------ + 2 3 2 4 2 5 + (1 - t u )(1 - t u )(1 - t u ) + +o128 : Divide +i129 : b = bassSeries2 L + + -1 2 -2 3 -3 + 1 + 3t*u + 3t u + t u +o129 = --------------------------------- + 2 -3 2 -4 2 -5 + (1 - t u )(1 - t u )(1 - t u ) + +o129 : Divide +i130 : b2 = bassSeries2 M + + 6 3 4 5 2 2 2 3 3 3 3 2 4 -1 5 -3 + 7u + t*u + 9t*u + 3t*u - t u - t u - 4t - 3t u - 3t u + t u + 3t u +o130 = ------------------------------------------------------------------------------ + 2 -3 2 -4 2 -5 + (1 - t u )(1 - t u )(1 - t u ) + +o130 : Divide +i131 : b1 = bassSeries1 M; +i132 : simplify b1 + + 2 3 4 + 7 + 6t - 8t - 2t + 3t +o132 = ------------------------ + 2 3 + (1 + t) (1 - t) + +o132 : Divide +i133 : ext = (M,N) -> changeRing Ext(M,N); +i134 : use B; +i135 : N = B^1/(x^2 + z^2,y^3); +i136 : time rH = ext(M,N); + -- used 15.91 seconds +i137 : evenPart rH + +o137 = cokernel {-4, -9} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 | + {0, 2} | 0 0 0 0 0 0 0 X_3 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 | + {0, 2} | 0 0 0 0 0 X_3 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 | + {0, 2} | 0 0 0 0 0 0 X_3 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | 0 0 0 0 X_3 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | 0 0 0 X_3 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | 0 0 X_3 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | 0 X_3 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | X_3 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -4X_2 -22X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -50X_2 8X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 46X_2 9X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16X_2 -14X_2 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7X_2 -48X_2 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 | + {0, 1} | 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + + 17 +o137 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-module, quotient of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}] + 1 2 3 1 2 3 +i138 : oddPart rH + +o138 = cokernel {-3, -6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -45X_1 4X_1 -31X_1 -13X_1 X_1 | + {-3, -6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -41X_1 7X_1 -43X_1 X_1 0 | + {-3, -6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10X_1 -32X_1 X_1 0 0 | + {-3, -6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4X_1 X_1 0 0 0 | + {-3, -6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 | + {-1, -1} | -39X_3 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 | + {-1, -1} | 31X_3 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 | + {-1, -1} | -34X_3 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 | + {-1, -1} | -35X_3 0 0 0 0 X_2 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 | + {-1, -1} | -29X_3 0 0 0 X_2 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 | + {-1, -1} | 12X_3 0 0 X_2 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 | + {-1, -1} | -8X_3 0 X_2 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 | + {-1, -1} | X_3 X_2 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 | + {-3, -7} | 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 | + + 14 +o138 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-module, quotient of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}] + 1 2 3 1 2 3 +i139 : N' = B^1/(x^2 + z^2,y^3 - 2*z^3); +i140 : time rH' = ext(M,N'); + -- used 20.26 seconds +i141 : evenPart rH' + +o141 = cokernel {-4, -8} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48X_2 -48X_2 47X_2 -45X_2 -17X_2 | + {-4, -8} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -5X_2 44X_2 -23X_2 0 0 | + {-4, -9} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -51X_1 42X_1 11X_1 19X_1 -X_1 30X_1 | + {-4, -9} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -32X_1 -11X_1 -49X_1 -49X_1 45X_1 44X_1 | + {-4, -9} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35X_1 48X_1 -13X_1 25X_1 -33X_1 -35X_1 | + {-4, -9} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -51X_1 -3X_1 -8X_1 -16X_1 17X_1 -24X_1 | + {-4, -9} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -46X_1 34X_1 -27X_1 11X_1 -5X_1 -41X_1 | + {-4, -9} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -24X_1 -17X_1 16X_1 -7X_1 24X_1 -5X_1 | + {0, 2} | 0 0 0 0 0 0 X_3 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | 0 0 0 0 0 X_3 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 4X_2 0 0 0 0 -14X_2 -4X_2 12X_2 47X_2 18X_2 -45X_2 31X_2 37X_2 3X_2 45X_2 0 0 0 0 0 0 0 0 0 49X_1 -43X_1 26X_1 -40X_1 X_1 32X_1 0 -49X_1 21X_1 -13X_1 -44X_1 30X_1 19X_1X_3 -14X_2^2+2X_1X_3 -29X_2^2-7X_1X_3 -2X_2^2-32X_1X_3 -23X_2^2+12X_1X_3 X_2^2+13X_1X_3 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 41X_2 0 0 0 0 8X_2 -44X_2 9X_2 12X_2 48X_2 -7X_2 0 -22X_2 -50X_2 11X_2 0 0 0 0 0 0 0 0 0 -8X_1 35X_1 -8X_1 29X_1 -2X_1 3X_1 47X_1 7X_1 0 -28X_1 -34X_1 36X_1 39X_1X_3 -33X_2^2+20X_1X_3 -47X_2^2-21X_1X_3 -6X_2^2+41X_1X_3 X_2^2+2X_1X_3 33X_1X_3 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 14X_2 0 0 0 0 -42X_2 17X_2 40X_2 40X_2 23X_2 42X_2 -44X_2 39X_2 -41X_2 5X_2 0 0 0 0 0 0 0 0 0 -18X_1 45X_1 30X_1 -10X_1 -28X_1 -19X_1 10X_1 -10X_1 -16X_1 7X_1 -37X_1 13X_1 -27X_1X_3 10X_2^2+35X_1X_3 -40X_2^2+17X_1X_3 X_2^2+29X_1X_3 -33X_1X_3 -48X_1X_3 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 24X_2 0 0 0 0 19X_2 -16X_2 49X_2 51X_2 -49X_2 31X_2 -33X_2 -48X_2 18X_2 -46X_2 0 0 0 0 0 0 0 0 0 13X_1 -38X_1 11X_1 -39X_1 -11X_1 46X_1 20X_1 -2X_1 20X_1 -17X_1 49X_1 27X_1 X_1X_3 32X_2^2 X_2^2 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 50X_2 0 0 0 0 25X_2 -X_2 -12X_2 29X_2 27X_2 50X_2 37X_2 28X_2 28X_2 27X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 X_2^2 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 | + {0, 2} | 0 0 0 0 X_3 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | 0 0 X_3 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | 0 0 0 X_3 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | 0 X_3 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {-2, -4} | 0 0 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {0, 2} | X_3 0 0 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {0, 1} | 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + {0, 1} | 0 0 0 0 0 0 0 0 X_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | + + 33 +o141 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-module, quotient of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}] + 1 2 3 1 2 3 +i142 : oddPart rH' + +o142 = cokernel {-3, -6} | 0 0 0 0 0 0 0 0 -42X_2 21X_2 -47X_2 -13X_2 32X_2 49X_2 | + {-3, -6} | 0 0 0 0 0 0 0 0 -6X_2 -32X_2 -38X_2 -27X_2 -11X_2 -47X_2 | + {-3, -6} | 0 0 0 0 0 0 0 0 -8X_2 12X_2 -12X_2 -34X_2 -12X_2 -5X_2 | + {-3, -6} | 0 0 0 0 0 0 0 0 26X_2 -36X_2 36X_2 21X_2 47X_2 29X_2 | + {-3, -6} | 0 0 0 0 0 0 0 0 50X_2 18X_2 -37X_2 23X_2 -12X_2 42X_2 | + {-3, -6} | 0 0 0 0 0 0 0 0 31X_2 7X_2 -49X_2 -34X_2 -46X_2 11X_2 | + {-3, -7} | 0 0 0 0 0 0 0 0 0 0 0 0 0 X_1 | + {-3, -7} | 0 0 0 0 0 0 0 0 0 0 0 0 X_1 0 | + {-3, -7} | 0 0 0 0 0 0 0 0 0 0 0 X_1 0 0 | + {-3, -7} | 0 0 0 0 0 0 0 0 0 0 X_1 0 0 0 | + {-3, -7} | 0 0 0 0 0 0 0 0 0 X_1 0 0 0 0 | + {-3, -7} | 0 0 0 0 0 0 0 0 X_1 0 0 0 0 0 | + {-1, -2} | 0 0 0 X_2 0 0 0 X_1 0 0 0 0 0 0 | + {-1, -2} | 0 0 X_2 0 0 0 X_1 0 0 0 0 0 0 0 | + {-1, -2} | 0 X_2 0 0 0 X_1 0 0 0 0 0 0 0 0 | + {-1, -2} | X_2 0 0 0 X_1 0 0 0 0 0 0 0 0 0 | + + 16 +o142 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-module, quotient of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}] + 1 2 3 1 2 3 +i143 : extgenSeries2 = (M,N) -> ( + H := ext(M,N); + h := hilbertSeries H; + T':= degreesRing H; + substitute(h, {T'_0=>t^-1,T'_1=>u^-1}) + ); +i144 : extgenSeries1 = (M,N) -> ( + substitute(extgenSeries2(M,N), {u=>1_T}) + ); +i145 : time extgenSeries2(M,N) + -- used 0.44 seconds + + -2 -1 2 2 2 2 3 2 4 3 4 3 5 3 6 3 7 4 5 4 6 4 7 4 8 4 9 5 8 5 9 6 10 6 11 6 12 7 13 + 8u + u + 8t*u - 8t u - 9t u - 9t u + 7t u - 8t u - 8t u + 4t u + t u + 8t u + 9t u + t u - 2t u + t u + 8t u - 4t u - 8t u + 2t u - t u - t u +o145 = ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- + 2 3 2 4 2 5 + (1 - t u )(1 - t u )(1 - t u ) + +o145 : Divide +i146 : g=time extgenSeries1(M,N) + -- used 0.13 seconds + + 2 3 4 5 6 7 + 9 + 8t - 19t - 11t + 17t + 4t - 7t - t +o146 = -------------------------------------------- + 2 2 2 + (1 - t )(1 - t )(1 - t ) + +o146 : Divide +i147 : simplify g + + 2 3 4 + 9 - t - 9t + 6t + t +o147 = ---------------------- + 2 + (1 + t)(1 - t) + +o147 : Divide +i148 : time extgenSeries2(M,N') + -- used 0.15 seconds + + -2 -1 2 2 2 2 2 3 2 4 3 5 3 6 3 7 4 5 4 6 4 7 4 8 4 9 5 9 5 10 6 10 6 11 6 12 + 7u + 2u + 4t*u - 7t u - 9t u - 9t u + 16t u - 4t u + 2t u + 6t u + 7t u + 9t u - 5t u - 9t u + 6t u + 4t u - 6t u - 7t u + 11t u - 6t u +o148 = ---------------------------------------------------------------------------------------------------------------------------------------------------------------- + 2 3 2 4 2 5 + (1 - t u )(1 - t u )(1 - t u ) + +o148 : Divide +i149 : g'=time extgenSeries1(M,N') + -- used 0.18 seconds + + 2 3 4 5 6 + 9 + 4t - 9t + 4t + 8t - 2t - 2t +o149 = ------------------------------------ + 2 2 2 + (1 - t )(1 - t )(1 - t ) + +o149 : Divide +i150 : simplify g' + + 2 3 5 + 9 - 5t - 4t + 8t - 2t +o150 = ------------------------ + 2 3 + (1 + t) (1 - t) + +o150 : Divide +i151 : complexityPair = (M,N) -> dim ext(M,N); +i152 : time complexityPair(M,N) + -- used 0.39 seconds + +o152 = 2 +i153 : time complexityPair(M,N') + -- used 0.12 seconds + +o153 = 3 +i154 : supportVarietyPairIdeal = (M,N) -> ann ext(M,N); +i155 : time supportVarietyPairIdeal(M,N) + -- used 0.97 seconds + +o155 = ideal X + 1 + +o155 : Ideal of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}] + 1 2 3 +i156 : time supportVarietyPairIdeal(M,N') + -- used 1.73 seconds + +o156 = 0 + +o156 : Ideal of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}] + 1 2 3 +i157 : \ No newline at end of file diff --git a/Book/ComputationsBook/chapters/completeIntersections/ci.tex b/Book/ComputationsBook/chapters/completeIntersections/ci.tex new file mode 100644 index 0000000..7aa4a9a --- /dev/null +++ b/Book/ComputationsBook/chapters/completeIntersections/ci.tex @@ -0,0 +1,2375 @@ +% Dan: 333-6209 (office) 367-6384 (home) + +\CompileMatrices + +\newtheorem{sRemark}{Remark}{\bfseries}{\rm} +\newtheorem{notation}[theorem]{Notation}{\bfseries}{\rm} +\newtheorem{construction}[theorem]{Construction}{\bfseries}{\rm} +\numberwithin{sRemark}{subsection} +\newtheorem{sExample}[sRemark]{Example}{\bfseries}{\rm} +\newtheorem{sCode}[sRemark]{Code}{\bfseries}{\rm} + +\title{Resolutions and Cohomology \\ over Complete Intersections} +\titlerunning{Complete Intersections} +\toctitle{Resolutions and Cohomology over Complete Intersections} + +\author{Luchezar L. Avramov + %\inst 1 + \and Daniel R. Grayson% + %\inst 2 + %\fnmsep + \thanks{Authors supported by the NSF, grants DMS 99-70375 and + DMS 99-70085.}} +\authorrunning{L. L. Avramov and D. R. Grayson} +% \institute{Purdue University, Department of Mathematics +% % \endgraf {\tt http://www.math.purdue.edu/\char`\~avramov} +% % \endgraf {\tt avramov\char`\@math.purdue.edu} +% \and University of Illinois at Urbana-Champaign, +% Department of Mathematics +% % \endgraf {\tt http://www.math.uiuc.edu/\char`\~dan} +% % \endgraf {\tt dan\char`\@math.uiuc.edu} +% } + +\hyphenation{quasi-iso-mor-phism} + +\newcommand\ssum[1]{{\underset{#1}{\sum{\vphantom\sum}^{\scriptscriptstyle+}}}} + +\def\ann{{\operatorname{ann}}} +\def\inv{{\operatorname{inv}}} +\def\reg{{\operatorname{reg}}} +\def\gr{{\operatorname{gr}}} +\def\bu{{\scriptscriptstyle\bullet}} +\def\HH{{\operatorname{H}}} +\def\Tor{\operatorname{Tor}} +\def\Ext{\operatorname{Ext}} +\def\rExt{\operatorname{ext}} +\def\Deg{\operatorname{Deg}} +\def\Poi{{P}} +\def\Ba{{I}} +\def\gen{{G}} +\def\depth{\operatorname{depth}} +\def\pd{\operatorname{pd}} +\def\cx{\operatorname{cx}} +\def\crdeg{\operatorname{crdeg}} +\def\rank{\operatorname{rank}} +\def\var{\operatorname{V}} +\def\lcontract{\operatorname{\lrcorner}} +\def\Hom{\operatorname{Hom}} +\def\Coker{\operatorname{Coker}} +\def\Ker{\operatorname{Ker}} +\def\Ima{\operatorname{Im}} +\def\C{{\mathbb C}} +\def\F{{\mathbb F}} +\def\N{{\mathbb N}} +\def\Z{{\mathbb Z}} +\def\DD{{\mathsf D}} +\def\SS{{\mathsf S}} +\def\Wedge{{\textstyle\bigwedge\limits}} +\def\a{\alpha} +\def\b{\beta} +\def\g{\gamma} +\def\d{\delta} +\def\e{\epsilon} +\def\o{\otimes} + +\maketitle +\begin{abstract} +This chapter contains a new proof and new applications of a theorem of +Shamash and Eisenbud, providing a construction of projective +resolutions of modules over a complete intersection. The duals of +these infinite projective resolutions are finitely generated +differential graded modules over a graded polynomial ring, so they can +be represented in the computer, and can be used to compute $\Ext$ +modules simultaneously in all homological degrees. It is shown how to +write \Mtwo code to implement the construction, and how to use the +computer to determine invariants of modules over complete intersections +that are difficult to obtain otherwise. +\index{complete intersection} + \end{abstract} + +\section*{Introduction} +\label{sec:introduction} + +Let $A=K[x_1,\dots,x_e]$ be a polynomial ring with variables of +positive degree over a field $K$, and $B=A/J$ a quotient ring modulo a +homogeneous ideal. + +In this paper we consider the case when $B$ is a {\it\ie{graded +complete intersection}\/}, that is, when the defining ideal $J$ is +generated by a homogeneous $A$-regular sequence. We set up, describe, +and illustrate a routine {\tt Ext}\indexcmd{Ext}, now implemented in +\Mtwo. For any two finitely generated graded $B$-modules $M$ and $N$ +it yields a presentation of $\Ext^\bu_B(M,N)$ as a bigraded module over +an appropriately bigraded polynomial ring $S=A[X_1,\dots,X_c]$. + +A novel feature of our routine is that it computes the modules +$\Ext^n_B(M,N)$ {\it simultaneously in all cohomological degrees\/} +$n\ge0$. This is made possible by the use of {\it cohomology +operations\/}, a technique usually confined to theoretical +considerations. Another aspect worth noticing is that, although the +result is over a ring $B$ with nontrivial relations, all the +computations are made over the {\it polynomial ring\/} $S$; this may +account for the effectiveness of the algorithm. + +To explain the role of the complete intersection hypothesis, we cast it +into the broader context of homological algebra over graded rings. + +Numerous results indicate that the high syzygy modules of $M$ exhibit +`similar' properties. For an outrageous example, assume that $M$ has +finite projective dimension. Its distant syzygies are then all equal +to $0$, and so---for trivial reasons---display an extremely uniform +behavior. However, even this case has a highly nontrivial aspect: due +to the Auslander-Buchsbaum Equality asymptotic information is available +after at most $(e+1)$ steps. This accounts for the effectiveness of +computer constructions of {\it finite\/} free resolutions. + +Problems that computers are not well equipped to handle arise +unavoidably when studying asymptotic behavior of {\it infinite\/} +resolutions. We describe some, using graded Betti numbers +$\b^B_{ns}(M)=\dim_K\Ext^n_B(M,k)_{-s}$, where $k=B/(x_1,\dots,x_e)B$, +and regularity $\reg_B(M)= \sup_{n,s}\{s-n\,|\, \b^B_{ns}(M)\ne0\}$. +\begin{itemize} +\item[$\bullet$] +{\it Irrationality\/}. +There are rings $B$ for which no recurrent relation with constant +coefficients exists among the numbers $\b^B_n(k)=\sum_{s}\b^B_{ns}(k)$, +see \cite{CI:MR86i:55011a}. +\item[$\bullet$] +{\it Irregularity\/}. +For each $r\ge2$ there exists a ring $B(r)$ with $\b^{B(r)}_{ns}(k)=0$ +for $s\ne n$ and $0\le n\le r$, but with $\b^{B(r)}_{r,r+1}(k)\ne0$, +see \cite{CI:MR94b:16040}. +\item[$\bullet$] +{\it Span\/}. +If $B$ is generated over $K$ by elements of degree one and $\reg_B(k) +\ne0$, then $\reg_B(k) =\infty$, see \cite{CI:AP}. +\item[$\bullet$] +{\it Size\/}. +There are inequalities $\b^B_n(k)\ge\beta^n$ for all $n\ge0$ and for +some constant $\beta>1$, unless $B$ is a complete intersection, see +\cite{CI:res}. + \end{itemize} + +These obstructions vanish miraculously when $B$ is a graded complete +intersection: For each $M$ and all $n\gg0$ the number $\b_{n+1}(M)$ is +a linear combination with constant coefficients of $\b^B_{n-2c}(M), +\dots,\b^B_{n}(M)$. If $B$ is generated in degree one, then +$\reg_B(k)=0$ if and only if the ideal $J$ is generated by quadratic +forms. There are inequalities $\b^B_n(M)\le\beta(M)n^{c-1}$ for all +$n\ge1$ and for some constant $\beta(M)>0$. + +The algebra behind the miracle is a theorem of Gulliksen +\cite{CI:MR51:487}, who proves that $\Ext^\bu_B(M,N)$ is a finitely +generated bigraded module over a polynomial {\it ring of cohomology +operators\/} $S=A[X_1,\dots,X_c]$, where each variable $X_i$ has +cohomological degree $2$. As a consequence of this result, problems in +Homological Algebra can be answered in terms of Commutative Algebra. + +Gulliksen's definition of the operators $X_i$ as iterated connecting +homomorphisms is badly suited for use by a computer. Other definitions +have been given subsequently by several authors, see Remark +\ref{history}. We take the approach of Eisenbud \cite{CI:Ei}, who +derives the operators from a specific $B$-free resolution of $M$, +obtained by extending a construction of Shamash \cite{CI:Sh}. + +The resolution of Shamash and Eisenbud, and Gulliksen's Finiteness +Theorem, are presented with detailed proofs in Section \ref{Cohomology +operators}. They are obtained through a new construction---that of an +intermediate resolution of $M$ over the polynomial ring---that encodes +$C$ and all the null-homotopies of $C$ corresponding to multiplication +with elements of $J$; this material is contained in Section +\ref{Universal homotopies}. It needs standard multilinear algebra, +developed {\sl ad hoc\/} in Section \ref{Graded algebras}. Rules for +juggling several gradings are discussed in an Appendix. + +In Section \ref{Computation of Ext modules} we present and illustrate +the code for the routine {\tt Ext}, which runs remarkably close to the +proofs in Sections \ref{Universal homotopies} and \ref{Cohomology +operators}. Section \ref{Invariants of modules} contains numerous +computations of popular numerical invariants of a graded module, like +its complexity, Poincar\'e series, and Bass series. They are extracted +from knowledge of the bigraded modules $\Ext^\bu_B(M,k)$ and +$\Ext^\bu_B(k,M)$, whose computation is also illustrated by examples, +and is further used to obtain explicit equations for the cohomology +variety $\var^*_B(M)$ defined in \cite{CI:MR90g:13027}. For most +invariants we include some short code that automates their +computation. In Section \ref{Invariants of pairs of modules} we +extend these procedures to invariants of pairs of modules. + +\section{Matrix Factorizations} +\label{Matrix factorizations} + +We start the discussion of homological algebra over a complete +intersection with a very special case, that can be packaged +attractively in matrix terms. + +Let $f$ be a non-zero-divisor in a commutative ring $A$. + +Following Eisenbud \cite[Sect.\ 5]{CI:Ei} we say that a pair $(U,V)$ of +matrices with entries in $A$, of sizes $k\times \ell$ and $\ell\times +k$, is a {\it\ie{matrix factorization}\/} of $-f$ if +\[ +U\cdot V= -f\cdot I_k \qquad\text{and}\qquad V\cdot U=-f\cdot I_\ell +\] +where $I_m$ denotes the $m\times m$ unit matrix. Localizing at $f$, one +sees that $-f^{-1}\cdot U$ and $V$ are inverse matrices over $A_f$; as a +consequence $\ell=k$, and each equality above implies the other, for +instance: +\[ +V\cdot U=\big(-f^{-1}\cdot U\big)^{-1}\cdot U= -f\cdot U^{-1}\cdot U= +-f\cdot I_k +\] +Here is a familiar example of matrix factorization, with $f=xy-wz$: +\[ +\begin{pmatrix} w & x \\ y & z \end{pmatrix}\cdot +\begin{pmatrix} z & -y \\ -x & w \end{pmatrix}= +-(xy-wz)\cdot +\begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}= +\begin{pmatrix} z & -y \\ -x & w \end{pmatrix}\cdot +\begin{pmatrix} w & x \\ y & z \end{pmatrix} +\] + +Let now $C_1$ and $C_0$ be free $A$-modules of rank $r$, and let +\[ +d_1\colon C_1\to C_0 \qquad\text{and}\qquad s_0\colon C_0\to C_1 +\] +be $A$-linear homomorphisms defined by the matrices $U$ and $V$, +respectively, after bases have been tacitly chosen. + +The second condition on the matrices $U$ and $V$ implies that $d_1$ is +injective, while the first condition on these matrices shows that +$fC_0$ is contained in $\Ima(d_1)$. Setting $L=\Coker(d_1)$, one sees +that the chosen matrix factorization defines a commutative diagram with +exact rows +\[ +\xymatrixrowsep{3pc} +\xymatrixcolsep{4pc} +\xymatrix{ +0 +\ar[r] +& C_1 +\ar[r]^-{d_1} +\ar[d]_{-f\cdot 1_{C_1}} +& C_0 +\ar[r] +\ar[d]^{-f\cdot 1_{C_0}} +\ar[dl]_-{s_0} +& L +\ar[r] +\ar[d]_{0_L=}^{-f\cdot1_L} +& 0 +\\ +0 +\ar[r] +& C_1 +\ar[r]^-{d_1} +& C_0 +\ar[r] +& L +\ar[r] +& 0 +} +\] +which expresses the following facts: $C=\ 0\to C_1\xrightarrow{d_1} +C_0\to 0$ is a free resolution of the $A$-module $L$, this module is +annihilated by $f$, and $s_0$ is a homotopy between the maps +$-f\cdot 1_C$ and $0_C$, both of which lift $-f\cdot 1_L$. + +Conversely, if an $A$-module $L$ annihilated by $f$ has a free +resolution $(C,d_1)$ of length $1$, then $\rank_AC_1=\rank_AC_0$, and +any choice of homotopy $s_0$ between $-f\cdot 1_C$ and $0_C$ provides a +matrix factorization of $-f$. + +When we already have an $A$-module $L$ with a presentation matrix $U$ +that defines an injective $A$-linear map, we can use \Mtwo to create a +matrix factorization $(U,V)$ of $-f$. + +\begin{Example} +\label{familiar} +We revisit the familiar example from a higher perspective. +<<>> +<<>> +<<>> +<<>> +<<>> +Let's verify that $f$ annihilates $L$. +<<>> +We use the {\tt nullhomotopy} function.\indexcmd{nullhomotopy} +<<>> +Let's verify that $s$ is a null-homotopy for $-f$, using {\tt +C.dd}\indexcmd{dd} to obtain the differential of the chain complex {\tt +C} as a map of graded modules. +<<>> +We extract the matrix $V$ from the null-homotopy to get our factorization. +<<>> +\end{Example} + +For every $f$ and every $r\ge1$ there exists a trivial matrix +factorization of $-f$, namely, $(f\cdot I_k, -I_k)$; it can be obtained +from the $A$-module $L=A^k/fA^k$. In general, it may not be clear how +to find an $A$-module $L$ with the properties necessary to obtain an +`interesting' matrix factorization of $-f$. + +However, in some cases the supply is plentiful. + +\begin{Remark} +\label{factorization} +Let $A$ be a graded polynomial ring in $e$ variables of positive degree +over a field $K$, let $f$ be a homogeneous polynomial in $A$, and set +$B=A/(f)$. Every $B$-module $M$ of infinite projective dimension +{\it\ie{generates}\/} a matrix factorization $(U,V)$ of $-f$, as follows. + +Let $(F,d_F)$ be a minimal graded free resolution of $M$ over $B$, and +set $L=\Coker\big(d_F\colon F_{e+1}\to F_e\big)$. Since $M$ has +infinite projective dimension, we have $L\ne0$. By the Depth Lemma, +$\depth_BL=\depth B$. On the other hand, $\depth_BL=\depth_AL$ and +$\depth B=\depth A-1$. By Hilbert's Syzygy Theorem, the minimal graded +free resolution $(C,d_C)$ of $L$ over $A$ is finite. By the +Auslander-Buchsbaum Equality, $C_n=0$ for $n>\depth A-\depth_AL=1$. + +The minimality of $F$ ensures that all nonzero entries of the +presentation matrix $U$ of $L$ are forms of positive degree. On +the other hand, by \cite[Sect.~0]{CI:Ei} the module $L$ has no direct +summand isomorphic to $B$: it follows that all nonzero entries of +the homotopy matrix $V$ are forms of positive degree (this is the +reason for choosing $L$ as above---stopping one step earlier in the +resolution $F$ could have produced a module $L$ with a non-zero free +direct summand). + \end{Remark} + +Our reader would have noticed that \Mtwo can read all the data and +perform all the operations needed to construct a module $L$ by the +procedure described in the preceding remark. Here is how it does it. + +\begin{Example} +\label{square} +We produce a matrix factorization of $-f$, where +\[ +f=x^3 + 3y^3 - 2yz^2 + 5z^3 \in\mathbb Q[x,y,z]=A +\] +generated by the module $M=B/{\mathfrak m}^2$, where $B=A/(f)$ and +${\mathfrak m}=(x,y,z)B$. +<<>> +<<>> +<<>> +<<>> +Let's take the $B$-module $M$ and compute its minimal $B$-free +resolution. +<<>> +<<8)>>> +We introduce a function {\tt restrict1 N} which accepts a $B$-module +$N$ and restricts scalars to produce an $A$-module. +<< coker(lift(presentation N,A) | f);>>> +Now make $L$ as described in Remark \ref{factorization} +<<>> +We proceed as in Example \ref{familiar} to get a matrix factorization. +<<>> +<<>> +<<>> +<<>> +<<>> +<<>> +<<>> +<<>> +\end{Example} + +The procedure described above can be automated for more pleasant usage. + +\begin{code} +\label{factorization code} +The function {\tt matrixFactorization M} produces a matrix factorization +$(U,V)$ of $-f$ generated by a module $M$ over $B=A/(f)$. +<< ( + B := ring M; + f := (ideal B)_0; + e := numgens B; + F := resolution(M, LengthLimit => e+1); + L := restrict1 cokernel F.dd_(e+1); + C := res L; + U := C.dd_1; + s := nullhomotopy (-f * id_C); + V := s_0; + assert( U*V + f == 0 ); + assert( V*U + f == 0 ); + return (U,V));>>> +We use the {\tt assert}\indexcmd{assert} command to signal an error in +case the matrices found don't satisfy our requirement for a matrix +factorization. + \end{code} + +Let's illustrate the new code with a slightly bigger module $M$ than +before. + +\begin{Example} +\label{cube} +With the same $A$, $f$, $B$, and $\mathfrak m$ as in Example +\ref{square}, we produce a matrix factorization generated by the +$B$-module $M=B/{\mathfrak m}^3$. +<<{5}];>>> +<<>> +<<>> +<<>> +Use the function {\tt Ext} to compute $H = \Ext^\bu_B(M,N)$ (the +semicolon at the end of the line will suppress printing until we have +assigned the name {\tt S} to the ring of cohomology operators +constructed by \Mtwo.) +<<>> +We may look at the ring. +<<>> +\Mtwo has assigned the name {\tt \$X\char`\_1} to the variable $X$. +The dollar sign indicates an internal name that cannot be entered from +the keyboard: if necessary, obtain the variable by entering {\tt +S\char`\_0}; notice that indexing in \Mtwo starts with $0$ rather than $1$. +Notice also the appearance of braces rather than +parentheses in \Mtwo's notation for bidegrees. +<<>> +Assign the ring a name. +<<>> +We can now look at the $S$-module $H$. +<<>> +Each row in the display above is labeled with the bidegree of the +corresponding generator of $H$. This presentation gives the +isomorphisms of bigraded $S$-modules, already computed by hand +earlier. +\end{Example} + +Let's try an example with a complete intersection of codimension 2. It +is not so easy to do by hand, but can be checked using the theory in +\cite{CI:MR1774757}. + +\begin{Example} +Begin by constructing a polynomial ring $A=K[x,y]$. +<<>> +Now we produce a complete intersection quotient ring $B=A/(x^3,y^2)$. +<<>> +<<>> +We take $N$ to be the $B$-module $B/(x^2,xy)$. +<<>> +Remark \ref{bigrading} shows that $H=\Ext^\bu_B(N,N)$ is a bigraded module +over the bigraded ring $S=A[X_1,X_2]=K[X_1,X_2,x,y]$ where +\begin{alignat*}{2} +\Deg(X_1)&=(-2,-3)\quad &\Deg(X_2)&=(-2,-2)\\ +\Deg(x)&=(0,1) &\Deg(y)&=(0,1) +\end{alignat*} +Using \Mtwo (below) we obtain an isomorphism of bigraded $S$-modules +\begin{gather*} +H^{\text{even}}\cong \frac{S}{(x^2,xy,y^2,xX_1,yX_1)} + \oplus \frac{S}{(x,y)}[2,2]\\ +H^{\text{odd}} \cong \left(\frac{S}{(x,y,X_1)} +\oplus \frac{S}{(x,y)}\right)^2[1,1] +\end{gather*} +These isomorphisms also yield expressions for the graded $B$-modules: +\begin{gather*} +\Ext_B^{2i}(N,N)\cong +N\cdot X_2^{i}\oplus +\bigoplus_{h=1}^{i} k\cdot X_1^{h}X_2^{i-h}\oplus +\bigoplus_{h=0}^{i-1}k[2]\cdot X_1^{h}X_2^{i-1-h}\\ +\Ext_B^{2i+1}(N,N)\cong +\bigg(k[1]\cdot X_2^{i}\oplus +\bigoplus_{h=0}^{i}k[1]\cdot X_1^{i-h}X_2^{h}\bigg)^2 +\end{gather*} + +Now we follow in detail the computation of the bigraded $S$-module $H$. +<<>> +<<>> +<<>> +We trimmed the ideal, so that we know the generators \Mtwo will use. + +This time we want a graded $B$-module $M$ about whose homology we know +nothing {\sl a priori\/}. One way to proceed is to create $M$ as the +cokernel of some random matrix of forms; let's try a 3 by 2 matrix of +quadratic forms. +<<>> +We can't read the second column of that matrix, so let's display it +separately. +<<>> +Now let's make the module $M$. +<<>> + +We are going to produce isomorphisms of bigraded modules +\begin{gather*} +P^{\text{even}} \cong R[4,10] \oplus (X_1,X_2)[2,7] + \oplus\left(\frac{R}{(X_1,X_2,X_3)}\right)^3\oplus R^4[2,7]\\ +P^{\text{odd}} \cong \frac{R}{(X_1,X_2,X_3)}[1,2] + \oplus\left(\frac{R}{(X_1)}\right)^3[3,9] + \oplus \frac{R}{(X_1,X_2)}[1,3] \oplus R^6[3,9] +\end{gather*} +over the polynomial ring $R=K[X_1,X_2,X_3]$ over $K$, bigraded by +\[ +\Deg(X_1)=(-2,-3)\qquad \Deg(X_2)=(-2,-4) \qquad \Deg(X_3)=(-2,-5) +\] + +Let's compute $\Ext^\bu_B(M,B/(x,y,z))$ by the routine from Section +\ref{Computation of Ext modules}. +<<

>> +<< << endl << J << endl);>>> +<<>> +As we see from this example, this procedure doesn't necessarily +yield an irredundant decomposition. + +The second algorithm for finding a primary decomposition of a monomial +ideal $I$ is based on the Alexander dual\index{Alexander +dual}\index{dual, Alexander} of $I$. The Alexander dual was first +introduced for squarefree monomial ideals. In this case, it is the +monomial ideal of the dual of the simplicial complex $\Delta$ +corresponding to $I$. By definition the dual complex of $\Delta$ is +$\Delta^{\vee} = \{ F : F^{c} \not\in \Delta \}$, where $F^{c} = +\{x_{1}, \dotsc, x_{n}\} \setminus F$. The following general +definition appears in Miller~\cite{M},~\cite{MR1779598}. If +$I \subseteq \bbbq[x_{1}, +\dotsc, x_{n}]$ is a monomial ideal and $x^{\lambda}$ is the least +common multiple of the minimal generators of $I$, then the Alexander +dual of $I$ is +\[ +I^{\vee} = \left\langle \prod_{\beta_{i} > 0} +x_{i}^{\lambda_{i}+1-\beta_{i}} : \begin{tabular}{l} \text{$\langle +x_{i}^{\beta_{i}} : \beta_{i} \geq 1\rangle$ is an +irredundant} \\ \text{irreducible component of $I$} \end{tabular} +\right\rangle \, . +\] +In particular, the minimal generators of $I^{\vee}$ correspond to the +irredundant irreducible components of $I$. The next proposition +provides a useful way of computing $I^{\vee}$ given a set of +generators for $I$. + +\begin{proposition} +If $I$ is a monomial ideal and $x^{\lambda}$ is the least common +multiple of the minimal generators of $I$, then the generators for +$I^{\vee}$ are those generators of the ideal $\left( \langle +x_{1}^{\lambda_{1}+1}, \dotsc, x_{n}^{\lambda_{n}+1} \rangle : I +\right)$ that are not divisible by $x_{i}^{\lambda_{i}+1}$ for $1 \leq +i \leq n$. +\end{proposition} + +\begin{proof} +See Theorem~2.1 in Miller~\cite{M}. \qed +\end{proof} + +Miller's definition of Alexander dual is even more general than the one +above. The resulting algorithm for computing this general Alexander +dual and primary decomposition are implemented in \Mtwo as follows. +For the Alexander dual we use, the list {\tt a} that appears +as an input argument for {\tt dual}\indexcmd{dual} should be list of exponents of +the least common multiple of the minimal generators of $I$. +<<>> +<<>> +This direct algorithm is more efficient than our recursive algorithm. +In particular, it gives an irredundant decomposition. For example, +when we use it to determine a primary decomposition for the ideal {\tt +I} above, we obtain +<<>> +<< << endl << J << endl);>>> +<<>> + +For a family of larger examples, we consider the tree +ideals\index{ideal!tree}: +\[ +\left\langle \big({\textstyle \prod_{i \in F}} x_{i}\big)^{n-|F|+1} : +\text{ $\emptyset \neq F \subseteq \{ x_{1}, \dotsc, x_{n} \}$} +\right\rangle \, . +\] +These ideals are so named because their standard monomials (the +monomials not in the ideal) correspond to trees on $n+1$ labeled +vertices. We determine the number of irredundant irreducible +components as follows: +<< ( + S = QQ[vars(0..n-1)]; + L := delete({}, subsets gens S); + monomialIdeal apply(L, F -> (product F)^(n - #F +1)));>>> +<< #primaryDecomposition treeIdeal i)>>> + + +%%---------------------------------------------------------- +\subsection*{Example: Graph Ideals and Complexity Theory} + +Monomial ideals also arise in graph theory. Given a graph $G$ with +vertices $\{x_{1}, \dotsc, x_{n}\}$, we associate the +ideal\index{ideal!graph} $I_{G}$ in $\bbbq[x_{1}, \dotsc, x_{n}]$ +generated by the quadratic monomials $x_{i}x_{j}$ such that $x_{i}$ is +adjacent to $x_{j}$. The primary decomposition of $I_{G}$ is related to +the graph $G$ as follows. Recall that a subset $F \subseteq \{x_{1}, +\dotsc, x_{n}\}$ is called a {\em vertex cover}\index{vertex +cover}\index{cover} of $G$ if each edge in $G$ is incident to at least +one vertex in $F$. + +\begin{lemma} \label{lem:graphideal} +If $G$ is a graph and $\mathcal{C}$ is the set of minimal vertex +covers of $G$ then the irreducible irredundant primary +decomposition\index{primary decomposition} of $I_{G}$ is $\bigcap_{F +\in \mathcal{C}} P_{F^{c}}$, where $P_{F^{c}}$ is the prime ideal +$\langle x_{i} : x_{i} \not\in F^{c} \rangle = +\langle x_{i} : x_{i} \in F \rangle$. +\end{lemma} + +\begin{proof} +Since each generator of $I_{G}$ corresponds to an edge in $G$, it +follows from the {\tt monomialDecompose} algorithm that $I_{G}$ has an +irreducible primary decomposition of the form: $I_{G} = \bigcap +P_{F^{c}}$, where $F$ is a vertex cover. To obtain an +irredundant decomposition, one clearly needs only the minimal vertex +covers. \qed +\end{proof} + +As an application of graph ideals, we examine the complexity of +determining the codimension\index{ideal!codimension} of a monomial +ideal. In fact, following Bayer and Stillman~\cite{MR94f:13018}, we +prove + +\begin{proposition} \label{pro:complexity} +The following decision problem is NP-complete: +\begin{equation} \tag{{\sc Codim}} +\text{\begin{minipage}[c]{200pt} +Given a monomial ideal $I \subseteq \bbbq[x_1, \dotsc, x_n]$ +and $m \in \bbbn$, is $\codim I \leq m$? +\end{minipage}} +\end{equation} +\end{proposition} + +By definition, a decision problem is NP-complete\index{NP-complete} if +all other problems in the class NP can be reduced to it. To prove +that a particular problem is NP-complete, it suffices to show: $(1)$ +the problem belongs to the class NP; $(2)$ some known NP-complete +problem reduces to the given decision problem (see Lemma~2.3 in Garey +and Johnson~\cite{MR80g:68056}). One of the ``standard NP-complete'' +problems (see section~3.1 in Garey and Johnson~\cite{MR80g:68056}) is +the following: +\begin{equation} \tag{{\sc Vertex Cover}} +\text{\begin{minipage}[c]{200pt} Given a graph $G$ and $m \in \bbbn$, +is there a vertex cover $F$ such that $|F| \leq m$? \end{minipage}} +\end{equation} + +\begin{sproof} +$(1)$ Observe that a monomial ideal $I$ has codimension at most $m$ if +and only if $I \subseteq P_{F^{c}}$ for some $F$ with $|F| +\leq m$. Now, if $I$ has codimension at most $m$, then given an +appropriate choice of $F$, one can verify in polynomial time that $I +\subseteq P_{F^{c}}$ and $|F| \leq m$. Therefore, the {\sc +Codim} problem belongs to the class NP. + +$(2)$ Lemma~\ref{lem:graphideal} implies that $I_{G}$ has codimension +$m$ if and only if $G$ has a vertex cover of size at most $m$. In +particular, the {\sc Vertex Cover} problem reduces to the {\sc Codim} +problem. \qed +\end{sproof} + +Thus, assuming P $\neq$ NP, there is no polynomial time algorithm for +finding the codimension of a monomial ideal. Nevertheless, we can +effectively compute the codimension for many interesting examples. + +To illustrate this point, we consider the following family of +examples. Let $S = \bbbq[X]$ denote the polynomial ring generated by +the entries of a generic $m \times n$ matrix $X = [x_{i,j}]$. Let +$I_{k}$\index{ideal!of minors} be the ideal generated by the $k \times +k$ minors of $X$. Since the Hilbert function of $S / I_{k}$ equals +the Hilbert function of $S / \initial(I_{k})$ (see Theorem~15.26 in +Eisenbud~\cite{MR97a:13001}), we can determine the codimension $I_{k}$ +by working with the monomial ideal $\initial(I_{k})$. Because +Sturmfels~\cite{MR91m:14076} shows that the set of $k \times k$-minors +of $X$ is the reduced Gr\"{o}bner basis of $I_{k}$ with respect to the +lexicographic term order induced from the variable order +\[ +x_{1,n} > x_{1,n-1} > \dotsb > x_{1,1} > x_{2,n} > \dotsb > x_{2,1} > +\dotsb > x_{m,n} > \dotsb > x_{m,1} \, , +\] +we can easily calculate $\initial(I_k)$. In particular, in \Mtwo we +have +<< ( + S := QQ[x_1..x_(m*n), MonomialOrder => Lex]; + I := minors(k, matrix table(m, n, (i,j) -> x_(i*n+n-j))); + forceGB gens I; + I);>>> +<< time codim monomialIdeal minorsIdeal(i,2*i,2))>>> +The properties of $I_{k}$ are further developed in chapter~11 of +Sturmfels~\cite{MR97b:13034} and chapter~7 of Bruns and +Herzog~\cite{MR95h:13020} + +For more on the relationships between a graph and its associated +ideal, see Villarreal~\cite{MR91b:13031}, Simis, Vasconcelos and +Villarreal~\cite{MR99c:13004}, and Ohsugi and +Hibi~\cite{MR2000a:13010}. + +<<>> + +%%---------------------------------------------------------- +\section{Standard Pairs} + +In this section, we examine a combinatorial object associated to a +monomial ideal. In particular, we present two algorithms for +computing the standard pairs of a monomial ideal from its minimal +generators. Before giving the definition of a standard pair, we +consider an example. + +\begin{figure} +\begin{center} +\epsfysize=2.4in \epsfbox{standardpairs-fixed.eps} +\end{center} +\caption{Staircase diagram for $I = \langle xy^3z, xy^2z^2, y^3z^2, +y^2z^3 \rangle$} +\end{figure} + +\begin{example} \label{std-ex} +Let $I = \langle xy^3z, xy^2z^2, y^3z^2, y^2z^3 \rangle$ in +$\bbbq[x,y,z]$. We identify the monomials in $\bbbq[x,y,z]$ +with the lattice points in $\bbbn^3$; see Figure~2. The +standard monomials of $I$, those monomials which are not in $I$, can +be enumerated as follows: $(i)$ monomials corresponding to lattice +points in the $xy$-plane, $(ii)$ monomials corresponding to lattice +points in the $xz$-plane, $(iii)$ monomials corresponding to lattice +points in the plane parallel to the $xz$-plane containing $(0,1,0)$, +$(iv)$ monomials corresponding to lattice points on the line parallel +to the $y$-axis containing $(0,0,1)$, $(v)$ monomials corresponding to +lattices point on the line parallel to the $x$-axis containing +$(0,2,1)$, and $(vi)$ the monomial $y^{2}z^{2}$. +\end{example} + +Following Sturmfels, Trung and Vogel~\cite{MR96i:13029}, we make the +following definitions. Given a monomial $x^{\alpha}$ and a subset $F +\subseteq \{ x_{1}, \dotsc, x_{n} \}$, we index the set of monomials +of the form $x^{\alpha} \cdot x^{\beta}$ where $\supp(x^{\beta}) +\subseteq F$ by the pair $(x^{\alpha}, F)$. A standard +pair\index{standard pair} of a monomial ideal $I$ is a pair +$(x^{\alpha}, F)$ satisfying the following three conditions: +\begin{enumerate} +\item[$(1)$] $\supp(x^{\alpha}) \cap F = \emptyset$, +\item[$(2)$] all of the monomials represented by this pair are +standard, and +\item[$(3)$] $(x^{\alpha}, F) \not\subseteq (x^{\beta}, G)$ for any +other pair $(x^{\beta}, G)$ satisfying the first two conditions. +\end{enumerate} +Hence, the six standard pairs +\[ +(1, \{x,y\}), (1, \{x,z\}), (y,\{x,z\}), (z, \{y\}), (y^{2}z, \{x\}), +(y^2z^2, \emptyset) +\] +in Example~\ref{std-ex} correspond to $(i)$--$(vi)$. + +Observe that the set of standard pairs of $I$ gives an irreducible +decomposition\index{primary decomposition} of $I = \bigcap \langle +x_{i}^{\alpha_{i}+1} : \text{ $x_{i} \notin F$} \rangle$, where the +intersection is over all standard pairs $(x^{\alpha}, F)$. Moreover, +the prime ideal $P_F := \langle x_{i} : \text{ $x_{i} \notin F$} +\rangle$ is an associated prime of $I$ if and only if there exists a +standard pair of the form $(\bullet, F)$; see Sturmfels, Trung and +Vogel~\cite{MR96i:13029} for details. + +Our first algorithm for computing the set of standard +pairs\index{standard pair} is taken from Ho\c{s}ten and +Thomas~\cite{MR2000f:13052}. The ideas behind it are as follows: +given a witness $w_1 = x^{\alpha}$ for the associated prime $P_F := +\langle x_{i} : \text{ $x_{i} \notin F$} \rangle$, that is $(I : +x^{\alpha}) = P_F$, set $w_2 = \prod_{x_i \in \supp(w_1) \cap F^c} +x_i^{\alpha_{i}}$. It follows that $(w_2, F)$ is a standard pair of +$I$. Now, consider the standard pairs of the slightly larger ideal $I ++ \langle w_1 \rangle$. Clearly $(w_2, F)$ is not a standard pair of +this ideal because $w_1$ ``destroys'' it. This larger ideal might +have standard pairs which cover standard monomials in $(w_2, F)$ that +are not in the pair $(w_1, F)$. However, all other standard pairs are +the same as the original ideal $I$. Thus, the problem of finding all +standard pairs of $I$ reduces to determining if a standard pair of $I ++ \langle w_1 \rangle$ is a standard pair for $I$. To decide if a +pair $(x^{\beta}, G)$ of $I + \langle w_1 \rangle$ is a standard pair +of $I$, we first check that $P_{F}$ is an associated prime of $I$. If +this is true, we determine if $(w_{2},F)$ is covered by +$(x^{\beta},G)$. + +The \Mtwo version of this algorithm takes the following form: +<< ( + S := ring I; + X := gens S; + std := {}; + J := I; + while J != S do ( + w1 := 1_S; + F := X; + K := J; + while K != 0 do ( + g1 := (ideal mingens ideal K)_0; + x := first supp g1; + w1 = w1 * g1 // x; + F = delete(x, F); + K = K : monomialIdeal(g1 // x); + L := select(first entries gens K, + r -> not member(x, supp r)); + if #L > 0 then K = monomialIdeal L + else K = monomialIdeal 0_S;); + w2 := w1; + scan(X, r -> if not member(r, supp w1) or member(r, F) + then w2 = substitute(w2, {r => 1})); + P := monomialIdeal select(X, r -> not member(r, F)); + if (I:(I:P) == P) and (all(std, p -> + (w2 % (first p) != 0) or not + isSubset(supp(w2 // first p) | F, last p))) + then std = std | {{w2, F}}; + J = J + monomialIdeal(w1);); + std);>>> +We can compute the standard pairs of Example~\ref{std-ex} using this +\Mtwo function: +<<>> +<<>> +<< << endl << P << endl);>>> + +Our second algorithm is taken from section~3.2 of Saito, Sturmfels and +Takayama~\cite{MR1734566}. The proposition below provides the main +ingredient for this algorithm. If $I$ is a monomial ideal and $F +\subseteq \{ x_{1},\dotsc, x_{n} \}$, we write $I_F$ for the monomial +ideal in $\bbbq[x_i : \text{ $x_{i} \notin F$}]$ obtained by replacing +each $x_{i} \in F$ with $1$ in every minimal generator of $I$. + +\begin{proposition} +For $(x^{\alpha}, F)$ to be a standard pair of $I$, it is necessary +and sufficient that $(x^{\alpha}, \emptyset)$ be a standard pair of +$I_F$. +\end{proposition} + +\begin{proof} +Lemma 3.1 in Sturmfels, Trung and Vogel \cite{MR96i:13029}. +\end{proof} + +The definition of a standard pair\index{standard pair} implies that +$(x^{\alpha}, \emptyset)$ is a standard pair of $I_F$ if and only if +$x^{\alpha}$ is one of the finitely many monomials contained in $(I_F +: P_F^\infty)$ but not contained in $I_F$, where $P_F = \langle x_i: +x_i \notin F \rangle$. Since ideal quotients and saturations are +implemented in \Mtwo, this reduces the problem to finding a set $D$ +which contains $F$ for every associated prime $P_{F}$ of $I$. One +approach is to simply compute the associated primes of $I$ from a +primary decomposition. + +The method {\tt standardPairs}\indexcmd{standardPairs} uses this algorithm to determine the +set of standard pairs for a monomial ideal. +<<>> +<<>> +<<>> +<<>> +<<>> +<<>> +<<>> +<<>> +<<>> +<<>> + +%%---------------------------------------------------------- +\section{Generic Initial Ideals} + +Gr\"{o}bner basis calculations and initial ideals depend heavily on +the given coordinate system. By making a generic change of coordinates +before taking the initial ideal, we may eliminate this dependence. +This procedure also endows the resulting monomial ideal with a rich +combinatorial structure. + +To describe this structure, we introduce the following definitions and +notation. Let $S = \bbbq[x_{0}, \dotsc, x_{n}]$. If $\sg = [g_{i,j}] +\in \GL_{n+1}(\bbbq)$ and $f \in S$, then $\sg \cdot f$ denotes the +standard action of the general linear group on $S$: $x_{i} \mapsto +\sum_{j=0}^{n} g_{i,j} x_{j}$. For an ideal $I \subseteq S$, we +define $\sg \cdot I = \{ \sg \cdot f | f \in I \}$. Let $B$ denote +the Borel subgroup of $\GL_{n+1}(\bbbq)$ consisting of upper +triangular matrices. A monomial ideal $I$ is called +{\em Borel-fixed}\index{Borel-fixed}\index{ideal!Borel-fixed} if it +satisfies any of the following equivalent conditions: +\begin{enumerate} +\item[$(a)$] $\sg \cdot I = I$ for every $\sg \in B$; +\item[$(b)$] if $r$ is a generator of $I$ divisible by $x_{j}$ then +$\frac{rx_{i}}{x_{j}} \in I$ for all $i < j$; +\item[$(c)$] $\initial(\sg \cdot I) = I$ for every $\sg$ is some open +neighborhood of the identity in $B$. +\end{enumerate} +For a proof that these conditions are equivalent, see Propositon~1.25 +in Green~\cite{MR99m:13040}. + +In \Mtwo, the function {\tt isBorel}\indexcmd{isBorel} tests whether a monomial ideal is +Borel-fixed. +<<>> +<<>> +<<>> +The function {\tt borel}\indexcmd{borel} generates the smallest Borel-fixed ideal +containing the given monomial ideal. +<<>> +<<>> + +The next theorem provides the main source of Borel-fixed ideals. +\begin{theorem}[Galligo] \label{galligo} +Fix a term order on $S = \bbbq[x_{0}, \dotsc, x_{n}]$ such that $x_{0} +> \dotsc > x_{n}$. If $I$ is a homogeneous ideal in $S$, then there +is a Zariski open subset $U \subseteq \GL_{n+1}(\bbbq)$ such that +\begin{enumerate} +\item[$(1)$] there is a monomial ideal $J \subseteq S$ such that $J = +\initial(\sg \cdot I )$ for all $\sg \in U$; +\item[$(2)$] the ideal $J$ is Borel-fixed. +\end{enumerate} +The ideal $J$ is called the generic initial ideal\index{generic +initial ideal}\index{ideal!generic initial} of $I$. +\end{theorem} + +\begin{proof} +See Theorem~1.27 in Green~\cite{MR99m:13040}. \qed +\end{proof} + +The following method allows one to compute generic initial ideals. +<<>> +<< ( + S := ring I; + StoS := map(S, S, random(S^{0}, S^{numgens S:-1})); + monomialIdeal StoS I);>>> +<< gin ideal I;>>> +This routine assumes that the random function generates a matrix in +the Zariski open subset $U$. Since we are working over a field of +characteristic zero this occurs with probability one. +For example, we can determine the generic initial ideal of two generic +homogeneous polynomials of degree $p$ and $q$ in $\bbbq[a,b,c,d]$. +<< ideal(random(p,S), random(q,S));>>> +<<>> +<<>> +Although the generic initial ideal is Borel-fixed, some non-generic +initial ideals may also be Borel-Fixed. +<<>> +<<>> +<<>> +<<>> +Finally, we show that the generic initial ideal does depend on the +term order by computing lexicographic generic initial ideal for two +generic forms of degree $p$ and $q$ in $\bbbq[a,b,c,d]$ +<< Lex];>>> +<<>> +<<>> +A more comprehensive treatment of generic initial ideals can be found +in Green~\cite{MR99m:13040}. The properties of Borel-fixed ideals in +characteristic $p>0$ are discussed in Eisenbud~\cite{MR97a:13001}. + + +%%---------------------------------------------------------- +\subsection*{Example: Connectedness of the Hilbert Scheme} + +Generic initial ideals are a powerful tool for studying the structure +of the Hilbert scheme\index{Hilbert scheme}. Intuitively, the Hilbert +scheme $\Hilb^{\, p(t)}(\bbbp^{n})$ parameterizes subschemes $X +\subseteq \bbbp^{n}$ with Hilbert polynomial $p(t)$. For an +introduction to Hilbert schemes see Harris and +Morrison~\cite{MR99g:14031}. The construction of the Hilbert scheme $\Hilb^{\, +p(t)}(\bbbp^{n})$ can be found in Grothendieck's original +article~\cite{MR26:3566} or Altman and Kleiman~\cite{MR81f:14025a}. +While much is known about specific Hilbert schemes, the general +structure remain largely a mystery. In particular, the component +structure --- the number of irreducible components, their dimensions, +how they intersect and what subschemes they parameterize --- is not +well understood. + +Reeves~\cite{MR97g:14003} uses generic initial ideals to establish the +most important theorem to date on the component structure. The +incidence graph\index{Hilbert scheme!incidence graph} of $\Hilb^{\, +p(t)}(\bbbp^{n})$ is defined as follows: to each irreducible component +we assign a vertex and we connect two vertices if the corresponding +components intersect. Reeves~\cite{MR97g:14003} proves that the +distance (the number of edges in the shortest path) between any two +vertices in the incidence graph of $\Hilb^{\, p(t)}(\bbbp^{n})$ is at +most $2 \deg p(t)+2$. Her proof can be divided into three major +steps. + +{\em Step I: connect an arbitrary ideal to a Borel-fixed ideal.} +Passing to an initial ideal corresponds to taking the limit in a flat +family, in other words a path on the Hilbert scheme; see Theorem 15.17 +in Eisenbud~\cite{MR97a:13001}. Thus, Theorem~\ref{galligo} shows +that generic initial ideals\index{generic initial +ideal}\index{ideal!generic initial} connect arbitrary +ideals to Borel-fixed ideals. + +{\em Step II: connect Borel-fixed ideals by projection.} For a +homogeneous ideal $I \subseteq S = \bbbq[x_{0}, \dotsc, x_{n}]$, let +$\pi(I)$ denote the ideal obtained by setting $x_{n}=1$ and +$x_{n-1}=1$ in $I$. With this notation, we have + +\begin{theorem} +If $J$ is a Borel-fixed ideal, then the set of Borel-fixed ideals $I$, +with Hilbert polynomial $p(t)$ and $\pi(I) = J$, consists of ideals +defining subschemes of $\bbbp^{n}$ which all lie on a single component +of $\Hilb^{\, p(t)}(\bbbp^{n})$. +\end{theorem} + +\begin{proof} +See Theorem~6 in Reeves~\cite{MR97g:14003}. \qed +\end{proof} + +\noindent This gives an easy method for partitioning Borel-fixed +ideals into classes, each of which must lie in a single component. + +{\em Step III: connect Borel-fixed ideals by distraction.} Given a +Borel-fixed ideal, we produce a new ideal via a two-step process +called distraction\index{distraction}. First, one polarizes the +Borel-fixed ideal. The polarization\index{polarization} of a monomial +ideal $I \subset S$ is defined as: +\[ +\left\langle \prod_{i=0}^{n}\prod_{j=1}^{\alpha_{i}} z_{i,j} : \text{ +where $x_{0}^{\alpha_{0}}\dotsb x_{n}^{\alpha_{n}}$ is a minimal +generator of $I$} \right\rangle \, . +\] +One then pulls the result back to an ideal in the original variables +by taking a linear section of the polarization. Theorem~4.10 in +Hartshorne~\cite{MR35:4232} shows that the distraction is connected to +the original Borel-fixed ideal. Now, taking the lexicographic generic +initial ideal of the distraction yields a second Borel-fixed ideal. +Reeves~\cite{MR97g:14003} proves that repeating this process, at most +$\deg p(t) + 1$ times, one arrives at a distinguished component of +$\Hilb^{\, p(t)}(\bbbp^{n})$ called the lexicographic component. For +more information on the lexicographic component see Reeves and +Stillman~\cite{MR98m:14003}. + +We can implement these operations in \Mtwo as follows: +<< ( + S := ring I; + n := numgens S; + X := gens S; + monomialIdeal mingens substitute(ideal I, + {X#(n-2) => 1, X#(n-1) => 1}));>>> +<< ( + n := numgens ring I; + u := apply(numgens I, i -> first exponents I_i); + I.lcm = max \ transpose u; + Z := flatten apply(n, i -> apply(I.lcm#i, j -> z_{i,j})); + R := QQ(monoid[Z]); + Z = gens R; + p := apply(n, i -> sum((I.lcm)_{0..i-1})); + monomialIdeal apply(u, e -> product apply(n, i -> + product(toList(0..e#i-1), j -> Z#(p#i+j)))));>>> +<< ( + S := ring I; + n := numgens S; + X := gens S; + J := polarization I; + W := flatten apply(n, i -> flatten apply(I.lcm#i, + j -> X#i)); + section := map(S, ring J, apply(W, r -> r - + random(500)*X#(n-2) - random(500)*X#(n-1))); + section ideal J);>>> +For example, we have +<< GLex];>>> +<<>> +<<>> +<<>> +<<>> + +To illustrate Reeves' method, we show that the incidence graph of the +Hilbert scheme $\Hilb^{4t+1}(\bbbp^{4})$ has diameter at most $2$. +Note that the rational quartic curve\index{rational quartic curve} in +$\bbbp^{4}$ has Hilbert polynomial $4t+1$. +<< (gens S)#(i+j))>>> +<<>> +<<>> +<< false)>>> +There are $12$ Borel-fixed ideals with Hilbert polynomial $4t+1$; see +Example~1 in Reeves~\cite{MR97g:14003}. +<<>> +<< << endl << i+1 << " : " << L#i << endl);>>> +<< isBorel I and hilbertPolynomial(S/I) == H)>>> +The projection operation partitions the list {\tt L} into $3$ classes: +<<>> +<<>> +<<>> +<< projection L#i == class2)>>> +<< projection L#i == class3)>>> +Finally, we use the distraction to connect the classes. +<< I == monomialIdeal distraction I)>>> +<< projection gin distraction L#i == class3)>>> +Therefore, the components corresponding to {\tt class1} and {\tt +class2} intersect the one corresponding to {\tt class3}. Note that +{\tt class3} corresponds to the lexicographic component. + +%%---------------------------------------------------------- +\section{The Chain Property} + + +Ho\c{s}ten and Thomas~\cite{MR2000b:13037} recently established that +the initial ideals of a toric ideal have an interesting combinatorial +structure called the chain property. This structure is on the poset +of associated primes where the partial order is given by inclusion. +Since a monomial ideal $I \subset S = \bbbq[x_{1}, \dotsc, x_{n}]$ is +prime if and only if it is generated by a subset of the variables $\{ +x_{1}, \dotsc, x_{n}\}$, the poset of associated primes of $I$ is +contained in the power set of the variables. We say that a monomial +ideal $I$ has the chain property\index{chain property} if the +following condition holds: +\[ +\text{\begin{minipage}[t]{300pt} +For any embedded prime $P_{F} = \langle x_{i} : x_{i} \not\in F +\rangle$ of $I$, there exists an associated prime $P_{G} \subset +P_{F}$ such that $|G| = |F|-1$. +\end{minipage}} +\] +In other words, there is a saturated chain from every embedded prime +to some minimal prime. +Experimental evidence suggests that, in fact, most initial ideals +of prime ideals satisfy this saturated chain condition. +Because +of ubiquity and simplicity of this condition, we are interested in +understanding which classes of initial ideals (or more generally +monomial ideals) have the chain property. + +More recently, Miller, Sturmfels and Yanagawa~\cite{MR1769661} +provided a large class of monomial ideals with the chain property. A +monomial ideal $I$ is called generic\index{generic monomial ideal} +when the following condition holds: if two distinct minimal generators +$r_{1}$ and $r_{2}$ of $I$ have the same positive degree in some +variable $x_{i}$, there is a third generator $r_{3}$ which strictly +divides the least common multiple of $r_{1}$ and $r_{2}$. In +particular, if no two distinct minimal generators have the same +positive degree in any variable, then the monomial ideal is generic. +Theorem~2.2 in Miller, Sturmfels and Yanagawa~\cite{MR1769661} shows +that generic monomial ideals have the chain property. + + +%%---------------------------------------------------------- +\subsection*{Examples and Counterexamples} + + +In this final section, we illustrate how to use \Mtwo for further +experimentation and investigation of the chain property. The +following function determines whether a monomial ideal has the chain +property: +<< ( + L := ass I; + radI := radical I; + all(L, P -> radI : (radI : P) == P or ( + gensP := first entries gens P; + all(gensP, r -> ( + Q := monomialIdeal delete(r, gensP); + I : (I : Q) == Q)))));>>> +Using {\tt hasChainProperty}, we examine the initial ideals of four +interesting classes of ideals related to toric ideals. + +\subsubsection*{An Initial Ideal of a Toric Ideal} As mentioned above, Ho\c{s}ten +and Thomas proved that any initial ideal of a toric ideal satisfies +the saturated chain condition. The following example demonstrates this +phenomenon. Consider the matrix $A$: +<<>> +<<>> +<<>> +<<>> + +\subsubsection*{An Initial Ideal of a Prime Ideal} Since toric ideals are +prime, one naturally asks if the initial ideal of any prime ideal has +the chain property. By modifying the previous example, we can show +that this is not the case. In particular, making the linear change of +coordinates by $x_{4} \mapsto x_{3}-x_{4}$, we obtain a new prime +ideal $J$. +<<>> +<<>> +Taking the initial ideal with respect to the reverse lexicographic +term order (the default order), we have +<<>> +<<>> + +\subsubsection*{An $A$-graded Monomial Ideal} Let $A$ be a $d \times n$ matrix +of nonnegative integers and let $\mathbf{a}_{i}$ denote the $i$-th +column of $A$. Consider the polynomial ring $S = \bbbq[x_{1}, \dotsc, +x_{n}]$ with the $\bbbz^{d}$-grading defined by $\deg x_{i} = +\mathbf{a}_{i}$. An ideal $I \subset \bbbq[x_{1}, \dotsc, x_{n}]$ is +called $A$-graded\index{ideal!$A$-graded} provided it is homogeneous with +respect to the $A$-grading and +\[ +\dim_{\bbbq} \left( \frac{S}{I} \right)_{\mathbf{b}} = \begin{cases} 1 +& \text{if $\mathbf{b} \in \bbbn A$} \\ 0 & \text{otherwise} +\end{cases} +\] +for all $\mathbf{b} \in \bbbn^{d}$. Remark~10.1 in +Sturmfels~\cite{MR97b:13034} shows that the initial ideal of the toric +ideal $I_{A}$ is $A$-graded. Altmann~\cite{Altmann} shows that when +$A$ has rank $2$ every $A$-graded monomial ideal has the chain +property. However, Altmann~\cite{Altmann} also provides a +counterexample when $A$ has rank $3$. We can verify his example in +\Mtwo as follows: +<<>> +In \Mtwo, the first entry in degree vector of each variable must be +positive. Hence, we append to A the sum of its rows to get a matrix whose +columns will serve as the degrees of the variables. +<<>> +<<>> +<< D, MonomialSize => 16];>>> +<<>> +To help convince you that $I$ is an $A$-graded ideal, we compute the +$\dim_{\bbbq} \left( \frac{S}{I} \right)_{\mathbf{a}_{i}}$ for $1 \leq +i \leq 16$. +<< rank source basis(d, (S^1)/ ideal I))>>> +Finally, we check the chain property. +<<>> + +\subsubsection*{The Vertex Ideal} Lastly, we consider a different family of +monomials ideals arising from toric ideals. The vertex +ideal\index{vertex ideal} $V_{A}$ is defined as intersection all the +monomial initial ideals of the toric ideal $I_{A}$. Although there +are (in general) infinitely many distinct term orders on a polynomial +ring, an ideal has only finitely many initial ideals; see Theorem~1.2 +in Sturmfels~\cite{MR97b:13034}. In particular, the above +intersection is finite. Vertex ideals were introduced and studied by +Ho{\c{s}}ten and Maclagan~\cite{Hosten-Maclagan}. However, the +question ``Does the vertex ideal $V_A$ have the chain property?'' +remains open. + + + +% Local Variables: +% mode: latex +% mode: reftex +% tex-main-file: "chapter-wrapper.tex" +% reftex-keep-temporary-buffers: t +% reftex-use-external-file-finders: t +% reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) +% End: diff --git a/Book/ComputationsBook/chapters/monomialIdeals/ggsmith.msg b/Book/ComputationsBook/chapters/monomialIdeals/ggsmith.msg new file mode 100644 index 0000000..1b5c3dc --- /dev/null +++ b/Book/ComputationsBook/chapters/monomialIdeals/ggsmith.msg @@ -0,0 +1,242 @@ +Date: Fri, 26 Jan 2001 13:33:29 -0800 (PST) +From: Greg Smith +To: +cc: Dan Grayson , Serkan Hosten +Subject: Changes to monomial ideals. +In-Reply-To: <20010126210545.2479.qmail@rhenium.home> + + This message is in MIME format. The first part should be readable text, + while the remaining parts are likely unreadable without MIME-aware tools. + Send mail to mime@docserver.cac.washington.edu for more info. + +---559023410-851401618-980544809=:23853 +Content-Type: TEXT/PLAIN; charset=US-ASCII + + +Here is the list of changes for the monomial ideals +chapter. Note that the diff -u command doesn't +work here so the line number below are approximate. +I've also attached the new chapter.tex file. + +Cheers, + Greg. + + +@@ line 11 +- \newtheorem*{sproof}{Proof of +- Proposition~\ref{pro:complexity}}{\itshape}{\rmfamily} ++ \newtheorem*{sproof}{Proof of Proposition}{\itshape}{\rmfamily} + +@@ line 52 +- ideals in \Mtwo and demonstrate a wide range of applications. ++ ideals in \Mtwo and demonstrate a range of applications. + +@@ line 56-57 +- Algorithms are presented as \Mtwo functions. We demonstrate these +- techniques by solving problems from different areas of mathematics. ++ Algorithms are presented as \Mtwo functions. We illustrate these ++ methods by solving problems from various areas of mathematics. + +@@ line 60 +- functions on monomial ideals in \Mtwo. To illustrate these functions, ++ functions on monomial ideals in \Mtwo. To demonstrate these functions, + +@@ line 90 +- <<>> ++ <<>> + +@@ line 92 +- There are also several different methods of associating a monomial ++ There are also several methods of associating a monomial + +@@ line 99 +- <<>> ++ <<>> + +@@ line 150 +- To prove this theorem, we work with the fine grading and then ++ Following Stanley~\cite{MR98h:05001}, we work with the fine ++ grading and then + +@@ line 183-188 +- h := apply(reverse toList(0..d), i -> +- if first exponents leadMonomial N === i then ( +- c := leadCoefficient N; +- N = N - leadTerm N; +- c) +- else 0); ++ h := apply(reverse toList(0..d), i -> N_(t^i)); + +@@ line 122 +- heavily of these methods from commutative algebra. ++ heavily on these methods from commutative algebra. + +@@ line 246-247 +- ideal $I$ is called primary\index{ideal!primary} if $r_{1}r_{2} \in I$ +- implies either $r_{1} \in I$ or $r_{2}^{\ell} \in I$ for some $\ell > ++ ideal $J$ is called primary\index{ideal!primary} if $r_{1}r_{2} \in J$ ++ implies either $r_{1} \in J$ or $r_{2}^{\ell} \in J$ for some $\ell > + +@@ line 318 +- definition appears in Miller \cite{M}. If $I \subseteq \bbbq[x_{1}, ++ definition appears in Miller~\cite{M},~\cite{MR1779598}. If ++ $I \subseteq \bbbq[x_{1}, + +@@ line 325-326 +- x_{1}^{\beta_{1}}, \dotsc, x_{n}^{\beta_{n}}\rangle$ is an +- irredundant} \\ \text{irreducible component of $I$} \end{tabular} ++ x_{i}^{\beta_{i}} : \beta_{i} \geq 1\rangle$ is an ++ irredundant} \\ \text{irreducible component of $I$} \end{tabular} + +@@ line 396 +- $\langle x_{i} : x_{i} \not\in F^{c} \rangle$. ++ $\langle x_{i} : x_{i} \not\in F^{c} \rangle = ++ \langle x_{i} : x_{i} \in F \rangle$. + +@@ line 486 +- <<>> ++ <<>> + +@@ line 518 +- $(0,1,1)$, and $(vi)$ the monomial $y^{2}z^{2}$. ++ $(0,2,1)$, and $(vi)$ the monomial $y^{2}z^{2}$. + +@@ line 538 +- (1, \{x,y\}), (1, \{x,z\}), (y,\{x,z\}), (z, \{y\}), (yz, \{x\}), ++ (1, \{x,y\}), (1, \{x,z\}), (y,\{x,z\}), (z, \{y\}), (y^{2}z, \{x\}), + +@@ line 571-572 +- The \Mtwo version of this algorithms takes the following form: +- << select(gens ring r, e -> r % e == 0);>>> ++ The \Mtwo version of this algorithm takes the following form: + +@@ line 605 +- << << endl << P << endl);>>> ++ << << endl << P << endl);>>> + +@@ line 637 ++ <<>> +Lists can be nested. +<<>> +The number of entries in a list is provided by {\tt \#}. +<<<#xx>>> +The entries in a list are numbered starting with 0, and can be recovered with +{\tt \#} used as a binary operator. +<<>> +<<>> +We can join visible lists and {\sl append} or {\sl prepend} an element to a visible +list. The output will be the same type of visible list that was provided in +the input: a list, a sequence, or an array; if the arguments are various +types of lists, the output will be same type as the first argument. +<<>>\index{lists!joining}\indexcmd{join}% +<<>>\index{lists!appending}\indexcmd{append}% +<<>>\index{lists!prepending}\indexcmd{prepend}% +Use {\tt sum} or {\tt product} to produce the sum or product of all the +elements in a list. +<<>>\indexcmd{sum}% +<<>>\indexcmd{product}% + + +\section{Control Structures} + +Commands for later execution are encapsulated in {\sl \ie{functions}}. A function +is created using the operator {\tt -\char`\>}\indexcmd{->} to separate the parameter or +sequence of parameters from the code to be executed later. Let's try an +elementary example of a function with two arguments. +<< 1000 * x + y>>> +The parameters {\tt x} and {\tt y} are symbols that will acquire a +value later when the function is executed. They are {\sl local}\index{variables!local} in the sense that +they are completely different from any symbols with the same name that occur +elsewhere. Additional local variables for use within the body of a function +can be created by assigning a value to them with {\tt \char`\:\char`\=} +\indexcmd{:=} +(first time only). We illustrate this by rewriting the function above. +<< (z := 1000 * x; z + y)>>> +Let's apply the function to some arguments. +<<>> +The sequence of arguments can be assembled first, and then passed to the +function. +<<>> +<<>> +As above, functions receiving one argument may be called without parentheses. +<<>> +A compact notation for functions makes it convenient to apply them +without naming them first. For example, we may use \indexcmd{apply}{\tt apply} to apply a +function to every element of a list and to collect the results into a list. +<< i^3)>>> +The function \indexcmd{scan}{\tt scan} will do the same thing, but discard the results. +<<>> +Use \indexcmd{if}{\tt if ... then ... else ...} to perform alternative actions +based on the truth of a condition. +<< if even i then 1000*i else i)>>> +A function can be terminated prematurely with \indexcmd{return}{\tt return}. +<< (if even i then return 1000*i; -i))>>> +Loops in a program can be implemented with \indexcmd{while}{\tt while ... do ...}. +<<>> +Another way to implement loops is with \indexcmd{for}{\tt for} and +\indexcmd{do}{\tt do} or {\tt list}, with optional +clauses introduced by the keywords {\tt from}, {\tt to}, and {\tt when}. +<<>> +<<>> +A loop can be terminated prematurely with \indexcmd{break}{\tt break}, which accepts an +optional value to return as the value of the loop expression. +<<>> +If no value needs to be returned, the condition for continuing can be +provided with the keyword {\tt when}; iteration continues only as long as the +predicate following the keyword returns {\tt true}. +<<>> + + +% if then else, while do, for, break, return, + +\section{Input and Output} + +The function \indexcmd{print}{\tt print} can be used to display something on the screen. +<<>> +For example, it could be used to display the elements of a list on separate +lines. +<<<(1 .. 5) / print;>>> +The operator {\tt <<} can be used to display something on the +screen, without the newline character. +<<<<< 2^100>>> +Notice the value returned is a {\em file}\index{files}. A {\em file} in \Mtwo is a data type that +represents a channel through which data can be passed, as input, as +output, or in both directions. The file \indexcmd{stdio}{\tt stdio} encountered above +corresponds to your shell window or terminal, and is used for two-way +communication between the program and the user. A file may correspond +to what one usually calls a file, i.e., a sequence of data bytes associated +with a given name and stored on +your disk drive. A file may also correspond to a {\em socket}, a +channel for communication with other programs over the network. + +Files can be used with the binary form +of the operator {\tt \char`\<\char`\<} to display something else on the same +line. +<<<<< "the value is : " << 2^100>>> +Using \indexcmd{endl}{\tt endl} to represent the new line character or character sequence, we can +produce multiple lines of output. +<<<<< "A = " << 2^100 << endl << "B = " << 2^200 << endl;>>> +We can send the same output to a disk file named {\tt foo}, but we must remember to +close it with {\tt close}. +<<<"foo" << "A = " << 2^100 << endl << close>>> +The contents of the file can be recovered as a string with \indexcmd{get}{\tt get}. +<<>> +If the file contains valid \Mtwo commands, as it does in this case, we can +execute those commands with \indexcmd{load}{\tt load}. +<<>> +We can verify that the command took effect by evaluating {\tt A}. +<<>> +Alternatively, if we want to see those commands and the output they produce, +we may use \indexcmd{input}{\tt input}. +<<>> +Let's set up a ring for computation in \Mtwo. +<<>>\index{ring!making one}% +<<>> +Printing, and printing to files, works for polynomials, +too.\index{printing!to a file}% +<<<"foo" << f << close;>>> +The two-dimensional output is readable by humans, but is not easy to convert +back into a polynomial. +<<>> +Use \indexcmd{toString}{\tt toString} to create a 1-dimensional form of the polynomial +that can be stored in a file in a format readable by \Mtwo and by other +symbolic algebra programs, such as {\em Mathematica} or {\em Maple}. +<<>> +Send it to the file. +<<<"foo" << toString f << close;>>> +Get it back. +<<>> +Convert the string back to a polynomial with \indexcmd{value}{\tt value}, using \indexcmd{oo}{\tt oo} to +recover the value of the expression on the previous line. +<<>> +The same thing works for matrices, and a little more detail is provided by +\indexcmd{toExternalString}{\tt toExternalString}, if needed. +<<>> +<<>> +<<>> + +\section{Hash Tables} + +Recall how one sets up a quotient ring for computation in \Mtwo. +<<>> +<<<(x+y)^4>>> +How does \Mtwo represent a ring like $R$ in the computer? To answer that, +first think about what sort of information needs to be retained about $R$. +We may need to remember the coefficient ring of $R$, the names of the +variables in $R$, the monoid of monomials in the variables, the degrees of +the variables, the characteristic of the ring, whether the ring is +commutative, the ideal modulo which we are working, and so on. We also may +need to remember various bits of code: the code for performing the basic +arithmetic operations, such as addition and multiplication, on elements of +$R$; the code for preparing a readable representation of an element of $R$, +either 2-dimensional (with superscripts above the line and subscripts below), +or 1-dimensional. Finally, we may want to remember certain things that take +a lot of time to compute, such as the Gr\"obner basis of the ideal. + +A {\sl \ie{hash table}} is, by definition, a way of representing (in the computer) +a function whose domain is a finite set. In \Mtwo, hash tables are extremely +flexible: the elements of the domain (or {\sl keys\index{keys of a hash table}}) and the elements of the +range (or {\sl values\index{values of a hash table}}) of the function may be any of the other objects +represented in the computer. It's easy to come up with uses for functions +whose domain is finite: for example, a monomial can be represented by the +function that associates to a variable its nonzero exponent; a polynomial can +be represented by a function that associates to a monomial its nonzero +coefficient; a set can be represented by any function with that set as its +domain; a (sparse) matrix can be represented as a function from pairs of +natural numbers to the corresponding nonzero entry. + +Let's create a hash table and name it. +<<444, Daniel=>555, {c,d}=>{1,2,3,4}}>>> +The operator \indexcmd{=>}{\tt \char`\=\char`\>} is used to represent a key-value pair. +We can use the operator \indexcmd{\#}{\tt \#} to recover the value from the key. +<<>> +<<>> +If the key is a symbol, we can use the operator \indexcmd{.}{\tt .} instead; this is +convenient if the symbol has a value that we want to ignore. +<<>> +<<>> +We can use \indexcmd{\#?}{\tt \#?} to test whether a given key occurs in the hash table. +<<>> +<<>> +Finite sets are implemented in \Mtwo as hash tables: the elements of the set +are stored as the keys in the hash table, with the accompanying values all +being $1$. (Multisets are implemented by using values larger than $1$, and +are called {\sl tallies}.) +<<>>\indexcmd{set}% +<<>> +<<>> +<<>> +<<>> +We might use \indexcmd{tally}{\tt tally} to tally how often a function attains its various +possible values. For example, how often does an integer have 3 prime +factors? Or 4? Use \indexcmd{factor}{\tt factor} to factor an integer. +<<>> +Then use {\tt \#} to get the number of factors. +<<<# factor 60>>> +Use {\tt apply} to list some values of the function. +<< # factor i)>>> +Finally, use {\tt tally} to summarize the results. +<<>> + +Hash tables turn out to be convenient entities for storing odd bits and +pieces of information about something in a way that's easy to think about and +use. +In \Mtwo, rings are represented as hash tables, as are ideals, matrices, +modules, chain complexes, and so on. For example, although it isn't a +documented feature, the key {\tt ideal} is used to preserve the ideal that +was used above to define the quotient ring {\tt R}, as part of the +information stored in {\tt R}. +<<>> +The preferred and documented way for a user to recover this information is +with the function \indexcmd{ideal}{\tt ideal}. +<<>> +Users who want to introduce a new high-level mathematical +concept to \Mtwo may learn about hash tables by referring to the \Mtwo manual +\cite{M2}. + +\section{Methods} + +You may use the \texttt{code}\indexcmd{code} command to locate the source code for a given +function, at least if it is one of those functions written in the \Mtwo +language. For example, here is the code for {\tt demark}, which may be used +to put commas between strings in a list. +<<>> +The code for tensoring a ring map with a module can be displayed in this way. +<<>>\indexcmd{symbol} +The code implementing the {\tt ideal} function when applied to a +quotient ring can be displayed as follows. +<<>> +Notice that it uses the key {\tt ideal} to extract the information from the +ring's hash table, as you might have guessed from the previous discussion. +The bit of code displayed above may be called a {\sl method}\index{method} as +a way of indicating that several methods for dealing with various types of +arguments are attached to the function named {\tt ideal}. New such {\sl + method functions} may be created with the function {\tt method}\indexcmd{method}. Let's +illustrate that with an example: we'll write a function called {\tt denom} +which should produce the denominator of a rational number. When applied to +an integer, it should return 1. First we create the method function. +<<>> +Then we tell it what to do with an argument from the class {\tt QQ} of rational numbers. +<< denominator x;>>> +And also what to do with an argument from the class {\tt ZZ} of integers. +<< 1;>>> +Let's test it. +<<>> +<<>> + +\section{Pointers to the Source Code} + +A substantial part of \Mtwo is written in the same language provided to the +users. A good way to learn more about the \Mtwo language is to peruse the +source code that comes with the system in the directory {\tt Macaulay2/m2}. +Use the {\tt code} function, as described in the previous section, for +locating the bit of code you wish to view. + +The source code for the interpreter of the \Mtwo language is in the directory +{\tt Macaulay2/d}. It is written in another language designed to be mostly +type-safe, which is translated into {\tt C} by the translator whose own +{\tt C} source code is in the directory {\tt Macaulay2/c}. Here is a +sample line of code from the file {\tt Macaulay2/d/tokens.d}, which shows how +the translator provides for allocation and initialization of dynamic data +structures. +\par +\vskip 5 pt +\begingroup +\tteight +\baselineskip=8pt +\lineskip=0pt +\obeyspaces +globalFrame := Frame(dummyFrame,globalScope.seqno,Sequence(nullE));\leavevmode\hss\endgraf +\endgroup +\penalty-1000 +\par +\vskip 1 pt +\noindent +And here is the {\tt C} code produced by the translator. +\par +\vskip 5 pt +\begingroup +\tteight +\baselineskip=\outputBaseLineSkip +\lineskip=0pt +\obeyspaces +\obeylines +tokens\char`\_Frame tokens\char`\_globalFrame; +tokens\char`\_Frame tmp\char`\_\char`\_23; +Sequence tmp\char`\_\char`\_24; +tmp\char`\_\char`\_24 = (Sequence) GC\char`\_MALLOC(sizeof(struct S259\char`\_)+(1-1)*sizeof(Expr)); +if (0 == tmp\char`\_\char`\_24) outofmem(); +tmp\char`\_\char`\_24->len\char`\_ = 1; +tmp\char`\_\char`\_24->array\char`\_[0] = tokens\char`\_nullE; +tmp\char`\_\char`\_23 = (tokens\char`\_Frame) GC\char`\_MALLOC(sizeof(struct S260\char`\_)); +if (0 == tmp\char`\_\char`\_23) outofmem(); +tmp\char`\_\char`\_23->next = tokens\char`\_dummyFrame; +tmp\char`\_\char`\_23->scopenum = tokens\char`\_globalScope->seqno; +tmp\char`\_\char`\_23->values = tmp\char`\_\char`\_24; +tokens\char`\_globalFrame = tmp\char`\_\char`\_23; +\endgroup +\penalty-1000 +\par +\vskip 1 pt + +The core algebraic algorithms constitute the {\sl engine} of \Mtwo and are +written in {\tt C\char`\+\char`\+}, with the source files in the directory +{\tt Macaulay2/e}. In the current version of the program, the interface +between the interpreter and the core algorithms consists of a single +two-directional stream of bytes. The manual that comes with the system +\cite{M2} describes the engine communication protocol used in that +interface. + +%% Mike says we don't need this: + +%% One feature of \Mtwo which should be understood by system administrators, at +%% least of Unix systems, is the {\tt dumpdata} routine. Since so much of the +%% source code is written in the interpreted \Mtwo language, and the task of +%% reading and parsing it can take an appreciable amount of time on slower +%% machines, we perform that task in advance (by the {\tt setup} command) when +%% the program is installed on your system. The results are saved by writing +%% all of the data areas of the memory of the program to disk. When a user runs +%% {\tt M2}, the file containing the saved contents is quickly mapped into +%% memory using the {\tt loaddata} command. The contents of memory depend +%% in a detailed way on the architecture of the computer and the shareable +%% libraries that are installed, so when those things change, the {\tt setup} +%% command may need to be run again. If those things change too often, the +%% system administrator may disable that feature. + + +%% Date: Tue, 21 Nov 2000 11:36:16 +0900 (JST) +%% From: Nobuki Takayama +%% To: dan@math.uiuc.edu +%% CC: mike@polygon.math.cornell.edu, taka@math.kobe-u.ac.jp +%% In-reply-to: <200011161511.JAA18405@orion.math.uiuc.edu> (dan@math.uiuc.edu) +%% Subject: Re: software +%% +%% Dear Dan; +%% I would like to know +%% (1) "hints" to read and understand the M2 source code +%% and +%% (2) what are new ideas in the M2 implementations. +%% The source code contains all ideas in detail, but it is not easy to +%% read and understand it without some hints. +%% +%% I look forward to reading the section and the source code with the help +%% of the section. +%% Nobuki +%% +%% > If you want to add one subsection at the end, it could be something +%% > like "Developers' notes" or "System Issues". The reader I have in mind +%% > +%% > chapter is just the place. If you wish to consider this, then I suggest +%% > that Mike communicate directly with Nobuki about the contents. +%% > +%% >Could you tell us directly whay you have in mind about that? +%% diff --git a/Book/ComputationsBook/chapters/programming/foo b/Book/ComputationsBook/chapters/programming/foo new file mode 100644 index 0000000..8699cc9 --- /dev/null +++ b/Book/ComputationsBook/chapters/programming/foo @@ -0,0 +1 @@ +x^3+3*x^2*y+3*x*y^2+y^3 \ No newline at end of file diff --git a/Book/ComputationsBook/chapters/programming/papers.bib b/Book/ComputationsBook/chapters/programming/papers.bib new file mode 100644 index 0000000..3a28116 --- /dev/null +++ b/Book/ComputationsBook/chapters/programming/papers.bib @@ -0,0 +1,8 @@ + +@Misc{M2, + author = {Grayson, Daniel R. and Stillman, Michael E.}, + title = {\textsl{Macaulay~2}, a software system for research + in algebraic geometry and commutative algebra}, + howpublished = {Available in source code form and compiled for various architectures, + with documentation, at {http://www.math.uiuc.edu/Macaulay2/}} +} diff --git a/Book/ComputationsBook/chapters/sample1/Makefile b/Book/ComputationsBook/chapters/sample1/Makefile new file mode 100644 index 0000000..4e3a65d --- /dev/null +++ b/Book/ComputationsBook/chapters/sample1/Makefile @@ -0,0 +1,3 @@ +all clean diffs log : +distclean : clean +run : diff --git a/Book/ComputationsBook/chapters/sample1/chapter-m2.tex b/Book/ComputationsBook/chapters/sample1/chapter-m2.tex new file mode 100644 index 0000000..647513e --- /dev/null +++ b/Book/ComputationsBook/chapters/sample1/chapter-m2.tex @@ -0,0 +1,406 @@ +\title{Entire and Meromorphic Solutions of Ordinary Differential Equations} +% +\titlerunning{Solutions of Ordinary Differential Equations} +% abbreviated title (for running head) +% +\author{Ivar Ekeland\inst{1} \and Roger +Temam\inst{2} \and +Jeffrey Dean \and David Grove \and Craig Chambers \and Kim~B.~Bruce \and +Elsa Bertino} +% +\authorrunning{Ivar Ekeland et al.} % abbreviated author list (for running head) +% +%%%% modified list of authors for the TOC (add the affiliations) +%\tocauthor{Ivar Ekeland {\rm (Universit\'{e} de Paris-Sud)}, +%Jeffrey Dean, Dave Grove, Craig Chambers {\rm (Universit\`a di Geova)}, +%Kim B. Bruce {\rm(Stanford University)}, +%Elisa Bertino {\rm(Digita Research Center)}} +% +\institute{Princeton University, Princeton NJ 08544, USA +\and +Universit\'{e} de Paris-Sud, +Laboratoire d'Analyse Num\'{e}rique, B\^{a}timent 425,\\ +F-91405 Orsay Cedex, France} + +\maketitle % typeset the title of the contribution +\index{Ekeland, Ivar} +\index{Dean, Jeffrey} +\index{Grove, David} +\index{Chambers, Craig} +\index{Bruce, Kim B.} +\index{Bertino, Elisa} +\begin{abstract} +The abstract should summarize the contents of the paper +using at least 70 and at most 150 words. It will be set in 9-point +font size and be inset 1.0 cm from the right and left margins. +There will be two blank lines before and after the Abstract. \dots +\end{abstract} +% +\section{Fixed-Period Problems: The Sublinear Case} +% +With this chapter, the preliminaries are over, and we begin the search +for periodic solutions to Hamiltonian systems. All this will be done in +the convex case; that is, we shall study the boundary-value problem +\begin{eqnarray*} + \dot{x}&=&JH' (t,x)\\ + x(0) &=& x(T) +\end{eqnarray*} +with $H(t,\cdot)$ a convex function of $x$, going to $+\infty$ when +$\left\|x\right\| \to \infty$. + +% +\subsection{Autonomous Systems} +% +In this section, we will consider the case when the Hamiltonian $H(x)$ +is autonomous. For the sake of simplicity, we shall also assume that it +is $C^{1}$. + +We shall first consider the question of nontriviality, within the +general framework of +$\left(A_{\infty},B_{\infty}\right)$-subquadratic Hamiltonians. In +the second subsection, we shall look into the special case when $H$ is +$\left(0,b_{\infty}\right)$-subquadratic, +and we shall try to derive additional information. +% +\subsubsection{The General Case: Nontriviality.} +% +We assume that $H$ is +$\left(A_{\infty},B_{\infty}\right)$-sub\-qua\-dra\-tic at infinity, +for some constant symmetric matrices $A_{\infty}$ and $B_{\infty}$, +with $B_{\infty}-A_{\infty}$ positive definite. Set: +\begin{eqnarray} +\gamma :&=&{\rm smallest\ eigenvalue\ of}\ \ B_{\infty} - A_{\infty} \\ + \lambda : &=& {\rm largest\ negative\ eigenvalue\ of}\ \ + J \frac{d}{dt} +A_{\infty}\ . +\end{eqnarray} + +Theorem~\ref{ghou:pre} tells us that if $\lambda +\gamma < 0$, the +boundary-value problem: +\begin{equation} +\begin{array}{rcl} + \dot{x}&=&JH' (x)\\ + x(0)&=&x (T) +\end{array} +\end{equation} +has at least one solution +$\overline{x}$, which is found by minimizing the dual +action functional: +\begin{equation} + \psi (u) = \int_{o}^{T} \left[\frac{1}{2} + \left(\Lambda_{o}^{-1} u,u\right) + N^{\ast} (-u)\right] dt +\end{equation} +on the range of $\Lambda$, which is a subspace $R (\Lambda)_{L}^{2}$ +with finite codimension. Here +\begin{equation} + N(x) := H(x) - \frac{1}{2} \left(A_{\infty} x,x\right) +\end{equation} +is a convex function, and +\begin{equation} + N(x) \le \frac{1}{2} + \left(\left(B_{\infty} - A_{\infty}\right) x,x\right) + + c\ \ \ \forall x\ . +\end{equation} + +% +\begin{proposition} +Assume $H'(0)=0$ and $ H(0)=0$. Set: +\begin{equation} + \delta := \liminf_{x\to 0} 2 N (x) \left\|x\right\|^{-2}\ . + \label{eq:one} +\end{equation} + +If $\gamma < - \lambda < \delta$, +the solution $\overline{u}$ is non-zero: +\begin{equation} + \overline{x} (t) \ne 0\ \ \ \forall t\ . +\end{equation} +\end{proposition} +% +\begin{proof} +Condition (\ref{eq:one}) means that, for every +$\delta ' > \delta$, there is some $\varepsilon > 0$ such that +\begin{equation} + \left\|x\right\| \le \varepsilon \Rightarrow N (x) \le + \frac{\delta '}{2} \left\|x\right\|^{2}\ . +\end{equation} + +It is an exercise in convex analysis, into which we shall not go, to +show that this implies that there is an $\eta > 0$ such that +\begin{equation} + f\left\|x\right\| \le \eta + \Rightarrow N^{\ast} (y) \le \frac{1}{2\delta '} + \left\|y\right\|^{2}\ . + \label{eq:two} +\end{equation} + +\begin{figure} +\vspace{2.5cm} +\caption{This is the caption of the %figure displaying a white eagle and +}%a white horse on a snow field} +\end{figure} + +Since $u_{1}$ is a smooth function, we will have +$\left\|hu_{1}\right\|_\infty \le \eta$ +for $h$ small enough, and inequality (\ref{eq:two}) will hold, +yielding thereby: +\begin{equation} + \psi (hu_{1}) \le \frac{h^{2}}{2} + \frac{1}{\lambda} \left\|u_{1} \right\|_{2}^{2} + \frac{h^{2}}{2} + \frac{1}{\delta '} \left\|u_{1}\right\|^{2}\ . +\end{equation} + +If we choose $\delta '$ close enough to $\delta$, the quantity +$\left(\frac{1}{\lambda} + \frac{1}{\delta '}\right)$ +will be negative, and we end up with +\begin{equation} + \psi (hu_{1}) < 0\ \ \ \ \ {\rm for}\ \ h\ne 0\ \ {\rm small}\ . +\end{equation} + +On the other hand, we check directly that $\psi (0) = 0$. This shows +that 0 cannot be a minimizer of $\psi$, not even a local one. +So $\overline{u} \ne 0$ and +$\overline{u} \ne \Lambda_{o}^{-1} (0) = 0$.\qed +\end{proof} +% +\begin{corollary} +Assume $H$ is $C^{2}$ and +$\left(a_{\infty},b_{\infty}\right)$-subquadratic at infinity. Let +$\xi_{1},\allowbreak\dots,\allowbreak\xi_{N}$ be the +equilibria, that is, the solutions of $H' (\xi ) = 0$. +Denote by $\omega_{k}$ +the smallest eigenvalue of $H'' \left(\xi_{k}\right)$, and set: +\begin{equation} + \omega : = {\rm Min\,} \left\{\omega_{1},\dots,\omega_{k}\right\}\ . +\end{equation} +If: +\begin{equation} + \frac{T}{2\pi} b_{\infty} < + - E \left[- \frac{T}{2\pi}a_{\infty}\right] < + \frac{T}{2\pi}\omega + \label{eq:three} +\end{equation} +then minimization of $\psi$ yields a non-constant $T$-periodic solution +$\overline{x}$. +\end{corollary} +% + +We recall once more that by the integer part $E [\alpha ]$ of +$\alpha \in \bbbr$, we mean the $a\in \bbbz$ +such that $a< \alpha \le a+1$. For instance, +if we take $a_{\infty} = 0$, Corollary 2 tells +us that $\overline{x}$ exists and is +non-constant provided that: + +\begin{equation} + \frac{T}{2\pi} b_{\infty} < 1 < \frac{T}{2\pi} +\end{equation} +or +\begin{equation} + T\in \left(\frac{2\pi}{\omega},\frac{2\pi}{b_{\infty}}\right)\ . + \label{eq:four} +\end{equation} + +% +\begin{proof} +The spectrum of $\Lambda$ is $\frac{2\pi}{T} \bbbz +a_{\infty}$. The +largest negative eigenvalue $\lambda$ is given by +$\frac{2\pi}{T}k_{o} +a_{\infty}$, +where +\begin{equation} + \frac{2\pi}{T}k_{o} + a_{\infty} < 0 + \le \frac{2\pi}{T} (k_{o} +1) + a_{\infty}\ . +\end{equation} +Hence: +\begin{equation} + k_{o} = E \left[- \frac{T}{2\pi} a_{\infty}\right] \ . +\end{equation} + +The condition $\gamma < -\lambda < \delta$ now becomes: +\begin{equation} + b_{\infty} - a_{\infty} < + - \frac{2\pi}{T} k_{o} -a_{\infty} < \omega -a_{\infty} +\end{equation} +which is precisely condition (\ref{eq:three}).\qed +\end{proof} +% + +\begin{lemma} +Assume that $H$ is $C^{2}$ on $\bbbr^{2n} \setminus \{ 0\}$ and +that $H'' (x)$ is non-de\-gen\-er\-ate for any $x\ne 0$. Then any local +minimizer $\widetilde{x}$ of $\psi$ has minimal period $T$. +\end{lemma} +% +\begin{proof} +We know that $\widetilde{x}$, or +$\widetilde{x} + \xi$ for some constant $\xi +\in \bbbr^{2n}$, is a $T$-periodic solution of the Hamiltonian system: +\begin{equation} + \dot{x} = JH' (x)\ . +\end{equation} + +There is no loss of generality in taking $\xi = 0$. So +$\psi (x) \ge \psi (\widetilde{x} )$ +for all $\widetilde{x}$ in some neighbourhood of $x$ in +$W^{1,2} \left(\bbbr / T\bbbz ; \bbbr^{2n}\right)$. + +But this index is precisely the index +$i_{T} (\widetilde{x} )$ of the $T$-periodic +solution $\widetilde{x}$ over the interval +$(0,T)$, as defined in Sect.~2.6. So +\begin{equation} + i_{T} (\widetilde{x} ) = 0\ . + \label{eq:five} +\end{equation} + +Now if $\widetilde{x}$ has a lower period, $T/k$ say, +we would have, by Corollary 31: +\begin{equation} + i_{T} (\widetilde{x} ) = + i_{kT/k}(\widetilde{x} ) \ge + ki_{T/k} (\widetilde{x} ) + k-1 \ge k-1 \ge 1\ . +\end{equation} + +This would contradict (\ref{eq:five}), and thus cannot happen.\qed +\end{proof} +% +\paragraph{Notes and Comments.} +The results in this section are a +refined version of \cite{clar:eke}; +the minimality result of Proposition +14 was the first of its kind. + +To understand the nontriviality conditions, such as the one in formula +(\ref{eq:four}), one may think of a one-parameter family +$x_{T}$, $T\in \left(2\pi\omega^{-1}, 2\pi b_{\infty}^{-1}\right)$ +of periodic solutions, $x_{T} (0) = x_{T} (T)$, +with $x_{T}$ going away to infinity when $T\to 2\pi \omega^{-1}$, +which is the period of the linearized system at 0. + +\begin{table} +\caption{This is the example table taken out of {\it The +\TeX{}book,} p.\,246} +\centering +\begin{tabular}{r@{\quad}rl} +\hline +\multicolumn{1}{l}{\rule{0pt}{12pt} + Year}&\multicolumn{2}{l}{World population}\\[2pt] +\hline\rule{0pt}{12pt} +8000 B.C. & 5,000,000& \\ + 50 A.D. & 200,000,000& \\ +1650 A.D. & 500,000,000& \\ +1945 A.D. & 2,300,000,000& \\ +1980 A.D. & 4,400,000,000& \\[2pt] +\hline +\end{tabular} +\end{table} +% +\begin{theorem} [Ghoussoub-Preiss]\label{ghou:pre}\quad\hskip-12pt +Assume $H(t,x)$ is +$(0,\varepsilon )$-subquadratic at +infinity for all $\varepsilon > 0$, and $T$-periodic in $t$ +\begin{equation} + H (t,\cdot )\ \ \ \ \ {\rm is\ convex}\ \ \forall t +\end{equation} +\begin{equation} + H (\cdot ,x)\ \ \ \ \ {\rm is}\ \ T{\rm -periodic}\ \ \forall x +\end{equation} +\begin{equation} + H (t,x)\ge n\left(\left\|x\right\|\right)\ \ \ \ \ + {\rm with}\ \ n (s)s^{-1}\to \infty\ \ {\rm as}\ \ s\to \infty +\end{equation} +\begin{equation} + \forall \varepsilon > 0\ ,\ \ \ \exists c\ :\ + H(t,x) \le \frac{\varepsilon}{2}\left\|x\right\|^{2} + c\ . +\end{equation} + +Assume also that $H$ is $C^{2}$, and $H'' (t,x)$ is positive definite +everywhere. Then there is a sequence $x_{k}$, $k\in \bbbn$, of +$kT$-periodic solutions of the system +\begin{equation} + \dot{x} = JH' (t,x) +\end{equation} +such that, for every $k\in \bbbn$, there is some $p_{o}\in\bbbn$ with: +\begin{equation} + p\ge p_{o}\Rightarrow x_{pk} \ne x_{k}\ . +\end{equation} +\end{theorem} +% +\begin{example} [{{\rm External forcing}}] +Consider the system: +\begin{equation} + \dot{x} = JH' (x) + f(t) +\end{equation} +where the Hamiltonian $H$ is +$\left(0,b_{\infty}\right)$-subquadratic, and the +forcing term is a distribution on the circle: +\begin{equation} + f = \frac{d}{dt} F + f_{o}\ \ \ \ \ + {\rm with}\ \ F\in L^{2} \left(\bbbr / T\bbbz; \bbbr^{2n}\right)\ , +\end{equation} +where $f_{o} : = T^{-1}\int_{o}^{T} f (t) dt$. For instance, +\begin{equation} + f (t) = \sum_{k\in \bbbn} \delta_{k} \xi\ , +\end{equation} +where $\delta_{k}$ is the Dirac mass at $t= k$ and +$\xi \in \bbbr^{2n}$ is a +constant, fits the prescription. This means that the system +$\dot{x} = JH' (x)$ is being excited by a +series of identical shocks at interval $T$. +\end{example} +% +\begin{definition} +Let $A_{\infty} (t)$ and $B_{\infty} (t)$ be symmetric +operators in $\bbbr^{2n}$, depending continuously on +$t\in [0,T]$, such that +$A_{\infty} (t) \le B_{\infty} (t)$ for all $t$. + +A Borelian function +$H: [0,T]\times \bbbr^{2n} \to \bbbr$ +is called +$\left(A_{\infty} ,B_{\infty}\right)$-{\it sub\-qua\-dra\-tic at +in\-fi\-ni\-ty} if there exists a function $N(t,x)$ such that: +\begin{equation} + H (t,x) = \frac{1}{2} \left(A_{\infty} (t) x,x\right) + N(t,x) +\end{equation} +\begin{equation} + \forall t\ ,\ \ \ N(t,x)\ \ \ \ \ + {\rm is\ convex\ with\ respect\ to}\ \ x +\end{equation} +\begin{equation} + N(t,x) \ge n\left(\left\|x\right\|\right)\ \ \ \ \ + {\rm with}\ \ n(s)s^{-1}\to +\infty\ \ {\rm as}\ \ s\to +\infty +\end{equation} +\begin{equation} + \exists c\in \bbbr\ :\ \ \ H (t,x) \le + \frac{1}{2} \left(B_{\infty} (t) x,x\right) + c\ \ \ \forall x\ . +\end{equation} + +If $A_{\infty} (t) = a_{\infty} I$ and +$B_{\infty} (t) = b_{\infty} I$, with +$a_{\infty} \le b_{\infty} \in \bbbr$, +we shall say that $H$ is +$\left(a_{\infty},b_{\infty}\right)$-subquadratic +at infinity. As an example, the function +$\left\|x\right\|^{\alpha}$, with +$1\le \alpha < 2$, is $(0,\varepsilon )$-subquadratic at infinity +for every $\varepsilon > 0$. Similarly, the Hamiltonian +\begin{equation} +H (t,x) = \frac{1}{2} k \left\|k\right\|^{2} +\left\|x\right\|^{\alpha} +\end{equation} +is $(k,k+\varepsilon )$-subquadratic for every $\varepsilon > 0$. +Note that, if $k<0$, it is not convex. +\end{definition} +% +\paragraph{Notes and Comments.} +The first results on subharmonics were +obtained by Rabinowitz in \cite{rab}, who showed the existence of +infinitely many subharmonics both in the subquadratic and superquadratic +case, with suitable growth conditions on $H'$. Again the duality +approach enabled Clarke and Ekeland in \cite{clar:eke:2} to treat the +same problem in the convex-subquadratic case, with growth conditions on +$H$ only. + +Recently, Michalek and Tarantello (see \cite{mich:tar} and \cite{tar}) +have obtained lower bound on the number of subharmonics of period $kT$, +based on symmetry considerations and on pinching estimates, as in +Sect.~5.2 of this article. diff --git a/Book/ComputationsBook/chapters/sample2/Makefile b/Book/ComputationsBook/chapters/sample2/Makefile new file mode 100644 index 0000000..9bbf563 --- /dev/null +++ b/Book/ComputationsBook/chapters/sample2/Makefile @@ -0,0 +1,3 @@ +all clean diffs log: +distclean : clean +run : diff --git a/Book/ComputationsBook/chapters/sample2/chapter-m2.tex b/Book/ComputationsBook/chapters/sample2/chapter-m2.tex new file mode 100644 index 0000000..e92db3c --- /dev/null +++ b/Book/ComputationsBook/chapters/sample2/chapter-m2.tex @@ -0,0 +1,428 @@ +% +% second contribution with nearly identical text, +% slightly changed contribution head (all entries +% appear as defaults), and modified bibliography +% +\title{Spectral Elements for Transport-Dominated Equations} + +\author{Daniele Funaro} + +\institute{Princeton University, Princeton NJ 08544, USA} + +\maketitle +\index{Funaro, Daniele} +% +% Modify the bibliography environment to call for the author-year +% system. This is done normally with the citeauthoryear option +% for a particular contribution. +\makeatletter +\renewenvironment{thebibliography}[1] + {\section*{\refname} + \small + \list{}% + {\settowidth\labelwidth{}% + \leftmargin\parindent + \itemindent=-\parindent + \labelsep=\z@ + \if@openbib + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + \fi + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{}}% + \if@openbib + \renewcommand\newblock{\par}% + \else + \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% + \fi + \sloppy\clubpenalty4000\widowpenalty4000% + \sfcode`\.=\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} + \def\@cite#1{#1}% + \def\@lbibitem[#1]#2{\item[]\if@filesw + {\def\protect##1{\string ##1\space}\immediate + \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} +\makeatother +% +\begin{abstract} +The abstract should summarize the contents of the paper +using at least 70 and at most 150 words. It will be set in 9-point +font size and be inset 1.0 cm from the right and left margins. +There will be two blank lines before and after the Abstract. \dots +\end{abstract} +% +\section{Fixed-Period Problems: The Sublinear Case} +% +With this chapter, the preliminaries are over, and we begin the search +for periodic solutions to Hamiltonian systems. All this will be done in +the convex case; that is, we shall study the boundary-value problem +\begin{eqnarray*} + \dot{x}&=&JH' (t,x)\\ + x(0) &=& x(T) +\end{eqnarray*} +with $H(t,\cdot)$ a convex function of $x$, going to $+\infty$ when +$\left\|x\right\| \to \infty$. + +% +\subsection{Autonomous Systems} +% +In this section, we will consider the case when the Hamiltonian $H(x)$ +is autonomous. For the sake of simplicity, we shall also assume that it +is $C^{1}$. + +We shall first consider the question of nontriviality, within the +general framework of +$\left(A_{\infty},B_{\infty}\right)$-subquadratic Hamiltonians. In +the second subsection, we shall look into the special case when $H$ is +$\left(0,b_{\infty}\right)$-subquadratic, +and we shall try to derive additional information. +% +\subsubsection{The General Case: Nontriviality.} +% +We assume that $H$ is +$\left(A_{\infty},B_{\infty}\right)$-sub\-qua\-dra\-tic at infinity, +for some constant symmetric matrices $A_{\infty}$ and $B_{\infty}$, +with $B_{\infty}-A_{\infty}$ positive definite. Set: +\begin{eqnarray} +\gamma :&=&{\rm smallest\ eigenvalue\ of}\ \ B_{\infty} - A_{\infty} \\ + \lambda : &=& {\rm largest\ negative\ eigenvalue\ of}\ \ + J \frac{d}{dt} +A_{\infty}\ . +\end{eqnarray} + +Theorem 21 tells us that if $\lambda +\gamma < 0$, the boundary-value +problem: +\begin{equation} +\begin{array}{rcl} + \dot{x}&=&JH' (x)\\ + x(0)&=&x (T) +\end{array} +\end{equation} +has at least one solution +$\overline{x}$, which is found by minimizing the dual +action functional: +\begin{equation} + \psi (u) = \int_{o}^{T} \left[\frac{1}{2} + \left(\Lambda_{o}^{-1} u,u\right) + N^{\ast} (-u)\right] dt +\end{equation} +on the range of $\Lambda$, which is a subspace $R (\Lambda)_{L}^{2}$ +with finite codimension. Here +\begin{equation} + N(x) := H(x) - \frac{1}{2} \left(A_{\infty} x,x\right) +\end{equation} +is a convex function, and +\begin{equation} + N(x) \le \frac{1}{2} + \left(\left(B_{\infty} - A_{\infty}\right) x,x\right) + + c\ \ \ \forall x\ . +\end{equation} + +% +\begin{proposition} +Assume $H'(0)=0$ and $ H(0)=0$. Set: +\begin{equation} + \delta := \liminf_{x\to 0} 2 N (x) \left\|x\right\|^{-2}\ . + \label{2eq:one} +\end{equation} + +If $\gamma < - \lambda < \delta$, +the solution $\overline{u}$ is non-zero: +\begin{equation} + \overline{x} (t) \ne 0\ \ \ \forall t\ . +\end{equation} +\end{proposition} +% +\begin{proof} +Condition (\ref{2eq:one}) means that, for every +$\delta ' > \delta$, there is some $\varepsilon > 0$ such that +\begin{equation} + \left\|x\right\| \le \varepsilon \Rightarrow N (x) \le + \frac{\delta '}{2} \left\|x\right\|^{2}\ . +\end{equation} + +It is an exercise in convex analysis, into which we shall not go, to +show that this implies that there is an $\eta > 0$ such that +\begin{equation} + f\left\|x\right\| \le \eta + \Rightarrow N^{\ast} (y) \le \frac{1}{2\delta '} + \left\|y\right\|^{2}\ . + \label{2eq:two} +\end{equation} + +\begin{figure} +\vspace{2.5cm} +\caption{This is the caption of the figure displaying a white eagle and +a white horse on a snow field} +\end{figure} + +Since $u_{1}$ is a smooth function, we will have +$\left\|hu_{1}\right\|_\infty \le \eta$ +for $h$ small enough, and inequality (\ref{2eq:two}) will hold, +yielding thereby: +\begin{equation} + \psi (hu_{1}) \le \frac{h^{2}}{2} + \frac{1}{\lambda} \left\|u_{1} \right\|_{2}^{2} + \frac{h^{2}}{2} + \frac{1}{\delta '} \left\|u_{1}\right\|^{2}\ . +\end{equation} + +If we choose $\delta '$ close enough to $\delta$, the quantity +$\left(\frac{1}{\lambda} + \frac{1}{\delta '}\right)$ +will be negative, and we end up with +\begin{equation} + \psi (hu_{1}) < 0\ \ \ \ \ {\rm for}\ \ h\ne 0\ \ {\rm small}\ . +\end{equation} + +On the other hand, we check directly that $\psi (0) = 0$. This shows +that 0 cannot be a minimizer of $\psi$, not even a local one. +So $\overline{u} \ne 0$ and +$\overline{u} \ne \Lambda_{o}^{-1} (0) = 0$. \qed +\end{proof} +% +\begin{corollary} +Assume $H$ is $C^{2}$ and +$\left(a_{\infty},b_{\infty}\right)$-subquadratic at infinity. Let +$\xi_{1},\allowbreak\dots,\allowbreak\xi_{N}$ be the +equilibria, that is, the solutions of $H' (\xi ) = 0$. +Denote by $\omega_{k}$ +the smallest eigenvalue of $H'' \left(\xi_{k}\right)$, and set: +\begin{equation} + \omega : = {\rm Min\,} \left\{\omega_{1},\dots,\omega_{k}\right\}\ . +\end{equation} +If: +\begin{equation} + \frac{T}{2\pi} b_{\infty} < + - E \left[- \frac{T}{2\pi}a_{\infty}\right] < + \frac{T}{2\pi}\omega + \label{2eq:three} +\end{equation} +then minimization of $\psi$ yields a non-constant $T$-periodic solution +$\overline{x}$. +\end{corollary} +% + +We recall once more that by the integer part $E [\alpha ]$ of +$\alpha \in \bbbr$, we mean the $a\in \bbbz$ +such that $a< \alpha \le a+1$. For instance, +if we take $a_{\infty} = 0$, Corollary 2 tells +us that $\overline{x}$ exists and is +non-constant provided that: + +\begin{equation} + \frac{T}{2\pi} b_{\infty} < 1 < \frac{T}{2\pi} +\end{equation} +or +\begin{equation} + T\in \left(\frac{2\pi}{\omega},\frac{2\pi}{b_{\infty}}\right)\ . + \label{2eq:four} +\end{equation} + +% +\begin{proof} +The spectrum of $\Lambda$ is $\frac{2\pi}{T} \bbbz +a_{\infty}$. The +largest negative eigenvalue $\lambda$ is given by +$\frac{2\pi}{T}k_{o} +a_{\infty}$, +where +\begin{equation} + \frac{2\pi}{T}k_{o} + a_{\infty} < 0 + \le \frac{2\pi}{T} (k_{o} +1) + a_{\infty}\ . +\end{equation} +Hence: +\begin{equation} + k_{o} = E \left[- \frac{T}{2\pi} a_{\infty}\right] \ . +\end{equation} + +The condition $\gamma < -\lambda < \delta$ now becomes: +\begin{equation} + b_{\infty} - a_{\infty} < + - \frac{2\pi}{T} k_{o} -a_{\infty} < \omega -a_{\infty} +\end{equation} +which is precisely condition (\ref{2eq:three}).\qed +\end{proof} +% + +\begin{lemma} +Assume that $H$ is $C^{2}$ on $\bbbr^{2n} \setminus \{ 0\}$ and +that $H'' (x)$ is non-de\-gen\-er\-ate for any $x\ne 0$. Then any local +minimizer $\widetilde{x}$ of $\psi$ has minimal period $T$. +\end{lemma} +% +\begin{proof} +We know that $\widetilde{x}$, or +$\widetilde{x} + \xi$ for some constant $\xi +\in \bbbr^{2n}$, is a $T$-periodic solution of the Hamiltonian system: +\begin{equation} + \dot{x} = JH' (x)\ . +\end{equation} + +There is no loss of generality in taking $\xi = 0$. So +$\psi (x) \ge \psi (\widetilde{x} )$ +for all $\widetilde{x}$ in some neighbourhood of $x$ in +$W^{1,2} \left(\bbbr / T\bbbz ; \bbbr^{2n}\right)$. + +But this index is precisely the index +$i_{T} (\widetilde{x} )$ of the $T$-periodic +solution $\widetilde{x}$ over the interval +$(0,T)$, as defined in Sect.~2.6. So +\begin{equation} + i_{T} (\widetilde{x} ) = 0\ . + \label{2eq:five} +\end{equation} + +Now if $\widetilde{x}$ has a lower period, $T/k$ say, +we would have, by Corollary 31: +\begin{equation} + i_{T} (\widetilde{x} ) = + i_{kT/k}(\widetilde{x} ) \ge + ki_{T/k} (\widetilde{x} ) + k-1 \ge k-1 \ge 1\ . +\end{equation} + +This would contradict (\ref{2eq:five}), and thus cannot happen.\qed +\end{proof} +% +\paragraph{Notes and Comments.} +The results in this section are a +refined version of \cite{2clar:eke}; +the minimality result of Proposition +14 was the first of its kind. + +To understand the nontriviality conditions, such as the one in formula +(\ref{2eq:four}), one may think of a one-parameter family +$x_{T}$, $T\in \left(2\pi\omega^{-1}, 2\pi b_{\infty}^{-1}\right)$ +of periodic solutions, $x_{T} (0) = x_{T} (T)$, +with $x_{T}$ going away to infinity when $T\to 2\pi \omega^{-1}$, +which is the period of the linearized system at 0. + +\begin{table} +\caption{This is the example table taken out of {\it The +\TeX{}book,} p.\,246} +\centering +\begin{tabular}{r@{\quad}rl} +\hline +\multicolumn{1}{l}{\rule{0pt}{12pt} + Year}&\multicolumn{2}{l}{World population}\\[2pt] +\hline\rule{0pt}{12pt} +8000 B.C. & 5,000,000& \\ + 50 A.D. & 200,000,000& \\ +1650 A.D. & 500,000,000& \\ +1945 A.D. & 2,300,000,000& \\ +1980 A.D. & 4,400,000,000& \\[2pt] +\hline +\end{tabular} +\end{table} +% +\begin{theorem} [Ghoussoub-Preiss]\quad\hskip-12pt +Assume $H(t,x)$ is +$(0,\varepsilon )$-subquadratic at +infinity for all $\varepsilon > 0$, and $T$-periodic in $t$ +\begin{equation} + H (t,\cdot )\ \ \ \ \ {\rm is\ convex}\ \ \forall t +\end{equation} +\begin{equation} + H (\cdot ,x)\ \ \ \ \ {\rm is}\ \ T{\rm -periodic}\ \ \forall x +\end{equation} +\begin{equation} + H (t,x)\ge n\left(\left\|x\right\|\right)\ \ \ \ \ + {\rm with}\ \ n (s)s^{-1}\to \infty\ \ {\rm as}\ \ s\to \infty +\end{equation} +\begin{equation} + \forall \varepsilon > 0\ ,\ \ \ \exists c\ :\ + H(t,x) \le \frac{\varepsilon}{2}\left\|x\right\|^{2} + c\ . +\end{equation} + +Assume also that $H$ is $C^{2}$, and $H'' (t,x)$ is positive definite +everywhere. Then there is a sequence $x_{k}$, $k\in \bbbn$, of +$kT$-periodic solutions of the system +\begin{equation} + \dot{x} = JH' (t,x) +\end{equation} +such that, for every $k\in \bbbn$, there is some $p_{o}\in\bbbn$ with: +\begin{equation} + p\ge p_{o}\Rightarrow x_{pk} \ne x_{k}\ . +\end{equation} +\end{theorem} +% +\begin{example} [{{\rm External forcing}}] +Consider the system: +\begin{equation} + \dot{x} = JH' (x) + f(t) +\end{equation} +where the Hamiltonian $H$ is +$\left(0,b_{\infty}\right)$-subquadratic, and the +forcing term is a distribution on the circle: +\begin{equation} + f = \frac{d}{dt} F + f_{o}\ \ \ \ \ + {\rm with}\ \ F\in L^{2} \left(\bbbr / T\bbbz; \bbbr^{2n}\right)\ , +\end{equation} +where $f_{o} : = T^{-1}\int_{o}^{T} f (t) dt$. For instance, +\begin{equation} + f (t) = \sum_{k\in \bbbn} \delta_{k} \xi\ , +\end{equation} +where $\delta_{k}$ is the Dirac mass at $t= k$ and +$\xi \in \bbbr^{2n}$ is a +constant, fits the prescription. This means that the system +$\dot{x} = JH' (x)$ is being excited by a +series of identical shocks at interval $T$. +\end{example} +% +\begin{definition} +Let $A_{\infty} (t)$ and $B_{\infty} (t)$ be symmetric +operators in $\bbbr^{2n}$, depending continuously on +$t\in [0,T]$, such that +$A_{\infty} (t) \le B_{\infty} (t)$ for all $t$. + +A Borelian function +$H: [0,T]\times \bbbr^{2n} \to \bbbr$ +is called +$\left(A_{\infty} ,B_{\infty}\right)$-{\it sub\-qua\-dra\-tic at +in\-fi\-ni\-ty} if there exists a function $N(t,x)$ such that: +\begin{equation} + H (t,x) = \frac{1}{2} \left(A_{\infty} (t) x,x\right) + N(t,x) +\end{equation} +\begin{equation} + \forall t\ ,\ \ \ N(t,x)\ \ \ \ \ + {\rm is\ convex\ with\ respect\ to}\ \ x +\end{equation} +\begin{equation} + N(t,x) \ge n\left(\left\|x\right\|\right)\ \ \ \ \ + {\rm with}\ \ n(s)s^{-1}\to +\infty\ \ {\rm as}\ \ s\to +\infty +\end{equation} +\begin{equation} + \exists c\in \bbbr\ :\ \ \ H (t,x) \le + \frac{1}{2} \left(B_{\infty} (t) x,x\right) + c\ \ \ \forall x\ . +\end{equation} + +If $A_{\infty} (t) = a_{\infty} I$ and +$B_{\infty} (t) = b_{\infty} I$, with +$a_{\infty} \le b_{\infty} \in \bbbr$, +we shall say that $H$ is +$\left(a_{\infty},b_{\infty}\right)$-subquadratic +at infinity. As an example, the function +$\left\|x\right\|^{\alpha}$, with +$1\le \alpha < 2$, is $(0,\varepsilon )$-subquadratic at infinity +for every $\varepsilon > 0$. Similarly, the Hamiltonian +\begin{equation} +H (t,x) = \frac{1}{2} k \left\|k\right\|^{2} +\left\|x\right\|^{\alpha} +\end{equation} +is $(k,k+\varepsilon )$-subquadratic for every $\varepsilon > 0$. +Note that, if $k<0$, it is not convex. +\end{definition} +% + +\paragraph{Notes and Comments.} +The first results on subharmonics were +obtained by Rabinowitz in \cite{2rab}, who showed the existence of +infinitely many subharmonics both in the subquadratic and superquadratic +case, with suitable growth conditions on $H'$. Again the duality +approach enabled Clarke and Ekeland in \cite{2clar:eke:2} to treat the +same problem in the convex-subquadratic case, with growth conditions on +$H$ only. + +Recently, Michalek and Tarantello (see Michalek, R., Tarantello, G. +\cite{2mich:tar} and Tarantello, G. \cite{2tar}) have obtained lower +bound on the number of subharmonics of period $kT$, based on symmetry +considerations and on pinching estimates, as in Sect.~5.2 of this +article. diff --git a/Book/ComputationsBook/chapters/schemes/Makefile b/Book/ComputationsBook/chapters/schemes/Makefile new file mode 100644 index 0000000..fac273a --- /dev/null +++ b/Book/ComputationsBook/chapters/schemes/Makefile @@ -0,0 +1,2 @@ +NAME := chapter +include ../../Makefile.chapter diff --git a/Book/ComputationsBook/chapters/schemes/authors b/Book/ComputationsBook/chapters/schemes/authors new file mode 100644 index 0000000..d29bc22 --- /dev/null +++ b/Book/ComputationsBook/chapters/schemes/authors @@ -0,0 +1,4 @@ +To: Gregory G. Smith , + Bernd Sturmfels +CC: Daniel Grayson +Subject: Macaulay 2 book diff --git a/Book/ComputationsBook/chapters/schemes/chapter-m2.tex b/Book/ComputationsBook/chapters/schemes/chapter-m2.tex new file mode 100644 index 0000000..95cac99 --- /dev/null +++ b/Book/ComputationsBook/chapters/schemes/chapter-m2.tex @@ -0,0 +1,1126 @@ +\title{Teaching the Geometry of Schemes} +\titlerunning{Teaching the Geometry of Schemes} +\toctitle{Teaching the Geometry of Schemes} + +\author{Gregory G.~Smith \and Bernd Sturmfels} +\authorrunning{G. G. Smith and B. Sturmfels} +% \institute{Department of Mathematics, University of California, +% Berkeley, California 94720, USA} + +\maketitle + + +%%---------------------------------------------------------- +\newtheorem*{problem*}{Problem}{\bfseries\upshape}{\itshape} +\newtheorem*{solution*}{Solution}{\itshape}{\rmfamily} + +\newcommand{\Spec}{\operatorname{Spec}} +\newcommand{\Proj}{\operatorname{Proj}} +\newcommand{\codim}{\operatorname{codim}} +%%---------------------------------------------------------- + + +\begin{abstract} +This chapter presents a collection of graduate level problems in +algebraic geometry illustrating the power of \Mtwo as an educational +tool. +\end{abstract} + +When teaching an advanced subject, like the language of schemes, we +think it is important to provide plenty of concrete instances of the +theory. Computer algebra systems, such as \Mtwo, provide students +with an invaluable tool for studying complicated examples. +Furthermore, we believe that the explicit nature of a computational +approach leads to a better understanding of the objects being +examined. This chapter presents some problems which we feel +illustrate this point of view. + +Our examples are selected from the homework of an algebraic geometry +class given at the University of California at Berkeley in the fall of 1999. +This graduate course was taught by the second author with assistance from the +first author. Our choice of problems, as the title suggests, follows the +material in David Eisenbud and Joe Harris' textbook {\em The Geometry of + Schemes} \cite{SC:EH}. + +%%---------------------------------------------------------- +\section{Distinguished Open Sets} + +We begin with a simple example involving the Zariski topology of an affine +scheme\index{scheme!affine}. This example also indicates some of the +subtleties involved in working with arithmetic +schemes\index{scheme!arithmetic}. + +\begin{problem*} +Let $S = \bbbz[x,y,z]$ and $X = \Spec(S)$. If $f = x$ and $X_{f}$ is +the corresponding basic open subset in $X$, then establish the +following: +\begin{enumerate} +\item[$(1)$] If $e_{1} = x+y+z$, $e_{2} = xy+xz+yz$ and $e_{3} = xyz$ +are the elementary symmetric functions then the set $\{X_{e_{i}}\}_{1 +\leq i \leq 3}$ is an open cover of $X_{f}$. +\item[$(2)$] If $p_{1} = x+y+z$, $p_{2} = x^{2}+y^{2}+z^{2}$ and $p_{3} += x^{3}+y^{3}+z^{3}$ are the power sum symmetric functions then +$\{X_{p_{i}}\}_{1 \leq i \leq 3}$ is {\em not} an open cover of +$X_{f}$. +\end{enumerate} +\end{problem*} + +\begin{solution*} +$(1)$ To prove that $\{X_{e_{i}}\}_{1 \leq i \leq 3}$ is an open cover +of $X_{f}$, it suffices to show that $e_{1}$, $e_{2}$ and $e_{3}$ +generate the unit ideal in $S_{f}$; see Lemma I-16 in Eisenbud and +Harris~\cite{SC:EH}. This is equivalent to showing that $x^{m}$ +belongs to the $S$-ideal $\langle e_{1}, e_{2}, e_{3} \rangle$ for +some $m \in \bbbn$. In other words, the saturation\index{saturation} +$\big( \langle e_{1}, e_{2}, e_{3} \rangle : x^{\infty} \big)$ is the +unit ideal if and only if $\{X_{e_{i}}\}_{1 \leq i \leq 3}$ is an open +cover of $X_{f}$. We verify this in \Mtwo as follows: +\beginOutput +i1 : S = ZZ[x, y, z];\\ +\endOutput +\beginOutput +i2 : elementaryBasis = ideal(x+y+z, x*y+x*z+y*z, x*y*z);\\ +\emptyLine +o2 : Ideal of S\\ +\endOutput +\beginOutput +i3 : saturate(elementaryBasis, x)\\ +\emptyLine +o3 = ideal 1\\ +\emptyLine +o3 : Ideal of S\\ +\endOutput +$(2)$ Similarly, to show that $\{X_{p_{i}}\}_{1 \leq i \leq 3}$ is not +an open cover of $X_{f}$, we prove that $\big( \langle p_{1}, p_{2}, +p_{3} \rangle : x^{\infty} \big)$ is not the unit ideal. Calculating +this saturation, we find +\beginOutput +i4 : powerSumBasis = ideal(x+y+z, x^2+y^2+z^2, x^3+y^3+z^3);\\ +\emptyLine +o4 : Ideal of S\\ +\endOutput +\beginOutput +i5 : saturate(powerSumBasis, x)\\ +\emptyLine +\ 2 2\\ +o5 = ideal (6, x + y + z, 2y + 2y*z + 2z , 3y*z)\\ +\emptyLine +o5 : Ideal of S\\ +\endOutput +\beginOutput +i6 : clearAll\\ +\endOutput +which is not the unit ideal.\qed +\end{solution*} + +The fact that $6$ is a generator of the ideal $\big( \langle p_{1}, +p_{2}, p_{3} \rangle : x^{\infty} \big)$ indicates that +$\{X_{p_{i}}\}_{1 \leq i \leq 3}$ does not contain the points in $X$ +lying over the points $\langle 2 \rangle$ and $\langle 3 \rangle$ in +$\Spec(\bbbz)$. If we work over a base ring in which $6$ is a unit, +then $\{X_{p_{i}}\}_{1 \leq i \leq 3}$ would, in fact, be an open +cover of $X_{f}$. + + +%%---------------------------------------------------------- +\section{Irreducibility} + +The study of complex semisimple Lie algebras gives rise to an +important family of algebraic varieties called nilpotent +orbits\index{nilpotent orbits}. The next problem examines the +irreducibility\index{scheme!irreducible} of a particular nilpotent +orbit. + +\begin{problem*} +Let $X$ be the set of nilpotent complex $3 \times 3$ matrices. Show +that $X$ is an irreducible algebraic variety. +\end{problem*} + +\begin{solution*} +A $3 \times 3$ matrix $M$ is nilpotent if and only if its minimal +polynomial $p(\sf T)$ equals ${\sf T}^{k}$, for some $k \in \bbbn$. +Since each irreducible factor of the characteristic polynomial of $M$ +is also a factor of $p(\sf T)$, it follows that the characteristic +polynomial of $M$ is ${\sf T}^{3}$. We conclude that the coefficients +of the characteristic polynomial of a generic $3 \times 3$ matrix +define the algebraic variety $X$. + +To prove that $X$ is irreducible over $\bbbc$, we construct a rational +parameterization\index{rational parameterization}. First, observe +that ${\rm GL}_{3}(\bbbc)$ acts on $X$ by conjugation. Jordan's +canonical form theorem implies that there are exactly three orbits; +one for each of the following matrices: +\[ +N_{(1,1,1)} =\left[ \begin{smallmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & +0 & 0 \end{smallmatrix} \right], \quad +N_{(2,1)} = \left[ \begin{smallmatrix} 0 & 1 & 0 \\ 0 & 0 & 0 \\ 0 & 0 +& 0 \end{smallmatrix} \right] \text{ and } +N_{(3)} = \left[ \begin{smallmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & +0 \end{smallmatrix} \right] \enspace . +\] +Each orbit is defined by a rational parameterization, so it suffices +to show that the closure of the orbit containing $N_{(3)}$ is the +entire variety $X$. We demonstrate this as follows: +\beginOutput +i7 : S = QQ[t, y_0 .. y_8, a..i, MonomialOrder => Eliminate 10];\\ +\endOutput +\beginOutput +i8 : N3 = (matrix \{\{0,1,0\},\{0,0,1\},\{0,0,0\}\}) ** S\\ +\emptyLine +o8 = | 0 1 0 |\\ +\ | 0 0 1 |\\ +\ | 0 0 0 |\\ +\emptyLine +\ 3 3\\ +o8 : Matrix S <--- S\\ +\endOutput +\beginOutput +i9 : G = genericMatrix(S, y_0, 3, 3)\\ +\emptyLine +o9 = | y_0 y_3 y_6 |\\ +\ | y_1 y_4 y_7 |\\ +\ | y_2 y_5 y_8 |\\ +\emptyLine +\ 3 3\\ +o9 : Matrix S <--- S\\ +\endOutput +To determine the entries in $G \cdot N_{(3)} \cdot G^{-1}$, we use the +classical adjoint\index{classical adjoint} to construct the matrix +$\det(G) \cdot G^{-1}$. +\beginOutput +i10 : classicalAdjoint = (G) -> (\\ +\ n := degree target G;\\ +\ m := degree source G;\\ +\ matrix table(n, n, (i, j) -> (-1)^(i+j) * det(\\ +\ submatrix(G, \{0..j-1, j+1..n-1\}, \\ +\ \{0..i-1, i+1..m-1\}))));\\ +\endOutput +\beginOutput +i11 : num = G * N3 * classicalAdjoint(G);\\ +\emptyLine +\ 3 3\\ +o11 : Matrix S <--- S\\ +\endOutput +\beginOutput +i12 : D = det(G);\\ +\endOutput +\beginOutput +i13 : M = genericMatrix(S, a, 3, 3);\\ +\emptyLine +\ 3 3\\ +o13 : Matrix S <--- S\\ +\endOutput +The entries in $G \cdot N_{(3)} \cdot G^{-1}$ give a rational +parameterization of the orbit generated by $N_{(3)}$. Using +elimination theory\index{elimination theory} --- see section~3.3 in +Cox, Little and O`Shea~\cite{SC:CLO} --- we give an ``implicit +representation'' of this variety. +\beginOutput +i14 : elimIdeal = minors(1, (D*id_(S^3))*M - num) + ideal(1-D*t);\\ +\emptyLine +o14 : Ideal of S\\ +\endOutput +\beginOutput +i15 : closureOfOrbit = ideal selectInSubring(1, gens gb elimIdeal);\\ +\emptyLine +o15 : Ideal of S\\ +\endOutput + +Finally, we verify that this orbit closure equals $X$ +scheme-theoretically. Recall that $X$ is defined by the coefficients +of the characteristic polynomial of a generic $3 \times 3$ matrix {\tt +M}. +%% was X = ideal submatrix( (coeff-icients({0}, det(M - t*id_(S^3))))_1, +%% {1,2,3} ), but 'coeff-icients' is to be redesigned, and 'contract' is +%% more self-explanatory, anyway. +\beginOutput +i16 : X = ideal substitute(\\ +\ contract(matrix\{\{t^2,t,1\}\}, det(t-M)),\\ +\ \{t => 0_S\})\\ +\emptyLine +o16 = ideal (- a - e - i, - b*d + a*e - c*g - f*h + a*i + e*i, c*e*g - $\cdot\cdot\cdot$\\ +\emptyLine +o16 : Ideal of S\\ +\endOutput +\beginOutput +i17 : closureOfOrbit == X\\ +\emptyLine +o17 = true\\ +\endOutput +\beginOutput +i18 : clearAll\\ +\endOutput +This completes our solution.\qed +\end{solution*} + +More generally, Kostant shows that the set of all nilpotent elements +in a complex semisimple Lie algebra\index{Lie algebra} form an +irreducible variety. We refer the reader to Chriss and +Ginzburg~\cite{SC:CV} for a proof of this result (Corollary~3.2.8) and +a discussion of its applications in representation theory. + + +%%---------------------------------------------------------- +\section{Singular Points} + +In our third question, we study the singular locus\index{singular +locus} of a family of elliptic curves\index{elliptic curve}. + +\begin{problem*} +Consider a general form of degree $3$ in $\bbbq[x,y,z]$: +\[ +F = ax^{3} + bx^{2}y + cx^{2}z + dxy^{2} + exyz + fxz^{2} + gy^{3} + +hy^{2}z + iyz^{2} + jz^{3} \enspace . +\] +Give necessary and sufficient conditions in terms of $a, \ldots, j$ +for the cubic curve $\Proj\big( \bbbq[x,y,z] / \langle F \rangle +\big)$ to have a singular point. +\end{problem*} + +\begin{solution*} +The singular locus of $F$ is defined by a polynomial of degree $12$ in +the $10$ variables $a, \dotsc, j$. We calculate this polynomial in two +different ways. + +Our first method is an elementary but time consuming elimination. +Carrying it out in \Mtwo, we have +\beginOutput +i19 : S = QQ[x, y, z, a..j, MonomialOrder => Eliminate 2];\\ +\endOutput +\beginOutput +i20 : F = a*x^3+b*x^2*y+c*x^2*z+d*x*y^2+e*x*y*z+f*x*z^2+g*y^3+h*y^2*z+\\ +\ i*y*z^2+j*z^3;\\ +\endOutput +\beginOutput +i21 : partials = submatrix(jacobian matrix\{\{F\}\}, \{0..2\}, \{0\})\\ +\emptyLine +o21 = \{1\} | 3x2a+2xyb+y2d+2xzc+yze+z2f |\\ +\ \{1\} | x2b+2xyd+3y2g+xze+2yzh+z2i |\\ +\ \{1\} | x2c+xye+y2h+2xzf+2yzi+3z2j |\\ +\emptyLine +\ 3 1\\ +o21 : Matrix S <--- S\\ +\endOutput +\beginOutput +i22 : singularities = ideal(partials) + ideal(F);\\ +\emptyLine +o22 : Ideal of S\\ +\endOutput +\beginOutput +i23 : elimDiscr = time ideal selectInSubring(1,gens gb singularities);\\ +\ -- used 64.27 seconds\\ +\emptyLine +o23 : Ideal of S\\ +\endOutput +\beginOutput +i24 : elimDiscr = substitute(elimDiscr, \{z => 1\});\\ +\emptyLine +o24 : Ideal of S\\ +\endOutput +On the other hand, there is also an elegant and more useful +determinantal formula for this discriminant\index{discriminant}; it is +a specialization of the formula (2.8) in section~3.2 of Cox, Little +and O`Shea~\cite{SC:CLO2}. To apply this determinantal formula, we +first create the coefficient matrix {\tt A} of the partial derivatives +of $F$. +%% was A = (coeff-icients({0,1,2}, submatrix(jacobian matrix{{F}}, {0..2}, {0})))_1; +%% but 'coeff-icients' is deprecated. +\beginOutput +i25 : A = contract(matrix\{\{x^2,x*y,y^2,x*z,y*z,z^2\}\},\\ +\ diff(transpose matrix\{\{x,y,z\}\},F))\\ +\emptyLine +o25 = \{1\} | 3a 2b d 2c e f |\\ +\ \{1\} | b 2d 3g e 2h i |\\ +\ \{1\} | c e h 2f 2i 3j |\\ +\emptyLine +\ 3 6\\ +o25 : Matrix S <--- S\\ +\endOutput +We also construct the coefficient matrix {\tt B} of the partial +derivatives of the Hessian\index{hessian} of $F$. +\beginOutput +i26 : hess = det submatrix(jacobian ideal partials, \{0..2\}, \{0..2\});\\ +\endOutput +%% was B = (coeff-icients({0,1,2}, submatrix(jacobian matrix{{hess}}, {0..2}, {0})))_1; +%% but 'coeff-icients' is deprecated. +\beginOutput +i27 : B = contract(matrix\{\{x^2,x*y,y^2,x*z,y*z,z^2\}\},\\ +\ diff(transpose matrix\{\{x,y,z\}\},hess))\\ +\emptyLine +o27 = \{1\} | -24c2d+24bce-18ae2-24b2f+72adf 4be2-16bdf-48 $\cdot\cdot\cdot$\\ +\ \{1\} | 2be2-8bdf-24c2g+72afg+16bch-24aeh-8b2i+24adi 4de2-16d2f-48 $\cdot\cdot\cdot$\\ +\ \{1\} | 2ce2-8cdf-8c2h+24afh+16bci-24aei-24b2j+72adj 2e3-8def-24cf $\cdot\cdot\cdot$\\ +\emptyLine +\ 3 6\\ +o27 : Matrix S <--- S\\ +\endOutput +To obtain the discriminant, we combine these two matrices and take the +determinant. +\beginOutput +i28 : detDiscr = ideal det (A || B);\\ +\emptyLine +o28 : Ideal of S\\ +\endOutput +Finally, we check that our two discriminants are equal +\beginOutput +i29 : detDiscr == elimDiscr\\ +\emptyLine +o29 = true\\ +\endOutput +and examine the generator. +\beginOutput +i30 : detDiscr_0\\ +\emptyLine +\ 2 4 3 2 5 3 2 6 3 2 2 2 2 $\cdot\cdot\cdot$\\ +o30 = 13824c d*e f g - 13824b*c*e f g + 13824a*e f g - 110592c d e $\cdot\cdot\cdot$\\ +\emptyLine +o30 : S\\ +\endOutput +\beginOutput +i31 : numgens detDiscr\\ +\emptyLine +o31 = 1\\ +\endOutput +\beginOutput +i32 : # terms detDiscr_0\\ +\emptyLine +o32 = 2040\\ +\endOutput +\beginOutput +i33 : clearAll\\ +\endOutput +Hence, the singular locus is given by a single polynomial of degree +$12$ with $2040$ terms.\qed +\end{solution*} + +For a further discussion of singularities and discriminants see +Section~V.3 in Eisenbud and Harris~\cite{SC:EH}. For information on +resultants and discriminants see Chapter~2 in Cox, Little and +O`Shea~\cite{SC:CLO2}. + + +%%---------------------------------------------------------- +\section{Fields of Definition} + +Schemes\index{scheme!over a number field} over non-algebraically +closed fields arise in number theory. Our fourth problem looks at one +technique for working with number fields in \Mtwo. + +\begin{problem*}[Exercise~II-6 in \cite{SC:EH}] +An inclusion of fields $K \hookrightarrow L$ induces a map +$\mathbb{A}_{L}^{n} \to \mathbb{A}_{K}^{n}$. Find the images in +$\mathbb{A}_{\bbbq}^{2}$ of the following points of +$\mathbb{A}_{\overline{\bbbq}}^{2}$ under this map. +\begin{enumerate} +\item[$(1)$] $\langle x - \sqrt{2}, y - \sqrt{2} \rangle ;$ +\item[$(2)$] $\langle x - \sqrt{2}, y - \sqrt{3} \rangle ;$ +\item[$(3)$] $\langle x - \zeta, y - \zeta^{-1} \rangle$ where $\zeta$ +is a $5$-th root of unity $;$ +\item[$(4)$] $\langle \sqrt{2}x- \sqrt{3}y \rangle ;$ +\item[$(5)$] $\langle \sqrt{2}x- \sqrt{3}y-1 \rangle$. +\end{enumerate} +\end{problem*} + +\begin{solution*} +The images can be determined by using the following three step +algorithm: (1) replace the coefficients not contained in $K$ with +indeterminates, (2) add the minimal polynomials of these coefficients +to the given ideal in $\mathbb{A}_{L}^{2}$, and (3) eliminate the new +indeterminates. Here are the five examples: +\beginOutput +i34 : S = QQ[a,b,x,y, MonomialOrder => Eliminate 2];\\ +\endOutput +\beginOutput +i35 : I1 = ideal(x-a, y-a, a^2-2);\\ +\emptyLine +o35 : Ideal of S\\ +\endOutput +\beginOutput +i36 : ideal selectInSubring(1, gens gb I1)\\ +\emptyLine +\ 2\\ +o36 = ideal (x - y, y - 2)\\ +\emptyLine +o36 : Ideal of S\\ +\endOutput +\beginOutput +i37 : I2 = ideal(x-a, y-b, a^2-2, b^2-3);\\ +\emptyLine +o37 : Ideal of S\\ +\endOutput +\beginOutput +i38 : ideal selectInSubring(1, gens gb I2)\\ +\emptyLine +\ 2 2\\ +o38 = ideal (y - 3, x - 2)\\ +\emptyLine +o38 : Ideal of S\\ +\endOutput +\beginOutput +i39 : I3 = ideal(x-a, y-a^4, a^4+a^3+a^2+a+1);\\ +\emptyLine +o39 : Ideal of S\\ +\endOutput +\beginOutput +i40 : ideal selectInSubring(1, gens gb I3)\\ +\emptyLine +\ 2 2 3 2\\ +o40 = ideal (x*y - 1, x + y + x + y + 1, y + y + x + y + 1)\\ +\emptyLine +o40 : Ideal of S\\ +\endOutput +\beginOutput +i41 : I4 = ideal(a*x+b*y, a^2-2, b^2-3);\\ +\emptyLine +o41 : Ideal of S\\ +\endOutput +\beginOutput +i42 : ideal selectInSubring(1, gens gb I4)\\ +\emptyLine +\ 2 3 2\\ +o42 = ideal(x - -*y )\\ +\ 2\\ +\emptyLine +o42 : Ideal of S\\ +\endOutput +\beginOutput +i43 : I5 = ideal(a*x+b*y-1, a^2-2, b^2-3);\\ +\emptyLine +o43 : Ideal of S\\ +\endOutput +\beginOutput +i44 : ideal selectInSubring(1, gens gb I5)\\ +\emptyLine +\ 4 2 2 9 4 2 3 2 1\\ +o44 = ideal(x - 3x y + -*y - x - -*y + -)\\ +\ 4 2 4\\ +\emptyLine +o44 : Ideal of S\\ +\endOutput +\beginOutput +i45 : clearAll\\ +\endOutput +\qed +\end{solution*} + +It is worth noting that the points in $\mathbb{A}_{\bbbq}^{n}$ correspond +to orbits of the action of ${\rm Gal}(\overline{\bbbq}/\bbbq)$ on the +points of $\mathbb{A}_{\overline{\bbbq}}^{n}$. For more examples and +information, see section~II.2 in Eisenbud and Harris~\cite{SC:EH}. + + +%%---------------------------------------------------------- +\section{Multiplicity} + +The multiplicity\index{multiplicity} of a zero-dimensional scheme $X$ +at a point $p \in X$ is defined to be the length of the local ring +$\mathcal{O}_{X,p}$. Unfortunately, we cannot work directly in the +local ring in \Mtwo. What we can do, however, is to compute the +multiplicity by computing the degree of the component of $X$ supported +at $p$; see page 66 in Eisenbud and Harris~\cite{SC:EH}. + +\begin{problem*} +What is the multiplicity of the origin as a zero of the polynomial +equations $x^{5}+y^{3}+z^{3} = x^{3}+y^{5}+z^{3} = x^{3}+y^{3}+z^{5} = +0$? +\end{problem*} + +\begin{solution*} +If $I$ is the ideal generated by $x^{5}+y^{3}+z^{3}$, +$x^{3}+y^{5}+z^{3}$ and $x^{3}+y^{3}+z^{5}$ in $\bbbq[x,y,z]$, then +the multiplicity of the origin is +\[ +\dim_{\bbbq} \frac{\bbbq[x,y,z]_{\langle x,y,z \rangle}} +{I \bbbq[x,y,z]_{\langle x,y,z \rangle}} \, . +\] +It follows that the multiplicity is the vector space dimension of the +ring $\bbbq[x,y,z] / \varphi^{-1}(I \bbbq[x,y,z]_{\langle x,y,z +\rangle})$ where $\varphi \colon \bbbq[x,y,z] \to +\bbbq[x,y,z]_{\langle x,y,z \rangle}$ is the natural map. Moreover, +we can express this using ideal quotients: +\[ +\varphi^{-1}(I \bbbq[x,y,z]_{\langle x,y,z \rangle}) \,\,= \,\, +\big(I : (I : \langle x,y,z \rangle^{\infty})\big) \, . +\] +Carrying out this calculation in \Mtwo, we obtain: +\beginOutput +i46 : S = QQ[x, y, z];\\ +\endOutput +\beginOutput +i47 : I = ideal(x^5+y^3+z^3, x^3+y^5+z^3, x^3+y^3+z^5);\\ +\emptyLine +o47 : Ideal of S\\ +\endOutput +\beginOutput +i48 : multiplicity = degree(I : saturate(I))\\ +\emptyLine +o48 = 27\\ +\endOutput +\beginOutput +i49 : clearAll\\ +\endOutput +Thus, we conclude that the multiplicity is $27$.\qed +\end{solution*} + +There are algorithms (not yet implemented in \Mtwo) for working +directly in the local ring $\bbbq[x,y,z]_{\langle x,y,z \rangle}$. We +refer the interested reader to Chapter~4 in Cox, Little and +O`Shea~\cite{SC:CLO2}. + + +%%---------------------------------------------------------- +\section{Flat Families} + +Non-reduced schemes\index{scheme!non-reduced} arise naturally as flat +limits\index{flat limit} of a family of reduced +schemes\index{scheme!reduced}. Our next problem illustrates how a +family of skew lines in $\bbbp^{3}$ gives rise to a double line with +an embedded point\index{embedded point}. + +\begin{problem*}[Exercise~III-68 in \cite{SC:EH}] +Let $L$ and $M $ be the lines in $\bbbp^{3}_{k[t]}$ given by $x=y=0$ +and $x-tz = y+t^{2}w =0$ respectively. Show that the flat limit as $t +\to 0$ of the union $L \cup M$ is the double line $x^{2} = y = 0$ with +an embedded point of degree $1$ located at the point $(0:0:0:1)$. +\end{problem*} + +\begin{solution*} +We first find the flat limit by saturating\index{saturation} the +intersection ideal and setting $t = 0$. +\beginOutput +i50 : PP3 = QQ[t, x, y, z, w];\\ +\endOutput +\beginOutput +i51 : L = ideal(x, y);\\ +\emptyLine +o51 : Ideal of PP3\\ +\endOutput +\beginOutput +i52 : M = ideal(x-t*z, y+t^2*w);\\ +\emptyLine +o52 : Ideal of PP3\\ +\endOutput +\beginOutput +i53 : X = intersect(L, M);\\ +\emptyLine +o53 : Ideal of PP3\\ +\endOutput +\beginOutput +i54 : Xzero = trim substitute(saturate(X, t), \{t => 0\})\\ +\emptyLine +\ 2 2\\ +o54 = ideal (y*z, y , x*y, x )\\ +\emptyLine +o54 : Ideal of PP3\\ +\endOutput +Secondly, we verify that this is the union of a double line and an +embedded point of degree $1$. +\beginOutput +i55 : Xzero == intersect(ideal(x^2, y), ideal(x, y^2, z))\\ +\emptyLine +o55 = true\\ +\endOutput +\beginOutput +i56 : degree(ideal(x^2, y ) / ideal(x, y^2, z))\\ +\emptyLine +o56 = 1\\ +\endOutput +\beginOutput +i57 : clearAll\\ +\endOutput +\qed +\end{solution*} + +Section~III.3.4 in Eisenbud and Harris~\cite{SC:EH} contains several +other interesting limits of various flat families. + + +%%---------------------------------------------------------- +\section{B\'{e}zout's Theorem} + +B\'{e}zout's Theorem\index{Bezout's Theorem@B\'ezout's Theorem} --- Theorem~III-78 in +Eisenbud and Harris~\cite{SC:EH} --- may fail without the +Cohen-Macaulay\index{Cohen-Macaulay} hypothesis. Our seventh problem +is to demonstrate this. + +\begin{problem*}[Exercise~III-81 in \cite{SC:EH}] +Find irreducible closed subvarieties $X$ and $Y$ in $\bbbp^{4}$ such +that +\begin{align*} +\codim(X \cap Y) &= \codim(X) + \codim(Y) \\ +\deg(X \cap Y) &> \deg(X) \cdot \deg(Y) \, . +\end{align*} +\end{problem*} + +\begin{solution*} +We show that the assertion holds when $X$ is the cone over the +nonsingular rational quartic curve\index{rational quartic curve} in +$\bbbp^{3}$ and $Y$ is a two-plane passing through the vertex of the +cone. First, recall that the rational quartic curve is given by the +$2 \times 2$ minors of the matrix $\left[ \begin{smallmatrix} a & +b^{2} & bd & c \\ b & ac & c^2 & d \end{smallmatrix} \right]$; see +Exercise~18.8 in Eisenbud~\cite{SC:E}. Thus, we have +\beginOutput +i58 : S = QQ[a, b, c, d, e];\\ +\endOutput +\beginOutput +i59 : IX = trim minors(2, matrix\{\{a, b^2, b*d, c\},\{b, a*c, c^2, d\}\})\\ +\emptyLine +\ 3 2 2 2 3 2\\ +o59 = ideal (b*c - a*d, c - b*d , a*c - b d, b - a c)\\ +\emptyLine +o59 : Ideal of S\\ +\endOutput +\beginOutput +i60 : IY = ideal(a, d);\\ +\emptyLine +o60 : Ideal of S\\ +\endOutput +\beginOutput +i61 : codim IX + codim IY == codim (IX + IY)\\ +\emptyLine +o61 = true\\ +\endOutput +\beginOutput +i62 : (degree IX) * (degree IY)\\ +\emptyLine +o62 = 4\\ +\endOutput +\beginOutput +i63 : degree (IX + IY)\\ +\emptyLine +o63 = 5\\ +\endOutput +which establishes the assertion.\qed +\end{solution*} + +To understand how this example works, it is enlightening to express +$Y$ as the intersection of two hyperplanes; one given by $a = 0$ and +the other given by $d = 0$. Intersecting $X$ with the first +hyperplane yields +\beginOutput +i64 : J = ideal mingens (IX + ideal(a))\\ +\emptyLine +\ 3 2 2 3\\ +o64 = ideal (a, b*c, c - b*d , b d, b )\\ +\emptyLine +o64 : Ideal of S\\ +\endOutput +However, this first intersection has an embedded point; +\beginOutput +i65 : J == intersect(ideal(a, b*c, b^2, c^3-b*d^2), \\ +\ ideal(a, d, b*c, c^3, b^3)) -- embedded point\\ +\emptyLine +o65 = true\\ +\endOutput +\beginOutput +i66 : clearAll\\ +\endOutput +The second hyperplane passes through this embedded +point\index{embedded point} which explains the extra intersection. + + +%%---------------------------------------------------------- +\section{Constructing Blow-ups} + +The blow-up\index{blow-up} of a scheme $X$ along a subscheme $Y$ can +be constructed from the Rees algebra\index{Rees algebra} associated to +the ideal sheaf of $Y$ in $X$; see Theorem~IV-22 in Eisenbud and +Harris~\cite{SC:EH}. Gr\"{o}bner basis techniques allow one to +express the Rees algebra in terms of generators and relations. We +illustrate this method in the next solution. + +\begin{problem*}[Exercises~IV-43 \& IV-44 in \cite{SC:EH}] +Find the blow-up $X$ of the affine plane\index{scheme!affine} +$\mathbb{A}^{2} = \Spec\big( \bbbq[x, y] \big)$ along the subscheme +defined by $\langle x^{3}, xy, y^{2} \rangle$. Show that $X$ is +nonsingular and its fiber over the origin is the union of two copies +of $\bbbp^{1}$ meeting at a point. +\end{problem*} + +\begin{solution*} +We first provide a general function which returns the ideal of +relations for the Rees algebra. +\beginOutput +i67 : blowUpIdeal = (I) -> (\\ +\ r := numgens I;\\ +\ S := ring I;\\ +\ n := numgens S;\\ +\ K := coefficientRing S;\\ +\ tR := K[t, gens S, vars(0..r-1), \\ +\ MonomialOrder => Eliminate 1];\\ +\ f := map(tR, S, submatrix(vars tR, \{1..n\}));\\ +\ F := f(gens I);\\ +\ J := ideal apply(1..r, j -> (gens tR)_(n+j)-t*F_(0,(j-1)));\\ +\ L := ideal selectInSubring(1, gens gb J);\\ +\ R := K[gens S, vars(0..r-1)];\\ +\ g := map(R, tR, 0 | vars R);\\ +\ trim g(L));\\ +\endOutput +Now, applying the function to our specific case yields: +\beginOutput +i68 : S = QQ[x, y];\\ +\endOutput +\beginOutput +i69 : I = ideal(x^3, x*y, y^2);\\ +\emptyLine +o69 : Ideal of S\\ +\endOutput +\beginOutput +i70 : J = blowUpIdeal(I)\\ +\emptyLine +\ 2 2 3 2\\ +o70 = ideal (y*b - x*c, x*b - a*c, x b - y*a, x c - y a)\\ +\emptyLine +o70 : Ideal of QQ [x, y, a, b, c]\\ +\endOutput +Therefore, the blow-up of the affine plane along the given subscheme +is +\[ +X = \Proj\left( \frac{(\bbbq[x,y])[a,b,c]}{\langle yb-xc, xb^{2}-ac, +x^{2}b-ya, x^{3}c-y^{2}a \rangle} \right) \, . +\] +Using \Mtwo, we can also verify that the scheme $X$ is +nonsingular\index{singular locus}; +\beginOutput +i71 : J + ideal jacobian J == ideal gens ring J\\ +\emptyLine +o71 = true\\ +\endOutput +\beginOutput +i72 : clearAll\\ +\endOutput +Since we have +\[ +\frac{(\bbbq[x,y])[a,b,c]}{\langle yb-xc, xb^{2}-ac, x^{2}b-ya, +x^{3}c-y^{2}a \rangle} \otimes \frac{\bbbq[x,y]}{\langle x, y \rangle} +\cong \frac{\bbbq[a,b,c]}{\langle ac \rangle} \, , +\] +the fiber over the origin $\langle x,y \rangle$ in $\mathbb{A}^{2}$ is +clearly a union of two copies of $\bbbp^{1}$ meeting at one point. In +particular, the exceptional fiber is not a projective space.\qed +\end{solution*} + +Many other interesting blow-ups can be found in section~II.2 in +Eisenbud and Harris~\cite{SC:EH}. + + +%%---------------------------------------------------------- +\section{A Classic Blow-up} + +We consider the blow-up\index{blow-up} of the projective plane +$\bbbp^{2}$ at a point. + +\vbox{ +\begin{problem*} +Show that the following varieties are isomorphic. +\begin{enumerate} +\item[$(a)$] the image of the rational map from $\bbbp^{2}$ to +$\bbbp^{4}$ given by +\[ +(r:s:t) \mapsto (r^{2}:s^{2}:rs:rt:st) \, ; +\] +\item[$(b)$] the blow-up of the plane $\bbbp^{2}$ at the point +$(0:0:1)$; +\item[$(c)$] the determinantal variety\index{determinantal variety} +defined by the $2 \times 2$ minors of the matrix $\left[ +\begin{smallmatrix} a & c & d \\ b & d & e \end{smallmatrix} \right]$ +where $\bbbp^{4} = \Proj\big( k[a,b,c,d,e] \big)$. +\end{enumerate} +This surface is called the {\em cubic scroll}\index{cubic scroll} in +$\bbbp^{4}$. +\end{problem*} +} + +\begin{solution*} +We find the ideal in part~$(a)$ by elimination +theory\index{elimination theory}. +\beginOutput +i73 : PP4 = QQ[a..e];\\ +\endOutput +\beginOutput +i74 : S = QQ[r..t, A..E, MonomialOrder => Eliminate 3];\\ +\endOutput +\beginOutput +i75 : I = ideal(A - r^2, B - s^2, C - r*s, D - r*t, E - s*t);\\ +\emptyLine +o75 : Ideal of S\\ +\endOutput +\beginOutput +i76 : phi = map(PP4, S, matrix\{\{0_PP4, 0_PP4, 0_PP4\}\} | vars PP4)\\ +\emptyLine +o76 = map(PP4,S,\{0, 0, 0, a, b, c, d, e\})\\ +\emptyLine +o76 : RingMap PP4 <--- S\\ +\endOutput +\beginOutput +i77 : surfaceA = phi ideal selectInSubring(1, gens gb I)\\ +\emptyLine +\ 2\\ +o77 = ideal (c*d - a*e, b*d - c*e, a*b - c )\\ +\emptyLine +o77 : Ideal of PP4\\ +\endOutput +Next, we determine the surface in part~$(b)$. We construct the ideal +defining the blow-up of $\bbbp^{2}$ +\beginOutput +i78 : R = QQ[t, x, y, z, u, v, MonomialOrder => Eliminate 1];\\ +\endOutput +\beginOutput +i79 : blowUpIdeal = ideal selectInSubring(1, gens gb ideal(u-t*x, \\ +\ v-t*y))\\ +\emptyLine +o79 = ideal(y*u - x*v)\\ +\emptyLine +o79 : Ideal of R\\ +\endOutput +and embed it in $\bbbp^{2} \times \bbbp^{1}$. +\beginOutput +i80 : PP2xPP1 = QQ[x, y, z, u, v];\\ +\endOutput +\beginOutput +i81 : embed = map(PP2xPP1, R, 0 | vars PP2xPP1);\\ +\emptyLine +o81 : RingMap PP2xPP1 <--- R\\ +\endOutput +\beginOutput +i82 : blowUp = PP2xPP1 / embed(blowUpIdeal);\\ +\endOutput +We then map this surface into $\bbbp^{5}$ using the Segre +embedding\index{Segre embedding}. +\beginOutput +i83 : PP5 = QQ[A .. F];\\ +\endOutput +\beginOutput +i84 : segre = map(blowUp, PP5, matrix\{\{x*u,y*u,z*u,x*v,y*v,z*v\}\});\\ +\emptyLine +o84 : RingMap blowUp <--- PP5\\ +\endOutput +\beginOutput +i85 : ker segre\\ +\emptyLine +\ 2\\ +o85 = ideal (B - D, C*E - D*F, D - A*E, C*D - A*F)\\ +\emptyLine +o85 : Ideal of PP5\\ +\endOutput +Note that the image under the Segre map lies on a hyperplane in +$\bbbp^{5}$. To get the desired surface in $\bbbp^{4}$, we project +\beginOutput +i86 : projection = map(PP4, PP5, matrix\{\{a, c, d, c, b, e\}\})\\ +\emptyLine +o86 = map(PP4,PP5,\{a, c, d, c, b, e\})\\ +\emptyLine +o86 : RingMap PP4 <--- PP5\\ +\endOutput +\beginOutput +i87 : surfaceB = trim projection ker segre\\ +\emptyLine +\ 2\\ +o87 = ideal (c*d - a*e, b*d - c*e, a*b - c )\\ +\emptyLine +o87 : Ideal of PP4\\ +\endOutput +Finally, we compute the surface in part~$(c)$. +\beginOutput +i88 : determinantal = minors(2, matrix\{\{a, c, d\}, \{b, d, e\}\})\\ +\emptyLine +\ 2\\ +o88 = ideal (- b*c + a*d, - b*d + a*e, - d + c*e)\\ +\emptyLine +o88 : Ideal of PP4\\ +\endOutput +\beginOutput +i89 : sigma = map( PP4, PP4, matrix\{\{d, e, a, c, b\}\});\\ +\emptyLine +o89 : RingMap PP4 <--- PP4\\ +\endOutput +\beginOutput +i90 : surfaceC = sigma determinantal\\ +\emptyLine +\ 2\\ +o90 = ideal (c*d - a*e, b*d - c*e, a*b - c )\\ +\emptyLine +o90 : Ideal of PP4\\ +\endOutput +By incorporating a permutation of the variables into definition of +{\tt surfaceC}, we obtain the desired isomorphisms +\beginOutput +i91 : surfaceA == surfaceB\\ +\emptyLine +o91 = true\\ +\endOutput +\beginOutput +i92 : surfaceB == surfaceC\\ +\emptyLine +o92 = true\\ +\endOutput +\beginOutput +i93 : clearAll\\ +\endOutput +which completes the solution.\qed +\end{solution*} + +For more information of the geometry of rational normal scrolls, see +Lecture~8 in Harris~\cite{SC:H}. + + +%%---------------------------------------------------------- +\section{Fano Schemes} + +Our final example concerns the family of Fano schemes\index{Fano +scheme} associated to a flat family of quadrics. +Recall that the $k$-th Fano scheme $F_{k}(X)$ of a +scheme $X \subseteq \bbbp^{n}$ is the subscheme of +the Grassmannian parametrizing $k$-planes +contained in $X$. + +\begin{problem*}[Exercise~IV-69 in \cite{SC:EH}] +Consider the one-parameter family\index{one-parameter family} of +quadrics tending to a double plane with equation +\[ +Q = V(tx^{2}+ty^{2}+tz^{2}+w^{2}) \subseteq \bbbp^{3}_{\bbbq[t]} = +\Proj\big(\bbbq[t][x,y,z,w]\big) \enspace . +\] +What is the flat limit\index{flat limit} of the Fano schemes +$F_{1}(Q_{t})$? +\end{problem*} + +\begin{solution*} +We first compute the ideal defining $F_{1}(Q_{t})$, the scheme +parametrizing lines in $Q$. +\beginOutput +i94 : PP3 = QQ[t, x, y, z, w];\\ +\endOutput +\beginOutput +i95 : Q = ideal( t*x^2+t*y^2+t*z^2+w^2 );\\ +\emptyLine +o95 : Ideal of PP3\\ +\endOutput +To parametrize a line in our projective space, we introduce +indeterminates $u, v$ and $A, \dotsc, H$. +\beginOutput +i96 : R = QQ[t, u, v, A .. H];\\ +\endOutput +We then make a map {\tt phi} from {\tt PP3} to {\tt R} sending the +variables to the coordinates of the general point on a line. +\beginOutput +i97 : phi = map(R, PP3, matrix\{\{t\}\} | \\ +\ u*matrix\{\{A, B, C, D\}\} + v*matrix\{\{E, F, G, H\}\});\\ +\emptyLine +o97 : RingMap R <--- PP3\\ +\endOutput +\beginOutput +i98 : imageFamily = phi Q;\\ +\emptyLine +o98 : Ideal of R\\ +\endOutput +For a line to belong to $Q$, the {\tt imageFamily} must vanish +identically. In other words, $F_{1}(Q)$ is defined by the +coefficients of the generators of {\tt imageFamily}. +%% removing a final use of 'coefficients' +%% coeffOfFamily = (coefficients ({1,2}, gens imageFamily))_1; +\beginOutput +i99 : coeffOfFamily = contract(matrix\{\{u^2,u*v,v^2\}\}, gens imageFamily)\\ +\emptyLine +o99 = | tA2+tB2+tC2+D2 2tAE+2tBF+2tCG+2DH tE2+tF2+tG2+H2 |\\ +\emptyLine +\ 1 3\\ +o99 : Matrix R <--- R\\ +\endOutput +Since we don't need the variables $u$ and $v$, we get rid of them. +\beginOutput +i100 : S = QQ[t, A..H];\\ +\endOutput +\beginOutput +i101 : coeffOfFamily = substitute(coeffOfFamily, S);\\ +\emptyLine +\ 1 3\\ +o101 : Matrix S <--- S\\ +\endOutput +\beginOutput +i102 : Sbar = S / (ideal coeffOfFamily);\\ +\endOutput +Next, we move to the Grassmannian\index{Grassmannian} $\mathbb{G}(1,3) +\subset \bbbp^{5}$. Recall the homogeneous coordinates on +$\bbbp^{5}$ correspond to the $2 \times 2$ minors of a $2 \times 4$ +matrix. We obtain these minors using the {\tt exteriorPower} function +in \Mtwo. +\beginOutput +i103 : psi = matrix\{\{t\}\} | exteriorPower(2, \\ +\ matrix\{\{A, B, C, D\}, \{E, F, G, H\}\})\\ +\emptyLine +o103 = | t -BE+AF -CE+AG -CF+BG -DE+AH -DF+BH -DG+CH |\\ +\emptyLine +\ 1 7\\ +o103 : Matrix Sbar <--- Sbar\\ +\endOutput +\beginOutput +i104 : PP5 = QQ[t, a..f];\\ +\endOutput +\beginOutput +i105 : fanoOfFamily = trim ker map(Sbar, PP5, psi);\\ +\emptyLine +o105 : Ideal of PP5\\ +\endOutput +Now, to answer the question, we determine the limit as $t$ tends to $0$. +\beginOutput +i106 : zeroFibre = trim substitute(saturate(fanoOfFamily, t), \{t=>0\})\\ +\emptyLine +\ 2 2 2 $\cdot\cdot\cdot$\\ +o106 = ideal (e*f, d*f, e , f , d*e, a*e + b*f, d , c*d - b*e + a*f, b $\cdot\cdot\cdot$\\ +\emptyLine +o106 : Ideal of PP5\\ +\endOutput +Let's transpose the matrix of generators so all of its elements are visible +on the printed page. +\beginOutput +i107 : transpose gens zeroFibre\\ +\emptyLine +o107 = \{-2\} | ef |\\ +\ \{-2\} | df |\\ +\ \{-2\} | e2 |\\ +\ \{-2\} | f2 |\\ +\ \{-2\} | de |\\ +\ \{-2\} | ae+bf |\\ +\ \{-2\} | d2 |\\ +\ \{-2\} | cd-be+af |\\ +\ \{-2\} | bd+ce |\\ +\ \{-2\} | ad-cf |\\ +\ \{-2\} | a2+b2+c2 |\\ +\emptyLine +\ 11 1\\ +o107 : Matrix PP5 <--- PP5\\ +\endOutput +We see that $F_{1}(Q_{0})$ is supported on the plane conic $\langle d, +e, f, a^{2}+b^{2}+c^{2} \rangle$. However, $F_{1}(Q_{0})$ is not +reduced\index{scheme!non-reduced}; it has +multiplicity\index{multiplicity} two. On the other hand, the generic +fiber is +\beginOutput +i108 : oneFibre = trim substitute(saturate(fanoOfFamily, t), \{t => 1\})\\ +\emptyLine +\ 2 2 2 $\cdot\cdot\cdot$\\ +o108 = ideal (a*e + b*f, d + e + f , c*d - b*e + a*f, b*d + c*e, a*d $\cdot\cdot\cdot$\\ +\emptyLine +o108 : Ideal of PP5\\ +\endOutput +\beginOutput +i109 : oneFibre == intersect(ideal(c-d, b+e, a-f, d^2+e^2+f^2), \\ +\ ideal(c+d, b-e, a+f, d^2+e^2+f^2))\\ +\emptyLine +o109 = true\\ +\endOutput +Hence, for $t \neq 0$, $F_{1}(Q_{t})$ is the union of two conics lying +in complementary planes and $F_{1}(Q_{0})$ is the double conic +obtained when the two conics move together.\qed +\end{solution*} + +% Local Variables: +% mode: latex +% mode: reftex +% tex-main-file: "chapter-wrapper.tex" +% reftex-keep-temporary-buffers: t +% reftex-use-external-file-finders: t +% reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) +% End: diff --git a/Book/ComputationsBook/chapters/schemes/chapter-trial-wrapper.dvi b/Book/ComputationsBook/chapters/schemes/chapter-trial-wrapper.dvi new file mode 100644 index 0000000..32c93a7 Binary files /dev/null and b/Book/ComputationsBook/chapters/schemes/chapter-trial-wrapper.dvi differ diff --git a/Book/ComputationsBook/chapters/schemes/chapter-trial-wrapper.tex b/Book/ComputationsBook/chapters/schemes/chapter-trial-wrapper.tex new file mode 100644 index 0000000..4645b12 --- /dev/null +++ b/Book/ComputationsBook/chapters/schemes/chapter-trial-wrapper.tex @@ -0,0 +1,21 @@ + \documentclass[runningheads]{lncse} + \usepackage{makeidx,multicol}\makeindex + \input book-macros.tex + \begin{document} + \bgroup + \input chapter-m2.tex + \egroup + \clearpage + \addtocmark[2]{Index} + \markboth{Index}{Index} + \renewcommand{\indexname}{Index} + \threecolindex + \printindex + \end{document} + + % Local Variables: + % mode: latex + % mode: reftex + % reftex-use-external-file-finders: t + % reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) + % End: diff --git a/Book/ComputationsBook/chapters/schemes/chapter-wrapper.dvi b/Book/ComputationsBook/chapters/schemes/chapter-wrapper.dvi new file mode 100644 index 0000000..1fab0a8 Binary files /dev/null and b/Book/ComputationsBook/chapters/schemes/chapter-wrapper.dvi differ diff --git a/Book/ComputationsBook/chapters/schemes/chapter-wrapper.pdf b/Book/ComputationsBook/chapters/schemes/chapter-wrapper.pdf new file mode 100644 index 0000000..aa6975b Binary files /dev/null and b/Book/ComputationsBook/chapters/schemes/chapter-wrapper.pdf differ diff --git a/Book/ComputationsBook/chapters/schemes/chapter-wrapper.ps b/Book/ComputationsBook/chapters/schemes/chapter-wrapper.ps new file mode 100644 index 0000000..ac9e1a1 Binary files /dev/null and b/Book/ComputationsBook/chapters/schemes/chapter-wrapper.ps differ diff --git a/Book/ComputationsBook/chapters/schemes/chapter-wrapper.tex b/Book/ComputationsBook/chapters/schemes/chapter-wrapper.tex new file mode 100644 index 0000000..f4615f6 --- /dev/null +++ b/Book/ComputationsBook/chapters/schemes/chapter-wrapper.tex @@ -0,0 +1,22 @@ + \documentclass[runningheads]{lncse} + \usepackage{makeidx,multicol}\makeindex + \input book-macros.tex + \begin{document} + \bgroup + \input chapter-m2.tex + \egroup + \bibliography{papers} + \clearpage + \addtocmark[2]{Index} + \markboth{Index}{Index} + \renewcommand{\indexname}{Index} + \threecolindex + \printindex + \end{document} + + % Local Variables: + % mode: latex + % mode: reftex + % reftex-use-external-file-finders: t + % reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) + % End: diff --git a/Book/ComputationsBook/chapters/schemes/chapter.m2 b/Book/ComputationsBook/chapters/schemes/chapter.m2 new file mode 100644 index 0000000..cfe35cb --- /dev/null +++ b/Book/ComputationsBook/chapters/schemes/chapter.m2 @@ -0,0 +1,137 @@ +S = ZZ[x, y, z]; +elementaryBasis = ideal(x+y+z, x*y+x*z+y*z, x*y*z); +saturate(elementaryBasis, x) +powerSumBasis = ideal(x+y+z, x^2+y^2+z^2, x^3+y^3+z^3); +saturate(powerSumBasis, x) +clearAll +S = QQ[t, y_0 .. y_8, a..i, MonomialOrder => Eliminate 10]; +N3 = (matrix {{0,1,0},{0,0,1},{0,0,0}}) ** S +G = genericMatrix(S, y_0, 3, 3) +classicalAdjoint = (G) -> ( + n := degree target G; + m := degree source G; + matrix table(n, n, (i, j) -> (-1)^(i+j) * det( + submatrix(G, {0..j-1, j+1..n-1}, + {0..i-1, i+1..m-1})))); +num = G * N3 * classicalAdjoint(G); +D = det(G); +M = genericMatrix(S, a, 3, 3); +elimIdeal = minors(1, (D*id_(S^3))*M - num) + ideal(1-D*t); +closureOfOrbit = ideal selectInSubring(1, gens gb elimIdeal); +X = ideal substitute( + contract(matrix{{t^2,t,1}}, det(t-M)), + {t => 0_S}) +closureOfOrbit == X +clearAll +S = QQ[x, y, z, a..j, MonomialOrder => Eliminate 2]; +F = a*x^3+b*x^2*y+c*x^2*z+d*x*y^2+e*x*y*z+f*x*z^2+g*y^3+h*y^2*z+ + i*y*z^2+j*z^3; +partials = submatrix(jacobian matrix{{F}}, {0..2}, {0}) +singularities = ideal(partials) + ideal(F); +elimDiscr = time ideal selectInSubring(1,gens gb singularities); +elimDiscr = substitute(elimDiscr, {z => 1}); +A = contract(matrix{{x^2,x*y,y^2,x*z,y*z,z^2}}, + diff(transpose matrix{{x,y,z}},F)) +hess = det submatrix(jacobian ideal partials, {0..2}, {0..2}); +B = contract(matrix{{x^2,x*y,y^2,x*z,y*z,z^2}}, + diff(transpose matrix{{x,y,z}},hess)) +detDiscr = ideal det (A || B); +detDiscr == elimDiscr +detDiscr_0 +numgens detDiscr +# terms detDiscr_0 +clearAll +S = QQ[a,b,x,y, MonomialOrder => Eliminate 2]; +I1 = ideal(x-a, y-a, a^2-2); +ideal selectInSubring(1, gens gb I1) +I2 = ideal(x-a, y-b, a^2-2, b^2-3); +ideal selectInSubring(1, gens gb I2) +I3 = ideal(x-a, y-a^4, a^4+a^3+a^2+a+1); +ideal selectInSubring(1, gens gb I3) +I4 = ideal(a*x+b*y, a^2-2, b^2-3); +ideal selectInSubring(1, gens gb I4) +I5 = ideal(a*x+b*y-1, a^2-2, b^2-3); +ideal selectInSubring(1, gens gb I5) +clearAll +S = QQ[x, y, z]; +I = ideal(x^5+y^3+z^3, x^3+y^5+z^3, x^3+y^3+z^5); +multiplicity = degree(I : saturate(I)) +clearAll +PP3 = QQ[t, x, y, z, w]; +L = ideal(x, y); +M = ideal(x-t*z, y+t^2*w); +X = intersect(L, M); +Xzero = trim substitute(saturate(X, t), {t => 0}) +Xzero == intersect(ideal(x^2, y), ideal(x, y^2, z)) +degree(ideal(x^2, y ) / ideal(x, y^2, z)) +clearAll +S = QQ[a, b, c, d, e]; +IX = trim minors(2, matrix{{a, b^2, b*d, c},{b, a*c, c^2, d}}) +IY = ideal(a, d); +codim IX + codim IY == codim (IX + IY) +(degree IX) * (degree IY) +degree (IX + IY) +J = ideal mingens (IX + ideal(a)) +J == intersect(ideal(a, b*c, b^2, c^3-b*d^2), + ideal(a, d, b*c, c^3, b^3)) -- embedded point +clearAll +blowUpIdeal = (I) -> ( + r := numgens I; + S := ring I; + n := numgens S; + K := coefficientRing S; + tR := K[t, gens S, vars(0..r-1), + MonomialOrder => Eliminate 1]; + f := map(tR, S, submatrix(vars tR, {1..n})); + F := f(gens I); + J := ideal apply(1..r, j -> (gens tR)_(n+j)-t*F_(0,(j-1))); + L := ideal selectInSubring(1, gens gb J); + R := K[gens S, vars(0..r-1)]; + g := map(R, tR, 0 | vars R); + trim g(L)); +S = QQ[x, y]; +I = ideal(x^3, x*y, y^2); +J = blowUpIdeal(I) +J + ideal jacobian J == ideal gens ring J +clearAll +PP4 = QQ[a..e]; +S = QQ[r..t, A..E, MonomialOrder => Eliminate 3]; +I = ideal(A - r^2, B - s^2, C - r*s, D - r*t, E - s*t); +phi = map(PP4, S, matrix{{0_PP4, 0_PP4, 0_PP4}} | vars PP4) +surfaceA = phi ideal selectInSubring(1, gens gb I) +R = QQ[t, x, y, z, u, v, MonomialOrder => Eliminate 1]; +blowUpIdeal = ideal selectInSubring(1, gens gb ideal(u-t*x, + v-t*y)) +PP2xPP1 = QQ[x, y, z, u, v]; +embed = map(PP2xPP1, R, 0 | vars PP2xPP1); +blowUp = PP2xPP1 / embed(blowUpIdeal); +PP5 = QQ[A .. F]; +segre = map(blowUp, PP5, matrix{{x*u,y*u,z*u,x*v,y*v,z*v}}); +ker segre +projection = map(PP4, PP5, matrix{{a, c, d, c, b, e}}) +surfaceB = trim projection ker segre +determinantal = minors(2, matrix{{a, c, d}, {b, d, e}}) +sigma = map( PP4, PP4, matrix{{d, e, a, c, b}}); +surfaceC = sigma determinantal +surfaceA == surfaceB +surfaceB == surfaceC +clearAll +PP3 = QQ[t, x, y, z, w]; +Q = ideal( t*x^2+t*y^2+t*z^2+w^2 ); +R = QQ[t, u, v, A .. H]; +phi = map(R, PP3, matrix{{t}} | + u*matrix{{A, B, C, D}} + v*matrix{{E, F, G, H}}); +imageFamily = phi Q; +coeffOfFamily = contract(matrix{{u^2,u*v,v^2}}, gens imageFamily) +S = QQ[t, A..H]; +coeffOfFamily = substitute(coeffOfFamily, S); +Sbar = S / (ideal coeffOfFamily); +psi = matrix{{t}} | exteriorPower(2, + matrix{{A, B, C, D}, {E, F, G, H}}) +PP5 = QQ[t, a..f]; +fanoOfFamily = trim ker map(Sbar, PP5, psi); +zeroFibre = trim substitute(saturate(fanoOfFamily, t), {t=>0}) +transpose gens zeroFibre +oneFibre = trim substitute(saturate(fanoOfFamily, t), {t => 1}) +oneFibre == intersect(ideal(c-d, b+e, a-f, d^2+e^2+f^2), + ideal(c+d, b-e, a+f, d^2+e^2+f^2)) diff --git a/Book/ComputationsBook/chapters/schemes/chapter.out b/Book/ComputationsBook/chapters/schemes/chapter.out new file mode 100644 index 0000000..3fea4cf --- /dev/null +++ b/Book/ComputationsBook/chapters/schemes/chapter.out @@ -0,0 +1,404 @@ +i1 : S = ZZ[x, y, z]; +i2 : elementaryBasis = ideal(x+y+z, x*y+x*z+y*z, x*y*z); + +o2 : Ideal of S +i3 : saturate(elementaryBasis, x) + +o3 = ideal 1 + +o3 : Ideal of S +i4 : powerSumBasis = ideal(x+y+z, x^2+y^2+z^2, x^3+y^3+z^3); + +o4 : Ideal of S +i5 : saturate(powerSumBasis, x) + + 2 2 +o5 = ideal (6, x + y + z, 2y + 2y*z + 2z , 3y*z) + +o5 : Ideal of S +i6 : clearAll +i7 : S = QQ[t, y_0 .. y_8, a..i, MonomialOrder => Eliminate 10]; +i8 : N3 = (matrix {{0,1,0},{0,0,1},{0,0,0}}) ** S + +o8 = | 0 1 0 | + | 0 0 1 | + | 0 0 0 | + + 3 3 +o8 : Matrix S <--- S +i9 : G = genericMatrix(S, y_0, 3, 3) + +o9 = | y_0 y_3 y_6 | + | y_1 y_4 y_7 | + | y_2 y_5 y_8 | + + 3 3 +o9 : Matrix S <--- S +i10 : classicalAdjoint = (G) -> ( + n := degree target G; + m := degree source G; + matrix table(n, n, (i, j) -> (-1)^(i+j) * det( + submatrix(G, {0..j-1, j+1..n-1}, + {0..i-1, i+1..m-1})))); +i11 : num = G * N3 * classicalAdjoint(G); + + 3 3 +o11 : Matrix S <--- S +i12 : D = det(G); +i13 : M = genericMatrix(S, a, 3, 3); + + 3 3 +o13 : Matrix S <--- S +i14 : elimIdeal = minors(1, (D*id_(S^3))*M - num) + ideal(1-D*t); + +o14 : Ideal of S +i15 : closureOfOrbit = ideal selectInSubring(1, gens gb elimIdeal); + +o15 : Ideal of S +i16 : X = ideal substitute( + contract(matrix{{t^2,t,1}}, det(t-M)), + {t => 0_S}) + +o16 = ideal (- a - e - i, - b*d + a*e - c*g - f*h + a*i + e*i, c*e*g - b*f*g - c*d*h + a*f*h + b*d*i - a*e*i) + +o16 : Ideal of S +i17 : closureOfOrbit == X + +o17 = true +i18 : clearAll +i19 : S = QQ[x, y, z, a..j, MonomialOrder => Eliminate 2]; +i20 : F = a*x^3+b*x^2*y+c*x^2*z+d*x*y^2+e*x*y*z+f*x*z^2+g*y^3+h*y^2*z+ + i*y*z^2+j*z^3; +i21 : partials = submatrix(jacobian matrix{{F}}, {0..2}, {0}) + +o21 = {1} | 3x2a+2xyb+y2d+2xzc+yze+z2f | + {1} | x2b+2xyd+3y2g+xze+2yzh+z2i | + {1} | x2c+xye+y2h+2xzf+2yzi+3z2j | + + 3 1 +o21 : Matrix S <--- S +i22 : singularities = ideal(partials) + ideal(F); + +o22 : Ideal of S +i23 : elimDiscr = time ideal selectInSubring(1,gens gb singularities); + -- used 64.27 seconds + +o23 : Ideal of S +i24 : elimDiscr = substitute(elimDiscr, {z => 1}); + +o24 : Ideal of S +i25 : A = contract(matrix{{x^2,x*y,y^2,x*z,y*z,z^2}}, + diff(transpose matrix{{x,y,z}},F)) + +o25 = {1} | 3a 2b d 2c e f | + {1} | b 2d 3g e 2h i | + {1} | c e h 2f 2i 3j | + + 3 6 +o25 : Matrix S <--- S +i26 : hess = det submatrix(jacobian ideal partials, {0..2}, {0..2}); +i27 : B = contract(matrix{{x^2,x*y,y^2,x*z,y*z,z^2}}, + diff(transpose matrix{{x,y,z}},hess)) + +o27 = {1} | -24c2d+24bce-18ae2-24b2f+72adf 4be2-16bdf-48c2g+144afg+32bch-48aeh-16b2i+48adi 2de2-8d2f-24ceg+24bfg+16cdh-24ah2-8bdi+72agi 4ce2-16cdf-16c2h+48afh+32bci-48aei-48b2j+144adj 2e3-8def-24cfg-8ceh+24bfh+24cdi-8bei-24ahi-24bdj+216agj 2e2f-8df2-8cfh+16bfi-24ai2+24cdj-24bej+72ahj | + {1} | 2be2-8bdf-24c2g+72afg+16bch-24aeh-8b2i+24adi 4de2-16d2f-48ceg+48bfg+32cdh-48ah2-16bdi+144agi -18e2g+24deh-24bh2-24d2i+72bgi 2e3-8def-24cfg-8ceh+24bfh+24cdi-8bei-24ahi-24bdj+216agj -48efg+4e2h+32dfh-16ch2+48cgi-16bhi-48d2j+144bgj -24f2g+2e2i+16dfi-8chi-8bi2-24dej+72cgj+24bhj | + {1} | 2ce2-8cdf-8c2h+24afh+16bci-24aei-24b2j+72adj 2e3-8def-24cfg-8ceh+24bfh+24cdi-8bei-24ahi-24bdj+216agj -24efg+2e2h+16dfh-8ch2+24cgi-8bhi-24d2j+72bgj 4e2f-16df2-16cfh+32bfi-48ai2+48cdj-48bej+144ahj -48f2g+4e2i+32dfi-16chi-16bi2-48dej+144cgj+48bhj -24f2h+24efi-24ci2-18e2j+72chj | + + 3 6 +o27 : Matrix S <--- S +i28 : detDiscr = ideal det (A || B); + +o28 : Ideal of S +i29 : detDiscr == elimDiscr + +o29 = true +i30 : detDiscr_0 + + 2 4 3 2 5 3 2 6 3 2 2 2 2 4 2 3 4 2 2 4 4 2 4 4 2 2 3 5 2 2 5 2 2 2 5 2 2 2 5 2 2 2 6 2 3 6 2 3 3 3 3 3 4 3 2 2 4 3 3 4 3 2 5 3 2 5 3 5 3 2 5 3 3 6 3 6 3 4 4 4 2 5 4 2 6 4 2 5 2 6 2 7 2 2 2 3 3 4 3 2 5 3 5 3 2 3 4 2 2 4 2 3 4 2 3 4 2 2 5 3 5 3 4 2 2 3 2 3 2 2 3 3 2 4 3 2 3 2 4 2 2 4 2 2 2 4 2 2 4 2 3 4 2 2 5 2 2 5 2 3 5 2 5 2 4 3 3 3 4 3 2 4 3 5 3 2 5 3 2 2 4 2 2 5 2 2 6 2 2 2 3 2 3 2 2 3 3 2 2 4 3 2 2 4 3 2 2 4 4 2 3 4 2 2 2 2 4 2 3 2 4 2 2 3 5 2 4 5 2 3 3 2 2 2 4 2 2 5 2 2 3 2 3 2 2 2 3 2 2 3 3 2 3 3 2 4 3 2 2 2 4 2 2 4 2 2 4 2 3 2 4 2 2 4 2 3 5 2 2 5 2 4 2 2 2 2 4 3 2 2 3 3 2 2 2 2 3 2 2 2 2 4 2 2 2 4 2 2 4 2 2 2 2 4 2 2 2 5 2 2 2 5 2 2 3 2 2 2 3 2 3 2 3 2 4 2 3 4 2 3 5 2 3 3 3 3 3 2 2 3 3 2 2 3 3 2 2 3 3 3 3 3 3 3 3 3 2 2 4 3 3 4 3 3 4 3 2 4 3 4 2 3 3 2 2 3 2 3 2 3 3 3 3 2 2 3 3 2 3 3 2 3 3 2 3 3 3 3 4 3 4 3 2 4 3 2 4 3 5 2 2 3 3 3 2 3 2 4 2 3 4 2 2 4 3 2 4 2 2 2 2 4 2 2 2 4 3 2 4 2 4 2 4 2 2 3 4 2 2 3 4 3 3 4 3 4 2 2 3 4 2 2 3 4 4 4 4 2 4 4 2 2 4 4 4 2 4 3 2 4 2 3 4 2 3 4 2 4 4 2 3 2 5 3 2 5 2 2 5 2 2 2 5 2 3 5 2 3 5 2 3 5 2 2 2 6 3 3 6 2 6 7 8 2 2 4 2 5 2 2 6 2 6 2 2 3 2 3 2 3 3 2 4 3 2 4 3 2 4 4 3 4 2 2 2 4 3 2 4 2 3 5 4 5 3 5 2 3 3 2 2 2 4 2 2 5 2 2 3 2 3 2 2 2 3 2 2 3 3 2 3 3 2 4 3 2 2 2 4 2 2 4 2 2 4 2 3 2 4 2 2 4 2 3 5 2 2 5 2 4 2 2 3 4 3 3 3 3 3 2 2 3 3 2 2 4 3 2 4 3 4 3 2 2 4 3 2 5 3 2 2 5 6 7 2 3 3 2 2 4 2 2 5 2 2 5 2 2 4 3 3 2 3 2 2 3 3 3 3 3 2 3 4 4 4 3 4 2 5 6 3 2 2 2 2 3 2 2 4 2 4 2 5 2 3 3 3 2 2 3 2 2 3 2 2 3 3 3 3 3 3 2 2 4 3 4 3 4 2 4 4 3 2 4 2 2 3 2 2 2 2 3 2 2 3 3 2 2 2 3 2 2 3 2 2 3 2 2 3 3 2 3 4 2 4 2 2 4 2 2 4 2 5 2 3 3 3 3 2 4 3 3 2 3 2 2 4 2 2 5 2 5 2 6 2 3 3 2 2 2 2 2 2 2 2 3 2 2 2 3 2 2 3 4 2 2 4 2 2 2 3 3 2 2 2 3 2 3 3 2 3 2 3 2 2 2 3 2 3 2 4 2 3 4 2 4 2 2 3 3 2 2 4 2 4 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 4 2 2 2 2 3 2 2 2 3 2 3 3 2 3 2 2 2 3 2 2 2 3 2 4 4 2 2 4 2 2 2 4 2 5 2 2 4 2 2 2 3 2 2 2 2 3 2 2 2 3 2 2 2 4 2 2 4 2 3 3 2 3 2 2 3 3 2 3 3 4 3 2 5 3 3 2 2 3 2 2 2 3 2 2 2 3 3 2 2 3 2 2 3 2 3 2 3 2 3 2 3 3 3 3 2 3 3 4 3 3 2 3 3 2 2 3 3 4 3 3 2 3 2 3 2 3 3 2 3 2 2 3 2 2 2 3 2 3 3 2 3 3 2 3 3 2 3 4 3 4 2 2 4 2 3 4 3 2 2 4 2 2 4 2 2 4 2 2 4 2 2 2 4 3 3 4 2 3 4 2 2 2 4 3 3 4 2 2 5 2 2 5 3 2 5 2 3 4 2 2 5 2 2 6 2 2 4 2 2 2 3 3 2 2 2 2 4 2 2 3 4 2 2 2 5 3 2 4 3 2 2 3 2 3 2 4 2 3 2 2 4 4 2 5 4 2 3 5 2 2 6 2 7 2 3 2 3 2 2 4 2 2 5 2 5 2 6 2 3 3 2 2 2 2 2 2 2 2 3 2 2 2 3 2 2 3 4 2 2 4 2 2 2 3 3 2 2 2 3 2 3 3 2 3 2 3 2 2 2 3 2 3 2 4 2 3 4 2 4 4 2 2 4 2 2 2 3 3 2 2 2 4 2 2 4 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 4 2 2 2 2 2 3 2 2 2 2 3 2 2 3 3 2 2 3 2 2 2 2 3 2 2 2 2 3 2 2 4 4 2 2 2 4 2 2 2 2 4 2 2 5 3 2 4 2 3 2 3 2 3 2 2 3 3 2 2 3 3 2 2 4 3 2 3 2 4 2 2 5 2 6 2 3 3 2 2 2 2 3 2 2 4 2 2 4 2 5 2 3 4 2 2 2 3 2 2 2 2 2 2 2 3 2 2 2 3 3 2 2 2 3 2 2 2 3 3 2 4 3 2 3 2 3 2 3 3 2 4 3 2 3 4 2 2 5 2 4 2 2 3 2 2 2 2 3 2 2 3 2 4 2 2 5 2 3 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 3 2 2 2 3 2 2 3 3 2 2 3 2 4 3 2 2 3 2 2 2 3 2 5 2 2 2 5 2 2 4 2 2 3 2 2 2 2 3 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 3 2 2 2 3 2 2 4 2 2 2 2 3 3 2 2 2 2 4 2 2 2 4 2 2 5 2 2 4 3 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 2 2 3 2 2 2 4 2 2 2 4 2 2 2 2 2 2 2 2 2 3 2 2 2 3 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 3 2 2 2 2 3 2 2 2 3 3 2 2 5 2 2 4 2 2 2 3 3 2 2 4 2 2 2 3 2 2 3 2 2 2 2 2 2 2 3 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 2 2 2 3 2 2 6 2 2 2 4 2 2 2 2 2 2 2 2 2 3 3 2 2 2 5 2 3 2 4 3 2 2 3 2 3 2 3 2 3 2 2 3 3 2 2 4 3 2 2 3 3 2 3 2 3 2 3 2 3 2 2 3 2 2 2 3 2 2 2 3 2 2 3 3 2 4 2 3 2 2 2 3 2 2 2 2 3 2 3 2 3 2 2 2 3 2 5 3 2 4 3 2 3 3 2 2 2 3 2 2 2 3 2 3 2 3 2 2 4 4 2 4 4 2 3 4 2 2 2 2 4 2 2 2 4 2 2 2 4 2 2 4 2 3 2 4 2 2 2 2 4 2 3 2 4 2 2 3 5 2 3 5 2 3 3 3 3 2 2 4 3 2 5 3 3 4 3 2 3 2 3 2 2 3 3 3 3 3 2 4 3 2 4 2 3 2 3 2 3 4 2 3 3 2 2 2 3 3 2 2 3 3 3 3 3 4 3 3 4 2 2 3 3 3 3 2 2 4 3 2 4 3 5 3 2 6 3 4 3 3 3 2 3 2 2 2 3 2 2 2 3 3 3 3 3 3 2 4 3 2 4 3 2 2 2 2 3 2 3 2 3 3 2 3 2 2 3 4 2 2 3 2 2 2 3 2 2 2 2 3 4 3 3 2 2 3 3 2 3 3 3 5 2 3 4 2 2 3 3 3 2 3 4 2 3 2 3 2 3 3 2 3 2 2 2 3 2 3 2 3 3 2 2 2 3 2 2 2 3 2 2 2 3 2 2 2 3 2 2 2 2 3 3 3 2 3 2 3 2 3 6 3 3 4 3 3 2 2 2 3 3 3 3 3 3 4 3 3 3 2 2 3 2 2 3 3 2 2 3 3 4 3 2 5 3 3 3 3 2 2 2 3 2 3 3 3 2 3 2 2 3 2 3 3 2 2 3 3 3 2 2 3 3 2 3 4 2 3 2 2 2 3 2 3 2 3 5 2 3 4 3 2 3 2 3 3 2 3 2 3 3 2 4 3 2 3 3 3 2 3 3 2 3 2 3 2 2 3 2 2 3 2 3 3 4 2 3 2 2 3 2 2 2 3 3 2 3 2 2 3 5 2 3 4 2 3 3 2 3 2 2 2 3 2 2 2 3 3 2 2 3 4 2 2 3 2 3 2 3 3 2 2 3 3 2 2 2 3 2 2 2 3 2 3 2 3 2 3 2 3 2 4 2 3 3 2 2 3 2 2 2 3 4 2 3 2 2 3 2 2 2 3 3 2 2 3 2 2 2 3 5 2 2 3 3 2 2 3 2 2 2 2 3 2 4 2 3 4 2 3 3 2 3 2 2 2 2 3 2 2 2 3 2 2 2 3 2 2 3 3 2 2 3 2 2 2 2 3 3 2 2 3 3 3 3 3 3 3 3 2 2 3 3 2 2 3 3 2 2 3 3 3 3 3 3 3 3 3 2 3 3 2 2 3 3 3 3 3 2 3 3 3 3 3 3 2 2 4 3 3 4 3 3 4 3 4 4 4 3 3 4 2 2 2 2 4 2 3 2 4 2 3 4 2 2 4 4 2 2 3 4 2 4 4 3 2 4 3 4 2 2 2 4 2 3 2 4 4 2 2 4 2 3 2 4 2 4 2 4 4 2 4 2 3 4 3 2 4 3 2 2 4 2 2 4 2 3 4 2 3 4 2 4 4 3 2 4 2 2 4 4 4 2 4 2 2 4 3 2 4 2 2 4 5 2 4 3 2 4 2 2 2 4 2 4 2 4 4 2 4 3 2 4 2 2 2 2 4 2 2 2 4 2 2 2 4 2 2 4 3 2 2 4 2 2 2 2 4 3 2 2 4 2 3 2 4 3 3 4 3 2 4 2 2 4 2 2 4 2 2 2 4 2 3 4 2 2 4 2 3 4 3 4 2 2 4 3 3 4 3 4 2 2 4 2 2 4 2 2 4 3 3 4 3 4 2 4 2 2 4 3 4 2 3 2 4 3 2 4 4 2 2 4 2 2 2 4 2 2 2 2 4 3 2 4 2 2 4 2 2 2 2 4 3 2 2 4 4 2 4 2 2 2 4 3 2 2 4 2 2 2 4 3 2 4 3 2 4 2 2 3 4 3 3 4 3 3 4 4 4 4 3 2 2 5 2 3 5 2 2 5 2 3 5 2 2 2 5 3 2 5 2 3 5 4 2 5 2 2 5 2 2 2 5 3 5 2 5 2 2 2 5 3 2 5 4 5 2 2 5 2 2 2 5 3 2 5 3 2 5 2 2 5 2 2 5 3 2 5 2 2 5 3 5 3 5 2 3 2 5 3 2 5 4 2 5 2 2 2 6 3 3 6 2 3 6 3 6 4 2 6 2 7 8 9 2 2 5 6 2 7 7 2 3 3 2 2 4 2 2 5 2 2 5 2 2 4 3 3 2 3 2 2 3 3 3 3 3 2 3 4 4 4 3 6 2 3 4 2 2 5 2 6 2 3 2 2 2 2 2 3 2 2 2 4 2 2 4 2 2 5 2 2 3 3 3 2 2 2 3 2 2 2 3 2 2 2 3 2 3 3 3 2 3 3 2 2 2 4 2 3 4 2 3 4 2 2 4 2 4 3 3 4 2 3 3 2 2 3 2 3 2 3 3 3 3 2 2 3 3 2 3 3 2 3 3 2 3 3 3 3 4 3 4 3 2 4 3 5 2 4 3 3 4 2 4 4 2 2 6 7 8 2 3 4 2 5 2 6 2 6 2 4 2 2 3 3 2 2 2 4 2 3 4 2 2 5 3 4 3 2 3 2 3 4 2 3 2 4 4 5 4 3 5 2 6 7 3 2 3 2 4 2 5 5 6 3 3 2 2 2 2 2 2 3 2 2 3 2 3 4 2 4 2 2 3 3 2 2 3 3 3 3 2 3 2 2 3 3 2 4 3 4 4 4 2 4 2 2 3 3 2 2 4 2 4 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 4 2 2 2 2 3 2 2 2 3 2 3 3 2 3 2 2 2 3 2 2 2 3 2 4 4 2 2 4 2 2 2 4 2 5 3 4 2 3 3 2 3 2 3 3 2 3 3 2 4 3 3 2 4 2 2 5 2 2 6 2 6 2 7 2 3 3 2 2 2 2 3 2 2 4 2 2 4 2 3 5 2 5 2 3 4 2 2 2 3 2 2 2 2 2 2 2 3 2 2 2 3 3 2 2 2 3 2 2 2 3 3 2 4 3 2 3 2 3 2 3 3 2 4 3 2 3 4 2 2 5 2 4 2 2 3 2 2 2 2 3 2 2 3 2 4 2 2 5 2 3 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 3 2 2 2 3 2 2 3 3 2 2 3 2 4 3 2 2 3 2 2 2 3 2 5 2 2 2 5 2 2 4 2 2 3 2 2 2 2 3 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 3 2 2 2 3 2 2 4 2 2 3 3 3 3 2 2 4 3 2 4 3 5 3 2 6 3 4 3 3 3 2 3 2 2 2 3 2 2 2 3 3 3 3 3 3 2 4 3 2 4 3 2 2 2 2 3 2 3 2 3 3 2 3 2 2 3 4 2 2 3 2 2 2 3 2 2 2 2 3 4 3 3 2 2 3 3 2 3 3 3 5 3 4 2 3 3 3 3 4 3 2 3 3 3 3 2 2 3 2 3 3 3 2 2 3 2 2 3 2 2 3 2 2 3 2 2 2 3 3 3 3 2 3 3 6 2 3 4 2 3 2 2 2 2 3 3 3 2 3 5 2 4 4 4 2 3 2 4 3 2 4 2 3 4 2 4 4 2 3 4 3 2 4 3 2 4 2 4 2 2 4 2 2 4 2 3 4 4 2 4 2 2 4 2 2 2 4 3 2 4 2 2 4 5 4 4 4 3 4 2 2 4 2 2 4 2 4 5 4 5 3 5 2 2 2 5 2 2 5 2 2 5 2 5 3 2 5 2 2 2 5 2 3 6 3 6 2 3 5 2 6 2 7 2 4 3 3 4 2 2 5 3 5 2 5 2 4 2 2 2 3 3 2 4 3 2 2 4 3 5 3 3 2 4 2 5 2 6 6 7 3 3 2 2 2 3 2 4 2 4 3 5 5 3 4 2 2 3 2 2 2 2 2 3 2 2 3 3 2 2 3 2 2 3 3 4 3 3 2 3 3 3 4 3 2 3 4 2 2 5 2 4 2 2 3 2 2 2 2 3 2 2 3 2 4 2 2 5 2 3 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 3 2 2 2 3 2 2 3 3 2 2 3 2 4 3 2 2 3 2 2 2 3 2 5 2 3 5 3 4 3 3 2 3 2 3 2 3 3 2 3 2 2 3 2 2 2 3 2 3 3 2 3 3 3 3 3 2 2 4 2 5 2 5 6 3 4 2 3 2 2 2 3 3 3 3 4 2 4 2 4 2 2 3 2 4 2 3 2 2 2 3 2 2 3 3 3 4 3 4 2 2 3 3 2 2 4 2 4 5 2 6 4 3 3 2 2 2 2 2 2 2 3 3 3 2 4 2 4 2 2 2 2 2 3 2 3 2 2 2 4 2 2 2 2 2 2 2 2 2 4 3 2 2 3 2 3 3 5 2 4 2 2 3 3 2 4 2 2 3 2 3 2 2 2 2 2 3 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 2 2 3 2 6 3 4 3 2 2 2 3 3 3 3 4 3 2 3 2 2 2 2 2 3 2 2 2 3 2 3 4 2 4 2 2 5 2 2 5 2 3 3 2 2 2 2 2 2 3 2 3 2 2 2 2 2 4 3 2 2 3 2 2 2 3 2 3 2 2 2 3 2 2 4 2 2 2 2 2 2 2 3 2 2 5 2 2 4 2 2 3 2 2 3 2 2 2 3 2 2 4 2 2 3 2 3 2 2 3 2 2 2 2 2 2 2 2 2 2 2 3 2 4 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 5 2 2 4 2 2 3 2 2 2 2 2 2 2 2 2 2 3 2 2 2 4 2 3 2 3 3 3 2 3 3 2 2 3 2 2 3 2 3 3 2 3 3 2 4 3 3 2 3 2 2 3 4 3 2 3 2 2 3 3 2 3 2 2 3 5 2 3 3 2 3 2 2 2 3 2 4 3 4 3 3 3 2 2 2 3 2 2 3 2 2 3 2 3 3 2 3 2 2 2 3 3 3 4 3 4 2 2 4 2 2 4 2 2 4 3 3 4 3 4 2 4 2 2 4 3 4 2 3 4 3 4 2 2 5 3 5 3 5 3 4 2 2 2 3 3 2 2 2 4 2 3 4 2 2 5 2 3 5 2 2 4 2 2 3 2 2 4 2 2 3 2 3 2 3 3 2 2 4 2 2 5 2 2 3 3 2 2 4 2 2 4 3 2 3 2 2 2 2 2 3 2 2 2 3 2 3 4 2 4 2 2 5 2 2 5 2 3 3 2 2 2 2 2 2 3 2 3 2 2 2 2 2 4 3 2 2 3 2 2 2 3 2 3 2 2 2 3 2 2 4 2 2 2 2 2 2 2 3 2 2 5 2 2 2 4 2 2 2 3 2 2 2 3 2 2 2 2 3 2 2 2 4 2 2 2 3 2 2 3 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 4 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 3 2 2 2 3 2 3 2 3 2 4 4 2 3 3 2 2 2 2 2 2 2 3 2 2 3 3 2 2 3 2 2 4 2 2 2 4 2 2 2 3 2 2 4 2 3 2 2 3 2 4 2 2 2 2 2 2 2 3 2 2 4 2 2 2 2 3 2 2 2 4 2 2 4 2 2 2 3 2 3 2 2 3 2 2 2 2 2 2 2 3 2 2 3 2 2 4 2 3 2 2 2 2 2 4 2 2 2 2 2 2 3 2 2 2 2 2 5 2 2 3 2 2 2 2 2 2 2 4 2 2 4 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 3 2 2 2 2 3 2 2 2 3 3 2 2 3 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 2 2 2 2 2 3 3 2 2 2 3 2 2 4 2 2 2 2 2 2 2 3 2 2 5 2 2 3 2 2 2 2 2 2 3 3 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 2 2 3 2 2 2 2 2 2 2 2 2 3 2 2 2 3 2 2 2 3 2 2 2 4 2 3 2 2 2 3 2 2 2 2 3 2 3 3 2 2 3 2 2 2 2 3 2 3 2 3 2 4 3 2 2 2 3 2 3 2 3 2 2 2 3 2 3 3 2 3 3 2 2 2 4 2 3 4 2 3 4 2 4 5 2 3 4 3 2 2 3 3 2 4 3 3 2 2 3 3 2 3 2 2 3 3 2 3 3 3 3 3 3 4 3 4 2 3 2 3 3 2 4 3 2 3 2 3 3 3 3 3 2 3 2 2 3 4 2 3 2 2 3 2 2 2 3 3 3 3 2 3 3 4 3 2 2 3 2 3 3 5 3 3 3 2 2 3 3 3 2 3 3 2 3 2 2 2 3 2 2 2 3 2 2 2 3 3 3 2 3 3 2 3 2 2 3 2 2 2 3 3 2 3 2 3 3 3 3 3 3 3 2 2 3 2 3 3 4 3 2 2 3 2 3 3 3 2 3 2 2 2 3 3 2 3 2 3 3 4 2 3 2 2 3 2 2 2 3 3 3 2 3 2 2 2 3 3 2 3 4 3 2 2 3 2 2 2 3 3 2 3 3 2 3 5 2 3 3 2 3 2 2 2 3 4 2 3 2 2 2 3 3 2 2 3 2 2 2 3 3 2 3 3 2 3 2 3 3 3 3 3 3 4 3 3 4 2 4 2 3 4 2 4 4 3 2 4 2 3 4 5 4 3 4 2 2 4 4 4 2 2 4 2 2 2 4 3 2 4 3 2 4 2 2 2 4 3 3 4 2 3 4 3 4 4 2 4 2 4 4 2 3 5 2 3 6 2 2 5 2 2 4 3 2 2 3 4 2 4 4 2 2 6 2 2 5 2 2 2 4 2 2 2 5 2 2 2 2 5 3 2 6 3 2 3 3 3 2 2 2 4 2 2 5 2 2 5 2 3 6 2 6 2 3 4 2 2 3 2 2 2 2 3 2 3 3 2 3 4 2 2 4 2 2 4 2 2 2 3 2 2 4 2 2 3 2 2 2 2 3 2 2 2 3 3 3 2 4 3 2 4 2 2 2 2 3 3 2 2 2 2 4 2 2 2 4 2 2 5 2 2 2 6 2 2 4 3 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 2 2 3 2 2 2 4 2 2 2 4 2 2 2 2 2 2 2 2 2 3 2 2 2 3 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 3 2 2 2 2 3 2 2 2 3 3 2 2 5 3 2 4 2 3 2 3 3 3 2 4 3 2 2 3 3 2 3 3 2 2 2 3 2 2 3 3 2 3 2 2 3 2 2 2 3 2 2 2 3 2 2 2 3 2 2 2 2 3 2 3 3 3 2 2 3 3 2 6 4 2 4 4 2 2 2 2 4 2 3 3 4 2 3 4 2 2 2 3 3 2 2 2 4 2 3 4 2 3 5 2 2 5 2 3 5 2 2 4 2 2 3 2 2 4 2 2 3 2 3 2 3 3 2 2 4 2 2 5 2 2 3 3 2 2 4 2 2 4 3 2 3 2 2 2 2 2 3 2 2 2 3 2 3 4 2 4 2 2 5 2 2 5 2 3 3 2 2 2 2 2 2 3 2 3 2 2 2 2 2 4 3 2 2 3 2 2 2 3 2 3 2 2 2 3 2 2 4 2 2 2 2 2 2 2 3 2 2 5 2 2 2 4 2 2 2 3 2 2 2 3 2 2 2 2 3 2 2 2 4 2 2 2 3 2 2 3 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 4 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 5 3 2 4 3 2 3 3 2 2 2 3 2 2 2 3 2 3 2 3 2 4 4 2 2 3 3 2 2 2 2 2 2 2 2 2 3 2 2 2 3 3 2 2 2 3 2 2 4 4 2 2 2 4 2 2 2 2 4 2 2 2 2 3 2 2 2 4 2 2 3 2 2 2 3 2 2 4 2 2 2 2 2 2 2 2 2 3 2 2 2 4 2 2 2 2 2 3 2 2 2 2 4 2 2 2 4 2 2 2 2 3 2 2 3 2 2 2 3 2 2 2 2 2 2 2 2 2 3 2 2 2 3 2 2 2 4 2 2 3 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 5 2 2 2 3 2 2 2 2 2 2 2 2 2 4 2 2 2 4 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 3 2 3 2 3 3 3 2 3 2 3 2 2 2 3 2 4 2 3 2 2 2 3 2 2 2 2 3 2 3 3 3 2 2 3 3 2 4 3 2 2 2 3 2 2 3 3 2 5 3 2 3 3 2 2 2 3 2 3 3 3 2 3 3 2 2 2 3 2 2 2 3 2 2 2 3 2 3 3 3 2 3 3 2 2 3 2 2 2 3 2 3 3 2 2 3 2 3 2 3 2 3 2 4 2 4 2 2 2 4 2 2 2 2 4 2 3 4 2 2 4 2 2 2 2 4 2 3 2 4 2 4 4 2 2 2 4 2 3 2 4 2 2 2 4 2 3 4 2 3 4 2 2 2 5 2 3 5 2 3 5 2 4 6 2 3 5 2 2 4 2 2 2 3 3 2 4 3 2 3 2 4 2 3 4 2 2 5 2 2 4 2 5 2 3 3 2 2 4 2 2 3 4 2 2 5 2 2 4 4 2 3 3 2 2 2 2 2 2 2 3 2 2 3 3 2 2 3 2 4 4 2 2 4 2 2 2 4 2 2 2 3 2 2 4 2 3 2 2 3 2 4 2 2 2 2 2 2 2 3 2 2 4 2 2 2 2 3 2 2 2 4 2 2 4 2 2 2 2 3 2 2 3 2 2 2 3 2 2 2 2 2 2 2 2 2 3 2 2 2 3 2 2 2 4 2 2 3 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 5 2 2 2 3 2 2 2 2 2 2 2 2 2 4 3 2 4 3 2 3 3 2 2 2 2 3 2 2 2 3 2 2 2 3 2 2 3 2 3 2 3 2 2 2 2 3 2 3 2 3 2 3 4 2 2 2 3 2 2 4 2 3 2 2 2 3 2 2 4 3 2 2 2 3 2 2 3 3 2 3 3 2 4 2 4 2 2 2 3 2 2 4 2 2 3 2 2 3 3 2 3 2 2 2 2 2 4 2 2 2 2 2 2 2 2 2 3 3 2 2 3 2 4 2 2 2 2 2 3 2 5 2 3 2 2 2 2 3 3 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 2 2 3 2 2 2 2 2 2 2 2 2 3 2 2 2 3 3 2 3 3 2 3 2 2 2 2 2 3 2 2 4 2 2 2 2 2 2 2 3 2 2 5 2 2 2 3 2 2 2 2 2 2 2 2 5 2 2 3 2 2 2 2 3 2 2 4 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 3 2 2 2 4 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 3 2 2 2 3 2 2 2 5 3 2 3 3 2 2 2 3 2 4 3 2 2 2 3 2 3 2 3 2 2 2 3 2 3 3 2 3 3 2 2 3 4 2 3 4 2 4 4 2 2 2 4 2 2 2 5 2 2 3 3 2 2 4 2 2 4 2 2 2 2 2 3 2 2 2 2 4 2 2 2 4 3 2 2 2 4 2 2 2 5 2 2 3 2 2 2 2 2 3 2 2 4 2 2 2 2 2 2 2 3 2 2 5 2 2 2 3 2 2 2 2 2 2 2 2 5 2 2 3 2 2 2 2 3 2 2 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 4 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 3 2 2 3 3 2 2 3 3 2 2 4 2 2 2 2 3 2 2 2 4 2 2 5 2 2 3 2 2 2 2 3 2 2 5 2 2 3 2 2 2 2 2 2 4 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 3 2 2 2 3 2 2 2 6 2 2 2 4 2 2 2 2 2 2 2 2 2 3 3 2 2 2 2 3 2 2 2 3 2 2 2 4 2 2 2 2 5 2 3 2 3 3 3 2 2 4 3 2 6 3 2 4 3 2 2 2 2 3 2 3 3 3 2 2 3 2 3 2 3 2 3 2 4 3 3 2 3 6 3 2 5 3 2 4 2 3 5 2 3 3 3 3 3 4 3 3 2 5 3 6 3 3 4 3 5 3 3 4 3 2 2 3 3 3 2 2 3 3 2 3 4 3 3 2 2 3 3 2 3 3 3 3 3 3 4 3 4 2 3 2 3 3 2 4 3 2 3 2 2 3 3 3 2 3 3 2 2 3 2 2 2 3 4 2 2 3 2 2 2 3 2 2 2 2 3 3 3 2 3 2 3 2 3 4 2 3 2 2 2 3 2 3 2 3 5 2 3 3 2 3 2 2 2 3 3 3 3 3 3 3 3 2 2 3 3 2 2 3 3 2 2 3 3 3 3 3 3 3 3 3 2 3 3 2 2 3 3 3 3 3 2 3 4 3 3 4 3 2 2 4 3 3 3 3 4 3 4 2 2 3 2 3 2 3 2 4 2 3 4 3 3 2 4 3 2 5 3 3 2 2 3 4 3 2 2 3 2 3 3 5 2 3 3 2 3 2 2 2 3 5 3 3 2 3 2 3 3 4 2 2 3 2 2 2 3 2 2 2 2 3 3 2 3 2 2 3 2 2 2 2 3 3 2 2 3 4 2 3 2 2 2 3 3 2 2 3 2 2 3 3 3 3 3 3 3 3 4 2 2 3 2 3 2 3 2 4 2 3 5 2 3 3 2 2 3 2 3 2 3 2 2 2 3 2 2 2 3 3 2 2 3 2 2 2 2 3 3 2 2 3 3 2 2 3 6 3 3 4 3 3 2 2 2 3 3 3 3 3 3 2 3 3 3 3 3 3 4 2 3 3 3 4 3 5 3 4 3 3 2 4 3 2 5 3 4 2 3 2 3 3 2 4 3 5 3 3 2 3 2 3 3 5 2 3 3 2 3 2 2 2 3 4 2 3 2 2 2 3 3 2 2 3 2 2 3 3 3 3 3 3 3 3 5 2 3 3 3 3 2 4 3 6 3 4 3 2 2 2 3 3 3 3 2 3 2 3 3 2 3 4 3 3 4 4 4 2 5 4 2 6 4 5 2 4 3 3 4 2 4 4 6 2 4 4 2 4 2 2 2 2 4 3 3 2 4 2 3 3 4 3 3 4 4 4 4 +o30 = 13824c d*e f g - 13824b*c*e f g + 13824a*e f g - 110592c d e f g + 110592b*c*d*e f g + 13824b e f g - 165888a*d*e f g + 221184c d f g - 221184b*c*d e*f g - 110592b d*e f g + 663552a*d e f g + 221184b d f g - 884736a*d f g - 13824c e f g + 497664c d*e*f g - 414720b*c e f g + 497664a*c*e f g - 995328b*c d*f g + 1327104b c*e*f g - 1990656a*c*d*e*f g - 995328a*b*e f g - 884736b f g + 3981312a*b*d*f g - 373248c f g + 2985984a*c f g - 5971968a f g - 13824c d*e f g*h + 13824b*c*e f g*h - 13824a*e f g*h + 110592c d e f g*h - 110592b*c*d*e f g*h - 13824b e f g*h + 165888a*d*e f g*h - 221184c d e*f g*h + 221184b*c*d e f g*h + 110592b d*e f g*h - 663552a*d e f g*h - 221184b d e*f g*h + 884736a*d e*f g*h + 13824c e f g h - 635904c d*e f g h + 566784b*c e f g h - 663552a*c*e f g h - 331776c d f g h + 1714176b*c d*e*f g h - 1935360b c*e f g h + 2322432a*c*d*e f g h + 1492992a*b*e f g h - 221184b c*d*f g h + 1327104a*c*d f g h + 1327104b e*f g h - 5971968a*b*d*e*f g h + 497664c e*f g h + 497664b*c f g h - 4976640a*c e*f g h - 1990656a*b*c*f g h + 11943936a e*f g h + 13824c d e f h - 13824b*c*d*e f h + 13824a*d*e f h - 110592c d e f h + 110592b*c*d e f h + 13824b d*e f h - 165888a*d e f h + 221184c d f h - 221184b*c*d e*f h - 110592b d e f h + 663552a*d e f h + 221184b d f h - 884736a*d f h + 110592c d*e f g*h - 138240b*c e f g*h + 152064a*c*e f g*h + 884736c d e*f g*h - 1161216b*c d*e f g*h + 566784b c*e f g*h + 276480a*c*d*e f g*h - 470016a*b*e f g*h - 1105920b*c d f g*h + 1714176b c*d*e*f g*h - 3538944a*c*d e*f g*h - 414720b e f g*h + 774144a*b*d*e f g*h - 995328b d*f g*h + 4423680a*b*d f g*h - 110592c e f g h - 331776c d*f g h - 718848b*c e*f g h + 2239488a*c e f g h - 27648b c f g h + 3317760a*c d*f g h + 2654208a*b*c*e*f g h - 6967296a e f g h + 331776a*b f g h - 7962624a d*f g h - 110592c d e f h + 110592b*c d*e f h + 13824b c*e f h - 138240a*c*d*e f h - 13824a*b*e f h - 442368c d f h + 884736b*c d e*f h - 635904b c*d*e f h + 110592a*c*d e f h - 13824b e f h + 608256a*b*d*e f h - 331776b c*d f h + 1769472a*c*d f h + 497664b d*e*f h - 2211840a*b*d e*f h - 221184c d*e*f g*h + 442368b*c e f g*h - 552960a*c e f g*h + 1105920b*c d*f g*h - 718848b c e*f g*h - 1105920a*c d*e*f g*h - 55296a*b*c*e f g*h + 995328a e f g*h + 497664b c*f g*h - 4423680a*b*c*d*f g*h - 331776a*b e*f g*h + 7962624a d*e*f g*h + 221184c f g h - 1880064a*c f g h + 3981312a c*f g h + 221184c d f h - 221184b*c d*e*f h - 110592b c e f h + 442368a*c d*e f h + 110592a*b*c*e f h + 13824a e f h - 331776b c d*f h - 442368a*c d f h + 497664b c*e*f h + 221184a*b*c*d*e*f h - 414720a*b e f h - 1105920a d*e f h - 373248b f h + 1990656a*b d*f h - 1769472a d f h - 442368b*c f g*h + 663552a*c e*f g*h + 2433024a*b*c f g*h - 2654208a c*e*f g*h - 2654208a b*f g*h + 221184b c f h - 442368a*c d*f h - 221184a*b*c e*f h - 110592a c*e f h - 995328a*b c*f h + 1769472a c*d*f h + 1327104a b*e*f h + 221184a c f h - 884736a f h + 13824c d*e f*g*i - 13824b*c*e f*g*i + 13824a*e f*g*i - 138240c d e f g*i + 138240b*c*d*e f g*i + 13824b e f g*i - 193536a*d*e f g*i + 442368c d e f g*i - 442368b*c*d e f g*i - 138240b d*e f g*i + 995328a*d e f g*i - 442368c d f g*i + 442368b*c*d e*f g*i + 442368b d e f g*i - 2211840a*d e f g*i - 442368b d f g*i + 1769472a*d f g*i - 13824c e f*g i + 566784c d*e f g i - 456192b*c e f g i + 539136a*c*e f g i - 718848c d e*f g i - 691200b*c d*e f g i + 1603584b c*e f g i - 2820096a*c*d*e f g i - 1244160a*b*e f g i + 2101248b*c d f g i - 2433024b c*d*e*f g i + 2654208a*c*d e*f g i - 1105920b e f g i + 6967296a*b*d*e f g i + 1769472b d*f g i - 7962624a*b*d f g i - 414720c e f g i + 497664c d*f g i + 165888b*c e*f g i + 3234816a*c e f g i - 663552b c f g i - 4976640a*c d*f g i + 1990656a*b*c*e*f g i - 8957952a e f g i + 11943936a d*f g i - 13824c d e f*h*i + 13824b*c*d*e f*h*i - 13824a*d*e f*h*i + 110592c d e f h*i - 110592b*c*d e f h*i - 13824b d*e f h*i + 165888a*d e f h*i - 221184c d e*f h*i + 221184b*c*d e f h*i + 110592b d e f h*i - 663552a*d e f h*i - 221184b d e*f h*i + 884736a*d e*f h*i - 110592c d*e f*g*h*i + 138240b*c e f*g*h*i - 152064a*c*e f*g*h*i - 1161216c d e f g*h*i + 1631232b*c d*e f g*h*i - 774144b c*e f g*h*i - 552960a*c*d*e f g*h*i + 691200a*b*e f g*h*i + 1105920c d f g*h*i - 774144b*c d e*f g*h*i - 1105920b c*d*e f g*h*i + 5750784a*c*d e f g*h*i + 608256b e f g*h*i - 2543616a*b*d*e f g*h*i + 884736b c*d f g*h*i - 4423680a*c*d f g*h*i + 221184b d*e*f g*h*i - 884736a*b*d e*f g*h*i + 110592c e f*g h*i + 1714176c d*e*f g h*i - 691200b*c e f g h*i - 870912a*c e f g h*i - 3594240b*c d*f g h*i + 4368384b c e*f g h*i - 6137856a*c d*e*f g h*i - 7299072a*b*c*e f g h*i + 9455616a e f g h*i - 2211840b c*f g h*i + 13934592a*b*c*d*f g h*i - 663552a*b e*f g h*i - 1990656a d*e*f g h*i - 995328c f g h*i + 8460288a*c f g h*i - 17915904a c*f g h*i + 110592c d e f*h i - 110592b*c d*e f*h i - 13824b c*e f*h i + 138240a*c*d*e f*h i + 13824a*b*e f*h i + 884736c d e*f h i - 1492992b*c d e f h i + 787968b c*d*e f h i + 387072a*c*d e f h i + 13824b e f h i - 774144a*b*d*e f h i - 221184b*c d f h i + 1050624b c*d e*f h i - 3760128a*c*d e*f h i - 635904b d*e f h i + 2543616a*b*d e f h i - 331776b d f h i + 1327104a*b*d f h i + 221184c d*e f*g*h i - 442368b*c e f*g*h i + 552960a*c e f*g*h i - 1105920c d f g*h i - 774144b*c d*e*f g*h i + 1078272b c e f g*h i + 663552a*c d*e f g*h i - 27648a*b*c*e f g*h i - 1575936a e f g*h i + 1050624b c d*f g*h i + 3760128a*c d f g*h i - 3262464b c*e*f g*h i + 8736768a*b*c*d*e*f g*h i + 3179520a*b e f g*h i - 12275712a d*e f g*h i + 1990656b f g*h i - 9400320a*b d*f g*h i + 2654208a d f g*h i - 221184c e*f*g h i + 2101248b*c f g h i - 1161216a*c e*f g h i - 11778048a*b*c f g h i + 7962624a c*e*f g h i + 13934592a b*f g h i - 221184c d e*f*h i + 221184b*c d*e f*h i + 110592b c e f*h i - 442368a*c d*e f*h i - 110592a*b*c*e f*h i - 13824a e f*h i - 221184b*c d f h i + 1050624b c d*e*f h i - 221184a*c d e*f h i - 635904b c*e f h i - 1105920a*b*c*d*e f h i + 566784a*b e f h i + 1603584a d*e f h i - 165888b c*d*f h i + 221184a*b*c*d f h i + 497664b e*f h i - 3262464a*b d*e*f h i + 5750784a d e*f h i + 442368b*c e*f*g*h i - 663552a*c e f*g*h i - 774144b c f g*h i + 2654208a*c d*f g*h i - 2985984a*b*c e*f g*h i + 4810752a c*e f g*h i + 5031936a*b c*f g*h i - 10616832a c*d*f g*h i - 3317760a b*e*f g*h i - 221184b c e*f*h i + 442368a*c d*e*f*h i + 221184a*b*c e f*h i + 110592a c*e f*h i - 331776b c f h i + 884736a*b*c d*f h i + 1714176a*b c*e*f h i - 2433024a c*d*e*f h i - 1935360a b*e f h i + 497664a*b f h i - 2211840a b*d*f h i - 1990656a c f g*h i + 7962624a f g*h i - 221184a c e*f*h i - 221184a b*c*f h i + 1327104a e*f h i + 13824c d e f*i - 13824b*c*d e f*i + 13824a*d e f*i - 110592c d e f i + 110592b*c*d e f i + 13824b d e f i - 165888a*d e f i + 221184c d f i - 221184b*c*d e*f i - 110592b d e f i + 663552a*d e f i + 221184b d f i - 884736a*d f i - 13824c d*e g*i + 13824b*c e g*i - 13824a*c*e g*i + 566784c d e f*g*i - 774144b*c d*e f*g*i + 165888b c*e f*g*i + 691200a*c*d*e f*g*i - 193536a*b*e f*g*i - 718848c d e*f g*i + 1078272b*c d e f g*i + 387072b c*d*e f g*i - 3373056a*c*d e f g*i - 165888b e f g*i + 940032a*b*d*e f g*i - 774144b*c d f g*i - 221184b c*d e*f g*i + 3317760a*c*d e*f g*i + 110592b d*e f g*i - 1216512a*b*d e f g*i - 442368b d f g*i + 2211840a*b*d f g*i + 13824c e g i - 1935360c d*e f*g i + 1603584b*c e f*g i - 1575936a*c e f*g i - 27648c d f g i + 4368384b*c d*e*f g i - 6303744b c e f g i + 7713792a*c d*e f g i + 6635520a*b*c*e f g i - 2861568a e f g i - 774144b c d*f g i + 1658880a*c d f g i + 5750784b c*e*f g i - 21897216a*b*c*d*e*f g i - 1658880a*b e f g i + 3981312a d*e f g i - 1769472b f g i + 7962624a*b d*f g i - 5971968a d f g i + 1327104c e*f*g i - 663552b*c f g i - 10948608a*c e*f g i + 4976640a*b*c f g i + 23887872a c*e*f g i - 11943936a b*f g i + 13824c d e h*i - 13824b*c d*e h*i + 13824a*c*d*e h*i - 635904c d e f*h*i + 787968b*c d e f*h*i - 110592b c*d*e f*h*i - 774144a*c*d e f*h*i + 138240a*b*d*e f*h*i - 331776c d f h*i + 1050624b*c d e*f h*i - 1492992b c*d e f h*i + 2543616a*c*d e f h*i + 110592b d*e f h*i + 387072a*b*d e f h*i - 221184b c*d f h*i + 1327104a*c*d f h*i + 884736b d e*f h*i - 3760128a*b*d e*f h*i + 110592c d*e g*h*i - 138240b*c e g*h*i + 152064a*c e g*h*i + 1714176c d e*f*g*h*i - 1105920b*c d*e f*g*h*i + 387072b c e f*g*h*i - 27648a*c d*e f*g*h*i - 552960a*b*c*e f*g*h*i + 539136a e f*g*h*i + 1050624b*c d f g*h*i - 1658880b c d*e*f g*h*i - 7962624a*c d e*f g*h*i + 2543616b c*e f g*h*i - 1990656a*b*c*d*e f g*h*i - 3373056a*b e f g*h*i + 6635520a d*e f g*h*i + 221184b c*d*f g*h*i - 2433024a*b*c*d f g*h*i - 2211840b e*f g*h*i + 10838016a*b d*e*f g*h*i + 663552a d e*f g*h*i - 110592c e g h*i - 221184c d*f*g h*i - 2433024b*c e*f*g h*i + 4810752a*c e f*g h*i - 774144b c f g h*i - 1161216a*c d*f g h*i + 19408896a*b*c e*f g h*i - 25380864a c*e f g h*i - 3317760a*b c*f g h*i + 7962624a c*d*f g h*i - 9953280a b*e*f g h*i - 110592c d e h i + 110592b*c d*e h i + 13824b c e h i - 138240a*c d*e h i - 13824a*b*c*e h i - 331776c d f*h i + 1050624b*c d e*f*h i - 1492992b c d*e f*h i + 1078272a*c d e f*h i + 110592b c*e f*h i + 1631232a*b*c*d*e f*h i - 138240a*b e f*h i - 456192a d*e f*h i - 912384b c d f h i + 2211840a*c d f h i + 1050624b c*d*e*f h i - 1658880a*b*c*d e*f h i - 110592b e f h i + 1078272a*b d*e f h i - 6303744a d e f h i - 331776b d*f h i + 2211840a*b d f h i - 3317760a d f h i - 221184c d*e*g*h i + 442368b*c e g*h i - 552960a*c e g*h i + 884736b*c d*f*g*h i - 221184b c e*f*g*h i - 2985984a*c d*e*f*g*h i + 663552a*b*c e f*g*h i - 870912a c*e f*g*h i + 2211840b c f g*h i - 7630848a*b*c d*f g*h i - 7962624a*b c*e*f g*h i + 19408896a c*d*e*f g*h i + 7713792a b*e f g*h i - 2543616a*b f g*h i + 8957952a b*d*f g*h i + 221184c g h i - 1990656a*c f*g h i + 9704448a c f g h i - 20901888a f g h i + 221184c d h i - 221184b*c d*e*h i - 110592b c e h i + 442368a*c d*e h i + 110592a*b*c e h i + 13824a c*e h i - 221184b c d*f*h i - 774144a*c d f*h i + 884736b c e*f*h i - 774144a*b*c d*e*f*h i - 1161216a*b c*e f*h i - 691200a c*d*e f*h i + 566784a b*e f*h i - 331776b c*f h i + 1050624a*b c*d*f h i - 774144a c*d f h i - 718848a*b e*f h i + 4368384a b*d*e*f h i - 442368b*c g*h i + 663552a*c e*g*h i + 2654208a*b*c f*g*h i - 1161216a c e*f*g*h i - 1161216a b*c*f g*h i - 10948608a e*f g*h i + 221184b c h i - 442368a*c d*h i - 221184a*b*c e*h i - 110592a c e h i - 1105920a*b c f*h i + 2101248a c d*f*h i + 1714176a b*c*e*f*h i - 414720a e f*h i - 27648a b f h i - 663552a d*f h i + 221184a c h i - 995328a c*f*h i - 13824c d e i + 13824b*c d e i - 13824a*c*d e i + 497664c d e*f*i - 635904b*c d e f*i + 110592b c*d e f*i + 608256a*c*d e f*i - 138240a*b*d e f*i - 331776b*c d f i + 884736b c*d e*f i - 2211840a*c*d e*f i - 110592b d e f i + 110592a*b*d e f i - 442368b d f i + 1769472a*b*d f i - 414720c d e g*i + 608256b*c d*e g*i - 165888b c e g*i - 470016a*c d*e g*i + 165888a*b*c*e g*i + 13824a e g*i + 497664c d f*g*i - 3262464b*c d e*f*g*i + 2543616b c d*e f*g*i + 3179520a*c d e f*g*i - 663552b c*e f*g*i - 2543616a*b*c*d*e f*g*i + 995328a*b e f*g*i - 1244160a d*e f*g*i + 2211840b c d f g*i - 2543616a*c d f g*i - 3760128b c*d*e*f g*i + 10838016a*b*c*d e*f g*i + 663552b e f g*i - 1216512a*b d*e f g*i - 1658880a d e f g*i + 1769472b d*f g*i - 8404992a*b d f g*i + 1769472a d f g*i + 1327104c d*e*g i - 1105920b*c e g i + 995328a*c e g i - 2211840b*c d*f*g i + 5750784b c e*f*g i - 3317760a*c d*e*f*g i - 12275712a*b*c e f*g i + 9455616a c*e f*g i - 3317760b c f g i + 8957952a*b*c d*f g i + 663552a*b c*e*f g i - 9953280a c*d*e*f g i + 3981312a b*e f g i + 1769472a*b f g i + 3981312a b*d*f g i - 884736c g i + 7962624a*c f*g i - 20901888a c f g i + 11943936a f g i + 497664c d e*h*i - 635904b*c d e h*i + 110592b c d*e h*i + 566784a*c d e h*i - 110592a*b*c*d*e h*i - 13824a d*e h*i - 165888b*c d f*h*i + 1050624b c d e*f*h*i - 3262464a*c d e*f*h*i + 221184b c*d*e f*h*i - 1105920a*b*c*d e f*h*i - 442368a*b d*e f*h*i + 1603584a d e f*h*i - 221184b c*d f h*i + 221184a*b*c*d f h*i - 221184b d*e*f h*i - 221184a*b d e*f h*i + 5750784a d e*f h*i - 995328c d g*h*i + 221184b*c d*e*g*h*i + 110592b c e g*h*i - 55296a*c d*e g*h*i + 276480a*b*c e g*h*i - 663552a c*e g*h*i + 221184b c d*f*g*h*i + 5031936a*c d f*g*h*i - 3760128b c e*f*g*h*i + 8736768a*b*c d*e*f*g*h*i + 5750784a*b c*e f*g*h*i - 7299072a c*d*e f*g*h*i - 2820096a b*e f*g*h*i + 1327104b c*f g*h*i - 2433024a*b c*d*f g*h*i - 3317760a c*d f g*h*i + 3317760a*b e*f g*h*i - 21897216a b*d*e*f g*h*i + 1769472b*c g h*i - 2654208a*c e*g h*i - 10616832a*b*c f*g h*i + 7962624a c e*f*g h*i + 7962624a b*c*f g h*i + 23887872a e*f g h*i - 331776b*c d h i + 884736b c d*e*h i - 718848a*c d e*h i - 110592b c e h i - 1161216a*b*c d*e h i + 110592a*b c*e h i + 566784a c*d*e h i + 13824a b*e h i - 221184b c d*f*h i + 1050624a*b*c d f*h i - 221184b c*e*f*h i - 774144a*b c*d*e*f*h i + 4368384a c*d e*f*h i + 442368a*b e f*h i - 691200a b*d*e f*h i + 221184b f h i - 774144a*b d*f h i - 774144a b*d f h i - 442368b c g*h i + 2433024a*c d*g*h i - 1105920a*b*c e*g*h i + 2239488a c e g*h i + 3760128a*b c f*g*h i - 11778048a c d*f*g*h i - 6137856a b*c*e*f*g*h i + 3234816a e f*g*h i + 1658880a b f g*h i + 4976640a d*f g*h i - 442368b c h i + 1105920a*b*c d*h i + 884736a*b c e*h i - 718848a c d*e*h i - 635904a b*c*e h i - 13824a e h i + 1105920a*b c*f*h i - 3594240a b*c*d*f*h i - 718848a b e*f*h i + 165888a d*e*f*h i - 1880064a c g*h i + 8460288a c*f*g*h i - 331776a b*c h i + 497664a c*e*h i + 497664a b*f*h i - 373248c d i + 497664b*c d e*i - 110592b c d e i - 414720a*c d e i + 110592a*b*c*d e i + 13824a d e i - 331776b c d f*i + 1990656a*c d f*i - 221184b c*d e*f*i + 221184a*b*c*d e*f*i + 442368a*b d e f*i - 1105920a d e f*i + 221184b d f i - 442368a*b d f i - 1769472a d f i + 1990656b*c d g*i - 2211840b c d*e*g*i - 331776a*c d e*g*i + 663552b c e g*i + 774144a*b*c d*e g*i - 663552a*b c*e g*i + 1492992a c*d*e g*i - 165888a b*e g*i + 1327104b c d*f*g*i - 9400320a*b*c d f*g*i + 884736b c*e*f*g*i - 884736a*b c*d*e*f*g*i - 663552a c*d e*f*g*i - 2211840a*b e f*g*i + 6967296a b*d*e f*g*i - 884736b f g*i + 2211840a*b d*f g*i + 7962624a b*d f g*i - 1769472b c g i - 2654208a*c d*g i + 7962624a*b*c e*g i - 6967296a c e g i + 2654208a*b c f*g i + 13934592a c d*f*g i - 1990656a b*c*e*f*g i - 8957952a e f*g i - 5971968a b f g i - 11943936a d*f g i - 331776b c d h*i + 497664a*c d h*i - 221184b c d*e*h*i + 1714176a*b*c d e*h*i + 221184a*b c*d*e h*i - 1935360a c*d e h*i + 110592a b*d*e h*i + 884736a*b c*d f*h*i - 2211840a c*d f*h*i + 442368a*b d*e*f*h*i - 2433024a b*d e*f*h*i + 1769472b c g*h*i - 4423680a*b*c d*g*h*i - 3538944a*b c e*g*h*i + 2654208a c d*e*g*h*i + 2322432a b*c*e g*h*i + 497664a e g*h*i - 4423680a*b c*f*g*h*i + 13934592a b*c*d*f*g*h*i + 2654208a b e*f*g*h*i + 1990656a d*e*f*g*h*i + 3981312a c g h*i - 17915904a c*f*g h*i + 221184b c h i - 1105920a*b c d*h i - 27648a c d h i - 221184a*b c*e*h i + 1714176a b*c*d*e*h i - 110592a b e h i - 414720a d*e h i - 442368a*b f*h i + 2101248a b d*f*h i - 663552a d f*h i + 3317760a b*c g*h i - 4976640a c*e*g*h i - 4976640a b*f*g*h i - 331776a b c*h i + 497664a c*d*h i + 497664a b*e*h i - 373248a h i + 221184b c d i - 995328a*b*c d i - 221184a*b c*d e*i + 1327104a c*d e*i - 110592a b*d e i - 442368a*b d f*i + 1769472a b*d f*i - 884736b c g*i + 4423680a*b c d*g*i + 331776a c d g*i + 884736a*b c*e*g*i - 5971968a b*c*d*e*g*i + 663552a b e g*i - 995328a d*e g*i + 1769472a*b f*g*i - 7962624a b d*f*g*i - 7962624a b*c g i + 11943936a c*e*g i + 11943936a b*f*g i - 221184a b*c*d h*i - 221184a b d*e*h*i + 1327104a d e*h*i + 1327104a b c*g*h*i - 1990656a c*d*g*h*i - 1990656a b*e*g*h*i + 221184a b h i - 995328a b*d*h i + 2985984a g*h i + 221184a b d i - 884736a d i - 884736a b g*i + 3981312a b*d*g*i - 5971968a g i - 13824c d*e g*j + 13824b*c*e g*j - 13824a*e g*j + 152064c d e f*g*j - 152064b*c*d*e f*g*j - 13824b e f*g*j + 207360a*d*e f*g*j - 552960c d e f g*j + 552960b*c*d e f g*j + 152064b d*e f g*j - 1161216a*d e f g*j + 663552c d e*f g*j - 663552b*c*d e f g*j - 552960b d e f g*j + 2875392a*d e f g*j + 663552b d e*f g*j - 2654208a*d e*f g*j + 13824c e g j - 663552c d*e f*g j + 539136b*c e f*g j - 622080a*c*e f*g j + 2239488c d e f g j - 870912b*c d*e f g j - 1575936b c*e f g j + 4727808a*c*d*e f g j + 1119744a*b*e f g j - 1880064c d f g j - 1161216b*c d e*f g j + 4810752b c*d*e f g j - 10948608a*c*d e f g j + 995328b e f g j - 7464960a*b*d*e f g j - 1990656b c*d f g j + 7962624a*c*d f g j - 2654208b d*e*f g j + 11943936a*b*d e*f g j + 497664c e f*g j - 4976640c d*e*f g j + 3234816b*c e f g j - 7091712a*c e f g j + 8460288b*c d*f g j - 10948608b c e*f g j + 25380864a*c d*e*f g j + 7464960a*b*c*e f g j + 7464960a e f g j + 7962624b c*f g j - 35831808a*b*c*d*f g j - 17915904a d*e*f g j + 2985984c f g j - 25380864a*c f g j + 53747712a c*f g j + 13824c d e h*j - 13824b*c*d*e h*j + 13824a*d*e h*j - 138240c d e f*h*j + 138240b*c*d e f*h*j + 13824b d*e f*h*j - 193536a*d e f*h*j + 442368c d e f h*j - 442368b*c*d e f h*j - 138240b d e f h*j + 995328a*d e f h*j - 442368c d f h*j + 442368b*c*d e*f h*j + 442368b d e f h*j - 2211840a*d e f h*j - 442368b d f h*j + 1769472a*d f h*j + 165888c d*e g*h*j - 193536b*c e g*h*j + 207360a*c*e g*h*j + 276480c d e f*g*h*j - 552960b*c d*e f*g*h*j + 691200b c*e f*g*h*j - 663552a*c*d*e f*g*h*j - 539136a*b*e f*g*h*j - 1105920c d e*f g*h*j + 663552b*c d e f g*h*j - 27648b c*d*e f g*h*j - 1658880a*c*d e f g*h*j - 470016b e f g*h*j + 2156544a*b*d*e f g*h*j + 2654208b*c d f g*h*j - 2985984b c*d e*f g*h*j + 3981312a*c*d e*f g*h*j - 55296b d*e f g*h*j + 2654208a*b*d e f g*h*j + 2433024b d f g*h*j - 10616832a*b*d f g*h*j - 165888c e g h*j + 2322432c d*e f*g h*j - 2820096b*c e f*g h*j + 4727808a*c e f*g h*j + 3317760c d f g h*j - 6137856b*c d*e*f g h*j + 7713792b c e f g h*j - 11197440a*c d*e f g h*j - 2737152a*b*c*e f g h*j - 7464960a e f g h*j - 1161216b c d*f g h*j - 16920576a*c d f g h*j - 3317760b c*e*f g h*j + 20901888a*b*c*d*e*f g h*j - 2488320a*b e f g h*j + 8957952a d*e f g h*j - 2654208b f g h*j + 11943936a*b d*f g h*j + 11943936a d f g h*j - 1990656c e*f*g h*j - 4976640b*c f g h*j + 25380864a*c e*f g h*j + 25380864a*b*c f g h*j - 71663616a c*e*f g h*j - 17915904a b*f g h*j - 165888c d e h j + 165888b*c d*e h j + 13824b c*e h j - 193536a*c*d*e h j - 13824a*b*e h j + 110592c d e f*h j + 387072b*c d e f*h j - 774144b c*d*e f*h j + 940032a*c*d e f*h j - 13824b e f*h j + 691200a*b*d*e f*h j - 442368c d f h j - 221184b*c d e*f h j + 1078272b c*d e f h j - 1216512a*c*d e f h j + 566784b d*e f h j - 3373056a*b*d e f h j - 774144b c*d f h j + 2211840a*c*d f h j - 718848b d e*f h j + 3317760a*b*d e*f h j - 663552c d*e g*h j + 995328b*c e g*h j - 1161216a*c e g*h j - 3538944c d e*f*g*h j + 5750784b*c d*e f*g*h j - 3373056b c e f*g*h j - 1658880a*c d*e f*g*h j + 2156544a*b*c*e f*g*h j + 1119744a e f*g*h j + 3760128b*c d f g*h j - 7962624b c d*e*f g*h j + 19906560a*c d e*f g*h j + 3179520b c*e f g*h j - 9455616a*b*c*d*e f g*h j - 1119744a*b e f g*h j + 8460288a d*e f g*h j + 5031936b c*d*f g*h j - 17252352a*b*c*d f g*h j - 331776b e*f g*h j + 2156544a*b d*e*f g*h j - 15925248a d e*f g*h j + 663552c e g h j + 1327104c d*f*g h j + 2654208b*c e*f*g h j - 10948608a*c e f*g h j + 1658880b c f g h j - 16920576a*c d*f g h j - 11943936a*b*c e*f g h j + 34338816a c*e f g h j - 8460288a*b c*f g h j + 47775744a c*d*f g h j + 5971968a b*e*f g h j + 663552c d e h j - 663552b*c d*e h j - 165888b c e h j + 995328a*c d*e h j + 165888a*b*c*e h j + 13824a e h j + 1769472c d f*h j - 3760128b*c d e*f*h j + 2543616b c d*e f*h j - 1216512a*c d e f*h j + 608256b c*e f*h j - 2543616a*b*c*d*e f*h j - 470016a*b e f*h j - 1244160a d*e f*h j + 2211840b c d f h j - 8404992a*c d f h j - 3262464b c*d*e*f h j + 10838016a*b*c*d e*f h j - 414720b e f h j + 3179520a*b d*e f h j - 1658880a d e f h j + 497664b d*f h j - 2543616a*b d f h j + 1769472a d f h j + 884736c d*e*g*h j - 2211840b*c e g*h j + 2875392a*c e g*h j - 4423680b*c d*f*g*h j + 3317760b c e*f*g*h j + 3981312a*c d*e*f*g*h j + 2654208a*b*c e f*g*h j - 7464960a c*e f*g*h j - 2543616b c f g*h j + 17915904a*b*c d*f g*h j + 2156544a*b c*e*f g*h j - 35831808a c*d*e*f g*h j - 2488320a b*e f g*h j - 829440a*b f g*h j + 7962624a b*d*f g*h j - 884736c g h j + 7962624a*c f*g h j - 14929920a c f g h j - 11943936a f g h j - 884736c d h j + 884736b*c d*e*h j + 663552b c e h j - 2211840a*c d*e h j - 663552a*b*c e h j - 165888a c*e h j + 1327104b c d*f*h j + 2211840a*c d f*h j - 2211840b c e*f*h j - 884736a*b*c d*e*f*h j + 774144a*b c*e f*h j + 6967296a c*d*e f*h j + 1492992a b*e f*h j + 1990656b c*f h j - 9400320a*b c*d*f h j + 7962624a c*d f h j - 331776a*b e*f h j - 663552a b*d*e*f h j + 1769472b*c g*h j - 2654208a*c e*g*h j - 10616832a*b*c f*g*h j + 11943936a c e*f*g*h j + 11943936a b*c*f g*h j - 884736b c h j + 1769472a*c d*h j + 884736a*b*c e*h j + 663552a c e h j + 4423680a*b c f*h j - 7962624a c d*f*h j - 5971968a b*c*e*f*h j - 995328a e f*h j + 331776a b f h j - 884736a c h j + 3981312a c*f*h j - 13824c d e i*j + 13824b*c*d e i*j - 13824a*d e i*j + 110592c d e f*i*j - 110592b*c*d e f*i*j - 13824b d e f*i*j + 165888a*d e f*i*j - 221184c d e*f i*j + 221184b*c*d e f i*j + 110592b d e f i*j - 663552a*d e f i*j - 221184b d e*f i*j + 884736a*d e*f i*j - 470016c d e g*i*j + 691200b*c d*e g*i*j - 193536b c*e g*i*j - 539136a*c*d*e g*i*j + 207360a*b*e g*i*j - 55296c d e f*g*i*j - 27648b*c d e f*g*i*j - 552960b c*d*e f*g*i*j + 2156544a*c*d e f*g*i*j + 165888b e f*g*i*j - 663552a*b*d*e f*g*i*j + 2433024c d f g*i*j - 2985984b*c d e*f g*i*j + 663552b c*d e f g*i*j + 2654208a*c*d e f g*i*j + 276480b d*e f g*i*j - 1658880a*b*d e f g*i*j + 2654208b c*d f g*i*j - 10616832a*c*d f g*i*j - 1105920b d e*f g*i*j + 3981312a*b*d e*f g*i*j + 1492992c d*e g i*j - 1244160b*c e g i*j + 1119744a*c e g i*j + 2654208c d e*f*g i*j - 7299072b*c d*e f*g i*j + 6635520b c e f*g i*j - 2737152a*c d*e f*g i*j - 8460288a*b*c*e f*g i*j + 4105728a e f*g i*j - 11778048b*c d f g i*j + 19408896b c d*e*f g i*j - 11943936a*c d e*f g i*j - 12275712b c*e f g i*j + 16422912a*b*c*d*e f g i*j + 8460288a*b e f g i*j - 8957952a d*e f g i*j - 10616832b c*d*f g i*j + 47775744a*b*c*d f g i*j + 7962624b e*f g i*j - 35831808a*b d*e*f g i*j + 5971968a d e*f g i*j - 995328c e g i*j - 1990656c d*f*g i*j + 1990656b*c e*f*g i*j + 7464960a*c e f*g i*j + 4976640b c f g i*j + 25380864a*c d*f g i*j - 40310784a*b*c e*f g i*j + 4478976a c*e f g i*j - 71663616a c*d*f g i*j + 53747712a b*e*f g i*j + 608256c d e h*i*j - 774144b*c d e h*i*j + 138240b c*d*e h*i*j + 691200a*c*d e h*i*j - 152064a*b*d*e h*i*j + 221184c d e*f*h*i*j - 1105920b*c d e f*h*i*j + 1631232b c*d e f*h*i*j - 2543616a*c*d e f*h*i*j - 110592b d*e f*h*i*j - 552960a*b*d e f*h*i*j + 884736b*c d f h*i*j - 774144b c*d e*f h*i*j - 884736a*c*d e*f h*i*j - 1161216b d e f h*i*j + 5750784a*b*d e f h*i*j + 1105920b d f h*i*j - 4423680a*b*d f h*i*j + 774144c d e g*h*i*j - 2543616b*c d*e g*h*i*j + 940032b c e g*h*i*j + 2156544a*c d*e g*h*i*j - 663552a*b*c*e g*h*i*j - 622080a e g*h*i*j - 4423680c d f*g*h*i*j + 8736768b*c d e*f*g*h*i*j - 1990656b c d*e f*g*h*i*j - 9455616a*c d e f*g*h*i*j - 2543616b c*e f*g*h*i*j + 13934592a*b*c*d*e f*g*h*i*j + 2156544a*b e f*g*h*i*j - 8460288a d*e f*g*h*i*j - 7630848b c d f g*h*i*j + 17915904a*c d f g*h*i*j + 8736768b c*d*e*f g*h*i*j - 23887872a*b*c*d e*f g*h*i*j + 774144b e f g*h*i*j - 9455616a*b d*e f g*h*i*j + 5971968a d e f g*h*i*j - 4423680b d*f g*h*i*j + 17915904a*b d f g*h*i*j + 7962624a d f g*h*i*j - 5971968c d*e*g h*i*j + 6967296b*c e g h*i*j - 7464960a*c e g h*i*j + 13934592b*c d*f*g h*i*j - 21897216b c e*f*g h*i*j + 20901888a*c d*e*f*g h*i*j + 16422912a*b*c e f*g h*i*j - 746496a c*e f*g h*i*j + 8957952b c f g h*i*j - 43296768a*b*c d*f g h*i*j + 14929920a*b c*e*f g h*i*j + 20901888a c*d*e*f g h*i*j - 14929920a b*e f g h*i*j + 7962624a*b f g h*i*j - 65691648a b*d*f g h*i*j + 3981312c g h*i*j - 35831808a*c f*g h*i*j + 67184640a c f g h*i*j + 53747712a f g h*i*j - 2211840c d e*h i*j + 2543616b*c d e h i*j + 387072b c d*e h i*j - 3373056a*c d e h i*j - 138240b c*e h i*j - 552960a*b*c*d*e h i*j + 152064a*b e h i*j + 539136a d*e h i*j + 221184b*c d f*h i*j - 1658880b c d e*f*h i*j + 10838016a*c d e*f*h i*j - 1105920b c*d*e f*h i*j - 1990656a*b*c*d e f*h i*j + 110592b e f*h i*j - 27648a*b d*e f*h i*j + 6635520a d e f*h i*j + 1050624b c*d f h i*j - 2433024a*b*c*d f h i*j + 1714176b d*e*f h i*j - 7962624a*b d e*f h i*j + 663552a d e*f h i*j + 4423680c d g*h i*j - 884736b*c d*e*g*h i*j - 1216512b c e g*h i*j + 2654208a*c d*e g*h i*j - 1658880a*b*c e g*h i*j + 4727808a c*e g*h i*j - 2433024b c d*f*g*h i*j - 17252352a*c d f*g*h i*j + 10838016b c e*f*g*h i*j - 23887872a*b*c d*e*f*g*h i*j - 9455616a*b c*e f*g*h i*j + 16422912a c*d*e f*g*h i*j - 2737152a b*e f*g*h i*j - 9400320b c*f g*h i*j + 36329472a*b c*d*f g*h i*j - 11943936a c*d f g*h i*j + 2156544a*b e*f g*h i*j + 14929920a b*d*e*f g*h i*j - 7962624b*c g h i*j + 11943936a*c e*g h i*j + 47775744a*b*c f*g h i*j - 56733696a c e*f*g h i*j - 56733696a b*c*f g h i*j + 17915904a e*f g h i*j + 1327104b*c d h i*j - 3760128b c d*e*h i*j + 3317760a*c d e*h i*j + 110592b c e h i*j + 5750784a*b*c d*e h i*j + 276480a*b c*e h i*j - 2820096a c*d*e h i*j - 663552a b*e h i*j + 221184b c d*f*h i*j - 2433024a*b*c d f*h i*j + 221184b c*e*f*h i*j + 8736768a*b c*d*e*f*h i*j - 21897216a c*d e*f*h i*j - 55296a*b e f*h i*j - 7299072a b*d*e f*h i*j - 995328b f h i*j + 5031936a*b d*f h i*j - 3317760a b*d f h i*j + 2211840b c g*h i*j - 10616832a*c d*g*h i*j + 3981312a*b*c e*g*h i*j - 10948608a c e g*h i*j - 17252352a*b c f*g*h i*j + 47775744a c d*f*g*h i*j + 20901888a b*c*e*f*g*h i*j + 7464960a e f*g*h i*j - 8460288a b f g*h i*j + 1769472b c h i*j - 4423680a*b*c d*h i*j - 3538944a*b c e*h i*j + 2654208a c d*e*h i*j + 2322432a b*c*e h i*j + 497664a e h i*j - 4423680a*b c*f*h i*j + 13934592a b*c*d*f*h i*j + 2654208a b e*f*h i*j + 1990656a d*e*f*h i*j + 7962624a c g*h i*j - 35831808a c*f*g*h i*j + 1327104a b*c h i*j - 1990656a c*e*h i*j - 1990656a b*f*h i*j - 414720c d e i j + 566784b*c d e i j - 138240b c*d e i j - 470016a*c*d e i j + 152064a*b*d e i j - 995328c d f*i j + 1714176b*c d e*f*i j - 1161216b c*d e f*i j + 774144a*c*d e f*i j + 110592b d e f*i j + 276480a*b*d e f*i j - 1105920b c*d f i j + 4423680a*c*d f i j + 884736b d e*f i j - 3538944a*b*d e*f i j - 331776c d e*g*i j + 3179520b*c d e g*i j - 3373056b c d*e g*i j - 1119744a*c d e g*i j + 995328b c*e g*i j + 2156544a*b*c*d*e g*i j - 1161216a*b e g*i j + 1119744a d*e g*i j + 5031936b*c d f*g*i j - 7962624b c d e*f*g*i j + 2156544a*c d e*f*g*i j + 5750784b c*d*e f*g*i j - 9455616a*b*c*d e f*g*i j - 663552b e f*g*i j - 1658880a*b d*e f*g*i j + 8460288a d e f*g*i j + 3760128b c*d f g*i j - 17252352a*b*c*d f g*i j - 3538944b d*e*f g*i j + 19906560a*b d e*f g*i j - 15925248a d e*f g*i j + 331776c d g i j - 663552b*c d*e*g i j - 1658880b c e g i j - 2488320a*c d*e g i j + 8460288a*b*c e g i j - 7464960a c*e g i j - 3317760b c d*f*g i j - 8460288a*c d f*g i j + 663552b c e*f*g i j + 14929920a*b*c d*e*f*g i j + 5971968a*b c*e f*g i j - 14929920a c*d*e f*g i j - 8957952a b*e f*g i j + 2654208b c*f g i j - 11943936a*b c*d*f g i j + 29859840a c*d f g i j - 15925248a*b e*f g i j + 47775744a b*d*e*f g i j + 17915904a c e*f*g i j + 17915904a b*c*f g i j - 107495424a e*f g i j + 1990656c d h*i j - 3262464b*c d e*h*i j + 1078272b c d e h*i j + 3179520a*c d e h*i j - 442368b c*d*e h*i j - 27648a*b*c*d e h*i j + 552960a*b d*e h*i j - 1575936a d e h*i j + 1050624b c d f*h*i j - 9400320a*c d f*h*i j - 774144b c*d e*f*h*i j + 8736768a*b*c*d e*f*h*i j + 221184b d*e f*h*i j + 663552a*b d e f*h*i j - 12275712a d e f*h*i j - 1105920b d f h*i j + 3760128a*b d f h*i j + 2654208a d f h*i j - 9400320b*c d g*h*i j + 10838016b c d*e*g*h*i j + 2156544a*c d e*g*h*i j - 1216512b c e g*h*i j - 9455616a*b*c d*e g*h*i j - 1658880a*b c*e g*h*i j - 2737152a c*d*e g*h*i j + 4727808a b*e g*h*i j - 2433024b c d*f*g*h*i j + 36329472a*b*c d f*g*h*i j - 884736b c*e*f*g*h*i j - 23887872a*b c*d*e*f*g*h*i j + 14929920a c*d e*f*g*h*i j + 2654208a*b e f*g*h*i j + 16422912a b*d*e f*g*h*i j + 4423680b f g*h*i j - 17252352a*b d*f g*h*i j - 11943936a b*d f g*h*i j + 7962624b c g h*i j + 11943936a*c d*g h*i j - 35831808a*b*c e*g h*i j + 34338816a c e g h*i j - 11943936a*b c f*g h*i j - 56733696a c d*f*g h*i j + 20901888a b*c*e*f*g h*i j + 4478976a e f*g h*i j + 29859840a b f g h*i j + 17915904a d*f g h*i j + 2211840b c d h i j - 2543616a*c d h i j - 221184b c d*e*h i j - 7962624a*b*c d e*h i j + 442368b c*e h i j + 663552a*b c*d*e h i j + 7713792a c*d e h i j - 552960a*b e h i j - 870912a b*d*e h i j + 884736b c*d*f*h i j - 7630848a*b c*d f*h i j + 8957952a c*d f*h i j - 221184b e*f*h i j - 2985984a*b d*e*f*h i j + 19408896a b*d e*f*h i j - 8404992b c g*h i j + 17915904a*b*c d*g*h i j + 19906560a*b c e*g*h i j - 11943936a c d*e*g*h i j - 11197440a b*c*e g*h i j - 7091712a e g*h i j + 17915904a*b c*f*g*h i j - 43296768a b*c*d*f*g*h i j - 11943936a b e*f*g*h i j - 40310784a d*e*f*g*h i j - 14929920a c g h i j + 67184640a c*f*g h i j - 442368b c h i j + 3760128a*b c d*h i j + 1658880a c d h i j - 1105920a*b c*e*h i j - 6137856a b*c*d*e*h i j + 2239488a b e h i j + 3234816a d*e h i j + 2433024a*b f*h i j - 11778048a b d*f*h i j + 4976640a d f*h i j - 16920576a b*c g*h i j + 25380864a c*e*g*h i j + 25380864a b*f*g*h i j + 3317760a b c*h i j - 4976640a c*d*h i j - 4976640a b*e*h i j + 2985984a h i j + 497664b*c d i j - 718848b c d e*i j - 331776a*c d e*i j + 442368b c*d e i j - 55296a*b*c*d e i j - 552960a*b d e i j + 995328a d e i j + 1105920b c*d f*i j - 4423680a*b*c*d f*i j - 221184b d e*f*i j - 1105920a*b d e*f*i j + 7962624a d e*f*i j - 2543616b c d g*i j - 829440a*c d g*i j + 3317760b c d*e*g*i j + 2156544a*b*c d e*g*i j - 2211840b c*e g*i j + 2654208a*b c*d*e g*i j - 2488320a c*d e g*i j + 2875392a*b e g*i j - 7464960a b*d*e g*i j - 4423680b c*d*f*g*i j + 17915904a*b c*d f*g*i j + 7962624a c*d f*g*i j + 884736b e*f*g*i j + 3981312a*b d*e*f*g*i j - 35831808a b*d e*f*g*i j + 1769472b c g i j + 7962624a*b*c d*g i j - 15925248a*b c e*g i j + 5971968a c d*e*g i j + 8957952a b*c*e g i j + 7464960a e g i j + 7962624a*b c*f*g i j - 65691648a b*c*d*f*g i j + 5971968a b e*f*g i j + 53747712a d*e*f*g i j - 11943936a c g i j + 53747712a c*f*g i j - 774144b c d h*i j + 5031936a*b*c d h*i j + 442368b c*d*e*h*i j - 2985984a*b c*d e*h*i j - 3317760a c*d e*h*i j - 663552a*b d*e h*i j + 4810752a b*d e h*i j + 2654208a*b d f*h*i j - 10616832a b*d f*h*i j + 2211840b c g*h*i j - 17252352a*b c d*g*h*i j - 8460288a c d g*h*i j + 3981312a*b c*e*g*h*i j + 20901888a b*c*d*e*g*h*i j - 10948608a b e g*h*i j + 7464960a d*e g*h*i j - 10616832a*b f*g*h*i j + 47775744a b d*f*g*h*i j + 47775744a b*c g h*i j - 71663616a c*e*g h*i j - 71663616a b*f*g h*i j - 442368b c*h i j + 2654208a*b c*d*h i j - 1161216a b*c*d h i j + 663552a*b e*h i j - 1161216a b d*e*h i j - 10948608a d e*h i j - 16920576a b c*g*h i j + 25380864a c*d*g*h i j + 25380864a b*e*g*h i j - 1880064a b h i j + 8460288a b*d*h i j - 25380864a g*h i j - 442368b c*d i j + 2433024a*b c*d i j - 2654208a c*d i j + 663552a*b d e*i j - 2654208a b*d e*i j + 1769472b c*g*i j - 10616832a*b c*d*g*i j + 11943936a b*c*d g*i j - 2654208a*b e*g*i j + 11943936a b d*e*g*i j + 11943936a b c*g i j - 17915904a c*d*g i j - 17915904a b*e*g i j - 1990656a b d h*i j + 7962624a d h*i j + 7962624a b g*h*i j - 35831808a b*d*g*h*i j + 53747712a g h*i j + 13824c d e j - 13824b*c*d e j + 13824a*d e j - 110592c d e f*j + 110592b*c*d e f*j + 13824b d e f*j - 165888a*d e f*j + 221184c d f j - 221184b*c*d e*f j - 110592b d e f j + 663552a*d e f j + 221184b d f j - 884736a*d f j + 995328c d e g*j - 1575936b*c d e g*j + 539136b c*d*e g*j + 1119744a*c*d e g*j + 13824b e g*j - 622080a*b*d*e g*j - 2654208c d e*f*g*j + 4810752b*c d e f*g*j - 870912b c*d e f*g*j - 7464960a*c*d e f*g*j - 663552b d*e f*g*j + 4727808a*b*d e f*g*j - 1990656b*c d f g*j - 1161216b c*d e*f g*j + 11943936a*c*d e*f g*j + 2239488b d e f g*j - 10948608a*b*d e f g*j - 1880064b d f g*j + 7962624a*b*d f g*j - 6967296c d e g j + 9455616b*c d*e g j - 2861568b c e g j - 7464960a*c d*e g j + 4105728a*b*c*e g j - 1119744a e g j + 3981312c d f*g j + 7962624b*c d e*f*g j - 25380864b c d*e f*g j + 34338816a*c d e f*g j + 9455616b c*e f*g j - 746496a*b*c*d*e f*g j - 7464960a*b e f*g j + 1119744a d*e f*g j + 9704448b c d f g j - 14929920a*c d f g j + 7962624b c*d*e*f g j - 56733696a*b*c*d e*f g j - 6967296b e f g j + 34338816a*b d*e f g j + 8957952a d e f g j + 3981312b d*f g j - 14929920a*b d f g j - 17915904a d f g j + 11943936c d*e*g j - 8957952b*c e g j + 7464960a*c e g j - 17915904b*c d*f*g j + 23887872b c e*f*g j - 71663616a*c d*e*f*g j + 4478976a*b*c e f*g j - 3359232a c*e f*g j - 20901888b c f g j + 67184640a*b*c d*f g j + 17915904a*b c*e*f g j + 67184640a c*d*e*f g j - 60466176a b*e f g j - 11943936a*b f g j + 80621568a b*d*f g j - 5971968c g j + 53747712a*c f*g j - 100776960a c f g j - 80621568a f g j - 1105920c d e h*j + 1603584b*c d e h*j - 456192b c*d e h*j - 1244160a*c*d e h*j - 13824b d*e h*j + 539136a*b*d e h*j + 1769472c d f*h*j - 2433024b*c d e*f*h*j - 691200b c*d e f*h*j + 6967296a*c*d e f*h*j + 566784b d e f*h*j - 2820096a*b*d e f*h*j + 2101248b c*d f h*j - 7962624a*c*d f h*j - 718848b d e*f h*j + 2654208a*b*d e*f h*j + 7962624c d e*g*h*j - 12275712b*c d e g*h*j + 6635520b c d*e g*h*j + 8460288a*c d e g*h*j - 1244160b c*e g*h*j - 8460288a*b*c*d*e g*h*j + 1119744a*b e g*h*j + 4105728a d*e g*h*j - 10616832b*c d f*g*h*j + 19408896b c d e*f*g*h*j - 35831808a*c d e*f*g*h*j - 7299072b c*d*e f*g*h*j + 16422912a*b*c*d e f*g*h*j + 1492992b e f*g*h*j - 2737152a*b d*e f*g*h*j - 8957952a d e f*g*h*j - 11778048b c*d f g*h*j + 47775744a*b*c*d f g*h*j + 2654208b d*e*f g*h*j - 11943936a*b d e*f g*h*j + 5971968a d e*f g*h*j - 7962624c d g h*j - 1990656b*c d*e*g h*j + 3981312b c e g h*j + 8957952a*c d*e g h*j - 8957952a*b*c e g h*j + 1119744a c*e g h*j + 7962624b c d*f*g h*j + 47775744a*c d f*g h*j - 9953280b c e*f*g h*j + 20901888a*b*c d*e*f*g h*j - 14929920a*b c*e f*g h*j - 38071296a c*d*e f*g h*j + 41430528a b*e f*g h*j + 13934592b c*f g h*j - 56733696a*b c*d*f g h*j - 44789760a c*d f g h*j + 5971968a*b e*f g h*j - 22394880a b*d*e*f g h*j + 11943936b*c g h*j - 17915904a*c e*g h*j - 71663616a*b*c f*g h*j + 67184640a c e*f*g h*j + 67184640a b*c*f g h*j + 80621568a e*f g h*j - 1769472c d h j + 5750784b*c d e*h j - 6303744b c d e h j - 1658880a*c d e h j + 1603584b c*d*e h j + 6635520a*b*c*d e h j + 13824b e h j - 1575936a*b d*e h j - 2861568a d e h j - 774144b c d f*h j + 7962624a*c d f*h j + 4368384b c*d e*f*h j - 21897216a*b*c*d e*f*h j - 1935360b d*e f*h j + 7713792a*b d e f*h j + 3981312a d e f*h j - 27648b d f h j + 1658880a*b d f h j - 5971968a d f h j + 2654208b*c d g*h j + 663552b c d*e*g*h j - 15925248a*c d e*g*h j - 1658880b c e g*h j + 5971968a*b*c d*e g*h j + 8460288a*b c*e g*h j - 8957952a c*d*e g*h j - 7464960a b*e g*h j - 3317760b c d*f*g*h j - 11943936a*b*c d f*g*h j - 663552b c*e*f*g*h j + 14929920a*b c*d*e*f*g*h j + 47775744a c*d e*f*g*h j - 2488320a*b e f*g*h j - 14929920a b*d*e f*g*h j + 331776b f g*h j - 8460288a*b d*f g*h j + 29859840a b*d f g*h j - 5971968b c g h j + 11943936a*c d*g h j + 5971968a*b*c e*g h j + 8957952a c e g h j + 29859840a*b c f*g h j - 44789760a c d*f*g h j - 22394880a b*c*e*f*g h j - 60466176a e f*g h j + 6718464a b f g h j - 53747712a d*f g h j - 3317760b c d h j + 1769472a*c d h j + 5750784b c d*e*h j + 663552a*b*c d e*h j - 1105920b c*e h j - 12275712a*b c*d*e h j + 3981312a c*d e h j + 995328a*b e h j + 9455616a b*d*e h j - 2211840b c*d*f*h j + 8957952a*b c*d f*h j + 3981312a c*d f*h j + 1327104b e*f*h j - 3317760a*b d*e*f*h j - 9953280a b*d e*f*h j + 1769472b c g*h j + 7962624a*b*c d*g*h j - 15925248a*b c e*g*h j + 5971968a c d*e*g*h j + 8957952a b*c*e g*h j + 7464960a e g*h j + 7962624a*b c*f*g*h j - 65691648a b*c*d*f*g*h j + 5971968a b e*f*g*h j + 53747712a d*e*f*g*h j - 17915904a c g h j + 80621568a c*f*g h j - 1769472b c h j + 2654208a*b c d*h j - 5971968a c d h j + 7962624a*b c*e*h j - 1990656a b*c*d*e*h j - 6967296a b e h j - 8957952a d*e h j - 2654208a*b f*h j + 13934592a b d*f*h j - 11943936a d f*h j + 11943936a b*c g*h j - 17915904a c*e*g*h j - 17915904a b*f*g*h j - 7962624a b c*h j + 11943936a c*d*h j + 11943936a b*e*h j - 5971968a h j + 1327104c d e*i*j - 1935360b*c d e i*j + 566784b c*d e i*j + 1492992a*c*d e i*j + 13824b d e i*j - 663552a*b*d e i*j - 221184b*c d f*i*j + 1714176b c*d e*f*i*j - 5971968a*c*d e*f*i*j - 635904b d e f*i*j + 2322432a*b*d e f*i*j - 331776b d f i*j + 1327104a*b*d f i*j - 2654208c d g*i*j - 3317760b*c d e*g*i*j + 7713792b c d e g*i*j - 2488320a*c d e g*i*j - 2820096b c*d*e g*i*j - 2737152a*b*c*d e g*i*j - 165888b e g*i*j + 4727808a*b d*e g*i*j - 7464960a d e g*i*j - 1161216b c d f*g*i*j + 11943936a*c d f*g*i*j - 6137856b c*d e*f*g*i*j + 20901888a*b*c*d e*f*g*i*j + 2322432b d*e f*g*i*j - 11197440a*b d e f*g*i*j + 8957952a d e f*g*i*j + 3317760b d f g*i*j - 16920576a*b d f g*i*j + 11943936a d f g*i*j + 13934592b*c d g i*j - 9953280b c d*e*g i*j + 5971968a*c d e*g i*j + 3981312b c e g i*j - 14929920a*b*c d*e g i*j - 8957952a*b c*e g i*j + 41430528a c*d*e g i*j + 1119744a b*e g i*j + 7962624b c d*f*g i*j - 56733696a*b*c d f*g i*j - 1990656b c*e*f*g i*j + 20901888a*b c*d*e*f*g i*j - 22394880a c*d e*f*g i*j + 8957952a*b e f*g i*j - 38071296a b*d*e f*g i*j - 7962624b f g i*j + 47775744a*b d*f g i*j - 44789760a b*d f g i*j - 11943936b c g i*j - 17915904a*c d*g i*j + 53747712a*b*c e*g i*j - 60466176a c e g i*j + 17915904a*b c f*g i*j + 67184640a c d*f*g i*j - 67184640a b*c*e*f*g i*j + 100776960a e f*g i*j - 53747712a b f g i*j + 80621568a d*f g i*j - 2211840b*c d h*i*j + 4368384b c d e*h*i*j - 663552a*c d e*h*i*j - 691200b c*d e h*i*j - 7299072a*b*c*d e h*i*j + 110592b d*e h*i*j - 870912a*b d e h*i*j + 9455616a d e h*i*j - 3594240b c*d f*h*i*j + 13934592a*b*c*d f*h*i*j + 1714176b d e*f*h*i*j - 6137856a*b d e*f*h*i*j - 1990656a d e*f*h*i*j + 8957952b c d g*h*i*j + 7962624a*c d g*h*i*j - 21897216b c d*e*g*h*i*j + 14929920a*b*c d e*g*h*i*j + 6967296b c*e g*h*i*j + 16422912a*b c*d*e g*h*i*j - 14929920a c*d e g*h*i*j - 7464960a*b e g*h*i*j - 746496a b*d*e g*h*i*j + 13934592b c*d*f*g*h*i*j - 43296768a*b c*d f*g*h*i*j - 65691648a c*d f*g*h*i*j - 5971968b e*f*g*h*i*j + 20901888a*b d*e*f*g*h*i*j + 20901888a b*d e*f*g*h*i*j + 3981312b c g h*i*j - 65691648a*b*c d*g h*i*j + 47775744a*b c e*g h*i*j - 22394880a c d*e*g h*i*j - 38071296a b*c*e g h*i*j - 3359232a e g h*i*j - 65691648a*b c*f*g h*i*j + 362797056a b*c*d*f*g h*i*j - 22394880a b e*f*g h*i*j - 67184640a d*e*f*g h*i*j + 80621568a c g h*i*j - 362797056a c*f*g h*i*j - 774144b c d h i*j - 3317760a*b*c d h i*j - 2433024b c*d*e*h i*j + 19408896a*b c*d e*h i*j - 9953280a c*d e*h i*j - 110592b e h i*j + 4810752a*b d*e h i*j - 25380864a b*d e h i*j - 221184b d*f*h i*j - 1161216a*b d f*h i*j + 7962624a b*d f*h i*j + 7962624b c g*h i*j - 11943936a*b c d*g*h i*j + 29859840a c d g*h i*j - 35831808a*b c*e*g*h i*j + 20901888a b*c*d*e*g*h i*j + 34338816a b e g*h i*j + 4478976a d*e g*h i*j + 11943936a*b f*g*h i*j - 56733696a b d*f*g*h i*j + 17915904a d f*g*h i*j - 44789760a b*c g h i*j + 67184640a c*e*g h i*j + 67184640a b*f*g h i*j + 1769472b c*h i*j - 10616832a*b c*d*h i*j + 7962624a b*c*d h i*j - 2654208a*b e*h i*j + 7962624a b d*e*h i*j + 23887872a d e*h i*j + 47775744a b c*g*h i*j - 71663616a c*d*g*h i*j - 71663616a b*e*g*h i*j + 3981312a b h i*j - 17915904a b*d*h i*j + 53747712a g*h i*j - 27648b c d i j + 331776a*c d i j - 718848b c*d e*i j + 2654208a*b*c*d e*i j - 110592b d e i j + 2239488a*b d e i j - 6967296a d e i j - 331776b d f*i j + 3317760a*b d f*i j - 7962624a d f*i j + 1658880b c d g*i j - 8460288a*b*c d g*i j + 2654208b c*d*e*g*i j - 11943936a*b c*d e*g*i j + 5971968a c*d e*g*i j + 663552b e g*i j - 10948608a*b d*e g*i j + 34338816a b*d e g*i j + 1327104b d*f*g*i j - 16920576a*b d f*g*i j + 47775744a b*d f*g*i j - 5971968b c g i j + 29859840a*b c d*g i j + 6718464a c d g i j + 5971968a*b c*e*g i j - 22394880a b*c*d*e*g i j + 8957952a b e g i j - 60466176a d*e g i j + 11943936a*b f*g i j - 44789760a b d*f*g i j - 53747712a d f*g i j - 53747712a b*c g i j + 80621568a c*e*g i j + 80621568a b*f*g i j + 2101248b c*d h*i j - 11778048a*b c*d h*i j + 13934592a c*d h*i j - 221184b d*e*h*i j - 1161216a*b d e*h*i j + 7962624a b*d e*h*i j - 7962624b c*g*h*i j + 47775744a*b c*d*g*h*i j - 56733696a b*c*d g*h*i j + 11943936a*b e*g*h*i j - 56733696a b d*e*g*h*i j + 17915904a d e*g*h*i j - 44789760a b c*g h*i j + 67184640a c*d*g h*i j + 67184640a b*e*g h*i j + 221184b h i j - 1990656a*b d*h i j + 9704448a b d h i j - 20901888a d h i j - 14929920a b g*h i j + 67184640a b*d*g*h i j - 100776960a g h i j + 221184b d i j - 1880064a*b d i j + 3981312a b*d i j - 884736b g*i j + 7962624a*b d*g*i j - 14929920a b d g*i j - 11943936a d g*i j - 17915904a b g i j + 80621568a b*d*g i j - 80621568a g i j - 884736c d j + 1327104b*c d e*j - 414720b c*d e j - 995328a*c*d e j - 13824b d e j + 497664a*b*d e j - 995328b c*d f*j + 3981312a*c*d f*j + 497664b d e*f*j - 1990656a*b*d e*f*j + 7962624b*c d g*j - 10948608b c d e*g*j + 3234816b c*d e g*j + 7464960a*b*c*d e g*j + 497664b d*e g*j - 7091712a*b d e g*j + 7464960a d e g*j + 8460288b c*d f*g*j - 35831808a*b*c*d f*g*j - 4976640b d e*f*g*j + 25380864a*b d e*f*g*j - 17915904a d e*f*g*j - 20901888b c d g j - 11943936a*c d g j + 23887872b c d*e*g j + 17915904a*b*c d e*g j - 8957952b c*e g j + 4478976a*b c*d*e g j - 60466176a c*d e g j + 7464960a*b e g j - 3359232a b*d*e g j - 17915904b c*d*f*g j + 67184640a*b c*d f*g j + 80621568a c*d f*g j + 11943936b e*f*g j - 71663616a*b d*e*f*g j + 67184640a b*d e*f*g j + 11943936b c g j + 53747712a*b*c d*g j - 107495424a*b c e*g j + 80621568a c d*e*g j + 100776960a b*c*e g j - 30233088a e g j + 53747712a*b c*f*g j - 362797056a b*c*d*f*g j + 80621568a b e*f*g j - 120932352a d*e*f*g j - 80621568a c g j + 362797056a c*f*g j - 663552b c d h*j + 165888b c*d e*h*j + 1990656a*b*c*d e*h*j - 414720b d e h*j + 3234816a*b d e h*j - 8957952a d e h*j + 497664b d f*h*j - 4976640a*b d f*h*j + 11943936a d f*h*j + 4976640b c d g*h*j + 1990656b c*d*e*g*h*j - 40310784a*b c*d e*g*h*j + 53747712a c*d e*g*h*j - 995328b e g*h*j + 7464960a*b d*e g*h*j + 4478976a b*d e g*h*j - 1990656b d*f*g*h*j + 25380864a*b d f*g*h*j - 71663616a b*d f*g*h*j - 11943936b c g h*j + 17915904a*b c d*g h*j - 53747712a c d g h*j + 53747712a*b c*e*g h*j - 67184640a b*c*d*e*g h*j - 60466176a b e g h*j + 100776960a d*e g h*j - 17915904a*b f*g h*j + 67184640a b d*f*g h*j + 80621568a d f*g h*j + 80621568a b*c g h*j - 120932352a c*e*g h*j - 120932352a b*f*g h*j - 663552b c*d h j + 4976640a*b c*d h j - 11943936a c*d h j + 1327104b d*e*h j - 10948608a*b d e*h j + 23887872a b*d e*h j + 17915904a b*c*d g*h j + 17915904a b d*e*g*h j - 107495424a d e*g*h j - 53747712a b c*g h j + 80621568a c*d*g h j + 80621568a b*e*g h j - 884736b h j + 7962624a*b d*h j - 20901888a b d h j + 11943936a d h j - 11943936a b g*h j + 53747712a b*d*g*h j - 80621568a g h j + 497664b c*d i*j - 1990656a*b*c*d i*j + 497664b d e*i*j - 4976640a*b d e*i*j + 11943936a d e*i*j - 4976640b c*d g*i*j + 25380864a*b c*d g*i*j - 17915904a c*d g*i*j - 1990656b d*e*g*i*j + 25380864a*b d e*g*i*j - 71663616a b*d e*g*i*j + 11943936b c*g i*j - 71663616a*b c*d*g i*j + 67184640a b*c*d g i*j - 17915904a*b e*g i*j + 67184640a b d*e*g i*j + 80621568a d e*g i*j + 80621568a b c*g i*j - 120932352a c*d*g i*j - 120932352a b*e*g i*j - 995328b d h*i*j + 8460288a*b d h*i*j - 17915904a b*d h*i*j + 3981312b g*h*i*j - 35831808a*b d*g*h*i*j + 67184640a b d g*h*i*j + 53747712a d g*h*i*j + 80621568a b g h*i*j - 362797056a b*d*g h*i*j + 362797056a g h*i*j - 373248b d j + 2985984a*b d j - 5971968a d j + 2985984b d g*j - 25380864a*b d g*j + 53747712a b*d g*j - 5971968b g j + 53747712a*b d*g j - 100776960a b d g j - 80621568a d g j - 80621568a b g j + 362797056a b*d*g j - 272097792a g j + +o30 : S +i31 : numgens detDiscr + +o31 = 1 +i32 : # terms detDiscr_0 + +o32 = 2040 +i33 : clearAll +i34 : S = QQ[a,b,x,y, MonomialOrder => Eliminate 2]; +i35 : I1 = ideal(x-a, y-a, a^2-2); + +o35 : Ideal of S +i36 : ideal selectInSubring(1, gens gb I1) + + 2 +o36 = ideal (x - y, y - 2) + +o36 : Ideal of S +i37 : I2 = ideal(x-a, y-b, a^2-2, b^2-3); + +o37 : Ideal of S +i38 : ideal selectInSubring(1, gens gb I2) + + 2 2 +o38 = ideal (y - 3, x - 2) + +o38 : Ideal of S +i39 : I3 = ideal(x-a, y-a^4, a^4+a^3+a^2+a+1); + +o39 : Ideal of S +i40 : ideal selectInSubring(1, gens gb I3) + + 2 2 3 2 +o40 = ideal (x*y - 1, x + y + x + y + 1, y + y + x + y + 1) + +o40 : Ideal of S +i41 : I4 = ideal(a*x+b*y, a^2-2, b^2-3); + +o41 : Ideal of S +i42 : ideal selectInSubring(1, gens gb I4) + + 2 3 2 +o42 = ideal(x - -*y ) + 2 + +o42 : Ideal of S +i43 : I5 = ideal(a*x+b*y-1, a^2-2, b^2-3); + +o43 : Ideal of S +i44 : ideal selectInSubring(1, gens gb I5) + + 4 2 2 9 4 2 3 2 1 +o44 = ideal(x - 3x y + -*y - x - -*y + -) + 4 2 4 + +o44 : Ideal of S +i45 : clearAll +i46 : S = QQ[x, y, z]; +i47 : I = ideal(x^5+y^3+z^3, x^3+y^5+z^3, x^3+y^3+z^5); + +o47 : Ideal of S +i48 : multiplicity = degree(I : saturate(I)) + +o48 = 27 +i49 : clearAll +i50 : PP3 = QQ[t, x, y, z, w]; +i51 : L = ideal(x, y); + +o51 : Ideal of PP3 +i52 : M = ideal(x-t*z, y+t^2*w); + +o52 : Ideal of PP3 +i53 : X = intersect(L, M); + +o53 : Ideal of PP3 +i54 : Xzero = trim substitute(saturate(X, t), {t => 0}) + + 2 2 +o54 = ideal (y*z, y , x*y, x ) + +o54 : Ideal of PP3 +i55 : Xzero == intersect(ideal(x^2, y), ideal(x, y^2, z)) + +o55 = true +i56 : degree(ideal(x^2, y ) / ideal(x, y^2, z)) + +o56 = 1 +i57 : clearAll +i58 : S = QQ[a, b, c, d, e]; +i59 : IX = trim minors(2, matrix{{a, b^2, b*d, c},{b, a*c, c^2, d}}) + + 3 2 2 2 3 2 +o59 = ideal (b*c - a*d, c - b*d , a*c - b d, b - a c) + +o59 : Ideal of S +i60 : IY = ideal(a, d); + +o60 : Ideal of S +i61 : codim IX + codim IY == codim (IX + IY) + +o61 = true +i62 : (degree IX) * (degree IY) + +o62 = 4 +i63 : degree (IX + IY) + +o63 = 5 +i64 : J = ideal mingens (IX + ideal(a)) + + 3 2 2 3 +o64 = ideal (a, b*c, c - b*d , b d, b ) + +o64 : Ideal of S +i65 : J == intersect(ideal(a, b*c, b^2, c^3-b*d^2), + ideal(a, d, b*c, c^3, b^3)) -- embedded point + +o65 = true +i66 : clearAll +i67 : blowUpIdeal = (I) -> ( + r := numgens I; + S := ring I; + n := numgens S; + K := coefficientRing S; + tR := K[t, gens S, vars(0..r-1), + MonomialOrder => Eliminate 1]; + f := map(tR, S, submatrix(vars tR, {1..n})); + F := f(gens I); + J := ideal apply(1..r, j -> (gens tR)_(n+j)-t*F_(0,(j-1))); + L := ideal selectInSubring(1, gens gb J); + R := K[gens S, vars(0..r-1)]; + g := map(R, tR, 0 | vars R); + trim g(L)); +i68 : S = QQ[x, y]; +i69 : I = ideal(x^3, x*y, y^2); + +o69 : Ideal of S +i70 : J = blowUpIdeal(I) + + 2 2 3 2 +o70 = ideal (y*b - x*c, x*b - a*c, x b - y*a, x c - y a) + +o70 : Ideal of QQ [x, y, a, b, c] +i71 : J + ideal jacobian J == ideal gens ring J + +o71 = true +i72 : clearAll +i73 : PP4 = QQ[a..e]; +i74 : S = QQ[r..t, A..E, MonomialOrder => Eliminate 3]; +i75 : I = ideal(A - r^2, B - s^2, C - r*s, D - r*t, E - s*t); + +o75 : Ideal of S +i76 : phi = map(PP4, S, matrix{{0_PP4, 0_PP4, 0_PP4}} | vars PP4) + +o76 = map(PP4,S,{0, 0, 0, a, b, c, d, e}) + +o76 : RingMap PP4 <--- S +i77 : surfaceA = phi ideal selectInSubring(1, gens gb I) + + 2 +o77 = ideal (c*d - a*e, b*d - c*e, a*b - c ) + +o77 : Ideal of PP4 +i78 : R = QQ[t, x, y, z, u, v, MonomialOrder => Eliminate 1]; +i79 : blowUpIdeal = ideal selectInSubring(1, gens gb ideal(u-t*x, + v-t*y)) + +o79 = ideal(y*u - x*v) + +o79 : Ideal of R +i80 : PP2xPP1 = QQ[x, y, z, u, v]; +i81 : embed = map(PP2xPP1, R, 0 | vars PP2xPP1); + +o81 : RingMap PP2xPP1 <--- R +i82 : blowUp = PP2xPP1 / embed(blowUpIdeal); +i83 : PP5 = QQ[A .. F]; +i84 : segre = map(blowUp, PP5, matrix{{x*u,y*u,z*u,x*v,y*v,z*v}}); + +o84 : RingMap blowUp <--- PP5 +i85 : ker segre + + 2 +o85 = ideal (B - D, C*E - D*F, D - A*E, C*D - A*F) + +o85 : Ideal of PP5 +i86 : projection = map(PP4, PP5, matrix{{a, c, d, c, b, e}}) + +o86 = map(PP4,PP5,{a, c, d, c, b, e}) + +o86 : RingMap PP4 <--- PP5 +i87 : surfaceB = trim projection ker segre + + 2 +o87 = ideal (c*d - a*e, b*d - c*e, a*b - c ) + +o87 : Ideal of PP4 +i88 : determinantal = minors(2, matrix{{a, c, d}, {b, d, e}}) + + 2 +o88 = ideal (- b*c + a*d, - b*d + a*e, - d + c*e) + +o88 : Ideal of PP4 +i89 : sigma = map( PP4, PP4, matrix{{d, e, a, c, b}}); + +o89 : RingMap PP4 <--- PP4 +i90 : surfaceC = sigma determinantal + + 2 +o90 = ideal (c*d - a*e, b*d - c*e, a*b - c ) + +o90 : Ideal of PP4 +i91 : surfaceA == surfaceB + +o91 = true +i92 : surfaceB == surfaceC + +o92 = true +i93 : clearAll +i94 : PP3 = QQ[t, x, y, z, w]; +i95 : Q = ideal( t*x^2+t*y^2+t*z^2+w^2 ); + +o95 : Ideal of PP3 +i96 : R = QQ[t, u, v, A .. H]; +i97 : phi = map(R, PP3, matrix{{t}} | + u*matrix{{A, B, C, D}} + v*matrix{{E, F, G, H}}); + +o97 : RingMap R <--- PP3 +i98 : imageFamily = phi Q; + +o98 : Ideal of R +i99 : coeffOfFamily = contract(matrix{{u^2,u*v,v^2}}, gens imageFamily) + +o99 = | tA2+tB2+tC2+D2 2tAE+2tBF+2tCG+2DH tE2+tF2+tG2+H2 | + + 1 3 +o99 : Matrix R <--- R +i100 : S = QQ[t, A..H]; +i101 : coeffOfFamily = substitute(coeffOfFamily, S); + + 1 3 +o101 : Matrix S <--- S +i102 : Sbar = S / (ideal coeffOfFamily); +i103 : psi = matrix{{t}} | exteriorPower(2, + matrix{{A, B, C, D}, {E, F, G, H}}) + +o103 = | t -BE+AF -CE+AG -CF+BG -DE+AH -DF+BH -DG+CH | + + 1 7 +o103 : Matrix Sbar <--- Sbar +i104 : PP5 = QQ[t, a..f]; +i105 : fanoOfFamily = trim ker map(Sbar, PP5, psi); + +o105 : Ideal of PP5 +i106 : zeroFibre = trim substitute(saturate(fanoOfFamily, t), {t=>0}) + + 2 2 2 2 2 2 +o106 = ideal (e*f, d*f, e , f , d*e, a*e + b*f, d , c*d - b*e + a*f, b*d + c*e, a*d - c*f, a + b + c ) + +o106 : Ideal of PP5 +i107 : transpose gens zeroFibre + +o107 = {-2} | ef | + {-2} | df | + {-2} | e2 | + {-2} | f2 | + {-2} | de | + {-2} | ae+bf | + {-2} | d2 | + {-2} | cd-be+af | + {-2} | bd+ce | + {-2} | ad-cf | + {-2} | a2+b2+c2 | + + 11 1 +o107 : Matrix PP5 <--- PP5 +i108 : oneFibre = trim substitute(saturate(fanoOfFamily, t), {t => 1}) + + 2 2 2 2 2 2 2 2 2 2 +o108 = ideal (a*e + b*f, d + e + f , c*d - b*e + a*f, b*d + c*e, a*d - c*f, c + e + f , b*c + d*e, a*c - d*f, b - e , a*b + e*f, a - f ) + +o108 : Ideal of PP5 +i109 : oneFibre == intersect(ideal(c-d, b+e, a-f, d^2+e^2+f^2), + ideal(c+d, b-e, a+f, d^2+e^2+f^2)) + +o109 = true +i110 : \ No newline at end of file diff --git a/Book/ComputationsBook/chapters/schemes/chapter.tex b/Book/ComputationsBook/chapters/schemes/chapter.tex new file mode 100644 index 0000000..fb59001 --- /dev/null +++ b/Book/ComputationsBook/chapters/schemes/chapter.tex @@ -0,0 +1,642 @@ +\title{Teaching the Geometry of Schemes} +\titlerunning{Teaching the Geometry of Schemes} +\toctitle{Teaching the Geometry of Schemes} + +\author{Gregory G.~Smith \and Bernd Sturmfels} +\authorrunning{G. G. Smith and B. Sturmfels} +% \institute{Department of Mathematics, University of California, +% Berkeley, California 94720, USA} + +\maketitle + + +%%---------------------------------------------------------- +\newtheorem*{problem*}{Problem}{\bfseries\upshape}{\itshape} +\newtheorem*{solution*}{Solution}{\itshape}{\rmfamily} + +\newcommand{\Spec}{\operatorname{Spec}} +\newcommand{\Proj}{\operatorname{Proj}} +\newcommand{\codim}{\operatorname{codim}} +%%---------------------------------------------------------- + + +\begin{abstract} +This chapter presents a collection of graduate level problems in +algebraic geometry illustrating the power of \Mtwo as an educational +tool. +\end{abstract} + +When teaching an advanced subject, like the language of schemes, we +think it is important to provide plenty of concrete instances of the +theory. Computer algebra systems, such as \Mtwo, provide students +with an invaluable tool for studying complicated examples. +Furthermore, we believe that the explicit nature of a computational +approach leads to a better understanding of the objects being +examined. This chapter presents some problems which we feel +illustrate this point of view. + +Our examples are selected from the homework of an algebraic geometry +class given at the University of California at Berkeley in the fall of 1999. +This graduate course was taught by the second author with assistance from the +first author. Our choice of problems, as the title suggests, follows the +material in David Eisenbud and Joe Harris' textbook {\em The Geometry of + Schemes} \cite{SC:EH}. + +%%---------------------------------------------------------- +\section{Distinguished Open Sets} + +We begin with a simple example involving the Zariski topology of an affine +scheme\index{scheme!affine}. This example also indicates some of the +subtleties involved in working with arithmetic +schemes\index{scheme!arithmetic}. + +\begin{problem*} +Let $S = \bbbz[x,y,z]$ and $X = \Spec(S)$. If $f = x$ and $X_{f}$ is +the corresponding basic open subset in $X$, then establish the +following: +\begin{enumerate} +\item[$(1)$] If $e_{1} = x+y+z$, $e_{2} = xy+xz+yz$ and $e_{3} = xyz$ +are the elementary symmetric functions then the set $\{X_{e_{i}}\}_{1 +\leq i \leq 3}$ is an open cover of $X_{f}$. +\item[$(2)$] If $p_{1} = x+y+z$, $p_{2} = x^{2}+y^{2}+z^{2}$ and $p_{3} += x^{3}+y^{3}+z^{3}$ are the power sum symmetric functions then +$\{X_{p_{i}}\}_{1 \leq i \leq 3}$ is {\em not} an open cover of +$X_{f}$. +\end{enumerate} +\end{problem*} + +\begin{solution*} +$(1)$ To prove that $\{X_{e_{i}}\}_{1 \leq i \leq 3}$ is an open cover +of $X_{f}$, it suffices to show that $e_{1}$, $e_{2}$ and $e_{3}$ +generate the unit ideal in $S_{f}$; see Lemma I-16 in Eisenbud and +Harris~\cite{SC:EH}. This is equivalent to showing that $x^{m}$ +belongs to the $S$-ideal $\langle e_{1}, e_{2}, e_{3} \rangle$ for +some $m \in \bbbn$. In other words, the saturation\index{saturation} +$\big( \langle e_{1}, e_{2}, e_{3} \rangle : x^{\infty} \big)$ is the +unit ideal if and only if $\{X_{e_{i}}\}_{1 \leq i \leq 3}$ is an open +cover of $X_{f}$. We verify this in \Mtwo as follows: +<<>> +<<>> +<<>> +$(2)$ Similarly, to show that $\{X_{p_{i}}\}_{1 \leq i \leq 3}$ is not +an open cover of $X_{f}$, we prove that $\big( \langle p_{1}, p_{2}, +p_{3} \rangle : x^{\infty} \big)$ is not the unit ideal. Calculating +this saturation, we find +<<>> +<<>> +<<>> +which is not the unit ideal.\qed +\end{solution*} + +The fact that $6$ is a generator of the ideal $\big( \langle p_{1}, +p_{2}, p_{3} \rangle : x^{\infty} \big)$ indicates that +$\{X_{p_{i}}\}_{1 \leq i \leq 3}$ does not contain the points in $X$ +lying over the points $\langle 2 \rangle$ and $\langle 3 \rangle$ in +$\Spec(\bbbz)$. If we work over a base ring in which $6$ is a unit, +then $\{X_{p_{i}}\}_{1 \leq i \leq 3}$ would, in fact, be an open +cover of $X_{f}$. + + +%%---------------------------------------------------------- +\section{Irreducibility} + +The study of complex semisimple Lie algebras gives rise to an +important family of algebraic varieties called nilpotent +orbits\index{nilpotent orbits}. The next problem examines the +irreducibility\index{scheme!irreducible} of a particular nilpotent +orbit. + +\begin{problem*} +Let $X$ be the set of nilpotent complex $3 \times 3$ matrices. Show +that $X$ is an irreducible algebraic variety. +\end{problem*} + +\begin{solution*} +A $3 \times 3$ matrix $M$ is nilpotent if and only if its minimal +polynomial $p(\sf T)$ equals ${\sf T}^{k}$, for some $k \in \bbbn$. +Since each irreducible factor of the characteristic polynomial of $M$ +is also a factor of $p(\sf T)$, it follows that the characteristic +polynomial of $M$ is ${\sf T}^{3}$. We conclude that the coefficients +of the characteristic polynomial of a generic $3 \times 3$ matrix +define the algebraic variety $X$. + +To prove that $X$ is irreducible over $\bbbc$, we construct a rational +parameterization\index{rational parameterization}. First, observe +that ${\rm GL}_{3}(\bbbc)$ acts on $X$ by conjugation. Jordan's +canonical form theorem implies that there are exactly three orbits; +one for each of the following matrices: +\[ +N_{(1,1,1)} =\left[ \begin{smallmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & +0 & 0 \end{smallmatrix} \right], \quad +N_{(2,1)} = \left[ \begin{smallmatrix} 0 & 1 & 0 \\ 0 & 0 & 0 \\ 0 & 0 +& 0 \end{smallmatrix} \right] \text{ and } +N_{(3)} = \left[ \begin{smallmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & +0 \end{smallmatrix} \right] \enspace . +\] +Each orbit is defined by a rational parameterization, so it suffices +to show that the closure of the orbit containing $N_{(3)}$ is the +entire variety $X$. We demonstrate this as follows: +<< Eliminate 10];>>> +<<>> +<<>> +To determine the entries in $G \cdot N_{(3)} \cdot G^{-1}$, we use the +classical adjoint\index{classical adjoint} to construct the matrix +$\det(G) \cdot G^{-1}$. +<< ( + n := degree target G; + m := degree source G; + matrix table(n, n, (i, j) -> (-1)^(i+j) * det( + submatrix(G, {0..j-1, j+1..n-1}, + {0..i-1, i+1..m-1}))));>>> +<<>> +<<>> +<<>> +The entries in $G \cdot N_{(3)} \cdot G^{-1}$ give a rational +parameterization of the orbit generated by $N_{(3)}$. Using +elimination theory\index{elimination theory} --- see section~3.3 in +Cox, Little and O`Shea~\cite{SC:CLO} --- we give an ``implicit +representation'' of this variety. +<<>> +<<>> + +Finally, we verify that this orbit closure equals $X$ +scheme-theoretically. Recall that $X$ is defined by the coefficients +of the characteristic polynomial of a generic $3 \times 3$ matrix {\tt +M}. +%% was X = ideal submatrix( (coeff-icients({0}, det(M - t*id_(S^3))))_1, +%% {1,2,3} ), but 'coeff-icients' is to be redesigned, and 'contract' is +%% more self-explanatory, anyway. +<< 0_S})>>> +<<>> +<<>> +This completes our solution.\qed +\end{solution*} + +More generally, Kostant shows that the set of all nilpotent elements +in a complex semisimple Lie algebra\index{Lie algebra} form an +irreducible variety. We refer the reader to Chriss and +Ginzburg~\cite{SC:CV} for a proof of this result (Corollary~3.2.8) and +a discussion of its applications in representation theory. + + +%%---------------------------------------------------------- +\section{Singular Points} + +In our third question, we study the singular locus\index{singular +locus} of a family of elliptic curves\index{elliptic curve}. + +\begin{problem*} +Consider a general form of degree $3$ in $\bbbq[x,y,z]$: +\[ +F = ax^{3} + bx^{2}y + cx^{2}z + dxy^{2} + exyz + fxz^{2} + gy^{3} + +hy^{2}z + iyz^{2} + jz^{3} \enspace . +\] +Give necessary and sufficient conditions in terms of $a, \ldots, j$ +for the cubic curve $\Proj\big( \bbbq[x,y,z] / \langle F \rangle +\big)$ to have a singular point. +\end{problem*} + +\begin{solution*} +The singular locus of $F$ is defined by a polynomial of degree $12$ in +the $10$ variables $a, \dotsc, j$. We calculate this polynomial in two +different ways. + +Our first method is an elementary but time consuming elimination. +Carrying it out in \Mtwo, we have +<< Eliminate 2];>>> +<<>> +<<>> +<<>> +<<>> +<< 1});>>> +On the other hand, there is also an elegant and more useful +determinantal formula for this discriminant\index{discriminant}; it is +a specialization of the formula (2.8) in section~3.2 of Cox, Little +and O`Shea~\cite{SC:CLO2}. To apply this determinantal formula, we +first create the coefficient matrix {\tt A} of the partial derivatives +of $F$. +%% was A = (coeff-icients({0,1,2}, submatrix(jacobian matrix{{F}}, {0..2}, {0})))_1; +%% but 'coeff-icients' is deprecated. +<<>> +We also construct the coefficient matrix {\tt B} of the partial +derivatives of the Hessian\index{hessian} of $F$. +<<>> +%% was B = (coeff-icients({0,1,2}, submatrix(jacobian matrix{{hess}}, {0..2}, {0})))_1; +%% but 'coeff-icients' is deprecated. +<<>> +To obtain the discriminant, we combine these two matrices and take the +determinant. +<<>> +Finally, we check that our two discriminants are equal +<<>> +and examine the generator. +<<>> +<<>> +<<<# terms detDiscr_0>>> +<<>> +Hence, the singular locus is given by a single polynomial of degree +$12$ with $2040$ terms.\qed +\end{solution*} + +For a further discussion of singularities and discriminants see +Section~V.3 in Eisenbud and Harris~\cite{SC:EH}. For information on +resultants and discriminants see Chapter~2 in Cox, Little and +O`Shea~\cite{SC:CLO2}. + + +%%---------------------------------------------------------- +\section{Fields of Definition} + +Schemes\index{scheme!over a number field} over non-algebraically +closed fields arise in number theory. Our fourth problem looks at one +technique for working with number fields in \Mtwo. + +\begin{problem*}[Exercise~II-6 in \cite{SC:EH}] +An inclusion of fields $K \hookrightarrow L$ induces a map +$\mathbb{A}_{L}^{n} \to \mathbb{A}_{K}^{n}$. Find the images in +$\mathbb{A}_{\bbbq}^{2}$ of the following points of +$\mathbb{A}_{\overline{\bbbq}}^{2}$ under this map. +\begin{enumerate} +\item[$(1)$] $\langle x - \sqrt{2}, y - \sqrt{2} \rangle ;$ +\item[$(2)$] $\langle x - \sqrt{2}, y - \sqrt{3} \rangle ;$ +\item[$(3)$] $\langle x - \zeta, y - \zeta^{-1} \rangle$ where $\zeta$ +is a $5$-th root of unity $;$ +\item[$(4)$] $\langle \sqrt{2}x- \sqrt{3}y \rangle ;$ +\item[$(5)$] $\langle \sqrt{2}x- \sqrt{3}y-1 \rangle$. +\end{enumerate} +\end{problem*} + +\begin{solution*} +The images can be determined by using the following three step +algorithm: (1) replace the coefficients not contained in $K$ with +indeterminates, (2) add the minimal polynomials of these coefficients +to the given ideal in $\mathbb{A}_{L}^{2}$, and (3) eliminate the new +indeterminates. Here are the five examples: +<< Eliminate 2];>>> +<<>> +<<>> +<<>> +<<>> +<<>> +<<>> +<<>> +<<>> +<<>> +<<>> +<<>> +\qed +\end{solution*} + +It is worth noting that the points in $\mathbb{A}_{\bbbq}^{n}$ correspond +to orbits of the action of ${\rm Gal}(\overline{\bbbq}/\bbbq)$ on the +points of $\mathbb{A}_{\overline{\bbbq}}^{n}$. For more examples and +information, see section~II.2 in Eisenbud and Harris~\cite{SC:EH}. + + +%%---------------------------------------------------------- +\section{Multiplicity} + +The multiplicity\index{multiplicity} of a zero-dimensional scheme $X$ +at a point $p \in X$ is defined to be the length of the local ring +$\mathcal{O}_{X,p}$. Unfortunately, we cannot work directly in the +local ring in \Mtwo. What we can do, however, is to compute the +multiplicity by computing the degree of the component of $X$ supported +at $p$; see page 66 in Eisenbud and Harris~\cite{SC:EH}. + +\begin{problem*} +What is the multiplicity of the origin as a zero of the polynomial +equations $x^{5}+y^{3}+z^{3} = x^{3}+y^{5}+z^{3} = x^{3}+y^{3}+z^{5} = +0$? +\end{problem*} + +\begin{solution*} +If $I$ is the ideal generated by $x^{5}+y^{3}+z^{3}$, +$x^{3}+y^{5}+z^{3}$ and $x^{3}+y^{3}+z^{5}$ in $\bbbq[x,y,z]$, then +the multiplicity of the origin is +\[ +\dim_{\bbbq} \frac{\bbbq[x,y,z]_{\langle x,y,z \rangle}} +{I \bbbq[x,y,z]_{\langle x,y,z \rangle}} \, . +\] +It follows that the multiplicity is the vector space dimension of the +ring $\bbbq[x,y,z] / \varphi^{-1}(I \bbbq[x,y,z]_{\langle x,y,z +\rangle})$ where $\varphi \colon \bbbq[x,y,z] \to +\bbbq[x,y,z]_{\langle x,y,z \rangle}$ is the natural map. Moreover, +we can express this using ideal quotients: +\[ +\varphi^{-1}(I \bbbq[x,y,z]_{\langle x,y,z \rangle}) \,\,= \,\, +\big(I : (I : \langle x,y,z \rangle^{\infty})\big) \, . +\] +Carrying out this calculation in \Mtwo, we obtain: +<<>> +<<>> +<<>> +<<>> +Thus, we conclude that the multiplicity is $27$.\qed +\end{solution*} + +There are algorithms (not yet implemented in \Mtwo) for working +directly in the local ring $\bbbq[x,y,z]_{\langle x,y,z \rangle}$. We +refer the interested reader to Chapter~4 in Cox, Little and +O`Shea~\cite{SC:CLO2}. + + +%%---------------------------------------------------------- +\section{Flat Families} + +Non-reduced schemes\index{scheme!non-reduced} arise naturally as flat +limits\index{flat limit} of a family of reduced +schemes\index{scheme!reduced}. Our next problem illustrates how a +family of skew lines in $\bbbp^{3}$ gives rise to a double line with +an embedded point\index{embedded point}. + +\begin{problem*}[Exercise~III-68 in \cite{SC:EH}] +Let $L$ and $M $ be the lines in $\bbbp^{3}_{k[t]}$ given by $x=y=0$ +and $x-tz = y+t^{2}w =0$ respectively. Show that the flat limit as $t +\to 0$ of the union $L \cup M$ is the double line $x^{2} = y = 0$ with +an embedded point of degree $1$ located at the point $(0:0:0:1)$. +\end{problem*} + +\begin{solution*} +We first find the flat limit by saturating\index{saturation} the +intersection ideal and setting $t = 0$. +<<>> +<<>> +<<>> +<<>> +<< 0})>>> +Secondly, we verify that this is the union of a double line and an +embedded point of degree $1$. +<<>> +<<>> +<<>> +\qed +\end{solution*} + +Section~III.3.4 in Eisenbud and Harris~\cite{SC:EH} contains several +other interesting limits of various flat families. + + +%%---------------------------------------------------------- +\section{B\'{e}zout's Theorem} + +B\'{e}zout's Theorem\index{Bezout's Theorem@B\'ezout's Theorem} --- Theorem~III-78 in +Eisenbud and Harris~\cite{SC:EH} --- may fail without the +Cohen-Macaulay\index{Cohen-Macaulay} hypothesis. Our seventh problem +is to demonstrate this. + +\begin{problem*}[Exercise~III-81 in \cite{SC:EH}] +Find irreducible closed subvarieties $X$ and $Y$ in $\bbbp^{4}$ such +that +\begin{align*} +\codim(X \cap Y) &= \codim(X) + \codim(Y) \\ +\deg(X \cap Y) &> \deg(X) \cdot \deg(Y) \, . +\end{align*} +\end{problem*} + +\begin{solution*} +We show that the assertion holds when $X$ is the cone over the +nonsingular rational quartic curve\index{rational quartic curve} in +$\bbbp^{3}$ and $Y$ is a two-plane passing through the vertex of the +cone. First, recall that the rational quartic curve is given by the +$2 \times 2$ minors of the matrix $\left[ \begin{smallmatrix} a & +b^{2} & bd & c \\ b & ac & c^2 & d \end{smallmatrix} \right]$; see +Exercise~18.8 in Eisenbud~\cite{SC:E}. Thus, we have +<<>> +<<>> +<<>> +<<>> +<<<(degree IX) * (degree IY)>>> +<<>> +which establishes the assertion.\qed +\end{solution*} + +To understand how this example works, it is enlightening to express +$Y$ as the intersection of two hyperplanes; one given by $a = 0$ and +the other given by $d = 0$. Intersecting $X$ with the first +hyperplane yields +<<>> +However, this first intersection has an embedded point; +<<>> +<<>> +The second hyperplane passes through this embedded +point\index{embedded point} which explains the extra intersection. + + +%%---------------------------------------------------------- +\section{Constructing Blow-ups} + +The blow-up\index{blow-up} of a scheme $X$ along a subscheme $Y$ can +be constructed from the Rees algebra\index{Rees algebra} associated to +the ideal sheaf of $Y$ in $X$; see Theorem~IV-22 in Eisenbud and +Harris~\cite{SC:EH}. Gr\"{o}bner basis techniques allow one to +express the Rees algebra in terms of generators and relations. We +illustrate this method in the next solution. + +\begin{problem*}[Exercises~IV-43 \& IV-44 in \cite{SC:EH}] +Find the blow-up $X$ of the affine plane\index{scheme!affine} +$\mathbb{A}^{2} = \Spec\big( \bbbq[x, y] \big)$ along the subscheme +defined by $\langle x^{3}, xy, y^{2} \rangle$. Show that $X$ is +nonsingular and its fiber over the origin is the union of two copies +of $\bbbp^{1}$ meeting at a point. +\end{problem*} + +\begin{solution*} +We first provide a general function which returns the ideal of +relations for the Rees algebra. +<< ( + r := numgens I; + S := ring I; + n := numgens S; + K := coefficientRing S; + tR := K[t, gens S, vars(0..r-1), + MonomialOrder => Eliminate 1]; + f := map(tR, S, submatrix(vars tR, {1..n})); + F := f(gens I); + J := ideal apply(1..r, j -> (gens tR)_(n+j)-t*F_(0,(j-1))); + L := ideal selectInSubring(1, gens gb J); + R := K[gens S, vars(0..r-1)]; + g := map(R, tR, 0 | vars R); + trim g(L));>>> +Now, applying the function to our specific case yields: +<<>> +<<>> +<<>> +Therefore, the blow-up of the affine plane along the given subscheme +is +\[ +X = \Proj\left( \frac{(\bbbq[x,y])[a,b,c]}{\langle yb-xc, xb^{2}-ac, +x^{2}b-ya, x^{3}c-y^{2}a \rangle} \right) \, . +\] +Using \Mtwo, we can also verify that the scheme $X$ is +nonsingular\index{singular locus}; +<<>> +<<>> +Since we have +\[ +\frac{(\bbbq[x,y])[a,b,c]}{\langle yb-xc, xb^{2}-ac, x^{2}b-ya, +x^{3}c-y^{2}a \rangle} \otimes \frac{\bbbq[x,y]}{\langle x, y \rangle} +\cong \frac{\bbbq[a,b,c]}{\langle ac \rangle} \, , +\] +the fiber over the origin $\langle x,y \rangle$ in $\mathbb{A}^{2}$ is +clearly a union of two copies of $\bbbp^{1}$ meeting at one point. In +particular, the exceptional fiber is not a projective space.\qed +\end{solution*} + +Many other interesting blow-ups can be found in section~II.2 in +Eisenbud and Harris~\cite{SC:EH}. + + +%%---------------------------------------------------------- +\section{A Classic Blow-up} + +We consider the blow-up\index{blow-up} of the projective plane +$\bbbp^{2}$ at a point. + +\vbox{ +\begin{problem*} +Show that the following varieties are isomorphic. +\begin{enumerate} +\item[$(a)$] the image of the rational map from $\bbbp^{2}$ to +$\bbbp^{4}$ given by +\[ +(r:s:t) \mapsto (r^{2}:s^{2}:rs:rt:st) \, ; +\] +\item[$(b)$] the blow-up of the plane $\bbbp^{2}$ at the point +$(0:0:1)$; +\item[$(c)$] the determinantal variety\index{determinantal variety} +defined by the $2 \times 2$ minors of the matrix $\left[ +\begin{smallmatrix} a & c & d \\ b & d & e \end{smallmatrix} \right]$ +where $\bbbp^{4} = \Proj\big( k[a,b,c,d,e] \big)$. +\end{enumerate} +This surface is called the {\em cubic scroll}\index{cubic scroll} in +$\bbbp^{4}$. +\end{problem*} +} + +\begin{solution*} +We find the ideal in part~$(a)$ by elimination +theory\index{elimination theory}. +<<>> +<< Eliminate 3];>>> +<<>> +<<>> +<<>> +Next, we determine the surface in part~$(b)$. We construct the ideal +defining the blow-up of $\bbbp^{2}$ +<< Eliminate 1];>>> +<<>> +and embed it in $\bbbp^{2} \times \bbbp^{1}$. +<<>> +<<>> +<<>> +We then map this surface into $\bbbp^{5}$ using the Segre +embedding\index{Segre embedding}. +<<>> +<<>> +<<>> +Note that the image under the Segre map lies on a hyperplane in +$\bbbp^{5}$. To get the desired surface in $\bbbp^{4}$, we project +<<>> +<<>> +Finally, we compute the surface in part~$(c)$. +<<>> +<<>> +<<>> +By incorporating a permutation of the variables into definition of +{\tt surfaceC}, we obtain the desired isomorphisms +<<>> +<<>> +<<>> +which completes the solution.\qed +\end{solution*} + +For more information of the geometry of rational normal scrolls, see +Lecture~8 in Harris~\cite{SC:H}. + + +%%---------------------------------------------------------- +\section{Fano Schemes} + +Our final example concerns the family of Fano schemes\index{Fano +scheme} associated to a flat family of quadrics. +Recall that the $k$-th Fano scheme $F_{k}(X)$ of a +scheme $X \subseteq \bbbp^{n}$ is the subscheme of +the Grassmannian parametrizing $k$-planes +contained in $X$. + +\begin{problem*}[Exercise~IV-69 in \cite{SC:EH}] +Consider the one-parameter family\index{one-parameter family} of +quadrics tending to a double plane with equation +\[ +Q = V(tx^{2}+ty^{2}+tz^{2}+w^{2}) \subseteq \bbbp^{3}_{\bbbq[t]} = +\Proj\big(\bbbq[t][x,y,z,w]\big) \enspace . +\] +What is the flat limit\index{flat limit} of the Fano schemes +$F_{1}(Q_{t})$? +\end{problem*} + +\begin{solution*} +We first compute the ideal defining $F_{1}(Q_{t})$, the scheme +parametrizing lines in $Q$. +<<>> +<<>> +To parametrize a line in our projective space, we introduce +indeterminates $u, v$ and $A, \dotsc, H$. +<<>> +We then make a map {\tt phi} from {\tt PP3} to {\tt R} sending the +variables to the coordinates of the general point on a line. +<<>> +<<>> +For a line to belong to $Q$, the {\tt imageFamily} must vanish +identically. In other words, $F_{1}(Q)$ is defined by the +coefficients of the generators of {\tt imageFamily}. +%% removing a final use of 'coefficients' +%% coeffOfFamily = (coefficients ({1,2}, gens imageFamily))_1; +<<>> +Since we don't need the variables $u$ and $v$, we get rid of them. +<<>> +<<>> +<<>> +Next, we move to the Grassmannian\index{Grassmannian} $\mathbb{G}(1,3) +\subset \bbbp^{5}$. Recall the homogeneous coordinates on +$\bbbp^{5}$ correspond to the $2 \times 2$ minors of a $2 \times 4$ +matrix. We obtain these minors using the {\tt exteriorPower} function +in \Mtwo. +<<>> +<<>> +<<>> +Now, to answer the question, we determine the limit as $t$ tends to $0$. +<<0})>>> +Let's transpose the matrix of generators so all of its elements are visible +on the printed page. +<<>> +We see that $F_{1}(Q_{0})$ is supported on the plane conic $\langle d, +e, f, a^{2}+b^{2}+c^{2} \rangle$. However, $F_{1}(Q_{0})$ is not +reduced\index{scheme!non-reduced}; it has +multiplicity\index{multiplicity} two. On the other hand, the generic +fiber is +<< 1})>>> +<<>> +Hence, for $t \neq 0$, $F_{1}(Q_{t})$ is the union of two conics lying +in complementary planes and $F_{1}(Q_{0})$ is the double conic +obtained when the two conics move together.\qed +\end{solution*} + +% Local Variables: +% mode: latex +% mode: reftex +% tex-main-file: "chapter-wrapper.tex" +% reftex-keep-temporary-buffers: t +% reftex-use-external-file-finders: t +% reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) +% End: diff --git a/Book/ComputationsBook/chapters/schemes/papers.bib b/Book/ComputationsBook/chapters/schemes/papers.bib new file mode 100644 index 0000000..5372342 --- /dev/null +++ b/Book/ComputationsBook/chapters/schemes/papers.bib @@ -0,0 +1,85 @@ +@book {SC:CLO, + AUTHOR = {Cox, David and Little, John and O'Shea, Donal}, + TITLE = {Ideals, varieties, and algorithms}, + EDITION = {Second}, + NOTE = {An introduction to computational algebraic geometry and + commutative algebra}, +PUBLISHER = {Springer-Verlag}, + ADDRESS = {New York}, + YEAR = {1997}, + PAGES = {xiv+536}, + ISBN = {0-387-94680-2}, + MRCLASS = {13P10 (13-01 14-01 14Qxx 68Q40)}, + MRNUMBER = {97h:13024}, +} + +@book {SC:CLO2, + AUTHOR = {Cox, David and Little, John and O'Shea, Donal}, + TITLE = {Using algebraic geometry}, +PUBLISHER = {Springer-Verlag}, + ADDRESS = {New York}, + YEAR = {1998}, + PAGES = {xii+499}, + ISBN = {0-387-98487-9}, + MRCLASS = {13Pxx (13-01 14-01 14Qxx)}, + MRNUMBER = {99h:13033}, + MRREVR = {P. Schenzel}, +} + +@book {SC:CV, + AUTHOR = {Chriss, Neil and Ginzburg, Victor}, + TITLE = {Representation theory and complex geometry}, + PUBLISHER = {Birkh\"auser Boston Inc.}, + ADDRESS = {Boston, MA}, + YEAR = {1997}, + PAGES = {x+495}, + ISBN = {0-8176-3792-3}, + MRCLASS = {22E47 (14F99 19L47 20G05 22-02 58F05)}, + MRNUMBER = {98i:22021}, +MRREVIEWER = {William M. McGovern}, +} + +@book {SC:EH, + AUTHOR = {Eisenbud, David and Harris, Joe}, + TITLE = {The geometry of schemes}, +PUBLISHER = {Springer-Verlag}, + ADDRESS = {New York}, + YEAR = {2000}, + PAGES = {x+294}, + ISBN = {0-387-98638-3}, + MRCLASS = {14Axx (14-01)}, + MRNUMBER = {1 730 819}, +} + +@Misc{SC:GS, + author = {Daniel R.~Grayson and Michael E.~Stillman}, + title = {Macaulay~2, a software system for algebraic geometry and commutative algebra}, + howpublished = {available at {http://www.math.uiuc.edu/Macaulay2/}} +} + +@book {SC:H, + AUTHOR = {Harris, Joe}, + TITLE = {Algebraic geometry, A first course}, + PUBLISHER = {Springer-Verlag}, + ADDRESS = {New York}, + YEAR = {1995}, + PAGES = {xx+328}, + ISBN = {0-387-97716-3}, + MRCLASS = {14-01}, + MRNUMBER = {97e:14001}, +} + +@book {SC:E, + AUTHOR = {Eisenbud, David}, + TITLE = {Commutative algebra with a view toward algebraic geometry}, + PUBLISHER = {Springer-Verlag}, + ADDRESS = {New York}, + YEAR = {1995}, + PAGES = {xvi+785}, + ISBN = {0-387-94268-8; 0-387-94269-6}, + MRCLASS = {13-01 (14A05)}, + MRNUMBER = {97a:13001}, +MRREVIEWER = {Matthew Miller}, +} + + diff --git a/Book/ComputationsBook/chapters/schemes/schemes.tex b/Book/ComputationsBook/chapters/schemes/schemes.tex new file mode 100644 index 0000000..3c1151c --- /dev/null +++ b/Book/ComputationsBook/chapters/schemes/schemes.tex @@ -0,0 +1,937 @@ +\documentclass[12pt,noamsfonts]{amsart} + +\usepackage{amsfonts} +\usepackage{amssymb} +\usepackage{amscd} +\usepackage{epsfig} + +\renewcommand{\baselinestretch}{1} + + +%%---------------------------------------------------------- +%% SHORTCUTS +%%---------------------------------------------------------- +\def\ZZ{{\mathbb Z}} +\def\NN{{\mathbb N}} +\def\FF{{\mathbb F}} +\def\CC{{\mathbb C}} +\def\AA{{\mathbb A}} +\def\RR{{\mathbb R}} +\def\QQ{{\mathbb Q}} +\def\PP{{\mathbb P}} + +\def\aa{{\mathbf a}} +\def\ee{{\mathbf e}} +\def\bx{{\mathbf x}} +\def\bt{{\mathbf t}} + +\def\sV{{\sf V}} + +\def\fp{{\mathfrak p}} +\def\fq{{\mathfrak q}} +\def\fb{{\mathfrak b}} +\def\fV{{\mathfrak U}} + +\def\cM{{\mathcal M}} +\def\cF{{\mathcal F}} +\def\cG{{\mathcal G}} +\def\cO{{\mathcal O}} +\def\cA{{\mathcal A}} +\def\cL{{\mathcal L}} + +\newcommand{\Spec}{\operatorname{Spec}} +\newcommand{\Proj}{\operatorname{Proj}} +\newcommand{\Aut}{\operatorname{Aut}} +\newcommand{\res}{\operatorname{res}} +\newcommand{\New}{\operatorname{New}} +\newcommand{\conv}{\operatorname{conv}} +\newcommand{\IN}{\operatorname{in}} +\newcommand{\codim}{\operatorname{codim}} + + + +%%---------------------------------------------------------- +%% OTHER ENVIRONMENTS +%%---------------------------------------------------------- +\newtheorem{lemma}{Lemma} +\newtheorem*{theorem}{Theorem} +\newtheorem{corollary}[lemma]{Corollary} +\newtheorem*{proposition}{Proposition} +\newtheorem*{claim}{Claim} +\newtheorem{question}{Question} + +\theoremstyle{definition} +\newtheorem{definition}[lemma]{Definition} +\newtheorem{notation}[lemma]{Notation} +\newtheorem{example}{Example} +\newtheorem*{algorithm}{Algorithm} +\newtheorem*{remark}{Remark} + +\theoremstyle{remark} +\newtheorem*{remarks}{Remarks} +\newtheorem*{proof*}{Proof} +\newtheorem*{solution}{Solution} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% +%% BODY %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{document} + +\title[M2 and Schemes]{Macaulay~2 and the Geometry of Schemes} +\author[Smith]{Gregory G.~Smith} +\address{Department of Mathematics, University of California, +Berkeley, California, 94720} +\email{{\tt ggsmith@math.berkeley.edu}, {\tt bernd@math.berkeley.edu}} +\author[Sturmfels]{Bernd Sturmfels} + +\maketitle + +This tutorial illustrates how to use Dan Grayson and +Mike Stillman's computer algebra system, {\sc Macaulay2} \cite{GS}, to +study schemes. The examples are taken from the homework for +an algebraic geometry class given at the +University of California, Berkeley in the +fall of 1999. This graduate course was taught by the second author +with assistance from the first author. Our choice of problems +follows the material in David Eisenbud and Joe Harris' textbook {\em +The Geometry of Schemes} \cite{EH}. In fact, four of our ten problems +are taken directly from their exercises. + +\subsection*{Distinguished Open Sets} + +We begin with a simple example involving the definition of an +affine scheme --- see I.1.4 {\em Schemes as Schemes} in Eisenbud and Harris +\cite{EH}. This example also indicates some of the subtleties involved +in working with arithmetic schemes. + +\begin{question} +Let $R = \ZZ[x,y,z]$ and $X = \Spec(R)$; in other words, $X$ is affine +$3$-space over the integers. Let $f = x$ and consider the basic open +subset $X_{f} \subset X$. +\begin{enumerate} +\item[(a)] If $e_{1} = x+y+z$, $e_{2} = xy+xz+yz$ and $e_{3} = xyz$ +are the elementary symmetric functions then the set $\left\{ X_{e_{i}} +: \text{ $1 \leq i \leq 3$} \right\}$ is an open cover of $X_{f}$. +\item[(b)] If $p_{1} = x+y+z$, $p_{2} = x^{2}+y^{2}+z^{2}$ and $p_{3} += x^{3}+y^{3}+z^{3}$ are the power sum symmetric functions then +$\left\{ X_{p_{i}} : \text{ $1 \leq i \leq 3$} \right\}$ is NOT an +open cover of $X_{f}$. +\end{enumerate} +\end{question} + +\begin{solution} +To prove that $\left\{ X_{e_{i}} : \text{ $1 \leq i \leq 3$} \right\}$ +is an open cover of $X_{f}$, it suffices to show that $e_{1}$, $e_{2}$ +and $e_{3}$ generate the unit ideal in $R_{f}$ (Lemma I-16 in + \cite{EH}). This is equivalent to showing that +$x^{m}$ belongs to the $R$-ideal +$\langle e_{1}, e_{2}, e_{3} \rangle$ +for some $m \in \NN$. +In particular, the saturation +$\big( \langle e_{1}, e_{2}, e_{3} \rangle : x^{\infty} \big)$ is the +unit ideal if and only if $\left\{ X_{e_{i}} : \text{ $1 \leq i \leq +3$} \right\}$ is an open cover of $X_{f}$. Using {\sc Macaulay2}, we +obtain: +{\scriptsize +\begin{verbatim} + + i1 : R = ZZ[x, y, z]; + + i2 : elementaryBasis = ideal( x+y+z, x*y+x*z+y*z, x*y*z ); + o2 : Ideal of R + + i3 : saturate(elementaryBasis, x) + + o3 = ideal 1 + o3 : Ideal of R + +\end{verbatim}} +Similarly, to show that $\left\{ X_{p_{i}} : \text{ $1 \leq i \leq 3$} +\right\}$ is not an open cover of $X_{f}$, we prove that $\big( +\langle p_{1}, p_{2}, p_{3} \rangle : x^{\infty} \big)$ is not the +unit ideal. We compute this saturation in {\sc Macaulay2} as follows: +{\scriptsize +\begin{verbatim} + + i4 : powerSumBasis = ideal( x+y+z, x^2+y^2+z^2, x^3+y^3+z^3 ); + o4 : Ideal of R + + i5 : saturate(powerSumBasis, x) + + 2 2 + o5 = ideal (6, x + y + z, 2y - y*z + 2z , 3y*z) + o5 : Ideal of R + +\end{verbatim}} +\end{solution} + +\subsection*{Irreducibility} + +The study of complex semisimple Lie algebras gives rise to an +important family of algebraic varieties called nilpotent orbits. +To illustrate one of the topics in Section I.2.1 of +Eisenbud and Harris \cite{EH}, we examine the irreducibility of a +particular nilpotent orbit. + +\begin{question} +Let $X$ be the set of complex $3 \times 3$ matrices which are +nilpotent. Show that $X$ is an irreducible algebraic variety. +\end{question} + +\begin{solution} +A $3 \times 3$ matrix $M$ is nilpotent if and only if its minimal +polynomial divides ${\sf T}^{k}$, for some $k \in \NN$. Since each +irreducible factor of the characteristic polynomial of $M$ is also a +factor of the minimal polynomial, we conclude that the characteristic +polynomial of $M$ is ${\sf T}^{3}$. It follows that the coefficients of the +characteristic polynomial of a generic $3 \times 3$ matrix define the +algebraic variety $X$. + +To show $X$ is irreducible over $\CC$, we construct a rational parameterization +which defines it. To achieve this, observe that ${\rm GL}_{n}(\CC)$ +acts on $X$ by conjugation. Jordan's canonical form theorem +implies that there are exactly three orbits; one for each of +the following matrices: +\[ +N_{0} = \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} +\, , \, +N_{1} = \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} +\text{ and } +N_{2} = \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & 0 \end{bmatrix} +\, . +\] +Each orbit is defined by a rational parameterization, so it suffices +to show that the closure of the orbit containing $N_{2}$ is the +entire variety $X$. In {\sc Macaulay2}, this calculation can be done +as follows: +{\scriptsize +\begin{verbatim} + + i1 : S = QQ[t, y_0 .. y_8, a .. i, MonomialOrder => Eliminate 10]; + + i2 : N2 = (matrix {{0,1,0},{0,0,1},{0,0,0}}) ** S + + o2 = {0} | 0 1 0 | + {0} | 0 0 1 | + {0} | 0 0 0 | + 3 3 + o2 : Matrix S <--- S + + i3 : G = genericMatrix(S, y_0, 3, 3); + 3 3 + o3 : Matrix S <--- S + +\end{verbatim}} +\noindent To determine the entries in $\, G N_{2} G^{-1}$, we use the +classical adjoint to construct the inverse of the generic matrix $G$. +{\scriptsize +\begin{verbatim} + + i4 : adj = (G,i,j) -> ( + n := degree target G; + m := degree source G; + (-1)^(i+j)*det( + submatrix(G, {0..(i-1),(i+1)..(n-1)}, {0..(j-1),(j+1)..(m-1)})) + ); + + i5 : classicalAdjoint = (G) -> ( + n := degree target G; + matrix table(n, n, (i, j) -> adj(G, j, i)) + ); + + i6 : numerators = G*N2*classicalAdjoint(G); + 3 3 + o6 : Matrix S <--- S + + i7 : D = det(G); + + i8 : M = genericMatrix(S, a, 3, 3); + 3 3 + o8 : Matrix S <--- S + +\end{verbatim}} +\noindent The entries in $G N_{2} G^{-1}$ give a rational +parameterization of the orbit generated by $N_{2}$. We give an +``implicit representation'' of this variety by using elimination +theory, as in Cox, Little and O'Shea \cite[\S 3.3]{CLO}. +{\scriptsize +\begin{verbatim} + + i9 : elimIdeal = minors(1, (D*id_(S^3))*M-numerators) + ideal(1 - D*t); + o9 : Ideal of S + + i10 : closureOfOrbit = ideal selectInSubring(1, gens gb elimIdeal); + o10 : Ideal of S + +\end{verbatim}} +\noindent Finally, we verify that this orbit closure equals $X$ +scheme-theoretically. +{\scriptsize +\begin{verbatim} + + i11 : X = ideal submatrix( + (coefficients({0}, det(M - t*id_(S^3))))_1, {1,2,3} ) + + o11 = ideal (a + e + i, b*d - a*e + c*g + f*h - a*i - e*i, + - c*e*g + b*f*g + c*d*h - a*f*h - b*d*i + a*e*i) + + o11 : Ideal of S + + i12 : closureOfOrbit == X + + o12 = true + +\end{verbatim}} +\end{solution} + +\subsection*{Singular Points} + +Section~I.2.2 in Eisenbud and Harris \cite{EH} provides the definition +of a singular point of a scheme. In our third question, we study the +singular locus of a family of elliptic curves. Note that section~V.3 +in Eisenbud and Harris \cite{EH} also contains related material. + +\begin{question} +Consider a general form of degree $3$ in $\QQ[x,y,z]$; +$$ +F = ax^{3}+bx^{2}y+cx^{2}z+dxy^{2}+exyz+fxz^{2}+gy^{3}+hy^{2}z + +iyz^{2}+jz^{3}. +$$ +Give necessary and sufficient conditions in terms of $a, \ldots, j$ +for the cubic curve $\Proj\big( \QQ[x,y,z] / \langle F \rangle \big)$ to +have a singular point. +\end{question} + +\begin{solution} +A time consuming elimination gives the degree $12$ polynomial which +defines the singular locus of a general form of degree $3$. This can +be done in {\sc Macaulay2} as follows. We have not displayed the +output {\tt o6}, as this discriminant has $2040$ terms in the $10$ +variables $a, \ldots, j$. + +{\scriptsize +\begin{verbatim} + + i1 : S = QQ[x, y, z, a .. j, MonomialOrder => Eliminate 2 ]; + + i2 : F = a*x^3+b*x^2*y+c*x^2*z+d*x*y^2+e*x*y*z+f*x*z^2 + +g*y^3+h*y^2*z+i*y*z^2+j*z^3; + + i3 : partials = submatrix( jacobian matrix{{ F }}, {0 .. 2}, {0}) + + o3 = {1} | 3x2a+2xyb+y2d+2xzc+yze+z2f | + {1} | x2b+2xyd+3y2g+xze+2yzh+z2i | + {1} | x2c+xye+y2h+2xzf+2yzi+3z2j | + + 3 1 + o3 : Matrix S <--- S + + i4 : singularities = ideal( partials ) + ideal( F ); + o4 : Ideal of S + + i5 : elimDiscr = ideal selectInSubring(1, gens gb singularities); + o5 : Ideal of S + + i6 : elimDiscr = substitute( elimDiscr, {z => 1}); + o6 : Ideal of S + +\end{verbatim}} +\noindent There is also a simple and more useful determinantal formula +for this discriminant. It is a specialization of the formula (2.8) in + \cite[\S 3.2]{CLO2}: +{\scriptsize +\begin{verbatim} + + i7 : hessian = det submatrix(jacobian ideal partials, {0..2}, {0..2}); + + + i8 : A = (coefficients( {0,1,2}, + submatrix( jacobian matrix{{ F }}, {0 .. 2}, {0}) + ))_1; + 3 6 + o8 : Matrix S <--- S + + i9 : B = (coefficients( {0,1,2}, + submatrix( jacobian matrix{{ hessian }}, {0 .. 2}, {0}) + ))_1; + 3 6 + o9 : Matrix S <--- S + + i10 : detDiscr = ideal det (A || B); + o10 : Ideal of S + + i11 : detDiscr == elimDiscr + + o11 = true + +\end{verbatim}} +\end{solution} + +\subsection*{Fields of Definition} + +Schemes over non-algebraically closed fields arise in number theory. +Our solution to Exercise~II-6 in \cite{EH} +indicates one technique for working over a number field in {\sc +Macaulay2}. + +\begin{question} +An inclusion of fields $K \hookrightarrow L$ induces a map +$\AA_{L}^{n} \to \AA_{K}^{n}$. Find the images in $\AA_{\QQ}^{2}$ of +the following points of $\AA_{\overline{\QQ}}^{2}$ under this map. +\begin{enumerate} +\item[(a)] $\langle x - \sqrt{2}, y - \sqrt{2} \rangle$; +\item[(b)] $\langle x - \sqrt{2}, y - \sqrt{3} \rangle$; +\item[(c)] $\langle x - \zeta, y - \zeta^{-1} \rangle$ where $\zeta$ is +a $5$-th root of unity ; +\item[(d)] $\langle \sqrt{2}x- \sqrt{3}y \rangle$; +\item[(e)] $\langle \sqrt{2}x- \sqrt{3}y-1 \rangle$. +\end{enumerate} +\end{question} + +\begin{solution} +The images can be determined by (1) replacing coefficients +not belonging to $K$ with indeterminates, (2) adding the minimal +polynomials of these coefficients to the given ideal in $\AA_{L}^{2}$ and +(3) eliminating the new indeterminates. Here are the five examples: + +{\scriptsize +\begin{verbatim} + + i1 : S = QQ[a,b,x,y, MonomialOrder => Eliminate 2]; + + i2 : Ia = ideal( x-a, y-a, a^2-2 ); + o2 : Ideal of S + + i3 : ideal selectInSubring(1, gens gb Ia) + + 2 + o3 = ideal (x - y, y - 2) + o3 : Ideal of S + + i4 : Ib = ideal( x-a, y-b, a^2-2, b^2-3 ); + o4 : Ideal of S + + i5 : ideal selectInSubring(1, gens gb Ib) + + 2 2 + o5 = ideal (y - 3, x - 2) + o5 : Ideal of S + + i6 : Ic = ideal( x-a, y-a^4, a^4+a^3+a^2+a+1 ); + o6 : Ideal of S + + i7 : ideal selectInSubring(1, gens gb Ic) + + 2 2 3 2 + o7 = ideal (x*y - 1, x + y + x + y + 1, y + y + x + y + 1) + o7 : Ideal of S + + i8 : Id = ideal( a*x+b*y, a^2-2, b^2-3 ); + o8 : Ideal of S + + i9 : ideal selectInSubring(1, gens gb Id) + + 2 3 2 + o9 = ideal(x - -*y ) + 2 + o9 : Ideal of S + + i10 : Ie = ideal( a*x+b*y-1, a^2-2, b^2-3 ); + o10 : Ideal of S + + i11 : ideal selectInSubring(1, gens gb Ie) + + 4 2 2 9 4 2 3 2 1 + o11 = ideal(x - 3x y + -*y - x - -*y + -) + 4 2 4 + o11 : Ideal of S + +\end{verbatim}} +\end{solution} + +\subsection*{Multiplicity} + +The multiplicity of a zero-dimensional scheme $X$ at a point $p \in X$ +is defined to be the length of the local ring $\mathcal{O}_{X,p}$. +Unfortunately, we cannot work directly in the local ring in {\sc +Macaulay2}. What we can do, however, is to compute the +multiplicity by computing the +degree of the component of $X$ supported at $p$; see \cite[page 66]{EH}. + +\begin{question} +What is the multiplicity of the origin $(0,0,0)$ as a zero of the +polynomial equations +\[ +x^{5}+y^{3}+z^{3} \,\, = \,\, x^{3}+y^{5}+z^{3} \,\, = +\,\, x^{3}+y^{3}+z^{5} \,\, = \, \, 0 \, ? +\] +\end{question} + +\begin{solution} +If $I$ is the ideal generated by $x^{5}+y^{3}+z^{3}$, +$x^{3}+y^{5}+z^{3}$ and $x^{3}+y^{3}+z^{5}$ in $\QQ[x,y,z]$, then the +multiplicity of the origin is +\[ +\dim_{\QQ} \frac{\QQ[x,y,z]_{\langle x,y,z \rangle}} +{I \QQ[x,y,z]_{\langle x,y,z \rangle}} \, . +\] +It follows that the multiplicity is the vector space dimension of the +ring $\QQ[x,y,z] / \varphi^{-1}(I \QQ[x,y,z]_{\langle x,y,z \rangle})$ +where $\varphi \colon \QQ[x,y,z] \to \QQ[x,y,z]_{\langle x,y,z \rangle}$ +is the natural map. Moreover, we can express this using ideal +quotients: +\[ +\varphi^{-1}(I \QQ[x,y,z]_{\langle x,y,z \rangle}) \,\,= \,\, \big(I : (I : +\langle x,y,z \rangle^{\infty})\big) \, . +\] +Carrying out this calculation in {\sc Macaulay2}, we obtain: +{\scriptsize +\begin{verbatim} + + i1 : S = QQ[x,y,z]; + + i2 : I = ideal( x^5+y^3+z^3, x^3+y^5+z^3, x^3+y^3+z^5 ); + + o2 : Ideal of S + + i3 : multiplicity = degree( I : saturate(I) ) + + o3 = 27 + +\end{verbatim}} +\end{solution} + +\subsection*{Flat Families} + +Non-reduced schemes arise naturally as the flat limit of a family of +reduced schemes. Exercise~III-68 in +\cite{EH} illustrates how a family of skew lines in $\PP^{3}$ +gives a double line with an embedded point. + +\begin{question} +Let $L$ and $M $ be the lines in $\PP^{3}_{k[t]}$ given by $x=y=0$ +and $x-tz = y+t^{2}w =0$ respectively. Show that the flat limit as $t +\to 0$ of the union $L \cup M$ is the double line $x^{2} = y = 0$ with +an embedded point of degree $1$ located at the point $(0:0:0:1)$. +\end{question} + +\begin{solution} +We find the flat limit by saturating the intersection ideal: +{\scriptsize +\begin{verbatim} + + i1 : PP3 = QQ[x, y, z, w]; + + i2 : S = QQ[t, x, y, z, w]; + + i3 : phi = map( PP3, S, 0 | vars PP3 ); + o3 : RingMap PP3 <--- S + + i4 : L = ideal( x, y ); + o4 : Ideal of S + + i5 : M = ideal( x-t*z, y-t^2*w ); + o5 : Ideal of S + + i6 : X = intersect( L, M ); + o6 : Ideal of S + + i7 : Xzero = trim phi substitute( saturate(X, t), {t => 0}) + + 2 2 + o7 = ideal (y*z, y , x*y, x ) + o7 : Ideal of PP3 + +\end{verbatim}} +\noindent This is the union of a double line +and an embedded point of degree $1$. +{\scriptsize +\begin{verbatim} + + i8 : intersect( ideal( x^2, y ), ideal( x, y^2, z ) ) + + 2 2 + o8 = ideal (y*z, y , x*y, x ) + o8 : Ideal of PP3 + + i9 : degree ( ideal( x^2 , y ) / ideal( x, y^2, z ) ) + + o9 = 1 + +\end{verbatim}} + +\end{solution} + +\subsection*{B\'{e}zout's Theorem} + +B\'{e}zout's Theorem for Cohen-Macaulay schemes \cite[Theorem III-78]{EH} +may fail without the Cohen-Macaulay +hypothesis. Following Exercise III-81 in +\cite{EH}, we illustrate this in {\sc Macaulay2}. + +\begin{question} +Find irreducible closed subvarieties $X$ and $Y$ in $\PP^{4}$ with +\begin{eqnarray*} +\codim(X \cap Y) & = & \codim(X) +\codim(Y) \text{ and }\\ +\deg(X \cap Y) & > & \deg(X) \cdot \deg(Y) \, . +\end{eqnarray*} +\end{question} + +\begin{solution} +We show that the assertion holds when $X$ is the cone over the +nonsingular rational quartic curve in $\PP^{3}$ and $Y$ is a two-plane +passing through the vertex of the cone. +The computation is done as follows: +{\scriptsize +\begin{verbatim} + + i1 : S = QQ[a,b,c,d,e]; + + i2 : quarticCone = trim minors(2, + matrix{{a, b^2, b*d, c}, {b, a*c, c^2, d}}) + + 3 2 2 2 3 2 + o2 = ideal (b*c - a*d, c - b*d , a*c - b d, b - a c) + o2 : Ideal of S + + i3 : plane = ideal(a, d); + o3 : Ideal of S + + i4 : codim quarticCone + codim plane == codim (quarticCone + plane) + o4 = true + + i5 : (degree quarticCone) * (degree plane) + o5 = 4 + + i6 : degree (quarticCone + plane) + o6 = 5 + +\end{verbatim}} +\end{solution} + +\subsection*{Constructing Blow-ups} + +The blow-up of a scheme $X$ along a subscheme $Y$ can be constructed +from the Rees algebra associated to the ideal sheaf of $Y$ in $X$; +see \cite[Theorem IV-22]{EH}. Gr\"{o}bner basis +techniques allow one to express the Rees algebra in terms of +generators and relations. We demonstrate this +by solving Exercise~IV-43 in \cite{EH}. + +\begin{question} +Find the blow-up of the affine plane $\AA^{2} = \Spec\big( k[a,b] +\big)$ along the subscheme defined by $\langle a^{3}, ab, b^{2} +\rangle$. +\end{question} + +\begin{solution} +We first provide a general function which returns the ideal of +relations for the Rees algebra. +{\scriptsize +\begin{verbatim} + + i1 : blowUpIdeal = (I) -> ( + r := numgens I; + S := ring I; + KK := coefficientRing S; + n := numgens S; + tR := KK[t, gens S , y_1 .. y_r, MonomialOrder => Eliminate 1]; + f := map(tR, S, submatrix(vars tR, {1 .. n})); + F := f(gens I); + J := ideal apply(1 .. r, j -> y_j - t*F_(0,(j-1))); + L := ideal selectInSubring(1, gens gb J); + R := KK[gens S, y_1 .. y_r]; + g := map(R, tR, 0 | vars R); + g(L) + ); +\end{verbatim}} +\noindent Now, applying the function to our specific case yields: + +{\scriptsize +\begin{verbatim} + + i2 : S = QQ[a,b]; + + i3 : I = ideal(a^3, a*b, b^2); + o3 : Ideal of S + + i4 : blowUpIdeal(I) + + 2 2 3 2 + o4 = ideal (b*y - a*y , a*y - y y , a y - b*y , a y - b y ) + 2 3 2 1 3 2 1 3 1 + + o4 : Ideal of QQ [a, b, y , y , y ] + 1 2 3 + +\end{verbatim}} +\end{solution} + +\subsection*{A Classic Blow-up} + +We consider the blow-up of the projective plane $\PP^{2}$ at a point. +Many related examples appear in \cite[Section IV.2.2]{EH}. + +\begin{question} +Show that the following varieties are isomorphic. +\begin{enumerate} +\item[(a)] the image of the rational map from $\PP^{2}$ to $\PP^{4}$ +given by +\[ +(r:s:t) \mapsto (r^{2}:s^{2}:rs:rt:st) \, ; +\] +\item[(b)] the blow-up of the plane $\PP^{2}$ at the point $(0:0:1)$; +\item[(c)] the determinantal variety defined by the $2 \times 2$ +minors of the matrix +\[ +\begin{bmatrix} a & c & d \\ b & d & e \end{bmatrix} +\] +where $\PP^{4} = \Proj\big( k[a,b,c,d,e] \big)$. +\end{enumerate} +This surface is called the {\em cubic scroll} in $\PP^{4}$. +\end{question} + +\begin{solution} +We find the ideal in part~(a) by elimination theory. +{\scriptsize +\begin{verbatim} + + i1 : PP4 = QQ[ a .. e ]; + + i2 : S = QQ[r .. t, A .. E, MonomialOrder => Eliminate 3 ]; + + i3 : I = ideal( A - r^2, B - s^2, C - r*s, D - r*t, E - s*t ); + o3 : Ideal of S + + i4 : phi = map( PP4, S, matrix{{ 0_PP4, 0_PP4, 0_PP4 }} | vars PP4) + + o4 = map(PP4,S,{0, 0, 0, a, b, c, d, e}) + + o4 : RingMap PP4 <--- S + + i5 : surfaceA = phi ideal selectInSubring(1, gens gb I ) + + 2 + o5 = ideal (c*d - a*e, b*d - c*e, a*b - c ) + o5 : Ideal of PP4 + +\end{verbatim}} +\noindent We determine the surface in part~(b) by constructing the +blow-up of $\PP^{2}$ in $\PP^{2} \times \PP^{1}$ and then projecting +its Segre embedding from $\PP^{5}$ into $\PP^{4}$. Note that its +image under the Segre map lies on a hyperplane in $\PP^{5}$. +{\scriptsize +\begin{verbatim} + + i6 : R = QQ[t, x, y, z, u, v, MonomialOrder => Eliminate 1]; + + i7 : blowUpIdeal = ideal selectInSubring( 1, gens gb + ideal( u-t*x, v-t*y )) + + o7 = ideal(y*u - x*v) + o7 : Ideal of R + + i8 : PP2xPP1 = QQ[x, y, z, u, v]; + + i9 : psi = map( PP2xPP1, R, 0 | vars PP2xPP1 ); + + o9 : RingMap PP2xPP1 <--- R + + i10 : blowUp = PP2xPP1 / psi(blowUpIdeal); + + i11 : PP5 = QQ[ A .. F ]; + + i12 : segre = map( blowUp, PP5, + matrix{{ x*u, y*u, z*u, x*v, y*v, z*v }}); + + o12 : RingMap blowUp <--- PP5 + + i13 : ker segre + + 2 + o13 = ideal (B - D, C*E - D*F, D - A*E, C*D - A*F) + o13 : Ideal of PP5 + + i14 : theta = map( PP4, PP5, matrix{{ a, c, d, c, b, e }}) + + o14 = map(PP4,PP5,{a, c, d, c, b, e}) + + o14 : RingMap PP4 <--- PP5 + + i15 : surfaceB = trim theta ker segre + + 2 + o15 = ideal (c*d - a*e, b*d - c*e, a*b - c ) + o15 : Ideal of PP4 + +\end{verbatim}} +\noindent Finally, we compute the surface in part~(c) and apply a +permutation of the variables to obtain the desired isomorphisms +{\scriptsize +\begin{verbatim} + + i16 : determinantal = minors(2, matrix{{ a, c, d },{ b, d, e }}) + + 2 + o16 = ideal (- b*c + a*d, - b*d + a*e, - d + c*e) + + o16 : Ideal of PP4 + + i17 : sigma = map( PP4, PP4, matrix{{ d, e, a, c, b }}); + + o17 : RingMap PP4 <--- PP4 + + i18 : surfaceC = sigma determinantal + + 2 + o18 = ideal (c*d - a*e, b*d - c*e, a*b - c ) + + o18 : Ideal of PP4 + + i19 : surfaceA == surfaceB + + o19 = true + + i20 : surfaceB == surfaceC + + o20 = true +\end{verbatim}} + +\end{solution} + +\subsection*{Fano Schemes} + +Our final example concern the family of Fano +schemes associated to a flat family of quadrics. +We solve Exercise~IV-69 in \cite{EH}. + +\begin{question} +Consider the one-parameter family of quadrics +\[ +Q = V(tx^{2}+ty^{2}+tz^{2}+w^{2}) \subseteq \PP^{3}_{k[t]} = +\Proj\big(k[t][x,y,z,w]\big) \, . +\] +As the fiber $Q_{t}$ tends to the double plane $Q_{0}$, what is the +flat limit of the Fano scheme $F_{1}(Q_{t})$ +of lines lying on these quadric surfaces~? +\end{question} + +\begin{solution} +We first compute the ideal defining the Fano scheme of $Q$: +{\scriptsize +\begin{verbatim} + + i1 : PP3overBase = QQ[t, x, y, z, w]; + + i2 : familyOfQuadrics = ideal( t*x^2+t*y^2+t*z^2+w^2 ); + o2 : Ideal of PP3overBase + + i3 : S = QQ[t, u, v, A .. H ]; + + i4 : phi = map( S, PP3overBase, matrix{{ t }} | + u*matrix{{ A, B, C, D }}+v*matrix{{ E, F, G, H }} ); + + o4 : RingMap S <--- PP3overBase + + i5 : imageFamily = phi familyOfQuadrics; + o5 : Ideal of S + + i6 : coeffOfFamily = (coefficients ( {1,2}, gens imageFamily ))_1; + + 1 3 + o6 : Matrix S <--- S + + i7 : Sprime = QQ[t, A .. H ]; + + i8 : coeffOfFamily = substitute( coeffOfFamily, Sprime ); + + 1 3 + o8 : Matrix Sprime <--- Sprime + + i9 : Sbar = Sprime / (ideal coeffOfFamily); + + i10 : PP5overBase = QQ[t, a .. f ]; + + i11 : psi = matrix{{Sbar_"t"}} | substitute( exteriorPower( 2, + matrix{{ A, B, C, D }, { E, F, G, H }}), Sbar); + + 1 7 + o11 : Matrix Sbar <--- Sbar + + i12 : fanoOfFamily = trim ker map( Sbar, PP5overBase, psi); + o12 : Ideal of PP5overBase + +\end{verbatim}} +Secondly, we determine the limit as $t$ tends to $0$. +{\scriptsize +\begin{verbatim} + + i13 : fanoOfZeroFibre = trim substitute( + saturate( fanoOfFamily, t), {t => 0} ) + + 2 2 2 + o13 = ideal (e*f, d*f, d*e, a*e + b*f, d , f , e , c*d - b*e + a*f, + + 2 2 2 + b*d + c*e, a*d - c*f, a + b + c ) + + o13 : Ideal of PP5overBase + + i14 : fanoOfOneFibre = trim substitute( + saturate( fanoOfFamily, t), {t => 1} ) + + 2 2 2 + o14 = ideal (a*e + b*f, d + e + f , c*d - b*e + a*f, b*d + c*e, + 2 2 2 2 2 + a*d - c*f, c + e + f , b*c + d*e, a*c - d*f, b - e , + 2 2 + a*b + e*f, a - f ) + + o14 : Ideal of PP5overBase + + i15 : fanoOfOneFibre == intersect( ideal( c-d, b+e, a-f, d^2+e^2+f^2 ), + ideal( c+d, b-e, a+f, d^2+e^2+f^2 ) ) + + o15 = true + +\end{verbatim}} +\noindent We see that $F_{1}(Q_{0}) $ is +supported on the plane conic $\langle d, e, f, a^{2}+b^{2}+c^{2} +\rangle$. However, $F_{1}(Q_{0})$ is not reduced but has multiplicity +two. For $t \neq 0$, $F_{1}(Q_{t})$ is the union of +two conics lying in complementary planes and $F_{1}(Q_{0})$ is the +double conic obtained when the two conics move together. +\end{solution} + +\providecommand{\bysame}{\leavevmode\hbox to3em{\hrulefill}\thinspace} +\begin{thebibliography}{CLO} + +\bibitem[CLO]{CLO} +David Cox, John Little and Donal O'Shea, + \emph{Ideals, Varieties and Algorithms}, +Undergraduate Texts in Mathematics, +Springer--Verlag, New York, 1996. + +\bibitem[CLO2]{CLO2} +David Cox, John Little and Donal O'Shea, + \emph{Using Algebraic Geometry}, + Graduate Texts in Mathematics~185, Springer--Verlag, + New York, 1998. + +\bibitem[EH]{EH} +David Eisenbud and Joe Harris, \emph{The Geometry of Schemes}, + Graduate Texts in Mathematics~197, Springer--Verlag, + New York, 1999. + +\bibitem[GS]{GS} +Daniel R.~Grayson and Michael E.~Stillman, \emph{Macaulay~2} + --- a software system for algebraic geometry and commutative algebra, + available at {\tt http://www.math.uiuc.edu/Macaulay2}. + +\end{thebibliography} + + +\end{document} diff --git a/Book/ComputationsBook/chapters/solving/Makefile b/Book/ComputationsBook/chapters/solving/Makefile new file mode 100644 index 0000000..0b546a0 --- /dev/null +++ b/Book/ComputationsBook/chapters/solving/Makefile @@ -0,0 +1,2 @@ +NAME := solving +include ../../Makefile.chapter diff --git a/Book/ComputationsBook/chapters/solving/Y25.eps b/Book/ComputationsBook/chapters/solving/Y25.eps new file mode 100644 index 0000000..9bbe65d --- /dev/null +++ b/Book/ComputationsBook/chapters/solving/Y25.eps @@ -0,0 +1,152 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: Y25.eps +%%Creator: fig2dev Version 3.2 Patchlevel 0-beta3 +%%CreationDate: Thu Jul 13 05:18:30 2000 +%%For: sottile@schubert (Frank Sottile,,,,) +%%Orientation: Portrait +%%BoundingBox: 0 0 125 237 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +-27.0 298.0 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def +%%EndProlog + +$F2psBegin +10 setmiterlimit +n -1000 5951 m -1000 -1000 l 3526 -1000 l 3526 5951 l cp clip + 0.06000 0.06000 sc +% Polyline +15.000 slw +n 1800 2400 m 600 3600 l 1200 4200 l gs col1 s gr +% Polyline +n 600 1200 m 2400 3000 l 600 4800 l gs col1 s gr +% Polyline +n 1200 1800 m 600 2400 l 1800 3600 l gs col1 s gr +% Polyline +0.000 slw +n 832 3150 m 2400 3150 l 2400 2827 l 832 2827 l cp gs col7 1.00 shd ef gr +% Polyline +n 525 3750 m 2093 3750 l 2093 3427 l 525 3427 l cp gs col7 1.00 shd ef gr +% Polyline +n 525 2550 m 2093 2550 l 2093 2227 l 525 2227 l cp gs col7 1.00 shd ef gr +% Polyline +n 675 1950 m 2243 1950 l 2243 1627 l 675 1627 l cp gs col7 1.00 shd ef gr +% Polyline +n 525 1350 m 2093 1350 l 2093 1027 l 525 1027 l cp gs col7 1.00 shd ef gr +% Polyline +n 675 4350 m 2243 4350 l 2243 4027 l 675 4027 l cp gs col7 1.00 shd ef gr +% Polyline +n 525 4950 m 2093 4950 l 2093 4627 l 525 4627 l cp gs col7 1.00 shd ef gr +% Polyline +15.000 slw +n 1700 2515 m 1900 2515 l gs col8 s gr +% Polyline +n 475 2515 m 685 2515 l gs col8 s gr +/Times-Roman ff 270.00 scf sf +450 4875 m +gs 1 -1 sc (01) col0 sh gr +/Times-Roman ff 270.00 scf sf +1050 4275 m +gs 1 -1 sc (02) col0 sh gr +/Times-Roman ff 270.00 scf sf +1650 3675 m +gs 1 -1 sc (03) col0 sh gr +/Times-Roman ff 270.00 scf sf +2250 3075 m +gs 1 -1 sc (04) col0 sh gr +/Times-Roman ff 270.00 scf sf +450 3675 m +gs 1 -1 sc (12) col0 sh gr +/Times-Roman ff 270.00 scf sf +1050 3075 m +gs 1 -1 sc (13) col0 sh gr +/Times-Roman ff 270.00 scf sf +1650 2475 m +gs 1 -1 sc (14) col0 sh gr +/Times-Roman ff 270.00 scf sf +450 2475 m +gs 1 -1 sc (23) col0 sh gr +/Times-Roman ff 270.00 scf sf +1050 1875 m +gs 1 -1 sc (24) col0 sh gr +/Times-Roman ff 270.00 scf sf +450 1275 m +gs 1 -1 sc (34) col0 sh gr +$F2psEnd +rs diff --git a/Book/ComputationsBook/chapters/solving/Y25.fig b/Book/ComputationsBook/chapters/solving/Y25.fig new file mode 100644 index 0000000..a698553 --- /dev/null +++ b/Book/ComputationsBook/chapters/solving/Y25.fig @@ -0,0 +1,43 @@ +#FIG 3.2 +Portrait +Center +Inches +Letter +100.00 +Single +-2 +1200 2 +2 2 0 0 1 7 1 0 20 0.000 0 0 -1 0 0 5 + 832 3150 2400 3150 2400 2827 832 2827 832 3150 +2 2 0 0 1 7 1 0 20 0.000 0 0 -1 0 0 5 + 525 3750 2093 3750 2093 3427 525 3427 525 3750 +2 2 0 0 1 7 1 0 20 0.000 0 0 -1 0 0 5 + 525 2550 2093 2550 2093 2227 525 2227 525 2550 +2 2 0 0 1 7 1 0 20 0.000 0 0 -1 0 0 5 + 675 1950 2243 1950 2243 1627 675 1627 675 1950 +2 2 0 0 1 7 1 0 20 0.000 0 0 -1 0 0 5 + 525 1350 2093 1350 2093 1027 525 1027 525 1350 +2 2 0 0 1 7 1 0 20 0.000 0 0 -1 0 0 5 + 675 4350 2243 4350 2243 4027 675 4027 675 4350 +2 1 0 2 1 7 2 0 -1 0.000 0 0 -1 0 0 3 + 1800 2400 600 3600 1200 4200 +2 2 0 0 1 7 1 0 20 0.000 0 0 -1 0 0 5 + 525 4950 2093 4950 2093 4627 525 4627 525 4950 +2 1 0 2 1 7 2 0 -1 0.000 0 0 -1 0 0 3 + 600 1200 2400 3000 600 4800 +2 1 0 2 1 7 2 0 -1 0.000 0 0 -1 0 0 3 + 1200 1800 600 2400 1800 3600 +2 1 0 2 8 7 0 0 -1 0.000 0 0 -1 0 0 2 + 1700 2515 1900 2515 +2 1 0 2 8 7 0 0 -1 0.000 0 0 -1 0 0 2 + 475 2515 685 2515 +4 0 0 0 0 0 18 0.0000 4 195 270 450 4875 01\001 +4 0 0 0 0 0 18 0.0000 4 195 270 1050 4275 02\001 +4 0 0 0 0 0 18 0.0000 4 195 270 1650 3675 03\001 +4 0 0 0 0 0 18 0.0000 4 195 270 2250 3075 04\001 +4 0 0 0 0 0 18 0.0000 4 195 270 450 3675 12\001 +4 0 0 0 0 0 18 0.0000 4 195 270 1050 3075 13\001 +4 0 0 0 0 0 18 0.0000 4 195 270 1650 2475 14\001 +4 0 0 0 0 0 18 0.0000 4 195 270 450 2475 23\001 +4 0 0 0 0 0 18 0.0000 4 195 270 1050 1875 24\001 +4 0 0 0 0 0 18 0.0000 4 195 270 450 1275 34\001 diff --git a/Book/ComputationsBook/chapters/solving/authors b/Book/ComputationsBook/chapters/solving/authors new file mode 100644 index 0000000..3acf348 --- /dev/null +++ b/Book/ComputationsBook/chapters/solving/authors @@ -0,0 +1,3 @@ +To: Frank Sottile +CC: Daniel Grayson +Subject: Macaulay 2 book diff --git a/Book/ComputationsBook/chapters/solving/papers.bib b/Book/ComputationsBook/chapters/solving/papers.bib new file mode 100644 index 0000000..328a9cb --- /dev/null +++ b/Book/ComputationsBook/chapters/solving/papers.bib @@ -0,0 +1,320 @@ + +@Unpublished{SO:AF, + author = {P.~Aluffi and W.~Fulton}, + title = {Lines tangent to four surfaces containing a curve}, + year = {2001}, +} + +@InProceedings{SO:BMMT, + author = {E. Becker and M.~G. Marinari and T. Mora and C. Traverso}, + title = {The shape of the {S}hape {L}emma}, + booktitle = {Proceedings ISSAC-94}, + pages = {129--133}, + year = {1993}, +} + + +@incollection {SO:BW, + AUTHOR = {E.~Becker and Th.~W{\"o}ermann}, + TITLE = {On the trace formula for quadratic forms}, +BOOKTITLE = {Recent advances in real algebraic geometry and quadratic forms + (Berkeley, CA, 1990/1991; San Francisco, CA, 1991)}, + PAGES = {271--291}, +PUBLISHER = {Amer. Math. Soc.}, + ADDRESS = {Providence, RI}, + YEAR = {1994}, + MRCLASS = {12D15 (11E10 14P05 68Q40)}, + MRNUMBER = {95f:12002}, + MRREVR = {Henri Lombardi}, +} + +@article{SO:Bernstein, +AUTHOR = "D.~N. Bernstein", +TITLE = "The number of roots of a system of equations", +JOURNAL = "Funct. Anal. Appl.", +VOLUME = "9", +YEAR = 1975, +PAGES = "183--185" +} + +@Article{SO:BV77, + author = {O. Bottema and G.R. Veldkamp}, + title = {On the lines in space with equal distances to $n$ given points}, + journal = {Geometrie Dedicata}, + year = {1977}, + volume = {6}, + pages = {121-129} +} + +@book{SO:CCS, +EDITOR = "A.~M.~Cohen and H.~Cuypers and H.~Sterk", +TITLE = "Some Tapas of Computer Algebra", +PUBLISHER = "Springer-Varlag", +YEAR = 1999, +} + + +@book {MR99h:13033, + AUTHOR = {D.~Cox and J.~Little and D.~O'Shea}, + TITLE = {Using algebraic geometry}, +PUBLISHER = {Springer-Verlag}, + ADDRESS = {New York}, + YEAR = {1998}, + PAGES = {xii+499}, + ISBN = {0-387-98487-9}, + MRCLASS = {13Pxx (13-01 14-01 14Qxx)}, + MRNUMBER = {99h:13033}, + MRREVR = {P. Schenzel}, +} + + +@book{SO:CLO92, +AUTHOR = "D. Cox and J. Little and D. O'Shea", +TITLE = "Ideals, Varieties, Algorithms: An Introduction to Computational + Algebraic Geometry and Commutative Algebra", +PUBLISHER = "Springer-Verlag, New York", +YEAR = "1992", +SERIES = "UTM", +} + + +@article {SO:DeKh00, + AUTHOR = {Degtyarev, A. I. and Kharlamov, V. M.}, + TITLE = {Topological properties of real algebraic varieties: + {R}okhlin's way}, + JOURNAL = {Uspekhi Mat. Nauk}, + FJOURNAL = {Rossi\u\i skaya Akademiya Nauk. Moskovskoe Matematicheskoe + Obshchestvo. Uspekhi Matematicheskikh Nauk}, + VOLUME = {55}, + YEAR = {2000}, + NUMBER = {4(334)}, + PAGES = {129--212}, + ISSN = {0042-1316}, + MRCLASS = {14P25 (57R19)}, + MRNUMBER = {1 786 731}, +MRREVIEWER = {Eugenii Shustin}, +} + +@book {SO:MR97a:13001, +AUTHOR = "D. Eisenbud", +TITLE = "Commutative Algebra With a View Towards Algebraic Geometry", +SERIES = "GTM", +PUBLISHER = "Springer-Verlag", +NUMBER = "150", +YEAR = 1995, +} + + +@Unpublished{SO:EG00, + author = {A. Eremenko and A. Gabrielov}, + title = {Rational functions with real critical points and {B}.~and + {M}.~{S}hapiro conjecture in real enumerative geometry}, + note = {MSRI preprint 2000-002}, + year = {2000}, +} + +@Unpublished{SO:EG-NR, + author = {A. Eremenko and A. Gabrielov}, + title = {New counterexamples to pole placement by static output feedback}, + note = {Linear Algebra and its Applications, to appear}, + year = {2001}, +} + +@book{SO:Fu84a, +AUTHOR = "W. Fulton", +TITLE = "Intersection Theory", +PUBLISHER = "Springer-Verlag", +YEAR = "1984", +SERIES = "Ergebnisse der Mathematik und ihrer Grenzgebiete", +NUMBER = "2", +} + +@Article{SO:Fu00, + author = {W. Fulton}, + title = {Eigenvalues, invariant factors, highest weights, and + Schubert calculus}, + journal = {Bull. Amer. Math. Soc.}, + year = {2000}, + volume = {37}, + number = {3}, + pages = {209--250} +} + +@InProceedings{SO:FM76, + author = {W. Fulton and R. MacPherson}, + title = {Intersecting cycles on an algebraic variety}, + booktitle = {Real and Complex Singularities}, + pages = {179-197}, + year = {1977}, + editor = {P. Holm}, + organization = {Oslo, 1976}, + publisher = {Sijthoff and Noordhoff} +} + +@article{SO:HSS, +AUTHOR = "B. Huber and F. Sottile and B. Sturmfels", +TITLE = "Numerical {S}chubert Calculus", +JOURNAL = "J.~Symb.~Comp.", +PAGES = "767--788", +VOLUME = "26", +YEAR = "1998", +NUMBER = "6", +} +@article {SO:MR50:13063, + AUTHOR = {S. Kleiman}, + TITLE = {The transversality of a general translate}, + JOURNAL = {Compositio Math.}, + VOLUME = {28}, + YEAR = {1974}, + PAGES = {287--297}, +} + +@article {SO:MR48:2152, + AUTHOR = {S. Kleiman and D. Laksov}, + TITLE = {Schubert calculus}, + JOURNAL = {Amer. Math. Monthly}, + VOLUME = {79}, + YEAR = {1972}, + PAGES = {1061--1082}, +} + +@article{SO:Kouchnirenko, +AUTHOR = "A.~G. Kouchnirenko", +TITLE = "A {N}ewton polyhedron and the number of solutions of + a system of $k$ equations in $k$ unknowns", +JOURNAL = "Usp. Math. Nauk.", +VOLUME = "30", +YEAR = 1975, +PAGES = "266--267" +} + + +@Unpublished{SO:Li00, + author = {D. Lichtblau}, + title = {Finding cylinders through 5 points in $\mathbb{R}^3$}, + note = {Mss., email address: {danl@wolfram.com}}, + year = {2001} +} + +@MISC{SO:MPT00, + AUTHOR = {I.G. Macdonald and J. Pach and T. Theobald}, + TITLE = {Common Tangents to Four Unit Balls in $\mathbb{R}^3$}, + HOWPUBLISHED = {To appear in {\em Discrete and Computational Geometry} + {\bf 26}:1 (2001)}, +} + +@incollection{SO:PRS, + AUTHOR = {Pedersen, P. and Roy, M.-F. and Szpirglas, A.}, + TITLE = {Counting real zeros in the multivariate case}, +BOOKTITLE = {Computational {A}lgebraic {G}eometry (Nice, 1992)}, + PAGES = {203--224}, +PUBLISHER = {Birkh\"auser Boston}, + ADDRESS = {Boston, MA}, + YEAR = {1993}, + MRCLASS = {14Q10 (13P10 68Q40)}, + MRNUMBER = {94m:14075}, + MRREVR = {Alexander I. Barvinok}, +} + +@article{SO:RS98, +AUTHOR = "J. Rosenthal and F. Sottile", +TITLE = "Some remarks on real and complex output feedback", +JOURNAL = "Systems Control Lett.", +FJOURNAL = "Systems \& Control Letters", +PAGES = "73--80", +VOLUME = "33", +YEAR = "1998", +NUMBER = "2", +NOTE = "For a description of the computational aspects, see +{http://www.nd.edu/\~{}rosen/pole/}", +} + +@article{SO:So97a, +AUTHOR = "F. Sottile", +TITLE = "Enumerative Geometry for the Real + {G}rassmannian of Lines in Projective Space", +YEAR = "1997", +JOURNAL = "Duke Math. J.", +VOLUME = "87", +NUMBER = "1", +PAGES = "59--85" +} + +@article{SO:So99a, +AUTHOR = "F. Sottile", +TITLE = "The special {S}chubert calculus is real", +JOURNAL = "ERA of the AMS", +VOLUME = "5", +PAGES = "35--39", +YEAR = "1999", +} + +@article{SO:So00b, +AUTHOR = "F. Sottile", +TITLE = "Real {S}chubert Calculus: Polynomial systems and a conjecture of + {S}hapiro and {S}hapiro", +JOURNAL = "Exper.~Math.", +VOLUME = "9", +PAGES = "161--182", +YEAR = "2000", +} + +@unpublished{SO:So_shap-www, +AUTHOR = "F. Sottile", +TITLE = "The conjecture of {S}hapiro and {S}hapiro", +NOTE = "An archive of computations and computer algebra scripts, + {http://www.expmath.org/extra/9.2/sottile/}", +YEAR = "2000", +} + +@Article{SO:So_flags, + author = {F. Sottile}, + title = {Some real and unreal enumerative geometry for flag manifolds}, + journal = {Mich. Math. J}, + year = {2000}, + volume = {48}, + pages = {573--592} +} + +@unpublished{SO:So_trans, +AUTHOR = "F. Sottile", +TITLE = "Elementary Transversality in the Schubert calculus + in any Characteristic", +NOTE = "math.AG/0010319", +YEAR = "2000", +} + +@book{SO:Sturmfels_GBCP, +AUTHOR = "B. Sturmfels", +TITLE = "Gr{\"o}bner Bases and Convex Polytopes", +SERIES = "University Lecture Series", +VOLUME = "8", +PUBLISHER = "American Math. Soc.", +ADDRESS = {Providence, RI}, +YEAR = "1996", +ISBN = {0-8218-0487-1}, +PAGES = {xii+162}, +} + +@unpublished{SO:Ver99, +AUTHOR = "J. Verschelde", +TITLE = "Polynomial homotopies for dense, sparse, and determinantal systems", +NOTE="MSRI preprint 1999-041", +YEAR = 1999, +} + +@article{SO:Ver00, +AUTHOR = "J. Verschelde", +TITLE = "Numerical evidence of a conjecture in real algebraic geometry", +JOURNAL = "Exper.~Math.", +VOLUME = "9", +PAGES = "183--196", +YEAR = "2000", +} + +@Unpublished{SO:STh01, + author = {F. Sottile and T. Theobald}, + title = {Lines tangent to $2n-2$ spheres in $\mathbb{R}^n$}, + note = {math.AG/0105180}, + year = {2001}, +} diff --git a/Book/ComputationsBook/chapters/solving/realroots.m2 b/Book/ComputationsBook/chapters/solving/realroots.m2 new file mode 100644 index 0000000..3e21219 --- /dev/null +++ b/Book/ComputationsBook/chapters/solving/realroots.m2 @@ -0,0 +1,231 @@ +--realroots.m2 +-- +-- Written by Dan Grayson & Frank Sottile +-- +-- The purpose of this Macaulay2 package is to provide tools +-- for elimination and solving, with a particular emphasis on +-- counting and isolating real zeroes of ideals in QQ[X] +--------------------------------------------------------------------------- +-- Documentation +--------------------------------------------------------------------------- +--eliminant(h, C) computes the eliminant an element h of an Artinian ring + -- as the minimal polynomial of h by finding a minimal linear + -- relation among the powers of h. C is a polynomial ring + -- in one variable Z and the eliminant is in C + -------------------------------------------------------------------------- +--eliminantNaive(h, Z) Computes the eliminant of an element h of an Artinian + -- ring naively as a kernel, returning a polynomial in Z + -------------------------------------------------------------------------- +--regularRep(f) Computes the matrix of multiplication by an element f + -- of an Artinian ring + -------------------------------------------------------------------------- +--charPoly(h, Z) Computes the characteristic polynomial of multiplication + -- by an element h an Artinian ring, returning a polynomial + -- in Z; this is the eliminant when the ideal is reduced + -------------------------------------------------------------------------- +--SturmSequence(f) Computes the Sturm sequence of a univariate polynomial f + -------------------------------------------------------------------------- +--sign(n) Computes the sign of a number + -------------------------------------------------------------------------- +--signAtMinusInfinity(g) Computes the sign of g(-infinity), g is univariate + -- with real coefficients + -------------------------------------------------------------------------- +--signAtZero(g) Computes the sign of g(0), g is univariate with real coefficients + -------------------------------------------------------------------------- +--signAtInfinity(g) Computes the sign of g(-infinity), g is univariate + -- with real coefficients + -------------------------------------------------------------------------- +--numRealSturm(f) Uses Sturm sequences to compute the number of real roots + -- of a polynomial f with real coefficients + -------------------------------------------------------------------------- +--numPosRoots(f) Uses Sturm sequences to compute the number of positive real + -- roots of a polynomial f with real coefficients + -------------------------------------------------------------------------- +--numNegRoots(f) Uses Sturm sequences to compute the number of negative real + -- roots of a polynomial f with real coefficients + -------------------------------------------------------------------------- +--variations(c) Computes the number of changes of sign in a sequence c + -------------------------------------------------------------------------- +--traceForm(h) Computes the trace quadratic form of an element h in an + -- Artinian ring + -------------------------------------------------------------------------- +--traceFormSignature(h) Computes the rank and signature of the trace quadratic + -- form of an element h in an Artinian ring of characteristic 0 + -------------------------------------------------------------------------- +--numRealTrace(A) Computes the number of real points in Spec(A), where + -- A is an Artinian ring with characteristic zero +---------------------------------------------------------------------------- +-- Routines +---------------------------------------------------------------------------- +--eliminant(h, C) computes the eliminant an element h of an Artinian ring + -- as the minimal polynomial of h by finding a minimal linear + -- relation among the powers of h. C is a polynomial ring + -- in one variable Z and the eliminant is in C + -- +eliminant = (h, C) -> ( + Z := C_0; + A := ring h; + assert( dim A == 0 ); + F := coefficientRing A; + assert( isField F ); + assert( F == coefficientRing C ); + B := basis A; + d := numgens source B; + M := fold((M, i) -> M || + substitute(contract(B, h^(i+1)), F), + substitute(contract(B, 1_A), F), + flatten subsets(d, d)); + N := ((ker transpose M)).generators; + P := matrix {toList apply(0..d, i -> Z^i)} * N; + (flatten entries(P))_0) +--------------------------------------------------------------------------- +--eliminantNaive(h, Z) Computes the eliminant of an element h of an Artinian + -- ring naively as a kernel, returning a polynomial in Z + -- +eliminantNaive = (h, Z) -> ( + A := ring h; + assert( dim A == 0 ); + F := coefficientRing A; + assert( isField F ); + (ker(map(A, F[Z], {h})))_0 + ) +-------------------------------------------------------------------------- +--regularRep(f) Computes the matrix of multiplication by an element f + -- of an Artinian ring + -- +regularRep = f -> ( + assert( dim ring f == 0 ); + b := basis ring f; + k := coefficientRing ring f; + substitute(contract(transpose b, f*b), k)) +-------------------------------------------------------------------------- +--charPoly(h, Z) Computes the characteristic polynomial of multiplication + -- by an element h an Artinian ring, returning a polynomial + -- in Z; this is the eliminant when the ideal is reduced + -- +charPoly = (h, Z) -> ( + A := ring h; + F := coefficientRing A; + S := F[Z]; + Z = value Z; + mh := regularRep(h) ** S; + Idz := S_0 * id_(S^(numgens source mh)); + det(Idz - mh)) +----------------------------------------------------------------------- +--SturmSequence(f) Computes the Sturm sequence of a univariate polynomial f + -- +SturmSequence = f -> ( + assert( isPolynomialRing ring f ); + assert( numgens ring f === 1 ); + R := ring f; + assert( char R == 0 ); + x := R_0; + n := first degree f; + c := new MutableList from toList (0 .. n); + if n >= 0 then ( + c#0 = f; + if n >= 1 then ( + c#1 = diff(x,f); + scan(2 .. n, i -> c#i = - c#(i-2) % c#(i-1)); + )); + toList c) +-------------------------------------------------------------------------- +--sign(n) Computes the sign of a number + -- +sign := n -> (if n < 0 then -1 + else if n == 0 then 0 + else if n > 0 then 1); +-------------------------------------------------------------------------- +--signAtMinusInfinity(g) Computes the sign of g(-infinity), g is univariate + -- with real coefficients + -- +signAtMinusInfinity := g -> sign((if odd first degree g + then -1 else 1) * + leadCoefficient g) +-------------------------------------------------------------------------- +--signAtZero(g) Computes the sign of g(0), g is univariate with real coefficients + -- +signAtZero := g -> ( + R := ring g; + sign ( g _ (1_R) )) +-------------------------------------------------------------------------- +--signAtInfinity(g) Computes the sign of g(-infinity), g is univariate + -- with real coefficients + -- +signAtInfinity := g -> sign leadCoefficient g; +-------------------------------------------------------------------------- +--numRealSturm(f) Uses Sturm sequences to compute the number of real roots + -- of a polynomial f with real coefficients + -- +numRealSturm = f -> ( + c := SturmSequence f; + variations (signAtMinusInfinity \ c) + - variations (signAtInfinity \ c)) +--------------------------------------------------------------------------- +--numPosRoots(f) Uses Sturm sequences to compute the number of positive real + -- roots of a polynomial f with real coefficients + -- +numPosRoots = f -> ( + c := SturmSequence f; + variations (signAtZero \ c) + - variations (signAtInfinity \ c)) +-------------------------------------------------------------------------- +--numNegRoots(f) Uses Sturm sequences to compute the number of negative real + -- roots of a polynomial f with real coefficients + -- +numNegRoots = f -> ( + c := SturmSequence f; + variations (signAtMinusInfinity \ c) + - variations (signAtZero \ c)) +-------------------------------------------------------------------------- +--variations(c) Computes the number of changes of sign in a sequence c + -- +variations = c -> ( + n := 0; + last := 0; + scan(c, x -> if x != 0 then ( + if last < 0 and x > 0 or last > 0 + and x < 0 then n = n+1; + last = x; + )); + n) +-------------------------------------------------------------------------- +--traceForm(h) Computes the trace quadratic form of an element h in an + -- Artinian ring + -- +traceForm = h -> ( + assert( dim ring h == 0 ); + b := basis ring h; + k := coefficientRing ring h; + mm := substitute(contract(transpose b, h * b ** b), k); + tr := matrix {apply(first entries b, x -> + trace regularRep x)}; + adjoint(tr * mm, source tr, source tr)) +-------------------------------------------------------------------------- +--traceFormSignature(h) Computes the rank and signature of the trace quadratic + -- form of an element h in an Artinian ring of characteristic 0 + -- +traceFormSignature = h -> ( + A := ring h; + assert( dim A == 0 ); + assert( char A == 0 ); + S := QQ[Z]; + TrF := traceForm(h) ** S; + IdZ := Z * id_(S^(numgens source TrF)); + f := det(TrF - IdZ); + << "The trace form S_h with h = " << h << + " has rank " << rank(TrF) << " and signature " << + numPosRoots(f) - numNegRoots(f) << endl; ) +-------------------------------------------------------------------------- +--numRealTrace(A) Computes the number of real points in Spec(A), where + -- A is an Artinian ring with characteristic zero + -- +numRealTrace = A -> ( + assert( dim A == 0 ); + assert( char A == 0 ); + S := QQ[Z]; + TrF := traceForm(1_A) ** S; + IdZ := Z * id_(S^(numgens source TrF)); + f := det(TrF - IdZ); + numPosRoots(f)-numNegRoots(f)) +-------------------------------------------------------------------------- diff --git a/Book/ComputationsBook/chapters/solving/solving-m2.tex b/Book/ComputationsBook/chapters/solving/solving-m2.tex new file mode 100644 index 0000000..0c76f80 --- /dev/null +++ b/Book/ComputationsBook/chapters/solving/solving-m2.tex @@ -0,0 +1,2153 @@ +%solving.tex +% +% Macaulay 2 Chapter: +% From Enumerative geometry to solving polynomial systems +% +% Frank Sottile +% +% Begun: 25 April 1999 +% Began new version 27 July +% Preliminary version 27 August +% Started working again 1 July 2000 +% Completed & Submitted 20 July +% arXiv.org/math.AG/0007142 npvkp +% Title: "An excursion ...(title above)... with Macaulay2" +% Final revised version 14 November +% Replaced arXiv version 15 November +% Really Final version 25 January 2000 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% WARNING: * On an AMD K6/2 300MHz w/ 256MB the M2 code % +% takes 8:15 minutes to run and uses 82MB % +% * On Intel PIII 600MHz w/ 256K cache & 256MB % +% the M2 code takes 4:15 minutes % +% * On Intel PIII 850MHz w/ 256K cache & 1GB % +% the M2 code takes 3:20 minutes % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\title{From Enumerative Geometry to Solving Systems of Polynomial Equations} + +\titlerunning{From Enumerative Geometry to Solving Equations} +\toctitle{From Enumerative Geometry to Solving Systems of Polynomial Equations} +\author{Frank Sottile\thanks{Supported in part by NSF grant DMS-0070494.}} +\authorrunning{F. Sottile} +% \institute{Department of Mathematics and Statistics, University of +% Massachusetts, Amherst, MA 01003, USA} +\maketitle + +\begin{abstract} +Solving a system of polynomial equations is a ubiquitous problem in +the applications of mathematics. +Until recently, it has been hopeless to find explicit solutions to such +systems, and mathematics has instead developed deep and +powerful theories about the solutions to polynomial equations. +Enumerative Geometry is concerned with counting the +number of solutions when the polynomials come from a geometric situation and +Intersection Theory\index{intersection theory} gives methods to accomplish the enumeration. + + We use \Mtwo{}\/ to investigate some problems from enumerative geometry, +illustrating some applications of symbolic computation to this important +problem of solving systems of polynomial equations. +Besides enumerating solutions to the resulting polynomial systems, which +include overdetermined, deficient, and improper systems, we address the +important question of real solutions to these geometric problems. +\end{abstract} + +\section{Introduction} +A basic question to ask about a system of polynomial equations is +its number of solutions\index{polynomial equations}. +For this, the fundamental result is the following +B\'ezout Theorem\index{Bezout's Theorem@B\'ezout's Theorem}. + +\begin{theorem} + The number of isolated solutions to a system of polynomial equations +$$ + f_1(x_1,\ldots,x_n)=f_2(x_1,\ldots,x_n)= \cdots + =f_n(x_1,\ldots,x_n)=0 +$$ + is bounded by $d_1d_2\cdots d_n$, where $d_i:=\deg f_i$. + If the polynomials are generic, then this bound is attained for + solutions in an algebraically closed field\index{field!algebraically closed}. +\end{theorem} + +Here, isolated is taken with respect to the algebraic closure. +%There are examples where this result fails without that restriction. +This B\'ezout Theorem is a consequence of the refined B\'ezout Theorem of +Fulton and MacPherson~\cite[\S 1.23]{SO:Fu84a}. + +A system of polynomial equations with fewer than this +degree bound or B\'ezout number\index{Bezout number@B\'ezout number} of solutions is called +{\it deficient}\index{polynomial equations!deficient}, +and there are well-defined classes of deficient systems that satisfy other +bounds. +For example, fewer monomials lead to fewer solutions, for which polyhedral +bounds~\cite{SO:Bernstein} on the number of solutions are often tighter (and +no weaker than) the B\'ezout number, which applies when +all monomials are present. +When the polynomials come from geometry, determining the +number of solutions is the central problem in enumerative +geometry\index{enumerative geometry}. + +Symbolic computation\index{symbolic computation} can help compute the +solutions to a system of equations +that has only isolated solutions. +In this case, the polynomials generate a zero-dimensional ideal +$I$\index{artinian, {\it see also} ideal, +zero-dimensional}\index{ideal!zero-dimensional}. +The {\it degree}\index{ideal!degree} of $I$ is $\dim_k k[X]/I$, the dimension of the +$k$-vector space $k[X]/I$, which is also the +number of standard monomials in any term order. +This degree gives an upper bound on +the number of solutions, which is attained when $I$ is +radical\index{ideal!radical}. + +\begin{example}\label{ex:one} +We illustrate this discussion with an example. +Let $f_1$, $f_2$, $f_3$, and $f_4$ be random quadratic polynomials in the ring +${\mathbb F}_{101}[y_{11},y_{12},y_{21},y_{22}]$. +% +\beginOutput +i1 : R = ZZ/101[y11, y12, y21, y22];\\ +\endOutput +% +\beginOutput +i2 : PolynomialSystem = apply(1..4, i -> \\ +\ random(0, R) + random(1, R) + random(2, R));\\ +\endOutput +% +The ideal they generate has dimension 0 and degree $16=2^4$, which is the +B\'ezout number. +% +\beginOutput +i3 : I = ideal PolynomialSystem;\\ +\emptyLine +o3 : Ideal of R\\ +\endOutput +% +\beginOutput +i4 : dim I, degree I\\ +\emptyLine +o4 = (0, 16)\\ +\emptyLine +o4 : Sequence\\ +\endOutput +% +If we restrict the monomials which appear in the $f_i$ to be among +$$ + 1,\;\ y_{11},\;\ y_{12},\;\ y_{21},\;\ y_{22},\;\ + y_{11}y_{22},\;\ \mbox{ and }\;\ y_{12}y_{21}, +$$ +then the ideal they generate again has dimension 0, but its degree is now 4. +% +\beginOutput +i5 : J = ideal (random(R^4, R^7) * transpose(\\ +\ matrix\{\{1, y11, y12, y21, y22, y11*y22, y12*y21\}\}));\\ +\emptyLine +o5 : Ideal of R\\ +\endOutput +% +\beginOutput +i6 : dim J, degree J\\ +\emptyLine +o6 = (0, 4)\\ +\emptyLine +o6 : Sequence\\ +\endOutput +% +If we further require that the coefficients of the +quadratic terms sum to zero, then the ideal they generate now +has degree 2. +% +\beginOutput +i7 : K = ideal (random(R^4, R^6) * transpose( \\ +\ matrix\{\{1, y11, y12, y21, y22, y11*y22 - y12*y21\}\}));\\ +\emptyLine +o7 : Ideal of R\\ +\endOutput +% +\beginOutput +i8 : dim K, degree K\\ +\emptyLine +o8 = (0, 2)\\ +\emptyLine +o8 : Sequence\\ +\endOutput +% +In Example~\ref{ex:G22}, we shall see how this last specialization is +geometrically meaningful. +\end{example} + + +For us, enumerative geometry\index{enumerative geometry} is concerned +with {\sl enumerating geometric figures of some kind having +specified positions with respect to general fixed figures}. +That is, counting the solutions to a geometrically meaningful +system of polynomial equations\index{polynomial equations}. +We use \Mtwo{}\/ to investigate some enumerative geometric +problems\index{enumerative problem} from this point of view. +The problem of enumeration will be solved by computing the +degree\index{ideal!degree} of the +(0-dimensional) ideal generated by the polynomials. + +\section{Solving Systems of Polynomials} +We briefly discuss some aspects of solving systems of polynomial +equations\index{solving polynomial equations}. +For a more complete survey, see the relevant chapters +in~\cite{SO:CCS,SO:CLO92}. + +Given an ideal $I$ in a polynomial ring $k[X]$, set +${\mathcal V}(I):= {\rm Spec}\,k[X]/I$. +When $I$ is generated by the polynomials +$f_1,\ldots,f_N$, ${\mathcal V}(I)$ gives the set of solutions in affine +space to the system +\begin{equation}\label{eq:system} + f_1(X)\ =\ \cdots\ =\ f_N(X)\ =\ 0 +\end{equation} +a geometric structure. +These solutions are the {\it roots} of the ideal $I$. +The degree of a zero-dimensional ideal $I$ provides an algebraic count of +its roots. +The degree of its radical counts +roots in the algebraic closure, ignoring multiplicities. + +\subsection{Excess Intersection} +Sometimes, only a proper (open) subset of affine space is +geometrically meaningful, and we want to count only the meaningful roots of +$I$. +Often the roots ${\mathcal V}(I)$ has positive dimensional components that lie +in the complement of the meaningful subset. +One way to treat this situation of excess or improper intersection is to +saturate\index{saturation} $I$ by a polynomial $f$ vanishing on the extraneous +roots. +This has the effect of working in $k[X][f^{-1}]$, the coordinate ring of the +complement of ${\mathcal V}(f)$~\cite[Exer.~2.3]{SO:MR97a:13001}. + +\begin{example}\label{ex:two} +We illustrate this with an example. +Consider the following ideal in ${\mathbb F}_7[x,y]$. +% +\beginOutput +i9 : R = ZZ/7[y, x, MonomialOrder=>Lex];\\ +\endOutput +% +\beginOutput +i10 : I = ideal (y^3*x^2 + 2*y^2*x + 3*x*y, 3*y^2 + x*y - 3*y);\\ +\emptyLine +o10 : Ideal of R\\ +\endOutput +% +Since the generators have greatest common factor $y$, $I$ defines +finitely many points together with the line $y=0$. +Saturate $I$\/ by the variable $y$ to obtain the ideal $J$ of isolated roots. +% +\beginOutput +i11 : J = saturate(I, ideal(y))\\ +\emptyLine +\ 4 3 2\\ +o11 = ideal (x + x + 3x + 3x, y - 2x - 1)\\ +\emptyLine +o11 : Ideal of R\\ +\endOutput +% +The first polynomial factors completely in ${\mathbb F}_7[x]$, +% +\beginOutput +i12 : factor(J_0)\\ +\emptyLine +o12 = (x)(x - 2)(x + 2)(x + 1)\\ +\emptyLine +o12 : Product\\ +\endOutput +% +and so the isolated roots of $I$ are $(2,5),(-1,-1),(0,1)$, and $(-2,-3)$. +\end{example} + +Here, the extraneous roots came from a common factor in both +equations. +A less trivial example of this phenomenon will be seen in +Section~\ref{sec:tangent_lines}. + +\subsection{Elimination, Rationality, and Solving} +Elimination theory\index{elimination theory} can be used to study the +roots of a zero-dimensional ideal $I\subset k[X]$\index{solving polynomial +equations!via elimination}. +A polynomial $h\in k[X]$ defines a map +$k[y]\rightarrow k[X]$ (by $y\mapsto h$) and a corresponding projection +$h\colon{\rm Spec}\,k[X]\twoheadrightarrow{\mathbb A}^1$. +The generator $g(y)\in k[y]$ of the +kernel\index{kernel of a ring map} of the map $k[y]\to k[X]/I$ is called an +{\it eliminant}\index{eliminant} +and it has the property that ${\mathcal V}(g)=h({\mathcal V}(I))$. +When $h$ is a coordinate function $x_i$, we may consider the eliminant to be +in the polynomial ring $k[x_i]$, and we have +$\langle g(x_i)\rangle=I\cap k[x_i]$. +The most important result concerning eliminants is the Shape +Lemma\index{Shape Lemma}~\cite{SO:BMMT}. +\medskip + +\noindent{\bf Shape Lemma.} +{\it +Suppose $h$ is a linear polynomial and $g$ is the corresponding eliminant of +a zero-dimensional ideal $I\subset k[X]$ with $\deg(I)=\deg(g)$. +Then the roots of $I$ are defined in the splitting +field\index{field!splitting} of $g$ and +$I$ is radical\index{ideal!radical} if and only if $g$ is square-free. + +Suppose further that $h=x_1$ so that $g=g(x_1)$. +Then, in the lexicographic term order +with $x_1\deg(g_i)$ for $i=2,\ldots,n$. +}\medskip + +When $k$ is infinite and $I$ is radical, an eliminant $g$ given by a generic +linear polynomial $h$ will satisfy $\deg(g)=\deg(I)$. +Enumerative geometry\index{enumerative geometry} counts solutions +when the fixed figures are generic. +We are similarly concerned with the generic situation of +$\deg(g)=\deg(I)$. +In this case, eliminants provide a useful computational device to study +further questions about the roots of $I$. +For instance, the Shape Lemma holds for the saturated ideal of Example~\ref{ex:two}. +Its eliminant, which is the polynomial {\tt J{\char`\_}0}, factors completely +over the ground field ${\mathbb F}_7$, so all four solutions are defined +in ${\mathbb F}_7$. +In Section 4.3, we will use eliminants in another way, to show that +an ideal is radical. + +Given a polynomial $h$ in a zero-dimensional ring $k[X]/I$, the +procedure {\tt eliminant(h, k[y])} finds a linear relation modulo $I$ +among the powers $1, h, h^2, \ldots, h^d$ of $h$ with $d$ minimal +and returns this as a polynomial in $k[y]$. +This procedure is included in the \Mtwo{}\/ package +{\tt realroots.m2}. +% +\beginOutput +i13 : load "realroots.m2"\\ +\endOutput +% +\beginOutput +i14 : code eliminant\\ +\emptyLine +o14 = -- realroots.m2:65-80\\ +\ eliminant = (h, C) -> (\\ +\ Z := C_0;\\ +\ A := ring h;\\ +\ assert( dim A == 0 );\\ +\ F := coefficientRing A;\\ +\ assert( isField F );\\ +\ assert( F == coefficientRing C );\\ +\ B := basis A;\\ +\ d := numgens source B;\\ +\ M := fold((M, i) -> M || \\ +\ substitute(contract(B, h^(i+1)), F), \\ +\ substitute(contract(B, 1_A), F), \\ +\ flatten subsets(d, d));\\ +\ N := ((ker transpose M)).generators;\\ +\ P := matrix \{toList apply(0..d, i -> Z^i)\} * N;\\ +\ (flatten entries(P))_0)\\ +\endOutput +% +Here, {\tt M} is a matrix whose rows are the normal forms of the +powers $1$, $h$, $h^2$, $\ldots$, $h^d$ of $h$, for $d$ the degree of the ideal. +The columns of the kernel {\tt N} of {\tt transpose M} are a basis of the +linear relations among these powers. +The matrix {\tt P} converts these relations into polynomials. +Since {\tt N} is in column echelon form, the initial entry of {\tt P} +is the relation of minimal degree. +(This method is often faster than na\"\i vely computing the kernel of the +map $k[Z]\to A$ given by $Z\mapsto h$, which is implemented by +{\tt eliminantNaive(h, Z)}.) + +Suppose we have an eliminant\index{eliminant} $g(x_1)$ of a zero-dimensional +ideal $I\subset k[X]$ with $\deg(g)=\deg(I)$, and we have computed the +lexicographic Gr\"obner basis~(\ref{triangular}). +Then the roots of $I$ are +% +\begin{equation}\label{tri_roots} + \{ (\xi_1,g_2(\xi_1), \ldots, g_n(\xi_1))\mid g(\xi_1)=0\}\,. +\end{equation} + + +Suppose now that $k={\mathbb Q}$ and we seek floating point approximations +for the (complex) roots of $I$. +Following this method, we first compute floating point solutions to +$g(\xi)=0$, which give all the $x_1$-coordinates of the roots of $I$, and +then use~(\ref{tri_roots}) to find the other coordinates. +The difficulty here is that enough precision may be lost in evaluating +$g_i(\xi_1)$ so that the result is a poor approximation for the other +components $\xi_i$. + + +\subsection{Solving with Linear Algebra} +We describe another method based upon numerical linear algebra. +When $I\subset k[X]$ is zero-dimensional, $A=k[X]/I$ is a finite-dimensional +$k$-vector space, and {\it any} Gr\"obner basis for $I$ gives an efficient +algorithm to compute ring operations using linear algebra. +In particular, multiplication by $h\in A$ is a linear transformation +$m_h:A\to A$ and the command {\tt regularRep(h)} from +{\tt realroots.m2} gives the matrix of $m_h$ in +terms of the standard basis of $A$. +% +\beginOutput +i15 : code regularRep\\ +\emptyLine +o15 = -- realroots.m2:96-100\\ +\ regularRep = f -> (\\ +\ assert( dim ring f == 0 );\\ +\ b := basis ring f;\\ +\ k := coefficientRing ring f;\\ +\ substitute(contract(transpose b, f*b), k))\\ +\endOutput +% + +Since the action of $A$ on itself is faithful, the minimal polynomial of +$m_h$ is the eliminant\index{eliminant} corresponding to $h$. +The procedure {\tt charPoly(h, Z)} in {\tt realroots.m2} +computes the characteristic polynomial +$\det(Z\cdot\mbox{\it Id} - m_h)$ of $h$. +% +\beginOutput +i16 : code charPoly\\ +\emptyLine +o16 = -- realroots.m2:106-113\\ +\ charPoly = (h, Z) -> (\\ +\ A := ring h;\\ +\ F := coefficientRing A;\\ +\ S := F[Z];\\ +\ Z = value Z; \\ +\ mh := regularRep(h) ** S;\\ +\ Idz := S_0 * id_(S^(numgens source mh));\\ +\ det(Idz - mh))\\ +\endOutput +% +When this is the minimal polynomial (the situation of the Shape Lemma), +this procedure often computes the eliminant faster than does +{\tt eliminant}, and for systems of moderate degree, much faster than +na\"\i vely computing the kernel of the map $k[Z]\to A$ given by $Z\mapsto h$. + +The eigenvalues and eigenvectors of $m_h$ give another algorithm for finding +the roots of $I$\index{solving polynomial equations!via eigenvectors}. +The engine for this is the following result\index{Stickelberger's Theorem}. +\medskip + +\noindent{\bf Stickelberger's Theorem. } +{\it +Let $h\in A$ and $m_h$ be as above. +Then there is a one-to-one correspondence between eigenvectors +${\bf v}_\xi$ of $m_h$ and roots $\xi$ of $I$, the eigenvalue of $m_h$ on +${\bf v}_\xi$ is the value $h(\xi)$ of $h$ at $\xi$, and the multiplicity +of this eigenvalue (on the eigenvector ${\bf v}_\xi$) is the +multiplicity of the root $\xi$. +}\medskip + +Since the linear transformations $m_h$ for $h\in A$ commute, the +eigenvectors ${\bf v}_\xi$ are common to all $m_h$. +Thus we may compute the roots of a zero-dimensional ideal $I\subset k[X]$ +by first computing floating-point approximations to the +eigenvectors ${\bf v}_\xi$ of $m_{x_1}$. +Then the root $\xi\ =\ (\xi_1,\ldots,\xi_n)$ of $I$ corresponding to the +eigenvector ${\bf v}_\xi$ has $i$th coordinate satisfying +% +\begin{equation}\label{eigenv} + m_{x_i}\cdot {\bf v}_\xi\ =\ \xi_i \cdot {\bf v}_\xi\,. +\end{equation} +% +An advantage of this method is that we may use structured numerical linear +algebra after the matrices $m_{x_i}$ are precomputed using exact arithmetic. +(These matrices are typically sparse and have additional structures which may +be exploited.) +Also, the coordinates $\xi_i$ are {\it linear} functions of the floating +point entries of ${\bf v}_\xi$, which affords greater precision than +the non-linear evaluations $g_i(\xi_1)$ in the method based upon elimination. +While in principle only one of the $\deg(I)$ components of the vectors +in~(\ref{eigenv}) need be computed, averaging the results from all +components can improve precision. + + +\subsection{Real Roots} +Determining the real roots of a polynomial system is a challenging problem +with real world applications\index{solving polynomial equations!real solutions}. +When the polynomials come from geometry, this is the main problem of +real enumerative geometry\index{enumerative geometry!real}. +Suppose $k\subset{\mathbb R}$ and $I\subset k[X]$ is zero-dimensional. +If $g$ is an eliminant of $k[X]/I$ +with $\deg(g)=\deg(I)$, then the real roots of +$g$ are in 1-1 correspondence with the real roots of $I$. +Since there are effective methods for counting the real roots of a univariate +polynomial, eliminants give a na\"\i ve, but useful method for determining the +number of real roots to a polynomial system. +(For some applications of this technique in mathematics, +see~\cite{SO:RS98,SO:So_shap-www,SO:So00b}.) + +The classical symbolic method of Sturm, based upon Sturm sequences, counts +the number of real roots of a univariate polynomial in an interval. +When applied to an eliminant satisfying the Shape Lemma, this method counts +the number of real roots of the ideal. +This is implemented in \Mtwo{}\/ via the command +{\tt SturmSequence(f)} of {\tt realroots.m2} +% +\beginOutput +i17 : code SturmSequence\\ +\emptyLine +o17 = -- realroots.m2:117-131\\ +\ SturmSequence = f -> (\\ +\ assert( isPolynomialRing ring f );\\ +\ assert( numgens ring f === 1 );\\ +\ R := ring f;\\ +\ assert( char R == 0 );\\ +\ x := R_0;\\ +\ n := first degree f;\\ +\ c := new MutableList from toList (0 .. n);\\ +\ if n >= 0 then (\\ +\ c#0 = f;\\ +\ if n >= 1 then (\\ +\ c#1 = diff(x,f);\\ +\ scan(2 .. n, i -> c#i = - c#(i-2) {\char`\%} c#(i-1));\\ +\ ));\\ +\ toList c)\\ +\endOutput +% +The last few lines of {\tt SturmSequence} construct the Sturm +sequence\index{Sturm sequence} of the univariate argument $f$: +This is $(f_0, f_1, f_2,\ldots)$ where $f_0=f$, $f_1=f'$, and +for $i>1$, $f_i$ is the normal form reduction of $-f_{i-2}$ modulo +$f_{i-1}$. +Given any real number $x$, the {\it variation} of $f$ at $x$ is the number of +changes in sign of the sequence $(f_0(x), f_1(x), f_2(x),\ldots)$ obtained by +evaluating the Sturm sequence of $f$ at $x$. +Then the number of real roots of $f$ over an interval $[x,y]$ is the +difference of the variation of $f$ at $x$ and at $y$. + +The \Mtwo{}\/ commands {\tt numRealSturm} and +{\tt numPosRoots} (and also {\tt numNegRoots}) use this method to respectively +compute the total number of real roots and the number of positive roots of +a univariate polynomial. +% +\beginOutput +i18 : code numRealSturm\\ +\emptyLine +o18 = -- realroots.m2:160-163\\ +\ numRealSturm = f -> (\\ +\ c := SturmSequence f;\\ +\ variations (signAtMinusInfinity {\char`\\} c) \\ +\ - variations (signAtInfinity {\char`\\} c))\\ +\endOutput +% +\beginOutput +i19 : code numPosRoots\\ +\emptyLine +o19 = -- realroots.m2:168-171\\ +\ numPosRoots = f -> ( \\ +\ c := SturmSequence f;\\ +\ variations (signAtZero {\char`\\} c) \\ +\ - variations (signAtInfinity {\char`\\} c))\\ +\endOutput +% +These use the commands {\tt signAt}$*${\tt (f)}, which +give the sign of ${\tt f}$ +at $*$. +(Here, $*$ is one of {\tt Infinity}, {\tt zero}, or {\tt MinusInfinity}.) +Also {\tt variations(c)} computes the +number of sign changes in the sequence {\tt c}. +% +\beginOutput +i20 : code variations\\ +\emptyLine +o20 = -- realroots.m2:183-191\\ +\ variations = c -> (\\ +\ n := 0;\\ +\ last := 0;\\ +\ scan(c, x -> if x != 0 then (\\ +\ if last < 0 and x > 0 or last > 0 \\ +\ and x < 0 then n = n+1;\\ +\ last = x;\\ +\ ));\\ +\ n)\\ +\endOutput +% + + +A more sophisticated method to compute the number of real roots which can also +give information about their location uses the rank and +signature\index{bilinear form!signature} of the +symmetric trace form. +Suppose $I\subset k[X]$ is a zero-dimensional ideal and +set $A:=k[X]/I$. +For $h\in k[X]$, set $S_h(f,g):={\rm trace}(m_{hfg})$. +It is an easy exercise that $S_h$ is a symmetric bilinear form\index{bilinear +form!symmetric} on $A$. +The procedure {\tt traceForm(h)} in {\tt realroots.m2} +computes this trace form\index{trace form} $S_h$. +% +\beginOutput +i21 : code traceForm\\ +\emptyLine +o21 = -- realroots.m2:196-203\\ +\ traceForm = h -> (\\ +\ assert( dim ring h == 0 );\\ +\ b := basis ring h;\\ +\ k := coefficientRing ring h;\\ +\ mm := substitute(contract(transpose b, h * b ** b), k);\\ +\ tr := matrix \{apply(first entries b, x ->\\ +\ trace regularRep x)\};\\ +\ adjoint(tr * mm, source tr, source tr))\\ +\endOutput +% +The value of this construction is the following theorem. + +\begin{theorem}[\cite{SO:BW,SO:PRS}]\label{t:PRS} +Suppose $k\subset{\mathbb R}$ and $I$ is a zero-dimensional ideal in +$k[x_1,\ldots,x_n]$ and consider ${\mathcal V}(I)\subset {\mathbb C}^n$. +Then, for $h\in k[x_1,\ldots,x_n]$, the signature $\sigma(S_h)$ and rank +$\rho(S_h)$ of the bilinear form $S_h$ satisfy +\begin{eqnarray*} +\sigma(S_h)&=&\#\{a\in{\mathcal V}(I)\cap{\mathbb R}^n:h(a)>0\} + - \#\{a\in{\mathcal V}(I)\cap{\mathbb R}^n:h(a)<0\}\,\\ +\rho(S_h)&=&\#\{a\in{\mathcal V}(I):h(a)\neq0\}\,. +\end{eqnarray*} +\end{theorem} + +That is, the rank of $S_h$ counts roots in +${\mathbb C}^n-{\mathcal V}(h)$, and its signature counts the real roots +weighted by the sign of $h$ (which is $-1$, $0$, or $1$) at each root. +The command {\tt traceFormSignature(h)} in {\tt realroots.m2} returns the +rank and signature of the trace form $S_h$. +% +\beginOutput +i22 : code traceFormSignature\\ +\emptyLine +o22 = -- realroots.m2:208-218\\ +\ traceFormSignature = h -> (\\ +\ A := ring h;\\ +\ assert( dim A == 0 );\\ +\ assert( char A == 0 );\\ +\ S := QQ[Z];\\ +\ TrF := traceForm(h) ** S;\\ +\ IdZ := Z * id_(S^(numgens source TrF));\\ +\ f := det(TrF - IdZ);\\ +\ << "The trace form S_h with h = " << h << \\ +\ " has rank " << rank(TrF) << " and signature " << \\ +\ numPosRoots(f) - numNegRoots(f) << endl; )\\ +\endOutput +% +The \Mtwo{}\/ command {\tt numRealTrace(A)} simply returns the number of +real roots of $I$, given ${\tt A}=k[X]/I$. +% +\beginOutput +i23 : code numRealTrace\\ +\emptyLine +o23 = -- realroots.m2:223-230\\ +\ numRealTrace = A -> (\\ +\ assert( dim A == 0 );\\ +\ assert( char A == 0 );\\ +\ S := QQ[Z];\\ +\ TrF := traceForm(1_A) ** S;\\ +\ IdZ := Z * id_(S^(numgens source TrF));\\ +\ f := det(TrF - IdZ);\\ +\ numPosRoots(f)-numNegRoots(f))\\ +\endOutput +% + +\begin{example} +We illustrate these methods on the following polynomial system. +% +\beginOutput +i24 : R = QQ[x, y];\\ +\endOutput +% +\beginOutput +i25 : I = ideal (1 - x^2*y + 2*x*y^2, y - 2*x - x*y + x^2);\\ +\emptyLine +o25 : Ideal of R\\ +\endOutput +% +The ideal $I$ has dimension zero and degree 5. +% +\beginOutput +i26 : dim I, degree I\\ +\emptyLine +o26 = (0, 5)\\ +\emptyLine +o26 : Sequence\\ +\endOutput +% +We compare the two methods to compute the eliminant of $x$ in +the ring $R/I$. +% +\beginOutput +i27 : A = R/I;\\ +\endOutput +% +\beginOutput +i28 : time g = eliminant(x, QQ[Z])\\ +\ -- used 0.09 seconds\\ +\emptyLine +\ 5 4 3 2\\ +o28 = Z - 5Z + 6Z + Z - 2Z + 1\\ +\emptyLine +o28 : QQ [Z]\\ +\endOutput +% +\beginOutput +i29 : time g = charPoly(x, Z)\\ +\ -- used 0.02 seconds\\ +\emptyLine +\ 5 4 3 2\\ +o29 = Z - 5Z + 6Z + Z - 2Z + 1\\ +\emptyLine +o29 : QQ [Z]\\ +\endOutput +% +The eliminant has 3 real roots, which we test in two different ways. +% +\beginOutput +i30 : numRealSturm(g), numRealTrace(A)\\ +\emptyLine +o30 = (3, 3)\\ +\emptyLine +o30 : Sequence\\ +\endOutput +% +We use Theorem~\ref{t:PRS} to isolate these roots in the $x,y$-plane. +% +\beginOutput +i31 : traceFormSignature(x*y);\\ +The trace form S_h with h = x*y has rank 5 and signature 3\\ +\endOutput +% +Thus all 3 real roots lie in the first and third +quadrants (where $xy>0$). +We isolate these further. +% +\beginOutput +i32 : traceFormSignature(x - 2);\\ +The trace form S_h with h = x - 2 has rank 5 and signature 1\\ +\endOutput +% +This shows that two roots lie in the first quadrant with $x>2$ and one lies +in the third. +Finally, one of the roots lies in the triangle $y>0$, $x>2$, and $x+y<3$. +% +\beginOutput +i33 : traceFormSignature(x + y - 3);\\ +The trace form S_h with h = x + y - 3 has rank 5 and signature -1\\ +\endOutput + +Figure~\ref{fig:roots} shows these three roots (dots), as well as the +lines $x+y=3$ and $x=2$. +\begin{figure} +$$ + % 40 pt = 1 unit + % + % + \setlength{\unitlength}{0.8pt} + \begin{picture}(220,110)(-60,-50) + % y - axis + \put(0,-50){\vector(0,1){110}} \put(0,0){\vector(0,-1){50}} + \put(-11,47){$y$} + \put(-5,-40){\line(1,0){10}} \put(6,-42.8){$-1$} + \put(-5,40){\line(1,0){10}} \put(6, 36.5){$1$} + % \put(-5,80){\line(1,0){10}} \put(6, 77){$2$} + % x - axis + \put(-60,0){\vector(1,0){220}} \put(0,0){\vector(-1,0){60}} + \put(-40,-5){\line(0,1){10}} \put(-50,-15){$-1$} + \put(40,-5){\line(0,1){10}} \put(37.5,-15){$1$} + \put(120,-5){\line(0,1){10}} \put(117,-15){$3$} + \put(-51,5){$x$} + + \thicklines + \put(80,-50){\line(0,1){110}} \put(85,-35){$x=2$} + \put(160,-40){\line(-1,1){100}}%\put(15,50){$x+y=3$} + \put(100,25){$x+y=3$} + + \put(-26.2, -42.1){\circle*{2}} + \put(86.3, 11.8){\circle*{2}} + \put(112.8, 50.8){\circle*{2}} + \end{picture} +$$ +\caption{Location of roots\label{fig:roots}} +\end{figure} +\end{example} + + +\subsection{Homotopy Methods} +We describe symbolic-numeric +{\it homotopy continuation methods}\index{homotopy continuation} +for finding approximate complex solutions to a system of +equations\index{solving polynomial equations!via numerical homotopy}. +These exploit the traditional principles of conservation of number and +specialization from enumerative geometry\index{enumerative geometry}. + +Suppose we seek the isolated solutions of a system $F(X)=0$ +where $F=(f_1,\ldots,f_n)$ are polynomials in the variables +$X=(x_1,\ldots,x_N)$. +First, a {\em homotopy} $H(X,t)$ is found with the following properties: +\begin{enumerate} + \item $H(X,1)= F(X)$. + \item The isolated solutions of the {\it start system} $H(X,0)=0$ are known. + \item The system $H(X,t)=0$ defines finitely many (complex) curves, + and each isolated solution of the original system $F(X)=0$ is + connected to an isolated solution $\sigma_i(0)$ of $H(X,0)=0$ along + one of these curves. +\end{enumerate} +Next, choose a generic smooth path $\gamma(t)$ from 0 to 1 in the complex +plane. +Lifting $\gamma$ to the curves $H(X,t)=0$ gives +smooth paths $\sigma_i(t)$ connecting each solution +$\sigma_i(0)$ of the start system to a solution of the original system. +The path $\gamma$ must avoid the finitely many points in ${\mathbb C}$ over +which the curves are singular or meet other components of the solution set +$H(X,t)=0$. + +Numerical path continuation is used to trace each path +$\sigma_i(t)$ from $t=0$ to $t=1$. +When there are fewer solutions to $F(X)=0$ than to +$H(X,0)=0$, some paths will diverge or become singular as +$t\rightarrow 1$, and it is expensive to trace such a path. +The homotopy is {\it optimal}\index{homotopy!optimal} when this does not +occur. + +When $N=n$ and the $f_i$ are generic, set +$G(X):=(g_1,\ldots,g_n)$ with $g_i=(x_i-1)(x_i-2)\cdots(x_i-d_i)$ +where $d_i:=\deg(f_i)$. +Then the {\it B\'ezout homotopy}\index{homotopy!B\'ezout} +$$ + H(X,t)\quad :=\quad tF(X)\ +\ + (1-t)G(X) +$$ +is optimal. +This homotopy furnishes an effective demonstration of +the bound in B\'ezout's Theorem\index{Bezout's Theorem@B\'ezout's Theorem} for the number of +solutions to $F(X)=0$. + +When the polynomial system is deficient, the B\'ezout homotopy is not optimal. +When $n>N$ (often the case in geometric examples), +the B\'ezout homotopy does not apply. +In either case, a different strategy is needed. +Present optimal homotopies for such systems all exploit some structure of +the systems they are designed to solve. +The current state-of-the-art is described in~\cite{SO:Ver99}. + +\begin{example}\label{example:Groebner} +The Gr\"obner homotopy\index{homotopy!Gr\"obner}~\cite{SO:HSS} is an optimal +homotopy\index{homotopy!optimal} that exploits a square-free initial +ideal\index{initial ideal!square-free}. +Suppose our system has the form +$$ + F\ :=\ g_1(X),\ldots,g_m(X),\ \Lambda_1(X),\ldots,\Lambda_d(X) +$$ +where $g_1(X),\ldots,g_m(X)$ form a Gr\"obner basis for an ideal $I$ +with respect to a given term order $\prec$, $\Lambda_1,\ldots,\Lambda_d$ are +linear forms with $d=\dim({\mathcal V}(I))$, {\it and}\/ we assume that +the initial ideal ${\rm in}_\prec I$ is square-free. +This last, restrictive, hypothesis occurs for +certain determinantal varieties\index{determinantal variety}. + +As in~\cite[Chapter 15]{SO:MR97a:13001}, there exist polynomials +$g_i(X,t)$ interpolating between $g_i(X)$ and their initial terms +${\rm in}_\prec g_i(X)$ +$$ + g_i(X;1)\ =\ g_i(X) \qquad\mbox{and}\qquad + g_i(X;0) \ =\ {\rm in}_\prec g_i(X) +$$ +so that $\langle g_1(X,t),\ldots,g_m(X,t)\rangle$ is a flat family +with generic fibre isomorphic to $I$ and special fibre +${\rm in}_\prec I$. +The {\it Gr\"obner homotopy} is +$$ + H(X,t)\ :=\ + g_1(X,t),\ldots,g_m(X,t),\ \Lambda_1(X),\ldots,\Lambda_d(X). +$$ +Since ${\rm in}_\prec I$ is square-free, +${\mathcal V}({\rm in}_\prec I)$ is a union of +$\deg(I)$-many coordinate $d$-planes. +We solve the start system by linear algebra. +This conceptually simple homotopy is in general not +efficient as it is typically overdetermined. +\end{example} + +\section{Some Enumerative Geometry}\label{sec:enumerative} + +We use the tools we have developed to explore the enumerative geometric +problems of cylinders meeting 5 general points and lines tangent to +4 spheres\index{enumerative geometry}\index{enumerative problem}. + +\subsection{Cylinders Meeting 5 Points}\label{sec:cylinder} +A {\it cylinder}\index{cylinder} is the locus of points equidistant from a +fixed line in ${\mathbb R}^3$. +The Grassmannian\index{Grassmannian} of lines in 3-space is 4-dimensional, +which implies that +the space of cylinders is 5-dimensional, and so we expect that 5 points in +${\mathbb R}^3$ will determine finitely many cylinders. +That is, there should be finitely many lines equidistant from 5 general points. +The question is: How many cylinders/lines, and how many of them can be real? + +Bottema and Veldkamp~\cite{SO:BV77} +show there are 6 {\it complex} cylinders +and Lichtblau~\cite{SO:Li00} observes that if the 5 +points are the vertices of +a bipyramid consisting of 2 regular tetrahedra sharing a common face, then +all 6 will be real. +We check this reality on a configuration with less symmetry (so the Shape +Lemma holds). + +If the axial line has direction ${\bf V}$ and contains the point ${\bf P}$ +(and hence has parameterization ${\bf P}+t{\bf V}$), and if $r$ is the squared +radius, then the cylinder\index{cylinder} is the set of points ${\bf X}$ +satisfying +$$ + 0 \ =\ r - + \left\| {\bf X} - {\bf P} - \frac{{\bf V}\cdot({\bf X} - {\bf P})}% + {\|{\bf V}\|^2}\,{\bf V} \right\|^2\ . +$$ +Expanding and clearing the denominator of $\|{\bf V}\|^2$ yields +% +\begin{equation}\label{eq:cylinder} + 0 \ =\ r \|{\bf V}\|^2 + + [{\bf V}\cdot({\bf X} - {\bf P})]^2 - + \|{\bf X} - {\bf P}\|^2\, \|{\bf V}\|^2\,. +\end{equation} +% +We consider cylinders containing the following 5 points, which form an +asymmetric bipyramid. +% +\beginOutput +i34 : Points = \{\{2, 2, 0 \}, \{1, -2, 0\}, \{-3, 0, 0\}, \\ +\ \{0, 0, 5/2\}, \{0, 0, -3\}\};\\ +\endOutput +% +Suppose that ${\bf P}=(0,y_{11},y_{12})$ and ${\bf V}=(1,y_{21},y_{22})$. +% +\beginOutput +i35 : R = QQ[r, y11, y12, y21, y22];\\ +\endOutput +% +\beginOutput +i36 : P = matrix\{\{0, y11, y12\}\};\\ +\emptyLine +\ 1 3\\ +o36 : Matrix R <--- R\\ +\endOutput +% +\beginOutput +i37 : V = matrix\{\{1, y21, y22\}\};\\ +\emptyLine +\ 1 3\\ +o37 : Matrix R <--- R\\ +\endOutput +% +We construct the ideal given by evaluating the +polynomial~(\ref{eq:cylinder}) at each of the five points. +% +\beginOutput +i38 : Points = matrix Points ** R;\\ +\emptyLine +\ 5 3\\ +o38 : Matrix R <--- R\\ +\endOutput +% +% +\beginOutput +i39 : I = ideal apply(0..4, i -> (\\ +\ X := Points^\{i\};\\ +\ r * (V * transpose V) +\\ +\ ((X - P) * transpose V)^2) -\\ +\ ((X - P) * transpose(X - P)) * (V * transpose V)\\ +\ );\\ +\emptyLine +o39 : Ideal of R\\ +\endOutput +% +This ideal has dimension 0 and degree 6. +% +\beginOutput +i40 : dim I, degree I\\ +\emptyLine +o40 = (0, 6)\\ +\emptyLine +o40 : Sequence\\ +\endOutput +% +There are 6 real roots, and they correspond to real cylinders (with $r>0$). +% +\beginOutput +i41 : A = R/I; numPosRoots(charPoly(r, Z))\\ +\emptyLine +o42 = 6\\ +\endOutput +% + +\subsection{Lines Tangent to 4 Spheres}\label{sec:12lines} +We now ask for the lines having a fixed distance from 4 general points. +Equivalently, these are the lines mutually tangent to 4 spheres\index{sphere} of equal radius. +Since the Grassmannian\index{Grassmannian} of lines is four-dimensional, we +expect there to be only finitely many such lines. +Macdonald, Pach, and Theobald~\cite{SO:MPT00} show that there +are indeed 12 lines, and that all 12 may be real. +This problem makes geometric sense over any field $k$ not of characteristic +2, and the derivation of the number 12 is also valid for algebraically +closed\index{field!algebraically closed} +fields not of characteristic 2. + +A sphere in $k^3$ is given by ${\mathcal V}(q(1,{\bf x}))$, where +$q$ is some quadratic form\index{quadratic form} on $k^4$. +Here ${\bf x}\in k^3$ and we note that not all quadratic forms give spheres. +If our field does not have characteristic 2, then there +is a symmetric $4\times 4$ matrix $M$ such that +$q({\bf u})={\bf u}M{\bf u}^t$. + +A line $\ell$ having direction ${\bf V}$ and containing the point ${\bf P}$ +is tangent to the sphere defined by $q$ when the univariate polynomial in $s$ +$$ + q( (1,{\bf P})+s(0,{\bf V}) )\ =\ + q(1,{\bf P}) + 2s (1,{\bf P})M (0,{\bf V})^t + s^2q(0,{\bf V})\,, +$$ +has a double root. +Thus its discriminant\index{discriminant} vanishes, giving the equation +% +\begin{equation}\label{eq:sphere} + \left( (1,{\bf P})M(0,{\bf V})^t\right)^2 \ -\ + (1,{\bf P})M (1,{\bf P})^t\cdot(0,{\bf V})M (0,{\bf V})^t + \ =\ 0\,. +\end{equation} +% + +The matrix $M$ of the quadratic form $q$ of the sphere with +center $(a,b,c)$ and squared radius $r$ is constructed by +{\tt Sphere(a,b,c,r)}. +% +\beginOutput +i43 : Sphere = (a, b, c, r) -> (\\ +\ matrix\{\{a^2 + b^2 + c^2 - r ,-a ,-b ,-c \},\\ +\ \{ -a , 1 , 0 , 0 \},\\ +\ \{ -b , 0 , 1 , 0 \},\\ +\ \{ -c , 0 , 0 , 1 \}\}\\ +\ );\\ +\endOutput +% +If a line $\ell$ contains the point ${\bf P}=(0,y_{11},y_{12})$ +and $\ell$ has direction ${\bf V} = (1,y_{21},y_{22})$, then +{\tt tangentTo(M)} is the equation for $\ell$ to be tangent to the +quadric $uMu^T=0$ determined by the matrix $M$. +% +\beginOutput +i44 : R = QQ[y11, y12, y21, y22];\\ +\endOutput +% +\beginOutput +i45 : tangentTo = (M) -> (\\ +\ P := matrix\{\{1, 0, y11, y12\}\};\\ +\ V := matrix\{\{0, 1, y21, y22\}\};\\ +\ (P * M * transpose V)^2 - \\ +\ (P * M * transpose P) * (V * M * transpose V)\\ +\ );\\ +\endOutput +The ideal of lines having distance $\sqrt{5}$ from the four points +$(0,0,0)$, $(4,1,1)$, $(1,4,1)$, and $(1,1,4)$ has dimension zero and degree 12. +% +\beginOutput +i46 : I = ideal (tangentTo(Sphere(0,0,0,5)), \\ +\ tangentTo(Sphere(4,1,1,5)), \\ +\ tangentTo(Sphere(1,4,1,5)), \\ +\ tangentTo(Sphere(1,1,4,5)));\\ +\emptyLine +o46 : Ideal of R\\ +\endOutput +% +\beginOutput +i47 : dim I, degree I\\ +\emptyLine +o47 = (0, 12)\\ +\emptyLine +o47 : Sequence\\ +\endOutput +% +Thus there are 12 lines whose distance from those 4 points is $\sqrt{5}$. +We check that all 12 are real. +% +\beginOutput +i48 : A = R/I;\\ +\endOutput +% +\beginOutput +i49 : numRealSturm(eliminant(y11 - y12 + y21 + y22, QQ[Z]))\\ +\emptyLine +o49 = 12\\ +\endOutput +% +Since no eliminant\index{eliminant} given by a coordinate function satisfies +the hypotheses of the Shape Lemma, +we took the eliminant with respect to the linear form +$y_{11} - y_{12} + y_{21} + y_{22}$. + +This example is an instance of Lemma~3 of~\cite{SO:MPT00}. +These four points define a regular tetrahedron with volume +$V=9$ where each face has area $A=\sqrt{3^5}/2$ and each edge has length +$e=\sqrt{18}$. +That result guarantees that all 12 lines will be real when +$e/2 p_i )];\\ +\endOutput +% +\beginOutput +i51 : I = Grassmannian(1, 4, R)\\ +\emptyLine +o51 = ideal (p p - p p + p p , p $\cdot\cdot\cdot$\\ +\ \{2, 3\} \{1, 4\} \{1, 3\} \{2, 4\} \{1, 2\} \{3, 4\} \{2, 3\} $\cdot\cdot\cdot$\\ +\emptyLine +o51 : Ideal of R\\ +\endOutput +% +This projective variety has dimension 6 and degree 5 +% +\beginOutput +i52 : dim(Proj(R/I)), degree(I)\\ +\emptyLine +o52 = (6, 5)\\ +\emptyLine +o52 : Sequence\\ +\endOutput +% + +This ideal has an important combinatorial +structure~\cite[Example 11.9]{SO:Sturmfels_GBCP}. +We write each $\alpha\in{\mathbb Y}_{r,n}$ as an increasing +sequence $\alpha\colon\alpha_1<\cdots<\alpha_r$. +Given $\alpha,\beta\in{\mathbb Y}_{r,n}$, consider the +two-rowed array with $\alpha$ written above $\beta$. +We say $\alpha\leq \beta$ if each column weakly increases. +If we sort the columns of an array with rows $\alpha$ and +$\beta$, then the first row is the {\it meet} $\alpha\wedge\beta$ +(greatest lower bound) and the +second row the {\it join} $\alpha\vee\beta$ (least upper bound) of $\alpha$ +and $\beta$. +These definitions endow ${\mathbb Y}_{r,n}$ with the structure of a +distributive lattice. +Figure~\ref{fig2} shows ${\mathbb Y}_{2,5}$. +\begin{figure} +$$ + \epsfysize=1.8in \epsfbox{Y25.eps} +$$\caption{${\mathbb Y}_{2,5}$\label{fig2}} +\end{figure} + +We give $k[p_\alpha]$ the degree reverse +lexicographic order, where we first order the variables $p_\alpha$ by +lexicographic order on their indices $\alpha$. + +\begin{theorem}\label{PluckerIdeal} +The reduced Gr\"obner basis\index{Grobner basis@Gr\"obner basis!reduced} of the Pl\"ucker +ideal with respect to this degree +reverse lexicographic term order consists of quadratic +polynomials +$$ + g(\alpha,\beta)\quad=\quad + p_\alpha\cdot p_\beta \ -\ p_{\alpha\vee\beta}\cdot p_{\alpha\wedge\beta} + \ +\ \hbox{lower terms in $\prec$}\,, +$$ +for each incomparable pair $\alpha,\beta$ in +${\mathbb Y}_{r,n}$, +and all lower terms $\lambda p_\gamma\cdot p_\delta$ in $g(\alpha,\beta)$ +satisfy $\gamma\leq \alpha\wedge\beta$ and $\alpha\vee\beta\leq \delta$. +\end{theorem} + +The form of this Gr\"obner basis implies that the standard monomials are +the sortable monomials, those $p_\alpha p_\beta\cdots p_\gamma$ with +$\alpha\leq\beta\leq\cdots\leq\gamma$. +Thus the Hilbert function\index{Hilbert function} of ${\bf G}_{r,n}$ may be +expressed in terms of the combinatorics of ${\mathbb Y}_{r,n}$. +For instance, the dimension of ${\bf G}_{r,n}$ is the rank of +${\mathbb Y}_{r,n}$, and its degree is the number of maximal chains. +From Figure~\ref{fig2}, these are 6 and 5 for ${\mathbb Y}_{2,5}$, +confirming our previous calculations. + +Since the generators $g(\alpha,\beta)$ are linearly independent, this +Gr\"obner basis is also a minimal generating set for the ideal. +The displayed generator in {\tt o51}, +$$ + p_{\{2,3\}}p_{\{1,4\}}\ -\ p_{\{1,3\}}p_{\{2,4\}}\ -\ + p_{\{1,2\}}p_{\{3,4\}}\ , +$$ +is $g(23, 14)$, and corresponds to the underlined incomparable pair in +Figure~\ref{fig2}. +Since there are 5 such incomparable pairs, the Gr\"obner basis has 5 +generators. +As ${\bf G}_{2,5}$ has codimension 3, it is not a complete +intersection\index{Grassmannian!not a complete intersection}\index{complete intersection}. +This shows how the general enumerative problem from the Schubert calculus +gives rise to an overdetermined system of equations\index{polynomial +equations!overdetermined} in this global +formulation. +\medskip + +The Grassmannian\index{Grassmannian!local coordinates} has a useful system of +local coordinates given by ${\rm Mat}_{r,n-r}$ as follows +% +\begin{equation}\label{eq:local} + Y\ \in {\rm Mat}_{r,n-r}\ \longmapsto\ + {\rm row space}\ [ I_r : Y ]\ \in\ {\bf G}_{r,n}\,. +\end{equation} +% + +Let $L$ be a ($n-r+1-l$)-plane in $k^n$ which is the row space of +a $n-r+1-l$ by $n$ matrix, also written $L$. +Then $L$ meets $X\in{\bf G}_{r,n}$ non-trivially if +$$ + \mbox{maximal minors of }\ + \left[\begin{array}{c}L\\X\end{array}\right]\ =\ 0\,. +$$ +Laplace expansion of each minor along the rows of $X$ gives a linear +equation in the Pl\"ucker coordinates. +In the local coordinates (substituting $[I_r:Y]$ for $X$), we obtain +multilinear equations of degree $\min\{r,n-r\}$. +These equations generate a prime ideal of codimension $l$. + +Suppose each $l_i=1$ in our enumerative problem. +Then in the Pl\"ucker coordinates, we have the Pl\"ucker ideal of +${\bf G}_{r,n}$ +together with $r(n-r)$ linear equations, one for each +$(n{-}r)$-plane $L_i$. +By Theorem~\ref{PluckerIdeal}, the Pl\"ucker ideal has a square-free initial +ideal\index{initial ideal!square-free}, and so the Gr\"obner +homotopy\index{homotopy!Gr\"obner} of +Example~\ref{example:Groebner} may be +used to solve this enumerative problem. + +\begin{example}\label{ex:G22} +${\bf G}_{2,4}\subset{\mathbb P}^5$ has equation +% +\begin{equation}\label{eq:G22} + p_{\{1,2\}}p_{\{0,3\}}-p_{\{1,3\}}p_{\{0,2\}}+ p_{\{2,3\}}p_{\{0,1\}} + \ =\ 0\,. +\end{equation} +% +The condition for $H\in{\bf G}_{2,4}$ to meet a 2-plane $L$ is the +vanishing of +\begin{equation}\label{eq:hypersurface} + p_{\{1,2\}}L_{34}-p_{\{1,3\}}L_{24}+p_{\{2,3\}}L_{14} + + p_{\{1,4\}}L_{23}-p_{\{2,4\}}L_{13}+p_{\{3,4\}}L_{12}\,, +\end{equation} +where $L_{ij}$ is the $(i,j)$th maximal minor of $L$. + +If $l_1=\cdots=l_4=1$, we have 5 equations in ${\mathbb P}^5$, one quadratic +and 4 linear, and so by B\'ezout's Theorem\index{Bezout's Theorem@B\'ezout's Theorem} there are +two 2-planes in $k^4$ that meet 4 general 2-planes non-trivially. +This means that there are 2 lines in ${\mathbb P}^3$ meeting 4 general lines. +In local coordinates, (\ref{eq:hypersurface}) becomes +$$ + L_{34}-L_{14}y_{11}+L_{13}y_{12}-L_{24}y_{21} + + L_{23}y_{22} + L_{12}(y_{11}y_{22}-y_{12}y_{21})\,. +$$ +This polynomial has the form of the last specialization in +Example~\ref{ex:one}. +\end{example} + + +\subsection{Reality in the Schubert Calculus}\label{sec:shapiro} +Like the other enumerative problems we have discussed, enumerative problems +in the special Schubert calculus\index{Schubert calculus} are fully +real\index{enumerative problem!fully real} in that all solutions can be +real~\cite{SO:So99a}. +That is, given any Schubert data $(r,n;l_1,\ldots,l_m)$, there exist +subspaces $L_1,\ldots,L_m\subset{\mathbb R}^n$ such that each of the +$d(r,n;l_1,\ldots,l_m)$ $r$-planes that meet each $L_i$ are themselves +real. + +This result gives some idea of which choices of the $L_i$ give +all $r$-planes real. +Let $\gamma$ be a fixed rational normal curve in ${\mathbb R}^n$. +Then the $L_i$ are linear subspaces osculating $\gamma$. +More concretely, suppose that $\gamma$ is the standard rational normal +curve\index{rational normal curve}, +$\gamma(s) = (1, s, s^2, \ldots, s^{n-1})$. +Then the $i$-plane +$L_i(s):=\langle \gamma(s),\gamma'(s),\ldots,\gamma^{(i-1)}(s)\rangle$ +osculating $\gamma$ at $\gamma(s)$ is the row space +of the matrix given by {\tt oscPlane(i, n, s)}. +% +\beginOutput +i53 : oscPlane = (i, n, s) -> (\\ +\ gamma := matrix \{toList apply(1..n, i -> s^(i-1))\};\\ +\ L := gamma;\\ +\ j := 0;\\ +\ while j < i-1 do (gamma = diff(s, gamma); \\ +\ L = L || gamma;\\ +\ j = j+1);\\ +\ L);\\ +\endOutput +% +\beginOutput +i54 : QQ[s]; oscPlane(3, 6, s)\\ +\emptyLine +o55 = | 1 s s2 s3 s4 s5 |\\ +\ | 0 1 2s 3s2 4s3 5s4 |\\ +\ | 0 0 2 6s 12s2 20s3 |\\ +\emptyLine +\ 3 6\\ +o55 : Matrix QQ [s] <--- QQ [s]\\ +\endOutput +% +(In {\tt o55}, the exponents of $s$ are displayed in line: $s^2$ is written +{\tt s2}. +\Mtwo{} uses this notational convention to display +matrices efficiently.) + + +\begin{theorem}[\cite{SO:So99a}]\label{thm:special-reality} +For any Schubert data $(r,n;l_1,\ldots,l_m)$, {\bf there exist} real numbers +$s_1,s_2,\ldots,s_m$ such that there are $d(r,n;l_1,\ldots,l_m)$ +$r$-planes that meet each osculating plane $L_i(s_i)$, and all are real. +\end{theorem} + +The inspiration for looking at subspaces osculating the rational normal +curve\index{rational normal curve} to +study real enumerative geometry\index{enumerative geometry!real} for the +Schubert calculus\index{Schubert calculus} is the following very interesting +conjecture of Boris Shapiro and Michael +Shapiro, or more accurately, +extensive computer experimentation based upon their +conjecture~\cite{SO:RS98,SO:So_shap-www,SO:So00b,SO:Ver00}. +\medskip + +\noindent{\bf Shapiros's Conjecture\index{Shapiros's Conjecture}. } +{\it +For any Schubert data $(r,n;l_1,\ldots,l_m)$ and {\bf for all} real numbers +$s_1,s_2,\ldots,s_m$ there are $d(r,n;l_1,\ldots,l_m)$ +$r$-planes that meet each osculating plane $L_i(s_i)$, and all are real. +}\medskip + +In addition to Theorem~\ref{thm:special-reality}, (which replaces the +quantifier {\it for all}\/ by {\it there exist}), the strongest evidence for +this Conjecture is the following result of Eremenko and +Gabrielov~\cite{SO:EG00}. + +\begin{theorem} +Shapiros's Conjecture is true when either $r$ or $n-r$ is $2$. +\end{theorem} + +We test an example of this conjecture for the Schubert data +$(3,6;1^3,2^3)$, (where $a^b$ is $a$ repeated $b$ times). +The algorithms of the Schubert calculus predict that $d(3,6;1^3,2^3)=6$. +The function {\tt spSchub(r, L, P)} computes the ideal of $r$-planes meeting +the row space of $L$ in the Pl\"ucker coordinates $P_\alpha$. +% +\beginOutput +i56 : spSchub = (r, L, P) -> (\\ +\ I := ideal apply(subsets(numgens source L, \\ +\ r + numgens target L), S -> \\ +\ fold((sum, U) -> sum +\\ +\ fold((term,i) -> term*(-1)^i, P_(S_U) * det(\\ +\ submatrix(L, sort toList(set(S) - set(S_U)))), U), \\ +\ 0, subsets(#S, r))));\\ +\endOutput +% +We are working in the Grassmannian of 3-planes in +${\mathbb C}^6$. +% +\beginOutput +i57 : R = QQ[apply(subsets(6,3), i -> p_i )];\\ +\endOutput +% +The ideal $I$ consists of the +special Schubert conditions for the 3-planes to meet the 3-planes osculating +the rational normal curve at the points 1, 2, and 3, and to also meet the +2-planes osculating at 4, 5, and 6, +together with the Pl\"ucker ideal {\tt Grassmannian(2, 5, R)}. +Since this is a 1-dimensional homogeneous ideal, we add the linear form +{\tt p{\char`\_}\char`\{0,1,5{\char`\}} - 1} to make the ideal +zero-dimensional\index{ideal!zero-dimensional}. +As before, {\tt Grassmannian(2, 5, R)} creates the Pl\"ucker ideal of +${\bf G}_{3,6}$. +% +\beginOutput +i58 : I = fold((J, i) -> J +\\ +\ spSchub(3, substitute(oscPlane(3, 6, s), \{s=> 1+i\}), p) +\\ +\ spSchub(3, substitute(oscPlane(2, 6, s), \{s=> 4+i\}), p), \\ +\ Grassmannian(2, 5, R), \{0,1,2\}) + \\ +\ ideal (p_\{0,1,5\} - 1);\\ +\emptyLine +o58 : Ideal of R\\ +\endOutput +% +This has dimension 0 and degree 6, in agreement with the Schubert calculus. +% +\beginOutput +i59 : dim I, degree I\\ +\emptyLine +o59 = (0, 6)\\ +\emptyLine +o59 : Sequence\\ +\endOutput +% +As expected, all roots are real. +% +\beginOutput +i60 : A = R/I; numRealSturm(eliminant(p_\{2,3,4\}, QQ[Z]))\\ +\emptyLine +o61 = 6\\ +\endOutput +% +There have been many checked instances of this +conjecture~\cite{SO:So_shap-www,SO:So00b,SO:Ver00}, and it has some +geometrically interesting generalizations~\cite{SO:So_flags}. + +The question remains for which numbers $0\leq d\leq d(r,n;l_1,\ldots,l_m)$ do +there exist real planes $L_i$ with $d(r,n;l_1,\ldots,l_m)$ +$r$-planes meeting each $L_i$, and exactly $d$ of them are real. +Besides Theorem~\ref{thm:special-reality} and the obvious parity condition, +nothing is known in general. +In every known case, every possibility occurs---which is not the case in all +enumerative problems, even those that are fully real\index{enumerative +problem!fully real}\footnote{For example, of +the 12 rational plane cubics containing 8 real points in ${\mathbb P}^2$, +either 8, 10 or 12 can be real, and there are 8 points with all 12 +real~\cite[Proposition 4.7.3]{SO:DeKh00}.}. +Settling this (for $d=0$) has implications for linear systems +theory~\cite{SO:RS98}.\footnote{After this was written, Eremenko and +Gabrielov~\cite{SO:EG-NR} showed that $d$ can be zero for the enumerative +problems given by data $(2,2n,1^{4n-4})$ and $(2n-2,2n,1^{4n-4})$.} + +\subsection{Transversality in the Schubert Calculus} +A basic principle of the classical Schubert calculus\index{Schubert calculus} +is that the intersection +number $d(r,n;l_1,\ldots,l_m)$ has enumerative significance---that is, for +general linear subspaces $L_i$, all solutions appear with multiplicity 1. +This basic principle is not known to hold in general. +For fields of characteristic zero, Kleiman's Transversality +Theorem~\cite{SO:MR50:13063} establishes this principle. +When $r$ or $n{-}r$ is 2, then Theorem~E of~\cite{SO:So97a} establishes this +principle in arbitrary characteristic. +We conjecture that this principle holds in general; that is, for arbitrary +infinite fields and any Schubert data, if the planes $L_i$ are in general +position, then the resulting zero-dimensional ideal is +radical\index{ideal!radical}. + +We test this conjecture on the enumerative problem of +Section~\ref{sec:shapiro}, which is not covered by +Theorem~E of~\cite{SO:So97a}. +The function {\tt testTransverse(F)} tests transversality +for this enumerative problem, for a given field $F$. +It does this by first computing the ideal of the enumerative problem using +random planes $L_i$. +% +\beginOutput +i62 : randL = (R, n, r, l) -> \\ +\ matrix table(n-r+1-l, n, (i, j) -> random(0, R));\\ +\endOutput +% +and the Pl\"ucker ideal of the Grassmannian ${\bf G}_{3,6}$ + {\tt Grassmannian(2, 5, R)}.) +Then it adds a random (inhomogeneous) linear relation + {\tt 1 + random(1, R)} to make the ideal zero-dimensional for generic $L_i$. +When this ideal is zero dimensional and has degree 6 (the expected degree), it +computes the characteristic polynomial {\tt g} of a generic linear form. +If {\tt g} has no multiple roots, {\tt 1 == gcd(g, diff(Z, g))}, +then the Shape Lemma\index{Shape Lemma} +guarantees that the ideal was radical. +{\tt testTransverse} exits either when it computes a radical ideal, +or after {\tt limit} iterations (which is set to 5 for these examples), and +prints the return status. +% +\beginOutput +i63 : testTransverse = F -> (\\ +\ R := F[apply(subsets(6, 3), i -> q_i )];\\ +\ continue := true;\\ +\ j := 0; \\ +\ limit := 5;\\ +\ while continue and (j < limit) do (\\ +\ j = j + 1;\\ +\ I := fold((J, i) -> J + \\ +\ spSchub(3, randL(R, 6, 3, 1), q) +\\ +\ spSchub(3, randL(R, 6, 3, 2), q),\\ +\ Grassmannian(2, 5, R) + \\ +\ ideal (1 + random(1, R)),\\ +\ \{0, 1, 2\});\\ +\ if (dim I == 0) and (degree I == 6) then (\\ +\ lin := promote(random(1, R), (R/I));\\ +\ g := charPoly(lin, Z);\\ +\ continue = not(1 == gcd(g, diff(Z, g)));\\ +\ ));\\ +\ if continue then << "Failed for the prime " << char F << \\ +\ " with " << j << " iterations" << endl;\\ +\ if not continue then << "Succeeded for the prime " <<\\ +\ char F << " in " << j << " iteration(s)" << endl;\\ +\ );\\ +\endOutput +% +Since 5 iterations do not show transversality for ${\mathbb F}_2$, +% +\beginOutput +i64 : testTransverse(ZZ/2);\\ +Failed for the prime 2 with 5 iterations\\ +\endOutput +% +we can test transversality in characteristic 2 using the field with +four elements, ${\mathbb F}_4=$ {\tt GF 4}. +% +\beginOutput +i65 : testTransverse(GF 4);\\ +Succeeded for the prime 2 in 3 iteration(s)\\ +\endOutput +% +We do find transversality for ${\mathbb F}_7$. +% +\beginOutput +i66 : testTransverse(ZZ/7);\\ +Succeeded for the prime 7 in 2 iteration(s)\\ +\endOutput + +We have tested transversality for all primes less than 100 in every +enumerative problem involving Schubert conditions on 3-planes in $k^6$. +These include the problem above as well as the problem of 42 3-planes meeting +9 general 3-planes.\footnote{After this was written, we discovered an +elementary proof of transversality for the enumerative problems given by data +$(r,n;1^{r(n-r)})$, where the conditions are all +codimension~1~\cite{SO:So_trans}.} + + +\section{The 12 Lines: Reprise} +The enumerative problems of Section~\ref{sec:enumerative} were formulated +in local coordinates~(\ref{eq:local}) for the Grassmannian of lines in +${\mathbb P}^3$ (Grassmannian of 2-dimensional subspaces in $k^4$). +When we formulate the problem of Section~\ref{sec:12lines} in the global +Pl\"ucker coordinates\index{Plucker coordinate@Pl\"ucker coordinate} of Section~\ref{sec:grass}, +we find some interesting phenomena. +We also consider some related enumerative problems\index{enumerative problem}. + +\subsection{Global Formulation}\label{sec:global} +A quadratic form\index{quadratic form} $q$ on a vector space $V$ over a field +$k$ not of characteristic 2 is given by +$q({\bf u})=(\varphi({\bf u}),{\bf u})$, where $\varphi\colon V\to V^*$ is +a {\it symmetric} linear map, that is +$(\varphi({\bf u}),{\bf v})=(\varphi({\bf v}),{\bf u})$. +Here, $V^*$ is the linear dual of $V$ and $(\,\cdot\;,\,\cdot\,)$ is the +pairing $V\otimes V^*\to k$. +The map $\varphi$ induces a quadratic form $\wedge^rq$ on the $r$th exterior +power $\wedge^rV$ of $V$ through the symmetric map +$\wedge^r\varphi\colon \wedge^rV\to\wedge^rV^*=(\wedge^rV)^*$. +The action of $\wedge^rV^*$ on $\wedge^rV$ is given by +% +\begin{equation}\label{eq:wedge} + ({\bf x}_1\wedge{\bf x}_2\wedge\cdots\wedge{\bf x}_r,\ + {\bf y\!}_1\wedge{\bf y}\!_2\wedge\cdots\wedge{\bf y}\!_r)\ =\ + \det|({\bf x}_i, {\bf y}\!_j)|\,, +\end{equation} +% +where ${\bf x}_i\in V^*$ and ${\bf y}\!_j\in V$. + +When we fix isomorphisms $V\simeq k^n\simeq V^*$, the map $\varphi$ is given +by a symmetric $n\times n$ matrix $M$ as in Section~\ref{sec:12lines}. +Suppose $r=2$. +Then for ${\bf u},{\bf v}\in k^n$, +$$ + \wedge^2q({\bf u}\wedge{\bf v})\ = + \det\left[\begin{array}{cc} + {\bf u}M{\bf u}^t &{\bf u}M{\bf v}^t\\ + {\bf v}M{\bf u}^t &{\bf v}M{\bf v}^t + \end{array}\right]\ , +$$ +which is Equation~(\ref{eq:sphere}) of Section~\ref{sec:12lines}. + +\begin{proposition}\label{prop:tangent_line} + A line $\ell$ is tangent to a quadric ${\mathcal V}(q)$ in + ${\mathbb P}^{n-1}$ if and only if its Pl\"ucker + coordinate\index{Plucker coordinate@Pl\"ucker coordinate} + $\wedge^2\ell\in{\mathbb P}^{\binom{n}{2}-1}$ lies on the quadric + ${\mathcal V}(\wedge^2q)$. +\end{proposition} + +Thus the Pl\"ucker coordinates for the set of lines tangent to 4 general +quadrics in ${\mathbb P}^3$ satisfy 5 quadratic equations: +The single Pl\"ucker relation~(\ref{eq:G22}) +together with one quadratic equation for each quadric. +Thus we expect the B\'ezout number\index{Bezout number@B\'ezout number} of $2^5=32$ such +lines. +We check this. + +The procedure {\tt randomSymmetricMatrix(R, n)} +generates a random symmetric $n\times n$ matrix with entries in +the base ring of $R$. +% +\beginOutput +i67 : randomSymmetricMatrix = (R, n) -> (\\ +\ entries := new MutableHashTable;\\ +\ scan(0..n-1, i -> scan(i..n-1, j -> \\ +\ entries#(i, j) = random(0, R)));\\ +\ matrix table(n, n, (i, j) -> if i > j then \\ +\ entries#(j, i) else entries#(i, j))\\ +\ );\\ +\endOutput +% +The procedure {\tt tangentEquation(r, R, M)} gives the equation in Pl\"ucker +coordinates for a point in ${\mathbb P}^{\binom{n}{r}-1}$ to be +isotropic with respect to the bilinear form\index{bilinear form} $\wedge^rM$ +({\tt R} is assumed to be the coordinate ring of +${\mathbb P}^{\binom{n}{r}-1}$). +This is the equation for an $r$-plane to be tangent to the quadric +associated to $M$. +% +\beginOutput +i68 : tangentEquation = (r, R, M) -> (\\ +\ g := matrix \{gens(R)\};\\ +\ (entries(g * exteriorPower(r, M) * transpose g))_0_0\\ +\ );\\ +\endOutput +% +We construct the ideal of lines tangent to 4 general quadrics in +${\mathbb P}^3$. +% +\beginOutput +i69 : R = QQ[apply(subsets(4, 2), i -> p_i )];\\ +\endOutput +% +\beginOutput +i70 : I = Grassmannian(1, 3, R) + ideal apply(0..3, i -> \\ +\ tangentEquation(2, R, randomSymmetricMatrix(R, 4)));\\ +\emptyLine +o70 : Ideal of R\\ +\endOutput +% +As expected, this ideal has dimension 0 and degree 32. +% +\beginOutput +i71 : dim Proj(R/I), degree I\\ +\emptyLine +o71 = (0, 32)\\ +\emptyLine +o71 : Sequence\\ +\endOutput +% + + +\subsection{Lines Tangent to 4 Spheres}\label{sec:tangent_lines} +That calculation raises the following question: +In Section~\ref{sec:12lines}, why did we obtain only 12 lines tangent to 4 +spheres\index{sphere}? +To investigate this, we generate the global ideal of lines tangent to the +spheres of Section~\ref{sec:12lines}. +% +\beginOutput +i72 : I = Grassmannian(1, 3, R) + \\ +\ ideal (tangentEquation(2, R, Sphere(0,0,0,5)),\\ +\ tangentEquation(2, R, Sphere(4,1,1,5)),\\ +\ tangentEquation(2, R, Sphere(1,4,1,5)),\\ +\ tangentEquation(2, R, Sphere(1,1,4,5)));\\ +\emptyLine +o72 : Ideal of R\\ +\endOutput +% +We compute the dimension and degree of ${\mathcal V}(I)$. +% +\beginOutput +i73 : dim Proj(R/I), degree I\\ +\emptyLine +o73 = (1, 4)\\ +\emptyLine +o73 : Sequence\\ +\endOutput +% +The ideal is not zero dimensional\index{ideal!zero-dimensional}; there is an +extraneous one-dimensional +component of zeroes with degree 4. +Since we found 12 lines in +Section~\ref{sec:12lines} using the local coordinates~(\ref{eq:local}), +the extraneous component must lie in the complement of that coordinate patch, +which is defined by the vanishing of the first Pl\"ucker coordinate, $p_{\{0,1\}}$. +We saturate\index{saturation} $I$ by $p_{\{0,1\}}$ to obtain the desired lines. +% +\beginOutput +i74 : Lines = saturate(I, ideal (p_\{0,1\}));\\ +\emptyLine +o74 : Ideal of R\\ +\endOutput +% +This ideal does have dimension 0 and degree 12, so we have recovered the +zeroes of Section~\ref{sec:12lines}. +% +\beginOutput +i75 : dim Proj(R/Lines), degree(Lines)\\ +\emptyLine +o75 = (0, 12)\\ +\emptyLine +o75 : Sequence\\ +\endOutput +% + +We investigate the rest of the zeroes, which we obtain +by taking the ideal +quotient of $I$ and the ideal of lines. +As computed above, this has dimension 1 and degree 4. +% +\beginOutput +i76 : Junk = I : Lines;\\ +\emptyLine +o76 : Ideal of R\\ +\endOutput +% +\beginOutput +i77 : dim Proj(R/Junk), degree Junk\\ +\emptyLine +o77 = (1, 4)\\ +\emptyLine +o77 : Sequence\\ +\endOutput +% +We find the support of this extraneous component by taking its +radical. +% +\beginOutput +i78 : radical(Junk)\\ +\emptyLine +\ 2 2 2\\ +o78 = ideal (p , p , p , p + p + p )\\ +\ \{0, 3\} \{0, 2\} \{0, 1\} \{1, 2\} \{1, 3\} \{2, 3\}\\ +\emptyLine +o78 : Ideal of R\\ +\endOutput +% +From this, we see that the extraneous component is supported on an imaginary +conic in the ${\mathbb P}^2$ of lines at infinity. +\smallskip + +To understand the geometry behind this computation, observe that +the sphere with radius $r$ and center $(a,b,c)$ has homogeneous equation +$$ + (x-wa)^2+(y-wb)^2+(z-wc)^2\ =\ r^2w^2\,. +$$ +At infinity, $w=0$, this has equation +$$ + x^2+y^2+z^2\ =\ 0\,. +$$ +The extraneous component is supported on the set of tangent +lines to this imaginary conic. +Aluffi and Fulton~\cite{SO:AF} studied +this problem, using geometry to +identify the extraneous ideal and the excess intersection +formula~\cite{SO:FM76} to obtain the answer of 12. +Their techniques show that there will be 12 isolated lines tangent to 4 +quadrics which have a smooth conic in common. + +When the quadrics are spheres, the conic is the imaginary conic at infinity. +Fulton asked the following question: +Can all 12 lines be real if the (real) four quadrics share a real conic? +We answer his question in the affirmative in the next section. + + +\subsection{Lines Tangent to Real Quadrics Sharing a Real Conic} +We consider four quadrics in ${\mathbb P}^3_{\mathbb R}$ sharing a +non-singular conic, which we will take to be at infinity so that we may use +local coordinates for ${\bf G}_{2,4}$ in our computations. +The variety ${\mathcal V}(q)\subset{\mathbb P}^3_{\mathbb R}$ of a +nondegenerate quadratic form $q$ is determined up to isomorphism by the +absolute value of the signature\index{bilinear form!signature} $\sigma$ of the +associated bilinear form. +Thus there are three possibilities, 0, 2, or 4, for $|\sigma|$. + +When $|\sigma|=4$, the real quadric ${\mathcal V}(q)$ is empty. +The associated symmetric matrix $M$ is conjugate to the identity +matrix, so $\wedge^2M$ is also conjugate to the identity matrix. +Hence ${\mathcal V}(\wedge^2q)$ contains no real points. +Thus we need not consider quadrics with $|\sigma|=4$. + +When $|\sigma|=2$, we have ${\mathcal V}(q)\simeq S^2$, the 2-sphere. +If the conic at infinity is imaginary, then +${\mathcal V}(q)\subset{\mathbb R}^3$ is an ellipsoid\index{ellipsoid}. +If the conic at infinity is real, then ${\mathcal V}(q)\subset{\mathbb R}^3$ is +a hyperboloid\index{hyperboloid} of two sheets. +When $\sigma=0$, we have ${\mathcal V}(q)\simeq S^1\times S^1$, a torus. +In this case, ${\mathcal V}(q)\subset{\mathbb R}^3$ is +a hyperboloid of one sheet and the conic at infinity is real. + +Thus either we have 4 ellipsoids sharing an imaginary conic at infinity, +which we studied in Section~\ref{sec:12lines}; or else we have four +hyperboloids sharing a real conic at infinity, and there are five +possible combinations of hyperboloids of one or two sheets sharing a real +conic at infinity. +This gives six topologically distinct possibilities in all. + + +\begin{theorem} +For each of the six topologically distinct possibilities of four real +quadrics sharing a smooth conic at infinity, there exist four quadrics +having the property that each of the 12 lines in ${\mathbb C}^3$ +simultaneously tangent to the four quadrics is real. +\end{theorem} + +\begin{proof} +By the computation in Section~\ref{sec:12lines}, +we need only check the five possibilities for hyperboloids\index{hyperboloid}. +We fix the conic at infinity to be $x^2+y^2-z^2=0$. +Then the general hyperboloid of two sheets containing this conic has +equation in ${\mathbb R}^3$ +% +\begin{equation}\label{eq:twoSheet} + (x-a)^2+(y-b)^2-(z-c)^2+r\ =\ 0\,, +\end{equation} +% +(with $r>0$). +The command {\tt Two(a,b,c,r)} generates the associated +symmetric matrix. +% +\beginOutput +i79 : Two = (a, b, c, r) -> (\\ +\ matrix\{\{a^2 + b^2 - c^2 + r ,-a ,-b , c \},\\ +\ \{ -a , 1 , 0 , 0 \},\\ +\ \{ -b , 0 , 1 , 0 \},\\ +\ \{ c , 0 , 0 ,-1 \}\}\\ +\ );\\ +\endOutput +The general hyperboloid of one sheet containing the conic +$x^2+y^2-z^2=0$ at infinity has equation in ${\mathbb R}^3$ +% +\begin{equation}\label{eq:oneSheet} + (x-a)^2+(y-b)^2-(z-c)^2-r\ =\ 0\,, +\end{equation} +% +(with $r>0$). +The command {\tt One(a,b,c,r)} generates the associated +symmetric matrix. +% +\beginOutput +i80 : One = (a, b, c, r) -> (\\ +\ matrix\{\{a^2 + b^2 - c^2 - r ,-a ,-b , c \},\\ +\ \{ -a , 1 , 0 , 0 \},\\ +\ \{ -b , 0 , 1 , 0 \},\\ +\ \{ c , 0 , 0 ,-1 \}\}\\ +\ );\\ +\endOutput + +We consider $i$ quadrics of two sheets~(\ref{eq:twoSheet}) and $4-i$ +quadrics of one sheet~(\ref{eq:oneSheet}). +For each of these cases, the table below displays four 4-tuples of data +$(a,b,c,r)$ which give 12 real lines. +(The data for the hyperboloids of one sheet are listed first.) +\begin{center} +\begin{tabular}{|c|l|}\hline +$\;i$\;&\hspace{13em}Data\\\hline +$0$&$\hspace{.915em}(5,3,3,16),\hspace{2.185em}(5,-4,2,1),\hspace{1.27em} + (-3,-1,1,1),\hspace{.88em}(2,-7,0,1)$\\\hline +$1$&$\hspace{.385em}(3,-2,-3,6),\hspace{.885em}(-3,-7,-6,7),\hspace{.5em} + (-6,3,-5,2),\hspace{.865em}(1,6,-2,5)$\\\hline +$2$&$\hspace{1.165em}(6,4,6,4),\hspace{2.43em}(-1,3,3,6),\hspace{1.265em} + (-7,-2,3,3),\hspace{.5em}(-6,7,-2,5)$\\\hline +$3$&$(-1,-4,-1,1),\hspace{.885em}(-3,3,-1,1),\hspace{.885em} + \hspace{.4em}(-7,6,2,9),\hspace{1.025em}(5,6,-1,12)$\\\hline +$4$&$\hspace{.525em}(5,2,-1,25),\hspace{1.555em}(6,-6,2,25),\hspace{1.03em} + \hspace{.4em}(-7,1,6,1),\hspace{1.65em}(3,1,0,1)$\\\hline +\end{tabular} +\end{center} + +%\noindent$|\hspace{1em}|$ + +%\noindent$|\hspace{10pt}|$ + + +We test each of these, using the formulation in local coordinates of +Section~\ref{sec:12lines}. +% +\beginOutput +i81 : R = QQ[y11, y12, y21, y22];\\ +\endOutput +% +\beginOutput +i82 : I = ideal (tangentTo(One( 5, 3, 3,16)), \\ +\ tangentTo(One( 5,-4, 2, 1)), \\ +\ tangentTo(One(-3,-1, 1, 1)), \\ +\ tangentTo(One( 2,-7, 0, 1)));\\ +\emptyLine +o82 : Ideal of R\\ +\endOutput +% +\beginOutput +i83 : numRealSturm(charPoly(promote(y22, R/I), Z))\\ +\emptyLine +o83 = 12\\ +\endOutput +% +\beginOutput +i84 : I = ideal (tangentTo(One( 3,-2,-3, 6)), \\ +\ tangentTo(One(-3,-7,-6, 7)), \\ +\ tangentTo(One(-6, 3,-5, 2)), \\ +\ tangentTo(Two( 1, 6,-2, 5)));\\ +\emptyLine +o84 : Ideal of R\\ +\endOutput +% +\beginOutput +i85 : numRealSturm(charPoly(promote(y22, R/I), Z))\\ +\emptyLine +o85 = 12\\ +\endOutput +% +\beginOutput +i86 : I = ideal (tangentTo(One( 6, 4, 6, 4)), \\ +\ tangentTo(One(-1, 3, 3, 6)), \\ +\ tangentTo(Two(-7,-2, 3, 3)), \\ +\ tangentTo(Two(-6, 7,-2, 5)));\\ +\emptyLine +o86 : Ideal of R\\ +\endOutput +% +\beginOutput +i87 : numRealSturm(charPoly(promote(y22, R/I), Z))\\ +\emptyLine +o87 = 12\\ +\endOutput +% + +\beginOutput +i88 : I = ideal (tangentTo(One(-1,-4,-1, 1)),\\ +\ tangentTo(Two(-3, 3,-1, 1)), \\ +\ tangentTo(Two(-7, 6, 2, 9)), \\ +\ tangentTo(Two( 5, 6,-1,12)));\\ +\emptyLine +o88 : Ideal of R\\ +\endOutput +% +\beginOutput +i89 : numRealSturm(charPoly(promote(y22, R/I), Z))\\ +\emptyLine +o89 = 12\\ +\endOutput +% +\beginOutput +i90 : I = ideal (tangentTo(Two( 5, 2,-1,25)), \\ +\ tangentTo(Two( 6,-6, 2,25)), \\ +\ tangentTo(Two(-7, 1, 6, 1)), \\ +\ tangentTo(Two( 3, 1, 0, 1)));\\ +\emptyLine +o90 : Ideal of R\\ +\endOutput +% +\beginOutput +i91 : numRealSturm(charPoly(promote(y22, R/I), Z))\\ +\emptyLine +o91 = 12\\ +\endOutput +% +\qed +\end{proof} + + +In each of these enumerative problems there are 12 complex solutions. +For each, we have done other computations showing that every possible +number of real solutions (0, 2, 4, 6, 8, 10, or 12) can occur. + + + +\subsection{Generalization to Higher Dimensions} +We consider lines tangent to quadrics in higher dimensions. +First, we reinterpret the action of $\wedge^rV^*$ on $\wedge^rV$ +described in~(\ref{eq:wedge}) as follows. +The vectors ${\bf x}_1,\ldots,{\bf x}_r$ and ${\bf y}\!_1,\ldots,{\bf y}\!_r$ +define maps $\alpha\colon k^r\to V^*$ and $\beta\colon k^r\to V$. +The matrix $[({\bf x}_i,\,{\bf y}\!_j)]$ is the matrix of the bilinear form +on $k^r$ given by +$\langle{\bf u},\,{\bf v}\rangle:= (\alpha({\bf u}),\,\beta({\bf v}))$. +Thus~(\ref{eq:wedge}) vanishes when the bilinear form +$\langle\,\cdot\,,\,\cdot\,\rangle$ on $k^r$ is degenerate. + +Now suppose that we have a quadratic form $q$ on $V$ given by a symmetric map +$\varphi\colon V\to V^*$. +This induces a quadratic form and hence a quadric on any $r$-plane $H$ in $V$ +(with $H\not\subset{\mathcal V}(q)$). +This induced quadric is singular when $H$ is tangent to ${\mathcal V}(q)$. +Since a quadratic form is degenerate only when the associated projective +quadric is singular, we see that +$H$ is tangent to the quadric +${\mathcal V}(q)$ if and only if +$(\wedge^r\varphi(\wedge^rH),\,\wedge^rH)=0$. +(This includes the case $H\subset{\mathcal V}(q)$.) +We summarize this argument. + + +\begin{theorem} +Let $\varphi\colon V\to V^*$ be a linear map with resulting bilinear form +$(\varphi({\bf u}),\,{\bf v})$. +Then the locus of $r$-planes in $V$ for which the restriction of this form +is degenerate is the set of $r$-planes $H$ whose Pl\"ucker +coordinates\index{Plucker coordinate@Pl\"ucker coordinate} are +isotropic, $(\wedge^r\varphi(\wedge^rH),\,\wedge^rH)=0$, with respect to the +induced form on $\wedge^rV$. + +When $\varphi$ is symmetric, this is the locus of $r$-planes tangent to the +associated quadric in ${\mathbb P}(V)$. +\end{theorem} + + +We explore the problem of lines tangent to quadrics in ${\mathbb P}^n$. +From the calculations of Section~\ref{sec:global}, we do not expect this to +be interesting if the quadrics are general. +(This is borne out for ${\mathbb P}^4$: + we find 320 lines in ${\mathbb P}^4$ tangent to 6 general quadrics. + This is the B\'ezout number\index{Bezout number@B\'ezout number}, as $\deg{\bf G}_{2,5}=5$ + and the condition to be tangent to a quadric has degree 2.) +This problem is interesting if the quadrics +in ${\mathbb P}^n$ share a quadric in a ${\mathbb P}^{n-1}$. +We propose studying such enumerative problems, both determining the +number of solutions for general such quadrics, and investigating whether or +not it is possible to have all solutions be real. + +We use \Mtwo{}\/ to compute the expected number of +solutions to this problem when $r=2$ and $n=4$. +We first define some functions for this computation, which will involve +counting the degree of the ideal of lines in ${\mathbb P}^4$ tangent to 6 +general spheres\index{sphere}. +Here, $X$ gives local coordinates for the Grassmannian\index{Grassmannian}, +$M$ is a symmetric matrix, {\tt tanQuad} gives the equation in $X$ for the +lines tangent to the quadric given by $M$. +% +\beginOutput +i92 : tanQuad = (M, X) -> (\\ +\ u := X^\{0\};\\ +\ v := X^\{1\};\\ +\ (u * M * transpose v)^2 - \\ +\ (u * M * transpose u) * (v * M * transpose v)\\ +\ );\\ +\endOutput +% +{\tt nSphere} gives the matrix $M$ for a sphere with +center {\tt V} and squared radius {\tt r}, and {\tt V} and {\tt r} give random +data for a sphere. +% +\beginOutput +i93 : nSphere = (V, r) -> \\ +\ (matrix \{\{r + V * transpose V\}\} || transpose V ) |\\ +\ ( V || id_((ring r)^n)\\ +\ );\\ +\endOutput +% +\beginOutput +i94 : V = () -> matrix table(1, n, (i,j) -> random(0, R));\\ +\endOutput +% +\beginOutput +i95 : r = () -> random(0, R);\\ +\endOutput +% +We construct the ambient ring, local coordinates, and the ideal of the +enumerative problem of lines in ${\mathbb P}^4$ tangent to 6 random spheres. +% +\beginOutput +i96 : n = 4;\\ +\endOutput +% +\beginOutput +i97 : R = ZZ/1009[flatten(table(2, n-1, (i,j) -> z_(i,j)))];\\ +\endOutput +% +\beginOutput +i98 : X = 1 | matrix table(2, n-1, (i,j) -> z_(i,j))\\ +\emptyLine +o98 = | 1 0 z_(0,0) z_(0,1) z_(0,2) |\\ +\ | 0 1 z_(1,0) z_(1,1) z_(1,2) |\\ +\emptyLine +\ 2 5\\ +o98 : Matrix R <--- R\\ +\endOutput +% +\beginOutput +i99 : I = ideal (apply(1..(2*n-2), \\ +\ i -> tanQuad(nSphere(V(), r()), X)));\\ +\emptyLine +o99 : Ideal of R\\ +\endOutput +% +We find there are 24 lines in ${\mathbb P}^4$ tangent to 6 general spheres. +\beginOutput +i100 : dim I, degree I\\ +\emptyLine +o100 = (0, 24)\\ +\emptyLine +o100 : Sequence\\ +\endOutput +% +The expected numbers of solutions we have obtained in this way are displayed +in the table below. +The numbers in boldface are those which are proven.\footnote{As this was +going to press, the obvious pattern was proven: +There are $3\cdot 2^{n-1}$ complex lines tangent to $2n-2$ +general spheres in ${\mathbb R}^n$, and all may be real~\cite{SO:STh01}.} + +\begin{center} +\begin{tabular}{|c|c|c|c|c|c|}\hline + $n$&2&3&4&5&6\\\hline + \# expected\;&\;{\bf 4}\;&\;{\bf 12}\;&\;24\;&\;48\;&\;96\;\\\hline +\end{tabular} +\end{center} + +\begin{acknowledgment} +We thank Dan Grayson and +Bernd Sturmfels: +some of the procedures in this chapter were written by Dan Grayson +and the calculation in Section 5.2 is due to Bernd Sturmfels. +\end{acknowledgment} + +%\bibliographystyle{siam} +%\bibliography{../../bibl/bibliography,../../bibl/sottile} + +%\end{document} + diff --git a/Book/ComputationsBook/chapters/solving/solving-trial-wrapper.dvi b/Book/ComputationsBook/chapters/solving/solving-trial-wrapper.dvi new file mode 100644 index 0000000..d230ad6 Binary files /dev/null and b/Book/ComputationsBook/chapters/solving/solving-trial-wrapper.dvi differ diff --git a/Book/ComputationsBook/chapters/solving/solving-trial-wrapper.tex b/Book/ComputationsBook/chapters/solving/solving-trial-wrapper.tex new file mode 100644 index 0000000..399b246 --- /dev/null +++ b/Book/ComputationsBook/chapters/solving/solving-trial-wrapper.tex @@ -0,0 +1,21 @@ + \documentclass[runningheads]{lncse} + \usepackage{makeidx,multicol}\makeindex + \input book-macros.tex + \begin{document} + \bgroup + \input solving-m2.tex + \egroup + \clearpage + \addtocmark[2]{Index} + \markboth{Index}{Index} + \renewcommand{\indexname}{Index} + \threecolindex + \printindex + \end{document} + + % Local Variables: + % mode: latex + % mode: reftex + % reftex-use-external-file-finders: t + % reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) + % End: diff --git a/Book/ComputationsBook/chapters/solving/solving-wrapper.dvi b/Book/ComputationsBook/chapters/solving/solving-wrapper.dvi new file mode 100644 index 0000000..185390e Binary files /dev/null and b/Book/ComputationsBook/chapters/solving/solving-wrapper.dvi differ diff --git a/Book/ComputationsBook/chapters/solving/solving-wrapper.pdf b/Book/ComputationsBook/chapters/solving/solving-wrapper.pdf new file mode 100644 index 0000000..c19c0ae Binary files /dev/null and b/Book/ComputationsBook/chapters/solving/solving-wrapper.pdf differ diff --git a/Book/ComputationsBook/chapters/solving/solving-wrapper.ps b/Book/ComputationsBook/chapters/solving/solving-wrapper.ps new file mode 100644 index 0000000..9dba80c Binary files /dev/null and b/Book/ComputationsBook/chapters/solving/solving-wrapper.ps differ diff --git a/Book/ComputationsBook/chapters/solving/solving-wrapper.tex b/Book/ComputationsBook/chapters/solving/solving-wrapper.tex new file mode 100644 index 0000000..eb68fc2 --- /dev/null +++ b/Book/ComputationsBook/chapters/solving/solving-wrapper.tex @@ -0,0 +1,22 @@ + \documentclass[runningheads]{lncse} + \usepackage{makeidx,multicol}\makeindex + \input book-macros.tex + \begin{document} + \bgroup + \input solving-m2.tex + \egroup + \bibliography{papers} + \clearpage + \addtocmark[2]{Index} + \markboth{Index}{Index} + \renewcommand{\indexname}{Index} + \threecolindex + \printindex + \end{document} + + % Local Variables: + % mode: latex + % mode: reftex + % reftex-use-external-file-finders: t + % reftex-external-file-finders: (("tex" . "make FILE=%f find-tex") ("bib" . "make FILE=%f find-bib")) + % End: diff --git a/Book/ComputationsBook/chapters/solving/solving.m2 b/Book/ComputationsBook/chapters/solving/solving.m2 new file mode 100644 index 0000000..a88864c --- /dev/null +++ b/Book/ComputationsBook/chapters/solving/solving.m2 @@ -0,0 +1,207 @@ +R = ZZ/101[y11, y12, y21, y22]; +PolynomialSystem = apply(1..4, i -> + random(0, R) + random(1, R) + random(2, R)); +I = ideal PolynomialSystem; +dim I, degree I +J = ideal (random(R^4, R^7) * transpose( + matrix{{1, y11, y12, y21, y22, y11*y22, y12*y21}})); +dim J, degree J +K = ideal (random(R^4, R^6) * transpose( + matrix{{1, y11, y12, y21, y22, y11*y22 - y12*y21}})); +dim K, degree K +R = ZZ/7[y, x, MonomialOrder=>Lex]; +I = ideal (y^3*x^2 + 2*y^2*x + 3*x*y, 3*y^2 + x*y - 3*y); +J = saturate(I, ideal(y)) +factor(J_0) +load "realroots.m2" +code eliminant +code regularRep +code charPoly +code SturmSequence +code numRealSturm +code numPosRoots +code variations +code traceForm +code traceFormSignature +code numRealTrace +R = QQ[x, y]; +I = ideal (1 - x^2*y + 2*x*y^2, y - 2*x - x*y + x^2); +dim I, degree I +A = R/I; +time g = eliminant(x, QQ[Z]) +time g = charPoly(x, Z) +numRealSturm(g), numRealTrace(A) +traceFormSignature(x*y); +traceFormSignature(x - 2); +traceFormSignature(x + y - 3); +Points = {{2, 2, 0 }, {1, -2, 0}, {-3, 0, 0}, + {0, 0, 5/2}, {0, 0, -3}}; +R = QQ[r, y11, y12, y21, y22]; +P = matrix{{0, y11, y12}}; +V = matrix{{1, y21, y22}}; +Points = matrix Points ** R; +I = ideal apply(0..4, i -> ( + X := Points^{i}; + r * (V * transpose V) + + ((X - P) * transpose V)^2) - + ((X - P) * transpose(X - P)) * (V * transpose V) + ); +dim I, degree I +A = R/I; numPosRoots(charPoly(r, Z)) +Sphere = (a, b, c, r) -> ( + matrix{{a^2 + b^2 + c^2 - r ,-a ,-b ,-c }, + { -a , 1 , 0 , 0 }, + { -b , 0 , 1 , 0 }, + { -c , 0 , 0 , 1 }} + ); +R = QQ[y11, y12, y21, y22]; +tangentTo = (M) -> ( + P := matrix{{1, 0, y11, y12}}; + V := matrix{{0, 1, y21, y22}}; + (P * M * transpose V)^2 - + (P * M * transpose P) * (V * M * transpose V) + ); +I = ideal (tangentTo(Sphere(0,0,0,5)), + tangentTo(Sphere(4,1,1,5)), + tangentTo(Sphere(1,4,1,5)), + tangentTo(Sphere(1,1,4,5))); +dim I, degree I +A = R/I; +numRealSturm(eliminant(y11 - y12 + y21 + y22, QQ[Z])) +R = ZZ/101[apply(subsets(5,2), i -> p_i )]; +I = Grassmannian(1, 4, R) +dim(Proj(R/I)), degree(I) +oscPlane = (i, n, s) -> ( + gamma := matrix {toList apply(1..n, i -> s^(i-1))}; + L := gamma; + j := 0; + while j < i-1 do (gamma = diff(s, gamma); + L = L || gamma; + j = j+1); + L); +QQ[s]; oscPlane(3, 6, s) +spSchub = (r, L, P) -> ( + I := ideal apply(subsets(numgens source L, + r + numgens target L), S -> + fold((sum, U) -> sum + + fold((term,i) -> term*(-1)^i, P_(S_U) * det( + submatrix(L, sort toList(set(S) - set(S_U)))), U), + 0, subsets(#S, r)))); +R = QQ[apply(subsets(6,3), i -> p_i )]; +I = fold((J, i) -> J + + spSchub(3, substitute(oscPlane(3, 6, s), {s=> 1+i}), p) + + spSchub(3, substitute(oscPlane(2, 6, s), {s=> 4+i}), p), + Grassmannian(2, 5, R), {0,1,2}) + + ideal (p_{0,1,5} - 1); +dim I, degree I +A = R/I; numRealSturm(eliminant(p_{2,3,4}, QQ[Z])) +randL = (R, n, r, l) -> + matrix table(n-r+1-l, n, (i, j) -> random(0, R)); +testTransverse = F -> ( + R := F[apply(subsets(6, 3), i -> q_i )]; + continue := true; + j := 0; + limit := 5; + while continue and (j < limit) do ( + j = j + 1; + I := fold((J, i) -> J + + spSchub(3, randL(R, 6, 3, 1), q) + + spSchub(3, randL(R, 6, 3, 2), q), + Grassmannian(2, 5, R) + + ideal (1 + random(1, R)), + {0, 1, 2}); + if (dim I == 0) and (degree I == 6) then ( + lin := promote(random(1, R), (R/I)); + g := charPoly(lin, Z); + continue = not(1 == gcd(g, diff(Z, g))); + )); + if continue then << "Failed for the prime " << char F << + " with " << j << " iterations" << endl; + if not continue then << "Succeeded for the prime " << + char F << " in " << j << " iteration(s)" << endl; + ); +testTransverse(ZZ/2); +testTransverse(GF 4); +testTransverse(ZZ/7); +randomSymmetricMatrix = (R, n) -> ( + entries := new MutableHashTable; + scan(0..n-1, i -> scan(i..n-1, j -> + entries#(i, j) = random(0, R))); + matrix table(n, n, (i, j) -> if i > j then + entries#(j, i) else entries#(i, j)) + ); +tangentEquation = (r, R, M) -> ( + g := matrix {gens(R)}; + (entries(g * exteriorPower(r, M) * transpose g))_0_0 + ); +R = QQ[apply(subsets(4, 2), i -> p_i )]; +I = Grassmannian(1, 3, R) + ideal apply(0..3, i -> + tangentEquation(2, R, randomSymmetricMatrix(R, 4))); +dim Proj(R/I), degree I +I = Grassmannian(1, 3, R) + + ideal (tangentEquation(2, R, Sphere(0,0,0,5)), + tangentEquation(2, R, Sphere(4,1,1,5)), + tangentEquation(2, R, Sphere(1,4,1,5)), + tangentEquation(2, R, Sphere(1,1,4,5))); +dim Proj(R/I), degree I +Lines = saturate(I, ideal (p_{0,1})); +dim Proj(R/Lines), degree(Lines) +Junk = I : Lines; +dim Proj(R/Junk), degree Junk +radical(Junk) +Two = (a, b, c, r) -> ( + matrix{{a^2 + b^2 - c^2 + r ,-a ,-b , c }, + { -a , 1 , 0 , 0 }, + { -b , 0 , 1 , 0 }, + { c , 0 , 0 ,-1 }} + ); +One = (a, b, c, r) -> ( + matrix{{a^2 + b^2 - c^2 - r ,-a ,-b , c }, + { -a , 1 , 0 , 0 }, + { -b , 0 , 1 , 0 }, + { c , 0 , 0 ,-1 }} + ); +R = QQ[y11, y12, y21, y22]; +I = ideal (tangentTo(One( 5, 3, 3,16)), + tangentTo(One( 5,-4, 2, 1)), + tangentTo(One(-3,-1, 1, 1)), + tangentTo(One( 2,-7, 0, 1))); +numRealSturm(charPoly(promote(y22, R/I), Z)) +I = ideal (tangentTo(One( 3,-2,-3, 6)), + tangentTo(One(-3,-7,-6, 7)), + tangentTo(One(-6, 3,-5, 2)), + tangentTo(Two( 1, 6,-2, 5))); +numRealSturm(charPoly(promote(y22, R/I), Z)) +I = ideal (tangentTo(One( 6, 4, 6, 4)), + tangentTo(One(-1, 3, 3, 6)), + tangentTo(Two(-7,-2, 3, 3)), + tangentTo(Two(-6, 7,-2, 5))); +numRealSturm(charPoly(promote(y22, R/I), Z)) +I = ideal (tangentTo(One(-1,-4,-1, 1)), + tangentTo(Two(-3, 3,-1, 1)), + tangentTo(Two(-7, 6, 2, 9)), + tangentTo(Two( 5, 6,-1,12))); +numRealSturm(charPoly(promote(y22, R/I), Z)) +I = ideal (tangentTo(Two( 5, 2,-1,25)), + tangentTo(Two( 6,-6, 2,25)), + tangentTo(Two(-7, 1, 6, 1)), + tangentTo(Two( 3, 1, 0, 1))); +numRealSturm(charPoly(promote(y22, R/I), Z)) +tanQuad = (M, X) -> ( + u := X^{0}; + v := X^{1}; + (u * M * transpose v)^2 - + (u * M * transpose u) * (v * M * transpose v) + ); +nSphere = (V, r) -> + (matrix {{r + V * transpose V}} || transpose V ) | + ( V || id_((ring r)^n) + ); +V = () -> matrix table(1, n, (i,j) -> random(0, R)); +r = () -> random(0, R); +n = 4; +R = ZZ/1009[flatten(table(2, n-1, (i,j) -> z_(i,j)))]; +X = 1 | matrix table(2, n-1, (i,j) -> z_(i,j)) +I = ideal (apply(1..(2*n-2), + i -> tanQuad(nSphere(V(), r()), X))); +dim I, degree I diff --git a/Book/ComputationsBook/chapters/solving/solving.out b/Book/ComputationsBook/chapters/solving/solving.out new file mode 100644 index 0000000..3a4e2d8 --- /dev/null +++ b/Book/ComputationsBook/chapters/solving/solving.out @@ -0,0 +1,484 @@ +i1 : R = ZZ/101[y11, y12, y21, y22]; +i2 : PolynomialSystem = apply(1..4, i -> + random(0, R) + random(1, R) + random(2, R)); +i3 : I = ideal PolynomialSystem; + +o3 : Ideal of R +i4 : dim I, degree I + +o4 = (0, 16) + +o4 : Sequence +i5 : J = ideal (random(R^4, R^7) * transpose( + matrix{{1, y11, y12, y21, y22, y11*y22, y12*y21}})); + +o5 : Ideal of R +i6 : dim J, degree J + +o6 = (0, 4) + +o6 : Sequence +i7 : K = ideal (random(R^4, R^6) * transpose( + matrix{{1, y11, y12, y21, y22, y11*y22 - y12*y21}})); + +o7 : Ideal of R +i8 : dim K, degree K + +o8 = (0, 2) + +o8 : Sequence +i9 : R = ZZ/7[y, x, MonomialOrder=>Lex]; +i10 : I = ideal (y^3*x^2 + 2*y^2*x + 3*x*y, 3*y^2 + x*y - 3*y); + +o10 : Ideal of R +i11 : J = saturate(I, ideal(y)) + + 4 3 2 +o11 = ideal (x + x + 3x + 3x, y - 2x - 1) + +o11 : Ideal of R +i12 : factor(J_0) + +o12 = (x)(x - 2)(x + 2)(x + 1) + +o12 : Product +i13 : load "realroots.m2" +i14 : code eliminant + +o14 = -- realroots.m2:65-80 + eliminant = (h, C) -> ( + Z := C_0; + A := ring h; + assert( dim A == 0 ); + F := coefficientRing A; + assert( isField F ); + assert( F == coefficientRing C ); + B := basis A; + d := numgens source B; + M := fold((M, i) -> M || + substitute(contract(B, h^(i+1)), F), + substitute(contract(B, 1_A), F), + flatten subsets(d, d)); + N := ((ker transpose M)).generators; + P := matrix {toList apply(0..d, i -> Z^i)} * N; + (flatten entries(P))_0) +i15 : code regularRep + +o15 = -- realroots.m2:96-100 + regularRep = f -> ( + assert( dim ring f == 0 ); + b := basis ring f; + k := coefficientRing ring f; + substitute(contract(transpose b, f*b), k)) +i16 : code charPoly + +o16 = -- realroots.m2:106-113 + charPoly = (h, Z) -> ( + A := ring h; + F := coefficientRing A; + S := F[Z]; + Z = value Z; + mh := regularRep(h) ** S; + Idz := S_0 * id_(S^(numgens source mh)); + det(Idz - mh)) +i17 : code SturmSequence + +o17 = -- realroots.m2:117-131 + SturmSequence = f -> ( + assert( isPolynomialRing ring f ); + assert( numgens ring f === 1 ); + R := ring f; + assert( char R == 0 ); + x := R_0; + n := first degree f; + c := new MutableList from toList (0 .. n); + if n >= 0 then ( + c#0 = f; + if n >= 1 then ( + c#1 = diff(x,f); + scan(2 .. n, i -> c#i = - c#(i-2) % c#(i-1)); + )); + toList c) +i18 : code numRealSturm + +o18 = -- realroots.m2:160-163 + numRealSturm = f -> ( + c := SturmSequence f; + variations (signAtMinusInfinity \ c) + - variations (signAtInfinity \ c)) +i19 : code numPosRoots + +o19 = -- realroots.m2:168-171 + numPosRoots = f -> ( + c := SturmSequence f; + variations (signAtZero \ c) + - variations (signAtInfinity \ c)) +i20 : code variations + +o20 = -- realroots.m2:183-191 + variations = c -> ( + n := 0; + last := 0; + scan(c, x -> if x != 0 then ( + if last < 0 and x > 0 or last > 0 + and x < 0 then n = n+1; + last = x; + )); + n) +i21 : code traceForm + +o21 = -- realroots.m2:196-203 + traceForm = h -> ( + assert( dim ring h == 0 ); + b := basis ring h; + k := coefficientRing ring h; + mm := substitute(contract(transpose b, h * b ** b), k); + tr := matrix {apply(first entries b, x -> + trace regularRep x)}; + adjoint(tr * mm, source tr, source tr)) +i22 : code traceFormSignature + +o22 = -- realroots.m2:208-218 + traceFormSignature = h -> ( + A := ring h; + assert( dim A == 0 ); + assert( char A == 0 ); + S := QQ[Z]; + TrF := traceForm(h) ** S; + IdZ := Z * id_(S^(numgens source TrF)); + f := det(TrF - IdZ); + << "The trace form S_h with h = " << h << + " has rank " << rank(TrF) << " and signature " << + numPosRoots(f) - numNegRoots(f) << endl; ) +i23 : code numRealTrace + +o23 = -- realroots.m2:223-230 + numRealTrace = A -> ( + assert( dim A == 0 ); + assert( char A == 0 ); + S := QQ[Z]; + TrF := traceForm(1_A) ** S; + IdZ := Z * id_(S^(numgens source TrF)); + f := det(TrF - IdZ); + numPosRoots(f)-numNegRoots(f)) +i24 : R = QQ[x, y]; +i25 : I = ideal (1 - x^2*y + 2*x*y^2, y - 2*x - x*y + x^2); + +o25 : Ideal of R +i26 : dim I, degree I + +o26 = (0, 5) + +o26 : Sequence +i27 : A = R/I; +i28 : time g = eliminant(x, QQ[Z]) + -- used 0.09 seconds + + 5 4 3 2 +o28 = Z - 5Z + 6Z + Z - 2Z + 1 + +o28 : QQ [Z] +i29 : time g = charPoly(x, Z) + -- used 0.02 seconds + + 5 4 3 2 +o29 = Z - 5Z + 6Z + Z - 2Z + 1 + +o29 : QQ [Z] +i30 : numRealSturm(g), numRealTrace(A) + +o30 = (3, 3) + +o30 : Sequence +i31 : traceFormSignature(x*y); +The trace form S_h with h = x*y has rank 5 and signature 3 +i32 : traceFormSignature(x - 2); +The trace form S_h with h = x - 2 has rank 5 and signature 1 +i33 : traceFormSignature(x + y - 3); +The trace form S_h with h = x + y - 3 has rank 5 and signature -1 +i34 : Points = {{2, 2, 0 }, {1, -2, 0}, {-3, 0, 0}, + {0, 0, 5/2}, {0, 0, -3}}; +i35 : R = QQ[r, y11, y12, y21, y22]; +i36 : P = matrix{{0, y11, y12}}; + + 1 3 +o36 : Matrix R <--- R +i37 : V = matrix{{1, y21, y22}}; + + 1 3 +o37 : Matrix R <--- R +i38 : Points = matrix Points ** R; + + 5 3 +o38 : Matrix R <--- R +i39 : I = ideal apply(0..4, i -> ( + X := Points^{i}; + r * (V * transpose V) + + ((X - P) * transpose V)^2) - + ((X - P) * transpose(X - P)) * (V * transpose V) + ); + +o39 : Ideal of R +i40 : dim I, degree I + +o40 = (0, 6) + +o40 : Sequence +i41 : A = R/I; numPosRoots(charPoly(r, Z)) + +o42 = 6 +i43 : Sphere = (a, b, c, r) -> ( + matrix{{a^2 + b^2 + c^2 - r ,-a ,-b ,-c }, + { -a , 1 , 0 , 0 }, + { -b , 0 , 1 , 0 }, + { -c , 0 , 0 , 1 }} + ); +i44 : R = QQ[y11, y12, y21, y22]; +i45 : tangentTo = (M) -> ( + P := matrix{{1, 0, y11, y12}}; + V := matrix{{0, 1, y21, y22}}; + (P * M * transpose V)^2 - + (P * M * transpose P) * (V * M * transpose V) + ); +i46 : I = ideal (tangentTo(Sphere(0,0,0,5)), + tangentTo(Sphere(4,1,1,5)), + tangentTo(Sphere(1,4,1,5)), + tangentTo(Sphere(1,1,4,5))); + +o46 : Ideal of R +i47 : dim I, degree I + +o47 = (0, 12) + +o47 : Sequence +i48 : A = R/I; +i49 : numRealSturm(eliminant(y11 - y12 + y21 + y22, QQ[Z])) + +o49 = 12 +i50 : R = ZZ/101[apply(subsets(5,2), i -> p_i )]; +i51 : I = Grassmannian(1, 4, R) + +o51 = ideal (p p - p p + p p , p p - p p + p p , p p - p p + p p , p p - p p + p p , p p - p p + p p ) + {2, 3} {1, 4} {1, 3} {2, 4} {1, 2} {3, 4} {2, 3} {0, 4} {0, 3} {2, 4} {0, 2} {3, 4} {1, 3} {0, 4} {0, 3} {1, 4} {0, 1} {3, 4} {1, 2} {0, 4} {0, 2} {1, 4} {0, 1} {2, 4} {1, 2} {0, 3} {0, 2} {1, 3} {0, 1} {2, 3} + +o51 : Ideal of R +i52 : dim(Proj(R/I)), degree(I) + +o52 = (6, 5) + +o52 : Sequence +i53 : oscPlane = (i, n, s) -> ( + gamma := matrix {toList apply(1..n, i -> s^(i-1))}; + L := gamma; + j := 0; + while j < i-1 do (gamma = diff(s, gamma); + L = L || gamma; + j = j+1); + L); +i54 : QQ[s]; oscPlane(3, 6, s) + +o55 = | 1 s s2 s3 s4 s5 | + | 0 1 2s 3s2 4s3 5s4 | + | 0 0 2 6s 12s2 20s3 | + + 3 6 +o55 : Matrix QQ [s] <--- QQ [s] +i56 : spSchub = (r, L, P) -> ( + I := ideal apply(subsets(numgens source L, + r + numgens target L), S -> + fold((sum, U) -> sum + + fold((term,i) -> term*(-1)^i, P_(S_U) * det( + submatrix(L, sort toList(set(S) - set(S_U)))), U), + 0, subsets(#S, r)))); +i57 : R = QQ[apply(subsets(6,3), i -> p_i )]; +i58 : I = fold((J, i) -> J + + spSchub(3, substitute(oscPlane(3, 6, s), {s=> 1+i}), p) + + spSchub(3, substitute(oscPlane(2, 6, s), {s=> 4+i}), p), + Grassmannian(2, 5, R), {0,1,2}) + + ideal (p_{0,1,5} - 1); + +o58 : Ideal of R +i59 : dim I, degree I + +o59 = (0, 6) + +o59 : Sequence +i60 : A = R/I; numRealSturm(eliminant(p_{2,3,4}, QQ[Z])) + +o61 = 6 +i62 : randL = (R, n, r, l) -> + matrix table(n-r+1-l, n, (i, j) -> random(0, R)); +i63 : testTransverse = F -> ( + R := F[apply(subsets(6, 3), i -> q_i )]; + continue := true; + j := 0; + limit := 5; + while continue and (j < limit) do ( + j = j + 1; + I := fold((J, i) -> J + + spSchub(3, randL(R, 6, 3, 1), q) + + spSchub(3, randL(R, 6, 3, 2), q), + Grassmannian(2, 5, R) + + ideal (1 + random(1, R)), + {0, 1, 2}); + if (dim I == 0) and (degree I == 6) then ( + lin := promote(random(1, R), (R/I)); + g := charPoly(lin, Z); + continue = not(1 == gcd(g, diff(Z, g))); + )); + if continue then << "Failed for the prime " << char F << + " with " << j << " iterations" << endl; + if not continue then << "Succeeded for the prime " << + char F << " in " << j << " iteration(s)" << endl; + ); +i64 : testTransverse(ZZ/2); +Failed for the prime 2 with 5 iterations +i65 : testTransverse(GF 4); +Succeeded for the prime 2 in 3 iteration(s) +i66 : testTransverse(ZZ/7); +Succeeded for the prime 7 in 2 iteration(s) +i67 : randomSymmetricMatrix = (R, n) -> ( + entries := new MutableHashTable; + scan(0..n-1, i -> scan(i..n-1, j -> + entries#(i, j) = random(0, R))); + matrix table(n, n, (i, j) -> if i > j then + entries#(j, i) else entries#(i, j)) + ); +i68 : tangentEquation = (r, R, M) -> ( + g := matrix {gens(R)}; + (entries(g * exteriorPower(r, M) * transpose g))_0_0 + ); +i69 : R = QQ[apply(subsets(4, 2), i -> p_i )]; +i70 : I = Grassmannian(1, 3, R) + ideal apply(0..3, i -> + tangentEquation(2, R, randomSymmetricMatrix(R, 4))); + +o70 : Ideal of R +i71 : dim Proj(R/I), degree I + +o71 = (0, 32) + +o71 : Sequence +i72 : I = Grassmannian(1, 3, R) + + ideal (tangentEquation(2, R, Sphere(0,0,0,5)), + tangentEquation(2, R, Sphere(4,1,1,5)), + tangentEquation(2, R, Sphere(1,4,1,5)), + tangentEquation(2, R, Sphere(1,1,4,5))); + +o72 : Ideal of R +i73 : dim Proj(R/I), degree I + +o73 = (1, 4) + +o73 : Sequence +i74 : Lines = saturate(I, ideal (p_{0,1})); + +o74 : Ideal of R +i75 : dim Proj(R/Lines), degree(Lines) + +o75 = (0, 12) + +o75 : Sequence +i76 : Junk = I : Lines; + +o76 : Ideal of R +i77 : dim Proj(R/Junk), degree Junk + +o77 = (1, 4) + +o77 : Sequence +i78 : radical(Junk) + + 2 2 2 +o78 = ideal (p , p , p , p + p + p ) + {0, 3} {0, 2} {0, 1} {1, 2} {1, 3} {2, 3} + +o78 : Ideal of R +i79 : Two = (a, b, c, r) -> ( + matrix{{a^2 + b^2 - c^2 + r ,-a ,-b , c }, + { -a , 1 , 0 , 0 }, + { -b , 0 , 1 , 0 }, + { c , 0 , 0 ,-1 }} + ); +i80 : One = (a, b, c, r) -> ( + matrix{{a^2 + b^2 - c^2 - r ,-a ,-b , c }, + { -a , 1 , 0 , 0 }, + { -b , 0 , 1 , 0 }, + { c , 0 , 0 ,-1 }} + ); +i81 : R = QQ[y11, y12, y21, y22]; +i82 : I = ideal (tangentTo(One( 5, 3, 3,16)), + tangentTo(One( 5,-4, 2, 1)), + tangentTo(One(-3,-1, 1, 1)), + tangentTo(One( 2,-7, 0, 1))); + +o82 : Ideal of R +i83 : numRealSturm(charPoly(promote(y22, R/I), Z)) + +o83 = 12 +i84 : I = ideal (tangentTo(One( 3,-2,-3, 6)), + tangentTo(One(-3,-7,-6, 7)), + tangentTo(One(-6, 3,-5, 2)), + tangentTo(Two( 1, 6,-2, 5))); + +o84 : Ideal of R +i85 : numRealSturm(charPoly(promote(y22, R/I), Z)) + +o85 = 12 +i86 : I = ideal (tangentTo(One( 6, 4, 6, 4)), + tangentTo(One(-1, 3, 3, 6)), + tangentTo(Two(-7,-2, 3, 3)), + tangentTo(Two(-6, 7,-2, 5))); + +o86 : Ideal of R +i87 : numRealSturm(charPoly(promote(y22, R/I), Z)) + +o87 = 12 +i88 : I = ideal (tangentTo(One(-1,-4,-1, 1)), + tangentTo(Two(-3, 3,-1, 1)), + tangentTo(Two(-7, 6, 2, 9)), + tangentTo(Two( 5, 6,-1,12))); + +o88 : Ideal of R +i89 : numRealSturm(charPoly(promote(y22, R/I), Z)) + +o89 = 12 +i90 : I = ideal (tangentTo(Two( 5, 2,-1,25)), + tangentTo(Two( 6,-6, 2,25)), + tangentTo(Two(-7, 1, 6, 1)), + tangentTo(Two( 3, 1, 0, 1))); + +o90 : Ideal of R +i91 : numRealSturm(charPoly(promote(y22, R/I), Z)) + +o91 = 12 +i92 : tanQuad = (M, X) -> ( + u := X^{0}; + v := X^{1}; + (u * M * transpose v)^2 - + (u * M * transpose u) * (v * M * transpose v) + ); +i93 : nSphere = (V, r) -> + (matrix {{r + V * transpose V}} || transpose V ) | + ( V || id_((ring r)^n) + ); +i94 : V = () -> matrix table(1, n, (i,j) -> random(0, R)); +i95 : r = () -> random(0, R); +i96 : n = 4; +i97 : R = ZZ/1009[flatten(table(2, n-1, (i,j) -> z_(i,j)))]; +i98 : X = 1 | matrix table(2, n-1, (i,j) -> z_(i,j)) + +o98 = | 1 0 z_(0,0) z_(0,1) z_(0,2) | + | 0 1 z_(1,0) z_(1,1) z_(1,2) | + + 2 5 +o98 : Matrix R <--- R +i99 : I = ideal (apply(1..(2*n-2), + i -> tanQuad(nSphere(V(), r()), X))); + +o99 : Ideal of R +i100 : dim I, degree I + +o100 = (0, 24) + +o100 : Sequence +i101 : \ No newline at end of file diff --git a/Book/ComputationsBook/chapters/solving/solving.tex b/Book/ComputationsBook/chapters/solving/solving.tex new file mode 100644 index 0000000..5e9cae6 --- /dev/null +++ b/Book/ComputationsBook/chapters/solving/solving.tex @@ -0,0 +1,1682 @@ +%solving.tex +% +% Macaulay 2 Chapter: +% From Enumerative geometry to solving polynomial systems +% +% Frank Sottile +% +% Begun: 25 April 1999 +% Began new version 27 July +% Preliminary version 27 August +% Started working again 1 July 2000 +% Completed & Submitted 20 July +% arXiv.org/math.AG/0007142 npvkp +% Title: "An excursion ...(title above)... with Macaulay2" +% Final revised version 14 November +% Replaced arXiv version 15 November +% Really Final version 25 January 2000 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% WARNING: * On an AMD K6/2 300MHz w/ 256MB the M2 code % +% takes 8:15 minutes to run and uses 82MB % +% * On Intel PIII 600MHz w/ 256K cache & 256MB % +% the M2 code takes 4:15 minutes % +% * On Intel PIII 850MHz w/ 256K cache & 1GB % +% the M2 code takes 3:20 minutes % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\title{From Enumerative Geometry to Solving Systems of Polynomial Equations} + +\titlerunning{From Enumerative Geometry to Solving Equations} +\toctitle{From Enumerative Geometry to Solving Systems of Polynomial Equations} +\author{Frank Sottile\thanks{Supported in part by NSF grant DMS-0070494.}} +\authorrunning{F. Sottile} +% \institute{Department of Mathematics and Statistics, University of +% Massachusetts, Amherst, MA 01003, USA} +\maketitle + +\begin{abstract} +Solving a system of polynomial equations is a ubiquitous problem in +the applications of mathematics. +Until recently, it has been hopeless to find explicit solutions to such +systems, and mathematics has instead developed deep and +powerful theories about the solutions to polynomial equations. +Enumerative Geometry is concerned with counting the +number of solutions when the polynomials come from a geometric situation and +Intersection Theory\index{intersection theory} gives methods to accomplish the enumeration. + + We use \Mtwo{}\/ to investigate some problems from enumerative geometry, +illustrating some applications of symbolic computation to this important +problem of solving systems of polynomial equations. +Besides enumerating solutions to the resulting polynomial systems, which +include overdetermined, deficient, and improper systems, we address the +important question of real solutions to these geometric problems. +\end{abstract} + +\section{Introduction} +A basic question to ask about a system of polynomial equations is +its number of solutions\index{polynomial equations}. +For this, the fundamental result is the following +B\'ezout Theorem\index{Bezout's Theorem@B\'ezout's Theorem}. + +\begin{theorem} + The number of isolated solutions to a system of polynomial equations +$$ + f_1(x_1,\ldots,x_n)=f_2(x_1,\ldots,x_n)= \cdots + =f_n(x_1,\ldots,x_n)=0 +$$ + is bounded by $d_1d_2\cdots d_n$, where $d_i:=\deg f_i$. + If the polynomials are generic, then this bound is attained for + solutions in an algebraically closed field\index{field!algebraically closed}. +\end{theorem} + +Here, isolated is taken with respect to the algebraic closure. +%There are examples where this result fails without that restriction. +This B\'ezout Theorem is a consequence of the refined B\'ezout Theorem of +Fulton and MacPherson~\cite[\S 1.23]{SO:Fu84a}. + +A system of polynomial equations with fewer than this +degree bound or B\'ezout number\index{Bezout number@B\'ezout number} of solutions is called +{\it deficient}\index{polynomial equations!deficient}, +and there are well-defined classes of deficient systems that satisfy other +bounds. +For example, fewer monomials lead to fewer solutions, for which polyhedral +bounds~\cite{SO:Bernstein} on the number of solutions are often tighter (and +no weaker than) the B\'ezout number, which applies when +all monomials are present. +When the polynomials come from geometry, determining the +number of solutions is the central problem in enumerative +geometry\index{enumerative geometry}. + +Symbolic computation\index{symbolic computation} can help compute the +solutions to a system of equations +that has only isolated solutions. +In this case, the polynomials generate a zero-dimensional ideal +$I$\index{artinian, {\it see also} ideal, +zero-dimensional}\index{ideal!zero-dimensional}. +The {\it degree}\index{ideal!degree} of $I$ is $\dim_k k[X]/I$, the dimension of the +$k$-vector space $k[X]/I$, which is also the +number of standard monomials in any term order. +This degree gives an upper bound on +the number of solutions, which is attained when $I$ is +radical\index{ideal!radical}. + +\begin{example}\label{ex:one} +We illustrate this discussion with an example. +Let $f_1$, $f_2$, $f_3$, and $f_4$ be random quadratic polynomials in the ring +${\mathbb F}_{101}[y_{11},y_{12},y_{21},y_{22}]$. +% +<<>> +% +<< + random(0, R) + random(1, R) + random(2, R));>>> +% +The ideal they generate has dimension 0 and degree $16=2^4$, which is the +B\'ezout number. +% +<<>> +% +<<>> +% +If we restrict the monomials which appear in the $f_i$ to be among +$$ + 1,\;\ y_{11},\;\ y_{12},\;\ y_{21},\;\ y_{22},\;\ + y_{11}y_{22},\;\ \mbox{ and }\;\ y_{12}y_{21}, +$$ +then the ideal they generate again has dimension 0, but its degree is now 4. +% +<<>> +% +<<>> +% +If we further require that the coefficients of the +quadratic terms sum to zero, then the ideal they generate now +has degree 2. +% +<<>> +% +<<>> +% +In Example~\ref{ex:G22}, we shall see how this last specialization is +geometrically meaningful. +\end{example} + + +For us, enumerative geometry\index{enumerative geometry} is concerned +with {\sl enumerating geometric figures of some kind having +specified positions with respect to general fixed figures}. +That is, counting the solutions to a geometrically meaningful +system of polynomial equations\index{polynomial equations}. +We use \Mtwo{}\/ to investigate some enumerative geometric +problems\index{enumerative problem} from this point of view. +The problem of enumeration will be solved by computing the +degree\index{ideal!degree} of the +(0-dimensional) ideal generated by the polynomials. + +\section{Solving Systems of Polynomials} +We briefly discuss some aspects of solving systems of polynomial +equations\index{solving polynomial equations}. +For a more complete survey, see the relevant chapters +in~\cite{SO:CCS,SO:CLO92}. + +Given an ideal $I$ in a polynomial ring $k[X]$, set +${\mathcal V}(I):= {\rm Spec}\,k[X]/I$. +When $I$ is generated by the polynomials +$f_1,\ldots,f_N$, ${\mathcal V}(I)$ gives the set of solutions in affine +space to the system +\begin{equation}\label{eq:system} + f_1(X)\ =\ \cdots\ =\ f_N(X)\ =\ 0 +\end{equation} +a geometric structure. +These solutions are the {\it roots} of the ideal $I$. +The degree of a zero-dimensional ideal $I$ provides an algebraic count of +its roots. +The degree of its radical counts +roots in the algebraic closure, ignoring multiplicities. + +\subsection{Excess Intersection} +Sometimes, only a proper (open) subset of affine space is +geometrically meaningful, and we want to count only the meaningful roots of +$I$. +Often the roots ${\mathcal V}(I)$ has positive dimensional components that lie +in the complement of the meaningful subset. +One way to treat this situation of excess or improper intersection is to +saturate\index{saturation} $I$ by a polynomial $f$ vanishing on the extraneous +roots. +This has the effect of working in $k[X][f^{-1}]$, the coordinate ring of the +complement of ${\mathcal V}(f)$~\cite[Exer.~2.3]{SO:MR97a:13001}. + +\begin{example}\label{ex:two} +We illustrate this with an example. +Consider the following ideal in ${\mathbb F}_7[x,y]$. +% +<<Lex];>>> +% +<<>> +% +Since the generators have greatest common factor $y$, $I$ defines +finitely many points together with the line $y=0$. +Saturate $I$\/ by the variable $y$ to obtain the ideal $J$ of isolated roots. +% +<<>> +% +The first polynomial factors completely in ${\mathbb F}_7[x]$, +% +<<>> +% +and so the isolated roots of $I$ are $(2,5),(-1,-1),(0,1)$, and $(-2,-3)$. +\end{example} + +Here, the extraneous roots came from a common factor in both +equations. +A less trivial example of this phenomenon will be seen in +Section~\ref{sec:tangent_lines}. + +\subsection{Elimination, Rationality, and Solving} +Elimination theory\index{elimination theory} can be used to study the +roots of a zero-dimensional ideal $I\subset k[X]$\index{solving polynomial +equations!via elimination}. +A polynomial $h\in k[X]$ defines a map +$k[y]\rightarrow k[X]$ (by $y\mapsto h$) and a corresponding projection +$h\colon{\rm Spec}\,k[X]\twoheadrightarrow{\mathbb A}^1$. +The generator $g(y)\in k[y]$ of the +kernel\index{kernel of a ring map} of the map $k[y]\to k[X]/I$ is called an +{\it eliminant}\index{eliminant} +and it has the property that ${\mathcal V}(g)=h({\mathcal V}(I))$. +When $h$ is a coordinate function $x_i$, we may consider the eliminant to be +in the polynomial ring $k[x_i]$, and we have +$\langle g(x_i)\rangle=I\cap k[x_i]$. +The most important result concerning eliminants is the Shape +Lemma\index{Shape Lemma}~\cite{SO:BMMT}. +\medskip + +\noindent{\bf Shape Lemma.} +{\it +Suppose $h$ is a linear polynomial and $g$ is the corresponding eliminant of +a zero-dimensional ideal $I\subset k[X]$ with $\deg(I)=\deg(g)$. +Then the roots of $I$ are defined in the splitting +field\index{field!splitting} of $g$ and +$I$ is radical\index{ideal!radical} if and only if $g$ is square-free. + +Suppose further that $h=x_1$ so that $g=g(x_1)$. +Then, in the lexicographic term order +with $x_1\deg(g_i)$ for $i=2,\ldots,n$. +}\medskip + +When $k$ is infinite and $I$ is radical, an eliminant $g$ given by a generic +linear polynomial $h$ will satisfy $\deg(g)=\deg(I)$. +Enumerative geometry\index{enumerative geometry} counts solutions +when the fixed figures are generic. +We are similarly concerned with the generic situation of +$\deg(g)=\deg(I)$. +In this case, eliminants provide a useful computational device to study +further questions about the roots of $I$. +For instance, the Shape Lemma holds for the saturated ideal of Example~\ref{ex:two}. +Its eliminant, which is the polynomial {\tt J{\char`\_}0}, factors completely +over the ground field ${\mathbb F}_7$, so all four solutions are defined +in ${\mathbb F}_7$. +In Section 4.3, we will use eliminants in another way, to show that +an ideal is radical. + +Given a polynomial $h$ in a zero-dimensional ring $k[X]/I$, the +procedure {\tt eliminant(h, k[y])} finds a linear relation modulo $I$ +among the powers $1, h, h^2, \ldots, h^d$ of $h$ with $d$ minimal +and returns this as a polynomial in $k[y]$. +This procedure is included in the \Mtwo{}\/ package +{\tt realroots.m2}. +% +<<>> +% +<<>> +% +Here, {\tt M} is a matrix whose rows are the normal forms of the +powers $1$, $h$, $h^2$, $\ldots$, $h^d$ of $h$, for $d$ the degree of the ideal. +The columns of the kernel {\tt N} of {\tt transpose M} are a basis of the +linear relations among these powers. +The matrix {\tt P} converts these relations into polynomials. +Since {\tt N} is in column echelon form, the initial entry of {\tt P} +is the relation of minimal degree. +(This method is often faster than na\"\i vely computing the kernel of the +map $k[Z]\to A$ given by $Z\mapsto h$, which is implemented by +{\tt eliminantNaive(h, Z)}.) + +Suppose we have an eliminant\index{eliminant} $g(x_1)$ of a zero-dimensional +ideal $I\subset k[X]$ with $\deg(g)=\deg(I)$, and we have computed the +lexicographic Gr\"obner basis~(\ref{triangular}). +Then the roots of $I$ are +% +\begin{equation}\label{tri_roots} + \{ (\xi_1,g_2(\xi_1), \ldots, g_n(\xi_1))\mid g(\xi_1)=0\}\,. +\end{equation} + + +Suppose now that $k={\mathbb Q}$ and we seek floating point approximations +for the (complex) roots of $I$. +Following this method, we first compute floating point solutions to +$g(\xi)=0$, which give all the $x_1$-coordinates of the roots of $I$, and +then use~(\ref{tri_roots}) to find the other coordinates. +The difficulty here is that enough precision may be lost in evaluating +$g_i(\xi_1)$ so that the result is a poor approximation for the other +components $\xi_i$. + + +\subsection{Solving with Linear Algebra} +We describe another method based upon numerical linear algebra. +When $I\subset k[X]$ is zero-dimensional, $A=k[X]/I$ is a finite-dimensional +$k$-vector space, and {\it any} Gr\"obner basis for $I$ gives an efficient +algorithm to compute ring operations using linear algebra. +In particular, multiplication by $h\in A$ is a linear transformation +$m_h:A\to A$ and the command {\tt regularRep(h)} from +{\tt realroots.m2} gives the matrix of $m_h$ in +terms of the standard basis of $A$. +% +<<>> +% + +Since the action of $A$ on itself is faithful, the minimal polynomial of +$m_h$ is the eliminant\index{eliminant} corresponding to $h$. +The procedure {\tt charPoly(h, Z)} in {\tt realroots.m2} +computes the characteristic polynomial +$\det(Z\cdot\mbox{\it Id} - m_h)$ of $h$. +% +<<>> +% +When this is the minimal polynomial (the situation of the Shape Lemma), +this procedure often computes the eliminant faster than does +{\tt eliminant}, and for systems of moderate degree, much faster than +na\"\i vely computing the kernel of the map $k[Z]\to A$ given by $Z\mapsto h$. + +The eigenvalues and eigenvectors of $m_h$ give another algorithm for finding +the roots of $I$\index{solving polynomial equations!via eigenvectors}. +The engine for this is the following result\index{Stickelberger's Theorem}. +\medskip + +\noindent{\bf Stickelberger's Theorem. } +{\it +Let $h\in A$ and $m_h$ be as above. +Then there is a one-to-one correspondence between eigenvectors +${\bf v}_\xi$ of $m_h$ and roots $\xi$ of $I$, the eigenvalue of $m_h$ on +${\bf v}_\xi$ is the value $h(\xi)$ of $h$ at $\xi$, and the multiplicity +of this eigenvalue (on the eigenvector ${\bf v}_\xi$) is the +multiplicity of the root $\xi$. +}\medskip + +Since the linear transformations $m_h$ for $h\in A$ commute, the +eigenvectors ${\bf v}_\xi$ are common to all $m_h$. +Thus we may compute the roots of a zero-dimensional ideal $I\subset k[X]$ +by first computing floating-point approximations to the +eigenvectors ${\bf v}_\xi$ of $m_{x_1}$. +Then the root $\xi\ =\ (\xi_1,\ldots,\xi_n)$ of $I$ corresponding to the +eigenvector ${\bf v}_\xi$ has $i$th coordinate satisfying +% +\begin{equation}\label{eigenv} + m_{x_i}\cdot {\bf v}_\xi\ =\ \xi_i \cdot {\bf v}_\xi\,. +\end{equation} +% +An advantage of this method is that we may use structured numerical linear +algebra after the matrices $m_{x_i}$ are precomputed using exact arithmetic. +(These matrices are typically sparse and have additional structures which may +be exploited.) +Also, the coordinates $\xi_i$ are {\it linear} functions of the floating +point entries of ${\bf v}_\xi$, which affords greater precision than +the non-linear evaluations $g_i(\xi_1)$ in the method based upon elimination. +While in principle only one of the $\deg(I)$ components of the vectors +in~(\ref{eigenv}) need be computed, averaging the results from all +components can improve precision. + + +\subsection{Real Roots} +Determining the real roots of a polynomial system is a challenging problem +with real world applications\index{solving polynomial equations!real solutions}. +When the polynomials come from geometry, this is the main problem of +real enumerative geometry\index{enumerative geometry!real}. +Suppose $k\subset{\mathbb R}$ and $I\subset k[X]$ is zero-dimensional. +If $g$ is an eliminant of $k[X]/I$ +with $\deg(g)=\deg(I)$, then the real roots of +$g$ are in 1-1 correspondence with the real roots of $I$. +Since there are effective methods for counting the real roots of a univariate +polynomial, eliminants give a na\"\i ve, but useful method for determining the +number of real roots to a polynomial system. +(For some applications of this technique in mathematics, +see~\cite{SO:RS98,SO:So_shap-www,SO:So00b}.) + +The classical symbolic method of Sturm, based upon Sturm sequences, counts +the number of real roots of a univariate polynomial in an interval. +When applied to an eliminant satisfying the Shape Lemma, this method counts +the number of real roots of the ideal. +This is implemented in \Mtwo{}\/ via the command +{\tt SturmSequence(f)} of {\tt realroots.m2} +% +<<>> +% +The last few lines of {\tt SturmSequence} construct the Sturm +sequence\index{Sturm sequence} of the univariate argument $f$: +This is $(f_0, f_1, f_2,\ldots)$ where $f_0=f$, $f_1=f'$, and +for $i>1$, $f_i$ is the normal form reduction of $-f_{i-2}$ modulo +$f_{i-1}$. +Given any real number $x$, the {\it variation} of $f$ at $x$ is the number of +changes in sign of the sequence $(f_0(x), f_1(x), f_2(x),\ldots)$ obtained by +evaluating the Sturm sequence of $f$ at $x$. +Then the number of real roots of $f$ over an interval $[x,y]$ is the +difference of the variation of $f$ at $x$ and at $y$. + +The \Mtwo{}\/ commands {\tt numRealSturm} and +{\tt numPosRoots} (and also {\tt numNegRoots}) use this method to respectively +compute the total number of real roots and the number of positive roots of +a univariate polynomial. +% +<<>> +% +<<>> +% +These use the commands {\tt signAt}$*${\tt (f)}, which +give the sign of ${\tt f}$ +at $*$. +(Here, $*$ is one of {\tt Infinity}, {\tt zero}, or {\tt MinusInfinity}.) +Also {\tt variations(c)} computes the +number of sign changes in the sequence {\tt c}. +% +<<>> +% + + +A more sophisticated method to compute the number of real roots which can also +give information about their location uses the rank and +signature\index{bilinear form!signature} of the +symmetric trace form. +Suppose $I\subset k[X]$ is a zero-dimensional ideal and +set $A:=k[X]/I$. +For $h\in k[X]$, set $S_h(f,g):={\rm trace}(m_{hfg})$. +It is an easy exercise that $S_h$ is a symmetric bilinear form\index{bilinear +form!symmetric} on $A$. +The procedure {\tt traceForm(h)} in {\tt realroots.m2} +computes this trace form\index{trace form} $S_h$. +% +<<>> +% +The value of this construction is the following theorem. + +\begin{theorem}[\cite{SO:BW,SO:PRS}]\label{t:PRS} +Suppose $k\subset{\mathbb R}$ and $I$ is a zero-dimensional ideal in +$k[x_1,\ldots,x_n]$ and consider ${\mathcal V}(I)\subset {\mathbb C}^n$. +Then, for $h\in k[x_1,\ldots,x_n]$, the signature $\sigma(S_h)$ and rank +$\rho(S_h)$ of the bilinear form $S_h$ satisfy +\begin{eqnarray*} +\sigma(S_h)&=&\#\{a\in{\mathcal V}(I)\cap{\mathbb R}^n:h(a)>0\} + - \#\{a\in{\mathcal V}(I)\cap{\mathbb R}^n:h(a)<0\}\,\\ +\rho(S_h)&=&\#\{a\in{\mathcal V}(I):h(a)\neq0\}\,. +\end{eqnarray*} +\end{theorem} + +That is, the rank of $S_h$ counts roots in +${\mathbb C}^n-{\mathcal V}(h)$, and its signature counts the real roots +weighted by the sign of $h$ (which is $-1$, $0$, or $1$) at each root. +The command {\tt traceFormSignature(h)} in {\tt realroots.m2} returns the +rank and signature of the trace form $S_h$. +% +<<>> +% +The \Mtwo{}\/ command {\tt numRealTrace(A)} simply returns the number of +real roots of $I$, given ${\tt A}=k[X]/I$. +% +<<>> +% + +\begin{example} +We illustrate these methods on the following polynomial system. +% +<<>> +% +<<>> +% +The ideal $I$ has dimension zero and degree 5. +% +<<>> +% +We compare the two methods to compute the eliminant of $x$ in +the ring $R/I$. +% +<<>> +% +<<