#import "@local/handout:0.1.0": *
#import "@preview/cetz:0.4.2"

= The Signature-Cost Theorem

#definition()
First, we'll associate a _cost_ to each type of symmetry in orbifold notation:

#v(4mm)
#align(center, table(
  stroke: (1pt, 1pt),
  align: center,
  columns: (auto, auto, auto, auto),
  [*Symbol*], [*Cost*], [*Symbol*], [*Cost*],
  [#sym.circle.small], [2], [#sym.times or #sym.convolve], [1],
  [#sym.diamond.stroked.small`2`], [1/2], [#sym.convolve`2`], [1/4],
  [#sym.diamond.stroked.small`3`], [2/3], [#sym.convolve`3`], [1/3],
  [#sym.dots], [#sym.dots], [#sym.dots], [#sym.dots],
  [#sym.diamond.stroked.small`n`],
  [$(n-1) / n$],
  [#sym.convolve`n`],
  [$(n-1) / (2n)$],
))


We then calculate the total "cost" of a signature by adding up the costs of each component.

For example, a pattern with signature #sym.convolve`333` has cost 2:

#v(2mm)

$
  2 / 3 + 2 / 3 + 2 / 3 = 2
$

#problem()
Calculate the costs of the following signatures:
- #sym.diamond.stroked.small`3`#sym.convolve`3`
- #sym.convolve#sym.convolve
- #sym.diamond.stroked.small`4`#sym.convolve`2`:

#solution([
  - #sym.diamond.stroked.small`3`#sym.convolve`3`: $2/3 + 1 + 1/3 = 2$
  - #sym.convolve#sym.convolve: $1 + 1 = 2$
  - #sym.diamond.stroked.small`4`#sym.convolve`2`: $3/4 + 1 + 1/4 = 2$
])

#v(1fr)

#theorem(name: "Signature Cost Theorem")
The signatures of planar wallpaper patterns are exactly those with total cost 2. \
#note([We will not prove this theorem today, accept it without proof.])

#problem()
Consider the 4 symmetries (translation, reflection, rotation, and glide reflection). \
Which preserve orientation? Which reverse orientation?

#solution([
  - Reflections and glide reflections reverse orientation (directions of spirals).
  - Translation and rotation preserve orientation.
])

#v(1fr)
#pagebreak()

#problem()
Use the signature-cost theorem to find all the signatures consisting of only #sym.circle.small or rotational symmetries.

#solution([
  #sym.diamond.stroked.small`632`, #sym.diamond.stroked.small`442`, #sym.diamond.stroked.small`333`, #sym.diamond.stroked.small`2222`, #sym.circle.small
])

#v(1fr)


#problem()
Find all the signatures consisting of only mirror symmetries.

#solution([
  #sym.convolve`632`, #sym.convolve`442`, #sym.convolve`333`, #sym.convolve`2222`, #sym.convolve#sym.convolve
])

#v(1fr)


#problem()
Find all the remaining signatures. \
Each must be a mix of of mirror symmetries, rotational symmetries, or glide reflections. \
#hint([They are all shown in the problems section.])

#solution([
  #sym.diamond.stroked.small`3`#sym.convolve`3`, #sym.diamond.stroked.small`4`#sym.convolve`2`,
  #sym.diamond.stroked.small`22`#sym.times, #sym.diamond.stroked.small`22`#sym.convolve,
  #sym.times#sym.times, #sym.times#sym.convolve
])

#v(1fr)
