diff --git a/out/tesi-triennale.pdf b/out/tesi-triennale.pdf index 9f2a164..0331d7d 100644 Binary files a/out/tesi-triennale.pdf and b/out/tesi-triennale.pdf differ diff --git a/src/assets/locally-flat-v2.png b/src/assets/locally-flat-v2.png new file mode 100644 index 0000000..a54bd38 Binary files /dev/null and b/src/assets/locally-flat-v2.png differ diff --git a/src/assets/standard-unlink-construction.png b/src/assets/standard-unlink-construction.png new file mode 100644 index 0000000..8dd3cbb Binary files /dev/null and b/src/assets/standard-unlink-construction.png differ diff --git a/src/main.typ b/src/main.typ index 1f17b4a..1413331 100644 --- a/src/main.typ +++ b/src/main.typ @@ -86,45 +86,22 @@ Ora introdurremo alcuni risultati fondamentali di teoria dei nodi tra cui le def 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 ] -#{ - set align(center) +#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 K$, $<->$, ${ 0 } times [0, 1]$, - ) -} - -#align(center, image("assets/locally-flat.jpg", width: 35%)) -// #align( -// center, -// cetz.canvas( -// { -// import cetz.draw: * - - -// hobby((0, 1), (0.6, 0.6), (1, 0), omega: 2, name: "l") - -// content((name: "l", anchor: 33%), box(fill: white, $x$)) - -// circle((name: "l", anchor: 33%), radius: (2em, 3em)) - - -// // let angle = cetz-path-angle("l", 33%) - - -// let result = cetz.path-util.direction((line((0, 1), (0.6, 0.6), (1, 0)),), 33%) - -// content((1, 1), [#result]) -// }, + $U inter f(X)$, $<->$, ${ 0 } times [0, 1]$, + ), + align(center, image("assets/locally-flat-v2.png", width: 6cm)), +) -// length: 33%, -// ), -// ) -inoltre $f$ si dice *localmente piatto* (ovunque) se lo è in ogni punto di $X$. +inoltre $f$ si dice embedding *localmente piatto* se lo è in ogni punto di $X$. // #let locally-flat-def = ref-link()[localmente piatto] @@ -139,7 +116,7 @@ inoltre $f$ si dice *localmente piatto* (ovunque) se lo è in ogni punto di $X$. ], ) -Esistono anche nodi non tame come il precedente, ma d'ora in avanti considereremo solo nodi tame. #margin-note[l'immagine sotto è presa da wikipedia, aggiungere una citazione?] +Esistono anche nodi non tame come quello riportato nella figura precedente @wiki:wild_knot, ma d'ora in avanti considereremo solo nodi tame. // #todo[ // Disegno nodo non tame @@ -182,9 +159,9 @@ Passiamo ora al caso in cui abbiamo un nodo con più di una componente ] -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$ con le opportune modifiche. +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$ apportando le giuste modifiche. -Introduciamo ora il concetto di equivalenza combinatoria di link poligonali in $bb(R)^3$, questo è il primo passo che ci permette di descrivere l'equivalenza tra nodi attraverso sequenza finita di mosse. +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: @@ -256,13 +233,19 @@ Quindi dato $L subset bb(R)^3$ link poligonale, esiste una proiezione regolare $ Due diagrammi di link equivalenti sono collegati da una successione finita di isotopie planari e mosse di Reidemeister. ] -#todo[Varie considerazioni sul teorema 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. -// #todo[Commenti su come si usa il teorema di Reidemeister ottenere un modo per capire se due nodi non sono equivalenti] +#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[ + È la forma contronominale del teorema di Reidemeister. +] -// Se $phi$ è una funzione invariante a meno di mosse di Reidemeister, ci permette di dire verificare se due link non sono equivalenti +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 nodi a link possiamo ripetere tutto anche aggiungendo un'orientazione e studiare *nodi e link orientati* ed abbiamo anche una variante orientata del teorema di Reidemeister. +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 @@ -356,7 +339,7 @@ Possiamo chiederci cosa succede se ci restringiamo all'equivalenza generata solo 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. ] -#figure(image("assets/ambient-regular-isotopy-difference.jpg")) +#figure(image("assets/ambient-regular-isotopy-difference.jpg", width: 13cm)) 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] @@ -616,16 +599,33 @@ $ Prima di passare a descrivere la definizione induttiva diamo alcune definizioni di manipolazioni di un diagramma. #definition[ - Sia $K$ un diagramma, $U$ la sua ombra planare#footnote[Ovvero per $K subset bb(R)^3$ poniamo $U colon.eq pi(K) subset bb(R)^2$] e $p in U$ un punto di partenza direzionato in $U$. + Sia $K$ un diagramma, $cal(U)$ la sua ombra planare#footnote[Ovvero per $K subset bb(R)^3$ poniamo $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 (o link) banale standard* associato detto $hat(K)(cal(U), p)$ è definito come segue: si prende il primo 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. + + #figure( + image( + "assets/standard-unlink-construction.png", + 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. + ], + ) + - - Il suo *nodo banale standard* associato detto $hat(K)(U, p)$ è definito come segue: +- Sia $K$ un link, $lambda = (lambda_n, dots, lambda_0)$ una sequenza di etichette di incroci allora poniamo - #todo[Disegno standard unknot] + $ + A_i^lambda = E_lambda_i S_lambda_(i-1) dots.c space S_lambda_0 + #h(2em) + B_i^lambda = e_lambda_i S_lambda_(i-1) dots.c space S_lambda_0 + $ - - #todo[Operazioni compatte $A_i^lambda$ e $B_i^lambda$] + notiamo che per $i=0$ abbiamo che $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. - - #todo[Operazione compatta $sum_K (lambda)$] -] +- #todo[Operazione compatta $sum_K (lambda)$] L'idea per la definizione induttiva è di considerare dato un nodo o un link $K$ il suo nodo o link discendente standard $hat(K)$. Questo induce una sequenza di indici $lambda$ che indichiamo con $0, dots, n$. Se la applichiamo incrementalmente a $K$ otteniamo le seguenti relazioni diff --git a/src/prelude.typ b/src/prelude.typ index 871c506..695a026 100644 --- a/src/prelude.typ +++ b/src/prelude.typ @@ -82,25 +82,23 @@ ) } -#let proof(body) = block( - spacing: 11.5pt, - { - emph[Dimostrazione.] - [ ] - body - h(1fr) - - // Add a word-joiner so that the proof square and the last word before the - // 1fr spacing are kept together. - sym.wj - - // Add a non-breaking space to ensure a minimum amount of space between the - // text and the proof square. - sym.space.nobreak - - $square$ - }, -) +#let proof(body) = block({ + // v(-0.25em) + emph[Dimostrazione.] + [ ] + body + h(1fr) + + // Add a word-joiner so that the proof square and the last word before the + // 1fr spacing are kept together. + sym.wj + + // Add a non-breaking space to ensure a minimum amount of space between the + // text and the proof square. + sym.space.nobreak + + $square$ +}) #let ref-link(target, content) = { show link: it => { diff --git a/src/refs.bib b/src/refs.bib index dd67c92..7f3554e 100644 --- a/src/refs.bib +++ b/src/refs.bib @@ -27,6 +27,14 @@ language = {en} } +@online{wiki:wild_knot, + author = {Jkasd}, + title = {Wild knot.svg}, + year = {2008}, + url = {https://commons.wikimedia.org/wiki/File:Wild_knot.svg}, + note = {Public domain, via Wikimedia Commons} +} + @book{crowell1977introduction, title = {Introduction to Knot Theory}, author = {Crowell, R.H. and Fox, R.H.}, diff --git a/src/theme.typ b/src/theme.typ index cabed07..8e49487 100644 --- a/src/theme.typ +++ b/src/theme.typ @@ -462,47 +462,43 @@ // }, // ) - // Display the abstract - if abstract != none { - // set text(script-size) - // show: pad.with(x: 2em) - - // set align(center + horizon) - - pad( - x: 2em, - grid( - columns: 1, - v(6em), - { - set align(center) - [*Abstract:*] - }, - - v(1em), - { - set align(start) - abstract - }, - v(2em), - ), - ) - - // { - // set align(center) + grid( + rows: (auto, 1fr, 2fr), + align: center + horizon, + v(2em), + { + if abstract != none { + pad( + x: 2em, + grid( + columns: 1, + { + set text(size: 16pt) - // [*Abstract*] + [*Abstract*] + }, - // abstract - // } - } + v(1em), + { + set align(start) + abstract + }, + ), + ) + } + }, + { + set text(size: 16pt) + [*Indice*] - // pagebreak() + v(0.25em) - // layout(size => v(size.height * 25% - 6pt)) + set text(size: 12pt) + outline(title: none, depth: 2, indent: 1em) + }, + ) - outline(title: "Indice", depth: 2, indent: 1em) context { counter("fact").update(2) }