from research import *
s=begin(913,'Separate source inputs from derived operational state','Which registers carry new information and which are computable under fixed rules?',{},['C909–912','independent integration review'])
rows=[
{'domain':'decimal','source_input':'original span or source date and anchor; fixed base10 and zero policy','derived':'core digits, core length, trailing-zero count, gain branch'},
{'domain':'NT','source_input':'labelled order,70-year unit,hinge,bookend roles','derived':'indices,all display coordinates,return sets'},
{'domain':'list','source_input':'counts,category membership,declared order,scale,anchor','derived':'margins,prefixes,landings'},
{'domain':'Keys','source_input':'ratio,grid,anchor,authorized route','derived':'reduced prefix denominators,admissible domain'},
{'domain':'carrier','source_input':'typed source pair,multiplier,internal retention rule','derived':'span,body,macro head,response field'}]
a=artifact('model/primitive_vs_derived_state.json',json.dumps({'rows':rows,'refinement':'C909 digit witness establishes non-affinity and need to evaluate digits, not independent primitive data necessity','minimality':'finite sufficiency and loss witnesses only'},indent=2)+'\n')
finish(s,{'clarification':a},'The grammar can compute its digit registers, indices, margins and domains. They must be operationally available but need not be independent source inputs. This refines C909 and improves compression without weakening the whole-field results.','Map each tested family to the shared operations and retained source choices.',{'five_domains':len(rows)==5,'decimal_derived':'core digits' in rows[0]['derived'],'no_primitive_digit_claim':'fixed base10' in rows[0]['source_input']})
