Evidence

phase5.py

Download source fileOpen in research workspace
import sys
from pathlib import Path
sys.path.insert(0,str(Path(__file__).resolve().parents[1]))
from research import *
from runner import run

def top_split():
    lxx=6+4100+inverse(1830)+inverse(2250);mt=6+4100+inverse(3430)
    assert lxx==13136 and mt==7536
    assert lxx-mt==5600 and mt-536==7000
    return model('12600_MT_Flood_cut',{'ordered_BC':[lxx,mt,536],'edges':[lxx-mt,mt-536],'sum':lxx-536,'coefficients700':[8,10]})
run('Divide the LXX12600 at the MT inverse Flood',
    'Does the new7000 supply a named internal cut in the existing LXX12600 interval?',top_split,
    'LXX13136→MT7536→536 divides12600 into5600+7000. The new Flood observation therefore refines an established large interval directly.',
    'Retain the SP inverse Flood too, to see the full three-manuscript ordered comparison.',
    ['Comparative_Study §4.2','MT_7000_packet.json'])

def three_mss_path():
    nodes=[13136,7536,5436,536];edges=[a-b for a,b in zip(nodes,nodes[1:])]
    assert edges==[5600,2100,4900] and sum(edges)==12600
    return model('three_MSS_12600_path',{'nodes_BC':nodes,'roles':['LXX Regular completed inverse head','MT Cumulative completed inverse Flood','SP Cumulative completed inverse Flood / ordinary MT Cumulative Shem','restoration'],'edges':edges,'units700':[8,3,7]})
run('Form the common three-manuscript12600 refinement',
    'Can all three manuscripts occupy independently named nodes in one ordered12600 path?',three_mss_path,
    'The path13136→7536→5436→536 has5600+2100+4900=(8+3+7)×700. LXX supplies the head, MT the first Flood cut, SP the second.',
    'Compare its coarser partitions with the inherited7700+4900 and the new5600+7000.',
    ['12600_MT_Flood_cut.json','SP_MT_Shem_condition.json'])

def coarsenings():
    a,b,c=model('three_MSS_12600_path')['edges']
    return model('12600_coarsenings',{'finest':[a,b,c],'Shem_SP_cut':[a+b,c],'MT_Flood_cut':[a,b+c],'whole':a+b+c,'identities':['7700=5600+2100','7000=2100+4900','12600=7700+4900=5600+7000']})
run('Explain two large-span partitions as coarsenings of one path',
    'Are7700+4900 and5600+7000 separate structures, or do they share a named common refinement?',coarsenings,
    'Both follow from the same5600|2100|4900 path. Keeping the SP cut gives7700+4900; keeping the MT cut gives5600+7000.',
    'Identify the common unit for this selected path without claiming every spine node lies on it.',
    ['three_MSS_12600_path.json','C1488–C1492 shared7700 edge'])

def selected_grid():
    from math import gcd
    from functools import reduce
    edges=model('three_MSS_12600_path')['edges'];g=reduce(gcd,edges)
    assert g==700
    coords=[(n-536)//g for n in model('three_MSS_12600_path')['nodes_BC']]
    assert coords==[18,10,7,0]
    lxx_cum=(8446-536)%700
    assert lxx_cum==210
    return model('selected_700_grid',{'gcd_edges':g,'relative_indices':coords,'ordered_edge_indices':[8,3,7],'LXX_cumulative_Flood_remainder700':lxx_cum,'scope':'selected LXX Regular head/MT-SP cumulative Flood path, not all six spines'})
run('Identify the selected700-year grid and its domain',
    'Does the common refinement admit a compact integer coordinate description, and does the omitted LXX cumulative Flood share it?',selected_grid,
    'The chosen path has relative indices18,10,7,0 in units700. LXX cumulative Flood8446 has remainder210 on that grid, though it remains on the finer70 grid.',
    'The700 grid is a property of this named subpath. Derive its5600 edge directly from the inverse source words.',
    ['three_MSS_12600_path.json','three_cumulative_restoration.json'])

def source5600():
    lxx= inverse(1830)+inverse(2250);mt=inverse(3430);sp=inverse(3310)
    assert lxx==9030 and lxx-mt==5600 and mt-sp==2100
    return model('12600_source_edges',{'LXX_Regular_inverse_sum':lxx,'MT_Cumulative_inverse_lower':mt,'SP_Cumulative_inverse_lower':sp,'first_edge':lxx-mt,'middle_edge':mt-sp,'last_edge':sp+3570,'shared_completed_base':4106})
run('Recover the new refinement from source words',
    'Do the5600 and2100 internal edges depend on choosing536 after the fact?',source5600,
    'They do not:5600=9030−3430 and2100=3430−1330, with the common4106 base canceling. Only the final4900 placement uses the appointed restoration target.',
    'The source-derived path is ready for the already-authorized forward2700 transport; keep the operation distinct from a new mirror investigation.',
    ['lower_spine_map.json','Comparative_Study §§3.1,4.2,7.2'])
Edition and provenance

phase5.py

SHA-256 d9dd7ca6d8c54fb316e954f4da4a94149f347a870889e9a9a5ad378b5d105112

C480–C1634/Research_Cycles/C1585_C1634/prep/phase5.py