from research import *
s=begin(946,'Regular allocation formula','Which two-core allocations preserve the forced regular aggregate?',{'H':2,'T':6,'U':10},['C939','C945'])
formula={'first_core':'100 + 10t + u','second_core':'100 + 10(6−t) + (10−u)','bounds':'0≤t≤6; 1≤u≤9; integers','status':'algebraic diagnostic, not chronology admission'}
checks=[]
for t in range(7):
 for u in range(1,10):
  a,b=10*(100+10*t+u),10*(100+10*(6-t)+10-u)
  checks.append(a+b==2700 and inv(a)+inv(b)==10620)
finish(s,formula,'The aggregate fixes both hundreds digits and the sums of tens and units, while allowing internal digit allocation. The source-appointed boundary supplies information absent from the two totals.','Check whether weighted conservation alone forces the same cumulative branch.',{'entire_parameterization_valid':all(checks),'source_recovered':10*(100+10*6+5)==1650})
