User blog:Rgetar/Shellcore notation

This is ordinal notation I made up today.

Strings
Let "string" is sequence of natural number of ordinals.

Strings correspond to ordinals.

Ordinals in strings are written in square brackets.

If string contains 0 ordinals, then it is empty string, and it is designated as empty string.

If ordinals in string are written also as strings, then this notation contains only 2 symbols: "[", "]".

Shell and core
Shell of string s is longest string S such as s = SCS, where C is string.

Note: length of string is number of ordinals in this string. If these ordinals are also written as strings, then ordinals within these strings are not counted.

Core of string s is string C such as s = SCS, where S is shell of s.

Example:


 * s = [0][0][0][1][0][1][0][1][0][1][0][0][0][0][1][0]


 * shell(s) = [0][0][0][1][0]


 * core(s) = [1][0][1][0][1][0]

(Note: [0] is not shell of s, since [0][0][0][1][0] is longer: it consists of 5 ordinals, and [0] consists of 1 ordinal).

Naked strings
Naked string s is string, which shell is empty string:


 * shell(s) = empty string


 * core(s) = s

Comparison of empty and non-empty strings
Empty string is less than all other strings.

(Empty string corresponds to least ordinal 0).

Root of naked string
Root of naked string s is s:


 * root(s) = s

Comparison of two non-empty naked strings
Note: in comparison algorythms in this blog each next step is executed only if result is not found in previous steps.

Naked string with larger largest ordinal is larger.

If largest ordinals are equal, then string with larger number of largest ordinals is larger.

If numbers of largest ordinals are equal, then string with more left (from right edge) first right largest ordinal is larger.

If first right largest ordinals are located in the same place, then string with more left (from right edge) second right largest ordinal is larger.

If second right largest ordinals are located in the same place, then string with more left (from right edge) third right largest ordinal is larger.

...

If all largest ordinals are located in the same places, then string with second largest ordinal is larger.

If second largest ordinals are equal, then string with larger number of second largest ordinals is larger.

If numbers of second largest ordinals are equal, then string with more left (from right edge) first right second largest ordinal is larger.

If first right second largest ordinals are located in the same place, then string with more left (from right edge) second right second largest ordinal is larger.

If second right second largest ordinals are located in the same place, then string with more left (from right edge) third right second largest ordinal is larger.

...

If all second largest ordinals are located in the same places, then string with third largest ordinal is larger.

...

Root of not naked string
For not naked string s

If root(shell(s)) ≥ root(core(s)) then root(s) = root(shell(s))

If root(shell(s)) < root(core(s)) then root(s) = root(core(s))

Comparison of two strings, at least one of which is not naked
String with larger root is larger.

If roots are equal, then string with larger shell is larger.

If shells are equal, then string with larger core is larger.

Note: here is mutual recursion, that is comparison is defined using root, and root is defined using comparison. But eventually we come to naked strings, and for naked strings comparison and root are defined without recursion (not counting the case when we designate ordinals in strings also as strings).

Correspondence to ordinals
Strings are enumerated using ordinals in increasing order, beginning from 0.

Limit
What is limit of this notation (if we use only "[" and "]")? I do not know. Last few months I made up similar notations (I did not publish them), and theirs limit was ε0. But this notation is more complicated, and I am not sure, what is its limit, since I reached only up to ω2 + 6.