You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tesi-triennale/src/main.typ

746 lines
33 KiB
Plaintext

#import "theme.typ": *
#import "prelude.typ": *
#import "@preview/cetz:0.3.4"
#import "skein.typ": *
#import "@preview/drafting:0.2.2": inline-note, margin-note, set-margin-note-defaults, set-page-properties
#import "@preview/colorful-boxes:1.1.0": stickybox
#set-margin-note-defaults(
rect: (..kwargs, content) => rect(..kwargs, {
set text(size: 8pt, font: "Open Sans")
set par(leading: 0.5em, justify: false)
content
}),
side: right,
)
// Prelude
#show: ams-article.with(
paper-size: "a4",
title: [Il polinomio di Kauffman: \ un invariante di isotopia regolare],
page-title: [Il polinomio di Kauffman: un invariante di isotopia regolare],
authors: (
(
name: "Antonio De Lucreziis",
organization: "Dipartimento di Matematica",
location: "Pisa, Italia",
email: "antonio.delucreziis@gmail.com",
),
),
abstract: [
In questa tesi tratteremo del polinomio di Kauffman, un invariante di nodi e link di isotopia regolare. Introdurremo dei risultati di fondazione della teoria dei nodi per definire l'isotopia regolare. Infine vedremo la dimostrazione della buona definizione del polinomio di Kauffman a partire dalla forma assiomatica. Per il progetto di Laboratorio Computazionale abbiamo implementato in Python questo polinomio e verificato tutti i valori presenti nel database di KnotInfo e trovato un errore nel calcolo del nodo $10_125$.
],
bibliography: bibliography("refs.bib"),
)
#set-page-properties(margin-right: 4cm)
// Content
= Introduzione
// In questa tesi studieremo un invariante di isotopia regolare chiamato polinomio di Kauffman @Kauffman1990-qe. Intuitivamente se l'isotopia ambiente è l'equivalenza tra diagrammi generata dalle mosse I, II e III di Reidemeister, l'isotopia regolare è l'equivalenza generata solo dalle mosse II e III.
// #figure(
// image("assets/ambient-regular-isotopy-difference.jpg", width: 13cm),
// caption: [Mosse di Reidemeister],
// )
// Dato un nodo o link non orientato $K$, possiamo definire in forma assiomatica il polinomio $kL_K (a, z) in bb(Z)[a, a^(-1), z, z^(-1)]$ attraverso i seguenti assiomi:
// 1. Se $K$, $K'$ sono equivalenti a meno di isotopia regolare, allora $kL_K (a,z) = kL_K' (a,z)$.
// 2. Valgono le seguenti relazioni skein:
// - $kL(#skein.over) + kL(#skein.under) = z (kL(#skein.h) + kL(#skein.v))$
// - $kL(#skein.unit) = 1$
// - $kL(#skein.over-twist) = a kL(#skein.strand)$
// - $kL(#skein.under-twist) = a^(-1) kL(#skein.strand)$
// Vedremo come questi assiomi definiscono un unico invariante di isotopia regolare ben definito e come $kL_K (a, z)$ può essere generalizzato a un invariante di isotopia ambiente $F_K (a, z)$ utilizzando il _writhe_ di un nodo.
== Introduzione alla Teoria dei Nodi
Ora introdurremo alcuni risultati fondamentali di teoria dei nodi. Vedremo le definizioni di nodo e link ed alcuni risultati di fondazione che ci serviranno per poter parlare ad esempio dei diagrammi planari e dell'isotopia regolare.
#definition[
Dati $X, Y$ spazi topologici, $f : X arrow Y$ continua si dice *embedding* se $X$ è omeomorfo a $f(X) subset Y$ con la topologia di sottospazio indotta da $Y$.
] <embedding>
// #let embedding-def = ref-link(<embedding>)[embedding]
#fact[
Dati $X$, $Y$ spazi topologici con $X$ compatto, $Y$ di Hausdorff e data un'applicazione continua $f : X arrow Y$ allora $f$ è un embedding $<=>$ è iniettiva.
]
#definition[
Dato un embedding $f : X arrow Y$, un punto $p in X$ allora $f$ si dice *localmente piatto* in $p$ se $exists U subset bb(R)^3$ intorno di $p$, tale che
] <locally-flat>
#grid(
columns: (1fr, 1fr),
gutter: 1em,
align: center + horizon,
grid(
columns: 3,
gutter: 1em,
align: center,
$U$, $approx$, $bb(D)^2 times [0, 1]$,
$U inter f(X)$, $<->$, ${ 0 } times [0, 1]$,
),
align(center, image("assets/locally-flat-v2.png", width: 4cm)),
)
inoltre $f$ si dice embedding *localmente piatto* se lo è in ogni punto di $X$.
// #let locally-flat-def = ref-link(<locally-flat>)[localmente piatto]
#definition[
Un *nodo tame* è un sottoinsieme $K subset bb(R)^3$ per cui esiste un embedding $f : bb(S)^1 arrow.hook bb(R)^3$ localmente piatto con $K = f(bb(S)^1)$. In questo caso $f$ è anche detto *embedding tame*.
]
#figure(image("assets/wild_knot.svg", width: 75%), caption: [
Un esempio di nodo non tame
])
Esistono anche nodi non tame come quello riportato nella figura precedente @wiki:wild_knot, ma d'ora in avanti considereremo solo nodi tame.
#definition[
Due nodi $K_0, K_1 subset bb(R)^3$ sono *equivalenti* se esiste un'*isotopia ambiente* $H$ che porta uno nell'altro, ovvero esiste $H : bb(R)^3 times [0, 1] arrow bb(R)^3$ applicazione continua, tale che
- $forall t in [0, 1], H(dot, t)$ è un omeomorfismo
e ponendo $H_t (x) colon.eq H(x, t)$ si ha
- $H_0 = id_(bb(R)^3)$
- $H_1(K_0) = K_1$
]
Inoltre se due nodi sono equivalenti allora vale che $bb(R)^3 without K_0 approx bb(R)^3 without K_1$.
Spesso serve fare manipolazioni direttamente sui nodi o sui diagrammi e lavorare con gli embedding $bb(S)^1 arrow bb(R)^3$ non è molto comodo da un punto di vista formale e pratico, per questo motivo introduciamo i _nodi poligonali_ che ci permettono di dare una formalizzazione alternativa dei nodi tame più operativa.
#definition[
Un *nodo poligonale* è un nodo equivalente ad un'unione finita di segmenti lineari.
]
#fact(name: [Crowell @crowell1977introduction])[
Dato un nodo $K subset bb(R)^3$, $K$ è tame $<=>$ $K$ è poligonale.
]
// Dunque nella classe di isotopia di un nodo tame c'è sempre un nodo poligonale e possiamo restringerci a studiare questi ultimi.
#definition[
Il *nodo banale* è la classe di equivalenza del bordo di un triangolo equilatero.
]
Passiamo ora al caso in cui abbiamo un nodo con più di una componente
#definition[
$L subset bb(R)^3$ è detto *link* se $exists$ embedding $f : bb(S)^1 union dots.c union bb(S)^1 arrow bb(R)^3$ localmente piatto con immagine $L$.
]
Possiamo generalizzare tutte le definizioni che diamo per i nodi ai link, sostituendo $bb(S)^1$ con $bb(S)^1 union dots.c union bb(S)^1$ e apportando le giuste modifiche.
Introduciamo ora il concetto di equivalenza combinatoria di link poligonali in $bb(R)^3$; questo è il primo passo che ci permetterà di descrivere l'equivalenza per isotopia ambiente tra nodi attraverso una sequenza finita di mosse.
#definition[
Due link $L_1, L_2$ sono *combinatorialmente equivalenti* se si ottengono uno dall'altro tramite un numero finito delle seguenti mosse:
1. Aggiunta/rimozione di vertici
#image("assets/delta-move-1.png")
2. Dato un triangolo piano $Delta subset bb(R)^3$ tale che $Delta inter L$ sia un lato di $Delta$ ed un segmento di $L$ allora una $Delta$*-mossa* è la seguente
#image("assets/delta-move-2.png")
]
#fact[
Due link poligonali $L_1, L_2 subset bb(R)^3$ sono equivalenti $<=>$ sono combinatorialmente equivalenti.
]
#pagebreak()
== Proiezioni e Diagrammi
Data una direzione $v in bb(S)^2 subset bb(R)^3$, possiamo definire $pi_v : bb(R)^3 arrow v^perp$ proiezione sul piano ortogonale a $v$ come nella seguente figura:
#figure(image("assets/projection-plane.png", width: 60%))
Per formalizzare il concetto di diagramma di un nodo introdurremo il concetto di proiezione regolare, ovvero una proiezione in cui i punti di intersezione tra le immagini dei segmenti di $L$ sono solamente gli incroci del nodo (e senza segmenti paralleli alla direzione di proiezione).
#definition[
Sia $L subset bb(R)^3$ un link, $v in bb(S)^2$ una direzione e $pi_v : bb(R)^3 arrow v^perp$ la proiezione su $v^perp$ come in precedenza. Allora un punto $x in pi(L) subset v^perp$ si dice
- *regolare* se $abs(pi^(-1)(x)) = 1$
- *singolare* se $abs(pi^(-1)(x)) > 1$
- *doppio* se $abs(pi^(-1)(x)) = 2$
]
#fact[
Dato un link poligonale $L subset bb(R)^3$, esiste un aperto denso $U subset bb(S)^2$ tale che $forall v in U$ si ha che
1. $L$ non ha segmenti paralleli a $v$.
2. Se $x in pi_v (L)$ è singolare allora
- $pi_v^(-1)(x)$ non contiene vertici di $L$
- $x$ è un punto doppio
- $x$ è un punto di intersezione trasversa delle immagini di due segmenti
]
Quindi dato $L subset bb(R)^3$ link poligonale, esiste una proiezione regolare $pi(L) subset bb(R)^2$ con un numero finito di punti singolari, ciascuno dei quali è un punto doppio e di intersezione trasversa. Ognuno di questi punti doppi viene detto *incrocio*.
#definition[
Un *diagramma* $D subset bb(R)^2$ di un link $L subset bb(R)^3$ è l'immagine di $L$ attraverso una proiezione regolare decorata con l'informazione sopra/sotto ad ogni incrocio.
]
#fact[
Due link con stesso diagramma sono equivalenti.
]
#definition[
Le mosse I, II, III (e le loro inverse) sono dette *mosse di Reidemeister*.
]
#figure(image("assets/reidemeister-moves.jpg", width: 10cm))
#theorem(name: [di Reidemeister])[
Due diagrammi di link equivalenti sono collegati da una successione finita di isotopie planari e mosse di Reidemeister.
]
Il modo principale in cui utilizzeremo il teorema di Reidemeister è attraverso la seguente proprietà. Indichiamo con $scr(D)$ l'insieme dei diagrammi di nodi e link.
#proposition[
Data una funzione $phi : scr(D) arrow S$ con $S$ un insieme (eventualmente con una qualche struttura come quella di anello) con la proprietà che $D tilde D' => phi(D) = phi(D')$ allora se $phi(D) != phi(D') => D tilde.not D'$, in particolare se $D, D'$ sono diagrammi per $K, K'$ allora $K tilde.not K'$.
]
#proof[
È semplicemente la forma contronominale del teorema di Reidemeister.
]
Funzioni con la stessa proprietà di $phi$ sono quindi invarianti di nodi o link per isotopia ambiente e ci danno un modo di distinguerli. Più avanti vedremo ad esempio il polinomio $F_K (a, z) : scr(D) arrow bb(Z)[a, a^(-1), z, z^(-1)]$ che risulterà essere un invariante di isotopia ambiente per link orientatati.
Come abbiamo generalizzato da nodi a link possiamo ripetere tutto anche aggiungendo un'orientazione e studiare *nodi e link orientati* ed abbiamo anche una versione orientata del teorema di Reidemeister.
== Operazioni su Diagrammi
#definition[
Dato un link $L subset bb(R)^3$ possiamo definire
- Il *mirror* $m(L) colon.eq rho(L)$ dove $rho : bb(R)^3 arrow bb(R)^3$ è la riflessione rispetto al piano di proiezione. In particolare dato un diagramma, il suo mirror è lo stesso diagramma con tutte le informazioni sopra/sotto scambiate.
inoltre, se diamo anche un'_orientazione_ ad $L$ possiamo definire
- Il *reverse* $r(L)$, in cui prendiamo l'orientazione opposta su ogni componente.
- L'*inverso* $-L colon.eq m(r(L)) = r(m(L))$.
]
#definition[
Sia $K subset bb(R)^3$, se $K$ non è equivalente a $m(K)$ allora diciamo che $K$ è *chirale*, altrimenti è detto *anfichirale*.
]
= Isotopia Regolare
Il teorema di Reidemeister ci dice che due nodi sono equivalenti a meno di isotopia ambiente se e solo se lo sono anche dei loro diagrammi a meno di isotopie planari e mosse I, II e III.
Possiamo chiederci cosa succede se ci restringiamo all'equivalenza generata solo dalle isotopie planari e dalle mosse II e III, questo ci dà una nuova equivalenza tra nodi più stringente dell'isotopia ambiente.
#definition[
Due diagrammi $D_1, D_2$ di nodi o link si dicono equivalenti a meno di *isotopia regolare* se e solo se sono equivalenti a meno di isotopie planari e mosse II e III di Reidemeister.
]
#figure(image(
"assets/ambient-regular-isotopy-difference.jpg",
width: 15cm,
))
Una prima cosa che possiamo notare è che tutte le mosse di tipo I, quelle che introducono quelli che chiameremo *riccioli*, possono passare sopra o sotto altri fili senza problemi applicando le seguenti mosse
#figure(image(
"assets/move-1-factorization.png",
width: 10cm,
))
Quindi i riccioli possono essere spostati liberamente e non ci impediscono di applicare mosse di tipo II o III. In particolare questo ci permette anche di "fattorizzare" tutti i riccioli di una componente in modo che siano tutti vicini.
Un'altra osservazione sul comportamento dell'isotopia regolare rispetto alle mosse di tipo I è la seguente. Quando abbiamo una coppia di riccioli con segni opposti e su lati opposti abbiamo la seguente proprietà di cancellazione detto _trucco di Whitney_.
#figure(image("assets/whitney-trick.png", width: 16cm))
C'è un'osservazione importante da fare quando parliamo di isotopia regolare. Quest'ultima è definita solo quando si parla di diagrammi. Quando invece parliamo di isotopia ambiente ha senso parlare dei link sia come diagrammi che come embedding $bb(S)^1 -> bb(R)^3$.
Questo sarà importante più avanti quando vedremo invarianti come il polinomio $F_K$ che risulteranno essere invarianti per isotopia ambiente. Nel caso del polinomio $F_K$, il calcolo va fatto fissando un particolare diagramma del link. È tutt'ora un problema aperto dare una definizione di $F_K$ che sia indipendente dalla scelta di un diagramma.
// Questo sarà importante più avanti quando vedremo invarianti di isotopia ambiente definiti passando dall'isotopia regolare. Ad esempio, nel caso del polinomio $F_K$, la definizione si basa sul polinomio $L_K$ che è un invariante per isotopia regolare definito su diagrammi; quindi il calcolo di $F_K$ va fatto fissando un particolare diagramma del link. È tutt'ora un problema aperto dare una definizione di $F_K$ che sia indipendente dalla scelta di un diagramma.
== Writhe
Vediamo ora un primo invariante di isotopia regolare per link orientatati, per prima cosa definiamo il segno di un incrocio.
#definition[
Dato un incrocio di un link orientato ci possono essere due casi in base alla direzione in cui il filo sotto si trova rispetto a quello sopra. Definiamo *il segno* di un incrocio in base a questi casi come segue
$
epsilon(#skein-generic(direction: (+1, +1))) = +1
#h(2em)
epsilon(#skein-generic(direction: (+1, -1))) = -1
$
]
#definition[
Dato $K$ link orientato, il *writhe* $w(K)$ o numero di avvolgimento è dato dalla somma dei segni dei suoi incroci
$
w(K) colon.eq sum_(c "incrocio") epsilon(c)
$
]
#proposition[
Se $K$ è un nodo, il writhe non dipende dall'orientazione.
]
#proof[
Basta ricondurci a controllare cosa succede quando applichiamo il cambio dell'orientazione in $epsilon$:
$
epsilon(#skein-generic(direction: (-1, -1))) stretch(=) epsilon(#skein-generic(direction: (+1, +1))) = +1 \
epsilon(#skein-generic(direction: (-1, +1))) = epsilon(#skein-generic(direction: (+1, -1))) = -1
$
Nel primo caso invertendo le due frecce il filo che passa sotto va sempre verso sinistra rispetto a quello sopra quindi il segno rimane invariato, il secondo caso è analogo.
]
Questo risultato può essere generalizzato a link con l'accortezza di invertire l'orientazione di tutte le componenti (o anche solamente tutte quelle che appartengono ad una sola componente connessa relativamente alla sua ombra planare).
#proposition[
Il writhe è un invariante di isotopia regolare, ovvero se $K_1, K_2$ sono equivalenti a meno di isotopia regolare allora $w(K_1) = w(K_2)$.
]
#proof[
Controlliamo cosa succede nel caso delle mosse di tipo II e III:
- Nel caso della mossa II si può vedere che indipendentemente dalle orientazioni dei due fili, quando portiamo uno sopra l'altro compaiono sempre due incroci con segni opposti quindi per additività del writhe la somma totale non cambia.
#figure(image("assets/writhe-move-2.png", width: 6cm))
- Per quanto riguarda la mossa III, il numero di incroci non cambia quindi basta controllare che la somma sia la stessa
#figure(image("assets/writhe-move-3.png", width: 6cm))
Come possiamo notare nel caso mostrato in figura ciò che accade è che stiamo solo spostando e scambiando alcuni degli incroci tra loro. In particolare possiamo identificare ogni incrocio come l'intersezione di due delle tre rette, dopo aver applicato la mossa III le rette si saranno spostate ma le orientazioni saranno sempre le stesse e quindi anche i segni degli incroci.
Inoltre notiamo che il writhe non è influenzato dalle isotopie planari quindi questo conclude la dimostrazione.
]
#figure(image("assets/writhe-examples.png", width: 12cm), caption: [
Esempi di calcolo del writhe
// per varie orientazioni del link di Hopf e del nodo trifoglio
])
== Da isotopia regolare ad ambiente
Un primo fatto generale che possiamo vedere è che, dato un invariante di isotopia regolare che si comporta "bene" rispetto alle mosse di tipo I, possiamo costruire un invariante di isotopia ambiente aggiungendo un fattore di correzione dato dal writhe.
#proposition[
Sia $R$ un anello, $a in R$ un elemento invertibile e $K$ un link orientato, allora se $L : scr(D) -> R$ è un invariante di isotopia regolare tale che
$
L(#skein.over-twist) = a L(#skein.strand)
#h(2em)
L(#skein.under-twist) = a^(-1) L(#skein.strand)
$
allora $F(K) colon.eq a^(-w(K)) L(K)$ è un invariante di isotopia ambiente.
] <prop-ext-ambient-isotopy-inv>
*Osservazione.* In questo caso la notazione "$L(#skein.over-twist-medium) = a L(#skein.strand-medium)$" indica che ci sono due diagrammi $D_1, D_2$ identici ovunque tranne che nella parte evidenziata.
#proof[
Per prima cosa notiamo che $w(K)$ è invariante per isotopia regolare, dunque lo è anche $a^(-w(K))$. Osserviamo che $a^(-w(K)) dot L(K)$ è un prodotto di quantità invarianti per isotopia regolare dunque anche $F(K)$ è invariante per isotopia regolare.
Dunque basta controllare che $F(K)$ sia invariante rispetto alle mosse di tipo I. Per prima cosa osserviamo che
$
w(#skein.over-twist) = w(#skein.strand) + 1
#h(2em)
w(#skein.under-twist) = w(#skein.strand) - 1
$
ed usando la proprietà dell'ipotesi otteniamo
$
F(#skein.over-twist) & = a^(-w(#skein.over-twist-small)) dot L(#skein.over-twist) \
& = a^(-w(#skein.strand-small) - 1) dot a dot L(#skein.strand) \
& = a^(-w(#skein.strand-small)) dot cancel(a^(-1)) dot cancel(a) dot L(#skein.strand) \
& = a^(-w(#skein.strand-small)) dot L(#skein.strand) = F(#skein.strand) \
$
e analogamente segue anche per l'altro ricciolo che $F(#skein.under-twist) = F(#skein.strand)$.
]
= Polinomio di Kauffman
#todo[
work in progress
]
// Ora introdurremo il polinomio di Kauffman @Kauffman1990-qe che vedremo essere un invariante di isotopia regolare. Questo polinomio è definito in modo implicito da degli assiomi che utilizzano le relazioni skein, queste relazioni possono essere utilizzate direttamente per calcolare
// Vedremo come questi assiomi definiscono un unico invariante di isotopia regolare ben definito e come $kL_K (a, z)$ può essere generalizzato a un invariante di isotopia ambiente $F_K (a, z)$ utilizzando il _writhe_ di un nodo.
== Definizione assiomatica
#todo[
work in progress
]
// #definition[
// Dato $K$ un link non orientato, $kL_K in bb(Z)[a, a^(-1), z, z^(-1)]$, ovvero i polinomi di Laurent sugli interi nelle variabili $a$ e $z$, e verifica i seguenti assiomi:
// 1. Se $K$, $K'$ sono equivalenti a meno di isotopia regolare, allora $kL_K = kL_K'$.
// 2. Valgono le seguenti relazioni skein per quaterne di diagrammi identici ovunque tranne che nei punti indicati
// - $kL(#skein.over) + kL(#skein.under) = z (kL(#skein.h) + kL(#skein.v))$
// - $kL(#skein.unit) = 1$
// - $kL(#skein.over-twist) = a kL(#skein.strand)$
// - $kL(#skein.under-twist) = a^(-1) kL(#skein.strand)$
// ]
// Come già anticipato in precedenza, vedremo che questo è un invariante di isotopia regolare e può essere generalizzato ad invariante di isotopia ambiente come segue
// #definition[
// Definiamo $F_K in Z[a, a^(-1), z, z^(-1)]$ per diagrammi orientati $K$ come
// $
// F_K colon.eq a^(-w(K)) kL_K
// $
// dove $L_K$ di un diagramma orientato è definito dimenticando l'orientazione.
// ]
// #proposition[
// Il polinomio $F_K (a, z)$ è un invariante di isotopia ambiente
// ]
// #proof[
// Segue dalla @prop-ext-ambient-isotopy-inv.
// ]
== Alcune proprietà del polinomio di Kauffman
#todo[
work in progress
]
// #lemma[
// Sia $K$ un link orientato e $m(K)$ il suo mirror. Allora abbiamo la seguente relazione per $L$
// e $F$
// $
// L_(m(K)) (a, z) = L_K (1 slash a, z)
// #h(2em)
// F_(m(K)) (a, z) = F_K (1 slash a, z)
// $
// ]
// #proof[
// $m(K)$ è ottenuto da $K$ scambiando tutti i suoi incroci quindi se analizziamo cosa succede nei vari assiomi solo vicino ad un certo incrocio otteniamo le seguenti relazioni
// $
// kL(m(#skein.unit)) = kL(#skein.unit) = 1 \
// kL(m(#skein.over-twist)) = kL(#skein.under-twist) = a^(-1) kL(#skein.strand) \
// kL(m(#skein.under-twist)) = kL(#skein.over-twist) = a kL(#skein.strand)
// $
// ed infine l'ultima relazione rimane invariata per la simmetria del polinomio di Kauffman
// $
// kL(m(#skein.over)) + kL(m(#skein.under)) = z (kL(m(#skein.h)) + kL(m(#skein.v))) \
// => kL(#skein.under) + kL(#skein.over) = z (kL(#skein.h) + kL(#skein.v)) \
// => kL(#skein.over) + kL(#skein.under) = z (kL(#skein.h) + kL(#skein.v))
// $
// quindi passare al mirror ha l'effetto di scambiare solamente $a$ con $a^(-1)$ ma il resto della valutazione rimane identico.
// Infine per $F_m(K)$ basta osservare che $w(m(K)) = -w(K)$ per una motivazione analoga.
// ]
// Prima di passare alla dimostrazione della buona definizione vediamo alcuni esempi di calcolo di $L_K$ in modo "implicito", questo può essere fatto scegliendo accuratamente per quali diagrammi valutare le relazioni skein degli assiomi.
// Ad esempio proviamo a ricavare il valore di $delta colon.eq L(#skein.unit#skein.unit)$ #margin-note[Tutte le immagini qua sotto sono temporanee e devo rifarle]
// #let knot-picture(src, ..rest) = $thin #image("assets/derived/atlas-" + src, ..rest) thin$
// $
// L( #knot-picture("infinity-0.png", height: 2.25em) )
// +
// L( #knot-picture("infinity-1.png", height: 2.25em) ) & =
// z (
// L( #knot-picture("infinity-2.png", height: 2.25em) )
// +
// L( #knot-picture("infinity-3.png", height: 2.25em) )
// ) \
// =>
// a L( #skein.unit )
// +
// a^(-1) L( #skein.unit ) & =
// z (
// delta
// +
// L ( #skein.unit )
// ) \
// => a + a^(-1) & = z ( delta + 1 ) \
// => delta & = (a + a^(-1)) slash z - 1
// $
// Questo valore $delta = (a + 1 slash a) slash z - 1$ ricomparirà anche in seguito ed è il coefficiente che il polinomio di Kauffman introduce quando abbiamo un link con due componenti disgiunte. Possiamo anche trovare il risultato per il link di Hopf come segue
// // #figure(image("assets/implicit-calc-2.png"))
// $
// L( #knot-picture("hopf-0.png", height: 1.75em) )
// +
// L( #knot-picture("hopf-1.png", height: 1.75em) ) & =
// z (
// L( #knot-picture("hopf-2.png", height: 1.75em) )
// +
// L( #knot-picture("hopf-3.png", height: 1.75em) )
// ) \
// =>
// L( #knot-picture("hopf-0.png", height: 1.75em) )
// +
// delta & =
// z (
// a
// +
// a^(-1)
// ) \
// =>
// L( #knot-picture("hopf-0.png", height: 1.75em) ) & =
// - (a + a^(-1)) z^(-1) + 1 + (a + a^(-1)) z
// $
// E del nodo trifoglio
// // #figure(image("assets/implicit-calc-3.png"))
// $
// L( #knot-picture("trefoil-0.png", height: 2em) )
// +
// L( #knot-picture("trefoil-1.png", height: 2em) ) & =
// z (
// L( #knot-picture("trefoil-2.png", height: 2em) )
// +
// L( #knot-picture("trefoil-3.png", height: 2em) )
// ) \
// =>
// L( #knot-picture("trefoil-0.png", height: 2em) )
// +
// a & =
// z (
// L( #knot-picture("hopf-0.png", height: 1.75em) )
// +
// a^(-2)
// ) \
// =>
// L( #knot-picture("trefoil-0.png", height: 2em) ) & =
// -(2a + a^(-1)) + (1 + a^(-2)) z + (a + a^(-1)) z^2
// $
// #definition[
// Diremo che un diagramma è _split_ se è l'unione disgiunta di due diagrammi separati, in questo caso scriviamo $K = K_1 union.sq K_2$ dove $K_1$ e $K_2$ sono le due componenti disgiunte.
// ]
// #definition[
// Un diagramma $K$ è una *somma connessa* se appare come due diagrammi disgiunti connessi da due archi paralleli (a meno di isotopie planari). Tagliando questi due archi e riunendo insieme le estremità dello stesso sotto-diagramma otteniamo un nuovo diagramma split della forma $tilde(K) = K_1 union.sq K_2$, in questo caso chiamiamo la somma connessa $K = K_1 hash K_2$.
// ]
// #proposition[
// Valgono le seguenti relazioni di $L$ ed $F$ per diagrammi split o in somma connessa
// #{
// set align(center)
// grid(
// rows: 2,
// columns: 2,
// column-gutter: 2em,
// row-gutter: 1em,
// $L(K_1 union.sq K_2) = delta L(K_1) L(K_2)$, $F(K_1 union.sq K_2) = delta F(K_1) F(K_2)$,
// $L(K_1 hash K_2) = L(K_1) L(K_2)$, $F(K_1 hash K_2) = F(K_1) F(K_2)$,
// )
// }
// dove $delta = (a + a^(-1)) slash z - 1$ ed è lo stesso coefficiente che abbiamo trovato nell'esempio precedente.
// ]
== Dimostrazione Forma Induttiva
#todo[
work in progress
]
// Prima di passare a descrivere la definizione induttiva diamo alcune definizioni di manipolazioni di un diagramma.
// #definition[
// Sia $K$ un diagramma, $cal(U)$ la sua ombra planare#footnote[Ovvero per $K subset bb(R)^3$ poniamo $U colon.eq pi(K) subset bb(R)^2$] e $p in cal(U)$ un punto di partenza direzionato in $cal(U)$.
// ]
// - Il suo *nodo (o link) banale standard* associato detto $hat(K)(cal(U), p)$ è definito come segue: si prende il primo punto di partenza direzionato e si inizia a percorrere l'ombra planare in quella direzione e si rende ogni incrocio un sopra-incrocio quando ci si passa sopra per la prima volta.
// #figure(
// image(
// "assets/standard-unlink-construction.png",
// width: 12cm,
// ),
// caption: [
// Un link con tre componenti e punti di partenza direzionati $p_1, p_2, p_3$, poniamo $overline(p) = (p_1, p_2, p_3)$. In $hat(L)(cal(U), overline(p))$ sono evidenziati in #box(radius: 3pt, outset: (y: 3pt), inset: (x: 2pt), fill: rgb("#91cdff"))[azzurro] gli incroci \ scambiati rispetto al link $L$.
// ],
// )
// - Sia $K$ un link, $lambda = (lambda_n, dots, lambda_0)$ una sequenza di etichette di incroci allora poniamo
// $
// A_i^lambda = E_lambda_i S_lambda_(i-1) dots.c space S_lambda_0
// #h(2em)
// B_i^lambda = e_lambda_i S_lambda_(i-1) dots.c space S_lambda_0
// $
// notiamo che per $i=0$ abbiamo che $A_0^lambda K = E_lambda_0 K$ e $B_0^lambda K = e_lambda_0 K$ che è l'unico caso degenere per questa definizione.
// - #todo[Operazione compatta $sum_K (lambda)$]
// L'idea per la definizione induttiva è di considerare dato un nodo o un link $K$ il suo nodo o link discendente standard $hat(K)$. Questo induce una sequenza di indici $lambda$ che indichiamo con $0, dots, n$. Se la applichiamo incrementalmente a $K$ otteniamo le seguenti relazioni
// $
// L_K + L_(S_0 K) = z( L_(E_0 K) + L_(e_0 K) ) \
// L_(S_0 K) + L_(S_1 S_0 K) = z( L_(E_0 S_0 K) + L_(e_0 S_0 K) ) \
// dots.v \
// L_(S_(n-1) dots S_0 K) + L_(hat(K)) = z (L_(E_n S_(n-1) dots S_0 K) + L_(e_n S_(n-1) dots S_0 K))
// $
// se ora sommiamo e sottraiamo membro a membro otteniamo la seguente identità
// #context block(width: page.width, grid(
// columns: 3,
// column-gutter: 2em,
// row-gutter: 1em,
// $L_K + L_(S_0 K)$, [], $z( L_(E_0 K) + L_(e_0 K) )$,
// $-(L_(S_0 K) + L_(S_1 S_0 K))$, [], $-z( L_(E_0 S_0 K) + L_(e_0 S_0 K) )$,
// $dots.v$, $=$, $dots.v$,
// $+(-1)^n (L_(S_(n-1) dots S_0 K) + L_(hat(K)))$,
// [],
// $+(-1)^n (z (L_(E_n S_(n-1) dots S_0 K) + L_(e_n S_(n-1) dots S_0 K)))$,
// ))
// notiamo che possiamo cancellare tutti i termini del membro di sinistra che compaiono due volte con segno opposto
// #context block(width: page.width, grid(
// columns: 3,
// column-gutter: 2em,
// row-gutter: 1em,
// $L_K + cancel(L_(S_0 K))$, [], $z( L_(E_0 K) + L_(e_0 K) )$,
// $-(cancel(L_(S_0 K)) + cancel(L_(S_1 S_0 K)))$, [], $-z( L_(E_0 S_0 K) + L_(e_0 S_0 K) )$,
// $dots.v$, $=$, $dots.v$,
// $+(-1)^n (cancel(L_(S_(n-1) dots S_0 K)) + L_(hat(K)))$,
// [],
// $+(-1)^n (z (L_(E_n S_(n-1) dots S_0 K) + L_(e_n S_(n-1) dots S_0 K)))$,
// ))
// Da cui otteniamo un'espressione per $L_K$, inoltre posto $lambda = (0, dots, n)$
// #align(center, block(width: 15cm, [
// #set align(center)
// $
// =>
// L_K & =
// (-1)^(n+1) L_(hat(K)) + z sum_(i=0)^n (-1)^i (
// L_(E_n S_(n-1) dots S_0 K) + L_(e_n S_(n-1) dots S_0 K)
// ) \
// & =
// (-1)^(n+1) L_(hat(K)) + z sum_(i=0)^n (-1)^i (
// L_(A_n^lambda K) + L_(B_n^lambda K)
// )
// $ <kauffman-rec-inductive>
// ]))
// Questo ci dà un'idea su come sia possibile calcolare induttivamente $L_K$ in termini di $L_hat(K)$ e di altri diagrammi con meno incroci del diagramma di partenza.
// Affinché sia sempre possibile raggiungere un nodo in forma di nodo banale standard serve aggiungere la seguente relazione quando $K = K_1 union.sq K_2$ con $K_1$ sovrastante $K_2$.
// $
// L_(K_1 union.sq K_2) = delta L_(K_1) L_(K_2)
// $ <kauffman-rec-overlies>
// sempre con $delta = (a + a^(-1)) slash z - 1$.
// // Closed form algorithm
// #definition(name: [Forma chiusa per $kL_K$])[
// Il polinomio $kL_(K)(a,z)$ è definito induttivamente come segue, abbiamo i seguenti casi:
// ]
// // la definizione è sotto perché gli enumerate non vanno d'accordo con le figure
// 1. Se $K = hat(K)$ è un _nodo banale standard_ allora $kL_K (a, z) colon.eq a^w(K)$
// 2. Se $K_1$ è _sovrastante_ $K_2$, sia $d colon.eq (a + a^(-1)) slash z - 1$ e allora
// $
// kL(K_1 union.sq K_2) colon.eq d kL(K_1) kL(K_2)
// $
// 3. Se $K = K_1 union.sq dotss union.sq K_n$
// - Se un $K_i$ è _sovrastante_ un'altra componente allora applica (ii).
// - Se nessun $K_i$ è _sovrastante_ tutti gli altri, siano $p_1, ..., p_n$ dei punti di partenza direzionati su $K_1, ..., K_n$ e sia $overline(p)_i$ lo stesso punto di partenza direzionato con la direzione opposta di $p_i$ su $K_i$. Sia $lambda(p_i)$ la sequenza di scambi di incroci di $K_i$ con $K - K_i$ tale che $hat(K)(lambda(p_i)) = K_i union.sq (K - K_i)$ tale che $K_i$ sia _sovrastante_ il resto delle componenti. A questo punto possiamo definire $kL_K$ come
// #[
// #set text(size: 11pt)
// $
// kL_K (a, z) colon.eq
// 1 / (2n) [
// sum_(i=1)^n sum_(q=p_i, overline(p)_i) ((-1)^(|lambda(q)|+1) d kL_(K_i) kL_(K - K_i) + z sum_K (lambda(q)))
// ]
// $
// ]
// - Se $K$ è una singola componente allora sia $p$ un punto di partenza direzionato su $K$ e $overline(p)$ quello con direzione opposta. Sia $lambda(p)$ la sequenza di scambi di incroci che lo porta al nodo banale standard $hat(K)$ e definiamo
// #[
// #set text(size: 11pt)
// $
// kL_K (a, z) colon.eq
// 1 / 2 [
// sum_(q = p, overline(p)) ((-1)^(|lambda(q)|+1) kL(hat(K)(lambda(q))) + z sum_K (lambda(q)))
// ]
// $
// ]