# puzzle -- Compute puzzles with given boundaries

## Synopsis

• Usage:
puzzle (a,b)
puzzle (a,b,c)
• Inputs:
• a, ,
• b, ,
• c, ,
• Optional inputs:
• Ktheory => , default value false
• Equivariant => , default value true
• Generic => , default value true
• Ktheory' => , default value false, has an effect only if Generic => false
• Labels => , default value true
• Paths => , default value false
• Steps => an integer, default value null

## Description

This function produces a list of puzzles with boundaries given by strings a (northwest side), b (northeast side), c (bottom side). The default Generic=>true produces "generic" puzzles corresponding to the multiplication of motivic Segre classes sClass, whereas Generic=>false produces "classic" puzzles corresponding to the multiplication of Schubert classes schubertClass (in the latter case, Ktheory'=>true produces puzzles for dual Schubert classes).

The boundaries are encoded as strings of digits from "0" to "d", where d is the number of steps of the flag variety; alternatively, one can use lists of integers or strings (the latter allows for the possibility of having arbitrary puzzle labels on the boundary, such as "2(10)", even though this will not occur in normal puzzle computations). The special symbol "#" stands for any single digit, whereas "*" stands for any puzzle label.

Labels and Paths are drawing options which only affect HTML and TeX output of puzzles. The Net output of puzzles is a rotated, squashed version where equilateral triangles become right triangles; each cluster of three labels represents the labels around an elementary up-pointing triangle.

 i1 : puzzle ("0101","1001",Equivariant=>false) o1 = { 1 0 0 1, 1 0 0 1} 1 1 0 0 0 0 10 0 1 1 0 0 0 0 10 0 10 0 1 10 0 1 0 1 1 10 1 1 0 1 1 10 10 0 1 0 1 10 1 1 0 0 1 1 0 1 10 10 0 1 0 1 o1 : List

## For the programmer

The object puzzle is .