2 added 2349 characters in body

I'm very curious where this came up. In any case, the answer to the first question is yes, it does distinguish these trefoils; you found the minimal representatives.

Let $a_0,\dots,a_{N-1}$ be the roots of unity that are visited along the knot, in (cyclic) order. Suppose we have a minimal representative for some non-trivial knot. Then we cannot have $|a_k - a_{k+1}| = 1$ for any $k$, as otherwise we could replace this pair $a_k, a_{k+1}$ by a single root of unity (for $N-1$), adjusting the other roots of unity as appropriate. A little more subtly, we cannot have $|a_{k-1} - a_{k+1}| = 1$ either, as then we could again delete $a_k$ from the sequence to get a smaller representation. With these simple constraints, the smallest possible sequence for a non-trivial knot is the one you found for one of the trefoils with $N=7$. There are several possibilities for $N=8$, including the one you found for the other trefoil. I've included a very short Haskell program below that computes this. The possibilities for $N=8$ are $$(2,7,5,3,1,6,4,0)\quad (2,5,7,3,1,6,4,0)\quad (3,6,1,4,7,2,5,0)\quad (2,6,4,1,7,3,5,0)$$ $$(3,1,6,4,2,7,5,0)\quad (2,4,6,1,3,7,5,0)\quad (3,5,1,7,4,2,6,0)\quad (4,2,7,5,1,3,6,0)$$ $$(3,1,5,7,2,4,6,0)\quad (5,3,1,6,4,2,7,0)\quad (2,4,6,1,3,5,7,0)$$

For the second question, I have never heard of this representation before.

Here is the code, for anyone interested.

 -- A (partial) circular stick representation is a list of integers,
-- the order of the roots of unity to visit in order
type CircStick = [Int]

-- The next element ak after a partial representation a1, ..., a{k-1}
-- must satisfy
--   (a) ak has not already been seen
--   (b) |ak - a{k-1}| > 1
--   (c) |ak - a{k-2}| > 1
-- There are a few more "easy" constraint, eg the first and last entries
-- cannot differ by one.  We do not impose those constraint here.
nexts :: Int -> CircStick -> [Int]
nexts n [] = [0]
nexts n [a1] = filter (\a -> abs (a-a1) > 1) [0..n-1]
nexts n (a1:a2:as) =
filter (\a -> not (elem a as)) $filter (\a -> abs (a-a1) > 1)$
filter (\a -> abs (a-a2) > 1) $[1..n-1] completions :: Int -> CircStick -> [CircStick] completions n as | length as >= n = [as] completions n as = concat [completions n (a:as) | a <- nexts n as] -- Impose final constraints: -- (a) Last entry cannot be 1 -- (b) Take entry that is lexicographically less than its reverse -- (c) first and next-to-last entries cannot differ by one circSticks :: Int -> [CircStick] circSticks n = filter (\as -> abs ((as!!0) - (as!!(n-2))) > 1)$
filter (\as -> as < tail (reverse as)) $filter (\as -> head as /= 1)$
(completions n [])


Edit: For those interested, here are the 108 possibilities for $N=9$. I hope there's some way of checking what these are more efficiently than just going through them by hand.

[[2,7,5,3,8,1,6,4,0],[2,7,5,3,1,8,6,4,0],[2,5,7,3,1,8,6,4,0],[2,7,5,1,3,8,6,4,0],[2,5,7,1,3,8,6,4,0],[2,6,8,3,5,1,7,4,0],[2,7,5,3,1,6,8,4,0],[2,5,7,3,1,6,8,4,0],[2,7,5,1,3,6,8,4,0],[2,5,7,1,3,6,8,4,0],[3,8,6,1,4,7,2,5,0],[3,6,8,1,4,7,2,5,0],[3,7,1,4,6,8,2,5,0],[2,8,6,4,1,7,3,5,0],[2,6,8,4,1,7,3,5,0],[2,7,4,1,6,8,3,5,0],[2,4,8,6,3,1,7,5,0],[2,4,6,8,3,1,7,5,0],[3,8,1,6,4,2,7,5,0],[3,1,8,6,4,2,7,5,0],[3,6,1,8,4,2,7,5,0],[3,1,6,8,4,2,7,5,0],[2,8,4,6,1,3,7,5,0],[2,4,8,6,1,3,7,5,0],[2,6,4,8,1,3,7,5,0],[2,4,6,8,1,3,7,5,0],[3,7,1,4,6,2,8,5,0],[2,7,4,1,6,3,8,5,0],[3,8,5,1,7,4,2,6,0],[3,7,5,1,8,4,2,6,0],[3,5,7,1,4,8,2,6,0],[4,7,1,3,5,8,2,6,0],[4,1,7,3,5,8,2,6,0],[4,8,2,5,7,1,3,6,0],[4,7,2,5,8,1,3,6,0],[4,2,7,5,1,8,3,6,0],[2,4,7,1,5,8,3,6,0],[2,8,5,3,7,1,4,6,0],[2,7,5,3,8,1,4,6,0],[3,8,1,5,7,2,4,6,0],[3,7,1,5,8,2,4,6,0],[2,7,5,3,1,8,4,6,0],[2,5,7,3,1,8,4,6,0],[3,1,7,5,2,8,4,6,0],[4,2,7,5,3,1,8,6,0],[3,5,1,7,4,2,8,6,0],[4,2,7,5,1,3,8,6,0],[2,4,7,1,5,3,8,6,0],[3,1,5,7,2,4,8,6,0],[5,8,3,1,6,4,2,7,0],[5,3,8,1,6,4,2,7,0],[3,5,8,1,6,4,2,7,0],[5,3,1,8,6,4,2,7,0],[3,5,1,8,6,4,2,7,0],[5,1,3,8,6,4,2,7,0],[5,3,1,6,8,4,2,7,0],[5,1,3,6,8,4,2,7,0],[4,6,1,3,8,5,2,7,0],[4,1,6,3,8,5,2,7,0],[4,6,2,8,5,1,3,7,0],[5,8,2,4,6,1,3,7,0],[5,2,8,4,6,1,3,7,0],[2,6,4,8,1,5,3,7,0],[4,2,6,8,1,5,3,7,0],[2,4,6,8,1,5,3,7,0],[2,6,4,1,8,5,3,7,0],[2,4,6,1,8,5,3,7,0],[2,5,8,3,6,1,4,7,0],[5,3,1,8,6,2,4,7,0],[3,5,1,8,6,2,4,7,0],[5,1,3,8,6,2,4,7,0],[5,3,1,6,8,2,4,7,0],[5,1,3,6,8,2,4,7,0],[4,2,8,6,3,1,5,7,0],[2,4,8,6,3,1,5,7,0],[4,2,6,8,3,1,5,7,0],[2,4,6,8,3,1,5,7,0],[3,6,1,4,8,2,5,7,0],[3,1,6,4,8,2,5,7,0],[2,8,4,6,1,3,5,7,0],[4,2,8,6,1,3,5,7,0],[2,4,8,6,1,3,5,7,0],[2,6,4,8,1,3,5,7,0],[4,2,6,8,1,3,5,7,0],[2,4,6,8,1,3,5,7,0],[2,6,4,1,8,3,5,7,0],[2,4,6,1,8,3,5,7,0],[5,7,3,1,6,4,2,8,0],[4,6,1,3,7,5,2,8,0],[5,3,7,1,4,6,2,8,0],[3,5,7,1,4,6,2,8,0],[6,4,2,7,5,1,3,8,0],[5,7,2,4,6,1,3,8,0],[6,2,4,7,1,5,3,8,0],[2,6,4,1,7,5,3,8,0],[5,2,7,4,1,6,3,8,0],[6,3,1,5,7,2,4,8,0],[6,1,3,5,7,2,4,8,0],[2,7,5,3,1,6,4,8,0],[2,5,7,3,1,6,4,8,0],[3,6,1,4,7,2,5,8,0],[6,2,4,7,1,3,5,8,0],[2,6,4,1,7,3,5,8,0],[4,2,7,5,3,1,6,8,0],[5,3,1,7,4,2,6,8,0],[3,5,1,7,4,2,6,8,0],[4,2,7,5,1,3,6,8,0],[3,1,5,7,2,4,6,8,0]]

1

I'm very curious where this came up. In any case, the answer to the first question is yes, it does distinguish these trefoils; you found the minimal representatives.

Let $a_0,\dots,a_{N-1}$ be the roots of unity that are visited along the knot, in (cyclic) order. Suppose we have a minimal representative for some non-trivial knot. Then we cannot have $|a_k - a_{k+1}| = 1$ for any $k$, as otherwise we could replace this pair $a_k, a_{k+1}$ by a single root of unity (for $N-1$), adjusting the other roots of unity as appropriate. A little more subtly, we cannot have $|a_{k-1} - a_{k+1}| = 1$ either, as then we could again delete $a_k$ from the sequence to get a smaller representation. With these simple constraints, the smallest possible sequence for a non-trivial knot is the one you found for one of the trefoils with $N=7$. There are several possibilities for $N=8$, including the one you found for the other trefoil. I've included a very short Haskell program below that computes this. The possibilities for $N=8$ are $$(2,7,5,3,1,6,4,0)\quad (2,5,7,3,1,6,4,0)\quad (3,6,1,4,7,2,5,0)\quad (2,6,4,1,7,3,5,0)$$ $$(3,1,6,4,2,7,5,0)\quad (2,4,6,1,3,7,5,0)\quad (3,5,1,7,4,2,6,0)\quad (4,2,7,5,1,3,6,0)$$ $$(3,1,5,7,2,4,6,0)\quad (5,3,1,6,4,2,7,0)\quad (2,4,6,1,3,5,7,0)$$

For the second question, I have never heard of this representation before.

Here is the code, for anyone interested.

 -- A (partial) circular stick representation is a list of integers,
-- the order of the roots of unity to visit in order
type CircStick = [Int]

-- The next element ak after a partial representation a1, ..., a{k-1}
-- must satisfy
--   (a) ak has not already been seen
--   (b) |ak - a{k-1}| > 1
--   (c) |ak - a{k-2}| > 1
-- There are a few more "easy" constraint, eg the first and last entries
-- cannot differ by one.  We do not impose those constraint here.
nexts :: Int -> CircStick -> [Int]
nexts n [] = [0]
nexts n [a1] = filter (\a -> abs (a-a1) > 1) [0..n-1]
nexts n (a1:a2:as) =
filter (\a -> not (elem a as)) $filter (\a -> abs (a-a1) > 1)$
filter (\a -> abs (a-a2) > 1) $[1..n-1] completions :: Int -> CircStick -> [CircStick] completions n as | length as >= n = [as] completions n as = concat [completions n (a:as) | a <- nexts n as] -- Impose final constraints: -- (a) Last entry cannot be 1 -- (b) Take entry that is lexicographically less than its reverse -- (c) first and next-to-last entries cannot differ by one circSticks :: Int -> [CircStick] circSticks n = filter (\as -> abs ((as!!0) - (as!!(n-2))) > 1)$
filter (\as -> as < tail (reverse as)) $filter (\as -> head as /= 1)$
(completions n [])