from research import *
s=begin(854,'Explain the990 and1980 branches by decimal borrowing','Does subtraction of the1400 anchor gap force the repeated paired differences?',{},['C852–853 digit registers'])
f=json.loads((ROOT/'model/inverse_gain_field.json').read_text());out=[]
for x in f:
n=x['n'];a,b,c=n//100,(n//10)%10,n%10
if c==0 or n<240:continue
borrow=int(b<4);new=[a-1-borrow,b-4+10*borrow,c]
delta=1400+10*((new[0]-a)+10*(new[1]-b))
out.append({'name':x['name'],'digits':[a,b,c],'shifted_digits':new,'borrow':borrow,'predicted_delta':delta,'observed_delta':x['delta']})
a=artifact('model/inverse_long_core_branches.json',json.dumps(out,indent=2)+'\n')
finish(s,{'branches':a,'branch_values':sorted(set(x['predicted_delta'] for x in out)),'derivation':'the shared terminal core digit cancels after positional reversal; leading/tens changes force the remaining gap'},'No borrow yields990; a tens borrow yields1980. These are forced branch values for every applicable source row, rather than separately chosen gaps.','Explain every shortened-core source row by the same positional rule.',{'all_applicable':all(x['predicted_delta']==x['observed_delta'] for x in out),'only_two':sorted(set(x['predicted_delta'] for x in out))==[990,1980]})
Evidence
s854.py
Edition and provenance
s854.py
SHA-256 25fb17a78ac836174626ac76d748ddde5bd87e751eb7e12653bc925f141d55e0
C480–C1634/Research_Cycles/C0832_C0931/evidence/s854.py