[noise] Generating patterns, and ss tokens

Justin Cormack justin at specialbusservice.com
Tue Jun 19 19:33:26 PDT 2018


The original version was missing a few; I tidied it up and checked the
patterns and can confirm it generates exactly the
same patterns as the v34 spec, other than the fact they contain "ss"
tokens where possible.

Justin


On 20 June 2018 at 00:18, Justin Cormack <justin at specialbusservice.com> wrote:
> I wrote a quick program to generate all the standard and deferred
> patterns from a short set of rules based roughly on [1]
>
> https://github.com/justincormack/noise-gen
>
> You should be able to run it with go installed with
>
> go get github.com/justincormack/noise-gen
> ~/go/bin/noise-gen
>
> It seems to generate the same patterns as the standard ones (I havent
> fully exhaustively checked yet) with the caveat that it adds ss where
> possible.
>
> In the standard patterns this means having an ss in eg:
>
> IX:
> -> e, s
> <- e, ee, se, s, es, ss
>
> XK:
> -> e, es
> <- e, ee
> -> s, se, ss
>
> The rule that would generate the same patterns appears to be to drop
> an ss if it would be the last token (as well as in all deferred
> patterns).
>
>
> [1] https://moderncrypto.org/mail-archive/noise/2018/001701.html
>
> Patterns generated listed below:
>
> NN:
> -> e
> <- e, ee
>
> NX:
> -> e
> <- e, ee, s, es
>
> NK:
> -> e, es
> <- e, ee
>
> XN:
> -> e
> <- e, ee
> -> s, se
>
> IN:
> -> e, s
> <- e, ee, se
>
> XX:
> -> e
> <- e, ee, s, es
> -> s, se, ss
>
> IX:
> -> e, s
> <- e, ee, se, s, es, ss
>
> XK:
> -> e, es
> <- e, ee
> -> s, se, ss
>
> IK:
> -> e, es, s, ss
> <- e, ee, se
>
> KN:
> -> e
> <- e, ee, se
>
> KX:
> -> e
> <- e, ee, se, s, es, ss
>
> KK:
> -> e, es, ss
> <- e, ee, se
>
>
> NX:
> -> e
> <- e, ee, s, es
>
> NX1:
> -> e
> <- e, ee, s
> -> es
>
> NK:
> -> e, es
> <- e, ee
>
> NK1:
> -> e
> <- e, ee, es
>
> XN:
> -> e
> <- e, ee
> -> s, se
>
> X1N:
> -> e
> <- e, ee
> -> s
> <- se
>
> IN:
> -> e, s
> <- e, ee, se
>
> I1N:
> -> e, s
> <- e, ee
> -> se
>
> XX:
> -> e
> <- e, ee, s, es
> -> s, se, ss
>
> X1X:
> -> e
> <- e, ee, s, es
> -> s, ss
> <- se
>
> XX1:
> -> e
> <- e, ee, s
> -> es, s, se, ss
>
> X1X1:
> -> e
> <- e, ee, s
> -> es, s, ss
> <- se
>
> IX:
> -> e, s
> <- e, ee, se, s, es, ss
>
> I1X:
> -> e, s
> <- e, ee, s, es, ss
> -> se
>
> I1X1:
> -> e, s
> <- e, ee, s, ss
> -> se, es
>
> XK:
> -> e, es
> <- e, ee
> -> s, se, ss
>
> X1K:
> -> e, es
> <- e, ee
> -> s, ss
> <- se
>
> XK1:
> -> e
> <- e, ee, es
> -> s, se, ss
>
> X1K1:
> -> e
> <- e, ee, es
> -> s, ss
> <- se
>
> IK:
> -> e, es, s, ss
> <- e, ee, se
>
> I1K:
> -> e, es, s, ss
> <- e, ee
> -> se
>
> I1K1:
> -> e, s, ss
> <- e, ee, es
> -> se
>
> KN:
> -> e
> <- e, ee, se
>
> K1N:
> -> e
> <- e, ee
> -> se
>
> KX:
> -> e
> <- e, ee, se, s, es, ss
>
> K1X:
> -> e
> <- e, ee, s, es, ss
> -> se
>
> KX1:
> -> e
> <- e, ee, se, s, ss
> -> es
>
> K1X1:
> -> e
> <- e, ee, s, ss
> -> se, es
>
> KK:
> -> e, es, ss
> <- e, ee, se
>
> K1K:
> -> e, es, ss
> <- e, ee
> -> se
>
> KK1:
> -> e, ss
> <- e, ee, se, es
>
> K1K1:
> -> e, ss
> <- e, ee, es
> -> se


More information about the Noise mailing list