main
parent 771760632d
commit 4b0979893b

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

@ -13,7 +13,7 @@
#let fletcher-diagram = touying-reducer.with(reduce: fletcher.diagram, cover: fletcher.hide) #let fletcher-diagram = touying-reducer.with(reduce: fletcher.diagram, cover: fletcher.hide)
#show: dm-unipi-theme.with(aspect-ratio: "16-9", config-info( #show: dm-unipi-theme.with(aspect-ratio: "4-3", config-info(
title: [Il Polinomio di Kauffman: un invariante di isotopia regolare], title: [Il Polinomio di Kauffman: un invariante di isotopia regolare],
subtitle: [Tesi di Laurea Triennale], subtitle: [Tesi di Laurea Triennale],
// author: { // author: {
@ -39,9 +39,13 @@
#set text(font: "Open Sans", weight: 400, size: 16pt) #set text(font: "Open Sans", weight: 400, size: 16pt)
#show math.equation: set text(size: 19pt) #show math.equation: set text(size: 19pt)
#show strong: it => text(weight: 600, it.body) #show strong: it => text(weight: 600, it.body)
#set par(leading: 1em, spacing: 1em) // #set par(leading: 1em, spacing: 1em)
#set list(indent: 0.6em, body-indent: 0.75em, spacing: 1em) // #set list(indent: 0.6em, body-indent: 0.75em, spacing: 1em)
#set enum(indent: 0.6em, body-indent: 0.75em, spacing: 1em, numbering: "i.1.a)") // #set enum(indent: 0.6em, body-indent: 0.75em, spacing: 1em, numbering: "i.1.a)")
#set par(spacing: 1.5em)
#set list(spacing: 1.5em)
#set enum(numbering: "i.a)", spacing: 1.5em)
#show figure.caption: caption => block(inset: (x: 2em), { #show figure.caption: caption => block(inset: (x: 2em), {
set align(left) set align(left)
@ -70,7 +74,7 @@
// *Def.* $K_0, K_1 subset bb(R)^3$ sono *equivalenti* se esiste un'*isotopia ambiente* che porta uno nell'altro, ovvero esiste continua, tale che: // *Def.* $K_0, K_1 subset bb(R)^3$ sono *equivalenti* se esiste un'*isotopia ambiente* che porta uno nell'altro, ovvero esiste continua, tale che:
#v(0.75em) \
*Def.* $K_0, K_1$ sono equivalenti se $exists H : bb(R)^3 times [0, 1] arrow bb(R)^3$ *isotopia ambiente*, ovvero tale che: *Def.* $K_0, K_1$ sono equivalenti se $exists H : bb(R)^3 times [0, 1] arrow bb(R)^3$ *isotopia ambiente*, ovvero tale che:
@ -90,7 +94,7 @@ e posta $H_t (x) colon.eq H(x, t)$ si ha:
#pause #pause
#v(0.75em) \
*Esistenza Proiezioni Regolari.* Sia $L subset bb(R)^3$ _link poligonale_, allora esiste un aperto denso $U$ tale che $forall v in U subset SS^2$, la proiezione sul piano $v^perp approx RR^2$ è regolare. *Esistenza Proiezioni Regolari.* Sia $L subset bb(R)^3$ _link poligonale_, allora esiste un aperto denso $U$ tale che $forall v in U subset SS^2$, la proiezione sul piano $v^perp approx RR^2$ è regolare.
@ -143,7 +147,7 @@ e posta $H_t (x) colon.eq H(x, t)$ si ha:
*Def.* $D_1 tilde D_2$ diagrammi di 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. *Def.* $D_1 tilde D_2$ diagrammi di 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.
#v(1em) \
#figure(image("assets/ambient-regular-isotopy-difference.jpg", height: 7cm)) #figure(image("assets/ambient-regular-isotopy-difference.jpg", height: 7cm))
@ -152,7 +156,7 @@ e posta $H_t (x) colon.eq H(x, t)$ si ha:
*Osservazione.* 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 *Osservazione.* 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
#v(1em) \
#figure(image("assets/move-1-factorization.png", width: 75%)) #figure(image("assets/move-1-factorization.png", width: 75%))
@ -160,7 +164,7 @@ e posta $H_t (x) colon.eq H(x, t)$ si ha:
*Osservazione.* Quando abbiamo una coppia di riccioli con segni opposti abbiamo la seguente proprietà di cancellazione detto _trucco di Whitney_. *Osservazione.* Quando abbiamo una coppia di riccioli con segni opposti abbiamo la seguente proprietà di cancellazione detto _trucco di Whitney_.
#v(1em) \
#figure(image("assets/whitney-trick.png", width: 100%)) #figure(image("assets/whitney-trick.png", width: 100%))
@ -244,16 +248,12 @@ e posta $H_t (x) colon.eq H(x, t)$ si ha:
*Def.* Per ogni diagramma di link _non orientato_ $K$, il polinomio $L_K in bb(Z)[a, a^(-1), z, z^(-1)]$ verifica i seguenti assiomi: *Def.* Per ogni diagramma di link _non orientato_ $K$, il polinomio $L_K in bb(Z)[a, a^(-1), z, z^(-1)]$ verifica i seguenti assiomi:
#set par(spacing: 1em) #set enum(numbering: "i.a)")
#set list(spacing: 1em)
#set enum(numbering: "i.a)", spacing: 1em)
1. $K tilde K' => L_K = L_K'$. 1. $K tilde K' => L_K = L_K'$.
2. Valgono le seguenti relazioni: 2. Valgono le seguenti relazioni:
#set enum(numbering: "i.a)", spacing: 1.25em)
1. $L[#skein.over-large] + L[#skein.under-large] = z (L[#skein.h-large] + L[#skein.v-large])$ 1. $L[#skein.over-large] + L[#skein.under-large] = z (L[#skein.h-large] + L[#skein.v-large])$
2. $L[#skein.unit-large] = 1$ 2. $L[#skein.unit-large] = 1$
@ -264,7 +264,7 @@ e posta $H_t (x) colon.eq H(x, t)$ si ha:
#pause #pause
#v(0.25em) \
*Osservazione.* A questo punto non sappiamo se $L_K$ _sia ben definito_. *Osservazione.* A questo punto non sappiamo se $L_K$ _sia ben definito_.
@ -274,21 +274,34 @@ e posta $H_t (x) colon.eq H(x, t)$ si ha:
#pause #pause
#v(0.75em) \
*Prop.* $F_K$ invariante di isotopia ambiente. *Prop.* $F_K$ invariante di isotopia ambiente.
#v(0.75em) _Dimostrazione._
#grid(
columns: (1fr, auto),
align: (left, left, right),
row-gutter: 1.75em,
// stroke: 1pt,
[
$F[ #skein.over-twist-large ] = pause a^(-w(#skein.over-twist)) dot L[ #skein.over-twist-large ]$
],
{
show math.equation: set text(size: 15pt)
$pause L[#skein.over-twist] = a L[#skein.strand], quad w(#skein.over-twist) = w(#skein.strand) + 1$
},
_Dim._ $pause = a^(-w(#skein.strand) - 1) dot a L[ #skein.strand-large ]$, [],
$display( $pause = a^(-w(#skein.strand)) cancel(stroke: #1pt, a^(-1)) dot cancel(stroke: #1pt, a) L[ #skein.strand-large ]$, [],
F[ #skein.over-twist-large ]
= pause a^(-w(#skein.over-twist)) dot L[ #skein.over-twist-large ] $pause = a^(-w(#skein.strand)) dot L[ #skein.strand-large ]$, [],
= pause a^(-(w(#skein.strand) + 1)) dot a L[ #skein.strand-large ]
= pause a^(-w(#skein.strand)) dot L[ #skein.strand-large ] $pause = F[ #skein.strand-large ]$, [],
= pause F[ #skein.strand-large ] )
)$
== Calcoli impliciti == Calcoli impliciti
@ -300,7 +313,7 @@ $display(
#let (alternatives,) = utils.methods(self) #let (alternatives,) = utils.methods(self)
#set align(center + top) #set align(center + top)
#v(3em) #v(7em)
#alternatives(position: center + top)[ #alternatives(position: center + top)[
#grid( #grid(
@ -475,8 +488,6 @@ $display(
}, },
) )
][ ][
#grid( #grid(
columns: 2, columns: 2,
gutter: 2em, gutter: 2em,
@ -610,7 +621,7 @@ $display(
[$K$ un diagramma di un nodo, $i$ etichetta di uno degli incroci] [$K$ un diagramma di un nodo, $i$ etichetta di uno degli incroci]
v(1em) v(1.5em)
grid( grid(
columns: 4, columns: 4,
@ -649,13 +660,16 @@ $display(
$K$, $S_i K$, $E_i K$, $e_i K$, $K$, $S_i K$, $E_i K$, $e_i K$,
) )
pause pause
[\ ]
[$lambda = (lambda_n, dots, lambda_0)$ sequenza di etichette di incroci di $K$] [\ ]
v(1em) [$lambda = (lambda_n, dots, lambda_0)$ sequenza di etichette di incroci di $K$]
v(1.5em)
$ $
A_i^lambda colon.eq E_lambda_i S_lambda_(i-1) dots.c space S_lambda_0 A_i^lambda colon.eq E_lambda_i S_lambda_(i-1) dots.c space S_lambda_0
@ -676,11 +690,13 @@ $display(
self => { self => {
let (only, uncover) = utils.methods(self) let (only, uncover) = utils.methods(self)
set align(center)
{ {
set align(center)
[$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:] [$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:]
} }
show math.equation: set text(size: 18pt)
v(1em) v(1em)
only( only(
@ -730,7 +746,12 @@ $display(
) )
#slide({ #slide({
align(center, [$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:]) {
set align(center)
[$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:]
}
show math.equation: set text(size: 18pt)
v(1em) v(1em)
@ -753,7 +774,12 @@ $display(
}) })
#slide({ #slide({
align(center, [$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:]) {
set align(center)
[$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:]
}
show math.equation: set text(size: 18pt)
v(1em) v(1em)
@ -776,7 +802,12 @@ $display(
}) })
#slide({ #slide({
align(center, [$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:]) {
set align(center)
[$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:]
}
show math.equation: set text(size: 18pt)
v(1em) v(1em)
@ -798,17 +829,15 @@ $display(
)$ )$
}) })
#slide[ #slide({
{
#{
set align(center) set align(center)
[$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:] [$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:]
} }
#v(1em) show math.equation: set text(size: 18pt)
v(1em)
$ $
& L[K] + cancel(L[S_0 K]) = z( L[E_0 K] + L[e_0 K] ) \ & L[K] + cancel(L[S_0 K]) = z( L[E_0 K] + L[e_0 K] ) \
@ -817,24 +846,30 @@ $display(
(-1)^n (& cancel(L[S_(n-1) dotss S_0 K]) + L [hat(K)(p)]) = (-1)^n z (L[E_n S_(n-1) dotss S_0 K] + L[e_n S_(n-1) dotss S_0 K]) (-1)^n (& cancel(L[S_(n-1) dotss S_0 K]) + L [hat(K)(p)]) = (-1)^n z (L[E_n S_(n-1) dotss S_0 K] + L[e_n S_(n-1) dotss S_0 K])
$ $
#{ v(1.5em)
v(1.5em)
h(4.4em)
h(4.4em) $display(
$display( => L[K] = #rect(
=> L[K] = (-1)^(abs(lambda(q))+1) L[hat(K)(p)] + fill: gray.mix(white),
z sum_K^text(fill: #white, n) (lambda) outset: (top: 0.25em, bottom: 0.5em),
)$ radius: 0.25em,
show math.equation: set text(size: 14pt) $display(
h(1fr) (-1)^(abs(lambda(q))+1) L[hat(K)(p)] +
$display((sum_K (lambda) colon.eq sum_(i=0)^n (-1)^i (L[A_i^lambda K] + L[B_i^lambda K])))$ z sum_K^text(fill: #gray.mix(white), n) (lambda)
} )$,
] )
)$
show math.equation: set text(size: 14pt)
h(1fr)
$display((sum_K (lambda) colon.eq sum_(i=0)^n (-1)^i (L[A_i^lambda K] + L[B_i^lambda K])))$
})
== Definizione induttiva == Definizione induttiva
#slide( #slide(
repeat: 2, repeat: 3,
self => [ self => [
#let (alternatives,) = utils.methods(self) #let (alternatives,) = utils.methods(self)
@ -863,7 +898,49 @@ $display(
b) #h(0.35em) Se $n=1$: $display( b) #h(0.35em) Se $n=1$: $display(
L_K (a, z) colon.eq L_K (a, z) colon.eq
(-1)^(abs(lambda(p))+1) L[hat(K)(p)] + z sum_K (lambda(p)) #rect(
fill: gray.mix(white),
inset: (top: 0.65em),
outset: (top: 0.25em, bottom: 0.5em),
radius: 0.25em,
$display((-1)^(abs(lambda(p))+1) L[hat(K)(p)] + z sum_K (lambda(p)))$,
)
// display((-1)^(abs(lambda(p))+1) L[hat(K)(p)] + z sum_K (lambda(p)))
)$
][
*Def (induttiva di $L_K$).* Il polinomio $L_(K)(a,z)$ è definito induttivamente come segue:
// la definizione è sotto perché gli enumerate non vanno d'accordo con le figure
1. Se $K$ è in _forma discendente_: $L_K (a, z) colon.eq a^w(K)$
2. Se $K = K_1 union K_2$: $L(K_1 union K_2) colon.eq delta L(K_1) L(K_2)$ #h(1fr) (con $delta colon.eq (a + 1 slash a) / z - 1$)
3. Altrimenti $K = K_1 union dotss union K_n$:
#v(0.75em)
a) #h(0.35em) Se $n > 1$: $display(
L_K (a, z) colon.eq
1 / n
sum_(i=1)^n
((-1)^(abs(lambda(p_i))+1) delta L_(K_i) L_(K - K_i) + z sum_K (lambda(p_i)))
)$
#v(1.5em)
b) #h(0.35em) Se $n=1$: $display(
L_K (a, z) colon.eq
#rect(
fill: white,
inset: (top: 0.65em),
outset: (top: 0.25em, bottom: 0.5em),
radius: 0.25em,
$display((-1)^(abs(lambda(p))+1) L[hat(K)(p)] + z sum_K (lambda(p)))$,
)
// display((-1)^(abs(lambda(p))+1) L[hat(K)(p)] + z sum_K (lambda(p)))
)$ )$
][ ][
@ -955,6 +1032,10 @@ $display(
4. Se $K$ ammette una _funzione di slacciamento_ allora $L_K = a^w(K)$ 4. Se $K$ ammette una _funzione di slacciamento_ allora $L_K = a^w(K)$
] ]
== Dimostrazione buona definizione
= Laboratorio Computazionale = Laboratorio Computazionale
== Implementazione in Python == Implementazione in Python
@ -982,7 +1063,49 @@ Per il progetto di Lab. Comp. abbiamo scritto una *nuova implementazione* in _Py
- Verifica di tutti i polinomi contenuti nel *database di KnotInfo*. - Verifica di tutti i polinomi contenuti nel *database di KnotInfo*.
- _Trovato un errore nel nodo_ $10_125$, c'è $L_m(K)$ invece di $L_K$. - _Trovato un errore nel nodo_ $10_125$, c'è $F[10_125]$ invece di $F[10_125]$ ovvero $F_(10_125)(1 slash a, z)$. #h(1fr)
== Implementazione in Python
#{
set align(center)
set text(15pt)
show math.equation: set text(size: 12pt)
grid(
columns: 2,
align: top,
gutter: 2em,
[*Polinomio corretto*],
[*Polinomio in KnotInfo*],
$
F[10_125] = & z^8 (1 / a^2 + 1) + z^7 (a + 2 / a + 1 / a^3) + z^6 (-6 - 6 / a^2) \
& + space z^5 (-5 a - 11 / a - 6 / a^3)
+ z^4 (2 a^2 + 13 + 11 / a^2) \
& + space z^3 (a^3 + 8 a + 17 / a + 10 / a^3)
+ z^2 (a^4 - 6 a^2 - 15 - 8 / a^2) \
& + space z (a^5 - a^3 - 6 a - 8 / a - 4 / a^3)
+ 3 a^2 + 7 + 3 / a^2
$,
$
F[m(10_125)] = & z^8 (a^2 + 1) + z^7 (a^3 + 2 a + 1 / a) + z^6 (-6 a^2 - 6) \
& + space z^5 (-6 a^3 - 11 a - 5 / a)
+ z^4 (11 a^2 + 13 + 2 / a^2) \
& + space z^3 (10 a^3 + 17 a + 8 / a + 1 / a^3)
+ z^2 (-8 a^2 - 15 - 6 / a^2 + 1 / a^4) \
& + space z (-4 a^3 - 8 a - 6 / a - 1 / a^3 + 1 / a^5)
+ 3 a^2 + 7 + 3 / a^2
$,
image("assets/10_125.png", height: 6cm),
scale(x: -100%, image("assets/10_125.png", height: 6cm)),
)
}
== Fine == Fine
@ -990,5 +1113,9 @@ Per il progetto di Lab. Comp. abbiamo scritto una *nuova implementazione* in _Py
#set align(center) #set align(center)
#set text(size: 42pt) #set text(size: 42pt)
Grazie per l'attenzione *Grazie per l'attenzione*
] ]
== Appendice

Loading…
Cancel
Save