fjwfjewifpwe

main
Antonio De Lucreziis 11 months ago
parent 47cf7ae583
commit bbba00592d

Binary file not shown.

@ -3,12 +3,9 @@
#import "@preview/cetz:0.3.2"
#import "@preview/fletcher:0.5.4" as fletcher: edge, node
#import "@preview/numbly:0.1.0": numbly
// #import "@preview/theorion:0.3.2": *
// #show: show-theorion
#import "skein.typ": *
// cetz and fletcher bindings for touying
#let cetz-canvas = touying-reducer.with(reduce: cetz.canvas, cover: cetz.draw.hide.with(bounds: true))
#let fletcher-diagram = touying-reducer.with(reduce: fletcher.diagram, cover: fletcher.hide)
@ -16,32 +13,15 @@
#show: dm-unipi-theme.with(aspect-ratio: "4-3", config-info(
title: [Il Polinomio di Kauffman: un invariante di isotopia regolare],
subtitle: [Tesi di Laurea Triennale],
// author: {
// set align(center)
// grid(
// columns: 2,
// row-gutter: 0.75em,
// column-gutter: 0.5em,
// align: (right, left),
// [*Candidato:*], [Antonio De Lucreziis],
// [*Relatore:*], [Paolo Lisca],
// )
// // grid(align: left, [*Candidato:* Antonio De Lucreziis \ *Relatore:* Paolo Lisca])
// },
author: [Antonio De Lucreziis],
date: [18 Luglio 2025],
institution: [Dipartimento di Matematica \ Università di Pisa],
logo: image("assets/dm-unipi-logo-bianco.png"),
))
// #set text(font: "Source Sans Pro", weight: 500, size: 20pt)
#set text(font: "Open Sans", weight: 400, size: 16pt)
#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.6em, body-indent: 0.75em, spacing: 1em)
// #set enum(indent: 0.6em, body-indent: 0.75em, spacing: 1em, numbering: "i.1.a)")
#set par(spacing: 1.5em)
#set list(indent: 0.5em, body-indent: 0.75em, spacing: 1.5em)
@ -60,11 +40,6 @@
== Nodi e Diagrammi
// *Def.* $X, Y$ spazi topologici, $f : X arrow Y$ continua è *embedding* se $X approx f(X) subset Y$.
// *Def.* $f : X arrow Y$ embedding, $p in X$ allora $f$ è *localmente piatto* in $p$ se esiste $U subset bb(R)^3$ intorno di $p$ tale che $U approx DD^2 times [0,1]$ e $U inter f(X) <-> {0} times [0, 1]$.
// \
*Nodo.* $K subset bb(R)^3$ è un *nodo (tame)* se $exists f : bb(S)^1 arrow.hook bb(R)^3$ _embedding loc. piatto_ con $K = f(bb(S)^1)$.
@ -72,8 +47,6 @@
#pause
// *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$ sono equivalenti se $exists H : bb(R)^3 times [0, 1] arrow bb(R)^3$ *isotopia ambiente*, ovvero tale che:
@ -86,71 +59,23 @@ e posta $H_t (x) colon.eq H(x, t)$ si ha:
- $H_1(K_0) = K_1$
// == Introduzione
// *Def.* Un *nodo poligonale* è un nodo equivalente ad un'unione finita di segmenti lineari.
// *Fatto (Crowell).* Dato un nodo $K subset bb(R)^3$, $K$ è *nodo (tame)* $<=>$ $K$ è *poligonale*.
#pause
\
*Def.* Un *diagramma* $D subset bb(R)^2$ proviene da un link $L subset RR^3$ attraverso una proiezione regolare. I punti doppi del diagramma sono detti *incroci*.
// di un link $L subset bb(R)^3$ è l'immagine di $L$ attraverso una proiezione decorata con l'informazione sopra/sotto ad ogni incrocio.
// *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.
// - $x in pi_v (L) subset v^perp$ tale che $abs(pi^(-1)_v (x)) = 2$ sono detti *incroci*.
// == Proiezioni e Diagrammi
// #grid(
// columns: (auto, 1fr),
// gutter: 1em,
// figure(image("assets/projection-plane.png", height: 6cm)),
// [
// 1. $L$ non ha segmenti paralleli a $v$.
// 2. Se $x in pi_v (L)$ è tale che $abs(pi^(-1)(x)) > 1$, ovvero è un punto *singolare*, allora:
// - $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*.
// ],
// )
== Teorema di Reidemeister
// #grid(
// columns: (1fr, auto),
// gutter: 1em,
// align: top,
// [
// ],
// ,
// )
*Mosse di Reidemeister.* Le mosse I, II, III in figura sono dette.
*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: 7cm))
== Isotopia Regolare
#slide[
#set align(center)
#block([
@ -159,85 +84,11 @@ e posta $H_t (x) colon.eq H(x, t)$ si ha:
L'*isotopia regolare* è la relazione di equivalenza su diagrammi di link \ generata solo dalle mosse II e III.
])
// $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.
#figure(image("assets/ambient-regular-isotopy-difference.jpg", height: 7cm))
]
// == Comportamento Isotopia Regolare
// *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
// \
// #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_.
// \
// #figure(image("assets/whitney-trick.png", width: 100%))
// == Diagrammi in forma discendente
// #align(center)[
// Dato $K$ il *nodo banale standard* (o in _forma discendente_) associato è $hat(K)(cal(U), p)$:
// #v(1em)
// #image("assets/standard-unlink-construction.png", height: 8cm)
// ]
// == 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.
// Ovvero un nodo in forma discendente è _equivalente_ ad uno composto solo da riccioli.
// \
// #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:
// - Mosse di tipo I che rimuovono un ricciolo
// - Mosse di tipo I che aggiungono un ricciolo
// - Mosse di tipo II, III
// == Comportamento Isotopia Regolare
// #figure(image("assets/modified-curl-add-before.png", width: 7% * 6.5))
// $ #rotate(90deg, $~>$) $
// #figure(image("assets/modified-curl-add-after.png", width: 7% * 13))
// #align(center)[Mosse di tipo I che aggiungono un ricciolo]
// == Comportamento Isotopia Regolare
// #v(2em)
// #figure(image("assets/modified-r2-before.png", width: 8% * 6.5))
// $ #rotate(90deg, $~>$) $
// #figure(image("assets/modified-r2-after.png", width: 8% * 8.5))
// #align(center)[Mosse di tipo II, III]
== Writhe
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$
$D$ diagramma di un link orientato, il *writhe* $display(w(D) colon.eq sum_(c "incrocio") epsilon(c))$.
@ -272,10 +123,6 @@ Dimostreremo che per ogni diagramma di link _non orientato_ esiste un polinomio
4. $L[#skein.under-twist-large] = a^(-1) L[#skein.strand-large]$
// \
// *Osservazione.* A questo punto non sappiamo se $L_K$ _sia ben definito_.
== Normalizzazione a invariante di isotopia ambiente
*Definizione.* $F_D (a, z) colon.eq a^(-w(D)) dot L_D (a, z)$
@ -606,25 +453,11 @@ _Dimostrazione._
]
])
// == 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
// $
// F_K colon.eq a^(-w(K)) L_K
// $
// dove $L_K$ di un diagramma orientato è definito dimenticando l'orientazione.
// *Prop.* Il polinomio $F_K (a, z)$ è un invariante di isotopia ambiente.
== Considerazioni preliminari
#align(center)[
Il *nodo banale standard* (o in _forma discendente_) associato $D$ è $hat(D)(cal(U), p)$:
// #v(1em)
#alternatives[
#move(dx: -1pt, image("assets/derived/std-unknot-1-cropped.jpg", height: 8cm))
@ -717,28 +550,8 @@ _Dimostrazione._
$K$, $S_i K$, $E_i K$, $e_i K$,
)
// pause
// [\ ]
// [\ ]
// [$lambda = (lambda_n, dots, lambda_0)$ sequenza di etichette di incroci di $D$]
// v(1.5em)
// $
// 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
// $
})
== Considerazioni preliminari
#let dotss = $space dots.c space$
@ -755,8 +568,6 @@ _Dimostrazione._
show math.equation: set text(size: 16pt)
// v(1em)
only(
"1-4",
$
@ -818,8 +629,6 @@ _Dimostrazione._
show math.equation: set text(size: 16pt)
// v(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_1 S_0 K] + L[e_1 S_0 K] ) \
@ -870,7 +679,6 @@ _Dimostrazione._
) #pin(2)
)$
// pinit-highlight(1, 2, fill: color.rgb("#0002"), dy: -1.75em, extended-height: 3.25em)
pinit-place(
(1,),
dy: 1.25em,
@ -988,150 +796,6 @@ _Dimostrazione._
pinit-highlight(1, 2, dy: -1.75em, dx: 3pt, extended-height: 3em, fill: rgb("#0002"))
})
// // #slide({
// // {
// // 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: 16pt)
// // // v(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_1 S_0 K] + L[e_1 S_0 K] ) \
// // & cancel(L[S_1 S_0 K]) + cancel(L[S_2 S_1 S_0 K]) = z( L[E_1 S_1 S_0 K] + L[e_1 S_1 S_0 K]) \
// // & space dots.v \
// // (-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)(p)] =
// // z sum_(i=0)^n (-1)^i (L[A_i^lambda K] + L[B_i^lambda K])
// // )$
// // // show math.equation: set text(size: 13pt)
// // // h(1fr)
// // // $display(
// // // (thin #grid(
// // // rows: 2,
// // // gutter: 1em,
// // // $A_i^lambda colon.eq E_lambda_i S_lambda_(i-1) dots.c space S_lambda_0$,
// // // $B_i^lambda colon.eq e_lambda_i S_lambda_(i-1) dots.c space S_lambda_0$,
// // // ))
// // // )$
// // })
// #let hl(bg: gray.mix(white), body) = move(dx: -5pt, dy: 1pt, rect(
// fill: bg,
// outset: (top: 0.25em, bottom: 0.5em),
// radius: 0.25em,
// body,
// ))
// #slide({
// {
// 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: 16pt)
// // v(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_1 S_0 K] + L[e_1 S_0 K] ) \
// & cancel(L[S_1 S_0 K]) + cancel(L[S_2 S_1 S_0 K]) = z( L[E_1 S_1 S_0 K] + L[e_1 S_1 S_0 K]) \
// & space dots.v \
// (-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)(p)] +
// z sum_(i=0)^n (-1)^i (L[A_i^lambda K] + L[B_i^lambda K])
// )$
// })
// #slide({
// {
// 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: 16pt)
// // v(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_1 S_0 K] + L[e_1 S_0 K] ) \
// & cancel(L[S_1 S_0 K]) + cancel(L[S_2 S_1 S_0 K]) = z( L[E_1 S_1 S_0 K] + L[e_1 S_1 S_0 K]) \
// & space dots.v \
// (-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(2pt)
// h(4.4em)
// $display(
// => L[K] =
// #hl(
// bg: white,
// $display(
// (-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])))$
// })
// #slide({
// {
// 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: 16pt)
// // v(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_1 S_0 K] + L[e_1 S_0 K] ) \
// & cancel(L[S_1 S_0 K]) + cancel(L[S_2 S_1 S_0 K]) = z( L[E_1 S_1 S_0 K] + L[e_1 S_1 S_0 K]) \
// & space dots.v \
// (-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] = #hl($display(
// (-1)^(abs(lambda(q))+1) L[hat(K)(p)] +
// z sum_K^text(fill: #gray.mix(white), n) (lambda)
// )$)
// )$
// // show math.equation: set text(size: 14pt, fill: white)
// // 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
#slide(
@ -1147,8 +811,6 @@ _Dimostrazione._
Definiamo ora il polinomio $L_(K)(a,z)$ 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)$
@ -1177,8 +839,6 @@ _Dimostrazione._
Definiamo ora il polinomio $L_(K)(a,z)$ 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)$
@ -1199,14 +859,11 @@ _Dimostrazione._
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_D (lambda(p))
// display((-1)^(abs(lambda(p))+1) L[hat(K)(p)] + z sum_K (lambda(p)))
) #rect(stroke: none, height: 3.5em, width: 1pt)$
][
Definiamo ora il polinomio $L_(K)(a,z)$ 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)$
@ -1241,8 +898,6 @@ _Dimostrazione._
== Ipotesi induttiva
#slide[
#set par(spacing: 1.5em)
#set list(spacing: 1.5em)
#set enum(numbering: "a)", spacing: 1.5em)
@ -1376,6 +1031,3 @@ Per il progetto di Lab. Comp. abbiamo scritto una *nuova implementazione* in _Py
*Grazie per l'attenzione*
]
== Appendice

Loading…
Cancel
Save