Thread: "Non-associative "twisty" puzzles"

From: mananself@gmail.com
Date: 28 Sep 2018 22:33:11 +0000
Subject: Non-associative "twisty" puzzles




From: mananself@gmail.com
Date: Sun, 30 Sep 2018 20:33:12 +0100
Subject: Non-associative "twisty" puzzles



--0000000000004c0f5e05771bc3e2
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Ooh, this looks interesting. So interesting in fact, that I added a splash
of colour and some extra functions for the movement expressions, namely
repeating moves via exponentiation, finding the inverses of moves, and
repeating the last move. (You can find this at
https://github.com/Sonicpineapple/octonion, although you'll need colorama,
and I've only done python 3)

In terms of solving the puzzle, it wasn't as easy as it first looked. I can
reliably solve it now, although there's a bit of flailing involved, and no
real semblance of a method yet.

I'm excited to see what other sorts of puzzles this could lead to, and I'll
definitely have to play with it some more.

~Luna

On Fri, 28 Sep 2018 at 23:33, mananself@gmail.com [4D_Cubing] <
4D_Cubing@yahoogroups.com> wrote:

>
>
> TL;DR: We have a proof-of-concept non-associative puzzle based on
> octonions in Python here .
>
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
> Motivation
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
>
> One could argue the defining property of twisty puzzles that makes them s=
o
> interesting is their non-commutativity. Given two twists a and b, general=
ly
> ab =E2=89=A0 ba.=C2=B9
>
>
> A few months ago, Quanta magazine published a popular article
> sics-20180720/>
> about the "octonions" and their potential application to particle physics=
.
> Octonions are not only non-commutative, but non-associative as well. Give=
n
> 3 octonions a, b, and c, it is possible that (ab)c =E2=89=A0 a(bc). Note =
that the
> Rubik's cube is associative. (ab)c =3D a(bc) for any 3 twists.
>
>
> The Quanta article sparked the idea of trying to make a twisty puzzle tha=
t
> is also non-associative. Where would this lead?
>
>
> =C2=B9 A twisty puzzle having only commutative twists is possible but wil=
l be
> easier since you can apply twists in any order to solve. The vertex
> turning 600-cell with trivial tips
> 2>
> is one example of a commutative puzzle that still takes effort.
>
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
> Non-associative puzzles can=E2=80=99t be permutation puzzles, and visa ve=
rsa!
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
>
> We are used to studying twisty puzzles with group theory
> . The state-space of Rubik=E2=
=80=99s
> cube forms a mathematical group
> and twists move us
> around this space of permutations. However, groups are associative, so th=
e
> state-space of non-associative puzzles can not form a group.
>
>
> Conversely, any puzzle that permutes stickers with each twist necessarily
> satisfies the axioms of a permutation group
> , and is therefore
> associative. This means a permutation puzzle can=E2=80=99t be non-associa=
tive.
>
>
> In short, "twisty" should be left in quotes. Our =E2=80=9Ctwists=E2=80=9D=
are generators,
> but they are not familiar permutations of stickers.
>
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
> Commutators and Associators
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
>
> Because of non-commutativity, we use commutators to solve twisty puzzles.
> The commutator is given by a=E2=81=BB=C2=B9b=E2=81=BB=C2=B9ab =3D (ba)=E2=
=81=BB=C2=B9ab and the analogue for
> non-associativity is the associator, (a(bc))=E2=81=BB=C2=B9((ab)c). We ar=
e still
> exploring how this might apply to solution strategies.
>
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
> Octonions in brief
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
>
> There are 4 magical number systems known as the normed division algebras:
> the reals, complex numbers, quaternions, and octonions. Each number syste=
m
> is twice the dimension of the previous. While climbing the ladder of numb=
er
> systems, we lose a property at every step.
>
>
> Number System
>
> Dimension
>
> Properties
>
> real numbers
>
> 1
>
> divisible, associative, commutative, orderable
>
> complex numbers
>
> 2
>
> divisible, associative, commutative
>
> quaternions
>
> 4
>
> divisible, associative
>
> octonions
>
> 8
>
> divisible
>
>
> You can continue to dimension 16 with the sedenions
> , but then even the property of
> divisibility is lost and the number system is no longer a division algeb=
ra.
>
>
> If you are familiar with complex numbers, which have the form a + bi with
> a, b real and i =3D =E2=88=9A-1, quaternions and octonions won=E2=80=99t =
feel completely
> alien. They look like this.
>
>
> quaternions: a + bi + cj + dk
>
> octonions: x=E2=82=80 + x=E2=82=81e=E2=82=81 + x=E2=82=82e=E2=82=82 + x=
=E2=82=83e=E2=82=83 + x=E2=82=84e=E2=82=84 + x=E2=82=85e=E2=82=85 + x=E2=82=
=86e=E2=82=86 + x=E2=82=87e=E2=82=87
>
>
> The coefficients are real numbers. For quaternions, i, j, and k are
> similar to the i of complex numbers. For the octonions, the seven e=E1=B5=
=A2 with i
> =E2=89=A0 0 play this role. An octonion can also be denoted as a length-8=
vector
> using the 8 coefficients. Addition, subtraction, multiplication, division=
,
> inverse, norm, and conjugate can be defined for octonions, in a way simil=
ar
> to complex numbers.
>
>
> There is a wealth of information online about the octonions. We recommend=
this
> resource page by John Baez, as
> well as his paper, =E2=80=9CThe Octonions
> =E2=80=9D, especia=
lly the
> beginning sections.=C2=B2
>
>
> =C2=B2 Note that the multiplication tables used by Baez and Wikipedia are
> different, although equivalent by renaming bases. In our implementation, =
we
> used the Wikipedia convention.
>
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
> Unit norm integral octonions
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
>
> Integral octonions
> are a special
> subset of octonions. They are octonions whose coordinates are all integer=
s,
> or all half-integers satisfying certain properties. There are 240 integra=
l
> octonions with the minimum nonzero norm, which is 1 (unit norm). The
> simplest example is the identity octonion (1, 0, 0, 0, 0, 0, 0, 0), aka, =
1.
> The set of 240 unit norm integral octonions is closed under octonion
> multiplication. Therefore they form a small playground. As long as we onl=
y
> use multiplication between them, we never fall out of it.
>
>
> We can start from three generators:
>
> o i =3D (0, 1, 0, 0, 0, 0, 0, 0),
>
> o j =3D (0, 0, 1, 0, 0, 0, 0, 0),
>
> o h =3D (0, 1, 1, 1, 1, 0, 0, 0)/2,
>
> and use multiplication to generate all the 240 unit norm integral
> octonions. Reference: section 3 of this paper
> .
>
>
> Here are some quick facts about the unit norm integral octonions. The 240
> octonions, if expressed as 8-dimensional vectors, are the vertices of the=
4=E2=82=82=E2=82=81
> polytope , a semi-regular
> 8-polytope. It admits the E8 symmetry. The algebraic structure of these 2=
40
> octonions is no longer a group because it lacks associativity. It is a
> =E2=80=9Cloop=E2=80=9D, which is group minus associativity. In addition, =
since it has a
> weaker version of associativity called Moufang properties, it is a Moufan=
g
> loop . If you are interested
> in reading more about integral octonions, we recommend another of John
> Baez's pages .
>
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
> Integral octonions puzzle
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
>
> Based on the set of 240 unit norm integral octonions described above, we
> constructed a non-associative puzzle.
>
>
> To illustrate the idea, let=E2=80=99s review the Rubik=E2=80=99s Cube as =
an analogy. The
> group of all states of the Rubik=E2=80=99s Cube is generated by generator=
s U, D, L,
> R, F, B, with the group operation of concatenating moves. We randomly
> choose a state from the group as the scramble or initial state. In each
> step, we apply any generator individually, or in general, any sequence of
> generators as an expression. The expression is applied to the right side =
of
> the scramble. The goal of the puzzle is to get the state to the identity =
or
> solved state.
>
>
> Here, we randomly choose a unit norm integral octonion from 240
> possibilities as the scramble or initial state. In each step, we enter an
> expression of generators: i, j, h, using the octonion multiplication *,
> with parenthesis (). For example, (h * (i * j)) can be an input
> expression. Just h itself is also an expression. We evaluate the input
> expression and right-multiply it to the old state:
>
> (the new state) =3D (the old state) * (input expression).
>
> The goal is to get the state to the identity octonion (1, 0, 0, 0, 0, 0,
> 0, 0).
>
> The reason why we allow entering an expression of i, j, h rather than
> applying them individually is not just for convenience like macros in the
> Rubik=E2=80=99s Cube. It=E2=80=99s because of non-associativity. Since (s=
tate * (a * b))
> may not equal ((state * a) * b), applying the expression (a * b) as input
> can be different from applying a and then applying b. If we only enter i,
> j or h individually in each step, we have only a 20% chance (48 out of
> 240 initial states) of solving it. For this reason, we highly recommend
> trying at least i * h if you feel stuck. By doing so, you are embracing
> the essence of non-associativity.
>
>
> To get a sense about how hard this puzzle is, and to try out the
> non-associative solving experience, Nan implemented it in Python as a pro=
of
> of concept. We found it nontrivial and interesting, even when the space i=
s
> as small as 240 elements. Here=E2=80=99s how you can also try it:
>
> 1.
>
> Install Python, either 2.* or 3.*.
> 2.
>
> Install numpy.
> 3.
>
> Clone my repo: https://github.com/nanma80/octonion
> 4.
>
> Run puzzle_python2.py or puzzle_python3.py depending on the Python
> version you installed.
> 5.
>
> Follow the instructions to solve it. The instruction is as same as the
> description above.
> 6.
>
> Solve it, or enter q to quit.
>
>
> About the solving experience: We think the puzzle is hard, partly because
> the h move is unintuitive. We observed that
>
> -
>
> i, j, or h applied individually is always a 4-cycle.
> -
>
> applying (i * j) * h is a 3-cycle.
> -
>
> applying (j * i) * h is a 6-cycle.
> -
>
> (i * j) * h is different from i * (j * h), verifying non-associativity
> among three generators.
>
> If you know any method to illustrate octonion multiplication, please let
> us know and we can improve this puzzle.
>
>
> We are also working on non-associative puzzles based on loops with more
> states and more =E2=80=9Cintuitive=E2=80=9D moves. We are experimenting s=
omething based on
> a 2x2x2 cube and a modified construction of =E2=80=9CM(G,2)=E2=80=9D here
> . We don=E2=80=99t h=
ave a
> prototype yet but may discuss it later in another email.
>
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
>
> This is a long email. We only have some ideas and a proof of concept. We'=
d
> like to make more polished non-associative puzzles.
>
> -
>
> Do you know a good way to illustrate octonions, or integral octonions?
> -
>
> Can you think of other non-associative rules for puzzles?
>
> Please leave comments or suggestions!
>
>
> Nan and Roice
>
>
>=20
>

--0000000000004c0f5e05771bc3e2
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Ooh, this looks interesting. So inte=
resting in fact, that I added a splash of colour and some extra functions f=
or the movement expressions, namely repeating moves via exponentiation, fin=
ding the inverses of moves, and repeating the last move. (You can find this=
at https://github.c=
om/Sonicpineapple/octonion
, although you'll need colorama, and I=
9;ve only done python 3)

In terms of solving the p=
uzzle, it wasn't as easy as it first looked. I can reliably solve it no=
w, although there's a bit of flailing involved, and no real semblance o=
f a method yet.

I'm excited to see what o=
ther sorts of puzzles this could lead to, and I'll definitely have to p=
lay with it some more.

~Luna
div>
On Fri, 28 Sep 2018 at =
23:33, mananself@gmail.com [4D_C=
ubing] <4D_Cubing@yahoogrou=
ps.com
> wrote:
argin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">












=20

=C2=A0







=20=20=20=20=20=20
=20=20=20=20=20=20

yle=3D"font-size:11pt;font-family:Arial;color:#222222;background-color:tran=
sparent;font-weight:400;font-style:normal;font-variant:normal;text-decorati=
on:none;vertical-align:baseline;white-space:pre-wrap">TL;DR: We have a proo=
f-of-concept non-associative puzzle based on octonions in Python
rel=3D"nofollow" href=3D"https://github.com/nanma80/octonion" style=3D"text=
-decoration:none" target=3D"_blank">ly:Arial;color:#1155cc;background-color:transparent;font-weight:400;font-st=
yle:normal;font-variant:normal;text-decoration:underline;vertical-align:bas=
eline;white-space:pre-wrap">here
nt-family:Arial;color:#222222;background-color:transparent;font-weight:400;=
font-style:normal;font-variant:normal;text-decoration:none;vertical-align:b=
aseline;white-space:pre-wrap">.

normal" id=3D"m_-7834067320491410747docs-internal-guid-6c96c518-7fff-7330-6=
cb6-156af2e15d6a">

;margin-bottom:0pt">000000;background-color:transparent;font-weight:400;font-style:normal;font-=
variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre=
-wrap">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

=3D"margin-top:0pt;margin-bottom:0pt">mily:Arial;color:#222222;background-color:transparent;font-weight:400;font-=
style:normal;font-variant:normal;text-decoration:none;vertical-align:baseli=
ne;white-space:pre-wrap">Motivation

n-top:0pt;margin-bottom:0pt">l;color:#000000;background-color:transparent;font-weight:400;font-style:nor=
mal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-=
space:pre-wrap">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

style=3D"font-weight:normal">

gin-top:0pt;margin-bottom:0pt">ial;color:#222222;background-color:transparent;font-weight:400;font-style:n=
ormal;font-variant:normal;text-decoration:none;vertical-align:baseline;whit=
e-space:pre-wrap">One could argue the defining property of twisty puzzles t=
hat makes them so interesting is their non-commutativity. Given two twists =
a and b, generally ab
al;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal=
;font-variant:normal;text-decoration:none;vertical-align:baseline;white-spa=
ce:pre-wrap">=E2=89=A0
l;color:#222222;background-color:transparent;font-weight:400;font-style:nor=
mal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-=
space:pre-wrap"> ba.=C2=B9

l">

0pt">nd-color:transparent;font-weight:400;font-style:normal;font-variant:normal;=
text-decoration:none;vertical-align:baseline;white-space:pre-wrap">A few mo=
nths ago, Quanta magazine published
s://www.quantamagazine.org/the-octonion-math-that-could-underpin-physics-20=
180720/" style=3D"text-decoration:none" target=3D"_blank">nt-size:11pt;font-family:Arial;color:#1155cc;background-color:transparent;f=
ont-weight:400;font-style:normal;font-variant:normal;text-decoration:underl=
ine;vertical-align:baseline;white-space:pre-wrap">a popular article
<=
/a>-color:transparent;font-weight:400;font-style:normal;font-variant:normal;te=
xt-decoration:none;vertical-align:baseline;white-space:pre-wrap"> about the=
"octonions" and their potential application to particle physics.=
Octonions are not only non-commutative, but non-associative as well. Given=
3 octonions a, b, and c, it is possible that (ab)c
ont-size:9.5pt;font-family:Arial;color:#222222;background-color:#ffffff;fon=
t-weight:400;font-style:normal;font-variant:normal;text-decoration:none;ver=
tical-align:baseline;white-space:pre-wrap">=E2=89=A0
ont-size:11pt;font-family:Arial;color:#222222;background-color:transparent;=
font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;=
vertical-align:baseline;white-space:pre-wrap"> a(bc). Note that the Rubik&#=
39;s cube is associative. (ab)c =3D a(bc) for any 3 twists.

pan>

=3D"margin-top:0pt;margin-bottom:0pt">mily:Arial;color:#222222;background-color:transparent;font-weight:400;font-=
style:normal;font-variant:normal;text-decoration:none;vertical-align:baseli=
ne;white-space:pre-wrap">The Quanta article sparked the idea of trying to m=
ake a twisty puzzle that is also non-associative. Where would this lead?pan>


=3D"ltr" style=3D"margin-top:0pt;margin-bottom:0pt">e:9pt;font-family:Arial;color:#222222;background-color:transparent;font-wei=
ght:400;font-style:normal;font-variant:normal;text-decoration:none;vertical=
-align:baseline;white-space:pre-wrap">=C2=B9 A twisty puzzle having only co=
mmutative twists is possible but will be easier since you can apply twists =
in any order to solve. The
s.yahoo.com/neo/groups/4D_Cubing/conversations/messages/1752" style=3D"text=
-decoration:none" target=3D"_blank">y:Arial;color:#1155cc;background-color:transparent;font-weight:400;font-sty=
le:normal;font-variant:normal;text-decoration:underline;vertical-align:base=
line;white-space:pre-wrap">vertex turning 600-cell with trivial tips
=
-color:transparent;font-weight:400;font-style:normal;font-variant:normal;te=
xt-decoration:none;vertical-align:baseline;white-space:pre-wrap"> is one ex=
ample of a commutative puzzle that still takes effort.

<=
b style=3D"font-weight:normal">

argin-top:0pt;margin-bottom:0pt">Arial;color:#000000;background-color:transparent;font-weight:400;font-style=
:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;wh=
ite-space:pre-wrap">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

=3D"ltr" style=3D"margin-top:0pt;margin-bottom:0pt">e:11pt;font-family:Arial;color:#222222;background-color:transparent;font-we=
ight:400;font-style:normal;font-variant:normal;text-decoration:none;vertica=
l-align:baseline;white-space:pre-wrap">Non-associative puzzles can=E2=80=99=
t be permutation puzzles, and visa versa!

"margin-top:0pt;margin-bottom:0pt">y:Arial;color:#000000;background-color:transparent;font-weight:400;font-sty=
le:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;=
white-space:pre-wrap">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

an>

=3D"margin-top:0pt;margin-bottom:0pt">mily:Arial;color:#222222;background-color:transparent;font-weight:400;font-=
style:normal;font-variant:normal;text-decoration:none;vertical-align:baseli=
ne;white-space:pre-wrap">We are used to studying twisty puzzles with >yle=3D"text-decoration:none" target=3D"_blank">t;font-family:Arial;color:#1155cc;background-color:transparent;font-weight:=
400;font-style:normal;font-variant:normal;text-decoration:underline;vertica=
l-align:baseline;white-space:pre-wrap">group theory
=3D"font-size:11pt;font-family:Arial;color:#222222;background-color:transpa=
rent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:=
none;vertical-align:baseline;white-space:pre-wrap">. The state-space of Rub=
ik=E2=80=99s cube
rg/wiki/Rubik%27s_Cube_group" style=3D"text-decoration:none" target=3D"_bla=
nk">d-color:transparent;font-weight:400;font-style:normal;font-variant:normal;t=
ext-decoration:underline;vertical-align:baseline;white-space:pre-wrap">form=
s a mathematical group
Arial;color:#222222;background-color:transparent;font-weight:400;font-style=
:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;wh=
ite-space:pre-wrap"> and twists move us around this space of permutations. =
However, groups are associative, so the state-space of non-associative puzz=
les can not form a group.

">

pt">d-color:transparent;font-weight:400;font-style:normal;font-variant:normal;t=
ext-decoration:none;vertical-align:baseline;white-space:pre-wrap">Conversel=
y, any puzzle that permutes stickers with each twist necessarily satisfies =
the axioms of a
/wiki/Permutation_group" style=3D"text-decoration:none" target=3D"_blank"><=
span style=3D"font-size:11pt;font-family:Arial;color:#1155cc;background-col=
or:transparent;font-weight:400;font-style:normal;font-variant:normal;text-d=
ecoration:underline;vertical-align:baseline;white-space:pre-wrap">permutati=
on group
22222;background-color:transparent;font-weight:400;font-style:normal;font-v=
ariant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-=
wrap">, and is therefore associative. This means a permutation puzzle can=
=E2=80=99t be non-associative.

ormal">

tom:0pt">ground-color:transparent;font-weight:400;font-style:normal;font-variant:nor=
mal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">In s=
hort, "twisty" should be left in quotes. Our =E2=80=9Ctwists=E2=
=80=9D are generators, but they are not familiar permutations of stickers.<=
/span>


r=3D"ltr" style=3D"margin-top:0pt;margin-bottom:0pt">ze:11pt;font-family:Arial;color:#000000;background-color:transparent;font-w=
eight:400;font-style:normal;font-variant:normal;text-decoration:none;vertic=
al-align:baseline;white-space:pre-wrap">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D

an style=3D"font-size:11pt;font-family:Arial;color:#222222;background-color=
:transparent;font-weight:400;font-style:normal;font-variant:normal;text-dec=
oration:none;vertical-align:baseline;white-space:pre-wrap">Commutators and =
Associators

0pt">nd-color:transparent;font-weight:400;font-style:normal;font-variant:normal;=
text-decoration:none;vertical-align:baseline;white-space:pre-wrap">=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

ormal">

tom:0pt">ground-color:transparent;font-weight:400;font-style:normal;font-variant:nor=
mal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">Beca=
use of non-commutativity, we use commutators to solve twisty puzzles. The c=
ommutator is given by a=E2=81=BB=C2=B9b=E2=81=BB=C2=B9ab =3D (ba)=E2=81=BB=
=C2=B9ab and the analogue for non-associativity is the associator, (a(bc))=
=E2=81=BB=C2=B9((ab)c). We are still exploring how this might apply to solu=
tion strategies.


>

style=3D"font-size:11pt;font-family:Arial;color:#000000;background-color:t=
ransparent;font-weight:400;font-style:normal;font-variant:normal;text-decor=
ation:none;vertical-align:baseline;white-space:pre-wrap">=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D

bottom:0pt">ackground-color:transparent;font-weight:400;font-style:normal;font-variant:=
normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">O=
ctonions in brief

ottom:0pt">ckground-color:transparent;font-weight:400;font-style:normal;font-variant:n=
ormal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

ight:normal">

in-bottom:0pt">2;background-color:transparent;font-weight:400;font-style:normal;font-varia=
nt:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap=
">There are 4 magical number systems known as the normed division algebras:=
the reals, complex numbers, quaternions, and octonions. Each number system=
is twice the dimension of the previous. While climbing the ladder of numbe=
r systems, we lose a property at every step.

"font-weight:normal">

ft:0pt">l>height:0pt">ht:0pt">tyle=3D"height:0pt">table>


dir=3D"ltr" style=3D"margin-top:0pt;margin-bottom:0pt">size:11pt;font-family:Arial;color:#222222;background-color:transparent;font=
-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vert=
ical-align:baseline;white-space:pre-wrap">You can continue to dimension 16 =
with the
edenion" style=3D"text-decoration:none" target=3D"_blank">nt-size:11pt;font-family:Arial;color:#1155cc;background-color:transparent;f=
ont-weight:400;font-style:normal;font-variant:normal;text-decoration:underl=
ine;vertical-align:baseline;white-space:pre-wrap">sedenions
style=3D"font-size:11pt;font-family:Arial;color:#222222;background-color:t=
ransparent;font-weight:400;font-style:normal;font-variant:normal;text-decor=
ation:none;vertical-align:baseline;white-space:pre-wrap">, but then even th=
e property of divisibility =C2=A0is lost and the number system is no longer=
a division algebra.

>

<=
span style=3D"font-size:11pt;font-family:Arial;color:#222222;background-col=
or:transparent;font-weight:400;font-style:normal;font-variant:normal;text-d=
ecoration:none;vertical-align:baseline;white-space:pre-wrap">If you are fam=
iliar with complex numbers, which have the form a + bi with a, b real and i=
=3D =E2=88=9A-1, quaternions and octonions won=E2=80=99t feel completely a=
lien. They look like this.

l">

0pt">nd-color:transparent;font-weight:400;font-style:normal;font-variant:normal;=
text-decoration:none;vertical-align:baseline;white-space:pre-wrap">quaterni=
ons: a + bi + cj + dk

in-bottom:0pt">2;background-color:transparent;font-weight:400;font-style:normal;font-varia=
nt:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap=
">octonions: x=E2=82=80 + x=E2=82=81e=E2=82=81 + x=E2=82=82e=E2=82=82 + x=
=E2=82=83e=E2=82=83 + x=E2=82=84e=E2=82=84 + x=E2=82=85e=E2=82=85 + x=E2=82=
=86e=E2=82=86 + x=E2=82=87e=E2=82=87

ight:normal">

in-bottom:0pt">2;background-color:transparent;font-weight:400;font-style:normal;font-varia=
nt:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap=
">The coefficients are real numbers. For quaternions, i, j, and k are simil=
ar to the i of complex numbers. For the octonions, the seven e=E1=B5=A2 wit=
h i
ackground-color:#ffffff;font-weight:400;font-style:normal;font-variant:norm=
al;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">=E2=
=89=A0
background-color:transparent;font-weight:400;font-style:normal;font-variant=
:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">=
0 play this role. An octonion can also be denoted as a length-8 vector usi=
ng the 8 coefficients. Addition, subtraction, multiplication, division, inv=
erse, norm, and conjugate can be defined for octonions, in a way similar to=
complex numbers.


b>

n style=3D"font-size:11pt;font-family:Arial;color:#222222;background-color:=
transparent;font-weight:400;font-style:normal;font-variant:normal;text-deco=
ration:none;vertical-align:baseline;white-space:pre-wrap">There is a wealth=
of information online about the octonions. We recommend ofollow" href=3D"http://math.ucr.edu/home/baez/octonions/" style=3D"text-de=
coration:none" target=3D"_blank">Arial;color:#1155cc;background-color:transparent;font-weight:400;font-style=
:normal;font-variant:normal;text-decoration:underline;vertical-align:baseli=
ne;white-space:pre-wrap">this resource page
ize:11pt;font-family:Arial;color:#222222;background-color:transparent;font-=
weight:400;font-style:normal;font-variant:normal;text-decoration:none;verti=
cal-align:baseline;white-space:pre-wrap"> by John Baez, as well as his pape=
r, =E2=80=9C
z/octonions/octonions.pdf" style=3D"text-decoration:none" target=3D"_blank"=
>olor:transparent;font-weight:400;font-style:normal;font-variant:normal;text=
-decoration:underline;vertical-align:baseline;white-space:pre-wrap">The Oct=
onions
222;background-color:transparent;font-weight:400;font-style:normal;font-var=
iant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wr=
ap">=E2=80=9D, especially the beginning sections.=C2=B2

>

"margin-top:0pt;margin-bottom:0pt">:Arial;color:#222222;background-color:transparent;font-weight:400;font-styl=
e:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;w=
hite-space:pre-wrap">=C2=B2 Note that the multiplication tables used by Bae=
z and Wikipedia are different, although equivalent by renaming bases. In ou=
r implementation, we used the Wikipedia convention.

tyle=3D"font-weight:normal">

in-top:0pt;margin-bottom:0pt">al;color:#000000;background-color:transparent;font-weight:400;font-style:no=
rmal;font-variant:normal;text-decoration:none;vertical-align:baseline;white=
-space:pre-wrap">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

tr" style=3D"margin-top:0pt;margin-bottom:0pt">t;font-family:Arial;color:#000000;background-color:transparent;font-weight:=
400;font-style:normal;font-variant:normal;text-decoration:none;vertical-ali=
gn:baseline;white-space:pre-wrap">Unit norm integral octonions

dir=3D"ltr" style=3D"margin-top:0pt;margin-bottom:0pt">-size:11pt;font-family:Arial;color:#000000;background-color:transparent;fon=
t-weight:400;font-style:normal;font-variant:normal;text-decoration:none;ver=
tical-align:baseline;white-space:pre-wrap">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D


p>

low" href=3D"https://en.wikipedia.org/wiki/Octonion#Integral_octonions" sty=
le=3D"text-decoration:none" target=3D"_blank">;font-family:Arial;color:#1155cc;background-color:transparent;font-weight:4=
00;font-style:normal;font-variant:normal;text-decoration:underline;vertical=
-align:baseline;white-space:pre-wrap">Integral octonions
yle=3D"font-size:11pt;font-family:Arial;color:#000000;background-color:tran=
sparent;font-weight:400;font-style:normal;font-variant:normal;text-decorati=
on:none;vertical-align:baseline;white-space:pre-wrap"> are a special subset=
of octonions. They are octonions whose coordinates are all integers, or al=
l half-integers satisfying certain properties. There are 240 integral octon=
ions with the minimum nonzero norm, which is 1 (unit norm). The simplest ex=
ample is the identity octonion (1, 0, 0, 0, 0, 0, 0, 0), aka, 1. The set of=
240 unit norm integral octonions is closed under octonion multiplication. =
Therefore they form a small playground. As long as we only use multiplicati=
on between them, we never fall out of it.

nt-weight:normal">

;margin-bottom:0pt">000000;background-color:transparent;font-weight:400;font-style:normal;font-=
variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre=
-wrap">We can start from three generators:

=3D"margin-top:0pt;margin-bottom:0pt;text-indent:36pt">size:11pt;font-family:Arial;color:#000000;background-color:transparent;font=
-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vert=
ical-align:baseline;white-space:pre-wrap">o =C2=A0=C2=A0
=3D"font-size:11pt;font-family:Arial;color:#000000;background-color:transpa=
rent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:=
none;vertical-align:baseline;white-space:pre-wrap">i
ont-size:11pt;font-family:Arial;color:#000000;background-color:transparent;=
font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;=
vertical-align:baseline;white-space:pre-wrap"> =3D (0, 1, 0, 0, 0, 0, 0, 0)=
,

ndent:36pt">ackground-color:transparent;font-weight:400;font-style:normal;font-variant:=
normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">o=
=C2=A0=C2=A0
000000;background-color:transparent;font-weight:400;font-style:italic;font-=
variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre=
-wrap">j
0;background-color:transparent;font-weight:400;font-style:normal;font-varia=
nt:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap=
"> =3D (0, 0, 1, 0, 0, 0, 0, 0),

op:0pt;margin-bottom:0pt;text-indent:36pt">nt-family:Arial;color:#000000;background-color:transparent;font-weight:400;=
font-style:normal;font-variant:normal;text-decoration:none;vertical-align:b=
aseline;white-space:pre-wrap">o =C2=A0=C2=A0
:11pt;font-family:Arial;color:#000000;background-color:transparent;font-wei=
ght:400;font-style:italic;font-variant:normal;text-decoration:none;vertical=
-align:baseline;white-space:pre-wrap">h
;font-family:Arial;color:#000000;background-color:transparent;font-weight:4=
00;font-style:normal;font-variant:normal;text-decoration:none;vertical-alig=
n:baseline;white-space:pre-wrap"> =3D (0, 1, 1, 1, 1, 0, 0, 0)/2,
>

ont-size:11pt;font-family:Arial;color:#000000;background-color:transparent;=
font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;=
vertical-align:baseline;white-space:pre-wrap">and use multiplication to gen=
erate all the 240 unit norm integral octonions. Reference: section 3 of pan>=3D"text-decoration:none" target=3D"_blank">ont-family:Arial;color:#1155cc;background-color:transparent;font-weight:400=
;font-style:normal;font-variant:normal;text-decoration:underline;vertical-a=
lign:baseline;white-space:pre-wrap">this paper
t-size:11pt;font-family:Arial;color:#000000;background-color:transparent;fo=
nt-weight:400;font-style:normal;font-variant:normal;text-decoration:none;ve=
rtical-align:baseline;white-space:pre-wrap">.

=3D"font-weight:normal">

op:0pt;margin-bottom:0pt">olor:#000000;background-color:transparent;font-weight:400;font-style:normal=
;font-variant:normal;text-decoration:none;vertical-align:baseline;white-spa=
ce:pre-wrap">Here are some quick facts about the unit norm integral octonio=
ns. The 240 octonions, if expressed as 8-dimensional vectors, are the verti=
ces of the
/4_21_polytope" style=3D"text-decoration:none" target=3D"_blank">e=3D"font-size:11pt;font-family:Arial;color:#1155cc;background-color:transp=
arent;font-weight:400;font-style:normal;font-variant:normal;text-decoration=
:underline;vertical-align:baseline;white-space:pre-wrap">4=E2=82=82=E2=82=
=81 polytope
r:#000000;background-color:transparent;font-weight:400;font-style:normal;fo=
nt-variant:normal;text-decoration:none;vertical-align:baseline;white-space:=
pre-wrap">, a semi-regular 8-polytope. It admits the E8 symmetry. The algeb=
raic structure of these 240 octonions is no longer a group because it lacks=
associativity. It is a =E2=80=9Cloop=E2=80=9D, which is group minus associ=
ativity. In addition, since it has a weaker version of associativity called=
Moufang properties, it is a
wikipedia.org/wiki/Moufang_loop" style=3D"text-decoration:none" target=3D"_=
blank">ound-color:transparent;font-weight:400;font-style:normal;font-variant:norma=
l;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">M=
oufang loop
:#000000;background-color:transparent;font-weight:400;font-style:normal;fon=
t-variant:normal;text-decoration:none;vertical-align:baseline;white-space:p=
re-wrap">. If you are interested in reading more about integral octonions, =
we recommend
ez/octonions/integers/" style=3D"text-decoration:none" target=3D"_blank">pan style=3D"font-size:11pt;font-family:Arial;color:#1155cc;background-colo=
r:transparent;font-weight:400;font-style:normal;font-variant:normal;text-de=
coration:underline;vertical-align:baseline;white-space:pre-wrap">another of=
John Baez's pages
Arial;color:#000000;background-color:transparent;font-weight:400;font-style=
:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;wh=
ite-space:pre-wrap">.

r>

=
lor:transparent;font-weight:400;font-style:normal;font-variant:normal;text-=
decoration:none;vertical-align:baseline;white-space:pre-wrap">=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D

argin-bottom:0pt">0000;background-color:transparent;font-weight:400;font-style:normal;font-va=
riant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-w=
rap">Integral octonions puzzle

:0pt;margin-bottom:0pt">or:#000000;background-color:transparent;font-weight:400;font-style:normal;f=
ont-variant:normal;text-decoration:none;vertical-align:baseline;white-space=
:pre-wrap">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

=3D"font-weight:normal">

op:0pt;margin-bottom:0pt">olor:#000000;background-color:transparent;font-weight:400;font-style:normal=
;font-variant:normal;text-decoration:none;vertical-align:baseline;white-spa=
ce:pre-wrap">Based on the set of 240 unit norm integral octonions described=
above, we constructed a non-associative puzzle.

e=3D"font-weight:normal">

top:0pt;margin-bottom:0pt">color:#000000;background-color:transparent;font-weight:400;font-style:norma=
l;font-variant:normal;text-decoration:none;vertical-align:baseline;white-sp=
ace:pre-wrap">To illustrate the idea, let=E2=80=99s review the Rubik=E2=80=
=99s Cube as an analogy. The group of all states of the Rubik=E2=80=99s Cub=
e is generated by generators U, D, L, R, F, B, with the group operation of =
concatenating moves. We randomly choose a state from the group as the scram=
ble or initial state. In each step, we apply any generator individually, or=
in general, any sequence of generators as an expression. The expression is=
applied to the right side of the scramble. The goal of the puzzle is to ge=
t the state to the identity or solved state.

"font-weight:normal">

0pt;margin-bottom:0pt">r:#000000;background-color:transparent;font-weight:400;font-style:normal;fo=
nt-variant:normal;text-decoration:none;vertical-align:baseline;white-space:=
pre-wrap">Here, we randomly choose a unit norm integral octonion from 240 p=
ossibilities as the scramble or initial state. In each step, we enter an ex=
pression of generators:
ial;color:#000000;background-color:transparent;font-weight:400;font-style:i=
talic;font-variant:normal;text-decoration:none;vertical-align:baseline;whit=
e-space:pre-wrap">i
olor:#000000;background-color:transparent;font-weight:400;font-style:normal=
;font-variant:normal;text-decoration:none;vertical-align:baseline;white-spa=
ce:pre-wrap">,
:#000000;background-color:transparent;font-weight:400;font-style:italic;fon=
t-variant:normal;text-decoration:none;vertical-align:baseline;white-space:p=
re-wrap">j
000;background-color:transparent;font-weight:400;font-style:normal;font-var=
iant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wr=
ap">,
background-color:transparent;font-weight:400;font-style:italic;font-variant=
:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">=
h
round-color:transparent;font-weight:400;font-style:normal;font-variant:norm=
al;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">, usi=
ng the octonion multiplication *, with parenthesis (). For example, (>olor:transparent;font-weight:400;font-style:italic;font-variant:normal;text=
-decoration:none;vertical-align:baseline;white-space:pre-wrap">h
n style=3D"font-size:11pt;font-family:Arial;color:#000000;background-color:=
transparent;font-weight:400;font-style:normal;font-variant:normal;text-deco=
ration:none;vertical-align:baseline;white-space:pre-wrap"> * (
style=3D"font-size:11pt;font-family:Arial;color:#000000;background-color:tr=
ansparent;font-weight:400;font-style:italic;font-variant:normal;text-decora=
tion:none;vertical-align:baseline;white-space:pre-wrap">i
=3D"font-size:11pt;font-family:Arial;color:#000000;background-color:transpa=
rent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:=
none;vertical-align:baseline;white-space:pre-wrap"> *
"font-size:11pt;font-family:Arial;color:#000000;background-color:transparen=
t;font-weight:400;font-style:italic;font-variant:normal;text-decoration:non=
e;vertical-align:baseline;white-space:pre-wrap">j
-size:11pt;font-family:Arial;color:#000000;background-color:transparent;fon=
t-weight:400;font-style:normal;font-variant:normal;text-decoration:none;ver=
tical-align:baseline;white-space:pre-wrap">)) can be an input expression. J=
ust
ckground-color:transparent;font-weight:400;font-style:italic;font-variant:n=
ormal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">h<=
/span>und-color:transparent;font-weight:400;font-style:normal;font-variant:normal=
;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"> itself=
is also an expression. We evaluate the input expression and right-multiply=
it to the old state:

in-bottom:0pt;text-indent:36pt">rial;color:#000000;background-color:transparent;font-weight:400;font-style:=
normal;font-variant:normal;text-decoration:none;vertical-align:baseline;whi=
te-space:pre-wrap">(the new state) =3D (the old state) * (input expression)=
.

style=3D"font-size:11pt;font-family:Arial;color:#000000;background-color:t=
ransparent;font-weight:400;font-style:normal;font-variant:normal;text-decor=
ation:none;vertical-align:baseline;white-space:pre-wrap">The goal is to get=
the state to the identity octonion (1, 0, 0, 0, 0, 0, 0, 0).

dir=3D"ltr" style=3D"margin-top:0pt;margin-bottom:0pt">size:11pt;font-family:Arial;color:#000000;background-color:transparent;font=
-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vert=
ical-align:baseline;white-space:pre-wrap">

=3D"margin-top:0pt;margin-bottom:0pt">mily:Arial;color:#000000;background-color:transparent;font-weight:400;font-=
style:normal;font-variant:normal;text-decoration:none;vertical-align:baseli=
ne;white-space:pre-wrap">The reason why we allow entering an expression of =
ound-color:transparent;font-weight:400;font-style:italic;font-variant:norma=
l;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">in>color:transparent;font-weight:400;font-style:normal;font-variant:normal;tex=
t-decoration:none;vertical-align:baseline;white-space:pre-wrap">,
pan style=3D"font-size:11pt;font-family:Arial;color:#000000;background-colo=
r:transparent;font-weight:400;font-style:italic;font-variant:normal;text-de=
coration:none;vertical-align:baseline;white-space:pre-wrap">j
tyle=3D"font-size:11pt;font-family:Arial;color:#000000;background-color:tra=
nsparent;font-weight:400;font-style:normal;font-variant:normal;text-decorat=
ion:none;vertical-align:baseline;white-space:pre-wrap">,
=3D"font-size:11pt;font-family:Arial;color:#000000;background-color:transpa=
rent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:=
none;vertical-align:baseline;white-space:pre-wrap">h
ont-size:11pt;font-family:Arial;color:#000000;background-color:transparent;=
font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;=
vertical-align:baseline;white-space:pre-wrap"> rather than applying them in=
dividually is not just for convenience like macros in the Rubik=E2=80=99s C=
ube. It=E2=80=99s because of non-associativity. Since (state * (
n style=3D"font-size:11pt;font-family:Arial;color:#000000;background-color:=
transparent;font-weight:400;font-style:italic;font-variant:normal;text-deco=
ration:none;vertical-align:baseline;white-space:pre-wrap">ale=3D"font-size:11pt;font-family:Arial;color:#000000;background-color:trans=
parent;font-weight:400;font-style:normal;font-variant:normal;text-decoratio=
n:none;vertical-align:baseline;white-space:pre-wrap"> *
=3D"font-size:11pt;font-family:Arial;color:#000000;background-color:transpa=
rent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:=
none;vertical-align:baseline;white-space:pre-wrap">b
ont-size:11pt;font-family:Arial;color:#000000;background-color:transparent;=
font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;=
vertical-align:baseline;white-space:pre-wrap">)) may not equal ((state * span>nd-color:transparent;font-weight:400;font-style:italic;font-variant:normal;=
text-decoration:none;vertical-align:baseline;white-space:pre-wrap">a
=
lor:transparent;font-weight:400;font-style:normal;font-variant:normal;text-=
decoration:none;vertical-align:baseline;white-space:pre-wrap">) *
pan style=3D"font-size:11pt;font-family:Arial;color:#000000;background-colo=
r:transparent;font-weight:400;font-style:italic;font-variant:normal;text-de=
coration:none;vertical-align:baseline;white-space:pre-wrap">b
tyle=3D"font-size:11pt;font-family:Arial;color:#000000;background-color:tra=
nsparent;font-weight:400;font-style:normal;font-variant:normal;text-decorat=
ion:none;vertical-align:baseline;white-space:pre-wrap">), applying the expr=
ession (
0;background-color:transparent;font-weight:400;font-style:italic;font-varia=
nt:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap=
">a
kground-color:transparent;font-weight:400;font-style:normal;font-variant:no=
rmal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"> * =
ound-color:transparent;font-weight:400;font-style:italic;font-variant:norma=
l;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">b
n>color:transparent;font-weight:400;font-style:normal;font-variant:normal;tex=
t-decoration:none;vertical-align:baseline;white-space:pre-wrap">) as input =
can be different from applying
mily:Arial;color:#000000;background-color:transparent;font-weight:400;font-=
style:italic;font-variant:normal;text-decoration:none;vertical-align:baseli=
ne;white-space:pre-wrap">a
Arial;color:#000000;background-color:transparent;font-weight:400;font-style=
:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;wh=
ite-space:pre-wrap"> and then applying
;font-family:Arial;color:#000000;background-color:transparent;font-weight:4=
00;font-style:italic;font-variant:normal;text-decoration:none;vertical-alig=
n:baseline;white-space:pre-wrap">b
-family:Arial;color:#000000;background-color:transparent;font-weight:400;fo=
nt-style:normal;font-variant:normal;text-decoration:none;vertical-align:bas=
eline;white-space:pre-wrap">. If we only enter
ize:11pt;font-family:Arial;color:#000000;background-color:transparent;font-=
weight:400;font-style:italic;font-variant:normal;text-decoration:none;verti=
cal-align:baseline;white-space:pre-wrap">i
1pt;font-family:Arial;color:#000000;background-color:transparent;font-weigh=
t:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-a=
lign:baseline;white-space:pre-wrap">, =C2=A0
:11pt;font-family:Arial;color:#000000;background-color:transparent;font-wei=
ght:400;font-style:italic;font-variant:normal;text-decoration:none;vertical=
-align:baseline;white-space:pre-wrap">j
;font-family:Arial;color:#000000;background-color:transparent;font-weight:4=
00;font-style:normal;font-variant:normal;text-decoration:none;vertical-alig=
n:baseline;white-space:pre-wrap"> or
ont-family:Arial;color:#000000;background-color:transparent;font-weight:400=
;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:=
baseline;white-space:pre-wrap">h
amily:Arial;color:#000000;background-color:transparent;font-weight:400;font=
-style:normal;font-variant:normal;text-decoration:none;vertical-align:basel=
ine;white-space:pre-wrap"> individually in each step, we have only a 20% ch=
ance (48 out of 240 initial states) of solving it. For this reason, we high=
ly recommend trying at least
ly:Arial;color:#000000;background-color:transparent;font-weight:400;font-st=
yle:italic;font-variant:normal;text-decoration:none;vertical-align:baseline=
;white-space:pre-wrap">i
rial;color:#000000;background-color:transparent;font-weight:400;font-style:=
normal;font-variant:normal;text-decoration:none;vertical-align:baseline;whi=
te-space:pre-wrap">*
;color:#000000;background-color:transparent;font-weight:400;font-style:ital=
ic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-s=
pace:pre-wrap">h
r:#000000;background-color:transparent;font-weight:400;font-style:normal;fo=
nt-variant:normal;text-decoration:none;vertical-align:baseline;white-space:=
pre-wrap"> if you feel stuck. By doing so, you are embracing the essence of=
non-associativity.


=

pan style=3D"font-size:11pt;font-family:Arial;color:#000000;background-colo=
r:transparent;font-weight:400;font-style:normal;font-variant:normal;text-de=
coration:none;vertical-align:baseline;white-space:pre-wrap">To get a sense =
about how hard this puzzle is, and to try out the non-associative solving e=
xperience, Nan implemented it in Python as a proof of concept. We found it =
nontrivial and interesting, even when the space is as small as 240 elements=
. Here=E2=80=99s how you can also try it:

    :0pt;margin-bottom:0pt">
  1. nt-size:11pt;font-family:Arial;color:#000000;background-color:transparent;f=
    ont-weight:400;font-style:normal;font-variant:normal;text-decoration:none;v=
    ertical-align:baseline">

    m:0pt">ound-color:transparent;font-weight:400;font-style:normal;font-variant:norma=
    l;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">Instal=
    l Python, either 2.* or 3.*.

  2. tyle-type:decimal;font-size:11pt;font-family:Arial;color:#000000;background=
    -color:transparent;font-weight:400;font-style:normal;font-variant:normal;te=
    xt-decoration:none;vertical-align:baseline">

    top:0pt;margin-bottom:0pt">color:#000000;background-color:transparent;font-weight:400;font-style:norma=
    l;font-variant:normal;text-decoration:none;vertical-align:baseline;white-sp=
    ace:pre-wrap">Install numpy.

  3. tyle-type:decimal;font-size:11pt;font-family:Arial;color:#000000;background=
    -color:transparent;font-weight:400;font-style:normal;font-variant:normal;te=
    xt-decoration:none;vertical-align:baseline">

    top:0pt;margin-bottom:0pt">color:#000000;background-color:transparent;font-weight:400;font-style:norma=
    l;font-variant:normal;text-decoration:none;vertical-align:baseline;white-sp=
    ace:pre-wrap">Clone my repo:
    ub.com/nanma80/octonion" style=3D"text-decoration:none" target=3D"_blank"><=
    span style=3D"font-size:11pt;font-family:Arial;color:#000000;background-col=
    or:transparent;font-weight:400;font-style:normal;font-variant:normal;text-d=
    ecoration:none;vertical-align:baseline;white-space:pre-wrap"> style=3D"font-size:11pt;font-family:Arial;color:#1155cc;background-color:tr=
    ansparent;font-weight:400;font-style:normal;font-variant:normal;text-decora=
    tion:underline;vertical-align:baseline;white-space:pre-wrap">https://github=
    .com/nanma80/octonion

  4. e-type:decimal;font-size:11pt;font-family:Arial;color:#000000;background-co=
    lor:transparent;font-weight:400;font-style:normal;font-variant:normal;text-=
    decoration:none;vertical-align:baseline">

    :0pt;margin-bottom:0pt">or:#000000;background-color:transparent;font-weight:400;font-style:normal;f=
    ont-variant:normal;text-decoration:none;vertical-align:baseline;white-space=
    :pre-wrap">Run puzzle_python2.py or puzzle_python3.py depending on the Pyth=
    on version you installed.

  5. e-type:decimal;font-size:11pt;font-family:Arial;color:#000000;background-co=
    lor:transparent;font-weight:400;font-style:normal;font-variant:normal;text-=
    decoration:none;vertical-align:baseline">

    :0pt;margin-bottom:0pt">or:#000000;background-color:transparent;font-weight:400;font-style:normal;f=
    ont-variant:normal;text-decoration:none;vertical-align:baseline;white-space=
    :pre-wrap">Follow the instructions to solve it. The instruction is as same =
    as the description above.

  6. e-type:decimal;font-size:11pt;font-family:Arial;color:#000000;background-co=
    lor:transparent;font-weight:400;font-style:normal;font-variant:normal;text-=
    decoration:none;vertical-align:baseline">

    :0pt;margin-bottom:0pt">or:#000000;background-color:transparent;font-weight:400;font-style:normal;f=
    ont-variant:normal;text-decoration:none;vertical-align:baseline;white-space=
    :pre-wrap">Solve it, or enter q to quit.

yle=3D"font-weight:normal">

n-top:0pt;margin-bottom:0pt">l;color:#000000;background-color:transparent;font-weight:400;font-style:nor=
mal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-=
space:pre-wrap">About the solving experience: We think the puzzle is hard, =
partly because the h move is unintuitive. We observed that

    yle=3D"margin-top:0pt;margin-bottom:0pt">
  • e-type:disc;font-size:11pt;font-family:Arial;color:#000000;background-color=
    :transparent;font-weight:400;font-style:normal;font-variant:normal;text-dec=
    oration:none;vertical-align:baseline">

    t;margin-bottom:0pt">#000000;background-color:transparent;font-weight:400;font-style:italic;font=
    -variant:normal;text-decoration:none;vertical-align:baseline;white-space:pr=
    e-wrap">i
    00;background-color:transparent;font-weight:400;font-style:normal;font-vari=
    ant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wra=
    p">,
    ackground-color:transparent;font-weight:400;font-style:italic;font-variant:=
    normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">j=
    ound-color:transparent;font-weight:400;font-style:normal;font-variant:norma=
    l;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">, or <=
    /span>und-color:transparent;font-weight:400;font-style:italic;font-variant:normal=
    ;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">h>olor:transparent;font-weight:400;font-style:normal;font-variant:normal;text=
    -decoration:none;vertical-align:baseline;white-space:pre-wrap"> applied ind=
    ividually is always a 4-cycle.

  • -style-type:disc;font-size:11pt;font-family:Arial;color:#000000;background-=
    color:transparent;font-weight:400;font-style:normal;font-variant:normal;tex=
    t-decoration:none;vertical-align:baseline">

    op:0pt;margin-bottom:0pt">olor:#000000;background-color:transparent;font-weight:400;font-style:normal=
    ;font-variant:normal;text-decoration:none;vertical-align:baseline;white-spa=
    ce:pre-wrap">applying (
    al;color:#000000;background-color:transparent;font-weight:400;font-style:it=
    alic;font-variant:normal;text-decoration:none;vertical-align:baseline;white=
    -space:pre-wrap">i
    lor:#000000;background-color:transparent;font-weight:400;font-style:normal;=
    font-variant:normal;text-decoration:none;vertical-align:baseline;white-spac=
    e:pre-wrap"> *
    :#000000;background-color:transparent;font-weight:400;font-style:italic;fon=
    t-variant:normal;text-decoration:none;vertical-align:baseline;white-space:p=
    re-wrap">j
    000;background-color:transparent;font-weight:400;font-style:normal;font-var=
    iant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wr=
    ap">) *
    0;background-color:transparent;font-weight:400;font-style:italic;font-varia=
    nt:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap=
    ">h
    kground-color:transparent;font-weight:400;font-style:normal;font-variant:no=
    rmal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"> is=
    a 3-cycle.

  • nt-size:11pt;font-family:Arial;color:#000000;background-color:transparent;f=
    ont-weight:400;font-style:normal;font-variant:normal;text-decoration:none;v=
    ertical-align:baseline">

    m:0pt">ound-color:transparent;font-weight:400;font-style:normal;font-variant:norma=
    l;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">applyi=
    ng (
    ckground-color:transparent;font-weight:400;font-style:italic;font-variant:n=
    ormal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">j<=
    /span>und-color:transparent;font-weight:400;font-style:normal;font-variant:normal=
    ;text-decoration:none;vertical-align:baseline;white-space:pre-wrap"> * an>-color:transparent;font-weight:400;font-style:italic;font-variant:normal;te=
    xt-decoration:none;vertical-align:baseline;white-space:pre-wrap">i
    pan style=3D"font-size:11pt;font-family:Arial;color:#000000;background-colo=
    r:transparent;font-weight:400;font-style:normal;font-variant:normal;text-de=
    coration:none;vertical-align:baseline;white-space:pre-wrap">) *
    n style=3D"font-size:11pt;font-family:Arial;color:#000000;background-color:=
    transparent;font-weight:400;font-style:italic;font-variant:normal;text-deco=
    ration:none;vertical-align:baseline;white-space:pre-wrap">h
    le=3D"font-size:11pt;font-family:Arial;color:#000000;background-color:trans=
    parent;font-weight:400;font-style:normal;font-variant:normal;text-decoratio=
    n:none;vertical-align:baseline;white-space:pre-wrap"> is a 6-cycle.
    <=
    /p>

  • amily:Arial;color:#000000;background-color:transparent;font-weight:400;font=
    -style:normal;font-variant:normal;text-decoration:none;vertical-align:basel=
    ine">

    =3D"font-size:11pt;font-family:Arial;color:#000000;background-color:transpa=
    rent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:=
    none;vertical-align:baseline;white-space:pre-wrap">(
    ont-size:11pt;font-family:Arial;color:#000000;background-color:transparent;=
    font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;=
    vertical-align:baseline;white-space:pre-wrap">i
    size:11pt;font-family:Arial;color:#000000;background-color:transparent;font=
    -weight:400;font-style:normal;font-variant:normal;text-decoration:none;vert=
    ical-align:baseline;white-space:pre-wrap">*
    :11pt;font-family:Arial;color:#000000;background-color:transparent;font-wei=
    ght:400;font-style:italic;font-variant:normal;text-decoration:none;vertical=
    -align:baseline;white-space:pre-wrap">j
    ;font-family:Arial;color:#000000;background-color:transparent;font-weight:4=
    00;font-style:normal;font-variant:normal;text-decoration:none;vertical-alig=
    n:baseline;white-space:pre-wrap">) *
    ont-family:Arial;color:#000000;background-color:transparent;font-weight:400=
    ;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:=
    baseline;white-space:pre-wrap">h
    amily:Arial;color:#000000;background-color:transparent;font-weight:400;font=
    -style:normal;font-variant:normal;text-decoration:none;vertical-align:basel=
    ine;white-space:pre-wrap"> is different from
    e:11pt;font-family:Arial;color:#000000;background-color:transparent;font-we=
    ight:400;font-style:italic;font-variant:normal;text-decoration:none;vertica=
    l-align:baseline;white-space:pre-wrap">i
    pt;font-family:Arial;color:#000000;background-color:transparent;font-weight=
    :400;font-style:normal;font-variant:normal;text-decoration:none;vertical-al=
    ign:baseline;white-space:pre-wrap">* (
    font-family:Arial;color:#000000;background-color:transparent;font-weight:40=
    0;font-style:italic;font-variant:normal;text-decoration:none;vertical-align=
    :baseline;white-space:pre-wrap">j
    -family:Arial;color:#000000;background-color:transparent;font-weight:400;fo=
    nt-style:normal;font-variant:normal;text-decoration:none;vertical-align:bas=
    eline;white-space:pre-wrap">*
    ily:Arial;color:#000000;background-color:transparent;font-weight:400;font-s=
    tyle:italic;font-variant:normal;text-decoration:none;vertical-align:baselin=
    e;white-space:pre-wrap">h
    rial;color:#000000;background-color:transparent;font-weight:400;font-style:=
    normal;font-variant:normal;text-decoration:none;vertical-align:baseline;whi=
    te-space:pre-wrap">), verifying non-associativity among three generators.span>

">color:transparent;font-weight:400;font-style:normal;font-variant:normal;tex=
t-decoration:none;vertical-align:baseline;white-space:pre-wrap">If you know=
any method to illustrate octonion multiplication, please let us know and w=
e can improve this puzzle.

l">

0pt">nd-color:transparent;font-weight:400;font-style:normal;font-variant:normal;=
text-decoration:none;vertical-align:baseline;white-space:pre-wrap">We are a=
lso working on non-associative puzzles based on loops with more states and =
more =E2=80=9Cintuitive=E2=80=9D moves. We are experimenting something base=
d on a 2x2x2 cube and a modified construction of =E2=80=9CM(G,2)=E2=80=9D <=
/span>p#Examples" style=3D"text-decoration:none" target=3D"_blank">"font-size:11pt;font-family:Arial;color:#1155cc;background-color:transparen=
t;font-weight:400;font-style:normal;font-variant:normal;text-decoration:und=
erline;vertical-align:baseline;white-space:pre-wrap">here
tyle=3D"font-size:11pt;font-family:Arial;color:#000000;background-color:tra=
nsparent;font-weight:400;font-style:normal;font-variant:normal;text-decorat=
ion:none;vertical-align:baseline;white-space:pre-wrap">. We don=E2=80=99t h=
ave a prototype yet but may discuss it later in another email.

>

yle=3D"margin-top:0pt;margin-bottom:0pt">-family:Arial;color:#000000;background-color:transparent;font-weight:400;fo=
nt-style:normal;font-variant:normal;text-decoration:none;vertical-align:bas=
eline;white-space:pre-wrap">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

=


style=3D"margin-top:0pt;margin-bottom:0pt">nt-family:Arial;color:#000000;background-color:transparent;font-weight:400;=
font-style:normal;font-variant:normal;text-decoration:none;vertical-align:b=
aseline;white-space:pre-wrap">This is a long email. We only have some ideas=
and a proof of concept. We'd like to make more polished non-associativ=
e puzzles.

  • =3D"ltr" style=3D"list-style-type:disc;font-size:11pt;font-family:Arial;col=
    or:#000000;background-color:transparent;font-weight:400;font-style:normal;f=
    ont-variant:normal;text-decoration:none;vertical-align:baseline">

    ltr" style=3D"margin-top:0pt;margin-bottom:0pt">pt;font-family:Arial;color:#000000;background-color:transparent;font-weight=
    :400;font-style:normal;font-variant:normal;text-decoration:none;vertical-al=
    ign:baseline;white-space:pre-wrap">Do you know a good way to illustrate oct=
    onions, or integral octonions?

  • -style-type:disc;font-size:11pt;font-family:Arial;color:#000000;background-=
    color:transparent;font-weight:400;font-style:normal;font-variant:normal;tex=
    t-decoration:none;vertical-align:baseline">

    op:0pt;margin-bottom:0pt">olor:#000000;background-color:transparent;font-weight:400;font-style:normal=
    ;font-variant:normal;text-decoration:none;vertical-align:baseline;white-spa=
    ce:pre-wrap">Can you think of other non-associative rules for puzzles?n>

<=
span style=3D"font-size:11pt;font-family:Arial;color:#000000;background-col=
or:transparent;font-weight:400;font-style:normal;font-variant:normal;text-d=
ecoration:none;vertical-align:baseline;white-space:pre-wrap">Please leave c=
omments or suggestions!


yle=3D"margin-top:0pt;margin-bottom:0pt">-family:Arial;color:#000000;background-color:transparent;font-weight:400;fo=
nt-style:normal;font-variant:normal;text-decoration:none;vertical-align:bas=
eline;white-space:pre-wrap">Nan and Roice


_-7834067320491410747yui-cursor">




=20=20=20=20=20

=20=20=20=20







=20=20








--0000000000004c0f5e05771bc3e2--




From: mananself@gmail.com
Date: 30 Sep 2018 22:19:04 +0000
Subject: Re: [MC4D] Non-associative "twisty" puzzles




From: mananself@gmail.com
Date: Sun, 30 Sep 2018 23:47:58 +0100
Subject: Re: [MC4D] Non-associative "twisty" puzzles



--000000000000c3adbb05771e7bce
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I don't know of a way to construct the conjugate reliably, although there
must be some way.

My 'method' currently involves understanding i and j, and using either h,
i*h, j*h, or i*j*h (and inverses) when I can no longer progress, or
recognise a pattern.

As another note, it turns out the moveset (i,j,h,i*h,j*h) and their
inverses is sufficient to solve the puzzle without any extra composition.
Thanks to this I was able to write a solver for the puzzle, and I was able
to generate all 240 states from solved in only 6 moves. This kind of
removes the non-associative property of the puzzle, and I wonder if this is
always possible with any non-associative puzzle. Perhaps solving with this
moveset, or some other, larger one would be easier.

And yeah, I should have :D

~Luna

On Sun, 30 Sep 2018 at 23:21, mananself@gmail.com [4D_Cubing] <
4D_Cubing@yahoogroups.com> wrote:

>
>
> Hi Luna,
>
> I'm glad that you find it interesting. I'm curious about your way to
> reliably solving it, even though you don't call it a method.
>
> Thank you for adding the power, conj, inv methods. I believe we should
> only help users when they know how to use generators and multiplication t=
o
> get the outputs of these methods.
>
> It's easy to see that the power method a**n is easily constructible from
> the generators, because one can keep multiplying "a" n times. I think inv
> is probably constructible, because I guess one can prove any element
> repeated enough times can eventually go to identity. And repeating one le=
ss
> time gives us the inverse. But one may explore for a while before finding
> it out.
>
> Is there an easy way to construct conjugate of any expression?
>
> We also need to clarify the order of operation when we introduce the new
> operations.
>
> Feel free to raise a pull request if you think your change is complete. I
> welcome refactoring as well.
>
> I actually see this Python implementation as a proof of concept. If we
> find a better and intuitive representation, we should switch to that. We'=
ll
> revamp the UI anyway. That's why I didn't pay much attention on how thing=
s
> look.
>
> Luna, I was surprised that you didn't color the winning message. Haha.
>
> Nan
>=20
>

--000000000000c3adbb05771e7bce
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I don't know of a way to construct the conjugate =
reliably, although there must be some way.

My '=
;method' currently involves understanding i and j, and using either h, =
i*h, j*h, or i*j*h (and inverses) when I can no longer progress, or recogni=
se a pattern.

As another note, it turns out the mo=
veset (i,j,h,i*h,j*h) and their inverses is sufficient to solve the puzzle =
without any extra composition. Thanks to this I was able to write a solver =
for the puzzle, and I was able to generate all 240 states from solved in on=
ly 6 moves. This kind of removes the non-associative property of the puzzle=
, and I wonder if this is always possible with any non-associative puzzle. =
Perhaps solving with this moveset, or some other, larger one would be easie=
r.

And yeah, I should have :D

=
~Luna

O=
n Sun, 30 Sep 2018 at 23:21, mananse=
lf@gmail.com
[4D_Cubing] <m">4D_Cubing@yahoogroups.com> wrote:
mail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-l=
eft:1ex">












=20

=C2=A0







=20=20=20=20=20=20
=20=20=20=20=20=20

Hi Luna,


I'm glad that you find it interest=
ing. I'm curious about your way to reliably solving it, even though you=
don't call it a method.

Thank you for adding =
the power, conj, inv methods. I believe we should only help users when they=
know how to use generators and multiplication to get the outputs of these =
methods.

It's easy to see that the power metho=
d a**n is easily constructible from the generators, because one can keep mu=
ltiplying "a" n times. I think inv is probably constructible, bec=
ause I guess one can prove any element repeated enough times can eventually=
go to identity. And repeating one less time gives us the inverse. But one =
may explore for a while before finding it out.

Is =
there an easy way to construct conjugate of any expression?

<=
/div>
We also need to clarify the order of operation when we introduce =
the new operations.

Feel free to raise a pull requ=
est if you think your change is complete. I welcome refactoring as well.iv>

I actually see this Python implementation as a proof=
of concept. If we find a better and intuitive representation, we should sw=
itch to that. We'll revamp the UI anyway. That's why I didn't p=
ay much attention on how things look.

Luna, I was =
surprised that you didn't color the winning message. Haha.
r>
Nan




=20=20=20=20=20

=20=20=20=20







=20=20








--000000000000c3adbb05771e7bce--




From: mananself@gmail.com
Date: 30 Sep 2018 16:32:19 -0700
Subject: Re: [MC4D] Non-associative "twisty" puzzles




From: mananself@gmail.com
Date: Mon, 1 Oct 2018 01:02:29 +0100
Subject: Re: [MC4D] Non-associative "twisty" puzzles



--000000000000160e2a05771f86da
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

That's interesting. Adding i*h and j*h felt more natural though, and makes
shorter solutions, I'd presume. I wonder if adding i*j*h would make it even
shorter, and what the smallest moveset with a certain God's number is. It's
6 for (i, j, h, i*h, j*h), but is there a set of five (or less) moves for
which God's number is less than 6?

What I meant was, the puzzle formed from (i, j, h, i*h, j*h) ONLY is
associative, as you can no longer compose the moves, only apply them
sequentially. Therefore, you can solve it without worrying about
associativity.

~Luna

On Mon, 1 Oct 2018, 00:32 mananself@gmail.com [4D_Cubing], <
4D_Cubing@yahoogroups.com> wrote:

>
>
> I find that you only need to expand the generators by one, adding only
> (i*h) to {i, j, h}, and you can rely on individual generators in every st=
ep
> to solve the puzzle. The space of the puzzle is only 240 after all.
>
> I think of such prepared expressions like this as "macros". We can rely o=
n
> native generators and macros in each step to solve the puzzle. I think if
> we have a larger non-associative puzzle, we need to prepare more "macros"=
.
> But I don't think macros removes the non-associativity of the puzzle.
>
> Nan
>=20
>

--000000000000160e2a05771f86da
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

That's interesting. Adding i*h and j*h felt more natu=
ral though, and makes shorter solutions, I'd presume. I wonder if addin=
g i*j*h would make it even shorter, and what the smallest moveset with a ce=
rtain God's number is. It's 6 for (i, j, h, i*h, j*h), but is there=
a set of five (or less) moves for which God's number is less than 6?iv dir=3D"auto">
What I meant was, the puzzle fo=
rmed from (i, j, h, i*h, j*h) ONLY is associative, as you can no longer com=
pose the moves, only apply them sequentially. Therefore, you can solve it w=
ithout worrying about associativity.

dir=3D"auto">~Luna

r">On Mon, 1 Oct 2018, 00:32 mananse=
lf@gmail.com
[4D_Cubing], <om">4D_Cubing@yahoogroups.com> wrote:
gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-=
left:1ex">












=20

=C2=A0







=20=20=20=20=20=20
=20=20=20=20=20=20

I find that you only need to expand the generators by one, adding =
only (i*h) to {i, j, h}, and you can rely on individual generators in every=
step to solve the puzzle.=C2=A0The spa=
ce of the puzzle is only 240 after all.


I th=
ink of such prepared expressions like this as "macros". We can re=
ly on native generators and macros in each step to solve the puzzle.=C2=A0<=
span style=3D"word-spacing:normal">I think if we have a larger non-associat=
ive puzzle, we need to prepare more "macros". But I don't thi=
nk macros removes the non-associativity of the puzzle.
an style=3D"word-spacing:normal">
spacing:normal">Nan




=20=20=20=20=20

=20=20=20=20







=20=20








--000000000000160e2a05771f86da--




left:solid #000000 1pt;border-right:solid #000000 1pt;border-bottom:solid #=
000000 1pt;border-top:solid #000000 1pt;vertical-align:top;padding:5pt 5pt =
5pt 5pt">

yle=3D"font-size:11pt;font-family:Arial;color:#222222;background-color:tran=
sparent;font-weight:400;font-style:normal;font-variant:normal;text-decorati=
on:none;vertical-align:baseline;white-space:pre-wrap">Number System
<=
/p>

00 1pt;border-bottom:solid #000000 1pt;border-top:solid #000000 1pt;vertica=
l-align:top;padding:5pt 5pt 5pt 5pt">

;margin-bottom:0pt">222222;background-color:transparent;font-weight:400;font-style:normal;font-=
variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre=
-wrap">Dimension

border-right:solid #000000 1pt;border-bottom:solid #000000 1pt;border-top:s=
olid #000000 1pt;vertical-align:top;padding:5pt 5pt 5pt 5pt">

style=3D"margin-top:0pt;margin-bottom:0pt">ont-family:Arial;color:#222222;background-color:transparent;font-weight:400=
;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:=
baseline;white-space:pre-wrap">Properties

000000 1pt;border-bottom:solid #000000 1pt;border-top:solid #000000 1pt;ver=
tical-align:top;padding:5pt 5pt 5pt 5pt">

:0pt;margin-bottom:0pt">g/wiki/Real_number" style=3D"text-decoration:none" target=3D"_blank">style=3D"font-size:11pt;font-family:Arial;color:#1155cc;background-color:tr=
ansparent;font-weight:400;font-style:normal;font-variant:normal;text-decora=
tion:underline;vertical-align:baseline;white-space:pre-wrap">real numbersspan>

olid #000000 1pt;border-bottom:solid #000000 1pt;border-top:solid #000000 1=
pt;vertical-align:top;padding:5pt 5pt 5pt 5pt">

in-top:0pt;margin-bottom:0pt">al;color:#222222;background-color:transparent;font-weight:400;font-style:no=
rmal;font-variant:normal;text-decoration:none;vertical-align:baseline;white=
-space:pre-wrap">1

t;border-right:solid #000000 1pt;border-bottom:solid #000000 1pt;border-top=
:solid #000000 1pt;vertical-align:top;padding:5pt 5pt 5pt 5pt">

r" style=3D"margin-top:0pt;margin-bottom:0pt">;font-family:Arial;color:#222222;background-color:transparent;font-weight:4=
00;font-style:normal;font-variant:normal;text-decoration:none;vertical-alig=
n:baseline;white-space:pre-wrap">divisible, associative, commutative, order=
able

solid #000000 1pt;border-right:solid #000000 1pt;border-bottom:solid #00000=
0 1pt;border-top:solid #000000 1pt;vertical-align:top;padding:5pt 5pt 5pt 5=
pt">

ollow" href=3D"https://en.wikipedia.org/wiki/Complex_number" style=3D"text-=
decoration:none" target=3D"_blank">y:Arial;color:#1155cc;background-color:transparent;font-weight:400;font-sty=
le:normal;font-variant:normal;text-decoration:underline;vertical-align:base=
line;white-space:pre-wrap">complex numbers

border-left:solid #000000 1pt;border-right:solid #000000 1pt;border-bottom:=
solid #000000 1pt;border-top:solid #000000 1pt;vertical-align:top;padding:5=
pt 5pt 5pt 5pt">

<=
span style=3D"font-size:11pt;font-family:Arial;color:#222222;background-col=
or:transparent;font-weight:400;font-style:normal;font-variant:normal;text-d=
ecoration:none;vertical-align:baseline;white-space:pre-wrap">2

td>
t;border-bottom:solid #000000 1pt;border-top:solid #000000 1pt;vertical-ali=
gn:top;padding:5pt 5pt 5pt 5pt">

in-bottom:0pt">2;background-color:transparent;font-weight:400;font-style:normal;font-varia=
nt:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap=
">divisible, associative, commutative

00 1pt;border-bottom:solid #000000 1pt;border-top:solid #000000 1pt;vertica=
l-align:top;padding:5pt 5pt 5pt 5pt">

;margin-bottom:0pt">ki/Quaternion" style=3D"text-decoration:none" target=3D"_blank">=3D"font-size:11pt;font-family:Arial;color:#1155cc;background-color:transpa=
rent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:=
underline;vertical-align:baseline;white-space:pre-wrap">quaternions
<=
/a>

000000 1pt;border-bottom:solid #000000 1pt;border-top:solid #000000 1pt;ver=
tical-align:top;padding:5pt 5pt 5pt 5pt">

:0pt;margin-bottom:0pt">or:#222222;background-color:transparent;font-weight:400;font-style:normal;f=
ont-variant:normal;text-decoration:none;vertical-align:baseline;white-space=
:pre-wrap">4

er-right:solid #000000 1pt;border-bottom:solid #000000 1pt;border-top:solid=
#000000 1pt;vertical-align:top;padding:5pt 5pt 5pt 5pt">

le=3D"margin-top:0pt;margin-bottom:0pt">family:Arial;color:#222222;background-color:transparent;font-weight:400;fon=
t-style:normal;font-variant:normal;text-decoration:none;vertical-align:base=
line;white-space:pre-wrap">divisible, associative

:solid #000000 1pt;border-bottom:solid #000000 1pt;border-top:solid #000000=
1pt;vertical-align:top;padding:5pt 5pt 5pt 5pt">

rgin-top:0pt;margin-bottom:0pt">pedia.org/wiki/Octonion" style=3D"text-decoration:none" target=3D"_blank"><=
span style=3D"font-size:11pt;font-family:Arial;color:#1155cc;background-col=
or:transparent;font-weight:400;font-style:normal;font-variant:normal;text-d=
ecoration:underline;vertical-align:baseline;white-space:pre-wrap">octonions=

:solid #000000 1pt;border-bottom:solid #000000 1pt;border-top:solid #000000=
1pt;vertical-align:top;padding:5pt 5pt 5pt 5pt">

rgin-top:0pt;margin-bottom:0pt">rial;color:#222222;background-color:transparent;font-weight:400;font-style:=
normal;font-variant:normal;text-decoration:none;vertical-align:baseline;whi=
te-space:pre-wrap">8

1pt;border-right:solid #000000 1pt;border-bottom:solid #000000 1pt;border-t=
op:solid #000000 1pt;vertical-align:top;padding:5pt 5pt 5pt 5pt">

ltr" style=3D"margin-top:0pt;margin-bottom:0pt">pt;font-family:Arial;color:#222222;background-color:transparent;font-weight=
:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-al=
ign:baseline;white-space:pre-wrap">divisible