**WARNING**: This page has SEVEN volumes and THIRTY ONE chapters plus one chapter.

# Vol.1 Simple Arrays

## Chapter 1 Simple

(Note: When I said I don't understand {1,0}, the original site split this chapter into 7 sections.)

Linear array notation in AAN looks like this:

a(a,b,c,...,z)x[y]

x[y] is optional.

The outermost a shows that it is AAN, so every AAN starts with an a. Also, x is a symbol, not a number. so a(3,3)x[4] and a(3,3) are legal but a(3,3)2[4] is not.

This is how to solve linear AAN:

- If the entry has x[y] and y is greater than 1:
- (a,b #)x[y] = a(a,a(a,b #)x[y-1] #)
- In English, change b into the original array, y decreased by one.

- If the entry has x[y] and y is 1:
- a(#)x[1] = a(#)
- In English, just take out x[1].

- If the array end with 0) (with no x[y]):
- a(# 0) = a(#)
- In English, tailing zero can be eliminated.

- If the array has less than two entries:
- a(a,b)=a*b
- a(a)=a
- In English, if the entry has two numbers, the product is the answer. If the entry has one number, the number is the answer.

- If the third entry (from the left) is not zero and the entry has no x[y]:
- a(a,b,c #) = a(a,b,c-1 #)x[b]
- In English, decrease the third array by one, and add "x[b]" to the right.

- Else (The array must not have x[y] and the third entry must be zero):
- Find the third non-zero number from the left.
- Decrease it by one, and change the previous entry into the second entry.

For example:

a(n,1,1) =a(n,1,0)x[1] (by the fifth rule) =a(n,1,0) (by the second rule) =a(n,1) (by the third rule) =a (by the fourth rule) a(n,2,1) =a(n,2,0)x[2] =a(n, a(n,2,0)x[1] ,0 ) =a(n a(n,2,0)) =a(n,a(n,2)) =a(n,2n) =2n^2 a(4,3,0,0,1) =a(4,3,0,3,0) =a(4,3,0,3) =a(4,3,3,2) =a(4,3,2,2)x[3] =a(4, a(4,3,2,2)x[2] ,2,2) =a(4, a(4, a(4,3,2,2)x[1] ,2,2) ,2,2) =a(4, a(4, a(4,3,2,2) ,2,2) ,2,2) =a(4, a(4, a(4,3,1,2)x[2] ,2,2) ,2,2) =a(4, a(4, a(4, a(4,3,1,2)x[1] ,1,2) ,2,2) ,2,2) =a(4, a(4, a(4, a(4,3,1,2) ,1,2) ,2,2) ,2,2) =... (It will be super long)

## Chapter 2 Extended

Now the {} is nested. You might think tetrational array in chapter 2 is too early, but it's just nested. It's just . We have just started feeling AAN. (Note that this page is still shorter than 4.2.2 in Sbiis Saibian's blog)

Now, instead of comma, you can put any separators, but the first two separators must be commas. **Separators** are these things:

, //a comma {n} //a number in a brace {a A b B c C ... Y z} //small letters are numbers and capital letters are separators

{0} is equivalent to a comma. Here's some example of separators:

{0} {3,3,4} {2,2,{0,0,2},0,3} {0,0,{0,{0,1},1},1}

As you might know, this looks like BEAF.

Actually, how to solve AAN is quite the same as Simple AAN. However, since Simple does not support separators, we need rules for that.

I'll start with "else" in the last rule of Simple.

- Else (The array must not have x[y] and the third entry must be zero):
- Find the third non-zero number(excluding numbers in separator, count the outermost numbers only) from the left.
- First of all decrease that number by one.

- If there is a comma before that number:
- Change the previous entry into the second entry.

- If there is a separator {x #} (x is not zero) before that number:
- Define S_0=1 and S_{n}=0{x-1 #}S_{n-1} (as the concatenation of strings).
- Replace the previous entry(it must be a zero) with S_b. b is the second entry in whole array from the left.

- If there is a separator {0 #} (x is not zero) before that number:
- Define R={0 #}.
- Replace the previous entry with "0 R 1".
- Continue the process within R, as if it were a(a,b,0 #). a and b are from the original array.

This rule is a bit complicated, so I will give you some examples:

a(3,3,0{1}1) Second rule applied. S_3=0{0}S_2=0{0}0{0}S_1=0{0}0{0}0{0}S_0=0{0}0{0}0{0}1, so a(3,3,0{0}1)=a(3,3,0{0}0{0}0{0}1{0}0)=a(3,3,0,0,0,1,0)=a(3,3,0,0,0,1) a(3,2,0{1,2}2) Second rule applied. S_2=0{0,2}S_1=0{0,2}0{0,2}S_0=0{0,2}0{0,2}1 a(3,2,0{1,2},2)=a(3,2,0{0,2}0{0,2}1{1,2},1) a(3,2,0{0,2}2) Third rule applied. R={0,2} and the array becomes a(3,2,0{0,2}1{0,2}1). Then consider the array a(3,2,0,2) and it becomes a(3,2,2,1), so the final array will be a(3,2,0{2,1}1{0,2}1).

# Vol.2 Expanding Arrays

## Chapter 3 Primitive

Now you can have multi-layer braces like {{3}}. How should we deal with that?

(note: you can write {{...{{n}}...}} /w m braces as {n}^{m}.)

I'll start with "else" again, and write changes in green.

- Else (The array must not have x[y] and the third entry must be zero):
- Find the third non-zero number(excluding numbers in separator, count the outermost numbers only) from the left.
- First of all decrease that number by one.

- If there is a comma before that number:
- Change the previous entry into the second entry.

- If there is a separator {x #}
^{n}(x is not zero) before that number:- Define S_0=1 and S_{n}=0{x-1 #}
^{n}S_{n-1} (as the concatenation of strings). - Replace the previous entry(it must be a zero) with S_b. b is the second entry in whole array from the left.

- Define S_0=1 and S_{n}=0{x-1 #}
- If there is {0}
^{n}in the left:- Define S_0=0 and S_{n}=0{S_{n-1}}
^{n-1}1 (as the concatenation of strings). - Replace the previous entry(it must be a zero) with S_b. b is the second entry in whole array from the left.

- Define S_0=0 and S_{n}=0{S_{n-1}}
- If there is a separator {0 #} (x is not zero) before that number:
- Define R={0 #}.
- Replace the previous entry with "0 R 1".
- Continue the process within R, as if it were a(a,b,0 #). a and b are from the original array.

(The official site does not write exactly for {{2}}, but I must interpret like this.)

Examples:WIP

## Chapter 4 Expanding

Before moving on Chapter 4, we need to learn how to compare separators.