From 080d4d175478af1f5170d861f0b7c0dc50baefc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Tue, 27 Jul 2021 10:47:25 +0200 Subject: add example on homology --- buch/chapters/95-homologie/chapter.tex | 2 +- buch/chapters/95-homologie/homologie.tex | 299 ++++++++++++++++++++++++++++++- buch/chapters/95-homologie/komplex.tex | 104 ++++++++++- buch/chapters/95-homologie/simplex.tex | 2 +- 4 files changed, 399 insertions(+), 8 deletions(-) (limited to 'buch/chapters/95-homologie') diff --git a/buch/chapters/95-homologie/chapter.tex b/buch/chapters/95-homologie/chapter.tex index eaa56c4..994c400 100644 --- a/buch/chapters/95-homologie/chapter.tex +++ b/buch/chapters/95-homologie/chapter.tex @@ -38,7 +38,7 @@ Damit wird es möglich, das Dreieck vom Rand des Dreiecks zu unterschieden. \input{chapters/95-homologie/simplex.tex} \input{chapters/95-homologie/komplex.tex} \input{chapters/95-homologie/homologie.tex} -\input{chapters/95-homologie/mayervietoris.tex} +%\input{chapters/95-homologie/mayervietoris.tex} \input{chapters/95-homologie/fixpunkte.tex} diff --git a/buch/chapters/95-homologie/homologie.tex b/buch/chapters/95-homologie/homologie.tex index 2b80a17..cba09ee 100644 --- a/buch/chapters/95-homologie/homologie.tex +++ b/buch/chapters/95-homologie/homologie.tex @@ -6,13 +6,308 @@ \section{Homologie \label{buch:section:homologie}} \rhead{Homologie} +Die Idee der Trangulation ermöglicht, komplizierte geometrische +Objekte mit einem einfachen ``Gerüst'' auszustatten und so zu +analysieren. +Projiziert man ein mit einer Kugel konzentrisches Tetraeder auf die +Kugel, entsteht eine Triangulation der Kugeloberfläche. +Statt eine Kugel zu studieren, kann man also auch ein Tetraeder untersuchen. + +Das Gerüst kann natürlich nicht mehr alle Eigenschaften des ursprünglichen +Objektes wiedergeben. +Im Beispiel der Kugel geht die Information darüber, dass es sich um eine +glatte Mannigfaltigkeit handelt, verloren. +Was aber bleibt, sind Eigenschaften des Zusammenhangs. +Wenn sich zwei Punkte mit Wegen verbinden lassen, dann gibt es auch eine +Triangulation mit eindimensionalen Simplices, die diese Punkte als Ecken +enthalten, die sich in der Triangulation mit einer Folge von Kanten +verbinden lassen. +Algebraisch bedeutet dies, dass die beiden Punkte der Rand eines +Weges sind. +Fragen der Verbindbarkeit von Punkten mit Wegen lassen sich also +dadurch studieren, dass man das geometrische Objekt auf einen Graphen +reduziert. + +In diesem Abschnitt soll gezeigt werden, wie diese Idee auf höhere +Dimensionen ausgedehnt werden. +Es soll möglich werden, kompliziertere Fragen des Zusammenhangs, zum +Beispiel das Vorhandensein von Löchern mit algebraischen Mitteln +zu analysieren. \subsection{Homologie eines Kettenkomplexes \label{buch:subsection:homologie-eines-kettenkomplexes}} +Wegzusammenhang lässt sich untersuchen, indem man in der Triangulation +nach Linearkombinationen von Kanten sucht, die als Rand die beiden Punkte +haben. +Zwei Punkte sind also nicht verbindbar und liegen damit in verschiedenen +Komponenten, wenn die beiden Punkte nicht Rand irgend einer +Linearkombination von Kanten sind. +Komponenten können also identifiziert werden, indem man unter allen +Linearkombinationen von Punkten, also $C_0$ all diejenigen ignoriert, +die Rand einer Linearkombinationv on Kanten sind, also $\partial_1C_1$. +Der Quotientenraum $H_0=C_0/\partial_1C_1$ enthält also für jede Komponente +eine Dimension. + +Eine Dimension höher könnten wir danach fragen, ob sich ein geschlossener +Weg zusammenziehen lässt. +In der Triangulation zeichnet sich ein geschlossener Weg dadurch aus, +dass jedes Ende einer Kante auch Anfang einer Folgekante ist, dass also +der Rand der Linearkombination von Kanten 0 ist. +Algebraisch bedeutet dies, dass wir uns für diejenigen Linearkombinationen +$z\in C_1$ interessieren, die keinen Rand haben, für die also $\partial_1z=0$ +gilt. + +\begin{definition} +Die Elemente von +\[ +Z_k += +\{z\in C_k\;|\; \partial_k z = 0\} += +\ker \partial_k +\] +heissen die {\em ($k$-dimensionalen) Zyklen} von $C_*$. +\end{definition} + +In einem Dreieck ist der Rand ein geschlossener Weg, der sich zusammenziehen +lässt, indem man ihn durch die Dreiecksfläche deformiert. +Entfernt man aber die Dreiecksfläche, ist diese Deformation nicht mehr +möglich. +Einen zusammenziehbaren Weg kann man sich also als den Rand eines Dreiecks +einer vorstellen. +``Löcher'' sind durch geschlossene Wege erkennbar, die nicht Rand eines +Dreiecks sein können. +Wir müssen also ``Ränder'' ignorieren. + +\begin{definition} +Die Elemente von +\[ +B_k += +\{\partial_{k+1}z\;|\; C_{k+1}\} += +\operatorname{im} \partial_{k+1} +\] +heissen die {\em ($k$-dimensionalen) Ränder} von $C_*$. +\end{definition} + +Algebraisch ausgedrückt interessieren uns also nur Zyklen, die selbst +keine Ränder sind. +Der Quotientenraum $Z_1/B_1$ ignoriert unter den Zyklen diejenigen, die +Ränder sind, drückt also algebraisch die Idee des eindimensionalen +Zusammenhangs aus. +Wir definieren daher + +\begin{definition} +Die $k$-dimensionale Homologiegruppe des Kettenkomplexes $C_*$ ist +\[ +H_k = Z_k/B_k = \ker \partial_k / \operatorname{im} \partial_{k+1}. +\] +\end{definition} + +Die folgenden zwei ausführlichen Beispiele sollen zeigen, wie die +Homologiegruppe $H_2$ die Anwesenheit eines Hohlraumes detektieren kann, +der entsteht, wenn man aus einem Tetraeder das innere entfernt. + +\begin{beispiel} +\begin{figure} +\centering +XXX Bild eines Tetraeders mit Bezeichnung der Ecken und Kanten +\caption{Triangulation eines Tetraeders, die Orientierung von Kanten +und Seitenflächen ist immer so gewählt, dass die Nummern der Ecken +aufsteigend sind. +\label{buch:homologie:tetraeder:fig}} +\end{figure} +Ein Tetraeder ist ein zweidmensionales Simplex, wir untersuchen seinen +Kettenkomplex und bestimmen die zugehörigen Homologiegruppen. +Zunächst müssen wir die einzelnen Mengen $C_k$ beschreiben und verwenden +dazu die Bezeichnungen gemäss Abbildung~\ref{buch:homologie:tetraeder:fig}. +$C_0$ ist der vierdimensionale Raum aufgespannt von den vier Ecken +$0$, $1$, $2$ und $3$ des Tetraeders. +$C_1$ ist der sechsdimensionale Vektorraum der Kanten +\[ +k_0 = [0,1],\quad +k_1 = [0,2],\quad +k_2 = [0,3],\quad +k_3 = [1,2],\quad +k_4 = [1,3],\quad +k_5 = [2,3] +\] +Der Randoperator $\partial_1$ hat die Matrix +\[ +\partial_1 += +\begin{pmatrix*}[r] +-1&-1&-1& 0& 0& 0\\ + 1& 0& 0&-1&-1& 0\\ + 0& 1& 0& 1& 0&-1\\ + 0& 0& 1& 0& 1& 1 +\end{pmatrix*}. +\] + +Wir erwarten natürlich, dass sich zwei beliebige Ecken verbinden lassen, +dass es also nur eine Komponente gibt und dass damit $H_1=\Bbbk$ ist. +Dazu beachten wir, dass das Bild von $\partial_1$ genau aus den Vektoren +besteht, deren Komponentensumme $0$ ist. +Das Bild $B_0$ von $\partial_1$ ist daher die Lösungsmenge der einen +Gleichung +\( +x_0+x_1+x_2+x_3=0. +\) +Der Quotientenraum $H_0=Z_0/B_0 = C_0/\operatorname{im}\partial_1$ +ist daher wie erwartet eindimensional. + +Wir bestimmen jetzt die Homologiegruppe $H_1$. +Da sich im Tetraeder jeder geschlossene Weg zusammenziehen lässt, +erwarten wir $H_1=0$. + +Die Menge der Zyklen $Z_1$ wird bestimmt, indem man die Lösungsmenge +des Gleichungssystems $\partial_1z=0$ bestimmt. +Der Gauss-Algorithmus für die Matrix $\partial_1$ liefert das +Schlusstableau +\[ +\begin{tabular}{|>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}|} +\hline +k_0&k_1&k_2&k_3&k_4&k_5\\ +\hline + 1& 0& 0& -1& -1& 0\\ + 0& 1& 0& 1& 0& -1\\ + 0& 0& 1& 0& 1& 1\\ + 0& 0& 0& 0& 0& 0\\ +\hline +\end{tabular} +\] +Daraus lassen sich drei linear unabhängig eindimensionale Zyklen ablesen, +die zu den Lösungsvektoren +\[ +z_1 += +\begin{pmatrix*}[r] +1\\ +-1\\ +0\\ +1\\ +0\\ +0 +\end{pmatrix*}, +\qquad +z_2 += +\begin{pmatrix*}[r] +1\\ +0\\ +-1\\ +0\\ +1\\ +0 +\end{pmatrix*}, +\qquad +z_3 += +\begin{pmatrix*}[r] +0\\ +1\\ +-1\\ +0\\ +0\\ +1 +\end{pmatrix*} +\] +gehören. + +$C_2$ hat die vier Seitenflächen +\[ +f_0=[0,1,2],\quad +f_1=[0,1,3],\quad +f_2=[0,2,3],\quad +f_3=[1,2,3] +\] +als Basis. +Der zweidimensionale Randoperator ist die $6\times 4$-Matrix +\[ +\partial_2 += +\begin{pmatrix*}[r] + 1& 1& 0& 0\\ +-1& 0& 1& 0\\ + 0&-1&-1& 0\\ + 1& 0& 0& 1\\ + 0& 1& 0&-1\\ + 0& 0& 1& 1 +\end{pmatrix*}. +\] +Man kann leicht nachrechnen, dass $\partial_1\partial_2=0$ ist, wie es +für einen Kettenkomplex sein muss. + +Um nachzurechnen, dass die Homologiegruppe $H_1=0$ ist, müssen wir jetzt +nachprüfen, ob jeder Zyklus in $Z_1$ auch Bild der Randabbildung $\partial_2$ +ist. +Die ersten drei Spalten von $\partial_2$ sind genau die drei Zyklen +$z_1$, $z_2$ und $z_3$. +Insbesondere lassen sich alle Zyklen als Ränder darstellen, die +Homologiegruppe $H_1=0$ verschwindet. + +Die Zyklen in $C_2$ sind die Lösungen von $\partial_2z=0$. +Der Gauss-Algorithmus für $\partial_2$ liefert das -Tableau +\[ +\begin{tabular}{|>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}|} +\hline +f_0&f_1&f_2&f_3\\ +\hline +1&0&0& 1\\ +0&1&0&-1\\ +0&0&1& 1\\ +0&0&0& 0\\ +0&0&0& 0\\ +0&0&0& 0\\ +\hline +\end{tabular} +\] +Daraus liest man ab, dass es genau einen Zyklus nämlich +\[ +z += +\begin{pmatrix} +-1\\1\\-1\\1 +\end{pmatrix} +\] +$Z_2$ besteht also aus Vielfachen des Vektors $z$. + +Da es nur ein zweidimensionales Simplex gibt, ist $C_3$ eindimensional. +Die Randabbildung $\partial_3$ hat die Matrix +\[ +\partial_3 += +\begin{pmatrix} +1\\ +-1\\ +1\\ +-1 +\end{pmatrix}. +\] +Die Zyklen $Z_2$ und die Ränder $B_2$ bilden also dieselbe Menge, auch +die Homologie-Gruppe $H_2$ ist $0$. + +Da es keine vierdimensionalen Simplizes gibt, ist $B_3=0$. +Die Zyklen $Z_3$ bestehen aus den Lösungen von $\partial_3w=0$, da +aber $\partial_3$ injektiv ist, ist $Z_3=0$. +Daher ist auch $H_3=0$. +\end{beispiel} + +\begin{beispiel} +Für dieses Beispiel entfernen wir das Innere des Tetraeders, es entsteht +ein Hohlraum. +Am Kettenkomplex der Triangulation ändert sich nur, dass $C_3$ jetzt +nur noch den $0$-Vektor enthält. +Das Bild $B_2=\operatorname{im}\partial_3$ wird damit auch $0$-dimensional, +während es im vorigen Beispiel eindimensional war. +Die einzige Änderung ist also in der Homologiegruppe +$H_2 = Z_2/B_2 = Z_2 / \{0\} \simeq \Bbbk$. +Die Homologiegruppe $H_2$ hat jetzt Dimension $1$ und zeigt damit den +Hohlraum an. +\end{beispiel} \subsection{Induzierte Abbildung \label{buch:subsection:induzierte-abbildung}} -\subsection{Homologie eines simplizialen Komplexes -\label{buch:subsection:simplizialekomplexe}} diff --git a/buch/chapters/95-homologie/komplex.tex b/buch/chapters/95-homologie/komplex.tex index 6dd8efb..c1b5698 100644 --- a/buch/chapters/95-homologie/komplex.tex +++ b/buch/chapters/95-homologie/komplex.tex @@ -6,9 +6,105 @@ \section{Kettenkomplexe \label{buch:section:komplex}} \rhead{Kettenkomplexe} +Die algebraische Struktur, die in Abschnitt~\ref{buch:subsection:triangulation} +konstruiert wurde, kann noch etwas abstrakter konstruiert werden. +Es ergibt sich das Konzept eines Kettenkomplexes. +Die Triangulation gibt also Anlass zu einem Kettenkomplex. +So lässt sich zu einem geometrischen Objekt ein algebraisches +Vergleichsobjekt konstruieren. +Im Idealfall lassens ich anschliessend geometrische Eigenschaften mit +algebraischen Rechnungen zum Beispiel in Vektorräumen mit Matrizen +beantworten. -\subsection{Randoperator von Simplexen -\label{buch:subsection:randoperator-von-simplexen}} +\subsection{Definition +\label{buch:subsection:kettenkomplex-definition}} +Die Operation $\partial$, die für Simplizes konstruiert worden ist, +war linear und hat die Eigenschaft $\partial^2$ gehabt. +Diese Eigenschaften reichen bereits für Definition eines Kettenkomplexes. + +\begin{definition} +Eine Folge $C_0,C_1,C_2,\dots$ von Vektorräumen über dem Körper $\Bbbk$ +mit einer Folge von linearen Abbildungen +$\partial_k\colon C_k \to C_{k-1}$, dem {\em Randoperator}, +heisst ein Kettenkomplex, wenn $\partial_{k-1}\partial_k=0$ gilt +für alle $k>0$. +\end{definition} + +Die aus den Triangulationen konstruieren Vektorräme von +Abschnitt~\ref{buch:subsection:triangulation} bilden einen +Kettenkomplex. + +XXX nachrechnen: $\partial^2 = 0$ ? + +\subsection{Abbildungen +\label{buch:subsection:abbildungen}} +Wenn man verschiedene geometrische Objekte mit Hilfe von Triangulationen +vergleichen will, dann muss man auch das Konzept der Abbildungen zwischen +den geometrischen Objekten in die Kettenkomplexe transportieren. + +Eine Abbildung zwischen Kettenkomplexen muss einerseits eine lineare +Abbildung der Vektorräume $C_k$ sein, andererseits muss sich eine +solche Abbildung mit dem Randoperator vertragen. +Wir definieren daher + +\begin{definition} +Eine Abbildung $f_*$ zwischen zwei Kettenkomplexe $(C_*,\partial^C_*)$ und +$(D_*,\partial^D_*)$ heisst eine Abbildung von Kettenkomplexen, wenn +für jedes $k$ +\begin{equation} +\partial^D_k +\circ +f_{k} += +f_{k+1} +\circ +\partial^C_k +\label{buch:komplex:abbildung} +\end{equation} +gilt. +\end{definition} + +Die Beziehung~\eqref{buch:komplex:abbildung} kann übersichtlich als +kommutatives Diagramm dargestellt werden. +\begin{equation} +\begin{tikzcd} +0 \arrow[r] + & C_0 \arrow[r, "\partial_0^C"] + \arrow[d, "f_0"] + & C_1 \arrow[r,"\partial_1^C"] + \arrow[d, "f_1"] + & C_2 \arrow[r,"\partial_2^C"] + \arrow[d, "f_2"] + & \dots \arrow[r] + \arrow[r, "\partial_{k-1}^C"] + & C_k + \arrow[r, "\partial_k^C"] + \arrow[d, "f_k"] + & C_{k+1}\arrow[r, "\partial_{k+1}^C"] + \arrow[d, "f_{k+1}"] + & \dots +\\ +0 \arrow[r] + & D_0 \arrow[r, "\partial_0^D"] + & D_1 \arrow[r,"\partial_1^D"] + & D_2 \arrow[r,"\partial_2^D"] + & \dots \arrow[r] + \arrow[r, "\partial_{k-1}^D"] + & D_k + \arrow[r, "\partial_k^D"] + & D_{k+1}\arrow[r, "\partial_{k+1}^D"] + & \dots +\end{tikzcd} +\label{buch:komplex:abbcd} +\end{equation} +Die Relation~\eqref{buch:komplex:abbildung} drückt aus, dass man jeden +den Pfeilen im Diagram~\eqref{buch:komplex:abbcd} folgen kann und +dabei zwischen zwei Vektorräumen unabhängig vom Weg die gleiche Abbildung +resultiert. + +Die Verfeinerung einer Triangulation erzeugt eine solche Abbildung von +Komplexen. + + +% XXX simpliziale Approximation -\subsection{Kettenkomplexe und Morphismen -\label{buch:subsection:kettenkomplex}} diff --git a/buch/chapters/95-homologie/simplex.tex b/buch/chapters/95-homologie/simplex.tex index 5ca2ca8..397ba07 100644 --- a/buch/chapters/95-homologie/simplex.tex +++ b/buch/chapters/95-homologie/simplex.tex @@ -233,6 +233,6 @@ Vorzeichen zu, die Matrix ist \subsection{Triangulation -\label{buch:subsection:}} +\label{buch:subsection:triangulation}} -- cgit v1.2.1 From eab9aa83268309cdcba5b83df1cb221418e18f93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Tue, 27 Jul 2021 11:23:52 +0200 Subject: induzierte Abbildung --- buch/chapters/95-homologie/Makefile.inc | 1 - buch/chapters/95-homologie/homologie.tex | 43 +++++++++++++++++++++++++++++++- buch/chapters/95-homologie/komplex.tex | 32 ++++++++++++------------ 3 files changed, 58 insertions(+), 18 deletions(-) (limited to 'buch/chapters/95-homologie') diff --git a/buch/chapters/95-homologie/Makefile.inc b/buch/chapters/95-homologie/Makefile.inc index 7e6f1e7..41b1569 100644 --- a/buch/chapters/95-homologie/Makefile.inc +++ b/buch/chapters/95-homologie/Makefile.inc @@ -8,7 +8,6 @@ CHAPTERFILES = $(CHAPTERFILES) \ chapters/95-homologie/simplex.tex \ chapters/95-homologie/komplex.tex \ chapters/95-homologie/homologie.tex \ - chapters/95-homologie/mayervietoris.tex \ chapters/95-homologie/fixpunkte.tex \ chapters/95-homologie/chapter.tex diff --git a/buch/chapters/95-homologie/homologie.tex b/buch/chapters/95-homologie/homologie.tex index cba09ee..905ecc3 100644 --- a/buch/chapters/95-homologie/homologie.tex +++ b/buch/chapters/95-homologie/homologie.tex @@ -62,6 +62,8 @@ Die Elemente von \[ Z_k = +Z_k^C += \{z\in C_k\;|\; \partial_k z = 0\} = \ker \partial_k @@ -84,6 +86,8 @@ Die Elemente von \[ B_k = +B_k^C += \{\partial_{k+1}z\;|\; C_{k+1}\} = \operatorname{im} \partial_{k+1} @@ -101,8 +105,10 @@ Wir definieren daher \begin{definition} Die $k$-dimensionale Homologiegruppe des Kettenkomplexes $C_*$ ist \[ -H_k = Z_k/B_k = \ker \partial_k / \operatorname{im} \partial_{k+1}. +H_k(C) = Z_k/B_k = \ker \partial_k / \operatorname{im} \partial_{k+1}. \] +Wenn nur von einem Kettenkomplex die Rede ist, kann auch $H_k(C)=H_k$ +abgekürzt werden. \end{definition} Die folgenden zwei ausführlichen Beispiele sollen zeigen, wie die @@ -309,5 +315,40 @@ Hohlraum an. \subsection{Induzierte Abbildung \label{buch:subsection:induzierte-abbildung}} +Früher haben wurde eine Abbildung $f_*$ zwischen Kettenkomplexen $C_*$ und +$D_*$ so definiert, +dass sie mit den Randoperatoren verträglich sein muss. +Diese Forderung bewirkt, dass sich auch eine lineare Abbildung +\[ +H_k(f) \colon H_k(C) \to H_k(D) +\] +zwischen den Homologiegruppen ergibt, wie wir nun zeigen wollen. + +Um eine Abbildung von $H_k(C)$ nach $H_k(D)$ zu definieren, müssen wir +zu einem Element von $H_k(C)$ ein Bildelement konstruieren. +Ein Element in $H_k(C)$ ist eine Menge von Zyklen in $Z^C_k$, die sich +nur um einen Rand in $B_k$ unterscheiden. +Wir wählen also einen Zyklus $z\in Z_k$ und bilden ihn auf $f_k(z)$ ab. +Wegen $\partial^D_kf(z)=f\partial^C_kz = f(0) =0 $ ist auch $f_k(z)$ +ein Zyklus. +Wir müssen jetzt aber noch zeigen, dass eine andere Wahl des Zyklus +das gleiche Element in $H_k(D)$ ergibt. +Dazu genügt es zu sehen, dass sich $f(z)$ höchstens um einen Rand +ändert, wenn man $z$ um einen Rand ändert. +Sei also $b\in B^C_k$ ein Rand, es gibt also ein $w\in C_{k+1}$ mit +$\partial^C_{k+1}w=b$. +Dann gilt aber auch +\[ +f_k(z+b) += +f_k(z) + f_k(b) += +f_k(z) + f_k(\partial^C_{k+1}w) += +f_k(z) + \partial^D_{k+1}(f_k(w)). +\] +Der letzte Term ist ein Rand in $D_k$, somit ändert sich $f_k(z)$ nur +um diesen Rand, wenn man $z$ um einen Rand ändert. +$f_k(z)$ und $f_k(z+b)$ führen auf die selbe Homologieklasse. diff --git a/buch/chapters/95-homologie/komplex.tex b/buch/chapters/95-homologie/komplex.tex index c1b5698..fa2d8e1 100644 --- a/buch/chapters/95-homologie/komplex.tex +++ b/buch/chapters/95-homologie/komplex.tex @@ -68,31 +68,31 @@ Die Beziehung~\eqref{buch:komplex:abbildung} kann übersichtlich als kommutatives Diagramm dargestellt werden. \begin{equation} \begin{tikzcd} -0 \arrow[r] - & C_0 \arrow[r, "\partial_0^C"] +0 + & C_0 \arrow[l, "\partial_0^C"] \arrow[d, "f_0"] - & C_1 \arrow[r,"\partial_1^C"] + & C_1 \arrow[l,"\partial_1^C"] \arrow[d, "f_1"] - & C_2 \arrow[r,"\partial_2^C"] + & C_2 \arrow[l,"\partial_2^C"] \arrow[d, "f_2"] - & \dots \arrow[r] - \arrow[r, "\partial_{k-1}^C"] + & \dots \arrow[l] + \arrow[l, "\partial_{k-1}^C"] & C_k - \arrow[r, "\partial_k^C"] + \arrow[l, "\partial_k^C"] \arrow[d, "f_k"] - & C_{k+1}\arrow[r, "\partial_{k+1}^C"] + & C_{k+1}\arrow[l, "\partial_{k+1}^C"] \arrow[d, "f_{k+1}"] & \dots \\ -0 \arrow[r] - & D_0 \arrow[r, "\partial_0^D"] - & D_1 \arrow[r,"\partial_1^D"] - & D_2 \arrow[r,"\partial_2^D"] - & \dots \arrow[r] - \arrow[r, "\partial_{k-1}^D"] +0 + & D_0 \arrow[l, "\partial_0^D"] + & D_1 \arrow[l,"\partial_1^D"] + & D_2 \arrow[l,"\partial_2^D"] + & \dots \arrow[l] + \arrow[l, "\partial_{k-1}^D"] & D_k - \arrow[r, "\partial_k^D"] - & D_{k+1}\arrow[r, "\partial_{k+1}^D"] + \arrow[l, "\partial_k^D"] + & D_{k+1}\arrow[l, "\partial_{k+1}^D"] & \dots \end{tikzcd} \label{buch:komplex:abbcd} -- cgit v1.2.1