0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 Pattern of Expansion The Pattern of Expansion shall be consistent for all Synthetic cTags in Akinity, irrespective of Akinity (cTag) Version and Method of Synthesis (MoS). The Method of synthesis is first applied to the Object of Synthesis, then iteratively on prior output until the required Breadth is reached. The objective is to facilitate comparison between cTags of different Breadths by permitting expansion or contraction of a Synthetic cTag in a deterministic manner. After the special case of Lot0, exactly one previous (lower ordinal) Lot is used as input data for MoS to encode a subsequent Lot. The Pattern of Expansion is similar to a daisy chain, but superior in its amenability to threads / parallelism. In all versions of Akinity: - Lot length is the fixed number of true bits of output from the sole Method of Synthesis applicable to the version. - Whenever used as input to Method of Synthesis, a Lot must comprise a string of exactly n bit-characters, where n == Lot length / true bits per bit-character. In version 0.1 of Akinity: - Method of Synthesis is SHA-256. This algorithm produces a fixed 256 true bits of output. - A bit-character must be one of the pair of ascii bytes : 0x31 (zero / false) or 0x32 (one / true) - Therefore version 0.1 yields only one true bit per bit-character. - Lot length for initial cTag version is therefore 256 == 256 / 1. In the version 0.1 example diagram below: - Each lot is enumerated [0-15] == 16 lots. (16 == power2;4) - Breadth counting starts at 8 (lot length == 256 == power2;8). - The shown cTag breadth is therefore 8 + 4 == 12. ie the 12th exponent of 2 implies Contents length == power2;12 == 4096 bits. - One lot is represented below by eight + symbols (therefore + represents 32 bits) - Each arrow is an instance of the Method of Synthesis. Tail is input, head is output. - For each arrow above the centre line, do bit-wise inversion (two's complement) on the entire input prior to doing Method of Synthesis. - For each arrow below the centre line, do Method of Synthesis on the input without prior inversion /////////// ----------->Lot 13 / Object / | / of / --------------------------->Lot 9 /Synthesis/ | | /////////// --------------------- ------------------->Lot 11 | | | | | | | ----- ------------- ----------------------------- --->Lot 15 V | V | | V | | V | | V | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | | | | | | | | | | Lot | Lot | Lot | Lot | Lot | Lot | Lot | Lot | (truncated | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | for compactness) | | | | | | | | | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | ^ | | ^ | | ^ | | ----- ------------- --------------------------->Lot 8 | | | | | --------------------- | | | | | ------------------->Lot 10 | | Breadth ----------->Lot 12 # 8 # | # 9 # --->Lot 14 # 10 # # 11 # Expansion / Contraction - Contraction ("step-in") of a cTag (either Meiotic cTag or Synthetic) is done by slicing and discarding the remainder of the cTag beyond required Breadth. - Expansion ("step-out") of a Synthetic cTag is done by extending the Pattern of Synthesis up to required Breadth. - Expansion of a Meiotic cTag is not allowed - Breadth must an be integer for all cTags, so the number of lots (length 256) is a power of 2. [1;2;4;8;16;32;64;128] - Contraction or Expansion to a number of lots implying fractional Breadth is not allowed. 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789