from research import *
s=begin(923,'Resolve the final terminology and source-state review','Which precise changes make the final prose match the verified mathematics?',{},['final text preflight','C918 source qualifications'])
tech=(ROOT/'prep/TECHNICAL_COMPANION_PRE_REVIEW.md').read_text()
assert 'Their separate-image intersections are897Z and4485Z.' in tech
tech=tech.replace('Their separate-image intersections are897Z and4485Z.','The intersections of their input self-domains are897Z and4485Z.')
tech=tech.replace('The two remaining zero cases are Adam','The two remaining trailing-zero cases are Adam')
syn=(ROOT/'prep/SYNTHESIS_PRE_REVIEW.md').read_text()
old='Their cumulative dates differ because their lifespans differ.'
assert old in syn
syn=syn.replace(old,old+' This comparison retains SP’s official Terah lifespan145; the separate Ideal205 cumulative lift is not being substituted.')
a=artifact('deliverables/490d_Chronological_Families_Technical_Companion_C931.md',tech)
b=artifact('deliverables/490d_Chronological_Families_Integrated_Synthesis_C931.md',syn)
changes=['input-domain intersection wording corrected','trailing-zero cases named explicitly','SP official Terah145 retained explicitly beside inherited cumulative field']
c=artifact('evidence/FINAL_TEXT_REVISIONS_C923.json',json.dumps({'changes':changes,'numeric_models_changed':False,'supersedes_text_artifact_versions':['C917 companion','C919 synthesis']},indent=2)+'\n')
finish(s,{'companion':a,'synthesis':b,'revision_record':c},'Final prose now names input-domain intersections correctly, identifies trailing-zero cases precisely, and states the official SP Terah145 condition beside the inherited cumulative field. No numerical model changed.','Obtain the final text disposition and complete the reproducibility guide.',{'input_domain':'intersections of their input self-domains' in tech,'zero_wording':'trailing-zero cases' in tech,'SP_state':'official Terah lifespan145' in syn,'old_phrase_removed':'separate-image intersections' not in tech})
