diff --git a/out/presentation.pdf b/out/presentation.pdf index c08d912..97afc7f 100644 Binary files a/out/presentation.pdf and b/out/presentation.pdf differ diff --git a/src/presentation.typ b/src/presentation.typ index 1475d2c..5fa5158 100644 --- a/src/presentation.typ +++ b/src/presentation.typ @@ -40,8 +40,8 @@ #show math.equation: set text(size: 19pt) #show strong: it => text(weight: 600, it.body) #set par(leading: 1em, spacing: 1em) -#set list(indent: 0.25em, body-indent: 0.75em, spacing: 1em) -#set enum(indent: 0.25em, body-indent: 0.75em, spacing: 1em, numbering: "i.1.a)") +#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)") #show figure.caption: caption => block(inset: (x: 2em), { set align(left) @@ -64,13 +64,15 @@ *Def.* $K subset bb(R)^3$ è un *nodo (tame)* se esiste $f : bb(S)^1 arrow.hook bb(R)^3$ embedding loc. piatto con $K = f(bb(S)^1)$. -*Def.* Possiamo generalizzare i nodi $bb(S)^1 arrow bb(R)^3$ a *link* sostituendo con $bb(S)^1 union.sq dots.c union.sq bb(S)^1 arrow bb(R)^3$. - -\ +*Def.* Nodi $bb(S)^1 arrow bb(R)^3 ~>$ *Link* $bb(S)^1 union.sq dots.c union.sq bb(S)^1 arrow bb(R)^3$. #pause -*Def.* $K_0, K_1 subset bb(R)^3$ sono *equivalenti* se esiste un'*isotopia ambiente* che porta uno nell'altro, ovvero esiste $H : bb(R)^3 times [0, 1] arrow bb(R)^3$ 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: - $forall t in [0, 1], H(dot, t)$ è un omeomorfismo @@ -86,52 +88,62 @@ e posta $H_t (x) colon.eq H(x, t)$ si ha: // *Fatto (Crowell).* Dato un nodo $K subset bb(R)^3$, $K$ è *nodo (tame)* $<=>$ $K$ è *poligonale*. -== Proiezioni e Diagrammi +#pause -*Fatto.* Sia $L subset bb(R)^3$ link poligonale, allora esiste un aperto denso $U subset bb(S)^2$ tale che $forall v in U$ e detta $pi_v : bb(R)^3 arrow v^perp$ la proiezione sul piano $v^perp$ come in figura, abbiamo che: +#v(0.75em) -#grid( - columns: (auto, 1fr), - gutter: 1em, - figure(image("assets/projection-plane.png", height: 6cm)), - [ - 1. $L$ non ha segmenti paralleli a $v$. +*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. - 2. Se $x in pi_v (L)$ è tale che $abs(pi^(-1)(x)) > 1$, ovvero è un punto *singolare*, allora: +- $x in pi_v (L) subset v^perp$ tale che $abs(pi^(-1)_v (x)) = 2$ sono detti *incroci*. - - $pi_v^(-1)(x)$ non contiene vertici di $L$ +// == Proiezioni e Diagrammi - - $abs(pi^(-1)(x)) = 2$ ovvero è un *punto doppio*, questi sono gli *incroci* della proiezione. +// #grid( +// columns: (auto, 1fr), +// gutter: 1em, +// figure(image("assets/projection-plane.png", height: 6cm)), +// [ +// 1. $L$ non ha segmenti paralleli a $v$. - - $x$ è un punto di intersezione trasversa +// 2. Se $x in pi_v (L)$ è tale che $abs(pi^(-1)(x)) > 1$, ovvero è un punto *singolare*, allora: - Gli altri punti sono detti *regolari*. - ], -) +// - $pi_v^(-1)(x)$ non contiene vertici di $L$ + +// - $abs(pi^(-1)(x)) = 2$ ovvero è un *punto doppio*, questi sono gli *incroci* della proiezione. + +// - $x$ è un punto di intersezione trasversa + +// Gli altri punti sono detti *regolari*. +// ], +// ) == Proiezioni e Diagrammi *Def.* 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. #pad( - top: 1em, + top: 1.5em, grid( columns: (1fr, auto), gutter: 1em, - align: top, + align: horizon, [ *Def.* Le mosse I, II, III in figura sono dette *mosse di Reidemeister*. - *Teorema (di Reidemeister).* Due diagrammi di link _equivalenti_ sono collegati da una _successione finita mosse di Reidemeister_ e isotopie planari. + \ + + *Teorema (di Reidemeister).* Due diagrammi di link _equivalenti_ sono collegati da una _successione finita di mosse di Reidemeister_ e isotopie planari. ], - figure(image("assets/reidemeister-moves.jpg", height: 6.75cm)), + figure(image("assets/reidemeister-moves.jpg", height: 6cm)), ), ) == Isotopia Regolare -*Def.* $D_1, 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)) @@ -140,77 +152,77 @@ 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 +#v(1em) + #figure(image("assets/move-1-factorization.png", width: 75%)) == Comportamento Isotopia Regolare *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%)) -== Diagrammi in forma discendente +// == Diagrammi in forma discendente -#align(center)[ - Dato $K$ il *nodo banale standard* (o in _forma discendente_) associato è $hat(K)(cal(U), p)$: +// #align(center)[ +// Dato $K$ il *nodo banale standard* (o in _forma discendente_) associato è $hat(K)(cal(U), p)$: - #v(1em) +// #v(1em) - #image("assets/standard-unlink-construction.png", height: 8cm) -] +// #image("assets/standard-unlink-construction.png", height: 8cm) +// ] -== Comportamento Isotopia Regolare +// == Comportamento Isotopia Regolare -*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. +// *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. -Ovvero un nodo in forma discendente è _equivalente_ ad uno composto solo da riccioli. +// Ovvero un nodo in forma discendente è _equivalente_ ad uno composto solo da riccioli. -\ +// \ -#pause +// #pause -_Dim._ Consideriamo una successione di mosse $K = D_0 stretch(arrow) dots.c stretch(arrow) D_n = #skein.unit-large$. Modifichiamo le mosse nei seguenti casi: +// _Dim._ Consideriamo una successione di mosse $K = D_0 stretch(arrow) dots.c stretch(arrow) D_n = #skein.unit-large$. Modifichiamo le mosse nei seguenti casi: -- Mosse di tipo I che rimuovono un ricciolo +// - Mosse di tipo I che rimuovono un ricciolo -- Mosse di tipo I che aggiungono un ricciolo +// - Mosse di tipo I che aggiungono un ricciolo -- Mosse di tipo II, III +// - Mosse di tipo II, III -== Comportamento Isotopia Regolare +// == Comportamento Isotopia Regolare -#figure(image("assets/modified-curl-add-before.png", width: 7% * 6.5)) +// #figure(image("assets/modified-curl-add-before.png", width: 7% * 6.5)) -$ #rotate(90deg, $~>$) $ +// $ #rotate(90deg, $~>$) $ -#figure(image("assets/modified-curl-add-after.png", width: 7% * 13)) +// #figure(image("assets/modified-curl-add-after.png", width: 7% * 13)) -#align(center)[Mosse di tipo I che aggiungono un ricciolo] +// #align(center)[Mosse di tipo I che aggiungono un ricciolo] -== Comportamento Isotopia Regolare +// == Comportamento Isotopia Regolare -#v(2em) +// #v(2em) -#figure(image("assets/modified-r2-before.png", width: 8% * 6.5)) +// #figure(image("assets/modified-r2-before.png", width: 8% * 6.5)) -$ #rotate(90deg, $~>$) $ +// $ #rotate(90deg, $~>$) $ -#figure(image("assets/modified-r2-after.png", width: 8% * 8.5)) +// #figure(image("assets/modified-r2-after.png", width: 8% * 8.5)) -#align(center)[Mosse di tipo II, III] +// #align(center)[Mosse di tipo II, III] == Writhe -*Def.* Definiamo *il segno* di un incrocio di un diagramma come segue: +*Def.* Il *segno* di un incrocio di un diagramma orientato è: $epsilon(#skein-generic(size-factor: 1.5, direction: (+1, +1))) = +1, epsilon(#skein-generic(size-factor: 1.5, direction: (+1, -1))) = -1$ -$ - epsilon(#skein-generic(size-factor: 1.5, direction: (+1, +1))) = +1 - #h(2em) - epsilon(#skein-generic(size-factor: 1.5, direction: (+1, -1))) = -1 -$ +\ *Def.* $K$ link orientato, definiamo il *writhe* $display(w(K) colon.eq sum_(c "incrocio") epsilon(c))$. @@ -218,25 +230,30 @@ $ \ -*Prop.* Se $K$ è il diagramma di un nodo, il _writhe_ non dipende dall'orientazione. +*Prop.* Se $K$ è il diagramma di un nodo, il _writhe_ *non dipende dall'orientazione*. #pause -*Prop.* Il writhe è un invariante di isotopia regolare, ovvero $K_1 tilde K_2 => w(K_1) = w(K_2)$. +\ + +*Prop.* Il writhe è un *invariante di isotopia regolare*, ovvero $K_1 tilde K_2 => w(K_1) = w(K_2)$. = Polinomio di Kauffman == Assiomi -*Def.* Sia $K$ un diagramma di un link _non orientato_, $L_K in bb(Z)[a, a^(-1), z, z^(-1)]$ e verifica: +*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: 1.5em) -#set enum(numbering: "i.a)", spacing: 1.5em) +#set par(spacing: 1em) +#set list(spacing: 1em) +#set enum(numbering: "i.a)", spacing: 1em) 1. $K tilde K' => L_K = L_K'$. 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])$ 2. $L[#skein.unit-large] = 1$ @@ -247,9 +264,31 @@ $ #pause -#v(0.5em) +#v(0.25em) + +*Osservazione.* A questo punto non sappiamo se $L_K$ _sia ben definito_. + +== Normalizzazione a $F_K$ + +*Def.* $F_K(a, z) colon.eq a^(-w(K)) dot L_K (a, z)$ + +#pause + +#v(0.75em) + +*Prop.* $F_K$ invariante di isotopia ambiente. -*Osservazione.* A questo punto non sappiamo se $L_K$ sia ben definito. +#v(0.75em) + +_Dim._ + +$display( + F[ #skein.over-twist-large ] + = pause a^(-w(#skein.over-twist)) dot L[ #skein.over-twist-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 ] +)$ == Calcoli impliciti @@ -257,7 +296,7 @@ $ // #show image: it => rect(stroke: 1pt + red, inset: 0pt, it) -#slide(repeat: 5, self => [ +#slide(repeat: 8, self => [ #let (alternatives,) = utils.methods(self) #set align(center + top) @@ -324,6 +363,135 @@ $ align: center, [*Link $L[#skein.unit-large #skein.unit-large]$*], $ + & 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-large ] + + + a^(-1) L[ #skein.unit-large ] = + z ( + delta + + + L [ #skein.unit-large ] + ) + $, + ) + ][ + #grid( + columns: 1, + row-gutter: 1.5em, + column-gutter: 3em, + align: center, + [*Link $L[#skein.unit-large #skein.unit-large]$*], + $ + & 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-large ] + + + a^(-1) L[ #skein.unit-large ] = + z ( + delta + + + L [ #skein.unit-large ] + ) \ + & => a + a^(-1) = z ( delta + 1 ) + $, + ) + ][ + #grid( + columns: 1, + row-gutter: 1.5em, + column-gutter: 3em, + align: center, + [*Link $L[#skein.unit-large #skein.unit-large]$*], + $ + & 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-large ] + + + a^(-1) L[ #skein.unit-large ] = + z ( + delta + + + L [ #skein.unit-large ] + ) \ + & => a + a^(-1) = z ( delta + 1 ) \ + & => delta = (a + 1 slash a) / z - 1 + $, + ) + ][ + #grid( + columns: 1, + row-gutter: 1.5em, + column-gutter: 3em, + align: center, + [*Link $L[#skein.unit-large #skein.unit-large]$*], + { + $ + & 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-large ] + + + a^(-1) L[ #skein.unit-large ] = + z ( + delta + + + L [ #skein.unit-large ] + ) \ + & => a + a^(-1) = z ( delta + 1 ) \ + & => delta = (a + 1 slash a) / z - 1 + $ + + $ + ~> L[K_1 union.sq K_2] = delta L[K_1] L[K_2] + $ + }, + ) + ][ + + + #grid( + columns: 2, + gutter: 2em, + + align: center + top, + + { + grid( + columns: 1, + row-gutter: 1.5em, + column-gutter: 3em, + align: center, + [*Link $L[#skein.unit-large #skein.unit-large]$*], + { + $ & L[ #knot-picture("infinity-0.png", height: 2.25em) ] + L[ #knot-picture("infinity-1.png", height: 2.25em) ] = @@ -332,7 +500,7 @@ $ + L[ #knot-picture("infinity-3.png", height: 2.25em) ] ) \ - pause & => + & => a L[ #skein.unit-large ] + a^(-1) L[ #skein.unit-large ] = @@ -343,107 +511,77 @@ $ ) \ & => a + a^(-1) = z ( delta + 1 ) \ & => delta = (a + 1 slash a) / z - 1 - $, - ) - ][ - #grid( - columns: 1, - row-gutter: 1.5em, - column-gutter: 3em, - align: center, - [*Link $L[#skein.unit-large #skein.unit-large]$*], - { - $ - & 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) ] - ) \ - #pause & => - a L[ #skein.unit-large ] - + - a^(-1) L[ #skein.unit-large ] = - z ( - delta - + - L [ #skein.unit-large ] - ) \ - & => a + a^(-1) = z ( delta + 1 ) \ - & => delta = (a + 1 slash a) / z - 1 - $ + $ - $ - ~> L[K_1 union.sq K_2] = delta L[K_1] L[K_2] - $ + $ + ~> L[K_1 union.sq K_2] = delta L[K_1] L[K_2] + $ + }, + ) + }, + { + set text(size: 11pt) + show math.equation: set text(size: 13pt) + + grid( + columns: 1, + row-gutter: 1.5em, + align: center + horizon, + + [ *Link di Hopf*], + + $ + & 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 + $, + + [ *Nodo trifoglio*], + $ + & 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 + $, + ) }, ) ] ]) -== Calcoli impliciti - -#slide({ - set align(center) - show math.equation: set text(size: 15pt) - - grid( - columns: 2, - row-gutter: 1.5em, - column-gutter: 3em, - align: center + top, - - [*Link di Hopf*], [*Nodo trifoglio*], - - $ - & 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 - $, - $ - & 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 - $, - ) -}) - // == Invariante di isotopia ambiente associato // *Def.* Definiamo $F_K in bb(Z)[a, a^(-1), z, z^(-1)]$ per diagrammi di link orientati $K$ come @@ -457,11 +595,21 @@ $ == Considerazioni preliminari -#slide({ - [*Def.* Sia $K$ un diagramma di un nodo, $p in K$ un punto di partenza direzionato e sia $lambda = (lambda_n, dots, lambda_0)$ una sequenza di etichette di incroci di $K$:] +#align(center)[ + Il *nodo banale standard* (o in _forma discendente_) associato $K$ è $hat(K)(cal(U), p)$: + + #v(1em) + + #image("assets/standard-unlink-construction.png", height: 8cm) +] + +== Considerazioni preliminari +#slide({ set align(center) + [$K$ un diagramma di un nodo, $i$ etichetta di uno degli incroci] + v(1em) grid( @@ -503,22 +651,21 @@ $ pause + + [$lambda = (lambda_n, dots, lambda_0)$ sequenza di etichette di incroci di $K$] + v(1em) + $ 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 $ +}) - pause - v(1em) - $ - sum_K (lambda) colon.eq sum_(i=0)^n (-1)^i (L[A_i^lambda K] + L[B_i^lambda K]) - $ -}) == Considerazioni preliminari @@ -531,7 +678,7 @@ $ set align(center) { - [Sia $lambda$ una sequenza di scambi che porta $K$ a $hat(K)$:] + [$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:] } v(1em) @@ -539,20 +686,20 @@ $ only( "1-3", $ - & L[K] + L[S_0 K] = z( L[E_0 K] + L[e_0 K] ) \ - & pause 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 \ - & pause L[S_(n-1) dotss S_0 K] + L [hat(K)] = z (L[E_n S_(n-1) dotss S_0 K] + L[e_n S_(n-1) dotss S_0 K]) + & L[K] + L[S_0 K] = z( L[E_0 K] + L[e_0 K] ) \ + & pause 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 \ + & pause L[S_(n-1) dotss S_0 K] + L [hat(K)(p)] = z (L[E_n S_(n-1) dotss S_0 K] + L[e_n S_(n-1) dotss S_0 K]) $, ) only( 4, $ - & 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 \ - (-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]) + & 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 \ + (-1)^n ( & 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]) $, ) @@ -562,7 +709,7 @@ $ & 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] ) \ & 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]) + (-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]) $, ) @@ -573,7 +720,7 @@ $ h(4.4em) $display( - => L[K] + (-1)^n L[hat(K)] = + => L[K] + (-1)^n L[hat(K)(p)] = 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] ) @@ -583,7 +730,7 @@ $ ) #slide({ - align(center, [Sia $lambda$ una sequenza di scambi che porta $K$ a $hat(K)$:]) + align(center, [$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:]) v(1em) @@ -591,14 +738,14 @@ $ & 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] ) \ & 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]) + (-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) h(4.4em) $display( - => L[K] + (-1)^n L[hat(K)] = + => L[K] + (-1)^n L[hat(K)(p)] = 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] ) @@ -606,7 +753,7 @@ $ }) #slide({ - align(center, [Sia $lambda$ una sequenza di scambi che porta $K$ a $hat(K)$:]) + align(center, [$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:]) v(1em) @@ -614,14 +761,14 @@ $ & 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] ) \ & 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]) + (-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) h(4.4em) $display( - => L[K] + (-1)^n L[hat(K)] = + => L[K] + (-1)^n L[hat(K)(p)] = z sum_(i=0)^n (-1)^i ( L[A_i^lambda K] + L[B_i^lambda K] ) @@ -629,7 +776,7 @@ $ }) #slide({ - align(center, [Sia $lambda$ una sequenza di scambi che porta $K$ a $hat(K)$:]) + align(center, [$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:]) v(1em) @@ -637,14 +784,14 @@ $ & 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] ) \ & 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]) + (-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) h(4.4em) $display( - => L[K] = (-1)^(n+1) L[hat(K)] + + => L[K] = (-1)^(n+1) L[hat(K)(p)] + z sum_(i=0)^n (-1)^i ( L[A_i^lambda K] + L[B_i^lambda K] ) @@ -657,7 +804,7 @@ $ #{ set align(center) - [Sia $lambda$ una sequenza di scambi che porta $K$ a $hat(K)$:] + [$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:] } #v(1em) @@ -667,7 +814,7 @@ $ & 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] ) \ & 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]) + (-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]) $ #{ @@ -675,41 +822,83 @@ $ h(4.4em) $display( - => L[K] = (-1)^(n+1) L[hat(K)] + + => L[K] = (-1)^(abs(lambda(q))+1) L[hat(K)(p)] + z sum_K^text(fill: #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 -*Def (induttiva di $L_K$).* Il polinomio $L_(K)(a,z)$ è definito induttivamente come segue: +#slide( + repeat: 2, + self => [ + #let (alternatives,) = utils.methods(self) + + #alternatives[ -// la definizione è sotto perché gli enumerate non vanno d'accordo con le figure + *Def (induttiva di $L_K$).* Il polinomio $L_(K)(a,z)$ è definito induttivamente come segue: -1. Se $K$ è in _forma discendente_: $L_K (a, z) colon.eq a^w(K)$ + // la definizione è sotto perché gli enumerate non vanno d'accordo con le figure -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$) + 1. Se $K$ è in _forma discendente_: $L_K (a, z) colon.eq a^w(K)$ -3. Altrimenti $K = K_1 union dotss union K_n$: + 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$) - #v(0.75em) + 3. Altrimenti $K = K_1 union dotss union K_n$: - a) #h(0.35em) Se $n > 1$: $display( - 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))) - )$ + #v(0.75em) - #v(1.5em) + 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))) + )$ - b) #h(0.35em) Se $n=1$: $display( - 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))) - )$ + #v(1.5em) + + b) #h(0.35em) Se $n=1$: $display( + L_K (a, z) colon.eq + (-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 / (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))) + )$ + + #v(1.5em) + + b) #h(0.35em) Se $n=1$: $display( + 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 @@ -718,13 +907,12 @@ $ #slide[ - L'ipotesi induttiva che useremo nel corso della dimostrazione è la seguente: #set par(spacing: 1.5em) #set list(spacing: 1.5em) #set enum(numbering: "a)", spacing: 1.5em) - Per ogni diagramma di link $K$ con $< N$ incroci e per diagrammi contenenti $#skein.over-twist-large$ con $< N$ incroci: + *Def (Ipotesi induttiva).* Dimostreremo induttivamente le seguenti proprietà: per ogni diagramma di link $K$ con $< N$ incroci e per diagrammi contenenti $#skein.over-twist-large$ con $< N$ incroci: 1. $L_K$ è ben definito (non dipende dalla scelta di punto base). @@ -772,21 +960,21 @@ $ == Implementazione in Python #show raw: set text(size: 15pt) -#set par(spacing: 1.25em) -#set list(spacing: 1.25em) -#set enum(numbering: "a)", spacing: 1.25em) +#set par(spacing: 1.5em) +#set list(spacing: 1.5em) +#set enum(numbering: "a)", spacing: 1.5em) Implementazioni esistenti: -- *KnotScape*: scritto in C, degli anni '90. +- *KnotScape*: scritto in C, degli anni \~1990. -- *KnotTheory*: ultimo aggiornamento \~2011, per Mathematica. +- *KnotTheory*: ultimo aggiornamento \~2010, per Mathematica. #pause Per il progetto di Lab. Comp. abbiamo scritto una *nuova implementazione* in _Python_ open source: -- Rappresentazione di nodi attraverso codici *PD* e *SG*. +- Rappresentazione di nodi attraverso *codici PD* e *SG*. - Algoritmo per il calcolo di $L_K$ e $F_K$. @@ -798,4 +986,9 @@ Per il progetto di Lab. Comp. abbiamo scritto una *nuova implementazione* in _Py == Fine -#" " +#slide[ + #set align(center) + #set text(size: 42pt) + + Grazie per l'attenzione +]