Coherent sheaf cohomology on projective space over a ring

In 2015 I was thinking on the problem of explicitly computing the cohomology groups $H^i(X,\mathcal{F})$ where $X = \mathbb{P}^n_A$ is a projective space over a noetherian computable ring $A$, that is not necessary a field and $\mathcal{F}$ is a coherent sheaf on $X$.

I found a solution that used only the known values of $H^i(\mathbb{P}^n_A, \mathcal{O}_{\mathbb{P}^n}(d))$ to justify the calculation.

The sheaf $\mathcal{F}$ is given as $\tilde{M}$ for a finitely presented module $M$ over the graded coordinate ring $S=A[x_0,\ldots,x_n]$ of $X$.

I used a very simple approach using the fact, that $\mathcal{F} = \tilde{M_{\geqslant d}}$ and $M_{\geqslant d} = M_d \oplus M_{d+1} \oplus \cdots$ can be resolved by a resolution

$$
(*) \cdots \to F_i \to F_{i-1} \to \cdots \to F_0 \to M \to 0
$$

where $F_i = \bigoplus_j S(-d_{ij})$ with $d_{ij} > 0$. This resolution is constructed inductively: Let

$$
0 \to Z_i \to F_i \to F_{i-1} \to \cdots \to F_0 \to M \to 0
$$

with $F_i = \bigoplus_j S(-d_{ij})$ and $d_{ij} > 0$ be already constructed. Then a short exact sequence
$$
0 \to Z_{i+1} \to F_{i+1} \to Z_i \to 0
$$
with $F_{i+1} = \bigoplus_j S(-d_{i+1,j})$ can be effectively computed. As we have a map $F_{i+1} \to Z_i \to F_i$ of degree $0$ and $\mathrm{Hom}_S(S(-e), S(-d))_0 = 0$ for $e < d$ we can conclude that automatically $d_{i+1,j} > 0$.

Now I read the long exact sequence of cohomology of coherent sheafs over $\mathbb{P}^n_A$ backwards to conclude that

$$
\mathcal{F} \mapsto H^n(X,\mathcal{F})
$$

is a right exact covariant functor with $H^{n-i}(X,\mathcal{F})$ ($i > 0$) as $i$-th satellite functor, all together forming an exact and effaceable $\delta$-functor.

Effaceable it is by starting with $\mathcal{F} = \tilde{M}$ and choosing a surjection of $S$-modules
$N = \bigoplus_j S(-d_j) \to M \to 0$ and considering $\tilde{N} \to \tilde{M} \to 0$ as the effacement.

So I can compute $H^{n-i}(X,\mathcal{F})$ by applying $H^n(X,-)$ on the (for $H^{n-i}(X,-)$) acyclic resolution (*) and taking cohomology.

I get

$$
H^{n-p}(X,\tilde{M}) = h_p(H^n(X,\tilde{F_i}))
$$

But $H^n(X,\tilde{F_i})$ is, by simple duality for projective space equal to $\mathrm{Hom}_A(\mathrm{Hom}_S(F_i,S(-n-1))_0,A)$, so I take with Macaulay 2 simply

transpose basis(0, Hom(F_.,S(-n-1)))

(the actual command is a bit more complicated) and get a complex of free $A$-modules whose homology computes the $H^{n-i}(X,\tilde{M})$.

I had to overcome some technical obstacles in implementing this in Macaulay 2, but can now for two running examples compute correct values for the cohomology nearly automatically (I just need to enter the initial d in truncate(d, M) by hand).

The code for the full procedure is:

--
-- compute the H^i(proj S, moM~) for S=A[x_1,...,x_n]
--

compCohX = (moM, d) ->
(
S := ring moM;
A := coefficientRing S;
n := numgens S;
moMt := truncate(d, moM);
-- the number 10 must be chosen accordingly with n
C := presX (moMt, 10);
C1 := Hom(C, S^{-n});
Dlis := {};
for i from min(C1) to max (C1) do
(
Dlis = prepend( transpose lift(matrix basis(0, C1.dd_(i)), A), Dlis);
);
D:= chainComplex(Dlis);
D, C, prune HH(D)
);

--
-- compute a free resolution of moM with S(-d_{i,1}) + .. + S(-d_{i,j_i}) terms
--

presX = (moM, k) ->
(
moN := moM;
philis := {};
moN = prune moN;
i := 0;
phi := presentation moN;
degs := degrees target phi;
print degs;
philis = append(philis, phi);
moN = ker phi;
while (((prune moN) != 0) and (i <= k)) do
(
phi = presentation moN;
psi := gens moN;
philis = append(philis, psi);
philis = append(philis, phi);
moN = ker phi;
i = i + 1;
);
D := chainComplex(philis);
return D;
);

Ubuntu – Programme mit Skript starten

 

Leider vergisst Ubuntu/Gnome in den neueren Versionen, z.B. in meiner 14.04 LTS mit Gnome Flashback, nach Beenden alle geöffneten Fenster.

Daher der Wunsch nach einem Skript, das folgendes tut: Gegeben ein Workspace wn (bei mir eine Zahl 0 <= wn <= 9) soll ein Terminal in wn geöffnet werden, dort ein gegebener Pfad mit ‚cd‘ angesteuert werden und dann in diesem Directory ein Programm (bei mir ‚evince‘) mit bestimmtem Argument gestartet werden.

Meine Lösung: domyinit:

#!/bin/sh
startterm.sh 9 wisstexte/notizen/notes notes.pdf &
sleep 3
startterm.sh 8 wisstexte/alggeo/latexfiles book.pdf &
sleep 3
startterm.sh 7 wisstexte/intersectheo/latexfiles book.pdf &
sleep 3

und dann startterm.sh

 

#!/bin/sh

wmctrl -s $1

argbash="evince $3 & exec bash"

echo $argbash

gnome-terminal --geometry=90x25+1000+800 --working-directory="$HOME/$2" -x bash -c "$argbash" &

Acer Aspire V5 121

Seit 2013 besitze ich ein Netbook, Acer Aspire V5 121. Die Ausstattung: AMD C 70 1GHz DualCore, 2 GB RAM, 320 GB Festplatte, 11,6″ Bildschirm (1366 x 768). Ausgeliefert mit Windows 8 als Betriebssystem. Der Rechner war mit Windows nie der schnellste und im Lauf der Zeit wurde er eher gefühlt noch langsamer, bis er völlig unbenutzbar war. Habe daher jetzt Ubuntu 14.04LTS installiert (via USB Boot, Legacy Boot mode, und anschließender Installation auf Platte aus dem Netz). Den USB-Stick habe ich noch unter Windows mit dem Windows-Tool Pendrivelinux präpariert. Alles lief (überraschenderweise) bestens, WLAN, Trackpad, Webcam, schlichtweg alles wurde von Ubuntu 14.04LTS (Trusty Tahr) perfekt unterstützt. Die Response-Time des Systems beim Starten von Programmen ist jetzt wieder gut bis erträglich und das System macht wirklich das beste aus der nicht so starken Hardwarebasis. Außerdem ist es eben ein echtes Linux, hat also bei mir schon deswegen Pluspunkte.

Links:

Pendrivelinux

 

 

Scientific Linux 6.5

Letzte Woche mit dem Umstieg auf Scientific Linux 6.5 auf meinem Lenovo T500 Laptop begonnen.

War früher Ubuntu 10.04 Benutzer und mit Ubuntu 10.04 auch außerordentlich zufrieden. Gnome 2 ist eine sehr gut benutzbare, übersichtliche und mit zahlreichen nützlichen Features ausgestattete Desktopumgebung.

Meinen Desktop zuhause hatte ich vor einiger Zeit auf 12.04LTS upgedated. War sehr enttäuscht und verärgert über Unity und die dadurch verringerte Usability. Kurzfristig dort auf Kubuntu, dann auch auf Xubuntu gewechselt. Auch Xubuntu war nicht überzeugend: Das System war träge, Öffnen eines Terminalfensters dauerte ewig und es gab nicht mal die Möglichkeit im Dateiexplorer einen remote-Server per ssh oder sftp anzusprechen und grafisch Dateien zu kopieren oder zu löschen. (Da ich so meine Webseiten verwalte, ein extremer Minuspunkt).

Mittlerweile bin ich auf diesem Desktop wieder zu Ubuntu pur, aber mit Gnome-Fallback gewechselt. Es läuft so einigermaßen, aber es stellen sich auch Dinge ein, die man eigentlich nur von Windows kennt: Fenster öffnen sich, berichten über Versagen einer Systemkomponente und bitten einen Bericht an Canonical schicken zu dürfen. Nicht nur im Desktop ist man also Microsoft und Apple auf den Fersen…

Doch nun zu einer besseren Welt:

Nach langem Zögern habe ich mich entschieden, meinen Laptop doch auf Scientific Linux umstellen. Im Laufe der Zeit gewöhnt man sich ja (leider) an die Bequemlichkeit von Ubuntu überall in gut gepflegten Wikis und Foren schnell brauchbare Antworten und Hilfen für Alltagsaufgaben der Systemadministration zu finden. Bei SL findet man zwar auch das ein oder andere, außerdem kann man ja die Handbücher zu RHEL auf deren Website lesen, aber man landet eben immer öfter bei RTFM. Außerdem befürchtete ich schon größere Komplikationen beim reinen Installationsprozeß, und war allgemein von einer großen Unsicherheit über das System geplagt. Doch das legte sich, als ich auf der Wikipedia-Seite die vertraute Gnome-Oberfläche sah und auf verschiedenen Youtube-Videos sowohl die Installation, als auch gewisse elementare Operationen auf der Oberfläche sehen konnte.

Also beschloß ich Nägel mit Köpfen zu machen:

1) Neue Festplatte (1TB) für den Laptop bestellt.

2) Alle Daten in /home/juergen des Laptops auf meinem WD-MyBook gesichert. Außerdem /opt gesichert und zum schnellen Zugriff noch die wichtigsten Daten aus /home/juergen auf einen TOSHIBA USB Stick (16GB).

3) SL 6.5 (neueste zur Zeit verfügbare Version) als LiveDVD ISO-Image heruntergeladen, verifiziert und gebrannt.

4) Ein erster Live-DVD-Test: Das System überzeugte gleich von der Optik her, einer Installation stand nur noch der Einbau der neuen Festplatte im Wege

5) Videos über Festplattentausch bei Lenovo T500 bei Youtube gefunden und angesehen.

6) Festplatten getauscht

7) Partitionsschema überlegt

8) SL6.5 LiveDVD im Modus ‚Install‘ gebootet. Partitionsschema ließ sich unkompliziert festlegen, Netzwerk automatisch richtig erkannt, auch sonst bei den üblichen Kandidaten alles bestens: Grafikkarte, (Funk-)Maus, alles ok.

9) Einen User ‚juergen‘ angelegt und eingeloggt.

Nun kam die Detailarbeit

0) Den Nautilus so umgestellt, wie er auf Ubuntu war: Kein neues Fenster für neue Dateiumgebung, Orte-Leiste am linken Rand.

1) Mit dem Backup der Bookmarks den neuen Firefox gefüttert. Lief von Anfang an perfekt, auch mit Youtube-Zugriff und dynamischem HTML z.B. auf der Shredderchess-Seite.

2) Thunderbird ebenfalls mit seinem Backup-Profil gefüttert: Alle Daten korrekt übernommen.

3) Mit yum vertraut gemacht. Mit visudo mich als sudoer eingetragen (eigentlich nicht „the RHEL way“, aber ich wollte nicht darauf verzichten)

4) Den für mich unverzichtbaren Editor ’nedit‘ mit dem ich meine TeX-Sourcen für meine mathematischen Texte schreibe erst als Binary geladen (funktionierte nicht) und dann nochmal aus den Quellen gebaut. Einige Hürden, man mußte noch einige Libraries dazulinken, die damals noch nicht vorgesehen waren, aber dann: Success!

5) Maple 14 von DVD installiert. Leider offenbar noch kein DVD Automount – was solls, dann wird eben von Hand gemountet. Aktivierungsschlüssel aus der alten Mail herausgekramt: Installiert und aktiviert ohne Probleme! Auch ein abschließender Test mit implicitplot3d und ein wenig Rechnerei erfolgreich.

6) Für Macaulay2 ist wohl kein Binary für SL 6.5 erhältlich, also aus den Quellen bauen. Ist mir sowieso lieber, denn die wollte ich sowieso schon immer auch gegebenenfalls lesen können. Der Anleitung bei github gefolgt: ‚configure‘ ging mit kleiner Modifikation, ‚make‘ ging ganz, aber ‚make check‘ blieb an einer falsch gezogenen statischen Library libgmp hängen. Ich meldete das auf google Groups ‚Macaulay2‘ und bekam keine 15 Minuten später von Daniel Grayson persönlich eine Erklärung für den Fehler und einen checkout Stand für git übermittelt. Damit ließ sich der Build abschließen.

Dann noch setup() und setupEmacs() im M2 ausgeführt und das Thema Macaulay2 war erledigt.

6a) Vor dem Bauen mußte ich noch, wie auch in der Anleitung angegeben, das devtoolset-2 vom CERN herunterladen und aktivieren. Lief komplett ohne Probleme, ich benutzte gcc 4.8.2 und habe auch eine moderne Eclipse (Kepler) mit CDT für die C/C++ Entwicklung.

7) Als kleines Intermezzo die Shellvariable PS1 im .bashrc so gesetzt, daß der Stil des Prompts dem von Ubuntu gewohnten gleicht (voller Pfadname).

8) Dann texlive-Installation angegangen. Recherchiert um sicher zu gehen, daß man das Installationsskript wirklich nicht als root starten braucht und daß umask 0002 eine gute Wahl bei der Installation ist. Dann noch die benötigen perl-Tk-xxxx Packages für eine -gui Installation installiert. Mußte dafür noch yum-priorities installieren, dann das EPEL repository per Paketmanager (GUI) einbinden und dann noch von Hand Prioritäten vergeben. Habe mich dabei an den Vorschlag aus dem Internet gehalten. Aus dem EPEL Repository dann die Perl-Sachen geladen und die TeXLive Installation gestartet. Da ich nicht am Plattenplatz sparen muß, habe ich die komplette vorgeschlagene Konfiguration genommen (alles außer Windows-Spezifisches). Nach 45 Minuten war alles heruntergeladen und installiert, noch die Pfade in .bashrc anpassen und dann der erste Test mit meinem Buch als Testprojekt: Leider erstmal Fehler, das Paket tikz machte Probleme, aber im Internet fand sich schnell die Lösung: \usepackage{etex}. Danach: Alles (soweit man das beurteilen kann) korrekt übersetzt. Ergebnis: TeX läuft!

9) Noch ein bißchen geschaut was an Software erhältlich ist: Sogar wxmaxima und maxima sind aus EPEL verfügbar, MP3s kann ich abspielen, nur acroread ist noch zu installieren. Außerdem noch volle autocompletion (auch für make) aktiviert.

Das war von Montag bis Samstag nacht, am Sonntag dann den Computer und mich selbst ruhen lassen und Bilanz gezogen: Erstmal Zufriedenheit über ein stabiles, mit klassischem Gnome2 ausgestattetes, mindestens bis 2017 unterstütztes System, das auch von der Optik her sehr gelungen ist (obwohl das nicht so sehr ein Argument sein sollte, ist ein gefälliges Design doch einem ungefälligen vorzuziehen und sehr oft auch der äußere Anzeiger für ein ebenso solides Innenleben).

 

 

 

 

Meine ganzen Links, die ich bei der Installation nach und nach benutzt habe (muß noch ein Skript schreiben um sie in anklickbare Links zu verwandeln):

 

Scientific Linux

Installation

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/index.html
http://optics.csufresno.edu/~kriehn/fedora/fedora_files/f11/installation/partitions.html
http://content.hccfl.edu/pollock/aunix1/partitioning.htm
http://linux.t-tietz.de/Scientific_Linux_6_Installation
http://astr.tohoku.ac.jp/~akhlaghi/newlinux.html

nedit
https://bugzilla.redhat.com/show_bug.cgi?id=199770

Admin Tips

Automount
https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/s2-nfs-config-autofs.html

Repositories
http://www.dedoimedo.com/computers/scientific-linux-repos.html

Autocompletion

DNF/YUM Autocomplete (package names/commands) on Fedora/CentOS/RHEL


http://unix.stackexchange.com/questions/21135/package-bash-completion-missing-from-yum-in-centos-6
http://wiki.centos.org/TipsAndTricks/CustomizeBash
https://access.redhat.com/site/documentation/en-US/JBoss_Enterprise_Web_Platform/5/html/Installation_Guide/sect-

use_alternatives_to_set_default_JDK.html
http://www.lamolabs.org/blog/5562/5-minute-guide-to-using-the-alternatives-command-on-fedoracentosrhel/
https://www.mail-archive.com/scientific-linux-users@listserv.fnal.gov/msg11393.html
http://www.dedoimedo.com/computers/scientific-linux-pimp.html

Sudo on CentOS / Scientific Linux / RHEL

Install Adobe Reader on Fedora 30/29, CentOS/RHEL 7.6/6.10

Python

Python

yum
https://doc.itc.rwth-aachen.de/display/LIN/Konfiguration+von+Updates+unter+Scientific+Linux
http://yum.baseurl.org/
http://yum.baseurl.org/wiki/Faq

TeX
http://scientificlinuxforum.org/index.php?act=Search&CODE=show&searchid=d32a0c4942ba70041b5ecc230080180a&result_type=topics&hl=texlive&f=&u=
http://scientificlinuxforum.org/index.php?showtopic=1487&hl=texlive
http://www.tug.org/texlive/doc/texlive-en/texlive-en.html#x1-300003.4
scl / devtoolset
http://scientificlinuxforum.org/index.php?showtopic=2390
http://www.h-online.com/open/news/item/Red-Hat-betas-web-developer-tool-collection-1884019.html
http://linux.web.cern.ch/linux/devtoolset/
http://www.redhat.com/developerexchange/DevExchange_bring_order_into_your_packaging_madness_with_software_collections-mmaslano.pdf

M2
https://github.com/Macaulay2/M2/blob/master/M2/INSTALL

General

 

https://www.scientificlinux.org/
http://scientificlinuxforum.org/index.php?s=8b618d7427a7082f552dfa955a4f5705&act=SC&c=5
http://www.scientificlinux.org/documentation/faq/yum.apt.repo

Alles ganz genau

In einem Feature über Georges Perec folgendes erwähnt: Perec liebte es, die genauen Bezeichnungen aller seiner Besitztümer und Habseligkeiten zu kennen. Ein guter Gedanke.

Also jetzt ich:

  • Laptop, Lenovo T500
  • Bleistifte, Faber-Castell 9000, HB
  • Bleistiftspitzer, Staedtler, Artikelnummer 512 001 (sehr gut, halten lange. Die von Faber-Castell werden schnell stumpf)

weiteres folgt wenn ich Lust habe.