diff --git a/out/presentation.pdf b/out/presentation.pdf index 0cb29fe..9222389 100644 Binary files a/out/presentation.pdf and b/out/presentation.pdf differ diff --git a/src/assets/derived/std-unknot-1-cropped.jpg b/src/assets/derived/std-unknot-1-cropped.jpg new file mode 100644 index 0000000..92d820b Binary files /dev/null and b/src/assets/derived/std-unknot-1-cropped.jpg differ diff --git a/src/assets/derived/std-unknot-2-cropped.jpg b/src/assets/derived/std-unknot-2-cropped.jpg new file mode 100644 index 0000000..4a9d3a5 Binary files /dev/null and b/src/assets/derived/std-unknot-2-cropped.jpg differ diff --git a/src/assets/std-unknot-1.jpg b/src/assets/std-unknot-1.jpg new file mode 100644 index 0000000..b99da11 Binary files /dev/null and b/src/assets/std-unknot-1.jpg differ diff --git a/src/assets/std-unknot-2.jpg b/src/assets/std-unknot-2.jpg new file mode 100644 index 0000000..8547487 Binary files /dev/null and b/src/assets/std-unknot-2.jpg differ diff --git a/src/assets/untangle-10_125-mirror.png b/src/assets/untangle-10_125-mirror.png new file mode 100644 index 0000000..501ef94 Binary files /dev/null and b/src/assets/untangle-10_125-mirror.png differ diff --git a/src/assets/untangle-10_125.png b/src/assets/untangle-10_125.png new file mode 100644 index 0000000..e31d166 Binary files /dev/null and b/src/assets/untangle-10_125.png differ diff --git a/src/presentation.typ b/src/presentation.typ index 7577691..7a6db43 100644 --- a/src/presentation.typ +++ b/src/presentation.typ @@ -288,7 +288,7 @@ Dimostreremo che per ogni diagramma di link _non orientato_ esiste un polinomio _Dimostrazione._ -- $w(D)$ inv. isotopia regolare $=> a^(-w(D))$ inv. isotopia regolare. +- $w(D)$ invariante di _isotopia regolare_ $=> a^(-w(D))$ invariante di _isotopia regolare_. #pause @@ -620,11 +620,56 @@ _Dimostrazione._ == Considerazioni preliminari #align(center)[ - Il *nodo banale standard* (o in _forma discendente_) associato $K$ è $hat(K)(cal(U), p)$: + Il *nodo banale standard* (o in _forma discendente_) associato $D$ è $hat(D)(cal(U), p)$: - #v(1em) + // #v(1em) - #image("assets/standard-unlink-construction.png", height: 8cm) + + #alternatives[ + #move(dx: -1pt, image("assets/derived/std-unknot-1-cropped.jpg", height: 8cm)) + + #grid( + columns: (1fr, 1fr, 1fr, 1fr, 1fr), + align: center, + [], $D$, [], $hat(D)(cal(U), p)$, [], + ) + + $space$ + ][ + #image("assets/derived/std-unknot-2-cropped.jpg", height: 8cm) + + #grid( + columns: (1fr, 1fr, 1fr, 1fr, 1fr), + align: center, + [], + $D$, + { + show math.equation: set text(size: 16pt) + $~> lambda=(6,4,2,1) ~>$ + }, + $hat(D)(cal(U), p)$, + [], + ) + + $space$ + ][ + #image("assets/derived/std-unknot-2-cropped.jpg", height: 8cm) + + #grid( + columns: (1fr, 1fr, 1fr, 1fr, 1fr), + align: center, + [], + $D$, + { + show math.equation: set text(size: 16pt) + $~> lambda=(6,4,2,1) ~>$ + }, + $hat(D)(cal(U), p)$, + [], + ) + + $hat(D)(p) = S_6 S_4 S_2 S_1 D$ + ] ] == Considerazioni preliminari @@ -761,6 +806,10 @@ _Dimostrazione._ }, ) + +#import "@preview/pinit:0.2.2": * +#import "@preview/fletcher:0.5.1" + #slide({ { set align(center) @@ -784,12 +833,15 @@ _Dimostrazione._ h(4.4em) $display( => 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] + z sum_(i=0)^n (-1)^i lr( + ( + L[E_i S_(i-1) dotss S_0 K] + L[e_i S_(i-1) dotss S_0 K] + ), size: #1em ) )$ }) + #slide({ { set align(center) @@ -798,8 +850,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] ) \ @@ -813,12 +863,21 @@ _Dimostrazione._ h(4.4em) $display( => L[K] + (-1)^n L[hat(K)(p)] = - z sum_(i=0)^n (-1)^i lr( + z #h(-0.125pt) #pin(1) sum_(i=0)^n (-1)^i lr( ( - L lr([underbrace(E_i S_(i-1) dotss S_0 K, #place(center, $A_i^lambda$))], size: #1em) + L lr([underbrace(e_i S_(i-1) dotss S_0 K, #place(center, $B_i^lambda$))], size: #1em) + L[E_i S_(i-1) dotss S_0 K] + L[e_i S_(i-1) dotss S_0 K] ), size: #1em - ) + ) #pin(2) )$ + + // pinit-highlight(1, 2, fill: color.rgb("#0002"), dy: -1.75em, extended-height: 3.25em) + pinit-place( + (1,), + dy: 1.25em, + $ + underbrace(#h(21.5em), #move(dy: 0.75em, $display("Notazione: " sum_D (lambda(p)))$)) + $, + ) }) #slide({ @@ -829,8 +888,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] ) \ @@ -844,28 +901,10 @@ _Dimostrazione._ 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]) + z sum_D^text(fill: #white, n) (lambda) )$ - - // 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) @@ -874,8 +913,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] ) \ @@ -888,8 +925,9 @@ _Dimostrazione._ 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]) + => L[K] = + (-1)^(n+1) L[hat(K)(p)] + + z sum_D^text(fill: #white, n) (lambda) )$ }) @@ -901,8 +939,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] ) \ @@ -913,23 +949,12 @@ _Dimostrazione._ 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) - )$, - ) + (-1)^(abs(lambda(p))+1) L[hat(K)(p)] + + z sum_D^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({ @@ -940,8 +965,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] ) \ @@ -954,17 +977,161 @@ _Dimostrazione._ 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) - )$) + => L[K] = + #h(-1pt) + #pin(1) + (-1)^(abs(lambda(p))+1) L[hat(K)(p)] + + z sum_D^text(fill: #white, n) (lambda) + #pin(2) )$ - // 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])))$ + 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( @@ -972,15 +1139,19 @@ _Dimostrazione._ self => [ #let (alternatives,) = utils.methods(self) + #set align(top) + + #v(7em) + #alternatives[ - *Definizione di $L_K$).* Il polinomio $L_(K)(a,z)$ è definito induttivamente come segue: + 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$) + 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$: @@ -991,31 +1162,26 @@ _Dimostrazione._ 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))) - )$ + ) #rect(stroke: none, height: 3.5em, width: 1pt)$ #v(1.5em) b) #h(0.35em) Se $n=1$: $display( L_K (a, z) colon.eq - #rect( - fill: gray.mix(white), - inset: (top: 0.65em), - outset: (top: 0.25em, bottom: 0.5em), - radius: 0.25em, - $display((-1)^(abs(lambda(p))+1) L[hat(K)(p)] + z sum_K (lambda(p)))$, - ) + #h(-1pt) #pin(1) (-1)^(abs(lambda(p))+1) L[hat(K)(p)] + z sum_K (lambda(p)) #pin(2) // display((-1)^(abs(lambda(p))+1) L[hat(K)(p)] + z sum_K (lambda(p))) - )$ + ) #rect(stroke: none, height: 3.5em, width: 1pt)$ + #pinit-highlight(1, 2, dy: -2em, dx: 3pt, extended-height: 3.75em, fill: rgb("#0002")) ][ - *Definizione di $L_K$).* Il polinomio $L_(K)(a,z)$ è definito induttivamente come segue: + 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$) + 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$: @@ -1026,31 +1192,24 @@ _Dimostrazione._ 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))) - )$ + ) #rect(stroke: none, height: 3.5em, width: 1pt)$ #v(1.5em) b) #h(0.35em) Se $n=1$: $display( L_K (a, z) colon.eq - #rect( - fill: white, - inset: (top: 0.65em), - outset: (top: 0.25em, bottom: 0.5em), - radius: 0.25em, - $display((-1)^(abs(lambda(p))+1) L[hat(K)(p)] + z sum_K (lambda(p)))$, - ) + (-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)$ ][ - *Def (induttiva di $L_K$).* Il polinomio $L_(K)(a,z)$ è definito induttivamente come segue: + 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$) + 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$: @@ -1061,7 +1220,7 @@ _Dimostrazione._ 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))) - )$ + ) #rect(stroke: none, height: 3.5em, width: 1pt)$ #v(1.5em) @@ -1070,7 +1229,7 @@ _Dimostrazione._ 1 / 2 sum_(q = p, overline(p)) ((-1)^(abs(lambda(q))+1) L_(hat(K)(q)) + z sum_K (lambda(q))) - )$ + ) #rect(stroke: none, height: 3.5em, width: 1pt)$ ] ], @@ -1162,7 +1321,7 @@ Per il progetto di Lab. Comp. abbiamo scritto una *nuova implementazione* in _Py - Verifica di tutti i polinomi contenuti nel *database di KnotInfo*. -- _Trovato un errore nel nodo_ $10_125$, c'è $F[10_125]$ invece di $F[10_125]$ ovvero $F_(10_125)(1 slash a, z)$. #h(1fr) +- _Trovato un errore nel nodo_ $10_125$: è presente $F[m(10_125)]$ invece di $F[10_125]$ ovvero $F[10_125](1 slash a, z)$. #h(1fr) == Implementazione in Python @@ -1171,6 +1330,8 @@ Per il progetto di Lab. Comp. abbiamo scritto una *nuova implementazione* in _Py set text(15pt) show math.equation: set text(size: 12pt) + v(2em) + grid( columns: 2, align: top, @@ -1200,9 +1361,9 @@ Per il progetto di Lab. Comp. abbiamo scritto una *nuova implementazione* in _Py + 3 a^2 + 7 + 3 / a^2 $, - image("assets/10_125.png", height: 6cm), + pad(top: -2em, image("assets/untangle-10_125.png", height: 9cm)), - scale(x: -100%, image("assets/10_125.png", height: 6cm)), + pad(top: -2em, image("assets/untangle-10_125-mirror.png", height: 9cm)), ) }