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'])
Evidence
phase5.py
Edition and provenance
phase5.py
SHA-256 d9dd7ca6d8c54fb316e954f4da4a94149f347a870889e9a9a5ad378b5d105112
C480–C1634/Research_Cycles/C1585_C1634/prep/phase5.py