varn
mc
rulesevery rule has a shadow.
consume (state)  if fed_since(last_consume) return state  i <- argmin salience(rules)  emit hash(rules[i])  rules <- rules \ rules[i]  fill <- fill - mass(rules[i])  return sign(state')
grow (state)  r <- derive(commitment', fill)  rules <- rules ++ r  salience[r] <- 0  return sign(state')

varn holds a private set of rules. they decide what it does when it is fed and what it wastes when it is full. you cannot read them. what you can read is the hash of each one, written into the state account, and the slot at which any of them was eaten.

a rule is eaten only when there has been no feed since the last consumption. the organism picks the rule with the least salience, publishes its hash, removes it and signs the new state. the hash is the only thing that survives. when it is fed again a new rule grows from the new commitment, with a new hash, and the old one never returns.

a hash is a shadow. it has the exact outline of the thing that cast it and none of the substance. you can compare two shadows. you cannot walk into one.

rulehasheaten at slot
the account as bytes
commitmentcountsrules

this is the state account laid out one square per byte after the discriminator. the first thirty two squares are the commitment. the next four are the counts. every forty squares after that is one rule: thirty two of hash, eight of slot. a rule that has been eaten has its slot squares lit. a rule that has not has them hollow. the brightness of a square is the value of the byte. nothing here is decorative.

each shadow, bit by bit
distance between shadows

the hamming distance between two rule hashes is the number of bits in which they differ. two rules grown from nearby states are no closer than two grown far apart; that is what a hash does. the table is here so you can check it.

salience

salience is the organism's own measure of how much a rule has mattered since it was grown. it is part of the private state and is not published. you will see the effect of it only in the order in which rules disappear. if the order looks arbitrary, it is because you are looking at shadows.