16 May 2024

Recall in the last post, we ran into issues with dimers admitting non-cluster quivers. This is because
as purely combinatorial objects, quivers fail to take into account the topology of the surface they
might be embedded into. For dimer quivers, there is actually a canonical way of encoding the embeddeding
via a **quiver with potential**.

Quivers with potential, from what I can tell, arose in the work of theoretical physics, especially when
dealing with mirror symmetry. In 2007, Derksen-Weyman-Zelevinsky developed a representation theoretic
perspective of mutation in their paper, providing an algebraic
description of quiver mutation. For us, there is a natural way to assign the potential using the
bipartite property of dimer models and the orientation of the surface. From there, we will describe
a (simplified) version of the Derksen-Weyman-Zelevinsky mutation of quivers with potential.

More …
15 May 2024

Not too long ago, I took a quick look at some of the activity that has been going on in the Java
bytecode obfuscation/deobfuscation communities. So far, I have noticed that most of the same ideas
since I have went inactive have remained the same:

- Flow obfuscation:
- opaque predicates;
- reordering blocks through
`goto`

;
- weird try-catch block flow;
- callstack-sensitive keys used for branching;
- CFG flattening;
- complicate existing jumps;
- etc.

- Constant obfuscation:
- encrypt strings via context-sensitive keys;
- split numerical constants into a ton of arithmetic;
- abuse constantdynamic;
- etc.

- Reference obfuscation:
- abuse the Reflection API;
- abuse invokedynamics;
- proxying of method and field invocations;
- changing all parameter types to
`java.lang.Object`

;
- etc.

- Exploits:
- HTML-injection of vulnerable tools;
- fake directories;
- tool-specific crashers;
- etc.

- And the usual other stuff like class encryption and math obfuscation and whatnot.

Now by no means am I saying that the work done in these areas isn’t impressive. In fact, some of
the recent work done in obfuscation and deobfuscation of Java bytecode is pretty impressive to me,
especially considering how annoying (for both parties) it is to have to work with JVM verification.
What did surprise me, however, I noticed that not a lot more effort has gone into novelizing ideas
in obfuscation of constants (or maybe there has but I just didn’t look hard enough…). In any case,
my goal in this post is to give some (meme) ideas for obfuscation of constants in hopes that people
push that area a little bit more.

More …
07 Jan 2024

In the physics literature, dimers show up particularly in the study of *mirror symmetry* as well as *statistical
mechanics*. Dimer models offer an interesting source of balanced quivers (every vertex has in-degree equal to out-degree).
Since quivers arising from triangulations are also balanced (with the way we defined them and excluding obvious
counterexamples like ideal triangulations on bordered surfaces with punctures), it may be worthwhile studying
dimer models to see if there are any interesting properties that arise.

[definition]
Let $S$ be a compact oriented Riemann surface. A **bipartite tiling** $T$ of $S$ is polygonal cell decomposition
of $S$ whose nodes and edges form a bipartite graph $\Gamma$. We also define

- $\Gamma_0$ to be the set of nodes of $\Gamma$. Since $\Gamma$ is bipartite, we have
$\Gamma_0 = \Gamma_0^\bullet \cup \Gamma_0^\circ$, where we call $\Gamma_0^\bullet$ the
**black nodes** and
$\Gamma_0^\circ$
- $\Gamma_1$ to be the set of edges of $\Gamma$
- $\Gamma_2$ to be the set of faces of $\Gamma$
If $\Gamma$ is finite, then we call $\Gamma$ a
**dimer model**.
[/definition]

More …
04 Jan 2024

Very forwardly put, **quivers** are directed multigraphs. One relatively modern interest of quivers
is the idea of **quiver mutation**. There are a lot of good ways to motivate quiver mutation, all
of which (to my knowledge, at least) involve cluster algebras in some way or another. The approach
we will take is to motivate them through triangulations of a regular $n$-gon (which is rooted in
cluster algebra theory, but we will ignore it).

In this post (and for the rest of the sequence of posts on this topic), we will define a **triangulation**
(of an $n$-gon) as a subdivision of the $n$-gon up into triangles. This subdivision is obtained by taking
the sides of the $n$-gon along with a maximal collection of non-intersecting diagonals (except possibly
at the endpoints). Here is an example of a triangulation of the regular hexagon.

More …
04 Jan 2024

This is the first post in a sequence of posts I will release regarding some of the topics I covered
in my slides for JMM2024. This is intended to be
largely expository and not much is really new mathematics.

Ultimately, we would like to build up towards a connection between quivers and dimer models obtained
through a variant of quiver mutation known as **QP mutation**. This is done by taking a dimer model
$\Gamma$ and orienting its graph dual to obtain the associated **dimer quiver**. It is easy to come
up with dimers where the dimer quiver consists of at least one $2$-cycle. When talking about quiver
mutation specifically, we assume that the quiver has no loops or $2$-cycles. Accordingly, this means
that many dimer quivers are not allowed to be mutated by definition.

This issue can be worked around by introducing a **potential**. Potentials are elements of $kQ/[kQ, kQ]$
where $kQ$ is the path algebra of the quiver and $[kQ, kQ]$ is the subspace of $kQ$ spanned by the
commutators. Then we use a variant of quiver mutation known as **QP mutation** as described by Derksen,
Weymann, and Zelevinsky. QP mutation uses the potential to control which $2$-cycles in the graph are
removed during quiver mutation. In our case, this can be exploited to sensibly mutate dimer quivers,
leading to a new kind of transformation on dimer models known as **$n$-face urban renewal**.

The significance of $n$-face urban renewal is that it corresponds to mutation of quivers with potential
in the case of $n = 4$. Furthermore, it also shares various properties with QP mutation (such as
being an involution).