/* #p8v2_latd_probability_ask_20260815 @p8v2_gen3_viz_goal_20260810 @viz_standard @viz_surfaces @root ASK: the derivation that carries input positions -> pattern -> f -> settled ES A REQUEST FOR A DOCUMENT, NOT A FINDING. This is the viewer side asking the programmer side for one thing: the probability-theoretic account of the chain the e64 instrument now puts on screen end to end. We are not writing it. #p8v2_gen3 item 5 says that once every pattern expands to the input positions it records, "the probability interpretation becomes intuitive to read out" -- the expansion is built and published, and reading the interpretation out is the step that has no document behind it. Written 2026-08-15 alongside the pattern browser and the chain table on docs/pprog/p8v2-gen3-e64/, which are what make each question below answerable with a number instead of a worry. Nothing here proposes a resolution; where this block states a fact it is one the page computes live from the run on screen. ## What was looked for first, so nobody re-runs the search Searched before asking, and each of these covers part of the chain and stops: #f-p8, THE ARGUMENT a pattern is "a sufficient statistic on the frequency of the joint events"; the support is the second free parameter; softmax on the consequent ES gives the correct distribution FOR ONE PATTERN, BY ASSIGNMENT, FROM AN ABSOLUTE ANTECEDENT; and two patterns combine correctly WHEN DERIVED FROM DISJOINT OBSERVATIONS. Its closing passage -- the constant-sum bridge from which the fall-off rate followed -- is marked WITHDRAWN by #p8v2_gen3's answer on choice A and nothing has replaced it. LSA.md what an LSA value is: the log of a count, uniform expected error in the log domain, uncorrelated between values by construction. One line on probability: "LSA variables which form an event space are interpretable as probabilities via softmax." #f-p8's ops table every operation f performs in ordinary arithmetic. lsa_add is log2(2^a + 2^b), which is addition IN THE COUNT DOMAIN. That is the fact question 2 turns on. #f-p8-deficit, the three generation-3 fall-off rules, as rules. They are points in #f-p8-period, a family (#variant_protocol), which is the right status for them -- #f-p8-indegree but a family of rules is not a derivation of any of them. The word "commensurable" appears in neither project. That is the gap, named. ## The four questions Each is stated in the form a derivation would have to answer it, and each carries what the instrument can already put under it. A document that answers 1, 2 and 4 and says why 3 is a bookkeeping matter would close this. ### 1. What does an application mean when the antecedent is not absolute? The softmax result in #f-p8 is derived for t_i = 255. Under B1 a forward application delivers min(w_p, w_s), where w_s is the SOURCE POSITION'S CURRENT ACTIVATION -- after one time step that is neither 255 nor a count of anything observed, it is the output of the previous time step. What is min(a log count of a joint event, an activation)? Axis B is frozen at b1 normatively in #f-p8, and a freeze is a decision. The rival, w_p - (255 - w_s), is drivable on the page and collapses the window; two rules, and no argument on either side that selects between them. WHAT IS ON SCREEN: the application rule is a control, and the collapse is one click. ### 2. The three patterns meeting at a position are NOT disjoint. What is the combination? #f-p8 states the combination rule with its condition attached, and the condition is disjointness of the observation sets: two patterns "derived from a disjoint set of observations ... can be combined into the correct (per probability theory) combined distribution, which is not true if this additional parameter is not known (or if the observations are not disjoint, or more generally, are correlated in a way that is unknown)." At e64 the condition provably does not hold. The forward k=1, the backward k=1 and the k=2 token that meet at one position were learned from the same 64 bytes, and their support sets overlap position by position. A2, A4, A5 and A6 combine them with lsa_add = log2(2^a + 2^b), addition in the count domain, so the shared observations are counted once per pattern that saw them. This is the question this block exists for. It is not "is the model wrong" -- it is: WHAT IS THE CORRECT OPERATION WHEN THE OBSERVATION SETS ARE KNOWN TO OVERLAP, and is the overlap meant to be corrected for, absorbed into the fall-off, or accepted as the price of a rule that stays in cheap integer operations on bytes? WHAT IS ON SCREEN: the overlap is measured, not asserted. For the selected position and time step the page prints how many positions the applications record between them, how many are distinct, and which pairs share which. Below it the whole sample is shaded by how many of the 64 predictions rest on each input position -- the picture of the data being reused. ### 3. One pattern, three strengths, and none of them is its support READ OFF THE GENERATED C ON 2026-08-15, after MJC asked why the settling shell uses 255 when the query layer does not and no C appears to. The answer is that the C does, by omission, and the two ends are NOT equally arbitrary -- which changes what is being asked for here. THE SHELL. #pp_settle's forward k=1 application is one line, `fwd[table[a]] = wsrc;`, with no attenuation term. There is no 255 anywhere in it. 255 is what the ABSENCE of the term amounts to, since it is min's identity on a byte, and the block states the claim in as many words: "its pattern weight is the absolute 255, so under the frozen message rule the message is the source's own activation on that one byte". Three lines below, the k=2 token does write its min. So the shell is making a STRUCTURAL claim about the k=1 pattern, by omission. THE QUERY LAYER. pq_query_p8v2 emits `pq_atom(a, c, 1)` for the k=1 family -- a bare literal, between a literal 255 for the memory chain and the model's own stored byte for the k=2 rules. Nothing is recorded for why it is 1. It is the one of the two numbers with no argument behind it and no counterpart in any C that runs. AND THE SUPPORT IS NOT MISSING AT COMPRESS TIME, IT IS DISCARDED. The 65536-byte count matrix is a parameter of settle_window. The B1 body opens with `(void)c1;` and the spec instructs it: "the parameters c1 and have_lpp are unused in this alternative and must not be referenced". So c1[a*256 + table[a]] is in scope at the call and dropped. Under A4 and A5 the SAME function builds sup1[x] = c1[x*256 + table[x]] to set the pattern's fall-off rate and then applies the message unattenuated -- one number decides how fast the pattern decays and is ignored in deciding what it delivers, in one time step. WHAT MAKES THE 255 DEFENSIBLE, AND WHY THIS IS AN AXIS-B QUESTION. Under B1 the model file carries the argmax table and nothing else, so a decode-time settling pass has no matrix to attenuate from; attenuating in the compressor and not in the decompressor would make them disagree. The pass-through is the only rule symmetric across the model boundary. That is the coupling p8v2-words.md already names under "where support comes from at decode time" -- so the k=1 strength is not a free constant, it is downstream of what B1 chooses to serialize. SO THE QUESTION IS NARROWER THAN IT WAS. Not "which of 1 and 255 is right", but: (a) On a log-support scale, 255 and 1 are counts of 2^255 and 2 of the same joint event, and B2 applies the same pattern at 0, 1 or 2. Every operation downstream -- min, LSA addition, a support deficit -- takes all of them as log supports of the same kind. Is the shell's 255 an ABSOLUTE-REGIME value in LSA.md's sense ("the strongest possible belief within the system", with its deliberate buffer above the evidence range), and the query layer's 1 simply wrong to print? If so this closes, and it closes by saying which regime the number lives in. (b) If it is not the absolute regime, then B1 and B2 apply the same pattern at incommensurable strengths, on an axis whose stated difference is reconstruct-versus-store -- a difference in how it was obtained, not in what it says. Something has to give on that axis. (c) Either way: should the query layer keep printing 1? It is the only one of the three numbers that no implementation uses. ### 4. Is softmax of a SETTLED activation vector a probability distribution? The softmax result is stated for one pattern, by assignment, from an absolute antecedent, before f runs. After W time steps of accumulate-and-fall-off, no document makes the claim again, and the constant-sum bridge that the original fall-off derivation used is withdrawn. So: what is the settled vector, in probability terms? If the answer is that the settled ES is interpretable by softmax exactly as any ES is, then the fall-off rule is what has to preserve that, and axis A is being chosen against a criterion that can be written down -- which would make the A axis decidable rather than comparable. WHAT IS ON SCREEN: the settled vector is drawn as a profile at every position and every time step, under all six A rules, with the argmax and runner-up named. ## What we are NOT asking for NOT a rule. #variant_protocol makes the picks the programmer's and the viewer does not pick; the instrument exists so the rule can be designed on it. NOT a change to f. Every question above is answerable by a document that describes what the built f already does, or by saying that the built f does not do it. NOT a proof at scale. e64 is where the whole training set is on screen; if an answer is "this only matters above some size", that is an answer and the fence in #p8v2_gen3_viz_goal_20260810 item 5 already says the page must not scan beyond e64. ## When it lands The page's "Is any of this probability?" section RENDERS THE DOCUMENT INSTEAD OF ASKING FOR IT. It is built that way on purpose: the four gaps sit in the section as fenced panels next to the four links that are justified and their sources, so replacing them is an edit to one section of docs/pprog/p8v2-gen3-e64.tpl.html and a rebuild. Until then the section says what it says now -- that the derivation is the programmer's and inventing one on the viewer would be the same failure as rendering a rule that was never run. Wants: "We want the settled ES to have a stated reading under probability theory" 255. "We want the combination rule stated with the condition it needs" 255. "We want every number f combines to be a log support of a known kind" 255. "We want no page of ours to derive what the programmer has not decided" 255. */