TessemblyDocs
0.3.x · RFC3 GitHub

LANGUAGE / COMPACT

Compact syntax

Add uppercase D and U constraints to Clearra-style queues and patterns. The input structure determines the exact scope.

Supply expressions

ExpressionExact meaning
IOTSZJLFixed supply order
P4All orders of four distinct kinds selected from seven
P7P4Concatenate two independent permutation segments
[ITO]Choose one of I, T, O
[ITO]2Choose two distinct kinds, in every order
[ITO]!Permute the complete set
[^T]Choose one standard kind other than T
* / *!One arbitrary kind / all seven permutations
IOT;ITOUnion of two alternatives

Repeated letters in brackets repeat a kind, not its count. [TTI]! is not a two-T bag. Use advanced bag or shuffle for multiplicities. Alternatives must have equal length in this profile.

Colon and braces

tessembly
P7:D(I<T)P4
P7P4:D(I<T)
{T[^T]!}:D(I<O)P4
{P7P4}:D(I<T)
P7:D(I<T,T)U(T<I)

A colon attaches to the immediately preceding complete supply expression: P7 in the first line, P4 in the second. Braces group expressions into one scope. D and U can follow one colon, but each block appears at most once per scope.

Order, groups and mixed chains

RFC3Meaning
A<BA precedes B
A>BB precedes A
I<TSI precedes T and S; T/S remain unordered
I<T>SI and S precede T
T>ISEquivalent to I<T>S
tessembly
P4:D(I<T)
P4:D(I<TS)
P4:D(I<T>S)
P4:D(T>IS)
P4:D(I<T,T)

Bare kinds compare first occurrences inside the attached scope. Groups mean all cross-pairs (AND); mixed chains compare adjacent groups only. I<IT includes I<I and cannot hold. Repeating a kind as TT does not select its second occurrence.

Presence, absence and partial information

Bare T requires presence; TS requires both kinds, not adjacency, an order or OR. In D(I<T), earlier I must exist while later T may be absent. Use D(I<T,T) to require T as well.

Closed scopeD(I<T)
ITtrue
TIfalse
IOSZtrue
TOSZfalse
OSZJfalse
ITITtrue
TIITfalse
tessembly
P4:D(T)
P4:D(TS)
P4:D(I<T,T)

Condition lists and D/U

tessembly
P7:D(I<T<S)
P7:D(I<T,T<S)
P7:D(I<T<S<I)
P7:D(I<T)U(T<I)

Commas AND complete expressions. I<T<S means I<T AND T<S. D checks supply order; U checks the use-order projection for the same source scope. These domains must not share a contradiction graph.

A strict cycle is syntactically valid but proves UNSAT in its own scope. No proof means NOT_CHECKED, not PC/hold/placement legality. Resource exhaustion is INCOMPLETE, not an exact empty result.

Counts and concrete cases

PatternDistinct supplies
P4840
P4:D(T)480
P4:D(TS)240
P4:D(I<T)360
P4:D(I<T,T)120
P4:D(I<TS)272
P4:D(I<T>S)176

These are pure standard-kind sets, not initial-state filters or PC success rates. Reversed comparisons can have identical counts, so exact queues and truth-table members are checked too.