many sums

main
Antonio De Lucreziis 11 months ago
parent b9434226bb
commit d855a22c7b

Binary file not shown.

@ -271,7 +271,9 @@ Un'altra osservazione sul comportamento dell'isotopia regolare rispetto alle mos
// C'è un'osservazione importante da fare quando parliamo di isotopia regolare. Quest'ultima è definita solo quando si parla di diagrammi. Quando invece parliamo di isotopia ambiente ha senso parlare dei link sia come diagrammi che come embedding $bb(S)^1 -> bb(R)^3$.
C'è un'osservazione importante da fare quando parliamo di isotopia regolare. Quest'ultima è definita solo quando si parla di diagrammi nel piano o su $bb(S)^2$. Nel caso dell'isotopia regolare su $bb(S)^2$ questa è equivalente all'isotopia di _link con framing_ #footnote[Nel caso di nodi come embedding da $bb(S)^1 -> bb(S)^3$, un *nodo con framing* è un embedding di $bb(D)^2 times bb(S)^1 -> bb(S)^3$. Il *framing* del nodo è l'immagine di $I times bb(S)^1 -> bb(S)^3$. Un nodo con framing può essere visto come una banda embedded dove il framing è il numero di twist con segno.].
// C'è un'osservazione importante da fare quando parliamo di isotopia regolare. Quest'ultima è definita solo quando si parla di diagrammi nel piano o su $bb(S)^2$. Nel caso dell'isotopia regolare su $bb(S)^2$ questa è equivalente all'isotopia di _link con framing_ #footnote[Nel caso di nodi come embedding da $bb(S)^1 -> bb(S)^3$, un *nodo con framing* è un embedding di $bb(D)^2 times bb(S)^1 -> bb(S)^3$. Il *framing* del nodo è l'immagine di $I times bb(S)^1 -> bb(S)^3$. Un nodo con framing può essere visto come una banda embedded dove il framing è il numero di twist con segno.]. In particolare l'isotopia regolare preserva il framing del nodo.
Un'altra osservazione importante che possiamo fare quando si parla di isotopia regolare è che quest'ultima è equivalente all'isotopia di _link con framing_ #footnote[Nel caso di nodi come embedding da $bb(S)^1 -> bb(S)^3$, un *nodo con framing* è un embedding di $bb(D)^2 times bb(S)^1 -> bb(S)^3$. Il *framing* del nodo è l'immagine di $I times bb(S)^1 -> bb(S)^3$. Un nodo con framing può essere visto come una banda embedded dove il framing è il numero di twist con segno.]. In particolare l'isotopia regolare preserva il framing del nodo.
Questo sarà importante più avanti quando vedremo invarianti come il polinomio $F_K$ che risulteranno essere invarianti per isotopia ambiente. Nel caso del polinomio $F_K$, il calcolo va fatto fissando un particolare diagramma del link. È tutt'ora un problema aperto dare una definizione "intrinseca" di $F_K$ senza usare diagrammi.
@ -282,7 +284,7 @@ Questo sarà importante più avanti quando vedremo invarianti come il polinomio
Vediamo ora un primo invariante di isotopia regolare per link orientati, per prima cosa definiamo il segno di un incrocio.
#definition[
Dato un incrocio nel diagramma di un link orientato ci possono essere due casi in base alla direzione in cui il filo sotto si trova rispetto a quello sopra. Definiamo *il segno* di un incrocio in base a questi casi come segue
Dato un incrocio del diagramma di un link orientato ci possono essere due casi in base alla direzione in cui il filo sotto si trova rispetto a quello sopra. Definiamo *il segno* di un incrocio in base a questi casi come segue
$
epsilon(#skein-generic(direction: (+1, +1))) = +1
@ -346,7 +348,7 @@ Questo risultato può essere generalizzato a diagrammi di link con l'accortezza
Un primo fatto generale che possiamo vedere è che, dato un invariante di isotopia regolare per diagrammi che si comporta "bene" rispetto alle mosse di tipo I, possiamo costruire un invariante di isotopia ambiente per link aggiungendo un fattore di correzione dato dal writhe.
#proposition[
Sia $R$ un anello, $a in R$ un elemento invertibile e $K$ un link orientato, $scr(D)$ l'insieme dei diagrammi dei link orientatati, allora se $L : scr(D) -> R$ è un invariante di isotopia regolare tale che
Sia $R$ un anello, $a in R$ un elemento invertibile e $K$ un link orientato, $scr(D)$ l'insieme dei diagrammi di link orientatati, allora se $L : scr(D) -> R$ è un invariante di isotopia regolare tale che
$
L(#skein.over-twist) = a L(#skein.strand)
@ -382,29 +384,36 @@ Un primo fatto generale che possiamo vedere è che, dato un invariante di isotop
e analogamente segue anche per l'altro ricciolo che $F(#skein.under-twist) = F(#skein.strand)$.
]
= Polinomio di Kauffman
= Il Polinomio di Kauffman
Ora introdurremo il polinomio di Kauffman @Kauffman1990-qe, che vedremo essere un invariante di isotopia regolare. Questo polinomio è definito in modo implicito da assiomi che utilizzano le relazioni skein, queste relazioni possono essere utilizzate direttamente per calcolare il polinomio di Kauffman per un certo diagramma sia in modo implicito che sfruttando una valutazione che porta man mano verso un nodo banale standard.
Ora introdurremo il polinomio di Kauffman @Kauffman1990-qe, che vedremo essere un invariante di isotopia regolare. Questo polinomio è definito in modo implicito da assiomi che utilizzano le relazioni skein, queste relazioni possono essere utilizzate direttamente per calcolare il polinomio di Kauffman per un certo diagramma sia in modo implicito che sfruttando una risoluzione che porta verso un nodo banale standard.
Vedremo come questi assiomi definiscono un unico invariante di isotopia regolare ben definito e come $kL_K (a, z)$ può essere generalizzato ad un invariante di isotopia ambiente $F_K (a, z)$.
Vedremo come questi assiomi definiscono un unico invariante di isotopia regolare ben definito e come $kL_K (a, z)$ può essere generalizzato ad un invariante di isotopia ambiente $F_K (a, z)$ utilizzando il lemma ... #margin-note[Aggiungere ref al lemma]
*Notazione.* Per rendere alcune calcoli più leggibili, in questo capitolo utilizzeremo in modo intercambiabile le notazioni $L_K$ e $L[K]$ per indicare le valutazioni di $L$ in un certo diagramma.
== Definizione assiomatica
#definition[
Dato $K$ un link non orientato, $kL_K in bb(Z)[a, a^(-1), z, z^(-1)]$, ovvero i polinomi di Laurent sugli interi nelle variabili $a$ e $z$, e verifica i seguenti assiomi:
Dato $K$ il diagramma di il diagramma di un link non orientato, e sia $bb(Z)[a, a^(-1), z, z^(-1)]$ l'anello i polinomi di Laurent sugli interi nelle variabili $a$ e $z$, allora $kL_K in bb(Z)[a, a^(-1), z, z^(-1)]$, e verifica i seguenti assiomi:
1. Se $K$, $K'$ sono equivalenti a meno di isotopia regolare, allora $kL_K = kL_K'$.
2. Valgono le seguenti relazioni skein per quaterne di diagrammi identici ovunque tranne che nei punti indicati
- $kL(#skein.over) + kL(#skein.under) = z (kL(#skein.h) + kL(#skein.v))$
// #set enum(numbering: n => [$K_#n$)])
#set enum(numbering: "a)")
- $kL(#skein.unit) = 1$
1. $kL(#skein.over) + kL(#skein.under) = z (kL(#skein.h) + kL(#skein.v))$
- $kL(#skein.over-twist) = a kL(#skein.strand)$
2. $kL(#skein.unit) = 1$
- $kL(#skein.under-twist) = a^(-1) kL(#skein.strand)$
]
3. $kL(#skein.over-twist) = a kL(#skein.strand)$
4. $kL(#skein.under-twist) = a^(-1) kL(#skein.strand)$
] <kauffman-poly-def>
// Queste sono le cosiddette relazioni skein del polinomio di Kauffman, come in precedenza ogni equazione sta a significare che ci sono dei diagrammi identici ovunque tranne nella parte evidenziata.
Come già anticipato in precedenza, vedremo che questo è un invariante di isotopia regolare e può essere generalizzato ad invariante di isotopia ambiente come segue
@ -427,8 +436,7 @@ Come già anticipato in precedenza, vedremo che questo è un invariante di isoto
== Alcune proprietà del polinomio di Kauffman
#lemma[
Sia $K$ un link orientato e $m(K)$ il suo mirror. Allora abbiamo la seguente relazione per $L$
e $F$
Sia $K$ il diagramma di un link orientato e $m(K)$ il suo mirror. Allora abbiamo le seguenti relazioni
$
L_(m(K)) (a, z) = L_K (1 slash a, z)
@ -441,67 +449,67 @@ Come già anticipato in precedenza, vedremo che questo è un invariante di isoto
#proof[
$m(K)$ è ottenuto da $K$ scambiando tutti i suoi incroci quindi se analizziamo cosa succede nei vari assiomi solo vicino ad un certo incrocio otteniamo le seguenti relazioni
$
kL(m(#skein.unit)) = kL(#skein.unit) = 1 \
kL(m(#skein.over-twist)) = kL(#skein.under-twist) = a^(-1) kL(#skein.strand) \
kL(m(#skein.under-twist)) = kL(#skein.over-twist) = a kL(#skein.strand)
kL[m(#skein.unit)] = kL[#skein.unit] = 1 \
kL[m(#skein.over-twist)] = kL[#skein.under-twist] = a^(-1) kL[#skein.strand] \
kL[m(#skein.under-twist)] = kL[#skein.over-twist] = a kL[#skein.strand]
$
ed infine l'ultima relazione rimane invariata per la simmetria del polinomio di Kauffman
$
kL(m(#skein.over)) + kL(m(#skein.under)) = z (kL(m(#skein.h)) + kL(m(#skein.v))) \
=> kL(#skein.under) + kL(#skein.over) = z (kL(#skein.h) + kL(#skein.v)) \
=> kL(#skein.over) + kL(#skein.under) = z (kL(#skein.h) + kL(#skein.v))
kL[m(#skein.over)] + kL[m(#skein.under)] = z (kL[m(#skein.h)] + kL[m(#skein.v)]) \
=> kL[#skein.under] + kL[#skein.over] = z (kL[#skein.h] + kL[#skein.v]) \
=> kL[#skein.over] + kL[#skein.under] = z (kL[#skein.h] + kL[#skein.v])
$
quindi passare al mirror ha l'effetto di scambiare solamente $a$ con $a^(-1)$ ma il resto della valutazione rimane identico.
quindi passare al mirror ha l'effetto di scambiare solamente $a$ con $1 slash a$ ma il resto della valutazione rimane identico.
Infine per $F_m(K)$ basta osservare che $w(m(K)) = -w(K)$ per una motivazione analoga.
]
Prima di passare alla dimostrazione della buona definizione vediamo alcuni esempi di calcolo di $L_K$ in modo "implicito", questo può essere fatto scegliendo accuratamente per quali diagrammi valutare le relazioni skein degli assiomi.
Prima di passare alla dimostrazione della buona definizione vediamo alcuni esempi di calcolo di $L_K$ in modo "implicito", questo può essere fatto scegliendo accuratamente i diagrammi in cui effettuare la valutazione attraverso le relazioni skein degli assiomi.
Ad esempio proviamo a ricavare il valore di $delta colon.eq L(#skein.unit#skein.unit)$
Ad esempio proviamo a ricavare il valore di $delta colon.eq L[#skein.unit#skein.unit]$
#let knot-picture(src, ..rest) = $thin #image("assets/derived/atlas-" + src, ..rest) thin$
$
L( #knot-picture("infinity-0.png", height: 2.25em) )
L[ #knot-picture("infinity-0.png", height: 2.25em) ]
+
L( #knot-picture("infinity-1.png", height: 2.25em) ) & =
L[ #knot-picture("infinity-1.png", height: 2.25em) ] & =
z (
L( #knot-picture("infinity-2.png", height: 2.25em) )
L[ #knot-picture("infinity-2.png", height: 2.25em) ]
+
L( #knot-picture("infinity-3.png", height: 2.25em) )
L[ #knot-picture("infinity-3.png", height: 2.25em) ]
) \
=>
a L( #skein.unit )
a L[ #skein.unit ]
+
a^(-1) L( #skein.unit ) & =
a^(-1) L[ #skein.unit ] & =
z (
delta
+
L ( #skein.unit )
L [ #skein.unit ]
) \
=> a + a^(-1) & = z ( delta + 1 ) \
=> delta & = (a + a^(-1)) slash z - 1
$
Questo valore $delta = (a + 1 slash a) slash z - 1$ ricomparirà anche in seguito ed è il coefficiente che il polinomio di Kauffman introduce quando abbiamo un link con due componenti disgiunte. Possiamo anche trovare il risultato per il link di Hopf come segue
Questo valore $delta = (a + 1 slash a) slash z - 1$ ricomparirà anche in seguito ed è il coefficiente che il polinomio di Kauffman introduce quando abbiamo più componenti disgiunte. Possiamo anche trovare il risultato per il link di Hopf come segue
// #figure(image("assets/implicit-calc-2.png"))
$
L( #knot-picture("hopf-0.png", height: 1.75em) )
L[ #knot-picture("hopf-0.png", height: 1.75em) ]
+
L( #knot-picture("hopf-1.png", height: 1.75em) ) & =
L[ #knot-picture("hopf-1.png", height: 1.75em) ] & =
z (
L( #knot-picture("hopf-2.png", height: 1.75em) )
L[ #knot-picture("hopf-2.png", height: 1.75em) ]
+
L( #knot-picture("hopf-3.png", height: 1.75em) )
L[ #knot-picture("hopf-3.png", height: 1.75em) ]
) \
=>
L( #knot-picture("hopf-0.png", height: 1.75em) )
L[ #knot-picture("hopf-0.png", height: 1.75em) ]
+
delta & =
z (
@ -510,7 +518,7 @@ $
a^(-1)
) \
=>
L( #knot-picture("hopf-0.png", height: 1.75em) ) & =
L[ #knot-picture("hopf-0.png", height: 1.75em) ] & =
- (a + a^(-1)) z^(-1) + 1 + (a + a^(-1)) z
$
@ -519,25 +527,25 @@ E del nodo trifoglio
// #figure(image("assets/implicit-calc-3.png"))
$
L( #knot-picture("trefoil-0.png", height: 2em) )
L[ #knot-picture("trefoil-0.png", height: 2em) ]
+
L( #knot-picture("trefoil-1.png", height: 2em) ) & =
L[ #knot-picture("trefoil-1.png", height: 2em) ] & =
z (
L( #knot-picture("trefoil-2.png", height: 2em) )
L[ #knot-picture("trefoil-2.png", height: 2em) ]
+
L( #knot-picture("trefoil-3.png", height: 2em) )
L[ #knot-picture("trefoil-3.png", height: 2em) ]
) \
=>
L( #knot-picture("trefoil-0.png", height: 2em) )
L[ #knot-picture("trefoil-0.png", height: 2em) ]
+
a & =
z (
L( #knot-picture("hopf-0.png", height: 1.75em) )
L[ #knot-picture("hopf-0.png", height: 1.75em) ]
+
a^(-2)
) \
=>
L( #knot-picture("trefoil-0.png", height: 2em) ) & =
L[ #knot-picture("trefoil-0.png", height: 2em) ] & =
-(2a + a^(-1)) + (1 + a^(-2)) z + (a + a^(-1)) z^2
$
@ -559,34 +567,75 @@ $
columns: 2,
column-gutter: 2em,
row-gutter: 1em,
$L(K_1 union.sq K_2) = delta L(K_1) L(K_2)$,
$F(K_1 union.sq K_2) = delta F(K_1) F(K_2)$,
$L(K_1 hash K_2) = L(K_1) L(K_2)$,
$F(K_1 hash K_2) = F(K_1) F(K_2)$,
$L[K_1 union.sq K_2] = delta L[K_1] L[K_2]$,
$F[K_1 union.sq K_2] = delta F[K_1] F[K_2]$,
$L[K_1 hash K_2] = L[K_1] L[K_2]$,
$F[K_1 hash K_2] = F[K_1] F[K_2]$,
)
}
dove $delta = (a + a^(-1)) slash z - 1$ ed è lo stesso coefficiente che abbiamo trovato nell'esempio precedente.
]
== Dimostrazione Forma Induttiva
== Strumenti Forma Induttiva
Prima di passare a descrivere la definizione induttiva diamo alcune definizioni di manipolazioni di un diagramma.
#definition[
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)$.
Sia $K$ un diagramma di un nodo, $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.
- Il suo *nodo 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.
Questa definizione si estende anche a diagrammi di link prendendo un insieme di punti base ordinati come mostrato in figura.
#figure(
image("assets/standard-unlink-construction.png", width: 12cm),
caption: [
Un link con tre componenti e punti di partenza direzionati $p_1, p_2, p_3$, poniamo $overline(p) = (p_1, p_2, p_3)$. In $hat(L)(cal(U), overline(p))$ sono evidenziati in #box(radius: 3pt, outset: (y: 3pt), inset: (x: 2pt), fill: rgb("#91cdff"))[azzurro] gli incroci \ scambiati rispetto al link $L$.
Un link con tre componenti e punti di partenza direzionati $p_1, p_2, p_3$, con $overline(p) = (p_1, p_2, p_3)$. In $hat(L)(cal(U), overline(p))$ sono evidenziati in #box(radius: 3pt, outset: (y: 3pt), inset: (x: 2pt), fill: rgb("#91cdff"))[azzurro] gli incroci scambiati rispetto al link $L$.
],
)
- Sia $K$ un link, $lambda = (lambda_n, dots, lambda_0)$ una sequenza di etichette di incroci allora poniamo
- Definiamo ora le seguenti mosse su un diagramma, sia $i$ l'etichetta di un incrocio del diagramma
#{
set align(center)
grid(
//
columns: 4,
column-gutter: 2em,
row-gutter: 1em,
{
skein.over
place(center + top, dy: -0.25em, {
set text(footnote-size)
$i$
})
},
{
skein.under
place(center + top, dy: -0.25em, {
set text(footnote-size)
$i$
})
},
skein.h,
skein.v,
$K$,
$S_i K$,
$E_i K$,
$e_i K$,
)
}
in questo caso $S_i K$ scambia l'informazione sopra/sotto dell'incrocio, mentre $E_i K$ e $e_i K$ applicano gli *splice* orizzontali e verticali a quell'incrocio.
#pagebreak()
Sia ora $lambda = (lambda_n, dots, lambda_0)$ una sequenza di etichette di suoi incroci.
- Definiamo le seguenti operazioni compatte per una sequenza di scambi seguita da uno splice finale
$
A_i^lambda = E_lambda_i S_lambda_(i-1) dots.c space S_lambda_0
@ -596,58 +645,92 @@ Prima di passare a descrivere la definizione induttiva diamo alcune definizioni
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)$]
- Poniamo $hat(K)(lambda) = S_lambda_n dots.c space S_lambda_0 K$ e definiamo le notazioni compatte per le seguenti somme alternate
$
sum_K (lambda) & colon.eq sum_(i=0)^n (-1)^i (L[A_i^lambda K] + L[B_i^lambda K]) \
Omega_K(lambda) & colon.eq (-1)^(abs(lambda) + 1) L[hat(K)(lambda)] + z sum_K (lambda)
$
dove $abs(lambda) = n$ per $lambda$ come sopra.
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
*Osservazione.* Se abbiamo una sequenza di operazioni $S_i$, $E_i$, $e_i$ su incroci diversi queste operazioni commutano tra loro. Questo segue dal fatto che queste operazioni fanno solo modifiche locali al diagramma.
#definition[
Dati $K_1, K_2$ diagrammi di link, diciamo che $K_1$ *sovrasta* $K_2$ se per ogni incrocio tra $K_1$ e $K_2$ abbiamo che sono tutti sopra-incroci.
]
== Forma Induttiva
=== Caso base: Nodo banale standard #margin-note[Riformulare con proposizione + dimostrazione]
Per prima cosa osserviamo che se abbiamo il diagramma di un nodo non orientato $K$ allora, preso $p$ un qualsiasi punto di partenza direzionato, $hat(K)(cal(U), p)$ sarà un nodo banale. Esisterà quindi una sequenza di mosse di tipi I, II, III che ci porta al diagramma $#skein.unit$. Rimuovendo da questa successione tutte le mosse di tipo I e modificando le mosse II e III della successione in modo da far passare i riccioli attraverso i fili (come visto in precedenza si può fare usando alcune mosse II e III) otteniamo una successione composta solamente da mosse II e III che ci porta ad un diagramma composto solamente da riccioli.
Questa osservazione ci permette di calcolare esplicitamente $L_(hat(K)(cal(U), p))$ che può essere risolto usando solo gli assiomi #link(<kauffman-poly-def>)[ii.b), ii.c), ii.d)] ovvero quelli per $#skein.over-twist-medium$, $#skein.under-twist-medium$, $#skein.unit-medium$. Segue facilmente per induzione che $L_hat(K) (a, z) = a^w(K)$.
=== Caso induttivo
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 applichiamo incrementalmente gli scambi a $K$, ovvero consideriamo $S_i dotss S_0 K$, ed applichiamo la relazione skein principale a questi diagrammi otteniamo le seguenti relazioni
$
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_0 S_0 K) + L_(e_0 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))
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_0 S_0 K] + L[e_0 S_0 K] ) \
& space dots.v \
L[S_(n-1) dotss S_0 K] + L lr([underbrace(S_n dotss S_0 K, hat(K))], size: #1.125em) &= z (L[E_n S_(n-1) dotss S_0 K] + L[e_n S_(n-1) dotss S_0 K])
$
se ora sommiamo e sottraiamo membro a membro otteniamo la seguente identità
#context block(width: page.width, grid(
columns: 3,
column-gutter: 2em,
row-gutter: 1em,
$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_0 S_0 K) + L_(e_0 S_0 K) )$,
$dots.v$,
$=$,
$dots.v$,
$+(-1)^n (L_(S_(n-1) dots S_0 K) + L_(hat(K)))$,
[],
$+(-1)^n (z (L_(E_n S_(n-1) dots S_0 K) + L_(e_n S_(n-1) dots S_0 K)))$,
))
se ora sommiamo e sottraiamo membro a membro queste equazioni otteniamo la seguente identità
#context {
set align(center)
block(width: page.width, grid(
columns: 3,
column-gutter: 2em,
row-gutter: 1em,
align: (right, center, left),
$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_0 S_0 K] + L[e_0 S_0 K] )$,
$dots.v$,
$=$,
$dots.v$,
$+(-1)^n (L[S_(n-1) dotss S_0 K] + L[hat(K)])$,
[],
$ +(-1)^n (z (L[E_n S_(n-1) dotss S_0 K] + L[e_n S_(n-1) dotss S_0 K]))$,
))
}
notiamo che possiamo cancellare tutti i termini del membro di sinistra che compaiono due volte con segno opposto
#context block(width: page.width, grid(
columns: 3,
column-gutter: 2em,
row-gutter: 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_0 S_0 K) + L_(e_0 S_0 K) )$,
$dots.v$,
$=$,
$dots.v$,
$+(-1)^n (cancel(L_(S_(n-1) dots S_0 K)) + L_(hat(K)))$,
[],
$+(-1)^n (z (L_(E_n S_(n-1) dots S_0 K) + L_(e_n S_(n-1) dots S_0 K)))$,
))
Da cui otteniamo un'espressione per $L_K$, inoltre posto $lambda = (0, dots, n)$
#context {
set align(center)
block(width: page.width, grid(
columns: 3,
column-gutter: 2em,
row-gutter: 1em,
align: (right, center, left),
$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_0 S_0 K] + L[e_0 S_0 K] )$,
$dots.v$,
$=$,
$dots.v$,
$+(-1)^n (cancel(L[S_(n-1) dotss S_0 K]) + L[hat(K)])$,
[],
$+(-1)^n (z (L[E_n S_(n-1) dotss S_0 K] + L[e_n S_(n-1) dotss S_0 K]))$,
))
}
Da cui otteniamo un'espressione ricorsiva per $L_K$:
#align(center, block(width: 15cm, [
#set align(center)
@ -656,54 +739,61 @@ Da cui otteniamo un'espressione per $L_K$, inoltre posto $lambda = (0, dots, n)$
=>
L_K & =
(-1)^(n+1) L_(hat(K)) + z sum_(i=0)^n (-1)^i (
L_(E_n S_(n-1) dots S_0 K) + L_(e_n S_(n-1) dots S_0 K)
L[E_n S_(n-1) dotss S_0 K] + L[e_n S_(n-1) dotss S_0 K]
) \
& =
(-1)^(n+1) L_(hat(K)) + z sum_(i=0)^n (-1)^i (
L_(A_n^lambda K) + L_(B_n^lambda K)
L[A_n^lambda K] + L[B_n^lambda K]
)
$ <kauffman-rec-inductive>
]))
Questo ci dà un'idea su come sia possibile calcolare induttivamente $L_K$ in termini di $L_hat(K)$ e di altri diagrammi con meno incroci del diagramma di partenza.
Questo ci dà un'idea su come sia possibile calcolare induttivamente $L_K$ in termini di $L_hat(K)$ e di altri diagrammi con meno incroci del diagramma di partenza o più "vicini" a $hat(K)$.
Affinché sia sempre possibile raggiungere un nodo in forma di nodo banale standard serve aggiungere la seguente relazione quando $K = K_1 union.sq K_2$ con $K_1$ sovrastante $K_2$.
Affinché sia sempre possibile raggiungere un nodo in forma di nodo banale standard serve anche aggiungere la relazione
$
L_(K_1 union.sq K_2) = delta L_(K_1) L_(K_2)
$ <kauffman-rec-overlies>
per $K = K_1 union.sq K_2$ con $K_1$ sovrastante#footnote[Questo include anche il caso di componenti disgiunte in quanto sono sovrastanti tra loro a vuoto.] $K_2$.
sempre con $delta = (a + a^(-1)) slash z - 1$.
// Closed form algorithm
=== La definizione induttiva
#definition(name: [Forma chiusa per $kL_K$])[
#definition(name: [Forma chiusa per $L_K$])[
Il polinomio $kL_(K)(a,z)$ è definito induttivamente come segue, abbiamo i seguenti casi:
]
] <kauffman-rec-inductive-def>
// la definizione è sotto perché gli enumerate non vanno d'accordo con le figure
1. Se $K = hat(K)$ è un _nodo banale standard_ allora $kL_K (a, z) colon.eq a^w(K)$
1. Se $K = hat(K)(cal(U), p)$ è un _nodo banale standard_ per un qualche $p$ allora
$
kL_K (a, z) colon.eq a^w(K)
$
2. Se $K_1$ è _sovrastante_ $K_2$, sia $d colon.eq (a + a^(-1)) slash z - 1$ e allora
2. Se $K_1, K_2$ sono due diagrammi tali che $K_1 union K_2 subset.eq K$ ed abbiamo che $K_1$ _sovrasta_ $K_2$, allora poniamo
$
kL(K_1 union.sq K_2) colon.eq d kL(K_1) kL(K_2)
kL(K_1 union K_2) colon.eq d kL(K_1) kL(K_2)
$
3. Se $K = K_1 union.sq dotss union.sq K_n$
con $d colon.eq (a + a^(-1)) slash z - 1$.
- Se un $K_i$ è _sovrastante_ un'altra componente allora applica (ii).
3. Sia $K = K_1 union dotss union K_n$, se nessun $K_i$ sovrasta tutti gli altri#footnote[Questo sicuramente accade altrimenti potremmo usare il punto ii).] allora:
- Se nessun $K_i$ è _sovrastante_ 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 _sovrastante_ il resto delle componenti. A questo punto possiamo definire $kL_K$ come
- Se $K$ è composto da più componenti allora siano $p_1, ..., p_n$ dei punti di partenza direzionati su $K_1, ..., K_n$ e $overline(p)_i$ lo stesso punto di partenza $p_i$ con la direzione opposta 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 _sovrastante_ il resto delle componenti. A questo punto possiamo definire $kL_K$ come
#[
#set text(size: 11pt)
$
kL_K (a, z) colon.eq
L_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)))
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)))
]
$
]
@ -716,8 +806,139 @@ sempre con $delta = (a + a^(-1)) slash z - 1$.
$
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)))
sum_(q = p, overline(p))
((-1)^(|lambda(q)|+1) kL(hat(K)(lambda(q))) + z sum_K (lambda(q)))
]
$
]
== Dimostrazione buona definizione
Per prima cosa osserviamo che dato che in ogni termine della definizione induttiva per $L_K$, quando questa dipende dalla scelta di un punto base sono presenti i termini per entrambe le direzioni; quindi ci basta dimostrare induttivamente che le definizioni non dipendono dalla scelta di punto base.
Nel corso della dimostrazione tutti gli argomenti per induzione si baseranno sul numero di incroci dei diagrammi di link. Ometteremo i casi base ovvero i controlli per diagrammi con pochi vertici che fanno partire l'induzione in quanto sono tutti facili da controllare.
#definition(
name: [L'ipotesi induttiva],
)[
L'ipotesi induttiva che useremo nel corso della dimostrazione è la la seguente:
#set enum(numbering: "a)")
Per ogni diagramma di link $K$ con $< N$ incroci e diagrammi $#skein.over-twist-medium$ con meno di $N$ incroci:
1. $L_K$ è ben definito (non dipende dalla scelta di punto base).
2. $L_K$ verifica gli assiomi:
- $L[K] + L[S_i K] = z ( L[e_i K] + L[E_i K] )$
- $L[#skein.over-twist-medium] = a L [#skein.strand-medium]$
- $L[#skein.under-twist-medium] = a L [#skein.strand-medium]$
3. $L_K$ è invariante per mosse di tipo II e III che non aumentano il numero di incroci.
]
#lemma[
Sia $lambda = (lambda_n, dots, lambda_1, lambda_0)$ una scelta di etichette per un sottoinsieme di incroci di un diagramma di link $K$. Sia $mu = (lambda_0, lambda_n, dots, lambda_1)$ la stessa successione $lambda$ ma ruotata di $1$ in avanti. Allora
$
sum_K (lambda) = sum_K (mu)
$
]
#proof[
Per prima cosa rinominiamo le etichette $lambda_n, dots, lambda_0$ come $n, dots, 0$ per semplificare la notazione dunque
$
lambda = (n, n-1, dots, 1, 0)
#h(2em)
mu = (0, n, n-1, dots, 1)
$
ricordiamo ora le definizioni
$
sum_K (lambda) =& sum_(i=0)^n (-1) ( L[A_i^lambda K] + L[B_i^lambda K]) \
= & + (L[E_0 K] + L[e_0 K]) + \
& - ( L[E_1 S_0 K] + L[e_1 S_0 K]) + \
& space dots.v \
& + (-1)^n ( L[E_n S_(n-1) dotss S_0 K] + L[e_n S_(n-1) dotss S_0 K] )
$
$
sum_K (mu) = & sum_(i=0)^n (-1) (L[A_i^mu K] + L[B_i^mu K]) \
= & + (L[E_1 K] + L[e_1 K]) + \
& - ( L[E_2 S_1 K] + L[e_2 S_1 K]) + \
& space dots.v \
& + (-1)^n ( L[E_0 S_n dotss S_1 K] + L[e_0 S_n dotss S_1 K] )
$
Calcoliamo ora $sum_K (lambda) - sum_K (mu)$, per prima cosa allineiamo i termini come segue:
#{
set text(size: footnote-size)
$
& (L[E_0 K] + L[e_0 K]) + \
& - ( L[E_1 S_0 K] + L[e_1 S_0 K]) + & #h(2em) & (L[E_1 K] + L[e_1 K]) + \
& + ( L[E_2 S_1 S_0 K] + L[e_2 S_1 S_0 K]) + & & - ( L[E_2 S_1 K] + L[e_2 S_1 K]) + \
& space dots.v & & + ( L[E_3 S_2 S_1 K] + L[e_3 S_2 S_1 K]) + \
& + (-1)^n ( L[E_n S_(n-1) dotss S_0 K] + L[e_n S_(n-1) dotss S_0 K] ) & & space dots.v \
& & & + (-1)^n ( L[E_0 S_n dotss S_1 K] + L[e_0 S_n dotss S_1 K] ) \
$
}
a questo punto raggruppiamoli fattorizzando per righe:
$
sum_K (lambda) - sum_K (mu) = + ( & L[E_0 K] + L[e_0 K]) + \
- ( & L[E_1 S_0 K] + L[e_1 S_0 K] + L[E_1 K] + L[e_1 K]) + \
space dots.v \
+(-1)^n ( & L[E_n S_(n-1) dotss S_1 S_0 K ] + L[e_n S_(n-1) dotss S_1 S_0 K ] + \
& + L[E_n S_(n-1) dotss S_1 K ] + L[e_n S_(n-1) dotss S_1 K] ) + \
+ (-1)^(n+1) ( & L[E_0 S_n dotss S_1 K] + L[e_0 S_n dotss S_1 K] )
$
#let blank = $#h(0.125em) #rect(width: 0.8em * 1.41, height: 0.8em, stroke: 0.5pt)#h(0.125em)$
permutando i termini di tutte le righe tranne la prima e l'ultima possiamo riscriverli in modo da averli nella forma "$L[#blank K] + L[#blank S_0 K]$"
$
sum_K (lambda) - sum_K (mu) =
+ ( & L[E_0 K] + L[e_0 K]) + \
- ( & L[E_1 K] + L[E_1 S_0 K] + L[e_1 K] + L[e_1 S_0 K] ) + \
space dots.v \
(-1)^n ( & L[E_n S_(n-1) dotss S_1 K ] + L[E_n S_(n-1) dotss S_1 S_0 K ] + \
& + L[e_n S_(n-1) dotss S_1 K ] + L[e_n S_(n-1) dotss S_1 S_0 K ] ) \
+ (-1)^(n+1) ( & L[E_0 S_n dotss S_1 K] + L[e_0 S_n dotss S_1 K] )
$
ora utilizziamo un'osservazione precedente riguardo l'ordine di applicazione delle operazioni $S_i$ quindi otteniamo $S_(n-1) dotss S_1 S_0 K = S_0 S_(n-1) dotss S_1 K$, dunque possiamo applicare l'induzione ovunque troviamo
$
L[#blank] + L[S_i #blank] = z (L [E_i #blank] + L[e_i #blank])
$
$
=> sum_K (lambda) - sum_K (mu) =
+ ( & L[E_0 K] + L[e_0 K]) + \
- z( & L[E_0 E_1 K] + L[e_0 E_1 K] + L[E_0 e_1 K] + L[e_0 e_1 K] ) + \
space dots.v \
(-1)^n z ( & L[E_0 E_n S_(n-1) dotss S_1 K ] + L[e_0 E_n S_(n-1) dotss S_1 K ] + \
& + L[E_0 e_n S_(n-1) dotss S_1 K ] + L[e_0 e_n S_(n-1) dotss S_1 K ] ) \
+ (-1)^(n+1) ( & L[E_0 S_n dotss S_1 K] + L[e_0 S_n dotss S_1 K] )
$
riordiniamo le operazioni e portiamo $E_0$ e $e_0$ all'inizio delle successioni di operazioni
$
= + ( & L[E_0 K] + L[e_0 K]) + \
- z( & L[ E_1 E_0 K] + L[ E_1 e_0 K] + L[ e_1 E_0 K] + L[ e_1 e_0 K] ) + \
space dots.v \
(-1)^n z ( & L[ E_n S_(n-1) dotss S_1 E_0 K ] + L[ E_n S_(n-1) dotss S_1 e_0 K ] + \
& + L[ e_n S_(n-1) dotss S_1 E_0 K ] + L[ e_n S_(n-1) dotss S_1 e_0 K ] ) \
+ (-1)^(n+1) ( & L[ S_n dotss S_1 E_0 K] + L[ S_n dotss S_1 e_0 K] )
$
]

@ -4,16 +4,12 @@
import cetz.draw: *
// draw the white outline
set-style(..cetz.styles.resolve(
(stroke: (paint: white, thickness: size-factor * 0.75pt * 8, cap: "butt")),
base: style,
))
set-style(..cetz.styles.resolve((stroke: (paint: white, thickness: size-factor * 0.75pt * 8, cap: "butt")), base: style))
polyline
// draw the black line
set-style(..cetz.styles.resolve(style, base: (stroke: (paint: black, thickness: size-factor * 0.75pt, cap: "round"))))
polyline
// set-style(stroke: (paint: black, thickness: thickness, cap: "round"))
}
@ -84,6 +80,14 @@
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)) })
}),
//
// Medium
//
unit-medium: skein-canvas(size-factor: medium-scale-factor, {
import cetz.draw: *
circle((0, 0), radius: 1, stroke: (paint: black, thickness: 0.75pt))
}),
strand-medium: skein-canvas(size-factor: medium-scale-factor, {
import cetz.draw: *
rect((-1, -1), (1, 1), fill: white, stroke: none)
@ -94,6 +98,14 @@
draw-strand(size-factor: medium-scale-factor, { hobby((1.5, +1), (1, +1), (-0.5, 0), (-0.1, -1), (0, -1)) })
draw-strand(size-factor: medium-scale-factor, { hobby((-1.5, +1), (-1, +1), (0.5, 0), (0.1, -1), (0, -1)) })
}),
under-twist-medium: skein-canvas(size-factor: medium-scale-factor, {
import cetz.draw: *
draw-strand(size-factor: small-scale-factor, { hobby((-1.5, +1), (-1, +1), (0.5, 0), (0.1, -1), (0, -1)) })
draw-strand(size-factor: small-scale-factor, { hobby((1.5, +1), (1, +1), (-0.5, 0), (-0.1, -1), (0, -1)) })
}),
//
// Small
//
strand-small: skein-canvas(size-factor: small-scale-factor, {
import cetz.draw: *
rect((-1, -1), (1, 1), fill: white, stroke: none)
@ -111,13 +123,7 @@
}),
)
#let skein-generic(
kind: "over",
direction: (+1, +1),
arrows: (true, true),
styles: ((:), (:)),
) = {
#let skein-generic(kind: "over", direction: (+1, +1), arrows: (true, true), styles: ((:), (:))) = {
skein-canvas({
import cetz.draw: *
if kind == "over" {

@ -60,7 +60,6 @@
// top: 4.5cm,
// bottom: 3.5cm,
),
header-ascent: 1cm,
header: context {
let i = counter(page).get().first()
@ -68,14 +67,10 @@
set text(size: script-size)
align(center, upper(page-title))
},
footer-descent: 1cm,
footer: context {
let i = counter(page).get().first()
align(
center,
[#i],
)
align(center, [#i])
},
)
@ -90,19 +85,8 @@
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,
)
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,) {
@ -111,20 +95,14 @@
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),
)
}
),
..(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),
@ -169,10 +147,7 @@
show math.equation: set block(below: normal-size * 1.5, above: normal-size * 1.5)
show math.equation: set text(weight: 400)
set math.equation(
numbering: "(1)",
supplement: none,
)
set math.equation(numbering: "(1)", supplement: none)
show math.equation: it => {
if it.block and not it.has("label") [
@ -194,33 +169,20 @@
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,
)
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,
)
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 std.bibliography(style: "ieee", title: none)
set figure(gap: 1em)
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)
show figure.caption: caption => block(inset: (x: 1.4em), {
set align(left)
set text(size: 10.5pt)
smallcaps(caption.supplement)
if caption.numbering != none {
[ ]
@ -228,7 +190,7 @@
}
[. ]
caption.body
}
})
// We want a bit of space around tables and images.
show selector.or(table, image): pad.with(x: 2em)
@ -346,102 +308,64 @@
show ref: it => {
if it.element != none {
let el = it.element
if el == figure {
if el.kind == "proposition" or el.kind == "lemma" or el.kind == "theorem" {
link(
el.location(),
{
if it.supplement != auto { it.supplement } else { el.supplement }
[ ]
(
..counter(heading).at(el.location()).slice(0, 1).map(it => str(it)),
numbering(el.numbering, ..el.counter.at(el.location())),
).join(".")
},
)
}
if el.kind == "definition" or el.kind == "proposition" or el.kind == "lemma" or el.kind == "theorem" {
link(el.location(), {
if it.supplement != auto { it.supplement } else { el.supplement }
[ ]
(
..counter(heading).at(el.location()).slice(0, 1).map(it => str(it)),
numbering(el.numbering, ..el.counter.at(el.location())),
).join(".")
})
} else {
it
repr(el)
}
} else if it.citation != none {
it
}
}
// show ref: it => {
// set text(fill: white)
// box(fill: red, outset: (y: 0.5em), it)
// }
// First thesis page
context {
set align(center + horizon)
set text(size: 14pt)
set page(
margin: 0pt,
header: none,
footer: none,
)
set page(margin: 0pt, header: none, footer: none)
// show text: it => box(stroke: 1pt + red, it)
// show grid: it => box(stroke: 1pt + red, it)
grid(
columns: 1,
image("assets/unipi.svg", width: 5cm),
v(2em),
{
set text(size: 18pt)
smallcaps[Università di Pisa]
},
v(1em),
{
line(length: 5.25cm)
},
v(1em),
[
*Dipartimento di Matematica \ Corso di Laurea Triennale in Matematica*
],
v(6em),
{
[Tesi di Laurea]
},
v(1em),
{
set text(size: 18pt)
strong(page-title)
},
v(15em),
{
block(
width: 12cm,
grid(
columns: (1fr, 1fr),
{
set align(left)
[Relatore: \ *Prof. Paolo Lisca*]
},
{
set align(right)
[Candidato: \ *Antonio De Lucreziis*]
},
),
)
},
v(6em),
{
line(length: 6cm)
},
v(1em),
[
*Anno Accademico 2024/2025*
],
)
grid(columns: 1, image("assets/unipi.svg", width: 5cm), v(2em), {
set text(size: 18pt)
smallcaps[Università di Pisa]
}, v(1em), {
line(length: 5.25cm)
}, v(1em), [
*Dipartimento di Matematica \ Corso di Laurea Triennale in Matematica*
], v(6em), {
[Tesi di Laurea]
}, v(1em), {
set text(size: 18pt)
strong(page-title)
}, v(15em), {
block(width: 12cm, grid(columns: (1fr, 1fr), {
set align(left)
[Relatore: \ *Prof. Paolo Lisca*]
}, {
set align(right)
[Candidato: \ *Antonio De Lucreziis*]
}))
}, v(6em), {
line(length: 6cm)
}, v(1em), [
*Anno Accademico 2024/2025*
])
pagebreak()
}
@ -459,43 +383,26 @@
// },
// )
grid(rows: (auto, 1fr, 2fr), align: center + horizon, v(2em), {
if abstract != none {
pad(x: 2em, grid(columns: 1, {
set text(size: 16pt)
grid(
rows: (auto, 1fr, 2fr),
align: center + horizon,
v(2em),
{
if abstract != none {
pad(
x: 2em,
grid(
columns: 1,
{
set text(size: 16pt)
[*Abstract*]
},
v(1em),
{
set align(start)
abstract
},
),
)
}
},
{
set text(size: 16pt)
[*Indice*]
v(0.25em)
[*Abstract*]
}, v(1em), {
set align(start)
abstract
}))
}
}, {
set text(size: 16pt)
[*Indice*]
set text(size: 12pt)
outline(title: none, depth: 2, indent: 1em)
},
)
v(0.25em)
set text(size: 12pt)
outline(title: none, depth: 2, indent: 1em)
})
context { counter("fact").update(2) }

Loading…
Cancel
Save