#import "theme.typ": *
#import "prelude.typ": *
#import "skein.typ": *

#import "@preview/cetz:0.3.4"
#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))

#observation[
  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
] <obs-curls-pass-through>

#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.

#observation[
  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 abbiamo la seguente proprietà di cancellazione detto _trucco di Whitney_.
] <obs-whitney-trick>

#figure(image("assets/whitney-trick.png", width: 16cm))

In particolare l'isotopia regolare preserva il framing del nodo. Per quanto riguarda l'isotopia regolare su $bb(S)^2$, questa è equivalente all'isotopia di _link con framing_ #footnote[Nel caso di nodi come embedding da $bb(S)^1 -> bb(S)^3$, un *nodo con framing* è un embedding di $bb(D)^2 times bb(S)^1 -> bb(S)^3$. Il *framing* del nodo è l'immagine di $I times bb(S)^1 -> bb(S)^3$. Un nodo con framing può essere visto come una banda embedded dove il framing è il numero di twist con segno.].

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$.

// C'è un'osservazione importante da fare quando parliamo di isotopia regolare. Quest'ultima è definita solo quando si parla di diagrammi nel piano o su $bb(S)^2$. Nel caso dell'isotopia regolare su $bb(S)^2$ questa è equivalente all'isotopia di _link con framing_ #footnote[Nel caso di nodi come embedding da $bb(S)^1 -> bb(S)^3$, un *nodo con framing* è un embedding di $bb(D)^2 times bb(S)^1 -> bb(S)^3$. Il *framing* del nodo è l'immagine di $I times bb(S)^1 -> bb(S)^3$. Un nodo con framing può essere visto come una banda embedded dove il framing è il numero di twist con segno.]. In generale l'isotopia regolare preserva il framing del nodo.

// Un'altra osservazione importante che possiamo fare quando si parla di isotopia regolare è che quest'ultima è equivalente all'isotopia di _link con framing_ #footnote[Nel caso di nodi come embedding da $bb(S)^1 -> bb(S)^3$, un *nodo con framing* è un embedding di $bb(D)^2 times bb(S)^1 -> bb(S)^3$. Il *framing* del nodo è l'immagine di $I times bb(S)^1 -> bb(S)^3$. Un nodo con framing può essere visto come una banda embedded dove il framing è il numero di twist con segno.]. In particolare l'isotopia regolare preserva il framing del nodo.

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.

// Citiamo che ci sono lavori riguardo il dare una definizione "intrinseca" del polinomio di Kauffman senza passare per i diagrammi.

// 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.

== Diagrammi in forma discendente

#definition[
  Sia $K$ un diagramma di un nodo, $cal(U)$ la sua ombra planare#footnote[Ovvero per $K subset bb(R)^3$ poniamo $cal(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 banale standard* (o in _forma discendente_) associato a $K$ detto $hat(K)(cal(U), p)$ è definito come segue: si prende il 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.

  Questa definizione si estende anche a diagrammi di link prendendo un insieme di punti base ordinati come mostrato in figura. In particolare questo induce un ordinamento dall'alto verso il basso delle componenti. #h(1fr)

  #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$, con $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$.
    ],
  )
]

#fact(numbered: true)[
  Un nodo in forma discendente è equivalente ad un nodo banale a meno di isotopia ambiente.
] <std-unknot-trivial-knot>

Vediamo ora una proprietà che ci caratterizza i nodi in forma discendente.

#lemma[
  Sia $K$ un diagramma di un nodo in forma discendente, allora o è composto interamente da riccioli o ammette una sequenza di mosse di tipo II e III che portano al diagramma di un nodo formato solo da riccioli.
] <std-unknot-to-curls>

#proof[
  Per il @std-unknot-trivial-knot, un nodo banale standard è equivalente ad un nodo banale a meno di isotopia ambiente. Quindi possiamo applicare il teorema di Reidemeister ed ottenere una successione di mosse e diagrammi tale che

  $
    K = D_0 stretch(arrow)^(m_1) dots.c stretch(arrow)^(m_n) D_n = #skein.unit-medium
  $

  con $m_i$ mosse di tipo I, II, III. Ora l'idea è modificare questa successione di mosse in modo da ottenere una nuova successione composta solo da mosse II e III che termina con un diagramma composto solo da riccioli.

  Applichiamo induttivamente le seguenti modifiche ad ogni mossa $m_i$ nella sequenza, tenendo traccia di cosa succede man mano agli incroci:

  - Se abbiamo una mossa di tipo I che rimuove un ricciolo, allora scartiamo la mossa in modo da conservare il ricciolo. In particolare, in tutte le mosse successive della sequenza originale, sicuramente non compare questo incrocio poiché questa mossa lo cancellava. Quindi questo sarà uno di quei riccioli che rimarrà nel nuovo diagramma finale.

  - Se abbiamo una mossa di tipo I che aggiunge un ricciolo, allora possiamo introdurlo sfruttando l'@obs-whitney-trick ovvero il trucco di Whitney. Possiamo creare due riccioli utilizzando solo mosse II e III in modo tale che uno dei due sia orientato allo stesso modo di quello introdotto dal ricciolo della sequenza originale, l'altro sarà in più ma possiamo ignorarlo come nel caso precedente.

    #figure(image("assets/modified-curl-add-before.png", width: 6.5cm))
    #figure(image("assets/modified-curl-add-after.png", width: 13cm))

    Abbiamo aggiunto così due incroci uno dei quali corrisponde ad uno della vecchia sequenza che verrà cancellato dalle mosse originali mentre l'altro è uno di quei riccioli che rimarranno nel diagramma finale.

  - Se abbiamo una mossa di tipo II o III, allora questa mossa interesserà una certa regione del diagramma. Per prima cosa utilizziamo l'@obs-curls-pass-through per spostare tutti quei riccioli che si trovano nella regione in questione al di fuori di essa e poi applichiamo la mossa originale.

    #figure(image("assets/modified-r2-before.png", width: 6.5cm))
    #figure(
      image("assets/modified-r2-after.png", width: 8.5cm),
      caption: [Esempio per la mossa II che rimuove un incrocio],
    )

    In questo caso abbiamo solo spostato dei riccioli ed applicato la stessa mossa della sequenza originale quindi non abbiamo introdotto incroci in più rispetto alla sequenza originale.

  Otteniamo così una nuova successione di diagrammi $D'_i$ e di mosse $m_i^*$ solo di tipo II o III:

  $
    K = D'_0 stretch(arrow)^(m_1^*) dots.c stretch(arrow)^(m_n^*) D'_n
  $

  Vorremo ora vedere che il diagramma $D'_n$ è composto solo da riccioli. Questo segue dal fatto che nella successione originale tutti gli incroci si cancellavano, ciò accade anche nella nuova successione tranne per gli incroci che abbiamo aggiunto modificando le mosse di tipo I, ma tutti questi sono dei riccioli quindi $D'_n$ sarà composto solo da riccioli.
]

*Corollario.* Un'altro modo di vedere il lemma precedente è che il diagramma di un nodo in forma discendente è equivalente a meno di isotopia regolare ad uno composto solo da riccioli.

== Writhe

Vediamo ora un primo invariante di isotopia regolare per link orientati, per prima cosa definiamo il segno di un incrocio.

#definition[
  Dato un incrocio del diagramma 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$ è il diagramma di 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 diagrammi di link con l'accortezza di invertire l'orientazione di tutte le componenti (o anche solamente tutte quelle che appartengono ad una sola componente connessa della sua ombra planare).

#proposition[
  Il writhe è un invariante di isotopia regolare, ovvero se $K_1, K_2$ sono diagrammi di link 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 per diagrammi che si comporta "bene" rispetto alle mosse di tipo I, possiamo costruire un invariante di isotopia ambiente per link aggiungendo un fattore di correzione dato dal writhe.

#proposition[
  Sia $R$ un anello, $a in R$ un elemento invertibile e $K$ un link orientato, $scr(D)$ l'insieme dei diagrammi di link orientatati, 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)$.
]

= Il Polinomio di Kauffman

Ora introdurremo il polinomio di Kauffman @Kauffman1990-qe detto $L_K$, che vedremo essere un invariante di isotopia regolare. Questo polinomio è definito in modo implicito da assiomi che utilizzano le relazioni skein, queste relazioni possono essere utilizzate direttamente per calcolare il polinomio di Kauffman per un certo diagramma in modo implicito.

Vedremo come questi assiomi definiscono un unico invariante di isotopia regolare ben definito e come $kL_K (a, z)$ può essere generalizzato ad un invariante di isotopia ambiente $F_K (a, z)$.

== Definizione assiomatica

*Notazione.* Per rendere alcuni calcoli più leggibili, in questo capitolo utilizzeremo in modo intercambiabile le notazioni $L_K, L[K]$ per indicare il polinomio di Kauffman associato ad un certo diagramma.

#definition(
  numbered: true,
  name: [Assiomi di $L_K$],
)[
  Sia $K$ un diagramma di un link non orientato, e sia $bb(Z)[a, a^(-1), z, z^(-1)]$ l'anello dei polinomi di Laurent sugli interi nelle variabili $a$ e $z$.

  Allora $L_K in bb(Z)[a, a^(-1), z, z^(-1)]$, e verifica i seguenti assiomi:

  1. Se $K$, $K'$ sono equivalenti a meno di isotopia regolare, allora $L_K = L_K'$.

  2. Valgono le seguenti relazioni skein per quaterne di diagrammi identici ovunque tranne nella parte evidenziata:

    // #set enum(numbering: n => [$K_#n$)])
    #set enum(numbering: "a)")

    1. $L[#skein.over] + L[#skein.under] = z (L[#skein.h] + L[#skein.v])$

    2. $L[#skein.unit] = 1$

    3. $L[#skein.over-twist] = a L[#skein.strand]$

    4. $L[#skein.under-twist] = a^(-1) L[#skein.strand]$
] <kauffman-poly-def>

// Queste sono le cosiddette relazioni skein del polinomio di Kauffman, come in precedenza ogni equazione sta a significare che ci sono dei diagrammi identici ovunque tranne nella parte evidenziata.

Al momento non sappiamo se il polinomio $L_K$ sia ben definito, ovvero se esiste un polinomio $L_K$ che verifica gli assiomi e non sappiamo neanche se sia unico.

In questo lavoro vedremo che $L_K$ esiste ed è unico e che è un invariante di isotopia regolare e può essere generalizzato ad invariante di isotopia ambiente come segue

#definition[
  Definiamo $F_K in bb(Z)[a, a^(-1), z, z^(-1)]$ per diagrammi di link 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 osservando che $a$ è invertibile in $bb(Z)[a, a^(-1), z, z^(-1)]$.
]

== Alcune proprietà del polinomio di Kauffman

#lemma[
  Sia $K$ il diagramma di un link orientato e $m(K)$ il suo mirror. Allora abbiamo le seguenti relazioni

  $
    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 $1 slash a$ ma il resto della valutazione rimane identica.

  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 i diagrammi in cui effettuare la valutazione attraverso le relazioni skein degli assiomi.

Ad esempio proviamo a ricavare il valore di $delta colon.eq L[#skein.unit#skein.unit]$

#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 più componenti disgiunte (ovvero $L[K_1 union.sq K_2] = delta L[K_1] L[K_2]$).

Possiamo anche trovare il valore 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 ad esempio anche 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$.
]

#figure(
  image("assets/split-and-connected-sum.png", width: 10cm),
  caption: [Esempio di diagrammi _split_ ed in _somma connessa_],
)

In particolare abbiamo le seguenti identità per i polinomi $L_K$ e $F_K$ in relazione ai diagrammi _split_ e in _somma connessa_. La dimostrazione è omessa ma si fa procedendo per induzione sul numero di incroci.

#fact[
  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.
]

== Considerazioni preliminari

Prima di descrivere la definizione induttiva diamo alcune definizioni per certe manipolazioni dei diagrammi di nodi e link.

#definition[
  Sia $K$ un diagramma di un nodo, $cal(U)$ la sua ombra planare e $p in cal(U)$ un punto di partenza direzionato in $cal(U)$.
]

// - Ricordiamo la definizione di *nodo banale standard* (o _in forma discendente_) associato a $K$ detto $hat(K)(cal(U), p)$ è definito come segue: si prende il 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.

// Questa definizione si estende anche a diagrammi di link prendendo un insieme di punti base ordinati come mostrato in figura. In particolare questo induce un ordinamento dall'alto verso il basso delle componenti.

// #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$, con $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$.
//   ],
// )

- Definiamo ora le seguenti mosse su un diagramma $K$, diamo un'etichetta ad ogni incrocio e sia $i$ l'etichetta di un incrocio del diagramma

  #{
    set align(center)

    grid(
      //
      columns: 4,
      column-gutter: 2em,
      row-gutter: 1em,
      {
        skein.over
        place(center + top, dy: -0.25em, {
          set text(footnote-size)
          $i$
        })
      },
      {
        skein.under
        place(center + top, dy: -0.25em, {
          set text(footnote-size)
          $i$
        })
      },
      skein.h,
      skein.v,
      $K$,
      $S_i K$,
      $E_i K$,
      $e_i K$,
    )
  }

  in questo caso $S_i K$ scambia l'informazione sopra/sotto dell'incrocio, mentre $E_i K$ e $e_i K$ applicano gli *splice* orizzontali e verticali a quell'incrocio.

Sia $lambda = (lambda_n, dots, lambda_0)$ una sequenza di etichette di incroci di $K$.

- Definiamo le seguenti notazioni compatte per una sequenza di scambi seguita da uno splice finale

  $
    A_i^lambda colon.eq E_lambda_i S_lambda_(i-1) dots.c space S_lambda_0
    #h(2em)
    B_i^lambda colon.eq e_lambda_i S_lambda_(i-1) dots.c space S_lambda_0
  $

  notiamo che per $i=0$ abbiamo $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.

- Poniamo $hat(K)(lambda) = S_lambda_n dots.c space S_lambda_0 K$ e definiamo le notazioni compatte per le seguenti somme alternate

  $
    sum_K (lambda)   & colon.eq sum_(i=0)^n (-1)^i (L[A_i^lambda K] + L[B_i^lambda K]) \

    Omega_K (lambda) & colon.eq (-1)^(abs(lambda) + 1) L[hat(K)(lambda)] + z sum_K (lambda)
  $

  dove $abs(lambda) colon.eq n$.

*Osservazione.* Se consideriamo un diagramma di link $K$, $hat(K)(cal(U), p)$ ci induce una sequenza di scambi $lambda$ su $K$ tale che $hat(K)(cal(U), p) = S_lambda_n dots.c space S_lambda_0 K$.

#observation[
  Se abbiamo una sequenza di operazioni $S_i$, $E_i$, $e_i$ su incroci diversi queste operazioni commutano tra loro. Questo segue dal fatto che queste operazioni fanno solo modifiche locali al diagramma.
] <observation-seq-ops-commute>

#definition[
  Dati $K_1, K_2$ diagrammi di link, diciamo che $K_1$ *sovrasta* $K_2$ se ogni incrocio in $K_1 inter K_2$ è un sopra-incrocio.
]

// #diff-add[
Prima di procedere consideriamo anche una generalizzazione dei diagrammi in forma discendente che utilizza le cosiddette funzioni di slacciamento. Queste possono essere pensate come funzioni che ci danno una "altezza" del diagramma in ogni punto.

#definition[
  Dato $D$ il diagramma di un link $L$, una *funzione di slacciamento* per $D$ è una mappa $h$ da $D$ a valori in $RR$, che assume due valori in corrispondenza degli incroci e che corrisponde a una funzione continua $h : L -> RR$. Tale mappa ha le seguenti proprietà:

  1. Se una componente $C_i$ sovrasta una componente $C_j$ allora $forall x_i in C_i$ e $forall x_j in C_j$, $h(C_i) > h(C_j)$.

  2. Su ogni componente $C_i$ esistono dei punti $b_i, t_i in C_i$ tali che la funzione $h$ è strettamente monotona crescente da $b_i$ a $t_i$ in entrambe le direzioni attorno a $C_i$.

  3. In corrispondenza di un incrocio, $h$ assume due valori $h_+, h_-$ rispettivamente nel caso in cui passi da sopra o da sotto e tali che $h_+ > h_-$.
]
// ]

// #align(center, line(stroke: 0.5pt, length: 50%))

// Enunciamo ora un lemma che utilizzeremo più volte in seguito.

#align(center, line(stroke: 0.5pt, length: 50%))

// che nella successione originale man mano rimuoviamo tutti gli incroci. Tutti gli incroci si cancellano anche nella nuova successione tranne per quelli che abbiamo aggiunto modificando le mosse di tipo I, ma tutti questi sono dei riccioli quindi $D_n^*$ sarà composto solo da riccioli.

Vediamo ora l'idea che ci permette di trovare una formula chiusa per il polinomio $L_K$ che utilizzeremo nella dimostrazione della buona definizione. Per prima cosa analizziamo quello che sarà il caso base della nostra definizione induttiva, ovvero quando abbiamo un nodo banale standard.

Utilizzando il lemma precedente, possiamo calcolare esplicitamente $L_(hat(K)(cal(U), p))$ usando solo gli assiomi #link(<kauffman-poly-def>)[ii.b), ii.c), ii.d)] ovvero quelli per $#skein.over-twist-medium$, $#skein.under-twist-medium$ e $#skein.unit-medium$. Segue facilmente per induzione che $L_hat(K) (a, z) = a^w(K)$.

Dato un diagramma di un nodo $K$, l'idea per la costruzione della definizione ricorsiva è di considerare il suo nodo o link discendente standard $hat(K)(cal(U), p)$ rispetto ad un punto base $p$.

Questo induce una sequenza di indici $lambda$ che indichiamo con $lambda = (0, dots, n)$. Se applichiamo incrementalmente gli scambi a $K$, ovvero consideriamo $S_i dotss S_0 K$ al variare di $i$, ed applichiamo la relazione skein #link(<kauffman-poly-def>)[ii.a)] a questi diagrammi, 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_1 S_0 K] + L[e_1 S_0 K] ) \
                                                                                       & space dots.v \
  L[S_(n-1) dotss S_0 K] + L lr([underbrace(S_n dotss S_0 K, hat(K))], size: #1.125em) &= z (L[E_n S_(n-1) dotss S_0 K] + L[e_n S_(n-1) dotss S_0 K])
$

Ora, sommando e sottraendo membro a membro queste equazioni otteniamo la seguente identità

#context {
  set align(center)

  block(width: page.width, grid(
    columns: 3,
    column-gutter: 1em,
    row-gutter: 1em,
    align: (right, center, left),
    $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_1 S_0 K] + L[e_1 S_0 K] )$,
    $dots.v space$,
    $=$,
    $space dots.v$,
    $+(-1)^n (L[S_(n-1) dotss S_0 K] + L[hat(K)])$,
    [],
    $ +(-1)^n (z (L[E_n S_(n-1) dotss S_0 K] + L[e_n S_(n-1) dotss S_0 K]))$,
  ))
}

notiamo che possiamo cancellare tutti i termini del membro di sinistra che compaiono due volte con segno opposto

#context {
  set align(center)

  block(width: page.width, grid(
    columns: 3,
    column-gutter: 1em,
    row-gutter: 1em,
    align: (right, center, left),
    $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_1 S_0 K] + L[e_1 S_0 K] )$,
    $dots.v space$,
    $=$,
    $space dots.v$,
    $+(-1)^n (cancel(L[S_(n-1) dotss S_0 K]) + L[hat(K)])$,
    [],
    $+(-1)^n (z (L[E_n S_(n-1) dotss S_0 K] + L[e_n S_(n-1) dotss S_0 K]))$,
  ))
}

Da cui otteniamo un'espressione ricorsiva per $L_K$:

#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_i S_(i-1) dotss S_0 K] + L[e_i S_(i-1) dotss S_0 K]
    ) \
        & =
    (-1)^(n+1) L_(hat(K)) + z sum_(i=0)^n (-1)^i (
    L[A_i^lambda K] + L[B_i^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 o più "vicini" a $hat(K)$.

Affinché l'induzione possa sempre raggiungere il caso base di un nodo in forma discendente serve anche aggiungere la relazione

$
  L_(K_1 union.sq K_2) = delta L_(K_1) L_(K_2)
$ <kauffman-rec-overlies>

per $K = K_1 union.sq K_2$ con $K_1$ sovrastante#footnote[Questo include anche il caso di componenti disgiunte in quanto sono sovrastanti a vuoto a vicenda.] $K_2$.

sempre con $delta = (a + a^(-1)) slash z - 1$.

== La definizione induttiva

#definition(numbered: true, name: [Formula chiusa per $L_K$])[
  Il polinomio $kL_(K)(a,z)$ è definito induttivamente come segue, abbiamo i seguenti casi:
] <kauffman-rec-inductive-def>

// la definizione è sotto perché gli enumerate non vanno d'accordo con le figure

1. #marker[i)] <kauffman-rec-i> Se $K = hat(K)(cal(U), p)$ è un _nodo banale standard_ per un qualche $p$ allora

  $
    kL_K (a, z) colon.eq a^w(K)
  $

2. Se $K = K_1 union K_2$ con $K_1$ diagramma di un nodo e $K_2$ diagramma di link e $K_1$ _sovrasta_ $K_2$, allora poniamo

  $
    kL(K_1 union K_2) colon.eq delta kL(K_1) kL(K_2)
  $

  con $delta colon.eq (a + a^(-1)) slash z - 1$.

3. Se $K = K_1 union dotss union K_n$ con $K_i$ diagrammi di nodi e tale che nessun $K_i$ sovrasta tutti gli altri allora:

  #[
    #set enum(numbering: "a)")

    1. #marker([iii.a)]) <kauffman-rec-multi-component>

      Se $n > 1$ allora siano $p_1, ..., p_n$ dei punti di partenza direzionati su $K_1, ..., K_n$ e $overline(p)_i$ lo stesso punto di partenza $p_i$ con la direzione opposta su $K_i$. Sia $lambda(p_i)$ la sequenza di scambi di incroci tra $K_i$ e $K - K_i$ tale che $hat(K)(lambda(p_i)) = K_i union (K - K_i)$, con $K_i$ _sovrastante_ al resto delle componenti (chiameremo questa _sequenza di rialzo_). A questo punto possiamo definire $L_K$ come

      #[
        #set text(size: 11pt)
        $
          L_K (a, z) colon.eq
          1 / (2n)
          sum_(i=1)^n sum_(q=p_i, overline(p)_i)
          ((-1)^(abs(lambda(q))+1) delta L_(K_i) L_(K - K_i) + z sum_K (lambda(q)))
        $
      ]

    2. #marker([iii.b)]) <kauffman-rec-single-component> Se $n=1$ 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)

        $
          L_K (a, z) colon.eq
          1 / 2
          sum_(q = p, overline(p))
          ((-1)^(abs(lambda(q))+1) L_(hat(K)(q)) + z sum_K (lambda(q)))
        $
      ]
  ]

== Dimostrazione buona definizione

// Per prima cosa osserviamo che, in quanto in ogni termine della definizione induttiva per $L_K$, quando questa dipende dalla scelta di un punto base sono presenti i termini per entrambe le direzioni; quindi ci basta dimostrare induttivamente che le definizioni non dipendono dalla scelta di punto base.

Per prima cosa osserviamo che in ogni termine della definizione induttiva per $L_K$, quando questa dipende dalla scelta di un punto base, compaiono i termini per entrambe le direzioni. Dunque ci basta dimostrare induttivamente che le definizioni non dipendono dalla scelta di punto base.

Nel corso della dimostrazione tutti gli argomenti per induzione si baseranno sul numero di incroci. Ometteremo i casi base, ovvero i controlli per diagrammi con pochi incroci che fanno partire l'induzione in quanto sono tutte semplici verifiche.

#definition(
  numbered: true,
  name: [L'ipotesi induttiva],
)[
  L'ipotesi induttiva che useremo nel corso della dimostrazione è la seguente:

  #set enum(numbering: "a)")

  Per ogni diagramma di link $K$ con $< N$ incroci e per diagrammi contenenti $#skein.over-twist-medium$ con meno di $N$ incroci:

  1. $L_K$ è ben definito (non dipende dalla scelta di punto base).

  2. $L_K$ verifica gli assiomi:

    - $L[K] + L[S_i K] = z ( L[e_i K] + L[E_i K] )$

    - $L[#skein.over-twist-medium] = a L [#skein.strand-medium]$

    - $L[#skein.under-twist-medium] = a^(-1) L [#skein.strand-medium]$

  3. #marker([c)]) <kauffman-inductive-hyp-c> $L_K$ è invariante per mosse di tipo II e III che non aumentano il numero di incroci.

  // 4. #diff-add[#marker([d)]) <kauffman-inductive-hyp-d> Se $K$ ammette una _funzione di slacciamento_ allora $L_K = a^w(K)$]
  4. #marker([d)]) <kauffman-inductive-hyp-d> Se $K$ ammette una _funzione di slacciamento_ allora $L_K = a^w(K)$
] <kauffman-inductive-hyp-def>

#lemma[
  Sia $lambda = (lambda_n, dots, lambda_1, lambda_0)$ una scelta di etichette per un sottoinsieme di incroci di un diagramma di link $K$. Sia $mu = (lambda_0, lambda_n, dots, lambda_1)$ la stessa successione ma ruotata di $1$ in avanti. Allora

  $
    sum_K (lambda) = sum_K (mu)
  $
] <lemma-sum-switches-rotation>

#proof[
  Per prima cosa rinominiamo le etichette $lambda_n, dots, lambda_0$ come $n, dots, 0$ per semplificare la notazione, dunque

  $
    lambda = (n, n-1, dots, 1, 0)
    #h(2em)
    mu = (0, n, n-1, dots, 1)
  $

  ricordiamo ora le definizioni

  $
    sum_K (lambda) =& sum_(i=0)^n (-1) ( L[A_i^lambda K] + L[B_i^lambda K]) \
    =               & (L[E_0 K] + L[e_0 K]) + \
                    & - ( L[E_1 S_0 K] + L[e_1 S_0 K]) + \
                    & space dots.v \
                    & + (-1)^n ( L[E_n S_(n-1) dotss S_0 K] + L[e_n S_(n-1) dotss S_0 K] )
  $
  $
    sum_K (mu) = & sum_(i=0)^n (-1) (L[A_i^mu K] + L[B_i^mu K]) \
    =            & (L[E_1 K] + L[e_1 K]) + \
                 & - ( L[E_2 S_1 K] + L[e_2 S_1 K]) + \
                 & space dots.v \
                 & + (-1)^n ( L[E_0 S_n dotss S_1 K] + L[e_0 S_n dotss S_1 K] )
  $

  Calcoliamo ora $sum_K (lambda) - sum_K (mu)$, l'idea è di fattorizzare per "righe" i termini:

  #{
    set text(size: small-size)

    $
        & & (L[E_0 K] + L[e_0 K]) + #h(2em)                                              & & & \
        & & - ( L[E_1 S_0 K] + L[e_1 S_0 K]) + #h(2em)                                   & & & (L[E_1 K] + L[e_1 K]) + \
        & & + ( L[E_2 S_1 S_0 K] + L[e_2 S_1 S_0 K]) + #h(2em)                           & & & - ( L[E_2 S_1 K] + L[e_2 S_1 K]) + \
        & & space dots.v space #h(2em)                                                   & & & + ( L[E_3 S_2 S_1 K] + L[e_3 S_2 S_1 K]) + \
        & & + (-1)^n ( L[E_n S_(n-1) dotss S_0 K] + L[e_n S_(n-1) dotss S_0 K] ) #h(2em) & & & space dots.v \
        & & #h(2em)                                                                      & & & + (-1)^n ( L[E_0 S_n dotss S_1 K] + L[e_0 S_n dotss S_1 K] ) \
    $
  }

  A questo punto per come sono allineate le somme alternate possiamo raggruppare ed otteniamo quanto segue:

  $
    sum_K (lambda) - sum_K (mu) = + (   & L[E_0 K] + L[e_0 K]) + \
    - (   & L[E_1 S_0 K] + L[e_1 S_0 K] + L[E_1 K] + L[e_1 K]) + \
    space dots.v \
    +(-1)^n (   & L[E_n S_(n-1) dotss S_1 S_0 K ] + L[e_n S_(n-1) dotss S_1 S_0 K ] + \
      & + L[E_n S_(n-1) dotss S_1 K ] + L[e_n S_(n-1) dotss S_1 K] ) + \
    + (-1)^(n+1) (   & L[E_0 S_n dotss S_1 K] + L[e_0 S_n dotss S_1 K] )
  $

  Permutando i termini di tutte le righe centrali possiamo ottenere una somma di termini della forma $L[blank K] + L[blank S_0 K]$:

  $
    sum_K (lambda) - sum_K (mu) =
    + (   & L[E_0 K] + L[e_0 K]) + \
    - (   & L[E_1 K] + L[E_1 S_0 K] + L[e_1 K] + L[e_1 S_0 K] ) + \
    space dots.v \
    (-1)^n (   & L[E_n S_(n-1) dotss S_1 K ] + L[E_n S_(n-1) dotss S_1 S_0 K ] + \
      & + L[e_n S_(n-1) dotss S_1 K ] + L[e_n S_(n-1) dotss S_1 S_0 K ] ) \
    + (-1)^(n+1) (   & L[E_0 S_n dotss S_1 K] + L[e_0 S_n dotss S_1 K] )
  $

  Ora ricordiamo l'@observation-seq-ops-commute, per cui operazioni su indici diversi commutano tra loro, quindi possiamo spostare l'operazione $S_0$ in modo che sia applicata per ultima ed otteniamo:

  $
    sum_K (lambda) - sum_K (mu) =
    + (   & L[E_0 K] + L[e_0 K]) + \
    - (   & L[E_1 K] + L[S_0 E_1 K] + L[e_1 K] + L[S_0 e_1 K] ) + \
    space dots.v \
    (-1)^n (   & L[E_n S_(n-1) dotss S_1 K ] + L[S_0 E_n S_(n-1) dotss S_1 K ] + \
      & + L[e_n S_(n-1) dotss S_1 K ] + L[S_0 e_n S_(n-1) dotss S_1 K ] ) \
    + (-1)^(n+1) (   & L[E_0 S_n dotss S_1 K] + L[e_0 S_n dotss S_1 K] )
  $

  A questo punto notiamo che tutti i diagrammi $E_i S_(i-1) dotss S_1 K$ e $e_i S_(i-1) dotss S_1 K$ per $i = 1, dots, n$ hanno applicato uno splice, quindi hanno strettamente meno incroci di $K$. Possiamo dunque applicare l'ipotesi induttiva e sostituire tutti i termini nella forma:

  $
    L[blank] + L[S_0 blank] = z (L [E_0 blank] + L[e_0 blank])
  $

  $
    => sum_K (lambda) - sum_K (mu) =
    + (   & L[E_0 K] + L[e_0 K]) + \
    - z(   & L[E_0 E_1 K] + L[e_0 E_1 K] + L[E_0 e_1 K] + L[e_0 e_1 K] ) + \
    space dots.v \
    (-1)^n z (   & L[E_0 E_n S_(n-1) dotss S_1 K ] + L[e_0 E_n S_(n-1) dotss S_1 K ] + \
      & + L[E_0 e_n S_(n-1) dotss S_1 K ] + L[e_0 e_n S_(n-1) dotss S_1 K ] ) \
    + (-1)^(n+1) (   & L[E_0 S_n dotss S_1 K] + L[e_0 S_n dotss S_1 K] )
  $

  Riordiniamo ora le operazioni in modo da avere $E_0$ e $e_0$ applicate per prime nelle sequenze di operazioni:

  #let hl(c: color.mix((white, 100%), (black, 10%)), content) = box(radius: 2pt, outset: (y: 3pt, x: 1pt), fill: c, content)

  $
    = + (   & L[#hl($E_0 K$)] + L[#hl($e_0 K$)]) + \
    - z(   & L[ E_1 #hl($E_0 K$)] + L[ E_1 #hl($e_0 K$)] + L[ e_1 #hl($E_0 K$)] + L[ e_1 #hl($e_0 K$)] ) + \
    space dots.v \
    (-1)^n z (   & L[ E_n S_(n-1) dotss S_1 #hl($E_0 K$) ] + L[ E_n S_(n-1) dotss S_1 #hl($e_0 K$) ] + \
      & + L[ e_n S_(n-1) dotss S_1 #hl($E_0 K$) ] + L[ e_n S_(n-1) dotss S_1 #hl($e_0 K$) ] ) \
    + (-1)^(n+1) (   & L[ S_n dotss S_1 #hl($E_0 K$)] + L[ S_n dotss S_1 #hl($e_0 K$)] )
  $

  Ora distribuiamo e riorganizziamo tutti i termini in modo da avere prima quelli che riguardano $E_0 K$ e poi tutti quelli per $e_0 K$ ed otteniamo quanto segue:

  $
    = L[ #hl($E_0 K$)] &+ (-1)^(n+1) L[S_n dotss S_1 #hl($E_0 K$)] + \
    - z lr(size: #1.5em, ( (   & L[E_1 #hl($E_0 K$)] + L[e_1 #hl($E_0 K$)])+ \
    - (   & L[E_2 S_1 #hl($E_0 K$)] + L[e_2 S_1 #hl($E_0 K$)]) +\
      & space dots.v \
    +( -1)^n (   & L[E_n S_(n-1) dots S_1 #hl($E_0 K$)] + L[e_n S_(n-1) dots S_1 #hl($E_0 K$)]))) \
    + L[ #hl($e_0 K$)] &+ (-1)^(n+1) L[S_n dotss S_1 #hl($e_0 K$)] + \
    - z lr(size: #1.5em, ( (   & L[E_1 #hl($e_0 K$)] + L[e_1 #hl($e_0 K$)])+ \
    - (   & L[E_2 S_1 #hl($e_0 K$)] + L[e_2 S_1 #hl($e_0 K$)]) +\
      & space dots.v \
    +( -1)^n (   & L[E_n S_(n-1) dots S_1 #hl($e_0 K$)] + L[e_n S_(n-1) dots S_1 #hl($e_0 K$)])))
  $

  Infine osserviamo che i termini dentro le parentesi in $z(#blank)$ sono proprio somme della forma $sum_(E_0 K) (gamma)$ e $sum_(e_0 K) (gamma)$ per $gamma = (n, dots, 1)$, dunque possiamo riscrivere l'espressione precedente come

  $
    = L[ E_0 K] &+ (-1)^(n+1) L[S_n dotss S_1 E_0 K] - z sum_(E_0 K) (gamma) \
    + L[ e_0 K] &+ (-1)^(n+1) L[S_n dotss S_1 e_0 K] - z sum_(e_0 K) (gamma)
  $

  Ora possiamo applicare l'ipotesi induttiva in quanto tutti i diagrammi hanno strettamente meno di $N$ incroci. Applicando l'ipotesi induttiva per $gamma$ e osservando che con la convenzione di Kauffman $abs(gamma) + 1 = (n - 1) + 1 = n$, otteniamo che

  $
    Omega_K(gamma)
                         &= (-1)^(abs(gamma) + 1) L_(hat(K) (gamma)) + z sum_K (gamma) \
                         &= (-1)^n L_(hat(K) (gamma)) + z sum_K (gamma) \
    => -Omega_K(gamma) &= (-1)^(n+1) L_(hat(K) (gamma)) - z sum_K (gamma)
  $

  infine sostituendo

  $
    = L[E_0 K] - Omega_(E_0 K) (gamma) + L[e_0 K] - Omega_(e_0 K) (gamma) = 0 + 0 = 0
  $

  E questo conclude la dimostrazione.
]

*Corollario.* Nella definizione della forma chiusa di $L_K$, il caso @kauffman-rec-multi-component non dipende dalla scelta del punto base.

#proof[
  Rivediamo l'espressione in questione, siano $p_i$ dei punti base direzionati sulle componenti di $K$

  $
    L_K (a, z) colon.eq
    1 / (2n) [
    sum_(i=1)^n sum_(q=p_i, overline(p)_i)
    ((-1)^(abs(lambda(q))+1) delta kL_(K_i) kL_(K - K_i) + z sum_K (lambda(q)))
    ]
  $

  le espressioni che dipendono dai punti base sono $(-1)^(abs(lambda(q)) + 1)$ e $sum_K (lambda(q))$. Se applichiamo una $1$-rotazione alle sequenze di rialzo $lambda(q)$ le lunghezze non cambiano ed usando il @lemma-sum-switches-rotation anche le somme $sum_K (lambda(q)))$ sono invarianti per $1$-rotazioni.

  Chiaramente l'invarianza si estende a tutte le permutazioni cicliche e questo dimostra che il caso @kauffman-rec-multi-component per più componenti della @kauffman-rec-inductive-def[Definizione] non dipende dalla scelta del punto base.
]

#align(center, line(stroke: 0.5pt, length: 50%))

Ora rimane da verificare l'invarianza per scelta di punto base per il caso @kauffman-rec-single-component ovvero quando $K$ è formato da una sola componente, ricordiamo l'espressione:

$
  L_K (a, z) colon.eq
  1 / 2
  sum_(q = p, overline(p))
  ((-1)^(abs(lambda(q))+1) L[hat(K)(lambda(q))] + z sum_K (lambda(q)))
$

La dimostrazione procede sempre mostrando l'indipendenza dalla scelta di punto base. Vediamo prima alcune proprietà dei nodi banali standard:

// Per come abbiamo definito $L_K$ abbiamo che, dato $p$ e dati $i$ e $j$ indici dei primi incroci nelle sequenze di scambi rispetto a $p$ e $overline(p)$:

// $
//   L[K] = 1/2 [
//       & z ( L[E_(i) K] + L[e_(i) K]) - S_(i) K + \
//   + & z ( L[E_j K] + L[e_j K]) - S_j K
//   ]
// $

// Questo segue semplicemente sommando le espressioni per $L[K]$ e $L[S_i K]$.

// #diff-add[
Enunciamo ora il seguente enunciato nel caso di aver definito $L_K$ rispetto ad una sola orientazione ovvero, dato $p$ punto base e $i$ un indice nella sequenza di scambi indotta da $p$:

$
  L_K (a, z) & colon.eq
  (-1)^(abs(lambda(p))+1) L[hat(K)(lambda(p))] + z sum_K (lambda(p)) \
             & = z (L[E_i K] + L[e_i K]) - L[S_i K]
$

// l'ultima uguaglianza segue considerando $L[K]$ e $L[S_i K]$ e sottraendo membro a membro.

#proposition(numbered: false)[
  Se $K$ è un diagramma di link e ammette una funzione di slacciamento allora $L_K = a^w(K)$.
]

Per una dimostrazione di questo fatto si rimanda a @lickorish1997introduction[pag. 175-176].

// #proof[
//   Se i punti a valle in $K$ precedono immediatamente i rispettivi punti base allora i diagrammi sono in forma discendente e possiamo utilizzare direttamente la @kauffman-rec-inductive-def di $L_K$ nel caso @kauffman-rec-i. Procediamo per sotto-induzione sul numero totale di incroci e sulla distanza dei punti a valle dai punti base.

//   Per prima cosa osserviamo che possiamo ignorare gli incroci tra componenti diverse. L'esistenza di una funzione di slacciamento ci induce un ordinamento delle componenti e per il teorema della curva di Jordan tutti i segni degli incroci tra componenti diverse si cancellano.

//   Consideriamo ora una singola componente, sia $i$ il primo incrocio dopo il punto a valle $b$, ci sono due casi in base a come appare partendo da $b$:

//   - Se è un sotto-incrocio, $h$ può essere modificata in modo da essere decrescente da $b$ fino a subito dopo $i$ in modo che sia ancora una funzione di slacciamento.

//     Dunque $L_K = a^w(K)$ per sotto-induzione in quanto $K$ con la nuova funzione di slacciamento ha il punto $b$ di un incrocio più vicino al punto di base.

//   - Se è un sopra-incrocio deve essere necessariamente un punto in cui una parte della componente in cui andiamo dal punto base verso $b$. Segue dalle proprietà di monotonicità di $h$.

//     In questo caso calcoliamo $L_K$ usando la proprietà $(*)$ applicata all'incrocio $i$.

//     - Scambiare l'incrocio dà un diagramma $K'$ in cui possiamo spostare il punto $b$ più vicino al punto base e dunque per induzione $L_K' = a^w(K')$.

//     - I diagrammi con i due tipi di splice hanno $n-1$ incroci ed ammettono delle funzioni di slacciamento, dunque anche loro sono noti per induzione
// ]

#proposition(
  numbered: false,
)[
  L'enunciato precedente si generalizza anche con la nostra definizione di $L_K$ che prende in considerazione entrambe le direzioni. Si può dimostrare procedendo in modo analogo ma serve tenere conto di come si presentano gli incroci in entrambe le direzioni.
]
// ]

#lemma[
  Consideriamo i due modi di fare uno splice di un nodo banale standard al primo incrocio subito dopo un punto base direzionato. Allora valgono le seguenti proprietà:

  1. Ci sono due casi, in uno otteniamo _due nodi banali in forma standard_, nell'altro _un solo nodo banale_ (non necessariamente in forma discendente).

  2. Il caso di splice con una sola componente ammette una funzione di slacciamento.

  // #diff-del[La proprietà del @std-unknot-to-curls, ovvero che i nodi banali standard sono equivalenti a meno di isotopia regolare a diagrammi di nodi formati solo da riccioli, si estende al diagramma del caso dello splice con una sola componente.]

]

#proof[
  Per la definizione di nodo banale standard, la prima occorrenza di $i$ è un sopra-incrocio e osserviamo che la parte di diagramma percorsa tra le due occorrenze di $i$ sarà sicuramente sopra il resto del diagramma (la parte che rimane è quella dopo la seconda occorrenza di $i$).

  #figure(image("assets/splice-circuits.png", width: 4cm))

  Dunque abbiamo due casi, in una abbiamo due componenti una sopra l'altra, ognuna delle quali sarà ancora in forma discendente in quanto eredita la proprietà secondo cui la prima volta che si passa su un incrocio questo è un sopra-incrocio.

  Se assumiamo che il diagramma del caso precedente sia della forma $E_i hat(K) = hat(K)_1 union hat(K)_2$ con $hat(K)_1$, $hat(K)_2$ i due nodi banali standard con $hat(K)_1$ sovrastante $hat(K)_2$, allora l'altro caso sarà $e_i hat(K) = hat(K)_1 hash hat(K)_2^*$ dove $hat(K)_2^*$ è ottenuto percorrendo $hat(K)_2$ in direzione opposta. In questo caso $e_i hat(K)$ non è in forma discendente ma ammette una funzione di slacciamento costruita come segue.

  #figure(
    //
    grid(gutter: 0.5em, image("assets/splices-with-untying-function.png", width: 11cm), grid(
      //
      columns: (1.5em, 1fr, 1fr, 1fr, 2em),
      [],
      $hat(K)$,
      $E_i hat(K)$,
      $e_i hat(K)$,
      [],
    )),
  )

  Osserviamo che passeremo prima dalla componente $K_2^*$ in verso opposto, questa parte sarà quindi in forma ascendente. Al secondo incontro dello splice dell'incrocio $i$, torneremo sulla componente $K_1$ che percorreremo nel verso originale che sarà quindi in forma discendente.

  Ora notiamo che $K_2$ è la parte tra la prima occorrenza di $i$ e la seconda quindi sarà sicuramente sopra tutto il resto del diagramma.

  Per concludere come funzione di slacciamento possiamo prenderne una che ha come punto di massimo $t$ e come punto di minimo $b$ come mostrato nella figura precedente nel caso di $e_i hat(K)$. I colori indicano, in riferimento alle orientazioni, quelle parti che sono rispettivamente monotone #box(radius: 3pt, outset: (y: 3pt), inset: (x: 2pt), fill: green.mix(white))[crescenti] o #box(radius: 3pt, outset: (y: 3pt), inset: (x: 2pt), fill: red.mix(white))[decrescenti].
]

// #diff-del[
//   Usiamo ora il @std-unknot-to-curls per cui un nodo banale standard è equivalente a meno di isotopia regolare al diagramma di un nodo formato solo da riccioli.

//   Siano $hat(K)'_1$ e $hat(K)'_2$ i diagrammi a cui sono equivalenti rispettivamente $hat(K)_1$ e $hat(K)_2$. Ora possiamo applicare le mosse che semplificano $hat(K)_1$ indipendentemente dalle mosse che semplificano $hat(K)_2$, in quanto uno sovrasta l'altro e possiamo spostare un diagramma sopra un altro utilizzando solo mosse di tipo II o III. A questo punto avremo ridotto i diagrammi ad uno della forma $hat(K)'_1 hash hat(K)'_2$ che sarà equivalente a $hat(K)_1 hash hat(K)_2^*$ e composto solo da riccioli.
// ]

// #grid(
//   columns: (1fr, auto),
//   gutter: 1em,
//   fact[
//     Consideriamo i due modi di fare uno splice di un nodo banale standard al primo incrocio subito dopo un punto base direzionato. Ci sono due casi: in uno otteniamo _due nodi banali in forma standard_, nell'altro _un solo nodo banale_ (non necessariamente in forma discendente).
//   ],
//   image("assets/splice-circuits.png", width: 4cm),
// )

// #lemma[
//   Consideriamo i due modi di fare uno splice di un nodo banale standard al primo incrocio subito dopo un punto base direzionato. Ci sono due casi: in uno otteniamo due nodi banali in forma standard, nell'altro un solo nodo banale (non necessariamente in forma standard).
// ]

// _Idea Dimostrazione._ Nel caso in cui si formano due componenti, se studiamo come sono fatti gli incroci di ogni componente con se stessa notiamo che rispettano ancora la proprietà della forma discendente e poiché tutti gli incroci della seconda componente con la "prima parte" della prima componente sono sotto-incroci e con la "seconda parte" sono sopra-incroci possiamo applicare mosse II e III per separare le due componenti.

// Nel caso di una sola componente non abbiamo più un nodo in forma discendente, ma questa è formata da una prima parte discendente, seguita da una ascendente (la parte in mezzo è percorsa al contrario) ed infine un'altra discendente, pensando in termini di altezze rispetto al piano di proiezione, ogni parte può essere semplificata indipendentemente dalle altre quindi abbiamo ancora un nodo banale a meno di isotopia ambiente.

// #fact[
//   La proprietà del lemma @std-unknot-to-curls si estende al diagramma $e_i hat(K)$.
// ]

// La dimostrazione di questi fatti è omessa in quanto molto tecnica, ma per dare un'idea di ciò che avviene in questi tre casi possiamo considerare la seguente figura.

// #figure(
//   image("assets/std-unknot-splices.png", width: 12cm),
//   caption: [Diagramma di $K$, $E_i K$ e $e_i K$ con rispettivo grafico delle "altezze" dei fili.],
// )

// Nel primo caso il diagramma $K$ nodo è in forma discendente, possiamo visualizzarlo al variare "dell'altezza" come sotto. Dopo gli splice in un caso otteniamo due componenti disgiunte ognuna ancora in forma discendente, mentre nell'altro caso anche se abbiamo una parte rovesciata complessivamente il nodo rimane banale.

// #proof[
//   #todo[work in progress]
// ]

// #diff-del[
//   *Corollario.* Poiché $e_i hat(K)$ è equivalente a meno di isotopia regolare ad un diagramma formato solo da riccioli, possiamo usare il caso @kauffman-inductive-hyp-c dell'ipotesi induttiva su $L_K$ che ci dà l'invarianza per isotopia regolare di $L_K$. Unito al fatto che il writhe è un invariante di isotopia regolare otteniamo che $L[e_i hat(K)] = a^w(e_i hat(K))$.
// ]
// #diff-add[
*Corollario.* Sia $K$ un diagramma di un nodo e $e_i hat(K)$ il caso di splice che forma una sola componente. Per il lemma precedente $e_i hat(K)$ ammette una funzione di slacciamento ed ha un incrocio in meno, dunque possiamo applicare il caso @kauffman-inductive-hyp-d dell'ipotesi induttiva della @kauffman-inductive-hyp-def su $L_K$ ed ottenere che

$
  L[e_i hat(K)] = a^w(e_i hat(K))
$
// ]

// Utilizzando questi ultimi risultati identità per nodi banali standard che ci mostrano cosa succede quando facciamo avanzare il punto base di un incrocio.

#lemma[
  Sia $p$ un punto di partenza direzionato e $hat(K) colon.eq hat(K)(cal(U), p)$ un nodo banale standard. Sia $i$ il primo incrocio in $K$ subito dopo il punto di partenza $p$. Sia $q$ un altro punto base direzionato posto nell'arco subito dopo l'incrocio $i$ con la sua stessa direzione e poniamo $hat(K)' colon.eq hat(K)(cal(U), q)$. Allora valgono le seguenti proprietà:

  1. $S_i hat(K) = hat(K)'$

  2. $L[hat(K)] + L[hat(K)'] = z (L[E_i hat(K)] + L[e_i hat(K)])$
] <lemma-slide-identities>

#proof[
  1. In $hat(K)(cal(U), p)$, l'incrocio $i$ è il primo visitato quindi sarà sicuramente un sopra-incrocio. Al contrario, in $hat(K)(cal(U), q)$ l'incrocio $i$ è l'ultimo visitato quindi è certamente la seconda occorrenza di $i$ e sarà un sotto-incrocio. Tutti gli altri incroci compaiono nello stesso ordine quindi restano invariati. Dunque $S_i hat(K) = hat(K)'$.

    #{
      set align(center)
      set text(size: small-size)

      grid(
        columns: 2,
        row-gutter: 0.5em,
        column-gutter: 2em,
        image("assets/derived/atlas-crossing-slides-0.png", width: 2.25cm),
        image("assets/derived/atlas-crossing-slides-3.png", width: 2.25cm),
        $hat(K)(cal(U), p)$,
        $hat(K)(cal(U), q)$,
      )
    }

  2. Per questo secondo punto usiamo che $L_hat(K) = a^w(hat(K))$, assumiamo ora che $E_i hat(K)$ sia il caso con due componenti di due nodi banali standard e $e_i hat(K)$ quello con una sola componente di diagramma di nodo banale.

    Supponiamo che $w(e_i hat(K)) = w$, allora poiché abbiamo rimosso un incrocio vale necessariamente

    $
      {w(hat(K)), w(S_i hat(K))} = {w-1, w+1}
    $

    ovvero i writhe di $hat(K)$ e $S_i hat(K)$ differiscono di $2$, assumiamo di essere nel caso $w(hat(K)) = w + 1$.

    Nel caso con due componenti avremo $E_i hat(K) = K_1 union K_2$, e per come sono definite le mosse $E_i$ e $e_i$ abbiamo anche che $e_i hat(K) = K_1 hash K_2$.

    Siano ora $w_1$ e $w_2$ i writhe rispettivamente di $K_1$ e $K_2$. Per il teorema della curva di Jordan, la somma dei segni degli incroci tra componenti diverse ha somma zero poiché una delle due _sovrasta_ l'altra. Segue che $w_1 + w_2 = w$. Ricapitoliamo ora tutti i termini:

    $
      L[hat(K)]     &= a^(w+1) \
      L[S_i hat(K)] &= a^(w-1) \
      L[e_i hat(K)] &= a^w \
      L[E_i hat(K)] &= delta a^(w_1) a^(w_2) = delta a^(w_1 + w_2) = delta a^w = (a^(w+1) + a^(w-1)) slash z - a^w
    $

    che verifica l'identità infatti:

    $
      a^(w+1) + a^(w-1)         &= cancel(z) ((a^(w+1) + a^(w-1))/cancel(z) - cancel(a^w) + cancel(a^w)) \
      => L[hat(K)] + L[hat(K)'] &= z (L[E_i hat(K)] + L[e_i hat(K)]) \
    $

  E questo conclude la dimostrazione delle due proprietà.
]

Possiamo ora mostrare l'invarianza per scelta di punto base di $Omega_K (p)$.

#lemma[
  Sia $K$ un diagramma di un nodo. Allora @kauffman-rec-single-component non dipende dalla scelta di punto base. Inoltre se $p$ è un punto base direzionato su $K$ e $lambda(p)$ la sequenza di scambi determinata da $p$ che lo porta a $hat(K)(p) colon.eq hat(K)(cal(U), p)$, allora #h(1fr)

  $
    Omega_K (p) = (-1)^(abs(lambda(p)) + 1) L_(hat(K)(p)) + z sum_K (lambda(p))
  $

  non dipende dalla scelta di punto base.
]

#proof[
  Possiamo assumere che la sequenza di scambi determinata da $p$ sia etichettata come $lambda = (n, dots, 0)$, in questo modo

  $
    Omega_K (p) = (-1)^(n+1) L_(hat(K)(p)) + z sum_K (lambda(p))
  $

  Ricordiamo come era definito $L_K$ nel caso @kauffman-rec-single-component e notiamo quanto segue

  $
    L_K (a, z) &colon.eq 1 / 2 [
    sum_(q = p, overline(p))
    ((-1)^(abs(lambda(q))+1) L_(hat(K)(q)) + z sum_K (lambda(q)))
    ] \
               &= 1/2 (Omega_K (p) + Omega_K (overline(p)))
  $

  Dunque ci basta mostrare che $Omega_K (p)$ non dipenda dalla scelta di punto base.

  Come in precedenza possiamo mostrarlo facendo scorrere $p$ nell'arco successivo al primo incrocio dopo $p$, questo ci induce l'invarianza per permutazioni cicliche e ci permette di concludere.

  Sia $i$ l'etichetta del primo incrocio dopo $p$. In $hat(K)(p)$ l'incrocio $i$ è il primo visitato dopo $p$ dunque sarà sicuramente un sopra-incrocio. Invece in $K(p)$ può essere sia un sopra-incrocio che un sotto-incrocio, abbiamo quindi due casi:

  #{
    set align(center)
    set text(size: small-size)
    grid(
      columns: 3,
      row-gutter: 0.5em,
      column-gutter: 2em,
      align: center + horizon,
      image("assets/derived/atlas-crossing-slides-1.png", width: 2.25cm),
      [
        #set text(size: footnote-size)
        oppure
      ],
      image("assets/derived/atlas-crossing-slides-0.png", width: 2.25cm),
      $K(p)$,
      [],
      $K(p)$,
    )
  }

  - Se $i$ è un sotto-incrocio in $K(p)$, allora $i$ sarà il primo incrocio nella sequenza di scambi ed avremo $i = n$. La situazione sarà quindi la seguente:

    #{
      set align(center)
      set text(size: small-size)
      grid(
        columns: 2,
        row-gutter: 0.5em,
        column-gutter: 2em,
        image("assets/derived/atlas-crossing-slides-1.png", width: 2.25cm),
        image("assets/derived/atlas-crossing-slides-0.png", width: 2.25cm),
        $K(p)$,
        $hat(K)(p)$,
      )
    }

    Consideriamo ora la situazione di $K(q)$:

    #{
      set align(center)
      set text(size: small-size)
      grid(
        columns: 2,
        row-gutter: 0.5em,
        column-gutter: 2em,
        image("assets/derived/atlas-crossing-slides-3.png", width: 2.25cm),
        image("assets/derived/atlas-crossing-slides-3.png", width: 2.25cm),
        $K(q)$,
        $hat(K)(q)$,
      )
    }

    come già detto prima, l'ultimo incrocio vicino ad esso è un sotto-incrocio dunque $K(q)$ è già in forma di nodo banale standard. Segue che $i$ non appartiene alla sequenza di scambi che sarà $(n-1, dots, 0)$ e quindi $hat(K)(q) = S_(n-1) dotss S_0 K$. Vorremo vedere che $Omega_K (p) = Omega_K (q)$, ovvero che queste due espressioni coincidano:

    $
      Omega_K (p) &= (-1)^(n+1) L[hat(K)(p)] + z sum_K (lambda(p)) \
      Omega_K (q) &= (-1)^((n-1)+1) L[hat(K)(q)] + z sum_K (lambda(q))
    $

    Come in precedenza possiamo studiare la differenza:

    $
      Omega_K (p) - Omega_K (q)
      =& (-1)^(n+1) L[hat(K)(p)] + z sum_K (lambda(p)) \
       &+ underbrace((-1)^(n+1), = -(-1)^n) L[hat(K)(q)] - z sum_K (lambda(q)) \
      =& (-1)^(n+1) (L[hat(K)(p)] + L[hat(K)(q)]) \
       &+ z (-1)^n (L[A_n^lambda K] + L[B_n^lambda K])
    $

    qui abbiamo usato il fatto che tutti i termini in $sum_K (lambda(p)) - sum_K (lambda(q))$ si cancellano tra loro tranne l'ultimo di $sum_K (lambda(p))$.

    Ora notiamo che

    $
      A_n^lambda K &= E_n S_(n-1) dotss S_0 K = E_n hat(K)(p) \
      B_n^lambda K &= e_n S_(n-1) dotss S_0 K = e_n hat(K)(p) \
    // hat(K)(q)    &= S_n space.med hat(K)(p)
    $

    inoltre per il @lemma-slide-identities abbiamo anche che

    $
      L[hat(K)(p)] + L[hat(K)(q)] = z (L[E_n hat(K)(p)] + L[e_n hat(K)(p)])
    $

    Per concludere basta sostituire queste ultime identità

    $
      Omega_K (p) - Omega_K (q) =& (-1)^(n+1) (L[hat(K)(p)] + L[hat(K)(q)]) \
                                 &+ z (-1)^n (L[A_n^lambda K] + L[B_n^lambda K]) \
      =                          & cancel(z (-1)^(n+1) (L[E_n hat(K)(p)] + L[e_n hat(K)(p)])) \
                                 &+ cancel(z (-1)^n (L[E_n hat(K)(p)] + L[e_n hat(K)(p)])) \
      =                          & 0
    $

    Segue quindi che $Omega_K (p) = Omega_K (q)$.

  - Se $i$ è un sopra-incrocio in $K(p)$ siamo nella seguente situazione:

    #{
      set align(center)
      grid(
        columns: 2,
        row-gutter: 0.5em,
        column-gutter: 2em,
        image("assets/derived/atlas-crossing-slides-0.png", width: 2.25cm),
        image("assets/derived/atlas-crossing-slides-0.png", width: 2.25cm),
        $K(p)$,
        $hat(K)(p)$,
      )
    }

    In questo caso, $i$ non fa parte della sequenza di scambi per $K(p)$. Però dopo aver spostato il punto base avremo la seguente situazione:

    #{
      set align(center)
      grid(
        columns: 2,
        row-gutter: 0.5em,
        column-gutter: 2em,
        image("assets/derived/atlas-crossing-slides-2.png", width: 2.25cm),
        image("assets/derived/atlas-crossing-slides-3.png", width: 2.25cm),
        $K(q)$,
        $hat(K)(q)$,
      )
    }

    Questa volta $i$ fa parte della sequenza di scambi per $K(q)$ poiché $i$ compare come ultimo incrocio nella visita e quindi in $hat(K)(q)$ sarà un sotto-incrocio. La situazione è più complessa di prima, $i$ comparirà come sopra-incrocio in mezzo alla sequenza di scambi. Avremo quindi le seguenti sequenze per $p$ e per $q$:

    $
      lambda(p) &= (n, n-1, dots, i+1, i-1, dots, 1, 0) \
      lambda(q) &= (n, n-1, dots, i+1, i, i-1, dots, 1, 0) \
    $

    Se ora consideriamo gli scambi da applicare che ci portano a $hat(K)(p)$ e $hat(K)(q)$ abbiamo che

    $
      hat(K)(p) &= S_n S_(n-1) space.med dots.c space S_(i+1) S_(i-1) space.med dots.c space S_0 K \
      hat(K)(q) &= S_n S_(n-1) space.med dots.c space S_(i+1) S_i S_(i-1) space.med dots.c space S_0 K \
    $

    Dunque riordinando gli scambi ed applicando $S_i$ per ultimo, possiamo notare che $S_i hat(K)(q) = hat(K)(p)$.

    Con un argomento simile a quello del @lemma-slide-identities, possiamo applicare l'enunciato alla coppia $hat(K)(p), hat(K)(q)$ per l'indice $i$ anche se in questo caso l'indice $i$ è il primo _subito prima_ di $q$. Inoltre per il @lemma-sum-switches-rotation abbiamo che $sum_K (p), sum_K (q)$ sono invarianti a meno di permutazioni cicliche. Possiamo quindi sostituire $lambda(p)$ e $lambda(q)$ con le seguenti sequenze di scambi applicando le giuste rotazioni all'indietro.

    $
      lambda'(p) &= (i-1, dots, 1, 0, n, n-1, dots, i+1) \
      lambda'(q) &= (i, i-1, dots, 1, 0, n, n-1, dots, i+1)
    $

    A questo punto possiamo applicare lo stesso argomento del punto precedente.

  E questo completa la dimostrazione dell'indipendenza di $Omega_K (p)$ dalla scelta di punto base.
]

A questo punto possiamo vedere che $L_K$ verifica gli assiomi della @kauffman-poly-def.

#lemma[
  Sia $i$ un incrocio di un diagramma di link $K$. Allora $L_K$ verifica le identità:

  1. $L[K] + L[S_i K] = z (L[E_i K] + L[e_i K])$

  2. $L[#skein.over-twist-medium] = a L [#skein.strand-medium]$, $L[#skein.under-twist-medium] = a^(-1) L [#skein.strand-medium]$
]

#proof[
  Mostriamo per induzione sul numero di incroci nel diagramma.

  1. Consideriamo i seguenti casi:

    - Se $K$ ha una sola componente ed un incrocio $i$: consideriamo $S_i K$, $E_i K$ e $e_i K$; scegliendo bene $p$ possiamo fare in modo che $i$ sia il primo incrocio nella sequenza di scambi. Ora consideriamo l'espressione del caso @kauffman-rec-single-component, con una singola componente:

      $
        L_K (a, z) &colon.eq
        1 / 2
        sum_(q = p, overline(p))
        ((-1)^(abs(lambda(q))+1) L[hat(K)(lambda(q))] + z sum_K (lambda(q)))
        \
                   &= 1 / 2
        sum_(q = p, overline(p))
        ((-1)^(n+1) L[hat(K)(q)] + z sum_K (lambda(q)))
      $

      Ricordiamo le definizioni dei termini $Omega_K (p)$ e $sum_K (lambda(q))$:

      $
        sum_K (lambda(q)) & colon.eq sum_(i=0)^n (-1)^i (L[A_i^lambda K] + L[B_i^lambda K]) \

        Omega_K (q)       & colon.eq (-1)^(abs(lambda) + 1) L[hat(K)(lambda)] + z sum_K (lambda)
      $

      La tesi segue considerando la differenza nelle espansioni di $Omega_K (p)$ e $Omega_(S_i K) (p)$, in particolare tutti i termini si cancellano tranne il primo:

      $
        => Omega_K (p) + Omega_(S_i K) (p) = z(L[E_i K] + L[e_i K]) \
      $

    - Se $K$ ha più di una componente e $i$ è un incrocio di una componente con se stessa: in questo caso $i$ non compare in nessuna sequenza di rialzo in quanto le sequenze di rialzo scambiano solo incroci tra componenti diverse. Dunque possiamo applicare il caso @kauffman-rec-multi-component dell'ipotesi induttiva della @kauffman-inductive-hyp-def senza problemi.

    - Se $K$ ha più di una componente e $i$ è un incrocio tra due componenti diverse: possiamo considerare la @kauffman-rec-multi-component della @kauffman-rec-inductive-def e mostrare che ogni addendo verifica l'identità i) della tesi, ricordiamo l'espressione in questione:

      #{
        set text(size: small-size)
        $
          L_K (a, z) colon.eq
          1 / (2n) [
          sum_(i=1)^n sum_(q=p_i, overline(p)_i)
          ((-1)^(abs(lambda(q))+1) delta kL_(K_i) kL_(K - K_i) + z sum_K (lambda(q)))
          ]
        $
      }

      Per quanto riguarda gli addendi che non intersecano nessuna delle due componenti interessate dall'incrocio scelto, non ci sono problemi e possiamo applicare la definizione induttiva. Per la componente che passa sotto $i$, ci basta scegliere un punto base appropriato in modo che $i$ sia il primo incrocio scambiato. A questo punto l'identità segue sempre calcolando la differenza tra $Omega_K(overline(p))$ e $Omega_K(overline(q))$, tutti i termini si cancellano tranne quelli relativi a $i$ che ci danno la tesi.

  // gli addendi che non intersecano nessuna delle due componenti possiamo procedere per induzione. Altrimenti possiamo scegliere un punto base appropriato e procedere per induzione.

  2. La dimostrazione è analoga, basta osservare che possiamo sempre scegliere un punto base che non faccia comparire l'incrocio del ricciolo nella sequenza di scambi.

  E questo conclude la dimostrazione del lemma.
]

Come ultimo risultato vediamo che $L_K$ è un invariante di isotopia regolare.

#lemma[
  Siano $K, K'$ diagrammi di link equivalenti a meno di isotopia regolare, allora $L_K (a, z) = L_(K') (a, z)$.
]

#proof[
  Procediamo sempre per induzione sul numero di incroci e mostriamo l'invarianza per mosse che non ne aumentano il numero:

  1. Mossa II: Ci sono vari casi in base a se la mossa II riguarda una o più componenti:

    - Se la mossa è su una sola componente, allora ci basta scegliere il punto base come segue

      #figure(image("assets/move-2-base-points.jpg", width: 6cm))

      in questo modo i due incroci non compariranno nella sequenza di scambi. Per l'ipotesi induttiva, tutti i termini di @kauffman-rec-single-component sono invarianti per mosse di tipo II e dunque lo sarà anche $L_K$.

    - Se la mossa riguarda più componenti, allora il caso peggiore è il seguente

      #figure(image("assets/move-2-base-points-bad.png", width: 3cm))

      Vorremo vedere che vale $L[K] = L[S_2 S_1 K]$. Consideriamo le seguenti relazioni:

      $
        L[K] + L[S_1 K]         &= z (L[E_1 K] + L[e_1 K]) \
        L[S_1 K] + L[S_2 S_1 K] &= z (L[E_2 S_1 K] + L[e_2 S_1 K]) \
      $ <kauffman-moves-2>

      i diagrammi associati a queste relazioni sono riportati qui sotto, in particolare possiamo notare che ci sono alcune relazioni tra questi:

      #{
        set align(center)
        set text(small-size)

        grid(
          columns: 4,
          column-gutter: 1em,
          row-gutter: 0.5em,
          image("assets/derived/atlas-move-2-K-0.png", width: 1.5cm),
          image("assets/derived/atlas-move-2-K-1.png", width: 1.5cm),
          image("assets/derived/atlas-move-2-K-2.png", width: 1.5cm),
          image("assets/derived/atlas-move-2-K-3.png", width: 1.5cm),
          $K$,
          $S_1 K$,
          $E_1 K$,
          $e_1 K$,
        )
      }

      #{
        set align(center)
        set text(small-size)

        grid(
          columns: 4,
          column-gutter: 1em,
          row-gutter: 0.5em,
          image("assets/derived/atlas-move-2-S1K-0.png", width: 1.5cm),
          image("assets/derived/atlas-move-2-S1K-1.png", width: 1.5cm),
          image("assets/derived/atlas-move-2-S1K-2.png", width: 1.5cm),
          image("assets/derived/atlas-move-2-S1K-3.png", width: 1.5cm),
          $S_1 K$,
          $S_2 S_1 K$,
          $E_2 S_1 K$,
          $e_2 S_1 K$,
        )
      }

      #grid(
        columns: 2,
        column-gutter: 2em,
        row-gutter: 0.5em,
        // do not remove this comment (due to auto-formatter)
        $
          #image("assets/derived/atlas-move-2-K-3.png", width: 1.25cm)
          tilde
          #image("assets/derived/atlas-move-2-S1K-3.png", width: 1.25cm)
        $,
        $
          #image("assets/derived/atlas-move-2-K-2.png", width: 1.25cm)
          #h(8.1em)
          #image("assets/derived/atlas-move-2-S1K-2.png", width: 1.25cm)
        $,
        $L[e_1 K] = L[e_2 S_1 K]$,
        $L[E_1 K] = a^(-1) L[#skein.h] = L[E_2 S_1 K]$,
      )

      Dunque i due membri di destra di $(3)$ coincidono ed abbiamo quanto cercato:

      $
        L[K] + L[S_1 K] = z (L[E_1 K] + L[e_1 K]) = L[S_1 K] + L[S_2 S_1 K] \
        => L[K] + cancel(L[S_1 K]) = cancel(L[S_1 K]) + L[S_2 S_1 K] \
        => L[K] = L[S_2 S_1 K]
      $

      A questo punto nel diagramma $S_2 S_1 K$, gli incroci della mossa II non compariranno nella sequenza di rialzo dunque l'invarianza segue per induzione come il caso precedente.

  2. Mossa III:

    - Se la mossa è su fili di una sola componente, allora possiamo scegliere il punto base in modo che sia sul filo che passa sopra gli altri due, e saremo nella situazione seguente:

      $
        #image("assets/derived/atlas-move-3-0.png", height: 2.25cm)
        quad
        tilde
        quad
        #image("assets/move-3-result.png", height: 2.25cm)
      $

      In questo modo due dei tre incroci non compariranno nella sequenza di scambi, per quanto riguarda l'incrocio rimanente $*$, consideriamo la definizione @kauffman-rec-single-component:

      $
        L_K (a, z) &colon.eq 1 / 2
        sum_(q = p, overline(p))
        ((-1)^(abs(lambda(q))+1) L_(hat(K)(lambda(q))) + z sum_K (lambda(q)))
      $

      l'incrocio $*$ può comparire o scambiato, in tal caso sicuramente comparirà dentro la somma $sum_K (lambda(q))$ dove ci sono già degli splice ovvero diagrammi con un incrocio in meno e possiamo applicare l'ipotesi induttiva. Altrimenti siamo nel caso di splice dell'incrocio $i$, ovvero siamo in uno dei seguenti casi:
      // o già non compariva nella sequenza di scambi o possiamo spostare il punto base come nella seguente figura
      // #figure(image("assets/move-3-base-point-orient.png", width: 7cm))
      // In quanto abbiamo una sola componente almeno una delle due configurazione non avrà nessuno dei tre incroci nella sequenza di scambi. Nel caso di splice

      #{
        set align(center)
        set text(size: small-size)

        grid(
          columns: 2,
          column-gutter: 2em,
          image("assets/derived/atlas-move-3-2.png", height: 2.25cm),
          image("assets/derived/atlas-move-3-3.png", height: 2.25cm),
        )
      }

      L'invarianza in questi casi può essere risolta attraverso equivalenze di diagrammi come le seguenti, in cui usiamo solo mosse di tipo II tutte per diagrammi con meno di $N$ incroci:

      #figure(image("assets/atlas-move-3-equivalences.png", height: 2.25cm))

    - Nel caso in cui la mossa riguardi fili appartenenti a più componenti, il caso peggiore è quando abbiamo due di tre degli incroci che appartengono alla sequenza di rialzo.

      In questo caso però possiamo applicare un'argomentazione simile a quella della mossa II, possiamo usare $L[K] = L[S_2 S_1 K]$ per semplificare la situazione in modo che non ci siano due incroci consecutivi che appartengano ad una sequenza di rialzo, ed ora procedere come nel caso precedente.

  Abbiamo così mostrato che per ogni diagramma di nodi e link, il polinomio $L_K$ è invariante per mosse di tipo III e mosse di tipo II che riducono il numero di incroci. Dunque è anche invariante per mosse di tipo II in entrambe le direzioni e questo completa la dimostrazione.
]