marked
quiverlab.surfaces.marked ¶
Marked bordered surfaces (Plan 48). A MarkedSurface is the combinatorial datum (genus, boundary marked-point counts, punctures) of a compact oriented surface with marked points. The ideal-arc count n = 6g-6+3(b+p)+Sum k_i (Fomin-Shapiro-Thurston 2008) and the Euler invariants are derived exactly (derivation in the Plan-48 doc, Task 1); construction refuses the FST-inadmissible surfaces loudly. Float-free (all counts are ints).
MarkedSurface
dataclass
¶
MarkedSurface(genus: int, boundary_marked: tuple, punctures: int = 0)
A compact connected oriented surface (S, M): genus genus, boundary components
carrying boundary_marked = (k1, ..., kb) marked points each (k_i >= 1), and
punctures interior marked points. Refuses the FST-inadmissible surfaces on
construction. See Fomin-Shapiro-Thurston 2008 (fomin_shapiro_thurston).
num_boundary_components
property
¶
num_boundary_components: int
b = the number of boundary components.
total_marked
property
¶
total_marked: int
p + Sum k_i = all 0-cells (punctures + boundary marked points).
arc_count ¶
arc_count() -> int
n = 6g - 6 + 3(b + p) + Sum k_i -- the number of interior arcs in any ideal triangulation (FST 2008; boundary segments are NOT arcs).
Source code in src/quiverlab/surfaces/marked.py
79 80 81 82 83 | |
euler_characteristic ¶
euler_characteristic() -> int
chi(S) = 2 - 2g - b for a compact surface with b boundary components.
Source code in src/quiverlab/surfaces/marked.py
75 76 77 | |
in_v1_scope ¶
in_v1_scope() -> bool
True iff the surface is in Plan-48 v1 scope: unpunctured with non-empty boundary (the ABCP/LFS gentle regime).
Source code in src/quiverlab/surfaces/marked.py
93 94 95 96 | |
triangle_count ¶
triangle_count() -> int
t = (2n + c)/3 -- an exact integer by the side-counting identity 3t = 2n + c.
Source code in src/quiverlab/surfaces/marked.py
85 86 87 88 89 90 91 | |