Expand description
Anisohedral periodicity: the monotile tiles by a multi-tile cluster.
A k-anisohedral tiling uses k symmetry-inequivalent copies of the SAME tile
per fundamental domain. Equivalently: glue k copies into a connected cluster
(still the one shape, rotations only) and that cluster tiles the plane as a
composite. So we enumerate k-tile clusters by edge-gluing (reusing
BasicPatch), dedup by lex-min-rotation boundary (rotation-only, no
reflection – single chirality), and test each cluster’s boundary with the
Conway check, then verify by minting a certificate. Acceptance is sound only
through that cert: mint gates it on PeriodicCert::verify, which re-checks
exact surroundedness at one tile PER TRANSLATION CLASS
(all_exactly_surrounded) plus exact multiplicity gates – necessary because
a k-cluster tiling has k>1 translation classes, so the center-only
verify_tiling pre-filter is not sufficient here. A verified cert proves the
monotile tiles periodically.
Structs§
- Cluster
Witness - A found anisohedral witness:
kcopies of the base tile glue into a connected cluster –buildis the assembly recipe (for the cert’s meta-tile) andtilingthe cluster’s own verified periodic tiling (in the canonical-rotation frame of the cluster boundary, which istiling.seq), proving the base tiles anisohedrally.
Functions§
- tiles_
anisohedral_ restart - Seeded restarts over the anisohedral search: try seeds
1..=restarts, each a fresh search bounded byper_budgetclusters, returning the first witness. The search is strongly HEAVY-TAILED – a tiling cluster’s position in the exploration order varies wildly with the seed (measured 2k..26k for one n=11 tile), so a good cluster almost always surfaces early under SOME seed. A handful of small-budget restarts therefore certifies a hard tile far faster, and bounded (restarts * per_budget), than one large deterministic pass – and it is reproducible (fixed seed sequence).restarts <= 1is the plain deterministic search (seed 0), so it changes nothing unless opted in. - tiles_
anisohedral_ seeded - The anisohedral search with an explicit exploration-order
seed(0 = the original deterministic order). A nonzero seed shuffles which frontier clusters are extended first, in which match order, and thus which survive the per-levelcluster_captruncation – seetiles_anisohedral_restart.cluster_capbounds the breadth kept per cluster size;budgetis a DETERMINISTIC ceiling on distinct clusters tested (0 = unlimited) – the same budget gives the same verdict every run, and exhausting any bound returnsNone(undecided), never a false accept.