#import "@preview/touying:0.6.1": *
#import "./presentation/theme.typ": *
#import "@preview/cetz:0.3.2"
#import "@preview/fletcher:0.5.4" as fletcher: node, edge
#import "@preview/numbly:0.1.0": numbly
#import "@preview/theorion:0.3.2": *
#show: show-theorion

// 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)

#show: dm-unipi-theme.with(aspect-ratio: "16-9", config-common(frozen-counters: (theorem-counter,)), config-info(
  title: [Il Polinomio di Kauffman: Un Invariante di Isotopia Regolare],
  subtitle: [Tesi di Laurea Triennale],
  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: 17pt)
#set strong(delta: 100)
#set par(leading: 1em)
#set list(spacing: 1em)

#title-slide()

= Introduzione e Motivazione

== Motivazione

#slide[
  Come distinguere matematicamente due nodi?

  #pause

  - I nodi possono apparire diversi ma essere topologicamente equivalenti
  - Abbiamo bisogno di *invarianti*: proprietà che non cambiano sotto deformazioni ammesse
  - Gli invarianti polinomiali sono strumenti potenti e computabili

  #pause

  #align(center)[
    #text(size: 1.2em, weight: "bold")[
      Obiettivo: costruire un invariante polinomiale robusto
    ]
  ]
]

== Nodi e Diagrammi

#slide[
  *Definizione:* Un *nodo tame* è un sottoinsieme $K subset bb(R)^3$ per cui esiste un embedding $f : bb(S)^1 arrow.hook bb(R)^3$ localmente piatto con $K = f(bb(S)^1)$.

  #pause

  *Problema:* Lavorare direttamente con embedding in $bb(R)^3$ è complesso

  #pause

  *Soluzione:* Proiezioni su un piano
  - Proiettiamo il nodo su un piano
  - Aggiungiamo informazione *sopra/sotto* ad ogni incrocio
  - Otteniamo un *diagramma* del nodo

  #pause

  #align(center)[
    I diagrammi sono l'interfaccia computazionale per studiare i nodi
  ]
]

== Equivalenze tra Nodi

#slide[
  *Isotopia Ambiente:* Deformare un nodo senza tagliarlo o incollarlo

  Due nodi $K_0, K_1 subset bb(R)^3$ sono *equivalenti* se esiste un'*isotopia ambiente* $H : bb(R)^3 times [0,1] arrow bb(R)^3$

  #pause

  *Teorema di Reidemeister:* Due diagrammi rappresentano nodi equivalenti se e solo se sono collegati da mosse I, II, III

  #pause

  *Isotopia Regolare:* Equivalenza generata solo da mosse II e III (ignoriamo la mossa I)

  #pause

  #align(center)[
    L'isotopia regolare "vede" i riccioli (curls)
  ]
]

= Teoria e Costruzione

== Il Writhe: Un Primo Invariante

#slide[
  *Definizione del segno di un incrocio:*
  $epsilon(+) = +1 quad quad epsilon(-) = -1$

  #pause

  *Il writhe:* $w(K) := sum_("incroci " c) epsilon(c)$

  #pause

  *Proprietà:*
  - Invariante per mosse II e III ✓
  - NON invariante per mossa I ✗

  #pause

  *Formula di correzione:* Se $L_K$ è invariante per isotopia regolare con
  $L(#text("sopra-ricciolo")) = a L(#text("filo"))$, $L(#text("sotto-ricciolo")) = a^(-1) L(#text("filo"))$

  Allora: $F_K := a^(-w(K)) L_K$ è invariante per isotopia ambiente!
]

== Il Polinomio di Kauffman: Definizione

#slide[
  Il protagonista: $L_K (a,z) in bb(Z)[a, a^(-1), z, z^(-1)]$

  *Assiomi:*
  1. Se $K$, $K'$ sono equivalenti a meno di isotopia regolare, allora $L_K = L_K'$

  #pause

  2. Relazioni skein:
    - $L(#text("sopra")) + L(#text("sotto")) = z(L(#text("h-splice")) + L(#text("v-splice")))$
    - $L(#text("nodo banale")) = 1$
    - $L(#text("sopra-ricciolo")) = a L(#text("filo"))$, $L(#text("sotto-ricciolo")) = a^(-1) L(#text("filo"))$

  #pause

  *Domanda:* Gli assiomi definiscono univocamente $L_K$?
]

== Esempio: Link di Hopf

#slide[
  Applichiamo la relazione skein:

  $L[#text("Hopf")] + L[#text("versione scambiata")] = z(L[#text("due cerchi")] + L[#text("due fili")])$

  #pause

  Sapendo che:
  - $L[#text("due cerchi")] = delta = (a + a^(-1))/z - 1$
  - $L[#text("due fili")] = a + a^(-1)$

  #pause

  Otteniamo:
  $L[#text("Hopf")] = -(a + a^(-1))z^(-1) + 1 + (a + a^(-1))z$

  #pause

  Questi calcoli suggeriscono che $L_K$ esiste, ma serve una dimostrazione rigorosa!
]

== La Sfida della Buona Definizione

#slide[
  *Problema centrale:* Gli assiomi definiscono $L_K$ in modo unico?

  #pause

  *Sfide:*
  1. Gli assiomi sono *impliciti* (relazioni, non formule)
  2. Come garantire che esista una soluzione?
  3. Come garantire l'unicità?
  4. Come verificare l'indipendenza dalle scelte computazionali?

  #pause

  *Scelte che potrebbero influenzare il risultato:*
  - Scelta del punto base $p$ su ogni componente
  - Direzione del punto base (orario vs antiorario)
  - Ordine delle operazioni nelle sequenze

  #pause

  #align(center)[
    #box(fill: red.lighten(80%), inset: 1em, radius: 5pt)[
      *Senza questa dimostrazione, $L_K$ non sarebbe ben definito!*
    ]
  ]
]

== Ingredienti per la Costruzione

#slide[
  *Concetti chiave necessari:*

  1. *Nodo banale standard*: $hat(K)(cal(U), p)$
    - Percorrere l'ombra planare da un punto base $p$
    - Primo passaggio su ogni incrocio = sopra-incrocio

  #pause

  2. *Operazioni sui diagrammi*:
    - $S_i K$: scambia l'incrocio $i$
    - $E_i K$, $e_i K$: splice orizzontale e verticale

  #pause

  3. *Sequenze di scambi*: $lambda = (lambda_n, dots, lambda_0)$
    - Trasformano $K$ in $hat(K)(lambda)$

  #pause

  *Proprietà fondamentale:* $L[hat(K)] = a^(w(hat(K)))$
]

== La Formula Ricorsiva

#slide[
  *Idea*: Esprimere $L_K$ in termini di diagrammi "più semplici"

  Applicando le relazioni skein incrementalmente:
  $
    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]) \
                                      &dots.v \
    L[S_(n-1) dots S_0 K] + L[hat(K)] &= z(L[E_n S_(n-1) dots S_0 K] + L[e_n S_(n-1) dots S_0 K])
  $

  #pause

  Sommando e sottraendo membro a membro, i termini intermedi si cancellano!

  #pause

  *Formula finale:*
  $L_K = (-1)^(n+1) L_(hat(K)) + z sum_(i=0)^n (-1)^i (L[A_i^lambda K] + L[B_i^lambda K])$
]

== Definizione Induttiva Completa

#slide[
  *Caso 1:* $K = hat(K)$ (nodo banale standard)
  $L_K = a^(w(K))$

  #pause

  *Caso 2:* $K = K_1 union K_2$ con $K_1$ sovrastante $K_2$
  $L_K = delta L_(K_1) L_(K_2)$ dove $delta = (a + a^(-1))/z - 1$

  #pause

  *Caso 3:* Uso della formula ricorsiva:
  $L_K = 1/2 [sum_(q = p, overline(p)) ((-1)^(abs(lambda(q))+1) L_(hat(K)(q)) + z sum_K (lambda(q)))]$

  #pause

  *Proprietà cruciale:* Ogni termine a destra ha meno incroci o è "più vicino" al caso base
]

== Strategia della Dimostrazione

#slide[
  *Ipotesi induttiva* (per diagrammi con $< N$ incroci):

  1. $L_K$ è ben definito (indipendente dalle scelte)
  2. $L_K$ verifica tutte le relazioni skein
  3. $L_K$ è invariante per mosse II e III che non aumentano gli incroci

  #pause

  *Lemmi tecnici fondamentali:*

  - *Lemma delle Rotazioni*: L'ordine ciclico degli scambi non influenza il risultato
  - *Invarianza del punto base*: La definizione non dipende dal punto base scelto
  - *Identità per nodi banali*: $L[hat(K)(p)] + L[hat(K)(q)] = z(L[E_i hat(K)] + L[e_i hat(K)])$

  #pause

  *Metodo:* Spostando il punto base di un incrocio per volta, si dimostra l'invarianza completa
]

== Verifica degli Assiomi e Invarianza

#slide[
  *Teorema*: La definizione induttiva soddisfa tutti gli assiomi di Kauffman

  #pause

  *Dimostrazione per le relazioni skein*:
  1. Scegli il punto base in modo che l'incrocio sia il primo nella sequenza
  2. La relazione skein emerge naturalmente dalla formula ricorsiva
  3. Gli altri termini si cancellano per simmetria

  #pause

  *Invarianza per isotopia regolare*:
  - *Mossa II*: scegli punti base che evitano gli incroci coinvolti
  - *Mossa III*: usa equivalenze locali e induzione

  #pause

  #align(center)[
    La costruzione induttiva "conosce automaticamente" tutte le proprietà necessarie!
  ]
]

= Risultati e Applicazioni

== Il Risultato Principale

#slide[
  *Teorema*: Esiste ed è unico un invariante $L_K (a,z)$ che soddisfa gli assiomi di Kauffman.

  #pause

  *Dimostrazione completa*:
  1. *Esistenza*: La costruzione induttiva fornisce una definizione esplicita
  2. *Buona definizione*: Indipendenza dalle scelte arbitrarie
  3. *Verifica assiomi*: La definizione soddisfa tutte le relazioni richieste
  4. *Unicità*: Gli assiomi determinano univocamente i valori

  #pause

  *Conseguenza*: Il polinomio di Kauffman è un invariante completo e computabile per l'isotopia regolare

  #pause

  #align(center)[
    #box(fill: green.lighten(80%), inset: 1em, radius: 5pt)[
      *La teoria è ora su basi solide!*
    ]
  ]
]

== Dal Regolare all'Ambiente: Il Polinomio $F_K$

#slide[
  Usando la formula di correzione:
  $F_K = a^(-w(K)) L_K$

  #pause

  *Teorema*: $F_K (a,z)$ è un invariante di isotopia ambiente.

  #pause

  *Significato*:
  - Partendo da un invariante regolare ($L_K$)
  - Aggiungiamo la correzione del writhe
  - Otteniamo un vero invariante di nodi!

  #pause

  *Proprietà*:
  - $F_(m(K))(a,z) = F_K(1/a, z)$ (comportamento rispetto al mirror)
  - $F[K_1 hash K_2] = F[K_1] F[K_2]$ (moltiplicatività per somma connessa)
  - $F_K$ distingue nodi che $L_K$ non può distinguere
]

== Implementazione e Verifica

#slide[
  *Progetto Computazionale:*

  - *Implementazione in Python*: Algoritmo basato sulle relazioni skein
  - *Calcolo automatico* di $L_K$ e $F_K$ per diagrammi di nodi
  - *Interfaccia user-friendly* per l'inserimento di diagrammi

  #pause

  *Verifica sperimentale:*
  - Confronto con il database *KnotInfo*
  - Verifica su centinaia di nodi noti
  - Test di coerenza con valori pubblicati

  #pause

  *Scoperta interessante:* Trovato un *errore* nel valore pubblicato per il nodo $10_125$!

  #pause

  #align(center)[
    La teoria e l'implementazione si confermano a vicenda
  ]
]

== Conclusioni

#slide[
  *Percorso compiuto:*
  1. Dal concetto geometrico di nodo alla formalizzazione tramite diagrammi
  2. Definizione dell'isotopia regolare e degli invarianti
  3. Costruzione rigorosa del polinomio di Kauffman
  4. Dimostrazione della buona definizione
  5. Estensione agli invarianti di isotopia ambiente

  #pause

  *Risultati principali:*
  - *Dimostrazione* della buona definizione di $L_K$
  - *Costruzione* di $F_K$ come invariante ambiente
  - *Verifica computazionale* e scoperta di errori nella letteratura

  #pause

  #align(center)[
    #text(size: 1.2em, weight: "bold")[
      Grazie per l'attenzione!
    ]
  ]

  *Domande?*
]