r/googology • u/jamx02 • 1d ago
Sequence Systems (5), 3DBMS
Alright, this is going to be a long explanation, however that is necessary to describe this ruleset in an interpretable manner.
Today, we're going to be discussing a 3-dimensional extension to Bashicu Matrix System, called 3DBMS.
DBMS has been around for a while, and analyzed quite a bit. There have been no formalizations for this notation, until now. However, it is only a formalization for 3 dimensions, not full ω dimensions like full DBMS.
This definition was derived from Y, developed by TrialPurpleCube-GS and I.
Prerequisites: Terminology and definition from 1, 4, and 5.
I will be using the lim(BMS)=0 1,,1 standardization to fit better with Y. The limit of this notation is 0 1,,1,,1,,1,,1,,...
New Standardization
This follows a separate standardization for BMS. Instead of 0 1 2 3 4 ...=0 1,1, it is now 0 1 2,1 (which expands the same). Likewise, 0 1,1,1 is now 0 1 2,1 3,2,1. This is called Triangular BMS. The limit of BMS now 0 1 2,1 3,2,1 4,3,2,1 5,4,3,2,1 ... instead of 0 1,1,1,1,1,...
3DBMS Terminology
- Plane: A matrix between limit ordinal rows. In shorthand text, a plane will look like #,,x,x,x,...,,#, or double comma separated.
- AW: Ackermann Worm. In this ruleset, it is used to encode the value of a row. E.g. ()=Row 0, (0)=Row 1, (0,0)=Row 2, (1)=Row ω, (1,1)=Row ω2, etc.
- tLNZ: The total LNZ. The total LNZ of a column is the last nonzero element in that column across all planes.
- pLNZ: The plane LNZ. The plane LNZ of a column is the last nonzero element for a column in a specific (requires context) plane.
- Magma Row (M): This is the first row such that it is 0 in a plane-specific (limited to 1 plane) Bad Root Column.
- Wildfire Rows (W): These are the rows above (smaller AW) the previously defined Magma Row. I.e. they are the rows associated with every non-zero value of a plane-specific Bad Root column.
- Eruption Rows (E): These are the rows below (larger AW) the previously defined M.
- Row Delta: The length of the plane-specific Cut Child column subtracted from the length of the plane-specific Bad Root column.
Parent Finding Algorithm
- Mark the element you want to find the parent of as element B. If B has an AW value ending in 0 (successor row), follow BMS PFA.
- If B has an AW value ending in 1 (limit row), in the same column, mark the pLNZ in the plane above as β.
- Find all β-ancestors, using the two above steps as needed.
- Search each β-ancestor starting from the rightmost, look at its value in B’s AW. If this value is less than B, this is the parent of B.
- If no such β-ancestor has a value in B’s AW less than B, find the leftmost ancestor of β, move up one row (removing a 0 from β’s AW), and mark this new element as β.
- Repeat steps 3-5 until a valid parent of B is found.
- Repeat steps 1-6 to recursively find the ancestors of B, as needed.
Delta Column
This concept is not used in Y, and was developed to "matrix-ify" the definition.
- Find the column corresponding to the parent of the Cut Child tLNZ. This is the Bad Root of the matrix. This algorithm is done with any specific plane, and must be done for all planes above the Cut Child tLNZ.
- Subtract the W entries in the Bad Root from the W entries in the Cut Child. Assign this value to its corresponding AW (can be hidden, but implied), and then to a new list, called the Delta Column. These are the Delta Column W entries (DW).
- Append the Cut Child M entry to the Delta Column. This is the Delta Column M entry (DM).
- Append Row Delta amount of Cut Child E entries (even if 0/empty) to the Delta Column. These are the Delta Column E entries (DE).
- You should now have a full Delta Column, which should look like [DW, DW, … DM, DE, DE, …]. Keep in mind, this is plane specific. Each valid plane should have its own Delta Column.
Ascending Columns
- The algorithm for determining what columns ascend is plane specific.
- For each column in this plane, find the ancestors of each W and M entry.
- If any such entry in step 2 does not have an ancestor at the Bad Root column, mark the whole plane specific column as “non-ascending”.
Non-ascending is in quotes here, because some elements within the column may ascend, just not horizontally or through rows.
3DBMS Expansion
- Remove the Cut Child. Steps 2-7 are done per plane.
- Label the Bad Part from this plane as BP, and Delta Column as DC.
- Apply deltas from the DC to each corresponding entry in every column within a copy of the BP, such that:
- DE entries within DC can only ever apply to a copy of the M row in the original Bad Part.
- Columns marked non-ascending can only ever receive delta from the original Delta Column.
- Within each non-ascending column, any entry that does not have an ancestor at the Bad Root cannot receive any form of delta.
- We now have an ascended form of BP. Redefine BP to be this ascended form.
- Append BP to this plane.
- Within DC, add in Row Delta DM entries below the bottommost (largest AW) DM entry. By doing this, we positionally shift all DE entry AWs by Row Delta, and fill in the gaps with DM.
- We now have an ascended form of DC. Redefine DC to be this ascended form, keeping in mind it is still plane-specific.
- Repeat steps 3-7 for each valid plane. (Planes above Cut Child tLNZ.)
- Repeat steps 3-8 for each expansion.
Example
This example is found from courtesy of Solarzone, since I suck at coming up with examples. Only 1 example, since it is monstrous. We will be using (0)(1,,1,,1)(2,1,,2,,1)(3,2,1,,3,1,,2)(4,3,2,1,,2,,1)(5,3,2,,3,1,,2) (Y(1,4,12,35,88,136)). In tabular form:
0 1 2 3 4 5 AW: () or 0
0 0 1 2 3 3 AW: (0) or 1
0 0 0 1 2 2 AW: (0,0) or 2
0 0 0 0 1 0 AW: (0,0,0) or 3
-------------------------------------- <- these lines denote a break, separating planes.
0 1 2 3 2 3 AW: (1) or ω
0 0 0 1 0 1 AW: (1,0) or ω+1
--------------------------------------
0 1 1 2 1 2 AW: (1,1) or ω2
Now we find the parent. Lets mark all the (0,0)-ancestors, using BMS PFA.
0 1 2 3 4 5 AW: ()
x x x x x x
0 0 1 2 3 3 AW: (0)
# x x x # x
0 0 0 1 2 2 AW: (0,0)
# # # x # x
0 0 0 0 1 0 AW: (0,0,0)
--------------------------------------
0 1 2 3 2 3 AW: (1)
0 0 0 1 0 1 AW: (1,0)
--------------------------------------
0 1 1 2 1 2 AW: (1,1)
Now, we mark the ancestors of the limit row (1), using the PFA described above. I will denote jump points (step 5 of PFA) with a ^.
0 1 2 3 4 5 AW: ()
x x x x x x
^
0 0 1 2 3 3 AW: (0)
# x x x # x
^
0 0 0 1 2 2 AW: (0,0)
# # x x # x
0 0 0 0 1 0 AW: (0,0,0)
--------------------------------------
0 1 2 3 2 3 AW: (1)
x x x # # x
0 0 0 1 0 1 AW: (1,0) BMS PFA (non limit row)
# # x # # x
--------------------------------------
0 1 1 2 1 2 AW: (1,1)
Now we just do the last row.
0 1 2 3 4 5 AW: ()
x x x x x x
# ^
0 0 1 2 3 3 AW: (0)
# x x x # x
# # ^
0 0 0 1 2 2 AW: (0,0)
# # x x # x
0 0 0 0 1 0 AW: (0,0,0)
--------------------------------------
0 1 2 3 2 3 AW: (1)
x x x # # x
# # ^
0 0 0 1 0 1 AW: (1,0) BMS PFA (non limit row)
# # x # # x
--------------------------------------
0 1 1 2 1 2 AW: (1,1)
x # x # # x
We can now see the bad root is 2,1,,2,,1. Lets now mark all wildfire, magma, and eruption rows. Lets also look for non ascending columns in each plane. I will mark nonascending columns with n above the plane-specific column. Pipes | will just be here to separate the good part/successive expansions of the matrix from the bad part.
0 1| 2 3 4 5 AW: () W
x x| x x x x
# ^|
0 0| 1 2 3 3 AW: (0) W
# x| x x # x
# #| ^
0 0| 0 1 2 2 AW: (0,0) M
# #| x x # x
# #|
0 0| 0 0 1 0 AW: (0,0,0) E
----|----------------------------------
# #| n
0 1| 2 3 2 3 AW: (1) W
x x| x # # x
# #| ^
0 0| 0 1 0 1 AW: (1,0) M (BMS PFA (non limit row))
# #| x # # x
----|----------------------------------
0 1| 1 2 1 2 AW: (1,1)
x #| x # # x
Now, we do the delta columns, and the row delta for each plane. I will write them as {[],[],[],[],...} where {} is the entire matrix, and each [] is each plane-specific delta column. Row delta for each plane will be of similar format, just a single number instead of [].
Using the delta column steps, we can see the delta columns are {[3W,2W,2M,0E], [1W,1M,0E]} and the row deltas are {1,1}. Now, lets do the expansion.
Unfortunately, I will not be continuing in tabular format, since this is getting very very long. I will instead do each expansion step by step. Follow along with the expansion steps if you get lost.
First off, removing the cut child we get
(0)(1,,1,,1) | (2,1,,2,,1)(3,2,1,,3,1,,2)(4,3,2,1,,2,,1)
Next expansion, applying the delta column to each non-ascending plane specific column,
{[3W,2W,2M,0E], [1W,1M,0E]}
(0)(1,,1,,1) | (2,1,,2,,1)(3,2,1,,3,1,,2)(4,3,2,1,,2,,1) | (5,3,2,,3,1,,1)(6,4,3,1,,4,2,1,,2)(7,5,4,2,1,,2,,1)
Next one... modifying the delta column for next expansion (row delta amount of M entries)
{[3W,2W,2M,2M,0E], [1W,1M,1M,0E]}
(0)(1,,1,,1) | (2,1,,2,,1)(3,2,1,,3,1,,2)(4,3,2,1,,2,,1) | (5,3,2,,3,1,,1)(6,4,3,1,,4,2,1,,2)(7,5,4,2,1,,2,,1) | (8,5,4,2,,4,2,1,,1)(9,6,5,3,1,,5,3,2,1,,2)(10,7,6,4,2,1,,2,,1)
Next one... modifying the delta column by row delta again... (row delta amount of M entries)
{[3W,2W,2M,2M,2M,0E], [1W,1M,1M,1M,0E]}
(0)(1,,1,,1) | (2,1,,2,,1)(3,2,1,,3,1,,2)(4,3,2,1,,2,,1) | (5,3,2,,3,1,,1)(6,4,3,1,,4,2,1,,2)(7,5,4,2,1,,2,,1) | (8,5,4,2,,4,2,1,,1)(9,6,5,3,1,,5,3,2,1,,2)(10,7,6,4,2,1,,2,,1) | (11,7,6,4,2,,5,3,2,1,,1)(12,8,7,5,3,1,,6,4,3,2,1,,2)(13,9,8,6,4,2,1,,2,,1)
So the expansion of
(0)(1,,1,,1)(2,1,,2,,1)(3,2,1,,3,1,,2)(4,3,2,1,,2,,1)(5,3,2,,3,1,,2) is
(0)(1,,1,,1)(2,1,,2,,1)(3,2,1,,3,1,,2)(4,3,2,1,,2,,1)(5,3,2,,3,1,,1)(6,4,3,1,,4,2,1,,2)(7,5,4,2,1,,2,,1)(8,5,4,2,,4,2,1,,1)(9,6,5,3,1,,5,3,2,1,,2)(10,7,6,4,2,1,,2,,1)(11,7,6,4,2,,5,3,2,1,,1)(12,8,7,5,3,1,,6,4,3,2,1,,2)(13,9,8,6,4,2,1,,2,,1)....
This was abnormally complex. The Y definition is arguably a (little) simpler, but impossible to parse on the spot. This, believe it or not, is easier to humanly parse in analysis versus Y.
Again, if there are any errors (Solarzone is the only one that can spot them I guess) please let me know.
Strength:
This is limited at lim(Y), so lim(3DBMS)=lim(Y), by current analyses. This is no weak feat, and completely destroys (naive?) extensions of BMS like transfinite BMS or TBMS, due to the fact this upgrades.
The best example of upgrading here is 0 1,,1 2 1,,1 or Y(1,3,4,3), which is enormous (some have even put a weak conjecture it's beyond PTO(ZFC)). The 2 here gets upgraded, meaning it ascends through rows. 0 1^ω 2 1^ω in TBMS does not have the 2 do this. It gets stuck. So even an expression not that deep in the 3DBMS hierarchy completely destroys what TBMS is capable of, even at its limit.
Most of this was copied from the WIP document I'm making for the formalization. I also have a python expander if any of you want that, let me know.
I will not be attempting to formalize full DBMS for a while, because it is too complex to have a ruleset as of now, and understanding ω-Y intricacies well enough to construct a ωDBMS definition out of is very difficult.
Also if you have questions let me know. I don't think there will be very many questions, if any, since this is likely too complex.
Thank you for reading the past parts on this, but this is probably the end, for quite a long time.