initial commit

main
commit c17450e4a1

2
.gitignore vendored

@ -0,0 +1,2 @@
out/
*.local*

@ -0,0 +1,8 @@
# Tesi Triennale
> **Il polinomio di Kauffman, un Invariante di Isotopia Regolare**
>
> In questa tesi introdurremo la teoria dei nodi con alcuni risultati
> fondazionali. Parleremo brevemente delle relazione skein che ci serviranno per
> definire assiomaticamente il polinomio di Kauffman ed infine vedremo la sua
> buona definizione.

@ -0,0 +1,151 @@
#import "theme.typ": *
#import "@preview/cetz:0.3.4"
#import "skein.typ": skein
#import "@preview/drafting:0.2.2": set-margin-note-defaults, inline-note, margin-note, set-page-properties
#import "@preview/colorful-boxes:1.1.0": stickybox
#set-margin-note-defaults(
rect: (..kwargs, content) => rect(
..kwargs,
{
set text(size: 9pt)
set par(leading: 0.5em, justify: false)
content
},
),
side: right,
)
// Prelude
#let kL = $L$
#let dotss = $space dots.c space$
#show: ams-article.with(
paper-size: "a4",
title: [Il polinomio di Kauffman, \ un Invariante di Isotopia Regolare],
page-title: [Il polinomio di Kauffman, un Invariante di Isotopia Regolare],
authors: (
(
name: "Antonio De Lucreziis",
organization: "Dipartimento di Matematica",
location: "Pisa, Italia",
email: "antonio.delucreziis@gmail.com",
),
),
abstract: [
In questa tesi introdurremo la teoria dei nodi con alcuni risultati fondazionali. Parleremo brevemente delle relazione skein che ci serviranno per definire assiomaticamente il polinomio di Kauffman ed infine vedremo la sua buona definizione.
],
bibliography: bibliography("refs.bib"),
)
#set-page-properties(margin-right: 4cm)
// Content
= Introduzione
In questa tesi studieremo un invariante di isotopia regolare chiamato polinomio di Kauffman @Kauffman1990-qe. Dato un nodo o link non orientato $K$, $kL_K (a, z)$ è definito in forma assiomatica attraverso le seguenti relazioni
1. Se $K$ e $K'$ sono equivalenti a meno di isotopia regolare, allora $kL_K (a,z) = kL_K' (a,z)$.
2. Valgono le seguenti relazioni skein
- $kL(#skein.over) + kL(#skein.under) = z (kL(#skein.h) + kL(#skein.v))$
- $kL(#skein.unit) = 1$
- $kL(#skein.over-twist) = a kL(#skein.strand)$
- $kL(#skein.under-twist) = a^(-1) kL(#skein.strand)$
dove ogni simbolo indica che per un link fissato $K$ e per ogni suo crossing $i$, applichiamo le modifiche ad $i$ in modo da rendere quel crossing come indicato dal simbolo in figura. #margin-note[Spiegare meglio questa cosa o toglierla e basta]
== Introduzione alla Teoria dei Nodi
#definition[
Siano $X, Y$ due spazi topologici, allora un'applicazione continua $f : X arrow Y$ si dice *embedding* se $X$ è omeomorfo a $f(X) subset Y$ con la topologia di sottospazio indotta da $Y$.
] <embedding>
#let embedding-def = ref-link(<embedding>)[embedding]
#fact[
Dati due spazi topologici $X$ compatto e $Y$ di Hausdorff e un'applicazione continua $f : X arrow Y$ allora $f$ è un #embedding-def $<=>$ è iniettiva.
]
#definition[
Un #embedding-def $f : X arrow Y$ si dice *localmente piatto* in $p in X$ se $exists U subset bb(R)^3$ intorno di $p$, con
#{
set align(center)
grid(
columns: 3,
gutter: 1em,
align: center,
$U$, $approx$, $bb(D)^2 times [0, 1]$,
$U inter K$, $<->$, ${ 0 } times [0, 1]$,
)
}
] <locally-flat>
#let locally-flat-def = ref-link(<locally-flat>)[localmente piatto]
#definition[
Un *nodo tame* è un sottoinsieme $K subset bb(R)^3$ tale che esiste un #embedding-def $f : bb(S)^1 arrow.hook bb(R)^3$ e $forall p in K, f$ è #locally-flat-def in $p$.
]
= Relazioni Skein
#lorem(100)
#lorem(100)
= Polinomio di Kauffman
#lorem(100)
#lorem(100)
#definition(name: [Forma chiusa per $kL_K$])[
Qui di seguito la forma chiusa del polinomio $kL_(K)(a,z)$.
1. Se $K = hat(K)$ è un _nodo banale standard_ allora $kL_K (a, z) colon.eq a^w(K)$
2. Se $K_1$ è _sopra_ $K_2$, sia $d colon.eq (a + a^(-1)) slash z - 1$ e allora
$
kL(K_1 union K_2) colon.eq d kL(K_1) kL(K_2)
$
3. Se $K = K_1 union dotss union K_n$
- Se un $K_i$ è _sopra_ un altro componente allora applica (ii).
- Se nessun $K_i$ è _sopra_ tutti gli altri, siano $p_1, ..., p_n$ dei _punti di partenza direzionati_ su $K_1, ..., K_n$ e sia $overline(p)_i$ lo stesso _punto di partenza direzionato_ con la direzione opposta di $p_i$ su $K_i$. Sia $lambda(p_i)$ la sequenza di scambi di incroci di $K_i$ con $K - K_i$ tale che $hat(K)(lambda(p_i)) = K_i union.sq (K - K_i)$ tale che $K_i$ sia _sopra_ il resto delle componenti. A questo punto possiamo definire $kL_K$ come
#[
#set text(size: 11pt)
$
kL_K (a, z) colon.eq
1 / (2n) [
sum_(i=1)^n sum_(q=p_i, overline(p)_i) ((-1)^(|lambda(q)|+1) d kL_(K_i) kL_(K - K_i) + z sum_K (lambda(q)))
]
$
]
- Se $K$ è una singola componente allora sia $p$ un punto di partenza direzionato su $K$ e $overline(p)$ quello con direzione opposta. Sia $lambda(p)$ la sequenza di scambi di incroci che lo porta al nodo banale standard $hat(K)$ e definiamo
#[
#set text(size: 11pt)
$
kL_K (a, z) colon.eq
1 / 2 [
sum_(q = p, overline(p)) ((-1)^(|lambda(q)|+1) kL(hat(K)(lambda(q))) + z sum_K (lambda(q)))
]
$
]
]

@ -0,0 +1,28 @@
@article{Kauffman1990-qe,
title = {An invariant of regular isotopy},
author = {Kauffman, Louis H},
abstract = {This paper studies a two-variable Laurent polynomial invariant
of regular isotopy for classical unoriented knots and links.
This invariant is denoted L K \{L\_K\} for a link K K , and it
satisfies the axioms: 1. Regularly isotopic links receive the
same polynomial. 2. L [ unk ] = 1 \{L\_\{[\{\textbackslashtext
\{unk\}\}]\}\} = 1 . 3. L [ unk ] = a L , L [ unk ] = a 1 L
\{L\_\{[\{\textbackslashtext \{unk\}\}]\}\} =
aL,\textbackslashqquad \{L\_\{[\{\textbackslashtext
\{unk\}\}]\}\} = \{a^\{ - 1\}\}L . 4. L [ unk ] + L [ unk] = z (
L [ unk] + L [ unk] ) \{L\_\{[\{\textbackslashtext
\{unk\}\}]\}\} + \{L\_\{[\{\textbackslashtext \{unk]\}\}\}\} =
z(\{L\_\{[\{\textbackslashtext \{unk]\}\}\}\} +
\{L\_\{[\{\textbackslashtext \{unk]\}\}\}\}) . Small diagrams
indicate otherwise identical parts of larger diagrams. Regular
isotopy is the equivalence relation generated by the
Reidemeister moves of type II and type III. Invariants of
ambient isotopy are obtained from L L by writhe-normalization.},
journal = {Trans. Am. Math. Soc.},
publisher = {American Mathematical Society (AMS)},
volume = 318,
number = 2,
pages = {417--471},
year = 1990,
language = {en}
}

@ -0,0 +1,92 @@
#import "@preview/cetz:0.3.4"
#let draw-strand(polyline, 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")),
),
)
polyline
set-style(stroke: (paint: black, thickness: 0.75pt, 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)
body
},
)
#let arrow-size = 0.35
#let draw-arrow((x, y), angle: 0, ..style) = {
import cetz.draw: *
{
let len = arrow-size / calc.sqrt(2)
set-style(..style)
translate(x: x, y: y)
rotate(z: angle)
line((0, 0), (-len, +len), ..style)
line((0, 0), (-len, -len), ..style)
}
}
#let skein = (
unit: skein-canvas({
import cetz.draw: *
circle((0, 0), radius: 1, stroke: (paint: black, thickness: 0.75pt))
}),
over: skein-canvas({
import cetz.draw: *
draw-strand({ line((-1, -1), (1, 1)) })
draw-strand({ line((-1, 1), (1, -1)) })
}),
under: skein-canvas({
import cetz.draw: *
draw-strand({ line((-1, 1), (1, -1)) })
draw-strand({ line((-1, -1), (1, 1)) })
}),
h: skein-canvas({
import cetz.draw: *
draw-strand({ hobby((-1, -1), (0, -0.61), (1, -1), omega: 1) })
draw-strand({ hobby((-1, 1), (0, +0.61), (1, 1), omega: 1) })
}),
v: skein-canvas({
import cetz.draw: *
draw-strand({ hobby((-1, -1), (-0.61, 0), (-1, 1), omega: 1) })
draw-strand({ hobby((1, -1), (+0.61, 0), (1, 1), omega: 1) })
}),
strand: skein-canvas({
import cetz.draw: *
rect((-1, -1), (1, 1), fill: white, stroke: none)
draw-strand({ hobby((-1, 0), (0, 0.25), (1, 0), omega: 1) })
}),
over-twist: skein-canvas({
import cetz.draw: *
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)) })
}),
under-twist: skein-canvas({
import cetz.draw: *
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)) })
}),
)

@ -0,0 +1,377 @@
// Sizes used across the template.
#let script-size = 9pt
#let footnote-size = 10pt
#let small-size = 11pt
#let normal-size = 12pt
#let large-size = 14pt
#let heading-factor = 1.41
#let heading-level-size(level) = normal-size * calc.pow(heading-factor, 4 - level)
#let fact-counter = counter("fact")
// This function gets your whole document as its `body` and formats
// it as an article in the style of the American Mathematical Society.
#let ams-article(
// The article's title.
title: [Paper title],
page-title: [Paper title],
// An array of authors. For each author you can specify a name,
// department, organization, location, and email. Everything but
// but the name is optional.
authors: (),
// Your article's abstract. Can be omitted if you don't have one.
abstract: none,
// The article's paper size. Also affects the margins.
paper-size: "us-letter",
// The result of a call to the `bibliography` function or `none`.
bibliography: none,
// The document's content.
body,
) = {
// Formats the author's names in a list with commas and a
// final "and".
let names = authors.map(author => author.name)
let author-string = if authors.len() == 2 {
names.join(" and ")
} else {
names.join(", ", last: ", and ")
}
// Set document metadata.
set document(title: title, author: names)
// Configure the page.
set page(
paper: paper-size,
// The margins depend on the paper size.
margin: (
// left: 3cm,
// right: 6cm,
inside: 4cm,
outside: 4cm,
x: 4cm,
y: 4cm,
// top: 4.5cm,
// bottom: 3.5cm,
),
header-ascent: 1cm,
header: context {
let i = counter(page).get().first()
if i == 1 { return }
set text(size: script-size)
align(center, upper(page-title))
},
footer-descent: 1cm,
footer: context {
let i = counter(page).get().first()
align(
center,
{
set text(size: large-size)
[#i]
},
)
},
)
// Configure headings.
set heading(numbering: "1.")
show heading: it => {
// Create the heading numbering.
let number = if it.numbering != none {
counter(heading).display(it.numbering)
h(7pt, weak: true)
}
let heading-size = heading-level-size(it.level)
set text(
size: heading-size,
fill: luma(10%),
weight: 600,
top-edge: "bounds",
bottom-edge: "baseline",
)
set par(
spacing: 0pt,
hanging-indent: 0pt,
first-line-indent: 0pt,
)
if it.level == 1 {
if counter(heading).get() != (0,) {
pagebreak()
}
stack(
dir: ttb,
..(
if counter(heading).get() != (0,) {
(
layout(size => v(size.height * 25%)),
{
set text(size: heading-level-size(3))
[Capitolo ]
set text(size: heading-level-size(2))
counter(heading).display("1")
},
v(heading-size * 0.61),
)
}
),
line(length: 100%),
v(heading-size * 0.61),
align(right, it.body),
v(heading-size * 0.61),
line(length: 100%),
)
} else {
number
it.body
}
v(heading-size, weak: true)
}
// Configure paragraph properties.
set par(spacing: 1.5em, leading: 1em, justify: true)
// Custom Theme Settings
// * Inter + Fira Math
// set text(font: "Fira Sans", weight: 400)
set strong(delta: 200)
// show math.equation: set text(font: "Fira Math")
// * EB Garamond + Asana Math
set text(font: "EB Garamond", size: normal-size)
show math.equation: set text(font: "Stix Two Math")
show raw: set text(font: "Iosevka")
// Configure lists
set list(spacing: 1.5em, indent: 0.5em, body-indent: 0.5em, marker: [•])
set enum(spacing: 1.5em, indent: 0.5em, body-indent: 0.5em, numbering: "i.1.a)")
// Configure links
let link-color = color.mix((blue, 50%), (black, 50%))
show link: set text(link-color)
show link: it => underline(offset: 1pt, stroke: link-color, it)
// Configure equations.
show math.equation: set block(below: normal-size * 1.5, above: normal-size * 1.5)
show math.equation: set text(weight: 400)
show raw.where(block: false): it => {
set text(size: 7.25pt, fill: luma(7%))
box(
outset: (x: 2pt, y: 3pt),
fill: luma(92%),
radius: 3pt,
it,
)
}
show raw.where(block: true): it => block(
outset: (x: 2pt, y: 3pt),
fill: luma(92%),
radius: 4pt,
inset: 4pt,
it,
)
set std.bibliography(
style: "ieee",
title: none,
)
set figure(gap: 17pt)
show figure: set block(above: 1.5em, below: 1.5em)
show figure: it => {
// Customize the figure's caption.
show figure.caption: caption => {
set text(size: small-size)
smallcaps(caption.supplement)
if caption.numbering != none {
[ ]
numbering(caption.numbering, ..caption.counter.at(it.location()))
}
[. ]
caption.body
}
// We want a bit of space around tables and images.
show selector.or(table, image): pad.with(x: 23pt)
// Display the figure's body and caption.
it
}
show figure.where(kind: "fact"): it => grid(
rows: 2,
align: left,
block(
fill: orange.transparentize(50%),
inset: 0.5em,
{
set text(size: 9pt)
[*Work in Progress*]
},
),
block(
width: 100%,
fill: orange.transparentize(75%),
inset: (x: 0.25em, y: 0.5em),
it,
),
)
// Display the title and authors.
v(35pt, weak: true)
align(
center,
{
text(size: 18pt, weight: 600, title)
v(25pt, weak: true)
smallcaps({
text(author-string)
})
},
)
// Display the abstract
if abstract != none {
v(20pt, weak: true)
// set text(script-size)
show: pad.with(x: 35pt)
set text(size: 11pt)
[*Abstract.* ]
abstract
}
outline(title: "Indice", depth: 2, indent: 1em)
context { counter("fact").update(2) }
// Display the article's contents.
v(29pt, weak: true)
body
// Display the bibliography, if any is given.
if bibliography != none {
show std.bibliography: set text(footnote-size)
show std.bibliography: set block(above: 11pt)
{
colbreak()
show heading: it => {
set text(size: heading-level-size(2))
block(it.body)
}
heading(level: 2)[Bibliografia]
}
bibliography
}
}
#let definition(body, name: none, numbered: true) = {
show figure: it => {
set align(start)
block({
strong({
it.supplement
if it.numbering != none {
[ ]
numbering(it.numbering, ..it.counter.at(it.location()))
}
if name != none {
[ (#name)]
}
[.]
})
[ ]
it.body
})
}
figure(
body,
kind: "fact",
supplement: [Definizione],
numbering: if numbered { "1" },
)
}
#let fact(body, numbered: true) = figure(
body,
// kind: "fact",
kind: "fact",
supplement: [Fatto],
numbering: if numbered { "1" },
)
#let proposition(body, numbered: true) = figure(
body,
// kind: "proposition",
kind: "fact",
supplement: [Proposizione],
numbering: if numbered { "1" },
)
#let lemma(body, numbered: true) = figure(
body,
// kind: "lemma",
kind: "fact",
supplement: [Lemma],
numbering: if numbered { "1" },
)
#let theorem(body, numbered: true) = figure(
body,
// kind: "theorem",
kind: "fact",
supplement: [Theorem],
numbering: if numbered { "1" },
)
#let proof(body) = block(
spacing: 11.5pt,
{
emph[Proof.]
[ ]
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 => {
set text(luma(10%))
// remove underline for this
show underline: it => it.body
it
}
link(target, emph(content))
}
Loading…
Cancel
Save