Skip to content
beloch

The model

This document defines what a Beloch program talks about: the set of states, the values a program can name, and the operations on both. SPECIFICATION.md says how the language is written; this document says what it means. How the kernel realizes it is the subject of KERNEL.md, which refers to the statements here by their ids; this document does not refer back.

The document grows in steps. Each definition is stated with its intuition first, then its formal content. Statements are numbered within their section: a Definition introduces a term, a Lemma is a consequence with a proof or a pointer to one, a Corollary follows from a lemma without further argument, a Remark is unproven commentary, a Condition is a named requirement that a later definition collects, an Open point is a decision still to be made and is part of the contract until closed. Each statement carries the terms it defines, the statements it uses and the statements that use it. Every word used in a technical sense is listed under Terms with a link to where it is defined; the first use in the text links there too.

Before reading. The text uses set notation and plane geometry at first-course level, and folding words (crease, flap, layer, mountain, valley) the way folders use them. Everything it needs from flat-folding theory is restated where it is used; the full account is Hull 1.

Review status. Section 1 read and accepted. Section 2 rewritten on review (2026-09-17): the state is a triple, λ\lambda is a signed function on ordered pairs, refinement has its lemma. Section 3 read and accepted for now (2026-09-18); the primary source Justin 1997 is still missing. Section 4 rewritten on review (2026-09-18): every value is a set of paper points, the line sort is gone in favour of the material of a table line and the line of a straight bundle, and the former open point on a line value across states is closed by that. Section 5 is a draft; it still writes states as pairs (f,λ)(f, \lambda) and takes lines rather than bundles as arguments.

Intuition: a sheet of paper is a flat shape whose points keep their identity no matter how the sheet is folded. Everything Beloch names is a point of the sheet, a line drawn on the sheet, or a set of such things.

Definition 1.1 sheet

A sheet is a simple polygon P⊂R2P \subset \mathbb{R}^2: a closed boundary without self-intersection and without holes. The plane of PP is the paper frame. A paper point is an element of PP.

The sheet may be non-convex. Convexity belongs to the faces of a state (Definition 2.1): a non-convex sheet is decomposed into convex faces joined by flat hinges (angle 00), and a convex sheet is a single face.

Holes are excluded because the tortilla conditions of Definition 3.6 are stated for regions without holes 2 and because the existence of a folding motion is proven for simple polygons only 3.

Sources: paper as an orientable 2-manifold with boundary 4; faces as strictly convex polygons because face division and overlap algorithms need it 5.

Open 1.2 sheet shapes beyond polygons

The language design for sheets as values names the circle as a shape. A disc is no polygon and has no decomposition into finitely many convex polygons, so Definition 1.1 and Definition 2.1 exclude it as written. The generalisation is a sheet bounded by finitely many algebraic arcs and faces that are convex regions bounded by segments and arcs of the sheet boundary; convexity survives cuts by lines, so the rest of the model stands. Whether to widen the definitions now or when a circular sheet is built is open; the kernel's polygon geometry is the cost either way.

Intuition: a folded state records where every point of the sheet lies on the table and, wherever paper lies on paper, which layer is on top. In particular a state does not remember how it was reached.6

Definition 2.1 flat folded state

Let PP be a sheet and let T=R2T = \mathbb{R}^2 be the table, a plane with a chosen side called up. A flat folded state of PP is a triple (F,f,λ)(\mathcal{F}, f, \lambda), read up to the refinement equivalence of Definition 2.5, where

  1. F\mathcal{F} is a finite set of convex polygons, the faces, with pairwise disjoint interiors and ⋃F=P\bigcup \mathcal{F} = P: the faces cover the sheet and overlap at most along their boundaries;
  2. for every face AA there is a plane isometry ϕA\phi_A, a map R2→R2\mathbb{R}^2 \to \mathbb{R}^2 that preserves distances (every such map is a composition of translations, rotations and reflections), such that ϕA(p)=ϕB(p)\phi_A(p) = \phi_B(p) for all p∈A∩Bp \in A \cap B, and f:P→Tf : P \to T is the map with f(p)=ϕA(p)f(p) = \phi_A(p) for p∈Ap \in A. The agreement on shared boundaries makes ff well defined, and since the faces are finitely many closed sets, ff is continuous;
  3. with Ω={(A,B)∈F×F:A≠B, int⁡f(A)∩int⁡f(B)≠∅}\Omega = \{(A, B) \in \mathcal{F} \times \mathcal{F} : A \neq B,\ \operatorname{int} f(A) \cap \operatorname{int} f(B) \neq \emptyset\} the set of ordered pairs of overlapping faces, λ:Ω→{+1,−1}\lambda : \Omega \to \{+1, -1\} is a function with λ(B,A)=−λ(A,B)\lambda(B, A) = -\lambda(A, B), and λ(A,B)=+1\lambda(A, B) = +1 reads as "AA lies above BB": throughout their overlap, AA is on the up side of BB;

and λ\lambda satisfies the non-crossing conditions of Definition 3.6.

Reading the notation: ⋃F\bigcup \mathcal{F} is the union of all faces; int⁡X\operatorname{int} X is the interior of XX, the set without its boundary, and for convex polygons "the interiors meet" is the same as "the intersection has positive area"; λ:Ω→{+1,−1}\lambda : \Omega \to \{+1, -1\} names the function, its domain and its set of values, in that order.

One value per pair of faces is enough because the overlap of two convex faces is a single convex region that contains no crease of either face, and the order of two uncreased regions is constant on their overlap 7. The sign is Demaine's: +1+1 means above 8; Akitaya et al. and Hull and Zakharevich use the opposite sign 9.

A segment of positive length shared by the boundaries of two faces AA and BB is a hinge. Its angle is 00 when ϕA=ϕB\phi_A = \phi_B, so that on the table the two faces continue each other without a bend; it is ±π\pm\pi when ϕB=ϕA∘ρe\phi_B = \phi_A \circ \rho_e, where ρe\rho_e is the reflection of the paper across the line through the segment ee, so that on the table the two faces lie on top of each other, joined along the edge. A hinge of angle 00 is a flat crease; a hinge of angle ±π\pm\pi is a folded crease. That these are the only two cases is Lemma 2.2.

Lemma 2.2 a hinge is flat or folded

Let AA and BB be faces sharing a boundary segment ee of positive length. Then either ϕA=ϕB\phi_A = \phi_B, or ϕB=ϕA∘ρe\phi_B = \phi_A \circ \rho_e with ρe\rho_e the reflection across the line through ee.

Proof. The isometry ψ=ϕA−1∘ϕB\psi = \phi_A^{-1} \circ \phi_B fixes every point of ee, since ϕA\phi_A and ϕB\phi_B agree there. An isometry that fixes two distinct points uu, vv fixes every point of the line through them, because a point of that line is determined by its distances to uu and vv. A point qq off the line is sent to a point with the same distances to uu and vv as qq, and there are exactly two such points, qq and its mirror image across the line. So ψ\psi is the identity or ρe\rho_e, which is the claim.

Example 2.3 a square folded in half

Let PP be the unit square with corners .a =(0,0)= (0, 0), .b =(1,0)= (1, 0), .c =(1,1)= (1, 1), .d =(0,1)= (0, 1); let AA be its left half, BB its right half, and hh the segment they share on the line x=12x = \tfrac12. Unfolded, ϕA=ϕB=id\phi_A = \phi_B = \mathrm{id} and the hinge is flat. Fold the right half onto the left, in Beloch fold (map .b onto .a): AA stays, so ϕA=id\phi_A = \mathrm{id}, and BB is mirrored across the hinge, so ϕB(x,y)=(1−x,y)\phi_B(x, y) = (1 - x, y), which is ρh\rho_h; the corner .b lands on .a. Now turn the folded square on the table by a rotation RR: ϕA=R\phi_A = R and ϕB=R∘ρh\phi_B = R \circ \rho_h. The relation ϕB=ϕA∘ρh\phi_B = \phi_A \circ \rho_h says nothing about where AA lies. It says how BB lies relative to AA: displaced by the flip across the hinge, wherever AA went. Read ∘\circ from the right: mirror BB across hh in the paper, which puts it on AA's paper position, then move it the way AA is moved.

.d.c--h--h.a.b
.c,.d--h,--h.b,.b
Program
paper square
fold (map .b onto .a) as --h

Figure 2.1 The square of Example 2.3: on the paper .b is the right corner, on the table it lies on .a, and the crease --h is the hinge between the two faces.

Remark 2.4 folds and hinges are one reflection seen twice

The hinge relation composes the reflection on the paper side of ϕA\phi_A. The fold operation of §5 composes on the table side: a fold along a table line ℓ\ell replaces ϕF\phi_F by ρℓ∘ϕF\rho_\ell \circ \phi_F on every moving face FF, so a state reached by folding has ϕF=ρn∘⋯∘ρ1\phi_F = \rho_n \circ \dots \circ \rho_1, the reflections that moved FF, in order. The two views agree because reflecting across the table image of hh is the paper reflection carried over by ϕA\phi_A: ρf(h)=ϕA∘ρh∘ϕA−1\rho_{f(h)} = \phi_A \circ \rho_h \circ \phi_A^{-1}, hence ρf(h)∘ϕA=ϕA∘ρh\rho_{f(h)} \circ \phi_A = \phi_A \circ \rho_h. A folded hinge between AA and BB is therefore the same as "BB is AA reflected across the table line f(h)f(h)". A state still records no history: ϕF\phi_F is the net motion, and the relation holds for every hinge whether or not the state was reached by folding.

Definition 2.5 refinement equivalence

A split of a state (F,f,λ)(\mathcal{F}, f, \lambda) replaces one face AA by two convex faces A1A_1, A2A_2 with A1∪A2=AA_1 \cup A_2 = A and disjoint interiors, sets ϕA1=ϕA2=ϕA\phi_{A_1} = \phi_{A_2} = \phi_A, and sets λ(Ai,B)=λ(A,B)\lambda(A_i, B) = \lambda(A, B) for every face BB with (Ai,B)∈Ω(A_i, B) \in \Omega; ff is unchanged. A refinement of a state is the result of finitely many splits. Two states are the same state when they have a common refinement.

Lemma 2.6 refinements have a common refinement

Two refinements of one state have a common refinement. Consequently "having a common refinement" is an equivalence relation on states, and "the same state" in Definition 2.5 is well defined.

Proof. Let F1\mathcal{F}_1 and F2\mathcal{F}_2 be the face sets of two refinements of (F,f,λ)(\mathcal{F}, f, \lambda). The overlay {A1∩A2:A1∈F1,A2∈F2}\{A_1 \cap A_2 : A_1 \in \mathcal{F}_1, A_2 \in \mathcal{F}_2\}, with the pieces of empty interior dropped, consists of convex polygons with disjoint interiors covering PP, since the intersection of two convex polygons is a convex polygon. Each piece A1∩A2A_1 \cap A_2 arises from A1A_1 by cutting along the lines through the edges of A2A_2, one at a time, and each cut is a split; so the overlay refines F1\mathcal{F}_1, and by the same argument F2\mathcal{F}_2. The isometries and the values of λ\lambda on the overlay are inherited from F\mathcal{F} through either side and agree, because both sides copied them from the same faces of F\mathcal{F}. Reflexivity and symmetry of the relation are immediate; for transitivity, if S1S_1, S2S_2 share a refinement R12R_{12} and S2S_2, S3S_3 share R23R_{23}, then R12R_{12} and R23R_{23} are refinements of S2S_2, their common refinement refines S1S_1 and S3S_3, and splits compose.

Definition 2.7 flap

A flap of a state is a maximal set of faces in which any two are joined by a chain of hinges of angle 00. Flaps partition the faces, and they are the pieces of paper that lie flat as one: neighbouring faces of angle 00 share their isometry, so on the union of a flap's faces ff is one isometry. A split of Definition 2.5 adds a hinge of angle 00 inside a face, so flaps are invariant under refinement, which is why the language addresses flaps and never faces.

.d.c@3--s--s.a.b

Figure 2.2 The fold leaves two flaps; the marked crease --s runs through the highlighted one and splits it into two faces, which stay one flap because the hinge between them has angle 00.

Three things follow from Definition 2.5. Which convex decomposition a state carries does not matter: two decompositions of the same folding have a common refinement, so they are the same state. A mark (§5) splits a face along a flat hinge and nothing else, so it leaves the state unchanged. And when two programs are said to reach the same folded state, this is the equality meant: the two routes cut the sheet differently, and they agree up to refinement.

Remark 2.8 linear extensions

The relation "AA above BB", that is λ(A,B)=+1\lambda(A, B) = +1, is a partial order: it relates overlapping faces only. A total order of all faces that agrees with λ\lambda on every overlapping pair is a linear extension of λ\lambda, and two linear extensions with the same restriction to overlapping pairs describe the same state. A linear extension exists only when the above relation is acyclic across regions, and flat-foldable states violate this: in the square twist the four central faces lie over-under-over-under around the twist, so "no linear layer ordering will be able to avoid such obstructions", while the fold is flat-foldable 10. A representation that stores one linear extension therefore cannot hold every state of Definition 2.1.

Intuition: λ\lambda says which of two overlapping faces is on top. Not every such assignment describes a sheet of paper. A face cannot pass through another face, it cannot pass through a fold, and two folds cannot thread through each other. This section states the conditions that rule those out, one at a time, and then defines a non-crossing layer ordering as one that satisfies them all. They are the non-crossing conditions of Akitaya et al. 11, as Hull and Zakharevich restate them 12, stated here for faces instead of points, plus two conditions that a decomposition into faces has to satisfy to be one sheet.

Three of the six properties in the literature need no condition here. Existence says that λ\lambda is defined exactly on overlapping pairs, and antisymmetry says that reversing a pair reverses the value; both are part of Definition 2.1. Tortilla-tortilla says that two uncreased regions which fully overlap are ordered as wholes; Definition 2.1 takes one value per pair of faces, and the paragraph after it says why that is legitimate.

Condition 3.1 order condition

For faces AA, BB, CC whose images share a region of positive area: if AA is above BB and BB is above CC, then AA is above CC.

The next two conditions speak about folded hinges. Let hh be a folded hinge between faces AA and BB. Since ϕB=ϕA∘ρh\phi_B = \phi_A \circ \rho_h, the fold lays BB onto AA: near f(h)f(h) the images f(A)f(A) and f(B)f(B) cover the same region of the table, one on the other, joined along f(h)f(h) and separate everywhere else. The pair is a taco: closed along the fold, open away from it.

Condition 3.2 taco-tortilla condition

Let AA and BB be joined by a folded hinge hh, and let CC be a face whose image contains a neighbourhood of an interior point of f(h)f(h), so that CC overlaps both AA and BB there. Then CC lies on the same side of both: λ(A,C)=λ(B,C)\lambda(A, C) = \lambda(B, C). A face cannot lie between the two sides of a fold.

Condition 3.3 taco-taco condition

Let AA and BB be joined by a folded hinge hh, and CC and DD by a folded hinge kk, such that f(h)f(h) and f(k)f(k) overlap in a segment of positive length and all four faces overlap near it. Then the two pairs do not interleave: in the order of AA, BB, CC, DD at that place, CC and DD are either both above AA and BB, both below them, or both between them, and likewise with the pairs exchanged. Two folds along the same line are nested or separate.

The last two conditions concern ff and the decomposition rather than λ\lambda. They are consequences of Definition 2.1 for a sheet that is one piece, and they are stated on their own because a representation has to check them.

Condition 3.4 hinge closure condition

For every hinge between faces AA and BB, the isometries ϕA\phi_A and ϕB\phi_B agree on the shared segment, and by Lemma 2.2 ϕB\phi_B is then ϕA\phi_A either unchanged or composed with the reflection across the segment's line. Equivalently every hinge has angle 00 or ±π\pm\pi, and ff is continuous.

Condition 3.5 connectivity condition

The faces, joined along their hinges, form one connected piece: every face is reachable from every other through shared edges. This restates that the decomposition covers a single sheet.

These five conditions are what a layer ordering needs to describe paper. Each of the first three names one way in which paper would pass through itself; the last two say that ff folds one sheet. That they are also enough, so that every ordering which satisfies them describes a sheet that can be folded, is a theorem rather than a definition, stated as Lemma 3.7 after the definition that collects them.

Definition 3.6 non-crossing layer ordering

λ\lambda is a non-crossing layer ordering for ff when it satisfies

A pair (f,λ)(f, \lambda) with a non-crossing λ\lambda is a flat folded state when in addition

hold.

Lemma 3.7 the conditions are necessary and sufficient

Let ff be an isometric folding map of a sheet PP into the plane, with faces as in Definition 2.1. A layer ordering λ\lambda on the faces describes a placement of PP in space that does not pass through itself if and only if λ\lambda is non-crossing in the sense of Definition 3.6.

Proof. Cited. Necessity: whenever two crease images coincide, the faces on either side are two tacos, a taco and a tortilla, or two tortillas, and any self-intersection caused by the ordering falls into one of these three cases 13. Sufficiency: lift each face along the third axis by its position in the ordering and join the faces along their hinges by half-cylinders; the conditions are exactly what makes this map one-to-one 14. That such a placement is reached by a continuous folding motion of unstretched paper is Demaine's theorem 15, which Hull's argument leaves open, since it deforms the paper elastically 16. The sheet without holes is what both results assume; with holes an additional condition on the boundary curves is needed 17.

Sufficiency is what allows the model to define a flat folded state through ff and λ\lambda alone: nothing about a state's physical realisability is left outside the definition.

The last statement of this section connects the ordering on faces to the ordering on points that the literature defines. It stands here rather than in §2 because its proof needs the conditions above.

Lemma 3.8 face and point orderings agree

Let (F,f,λ)(\mathcal{F}, f, \lambda) be a flat folded state in the sense of Definition 2.1, and let λ′\lambda' be the layer ordering on points that Demaine 18 and Akitaya et al. 19 define. Setting λ′(p,q)=λ(Ap,Aq)\lambda'(p, q) = \lambda(A_p, A_q) for points p,qp, q interior to faces Ap,AqA_p, A_q with f(p)=f(q)f(p) = f(q) yields a global layer ordering in Demaine's sense, and −λ(Ap,Aq)-\lambda(A_p, A_q) one in Akitaya's, whose sign is opposite; every such ordering arises this way from exactly one λ\lambda up to refinement.

Proof. Pending. The forward direction needs the non-crossing conditions of Definition 3.6; the backward direction uses that the crease pattern of a flat folding is a straight-line graph, so its regions refine to convex faces, and that faces are uncreased regions, so λ′\lambda' is constant on pairs of faces by the consistency property.

Sources: the six properties on points and their names 20, with Figure 1 of Hull and Zakharevich showing the two crossing patterns 21; Justin's three conditions in Hull's statement 22.

Intuition: a program names things on the paper, points, straight pieces of paper, and pieces that lie flat as one, and asks questions about them: where is this point now, which fold carries this onto that, which piece of paper holds this point. Values are the answers, and a read is the act of asking. A read looks at the current state and computes a value; it changes nothing. If the state has no answer, the read fails, and the program stops there.

Every value is a set of paper points, and a state says where those points lie on the table. So a fold moves every value with the paper, and no value has to be told about it. There are three sorts: point, bundle and flap.

Definition 4.1 point value

A value of sort point is a paper point p∈Pp \in P. In a state (F,f,λ)(\mathcal{F}, f, \lambda) its position on the table is f(p)f(p). A point keeps its paper coordinate through every later state; only f(p)f(p) changes.

.d.c@3.a.p.b
.d.a,.c.p@3.b

Figure 4.1 .p keeps the paper coordinate it was named with, and the fold moves only where it sits on the table.

Definition 4.2 segment

A segment of a state is a closed straight piece of the sheet of positive length, {p+t(q−p):0≤t≤1}\{p + t(q - p) : 0 \le t \le 1\} for paper points p≠qp \neq q, on which ff is an isometry, so that its table image is a straight segment of the same length. Equivalently the piece lies within one flap (Definition 2.7): faces are closed, so a piece along a hinge lies in the faces on both sides, and ff is an isometry on it either way. A straight piece that crosses a folded hinge is not a segment, since its image is bent. Segments are not values; they are what bundles are made of.

.d.c--h--h--s.a.b
.a,.d.b,.c--s--h,--h

Figure 4.2 --s meets each of the two flaps in a segment, and the crease --h is a segment along the hinge where the flaps join.

Definition 4.3 bundle

A value of sort bundle is a finite union of segments, a subset b⊆Pb \subseteq P. Two bundles are equal when they are equal as sets: a bundle does not remember the segments it was assembled from, so a refinement, which splits segments along flat hinges, leaves every bundle as it is. The pieces of a bundle in a state are its maximal segments, the connected straight stretches within one flap each. Its table image is f(b)f(b), one straight segment per piece. A fold across a bundle leaves the bundle as it is and splits a piece in two: the stretch across the new folded hinge is no longer a segment, so each side is a piece of its own. Pieces are read off the state; nothing subdivides a value.

Definition 4.4 material of a table line

Let ℓ\ell be a line in the table frame. The material of ℓ\ell in a state is the union of all segments whose table image lies on ℓ\ell: the paper that ff sends onto ℓ\ell, isolated points aside. It is a bundle with one piece per flap that ℓ\ell crosses, because ff is an isometry on each flap and the flaps are finitely many. A table line is what a construction computes; the value a program holds is its material.

.d.c@3--l.a.b
.d.a,.c--l@3.b

Figure 4.3 The material of the table line --l is one piece per flap it crosses: on the paper the two lie on either side of the crease, on the table they land on the same stretch of --l.

Definition 4.5 line of a bundle

A bundle bb is straight in a state when it is non-empty and its table image f(b)f(b) lies on one table line. The line of bb is that line, a read of the state defined exactly when bb is straight. Straightness belongs to the state, not to the bundle: a bundle straight in one state is bent by a fold across it and straight again when that fold is undone. The material of the line of a straight bundle contains bb and may be larger, where other flaps cross the same line.

A line is needed at two places only: as the axis of a write (§5), and as an argument of an alignment (Definition 4.8). Both take a bundle and use its line, so a line off the paper never arises, and a bundle that is not straight cannot serve. Nothing in the language holds a table line across states: --l = (map .a onto .b), then a fold, then mark (--l) scores the pieces of --l where they lie after the fold, bent or not.

Definition 4.6 crease

A crease is a bundle that a write of §5 scored, under a name or not. Its hinges in a state are the hinges of the state that lie in it. A write scores the material of a line, so a crease is straight when scored; a later fold across it bends it, and it stays the same bundle.

.d.c--m--m@3.a.b
.d.a,.c--m--m@3.b

Figure 4.4 The crease --m is straight when marked; the fold that follows bends it: on the table its two pieces meet at a right angle, and --m is the same bundle of paper.

Definition 4.7 read

Write SS for the set of flat folded states of the sheet. A read of sort VV, with VV one of point, bundle and flap, is a partial function r:S×A⇀Vr : S \times A \rightharpoonup V, where AA is a tuple of values of these sorts, the arguments. A read has no effect on the state. Where it is undefined the program fails with a reason.

The reads of the language fall into three families; the line of a bundle (Definition 4.5) is a fourth read that the others use.

Definition 4.8 alignment

An alignment is an incidence on the table between two objects, each the table position of a point, the line of a bundle, or the image of one of these under the reflection across the line sought: a point onto a point, a point onto a line, a line onto a line, the line through a point, the line perpendicular to a line.

Definition 4.9 selection

A selection σ\sigma is a read that keeps one table line out of a finite set of them: the line nearest a named point; the line whose fold moves a named point to a named side. A program that states none selects by the identity. Like every read, a selection is defined exactly where it answers, here when one line remains.

Definition 4.10 construction

A construction is a read of sort bundle, written as a finite set of alignments on one sought line: finitely many solutions, and no alignment redundant 23. A construction determines no line on its own. Its candidates c(s,a)c(s, a) in a state ss with arguments aa are the table lines satisfying every alignment, less those whose material in ss is empty, since a line off the paper is no fold; there are finitely many and there is usually more than one. A line is reached only through a selection, and the value of the construction is r(s,a)=the material of ℓwhen σ(s,a,c(s,a))={ℓ},r(s, a) = \text{the material of } \ell \quad \text{when } \sigma(s, a, c(s, a)) = \{\ell\}, undefined otherwise, where σ\sigma is the selection (Definition 4.9) the program stated. The seven Huzita-Justin axioms are all the constructions on one sought line 24.

Open 4.11 constructions that seek more than one line

Definition 4.10 puts its alignments on one sought line, which is where the seven Huzita-Justin axioms live. The same alignments distributed over two lines sought at once give the 489 two-fold axioms 25, which packages/multifold (ADR 0020) enumerates. A candidate is then a pair of lines, a selection keeps one pair, and a write takes two axes and moves them together, so the definitions of candidate, selection and write all widen by the same step. Which of them the language will carry, and whether a two-fold write is one write or a pair, is not decided.

Definition 4.12 selector

A selector is a read of sort flap or point that resolves a description by incidence in paper coordinates: the flap whose faces contain every listed point; the point where bundles meet (Definition 4.13); the point on a bundle of a single piece at a given fraction of that piece's length from a named endpoint. Each is defined exactly when the description picks out one thing.

Definition 4.13 meet

Let b1,…,bnb_1, \dots, b_n be bundles, n≥2n \ge 2, where a side of the sheet between two corners counts as the bundle of its points. Their meet is the read of sort point m(s,b1,…,bn)=pwhen b1∩⋯∩bn={p},m(s, b_1, \dots, b_n) = p \quad \text{when } b_1 \cap \dots \cap b_n = \{p\}, undefined otherwise. The intersection is taken in the paper frame, so the value does not depend on the state ss: a fold changes where pp lies on the table and never whether the bundles meet. A point of b1∩b2b_1 \cap b_2 lies on both bundles in the same paper, so a layer that carries it carries both. A bundle may lie on any number of paper lines, as a crease scored through several layers does; only the number of common points counts. The meet is undefined in three cases: the intersection is empty, it holds two or more points, or it contains a segment, where the bundles share a stretch of paper.

.d.c--v--h--v.o--h--bd.a.b
.a,.b,.c,.d--v,--v.o,.o--h,--h

Figure 4.5 --h and --v each lie on two paper lines after the reverse folds, a scar and its mirror image, and have one point in common, the centre .o.

Definition 4.14 filter

The filters are the reads of sort bundle that form the Boolean algebra of subsets of the pieces of a bundle bb generated by incidence predicates: for a point pp, a straight bundle mm or a flap ϕ\phi, the predicate "the piece contains pp", "the piece's table image meets the line of mm", "the piece lies in ϕ\phi". A filter keeps the pieces satisfying a predicate, its complement drops them, and the union joins two bundles. Chaining filters is intersection.

Intuition: a write takes the current state and a few values and yields the next state, or fails. Every write of the language is built from one construction: some faces are reflected across a table line, and the layer ordering is rebuilt around them. Which faces move, the moving set, is what separates folding one flap from folding through the stack; where the moved faces come to lie, the placement, is what separates a valley fold from a mountain fold from a tuck. mark reflects nothing, flip reflects everything, fold reflects one block, reverse reflects two blocks in one move, and flatten moves the sectors of a fan by different motions. This section defines the construction once and then each write as an instance of it, with its parameters and its domain.

Definition 5.1 write

A write with parameter sorts AA is a partial function w:S×A⇀Sw : S \times A \rightharpoonup S from states and values to states. Where it is undefined the program fails with a reason. Every value of a write is a flat folded state with a non-crossing ordering (Definition 3.6); a write has no other effect. The domain of a write has two parts: conditions on its arguments, stated with each write below, and the condition that the pair (f′,λ′)(f', \lambda') it constructs satisfies Definition 3.6. The second part is the same for every write and is not repeated.

Definition 5.2 scoring

For a state ss and a bundle bb, scoring bb in ss is the refinement (Definition 2.5) that splits every face along each segment of bb it contains, joining the parts by hinges of angle 00. By Definition 2.5 the result is ss; the hinges it introduces are the crease of bb (Definition 4.3). Scoring a line ℓ\ell means scoring its material (Definition 4.5).

Definition 5.3 effective write

A write is effective in a state when its value is a different state in the sense of Definition 2.5. A score is exactly a write that is not effective: by Definition 5.2 its value is the state it was given. A read is effective nowhere, since it yields no state at all.

Open 5.4 whether a write acts on the states read up to refinement

A write is stated here on a state, so effective is a property of a write at a state. The stronger reading is that every write descends to the states read up to refinement (Definition 2.5): applied to two refinements of one state, a write yields two states with a common refinement, so it induces a map there, and a score induces the identity while an effective write does not. The text argues the intuition for scoring below, that a write may score every face its axis crosses because scoring changes nothing, and spec/KERNEL.md records that the representation does not quotient. The statement is not proved here, and nothing in the model rests on it.

Every write below scores its axis first, so that each face lies on one side of the axis before any face moves. Because scoring changes nothing, a write may score every face the axis crosses, moving or not; the hinges that end up between two stationary faces stay flat and vanish again under refinement.

Definition 5.5 mark

The write mark takes a line ℓ\ell, a flap ϕ\phi and an extent: the whole of ℓ\ell, a segment of ℓ\ell between two points, or a point of ℓ\ell. Its value is the state itself, up to refinement. Its effect is a crease value: the bundle of the material of ℓ\ell in the faces of ϕ\phi, clipped to the extent. It is defined when that bundle is non-empty and the extent lies in the image of ϕ\phi; an extent that crosses a folded hinge of ϕ\phi leaves the flap and is outside the domain.

mark is the identity on states. The read/write law of the language sequences it as a write because it introduces a piece of material that later reads select and later folds fold along; the model records that material as a value in paper coordinates, and the state itself has no memory of it. The mountain or valley intent a program may write beside a mark is an annotation for the crease pattern output and no part of the state or the value.

Open 5.6 a mark at a point

A mark whose extent is a single point yields a segment of length zero, which Definition 4.2 excludes from bundles. The language admits such a mark as a crease whose material is one point on ℓ\ell and whose line is ℓ\ell, and a meet against it uses the line. Whether a bundle may hold a point together with the line it was marked on, or a point mark is a value of its own sort, is not decided.

Definition 5.7 letter of a folded hinge

Let hh be a folded hinge between faces AA and BB. Exactly one of the two isometries f∣Af|_A and f∣Bf|_B preserves orientation, because they differ by a reflection; the face whose isometry preserves orientation is face up, the other face down. The letter of hh is valley when the face-up face is below the other, mountain when it is above 26.

The letter is the folder's mountain and valley seen from the front of the paper, and it is a property of the state: no write takes a letter as an instruction, and every letter in an output is read off the state.

Definition 5.8 reflection of blocks

Let s=(f,λ)s = (f, \lambda) be a state, ℓ\ell a table line, HH one of the two closed half-planes bounded by ℓ\ell, and ρ\rho the reflection of the table across ℓ\ell. Score ℓ\ell, so that every face lies in HH or in the other half-plane. A block is a pair (M,π)(M, \pi) of a set MM of faces lying in HH and a placement π\pi, which is one of top, bottom, over TT and under TT for a set TT of faces belonging to no block. The reflection of a family of blocks with pairwise disjoint face sets is the pair (f′,λ′)(f', \lambda') given as follows, where M\mathcal M, the moving set, is the union of the blocks' face sets and every other face is stationary:

  • f′∣F=ρ∘f∣Ff'|_F = \rho \circ f|_F for F∈MF \in \mathcal M, and f′∣F=f∣Ff'|_F = f|_F for stationary FF;
  • two faces of one block that overlap under f′f' overlapped under ff and reverse their relation: λ′(A,B)=λ(B,A)\lambda'(A, B) = \lambda(B, A). A rigid half turn reverses a stack;
  • two stationary faces keep their relation;
  • a face FF of a block (M,π)(M, \pi) and a stationary face GG that overlap under f′f' are ordered by π\pi: FF is above GG for top and below GG for bottom. For over TT, FF is above GG unless GG lies above every face of TT it overlaps, in which case FF is below GG; for under TT, FF is below GG unless GG lies below every face of TT it overlaps. Both placements require TT to cover the landing footprint: every point of f′(F)f'(F) lies in the image of some face of TT;
  • faces of two different blocks are ordered as their placements are ordered in the stack: a block placed bottom below every other block, a block placed top above every other, a block placed at TT below a block placed at T′T' when every face of TT lies below every face of T′T' it overlaps, and a block placed under TT below a block placed over TT. Two blocks whose placements are not so ordered are outside the domain.

The reflection is the candidate a write returns: it is the next state when it satisfies Definition 3.6 and undefined otherwise.

Hinge closure (Condition 3.4) is where the reflection fails when the paper would tear: a hinge that joins a moving face to a stationary face off the axis leaves f′f' discontinuous there. On the axis the picture is exact:

Lemma 5.9 hinges toggle on the axis

Let (f′,λ′)(f', \lambda') be the reflection of blocks across ℓ\ell, and let hh be a hinge between faces AA and BB. If both faces move or both are stationary, the angle of hh is unchanged. If AA moves, BB is stationary and f(h)f(h) lies on ℓ\ell, the angle of hh changes from 00 to ±π\pm\pi or from ±π\pm\pi to 00.

Proof. Write rr for the reflection of the paper across the line of hh. If both move, f′∣B=ρ∘f∣Bf'|_B = \rho \circ f|_B and f′∣A=ρ∘f∣Af'|_A = \rho \circ f|_A, so f′∣B=f′∣A∘rf'|_B = f'|_A \circ r exactly when f∣B=f∣A∘rf|_B = f|_A \circ r; likewise when both are stationary. If AA moves and f(h)⊂ℓf(h) \subset \ell, then f∣Af|_A carries the line of hh onto ℓ\ell, so ρ∘f∣A=f∣A∘r\rho \circ f|_A = f|_A \circ r. For a flat hinge, f∣B=f∣Af|_B = f|_A and f′∣A=f∣A∘r=f∣B∘rf'|_A = f|_A \circ r = f|_B \circ r: angle ±π\pm\pi. For a folded hinge, f∣B=f∣A∘rf|_B = f|_A \circ r and f′∣A=f∣A∘r=f∣Bf'|_A = f|_A \circ r = f|_B: angle 00. □\square

The lemma is why the model needs no unfold: reflecting a block back across a folded hinge returns that hinge to angle 00, and the crease is then a flat hinge that refinement forgets. What survives is the crease value, which a later write can fold along again. Whether the language offers such a write is its decision.

Definition 5.10 fold

The write fold takes a table line ℓ\ell, a side HH of it, an anchor flap α\alpha with material in HH, a depth flap δ\delta with material in HH, which is α\alpha when the program names none, and a placement π\pi. Score ℓ\ell and call the faces lying in HH the candidates. The moving set MM is the least set of candidates that contains the faces of δ\delta in HH and is closed under

  • cohesion: a candidate joined to a face of MM by a hinge of angle 00 is in MM, so that a flap moves as a whole (Definition 2.7); and,
  • when π\pi is top or bottom, outward closure: a candidate that lies above a face of MM is in MM for top, and one that lies below a face of MM is in MM for bottom.

The value of the write is the reflection of the single block (M,π)(M, \pi). It is defined when the faces of α\alpha in HH belong to MM, when for over TT and under TT the set TT is the faces of a stationary flap, and when the reflection is a state. The crease the write scores is the bundle of the hinges of the result that lie on ℓ\ell between a face of MM and a stationary face.

The language derives HH and α\alpha from a point: the flap carrying it and the side its image lies on. A point on the axis names no side, and a flap that straddles the axis without a point names none either; both are outside the domain. mountain is the placement bottom and the default is top; up to names δ\delta; over and under name TT. When δ\delta is α\alpha, the anchor condition holds by construction and the moving set is the outward closure of one flap: the layers above it move with it, the layers beneath it stay. When δ\delta lies deeper, the moving set grows from δ\delta outward and the anchor condition fails exactly when a stationary flap covers the anchor in the crease region; the fold would have to move paper it was not told to move.

.d.c@2--f--f.a.b
.c,.d@2.p.b,.b--f,--f.a.q

Figure 5.1 --f folds the corner of the top layer only: the moving set is the outward closure of the flap carrying .b, and the layer beneath it stays. The crease reads mountain because that layer lies face down.

.d.c--f@2--f.a.b
.c,.d@2.p.a,.b--f,--f.q

Figure 5.2 The same fold given the bottom layer as its depth: the moving set grows outward from there and both corners fold, valley on the face-up layer and mountain on the face-down one.

Corollary 5.11 letters of an outside fold

For a fold placed top, every hinge it scores reads valley where the face was face up before the fold and mountain where it was face down; for a fold placed bottom the other way round.

Proof. Let F∈MF \in M and let GG be the stationary face across the new hinge; before the fold both had the same isometry. After it, FF is reflected and GG is not, so exactly one is face up. For top, FF lies above GG. If GG is face up, the face-up face is below: valley. If GG is face down, FF is face up and above: mountain. For bottom, exchange above and below. □\square

A placed fold has no such rule. Its letter is read off the finished state and depends on the layer the block is inserted against: tucking a corner under a face-down layer reads valley, under a face-up layer mountain.

.d.c--t@2--t.a.b
.a,.d.n.c--t,--t.b@2.m

Figure 5.3 A pocket tuck: after the sheet is folded in half, the corner .b of the top layer is placed beneath .p, into the gap between the two layers. The crease --t reads valley because the layer it goes beneath lies face down.

Remark 5.12 simple folds

A fold placed top or bottom is a some-layers simple fold in Demaine's sense: a rigid rotation of some layers under the crease segment through π\pi, avoiding self-intersection throughout 27. Outward closure is the condition that rotation imposes at the crease: a stationary layer outside a moving one would be swept through. The model checks the end state and never the motion; that a non-crossing end state of an outward-closed block is reached by a rigid rotation is not claimed here. A fold placed over or under is no simple fold, since the block passes between layers that open for it. The model accepts it whenever the end state is a state, which by Lemma 3.7 means whenever the end state can be reached by some folding motion.

Lemma 5.13 an outward-closed fold crosses nothing

Let MM be the moving set of a fold placed top or bottom. If the reflection of (M,π)(M, \pi) satisfies the hinge closure condition, it satisfies the order, taco-tortilla and taco-taco conditions as well.

Proof. Pending. The order condition holds because the relation on stationary pairs is unchanged, the relation on moving pairs is reversed, and every moving face lies outside every stationary face it overlaps. The two taco conditions need the case analysis at a crease image: a new taco on ℓ\ell has its moving side outside its stationary side, and an old taco or tortilla lies wholly in MM or wholly outside it by outward closure and cohesion.

Definition 5.14 flip

The write flip takes no argument. For a state (f,λ)(f, \lambda) and a fixed reflection ρ\rho of the table its value is (ρ∘f,λop)(\rho \circ f, \lambda^{op}), where λop\lambda^{op} exchanges above and below on every overlapping pair. It is defined on every state.

Lemma 5.15 flip preserves everything but the side

The value of flip is a state. Every hinge keeps its angle and every folded hinge keeps its letter; every face changes between face up and face down.

Proof. The order, taco-tortilla and taco-taco conditions are stated symmetrically in above and below, so λop\lambda^{op} satisfies them when λ\lambda does. For a hinge between AA and BB with f∣B=f∣A∘rf|_B = f|_A \circ r, also ρ∘f∣B=ρ∘f∣A∘r\rho \circ f|_B = \rho \circ f|_A \circ r, so hinge closure and the angles are unchanged; connectivity does not involve ff. Composing with ρ\rho reverses the orientation of every face, so the face-up face of a folded hinge becomes the face-down one, and λop\lambda^{op} puts it on the other side: the letter is unchanged. □\square

Which reflection ρ\rho is used is immaterial for the state up to a motion of the table, and it is visible to line values, which are table lines ([#open-line-after-fold]).

.d.c--g--g.a.b
.a,.c.d--g--g.b

Figure 5.4 With the sheet turned face down, the crease --g scored by a fold placed on top reads mountain: the folder turned the paper over and made a valley on its back.

Definition 5.16 reverse fold

The write reverse takes a table line ℓ\ell, a side HH, an anchor flap α\alpha with material in HH, and a kind, inside or outside. Score ℓ\ell and call the faces in HH the candidates. The tip TT is the least set of candidates that contains the faces of α\alpha in HH and is closed under hinges of any angle between candidates. A spine is a folded hinge between two faces of TT whose removal from the hinge graph of TT leaves exactly two connected components, the halves T1T_1 and T2T_2. The body BiB_i of a half is the set of stationary faces joined to a face of TiT_i by a hinge on ℓ\ell. The spine is admissible when both bodies are non-empty and separated: every face of B1B_1 lies below every face of B2B_2 it overlaps, after renaming so that B1B_1 is the lower body. The value of the write is the reflection of the two blocks (T1,over B1)(T_1, \text{over } B_1) and (T2,under B2)(T_2, \text{under } B_2) for inside, and (T1,bottom)(T_1, \text{bottom}) and (T2,top)(T_2, \text{top}) for outside. It is defined when exactly one admissible spine yields a state.

The two halves move in one reflection and never one after the other: once one half has moved, the spine joins a reflected face to an unreflected one along no common segment, and hinge closure fails. Inside, each half lands next to its own body in the gap between the two bodies; outside, the lower half goes under everything and the upper half on top.

.d.c--v--bd--h--v--h--bd.a.b
.a,.b,.c,.d--v,--v--bd--h,--h

Figure 5.5 The preliminary base by two inside reverse folds 28: the diagonal fold makes a triangle whose spine is --bd, and each acute corner is reversed to the right-angle corner in turn.

Corollary 5.17 letters of a reverse fold

The spine beyond the axis reverses its letter. The hinges the write scores on ℓ\ell read, on both halves, the letter the spine had before for an inside reverse and the opposite letter for an outside reverse.

Proof. The spine joins a face AA of T1T_1 to a face BB of T2T_2. Both are reflected, so the face-up one becomes face down and the other face up; the two blocks keep their relative order, since B1B_1 lies below B2B_2 and each half is placed at its own body. The face-up face of the spine has therefore changed and its side has not: the letter reverses. A face of TiT_i is face up exactly when its body is, because they are joined by a flat hinge before the fold, and the bodies have opposite orientations because the spine continues between them as a folded hinge. Let the lower body be face up; the spine is then a valley. Inside, T1T_1 lands above the face-up B1B_1 and T2T_2 below the face-down B2B_2: by Corollary 5.11 both new hinges are valleys. Outside, T1T_1 lands below the face-up B1B_1 and T2T_2 above the face-down B2B_2: both mountains. For a face-down lower body exchange the letters. □\square

Definition 5.18 flatten

The write flatten takes a paper point OO interior to a flap Φ\Phi, a finite set of rays: segments from OO to the boundary of Φ\Phi in pairwise distinct directions, a set of constraints, and a selection σ\sigma. Let ρ1,…,ρk\rho_1, \ldots, \rho_k be the reflections of the table across the lines of the rays' images, in counter-clockwise order around f(O)f(O).

  • If kk is even, the composition ρ1∘⋯∘ρk\rho_1 \circ \cdots \circ \rho_k must be the identity; this is Kawasaki's condition that the alternating sum of the angles between consecutive rays vanishes 29.
  • If kk is odd, the composition is a reflection across a line through f(O)f(O), since an odd number of reflections through a point reverses orientation and fixes the point. Each of the two rays of that line that lies strictly inside a gap between consecutive given rays is an emergent ray; adding it makes the composition close. Each choice is a candidate fan.

Call the nn rays of a candidate fan r1,…,rnr_1, \ldots, r_n and the parts of Φ\Phi between consecutive rays the sectors S0,…,Sn−1S_0, \ldots, S_{n-1}, with SiS_i between rir_i and ri+1r_{i+1}. The stayer is one sector S0S_0, named by the program or by its convention. Set m0=idm_0 = \mathrm{id} and mi=mi−1∘ρim_i = m_{i-1} \circ \rho_i; Kawasaki's condition is mn=m0m_n = m_0, so the motions close around OO. Let RR be the image of Φ\Phi and let CC be the faces whose image meets RR in positive area, the layers under the fan. Score every face of CC along the rays' half-lines from f(O)f(O), so that each piece lies in one wedge between consecutive rays. The map f′f' is mi∘fm_i \circ f on every piece in the wedge of SiS_i and ff elsewhere. A candidate state is a pair (f′,λ′)(f', \lambda') with λ′\lambda' such that it satisfies Definition 3.6 and the constraints:

  • a letter for a ray: the hinge between the two sectors of Φ\Phi on that ray has that letter;
  • one sector over another: the two sectors of Φ\Phi are so ordered;
  • the stayer, which only fixes m0m_0 and so the table position.

The value of the write is the one candidate state σ\sigma selects from the set of all candidate states of all candidate fans; it is undefined when that set is empty or σ\sigma leaves more than one. The crease the write scores is the bundle of the hinges on the given rays when kk is even and the bundle of the hinges on the emergent ray when kk is odd.

The construction is the single-vertex fan of flat-folding theory: the isometry of each sector is the composition of the reflections across the rays between it and the stayer 30. Kawasaki's theorem says that the closure condition is exactly flat-foldability of the vertex, and Maekawa's theorem, that the letters around OO differ in number by two, holds in every candidate state because a candidate state is a flat folded state 31. Everything stacked over the fan moves with its sector; where a layer under the fan is hinged to stationary paper off the rays, hinge closure fails and the write is undefined, as for every reflection.

.d.c--h--ac--v--bd.a.b
.a,.a,.b,.c,.c,.d--h--ac--bd--v

Figure 5.6 The preliminary base by one collapse at the centre: six rays fold, the diagonal through .a and .c stays flat, and the ordering constraint puts the a-quarter in front of the b-taco.

Open 5.19 what selects among the candidates of a flatten

Definition 5.18 leaves σ\sigma to the program, as Definition 4.10 does for the candidates of a construction. The language's toward is three rules in sequence: the candidate whose moved material lies toward the named point, among those the ones with the fewest mountains on the given rays, among those the one whose material toward the point lies on top. The first is a selection in the sense of Definition 4.9; the other two are conventions that pick a folder's habit out of several states that are all flat folded. Whether they belong in the model as named selections, or the language should ask for a constraint instead when several states remain, is not decided.

Remark 5.20 the two rules for the layers under a crease

fold moves the outward closure of one flap and leaves the layers beneath it; flatten moves every layer under its fan. The two rules answer the same question, which layers under a crease move with it, and they answer it differently. A flatten that moves only the layers outward of a stayer, or a fold through every layer, are both expressible with the constructions above and neither is a write of the language; the model has no reason to prefer one rule, and the difference is a language decision.

To be written: a program as a finite sequence of states.

Open 6.1 several sheets and bodies

The language design for sheets as values lets a program hold several sheets and assemble them into a body. In the model a multi-sheet program state is a family of flat folded states, one per sheet, and an assembled body is a flat folded state of the disjoint union of its sheets: one ff into one table, one λ\lambda over the faces of all members, the non-crossing conditions unchanged, and Condition 3.5 required per member instead of overall. A tab inside a pocket is then λ\lambda placing the tab's faces between the pocket's, with the taco-tortilla condition keeping it out of the pocket's fold. This covers flat assembly; a body that is not flat waits for the non-flat state. Taking a body apart again is trivial in the model and absent from the language, which should be stated as a choice.

Each entry gives the meaning in one line and points to the definition that fixes it.

alignment

An incidence on the table that the line sought has to satisfy, with one side of it reflected across that line.

anchor

The flap a fold is told to move; it fixes the side of the axis and must end up in the moving set.

block

A set of faces on one side of the axis together with the placement they receive after reflection.

body

The stationary faces a half of the tip is hinged to along the axis.

bundle

A finite union of segments, a set of paper points; the material of a line, or a crease.

candidate

A table line that satisfies every alignment of a construction in a state and crosses paper; a line off the paper is none.

construction

A read of sort bundle: a finite set of alignments on one sought line, whose candidates a selection narrows to the one whose material is the value.

crease

A bundle that a write scored; its hinges in a state are those of the state that lie in it.

depth

The deepest flap a fold reaches; the moving set grows outward from it.

effective

A write whose value is a different state; a score is not one, and a read is no write.

emergent ray

The ray a flatten with an odd number of given rays has to add for the vertex to fold flat.

face

A convex polygon AA of the decomposition F\mathcal{F}, on which ff is the single isometry ϕA\phi_A.

face up, face down

A face is face up in a state when its isometry preserves orientation; the front of the paper shows.

fan, ray

The segments from one vertex along which a flatten folds at once.

flap

A maximal set of faces joined by hinges of angle 00; a piece of paper that lies flat as one, and the unit a program addresses.

hinge

A boundary segment of positive length shared by two faces, with an angle of 00 (flat crease) or ±π\pm\pi (folded crease).

layer, above, below

In a region of the table where several faces overlap, the faces are the layers, and λ\lambda says for each pair which is above: λ(A,B)=+1\lambda(A, B) = +1 puts AA above BB.

letter, mountain, valley

Mountain or valley, derived for every folded hinge from which of its two faces is face up and which is above.

line

The table line a straight bundle lies on; a read defined exactly when the bundle is straight.

material

The paper a table line crosses in a state: a bundle with one piece per flap.

meet

The one paper point that two or more bundles have in common; a read defined exactly when their intersection is a single point.

moving set, stationary

The faces a write reflects; every other face is stationary.

non-crossing

The conditions on a layer ordering that keep the paper from passing through itself.

paper frame

The plane the sheet PP lives in before any folding; coordinates in it never change.

piece

A maximal segment of a bundle in a state; one straight stretch within one flap.

placement

Where a reflected block comes to lie among the stationary faces: outside above, outside below, or immediately above or below a set of stationary faces.

point

A paper point, named once and carried in paper coordinates; its table position depends on the state.

read

A partial function from the current state and some values to a value; it never changes the state.

refinement

Splitting faces along flat hinges, finitely often; states with a common refinement are the same state.

score

Split faces along a bundle without moving anything; the state is unchanged up to refinement.

sector

The part of the flap between two consecutive rays of a fan.

segment

A straight piece of the sheet on which ff is an isometry, so within one flap; carried in paper coordinates.

selection

The read that keeps one table line out of the finitely many a construction offers.

spine

The folded hinge of the tip along which the two halves lie on each other and which the reverse fold turns the other way.

stayer

The sector of a flatten that keeps its isometry; it fixes where the result lies on the table.

straight

A bundle whose table image lies on one table line in the current state.

table

The plane T=R2T = \mathbb{R}^2 a state is folded onto, the image of ff, with a chosen side called up. "Table frame" names its coordinate system; a point of the sheet has one paper coordinate and, per state, one table coordinate.

taco

Two faces joined by a folded hinge, seen near the hinge: closed along the hinge, open away from it.

tip, half

The material beyond the axis of a reverse fold that is joined to the anchor; the spine cuts it into two halves.

tortilla

A face whose image covers a neighbourhood of a point of a folded hinge's image without that hinge being its own edge.

write

A partial function from the current state and some values to the next state; where it is undefined the program fails.

  1. Thomas C. Hull, Origametry: Mathematical Methods in Paper Folding (Cambridge University Press, 2020), chap. 6, https://doi.org/10.1017/9781108778633.↩

  2. Thomas C. Hull and Inna Zakharevich, “Flat Origami Is Turing Complete,” arXiv Preprint, 2023, sec. 2.1.↩

  3. Erik D. Demaine and Joseph O’Rourke, Geometric Folding Algorithms: Linkages, Origami, Polyhedra (Cambridge University Press, 2007), sec. 11.6, Theorem 11.6.2.↩

  4. Erik D. Demaine and Joseph O’Rourke, Geometric Folding Algorithms: Linkages, Origami, Polyhedra (Cambridge University Press, 2007), sec. 11.4.1.↩

  5. Tetsuo Ida, An Introduction to Computational Origami, Texts & Monographs in Symbolic Computation (Springer, 2020), 176, https://doi.org/10.1007/978-3-319-59189-6.↩

  6. An implementation may record the history for its own purposes. Nothing in this document depends on such a record, and no operation may read it. ↩

  7. Erik D. Demaine and Joseph O’Rourke, Geometric Folding Algorithms: Linkages, Origami, Polyhedra (Cambridge University Press, 2007), sec. 11.4.4.3; Hugo A. Akitaya et al., “Box Pleating Is Hard,” in Discrete and Computational Geometry and Graphs (JCDCGG 2015), vol. 9943, ed. Jin Akiyama et al., Lecture Notes in Computer Science (Springer, 2016), sec. 2, https://doi.org/10.1007/978-3-319-48532-4_15, consistency.↩

  8. Erik D. Demaine and Joseph O’Rourke, Geometric Folding Algorithms: Linkages, Origami, Polyhedra (Cambridge University Press, 2007), sec. 11.4.4.↩

  9. Hugo A. Akitaya et al., “Box Pleating Is Hard,” in Discrete and Computational Geometry and Graphs (JCDCGG 2015), vol. 9943, ed. Jin Akiyama et al., Lecture Notes in Computer Science (Springer, 2016), sec. 2, https://doi.org/10.1007/978-3-319-48532-4_15; Thomas C. Hull and Inna Zakharevich, “Flat Origami Is Turing Complete,” arXiv Preprint, 2023, sec. 2.1.↩

  10. Thomas C. Hull, Origametry: Mathematical Methods in Paper Folding (Cambridge University Press, 2020), sec. 6, https://doi.org/10.1017/9781108778633.5, p. 119.↩

  11. Hugo A. Akitaya et al., “Box Pleating Is Hard,” in Discrete and Computational Geometry and Graphs (JCDCGG 2015), vol. 9943, ed. Jin Akiyama et al., Lecture Notes in Computer Science (Springer, 2016), sec. 2, https://doi.org/10.1007/978-3-319-48532-4_15.↩

  12. Thomas C. Hull and Inna Zakharevich, “Flat Origami Is Turing Complete,” arXiv Preprint, 2023, sec. 2.1.↩

  13. Thomas C. Hull, Origametry: Mathematical Methods in Paper Folding (Cambridge University Press, 2020), sec. 6, https://doi.org/10.1017/9781108778633.5, p. 123.↩

  14. Thomas C. Hull, Origametry: Mathematical Methods in Paper Folding (Cambridge University Press, 2020), sec. 6, https://doi.org/10.1017/9781108778633.5, Proposition 6.13, p. 124.↩

  15. Erik D. Demaine and Joseph O’Rourke, Geometric Folding Algorithms: Linkages, Origami, Polyhedra (Cambridge University Press, 2007), sec. 11.6, Theorem 11.6.2.↩

  16. Thomas C. Hull, Origametry: Mathematical Methods in Paper Folding (Cambridge University Press, 2020), 125, https://doi.org/10.1017/9781108778633.↩

  17. Thomas C. Hull, Origametry: Mathematical Methods in Paper Folding (Cambridge University Press, 2020), https://doi.org/10.1017/9781108778633.↩

  18. Erik D. Demaine and Joseph O’Rourke, Geometric Folding Algorithms: Linkages, Origami, Polyhedra (Cambridge University Press, 2007), sec. 11.4.↩

  19. Hugo A. Akitaya et al., “Box Pleating Is Hard,” in Discrete and Computational Geometry and Graphs (JCDCGG 2015), vol. 9943, ed. Jin Akiyama et al., Lecture Notes in Computer Science (Springer, 2016), sec. 2, https://doi.org/10.1007/978-3-319-48532-4_15.↩

  20. Hugo A. Akitaya et al., “Box Pleating Is Hard,” in Discrete and Computational Geometry and Graphs (JCDCGG 2015), vol. 9943, ed. Jin Akiyama et al., Lecture Notes in Computer Science (Springer, 2016), sec. 2, https://doi.org/10.1007/978-3-319-48532-4_15.↩

  21. Thomas C. Hull and Inna Zakharevich, “Flat Origami Is Turing Complete,” arXiv Preprint, 2023, sec. 2.1.↩

  22. Thomas C. Hull, Origametry: Mathematical Methods in Paper Folding (Cambridge University Press, 2020), sec. 6, https://doi.org/10.1017/9781108778633.5, p. 123.↩

  23. Roger C. Alperin and Robert J. Lang, “One-, Two-, and Multi-Fold Origami Axioms,” in Origami4: Fourth International Meeting of Origami Science, Mathematics, and Education, ed. Robert J. Lang (A K Peters, 2009), sec. 2, Definition 8.↩

  24. Roger C. Alperin and Robert J. Lang, “One-, Two-, and Multi-Fold Origami Axioms,” in Origami4: Fourth International Meeting of Origami Science, Mathematics, and Education, ed. Robert J. Lang (A K Peters, 2009), sec. 2.↩

  25. Roger C. Alperin and Robert J. Lang, “One-, Two-, and Multi-Fold Origami Axioms,” in Origami4: Fourth International Meeting of Origami Science, Mathematics, and Education, ed. Robert J. Lang (A K Peters, 2009), sec. 3, §4.↩

  26. Thomas C. Hull and Inna Zakharevich, “Flat Origami Is Turing Complete,” arXiv Preprint, 2023, sec. 2.1.↩

  27. Erik D. Demaine and Joseph O’Rourke, Geometric Folding Algorithms: Linkages, Origami, Polyhedra (Cambridge University Press, 2007), sec. 14.1.↩

  28. Tetsuo Ida, An Introduction to Computational Origami, Texts & Monographs in Symbolic Computation (Springer, 2020), sec. 7, https://doi.org/10.1007/978-3-319-59189-6.4.3.↩

  29. Thomas C. Hull, Origametry: Mathematical Methods in Paper Folding (Cambridge University Press, 2020), sec. 5, https://doi.org/10.1017/9781108778633.3.↩

  30. Thomas C. Hull, Origametry: Mathematical Methods in Paper Folding (Cambridge University Press, 2020), chap. 5, https://doi.org/10.1017/9781108778633.↩

  31. Thomas C. Hull, Origametry: Mathematical Methods in Paper Folding (Cambridge University Press, 2020), sec. 5, https://doi.org/10.1017/9781108778633.2, §5.3.↩

Akitaya, Hugo A., Kenneth C. Cheung, Erik D. Demaine, et al. “Box Pleating Is Hard.” In Discrete and Computational Geometry and Graphs (JCDCGG 2015), vol. 9943, edited by Jin Akiyama, Hiro Ito, Toshinori Sakai, and Yushi Uno. Lecture Notes in Computer Science. Springer, 2016. https://doi.org/10.1007/978-3-319-48532-4_15. ↑ a b c d e
Alperin, Roger C., and Robert J. Lang. “One-, Two-, and Multi-Fold Origami Axioms.” In Origami4: Fourth International Meeting of Origami Science, Mathematics, and Education, edited by Robert J. Lang. A K Peters, 2009. ↑ a b c
Demaine, Erik D., and Joseph O’Rourke. Geometric Folding Algorithms: Linkages, Origami, Polyhedra. Cambridge University Press, 2007. ↑ a b c d e f g
Hull, Thomas C. Origametry: Mathematical Methods in Paper Folding. Cambridge University Press, 2020. https://doi.org/10.1017/9781108778633. ↑ a b c d e f g h i j
Hull, Thomas C., and Inna Zakharevich. “Flat Origami Is Turing Complete.” arXiv Preprint, 2023. ↑ a b c d e
Ida, Tetsuo. An Introduction to Computational Origami. Texts & Monographs in Symbolic Computation. Springer, 2020. https://doi.org/10.1007/978-3-319-59189-6. ↑ a b