After careful examination of the seals, the sketch, and the inscription on the door, you try:
the combination | |||| ||| ||||| || (1 4 3 5 2)...!
Looking at the seals,
you notice that on each row, the first three symbols and the last three appear oddly similar, save for some specific difference. You suspect that the center symbols might indicate some kind of operation performed on the first three symbols that results in the last three.
Examination of the sketch confirms your suspicions. The symbols above the door are a list of operations that will reveal the key!
Returning to the seals, you determine the following:
The line and the dot appended to some symbols are cursors, indicating where and how certain operations are meant to be performed.
You interpret the operators as follows:
1. = : Adds two lines to the number above the dot. (Noting that the final code requires two of these operations and that the sketch shows three of these operations, you suspect that this operation fails at some point. Perhaps if the number is already too large?)
2. < and > : Rotates the entire sequence in the given direction, moving the cursor, by the number of positions indicated by the following symbol (either a set of lines or a ^).
3. v : Places/moves a cursor to the position indicated by the following symbol (either a set of lines or ^).
4. ^ : Reads the number above the cursor. This is used to the right of one of the previous operators.
You also note that all operators (except =) default to using the line cursor but will use the dot cursor if a dot is added to the operator.
Therefore the seals list the following operations (using [] to indicate the line cursor and () to indicate the dot cursor):
First seal:
Add two lines to # at dot; [2] (1) 0 => [2] (3) 0
Place dot cursor at position 2; [0] 0 0 => [0] (0) 0
Second seal:
Rotate line cursor right by 2 positions; [a] 0 0 => 0 0 [a]
Rotate line cursor left by 1 position; 0 0 [a] => 0 [a] 0
Place line cursor at position 1; 0 0 0 => [0] 0 0
Rotate line cursor right by [line = 1] positions; [1] 0 0 => 0 [1] 0
Place line cursor at position [line = 2]; [2] 0 0 => 2 [0] 0
Therefore, you determine the combination as follows:
Starting with the symbols on the door:
3 2 1 2 3
1. Place line cursor at position 1.
[3] 2 1 2 3
2. Place dot cursor at position [line = 3].
[3] 2 (1) 2 3
3. Rotate line cursor right by (dot = 1) positions. (Note: dot cursor remains at the same position)
3 [3] (2) 1 2
4. Place line cursor at position [line = 3].
3 3 [(2)] 1 2
5. Place dot cursor at position [line = 2].
3 (3) [2] 1 2
6. Add 2 to the number at the dot cursor.
3 (5) [2] 1 2
7. Rotate dot cursor right by (dot = 5) positions. (Does nothing)
3 (5) [2] 1 2
8. Place line cursor at position (dot = 5).
3 (5) 2 1 [2]
9. Add 2 to the number at the dot cursor. (Fails because it would exceed 5)
3 (5) 2 1 [2]
10. Place line cursor at position [line = 2].
3 [(5)] 2 1 2
11. Place dot cursor at position (dot = 5).
3 [5] 2 1 (2)
12. Add 2 to number at dot cursor.
3 [5] 2 1 (4)
13. Rotate dot cursor left by [line = 5] positions. (Again, does nothing)
3 [5] 2 1 (4)
14. Place line cursor at position [line = 5].
3 5 2 1 [(4)]
15. Rotate line cursor right by 2 positions.
1 [4] 3 5 (2)
Therefore the combination must be 1 4 3 5 2!