Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f101b49738 | ||
|
|
40b028c8cb | ||
|
|
c3e479bc78 | ||
|
|
d7c6309425 | ||
|
|
edd05f4502 |
|
After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 215 KiB |
|
After Width: | Height: | Size: 215 KiB |
|
After Width: | Height: | Size: 203 KiB |
|
After Width: | Height: | Size: 167 KiB |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 121 KiB |
@@ -3,18 +3,15 @@
|
||||
|
||||
#import "@preview/cetz:0.3.4"
|
||||
#import "skein.typ": *
|
||||
#import "@preview/drafting:0.2.2": set-margin-note-defaults, inline-note, margin-note, set-page-properties
|
||||
#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
|
||||
},
|
||||
),
|
||||
rect: (..kwargs, content) => rect(..kwargs, {
|
||||
set text(size: 8pt, font: "Open Sans")
|
||||
set par(leading: 0.5em, justify: false)
|
||||
content
|
||||
}),
|
||||
side: right,
|
||||
)
|
||||
|
||||
@@ -33,7 +30,7 @@
|
||||
),
|
||||
),
|
||||
abstract: [
|
||||
In questa tesi tratteremo del polinomio di Kauffman, un invariante di nodi e link per 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. Inoltre 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$.
|
||||
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"),
|
||||
)
|
||||
@@ -44,29 +41,29 @@
|
||||
|
||||
= 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.
|
||||
// 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],
|
||||
)
|
||||
// #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:
|
||||
// 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)$.
|
||||
// 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:
|
||||
// 2. Valgono le seguenti relazioni skein:
|
||||
|
||||
- $kL(#skein.over) + kL(#skein.under) = z (kL(#skein.h) + kL(#skein.v))$
|
||||
// - $kL(#skein.over) + kL(#skein.under) = z (kL(#skein.h) + kL(#skein.v))$
|
||||
|
||||
- $kL(#skein.unit) = 1$
|
||||
// - $kL(#skein.unit) = 1$
|
||||
|
||||
- $kL(#skein.over-twist) = a kL(#skein.strand)$
|
||||
// - $kL(#skein.over-twist) = a kL(#skein.strand)$
|
||||
|
||||
- $kL(#skein.under-twist) = a^(-1) 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.
|
||||
// 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
|
||||
|
||||
@@ -97,7 +94,7 @@ Ora introdurremo alcuni risultati fondamentali di teoria dei nodi. Vedremo le de
|
||||
$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: 5.5cm)),
|
||||
align(center, image("assets/locally-flat-v2.png", width: 4cm)),
|
||||
)
|
||||
|
||||
|
||||
@@ -109,12 +106,9 @@ inoltre $f$ si dice embedding *localmente piatto* se lo è in ogni punto di $X$.
|
||||
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
|
||||
],
|
||||
)
|
||||
#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.
|
||||
|
||||
@@ -264,99 +258,161 @@ Come abbiamo generalizzato da nodi a link possiamo ripetere tutto anche aggiunge
|
||||
|
||||
= Isotopia Regolare
|
||||
|
||||
#todo[
|
||||
Work in progress
|
||||
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.
|
||||
]
|
||||
|
||||
// #todo[
|
||||
// Aggiungere più commenti
|
||||
// ]
|
||||
#figure(image(
|
||||
"assets/ambient-regular-isotopy-difference.jpg",
|
||||
width: 15cm,
|
||||
))
|
||||
|
||||
// Il teorema di Reidemeister ci dice che se due nodi sono equivalenti a meno di isotopia allora lo sono anche i loro diagrammi a meno di isotopie planari e delle mosse I, II e III.
|
||||
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
|
||||
|
||||
// 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ù forte dell'isotopia ambiente.
|
||||
#figure(image(
|
||||
"assets/move-1-factorization.png",
|
||||
width: 10cm,
|
||||
))
|
||||
|
||||
// #definition[
|
||||
// Due nodi o link $K_1, K_2$ si dicono equivalenti a meno di *isotopia regolare* se due loro diagrammi sono equivalenti a meno di isotopie planari e mosse II e III di Reidemeister.
|
||||
// ]
|
||||
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.
|
||||
|
||||
// #figure(image("assets/ambient-regular-isotopy-difference.jpg", width: 13cm))
|
||||
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_.
|
||||
|
||||
// Una prima cosa che possiamo notare è che tutte le mosse R1 possono essere "fattorizzate" in modo da averle tutte raggruppate insieme. #margin-note[Magari aggiungere la dimostrazione di questa cosa]
|
||||
#figure(image("assets/whitney-trick.png", width: 16cm))
|
||||
|
||||
// #todo[
|
||||
// Altro disegno
|
||||
// ]
|
||||
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
|
||||
|
||||
|
||||
// C'è un'osservazione importante da fare quando parliamo di isotopia regolare. Quest'ultima è definita solo quando si parla di diagrammi di link, quando invece parliamo di isotopia ambiente ha anche senso parlare dei link come circonferenze embedded.
|
||||
$
|
||||
w(#skein.over-twist) = w(#skein.strand) + 1
|
||||
#h(2em)
|
||||
w(#skein.under-twist) = w(#skein.strand) - 1
|
||||
$
|
||||
|
||||
// Più avanti vedremo invarianti di isotopia ambiente come il polinomio $F_K$ che però è definito attraverso l'isotopia regolare, in particolare 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.
|
||||
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) \
|
||||
$
|
||||
|
||||
|
||||
|
||||
// Questo ci suggerisce un primo invariante di isotopia regolare per link orientatati, per prima cosa introduciamo il segno di un incrocio.
|
||||
|
||||
// #definition[
|
||||
// Dato un incrocio di un link orientato ci possono essere due casi
|
||||
|
||||
// $
|
||||
// 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 crossing
|
||||
|
||||
// $
|
||||
// w(K) colon.eq sum_c epsilon(c)
|
||||
// $
|
||||
// ]
|
||||
|
||||
// #proposition[
|
||||
// Il writhe non dipende dall'orientazione del link
|
||||
// ]
|
||||
|
||||
// #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)$.
|
||||
// ]
|
||||
|
||||
// #todo[
|
||||
// Esempi di calcolo del writhe
|
||||
// ]
|
||||
|
||||
// Un primo fatto generale che possiamo osservare è che dato un invariante di isotopia regolare con certe proprietà, 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(K) in 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>
|
||||
|
||||
e analogamente segue anche per l'altro ricciolo che $F(#skein.under-twist) = F(#skein.strand)$.
|
||||
]
|
||||
|
||||
= Polinomio di Kauffman
|
||||
|
||||
#todo[
|
||||
Work in progress
|
||||
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
|
||||
work in progress
|
||||
]
|
||||
|
||||
// Vediamo ora la definizione del polinomio di Kauffman.
|
||||
|
||||
// #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:
|
||||
|
||||
@@ -394,7 +450,7 @@ Come abbiamo generalizzato da nodi a link possiamo ripetere tutto anche aggiunge
|
||||
== Alcune proprietà del polinomio di Kauffman
|
||||
|
||||
#todo[
|
||||
Work in progress
|
||||
work in progress
|
||||
]
|
||||
|
||||
// #lemma[
|
||||
@@ -410,7 +466,7 @@ Come abbiamo generalizzato da nodi a link possiamo ripetere tutto anche aggiunge
|
||||
// ]
|
||||
|
||||
// #proof[
|
||||
// $m(K)$ è ottenuto da $K$ scambiando tutti i suoi crossing quindi se analizziamo cosa succede nei vari assiomi solo vicino ad un certo incrocio otteniamo le seguenti relazioni
|
||||
// $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) \
|
||||
@@ -439,25 +495,23 @@ Come abbiamo generalizzato da nodi a link possiamo ripetere tutto anche aggiunge
|
||||
// $
|
||||
// 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
|
||||
// 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
|
||||
@@ -467,58 +521,52 @@ Come abbiamo generalizzato da nodi a link possiamo ripetere tutto anche aggiunge
|
||||
// $
|
||||
// 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-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)
|
||||
// ) \
|
||||
// delta & =
|
||||
// z (
|
||||
// a
|
||||
// +
|
||||
// a^(-1)
|
||||
// ) \
|
||||
// =>
|
||||
// L( #knot-picture("hopf-0.png", height: 1.75em) )
|
||||
// &=
|
||||
// - (a + a^(-1)) z^(-1) + 1 + (a + a^(-1)) z
|
||||
// L( #knot-picture("hopf-0.png", height: 1.75em) ) & =
|
||||
// - (a + a^(-1)) z^(-1) + 1 + (a + a^(-1)) z
|
||||
// $
|
||||
|
||||
|
||||
// Ed del nodo trifoglio
|
||||
// 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-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)
|
||||
// ) \
|
||||
// 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
|
||||
// L( #knot-picture("trefoil-0.png", height: 2em) ) & =
|
||||
// -(2a + a^(-1)) + (1 + a^(-2)) z + (a + a^(-1)) z^2
|
||||
// $
|
||||
|
||||
// #definition[
|
||||
@@ -550,7 +598,7 @@ Come abbiamo generalizzato da nodi a link possiamo ripetere tutto anche aggiunge
|
||||
== Dimostrazione Forma Induttiva
|
||||
|
||||
#todo[
|
||||
Work in progress
|
||||
work in progress
|
||||
]
|
||||
|
||||
// Prima di passare a descrivere la definizione induttiva diamo alcune definizioni di manipolazioni di un diagramma.
|
||||
@@ -567,7 +615,7 @@ Come abbiamo generalizzato da nodi a link possiamo ripetere tutto anche aggiunge
|
||||
// width: 12cm,
|
||||
// ),
|
||||
// caption: [
|
||||
// Un link con $3$ componenti e punti di partenza direzionati $p_1, p_2, p_3$. In #box(radius: 3pt, outset: (y: 3pt), inset: (x: 2pt), fill: rgb("#91cdff"))[azzurro] sono evidenziati gli incroci che sono cambiati rispetto al link di partenza.
|
||||
// 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$.
|
||||
// ],
|
||||
// )
|
||||
|
||||
@@ -595,63 +643,50 @@ Come abbiamo generalizzato da nodi a link possiamo ripetere tutto anche aggiunge
|
||||
|
||||
// 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)))$,
|
||||
// ),
|
||||
// )
|
||||
// #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)))$,
|
||||
// ),
|
||||
// )
|
||||
// #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)
|
||||
// #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>
|
||||
// $
|
||||
// =>
|
||||
// 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.
|
||||
|
||||
@@ -707,3 +742,4 @@ Come abbiamo generalizzato da nodi a link possiamo ripetere tutto anche aggiunge
|
||||
// ]
|
||||
// $
|
||||
// ]
|
||||
|
||||
|
||||
@@ -40,8 +40,7 @@
|
||||
author = {Crowell, R.H. and Fox, R.H.},
|
||||
isbn = {9783540902720},
|
||||
lccn = {77022776},
|
||||
series = {Ecological Studies},
|
||||
url = {https://books.google.it/books?id=_1HvAAAAMAAJ},
|
||||
series = {Graduate Text in Mathematics},
|
||||
year = {1977},
|
||||
publisher = {Springer New York}
|
||||
}
|
||||
|
||||
@@ -1,36 +1,28 @@
|
||||
#import "@preview/cetz:0.3.4"
|
||||
|
||||
#let draw-strand(polyline, style: (:)) = {
|
||||
#let draw-strand(polyline, size-factor: 1.0, style: (:)) = {
|
||||
import cetz.draw: *
|
||||
|
||||
set-style(
|
||||
..cetz.styles.resolve(
|
||||
(stroke: (paint: white, thickness: 0.75pt * 8, cap: "butt")),
|
||||
base: style,
|
||||
),
|
||||
)
|
||||
polyline
|
||||
set-style(
|
||||
..cetz.styles.resolve(
|
||||
style,
|
||||
base: (stroke: (paint: black, thickness: 0.75pt, cap: "round")),
|
||||
),
|
||||
)
|
||||
// draw the white outline
|
||||
set-style(..cetz.styles.resolve(
|
||||
(stroke: (paint: white, thickness: size-factor * 0.75pt * 8, cap: "butt")),
|
||||
base: style,
|
||||
))
|
||||
polyline
|
||||
|
||||
set-style(stroke: (paint: black, thickness: 0.75pt, cap: "round"))
|
||||
// draw the black line
|
||||
set-style(..cetz.styles.resolve(style, base: (stroke: (paint: black, thickness: size-factor * 0.75pt, cap: "round"))))
|
||||
polyline
|
||||
|
||||
// set-style(stroke: (paint: black, thickness: thickness, cap: "round"))
|
||||
}
|
||||
|
||||
#let skein-canvas = body => cetz.canvas(
|
||||
length: 0.25cm,
|
||||
padding: 0.25,
|
||||
{
|
||||
import cetz.draw: *
|
||||
rect((-1, -1), (1, 1), fill: white, stroke: none)
|
||||
#let skein-canvas = (body, size-factor: 1.0) => cetz.canvas(length: size-factor * 0.25cm, padding: 0.25, {
|
||||
import cetz.draw: *
|
||||
rect((-1, -1), (1, 1), fill: white, stroke: none)
|
||||
|
||||
body
|
||||
},
|
||||
)
|
||||
body
|
||||
})
|
||||
|
||||
#let arrow-size = 0.35
|
||||
|
||||
@@ -48,6 +40,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
#let medium-scale-factor = 0.8
|
||||
#let small-scale-factor = 0.125cm / 0.25cm
|
||||
|
||||
#let skein = (
|
||||
unit: skein-canvas({
|
||||
import cetz.draw: *
|
||||
@@ -89,6 +84,31 @@
|
||||
draw-strand({ hobby((-1.5, +1), (-1, +1), (0.5, 0), (0.1, -1), (0, -1)) })
|
||||
draw-strand({ hobby((1.5, +1), (1, +1), (-0.5, 0), (-0.1, -1), (0, -1)) })
|
||||
}),
|
||||
strand-medium: skein-canvas(size-factor: medium-scale-factor, {
|
||||
import cetz.draw: *
|
||||
rect((-1, -1), (1, 1), fill: white, stroke: none)
|
||||
draw-strand(size-factor: medium-scale-factor, { hobby((-1, 0), (0, 0.25), (1, 0), omega: 1) })
|
||||
}),
|
||||
over-twist-medium: skein-canvas(size-factor: medium-scale-factor, {
|
||||
import cetz.draw: *
|
||||
draw-strand(size-factor: medium-scale-factor, { hobby((1.5, +1), (1, +1), (-0.5, 0), (-0.1, -1), (0, -1)) })
|
||||
draw-strand(size-factor: medium-scale-factor, { hobby((-1.5, +1), (-1, +1), (0.5, 0), (0.1, -1), (0, -1)) })
|
||||
}),
|
||||
strand-small: skein-canvas(size-factor: small-scale-factor, {
|
||||
import cetz.draw: *
|
||||
rect((-1, -1), (1, 1), fill: white, stroke: none)
|
||||
draw-strand(size-factor: small-scale-factor, { hobby((-1, 0), (0, 0.25), (1, 0), omega: 1) })
|
||||
}),
|
||||
over-twist-small: skein-canvas(size-factor: small-scale-factor, {
|
||||
import cetz.draw: *
|
||||
draw-strand(size-factor: small-scale-factor, { hobby((1.5, +1), (1, +1), (-0.5, 0), (-0.1, -1), (0, -1)) })
|
||||
draw-strand(size-factor: small-scale-factor, { hobby((-1.5, +1), (-1, +1), (0.5, 0), (0.1, -1), (0, -1)) })
|
||||
}),
|
||||
under-twist-small: skein-canvas(size-factor: small-scale-factor, {
|
||||
import cetz.draw: *
|
||||
draw-strand(size-factor: small-scale-factor, { hobby((-1.5, +1), (-1, +1), (0.5, 0), (0.1, -1), (0, -1)) })
|
||||
draw-strand(size-factor: small-scale-factor, { hobby((1.5, +1), (1, +1), (-0.5, 0), (-0.1, -1), (0, -1)) })
|
||||
}),
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -215,7 +215,7 @@
|
||||
title: none,
|
||||
)
|
||||
|
||||
set figure(gap: 17pt)
|
||||
set figure(gap: 1em)
|
||||
show figure: set block(above: 1.5em, below: 1.5em)
|
||||
show figure: it => {
|
||||
// Customize the figure's caption.
|
||||
@@ -231,7 +231,7 @@
|
||||
}
|
||||
|
||||
// We want a bit of space around tables and images.
|
||||
show selector.or(table, image): pad.with(x: 23pt)
|
||||
show selector.or(table, image): pad.with(x: 2em)
|
||||
|
||||
// Display the figure's body and caption.
|
||||
it
|
||||
|
||||