#!/usr/bin/env python3 """ EIGENVALUE-NATIVE PROPERTY PREDICTIONS ================================================================================ Date: 2026-04-04 Author: Jonathan Shelton (theory), Claude (computation) Properties predicted directly from eigenvalue spectrum characteristics. NO archetype labels used. NO property lookup tables. The chain: eigenvalue count → gap structure → response to perturbation Each property is a SPECIFIC QUESTION about the eigenvalue spectrum: - Ductility: can the modes shift without destructive interference? - Conductivity: do continuous pathways exist through the spectrum? - Hardness: how concentrated is the energy per mode? - etc. ================================================================================ """ import numpy as np import json # Load v9 predictions with open('/root/rhetroiluso/project_prometheus/time_ledger_theory/alchemical_geometry/results/unaudited/CIPHER_V9_SWEEP_2026-04-04.json') as f: predictions = json.load(f) # ============================================================================= # EIGENVALUE-NATIVE PROPERTY DERIVATION # ============================================================================= def derive_properties_from_eigenvalues(eig_count, gap_type, coord, d_pos, factor_3, cone_pos, corrected): """ Derive ALL properties from eigenvalue spectrum characteristics. No archetype names. No lookup tables. Inputs: eig_count: number of distinct eigenvalue modes gap_type: 'wide', 'narrow', 'moderate', 'single', 'molecular', etc. coord: coordination number d_pos: d-block position (0 if not d-block) factor_3: whether coordination contains factor 3 cone_pos: position on the C_potential cone corrected: whether the spiral correction fired """ props = {} # ───────────────────────────────────────────────────────────── # DEFORMATION TOLERANCE (replaces "ductility") # How much can the mode structure shift before destructive interference? # Wide gaps = more room = higher tolerance # Single mode = no room at all # ───────────────────────────────────────────────────────────── if eig_count == 0: props['deformation_tolerance'] = 'N/A (no lattice modes)' elif eig_count == 1: props['deformation_tolerance'] = 'zero — single mode, any shift breaks it' elif eig_count <= 5: if gap_type in ['wide', 'wide-distorted']: props['deformation_tolerance'] = 'high — few modes, well-separated, room to shift' else: props['deformation_tolerance'] = 'moderate — few modes but gaps not fully resolved' elif eig_count <= 7: if gap_type == 'moderate': props['deformation_tolerance'] = 'variable — depends on gap tuning (c/a equivalent)' elif gap_type == 'transitional': props['deformation_tolerance'] = 'compromised — corrected spectrum, under strain' else: props['deformation_tolerance'] = 'moderate' elif eig_count <= 9: props['deformation_tolerance'] = 'temperature-dependent — narrow gaps lock at low T, open at high T' else: props['deformation_tolerance'] = 'complex — shattered spectrum, unpredictable' # ───────────────────────────────────────────────────────────── # LOAD RESISTANCE (replaces "hardness") # How much energy per mode? Fewer modes = more per channel = harder # ───────────────────────────────────────────────────────────── if eig_count == 0: props['load_resistance'] = 'N/A' elif eig_count == 1: props['load_resistance'] = 'extreme — all energy in one channel' elif eig_count <= 5: props['load_resistance'] = 'low — energy spread across few wide-gap channels' elif eig_count <= 7: props['load_resistance'] = 'moderate-high — energy distributed, some competition' elif eig_count <= 9: props['load_resistance'] = 'high — 9 channels absorbing, stiff response' else: props['load_resistance'] = 'variable — complex mode structure' # ───────────────────────────────────────────────────────────── # TRANSPORT PATHWAY (replaces "conductivity") # Does factor 3 create continuous paths through the spectrum? # ───────────────────────────────────────────────────────────── metallic = cone_pos not in ['node', 'approach', 'approach-near'] if eig_count == 0: props['transport_pathway'] = 'none — no lattice modes' elif not metallic: props['transport_pathway'] = 'blocked — cone position forbids metallic bonding' elif factor_3 and eig_count <= 5: props['transport_pathway'] = 'continuous, selective — few well-separated channels' elif factor_3 and eig_count <= 7: props['transport_pathway'] = 'continuous, anisotropic — direction-dependent channels' elif factor_3 and eig_count <= 9: props['transport_pathway'] = 'continuous, broad — many overlapping channels, scattering' elif not factor_3 and eig_count == 1: props['transport_pathway'] = 'gapped — single mode, forbidden zone between states' elif not factor_3: props['transport_pathway'] = 'limited — no triangular close-packed pathways' else: props['transport_pathway'] = 'unknown' # ───────────────────────────────────────────────────────────── # THERMAL ABSORPTION (replaces "thermal expansion" and part of melting) # How many modes absorb thermal amplitude? # More modes = better distribution = less expansion per degree # ───────────────────────────────────────────────────────────── if eig_count == 0: props['thermal_absorption'] = 'N/A' elif eig_count <= 3: props['thermal_absorption'] = 'poor — few channels, amplitude concentrates' elif eig_count <= 5: props['thermal_absorption'] = 'moderate — some distribution, but limited channels' elif eig_count <= 7: props['thermal_absorption'] = 'good — multiple channels distribute amplitude' elif eig_count <= 9: props['thermal_absorption'] = 'excellent — 9 channels, best thermal absorber' else: props['thermal_absorption'] = 'complex' # ───────────────────────────────────────────────────────────── # PHONON COUPLING (replaces "e-ph coupling" and "superconductivity") # Dense spectrum = more mode-to-mode energy transfer = stronger coupling # ───────────────────────────────────────────────────────────── if eig_count == 0: props['phonon_coupling'] = 'N/A' elif eig_count == 1: props['phonon_coupling'] = 'none — single mode, no intermode transfer' elif eig_count <= 5: props['phonon_coupling'] = 'weak — wide gaps inhibit mode-to-mode transfer' elif eig_count <= 7: props['phonon_coupling'] = 'moderate — some gaps allow transfer' elif eig_count <= 9: props['phonon_coupling'] = 'strong — dense spectrum enables efficient transfer' if d_pos in [3, 4] and not corrected: props['phonon_coupling'] += ' (SC candidate: consonant filling in dense spectrum)' else: props['phonon_coupling'] = 'complex' # ───────────────────────────────────────────────────────────── # FREQUENCY SELECTIVITY (replaces "frequency response") # Wide gaps = selective filter. Narrow gaps = broadband # ───────────────────────────────────────────────────────────── if eig_count == 0: props['frequency_selectivity'] = 'N/A' elif eig_count == 1: props['frequency_selectivity'] = 'threshold only — responds above band gap energy' elif eig_count <= 5: props['frequency_selectivity'] = 'highly selective — distinct resonant channels' elif eig_count <= 7: props['frequency_selectivity'] = 'moderately selective — some channel overlap' elif eig_count <= 9: props['frequency_selectivity'] = 'broadband — many overlapping channels absorb all' else: props['frequency_selectivity'] = 'complex' # ───────────────────────────────────────────────────────────── # CHEMICAL ACCESSIBILITY (replaces "nobility" and "reactivity") # Open gaps = space for bonding partners to enter # Closed/resolved gaps = no entry points # ───────────────────────────────────────────────────────────── if eig_count == 0: props['chemical_accessibility'] = 'N/A' elif eig_count == 1: props['chemical_accessibility'] = 'inaccessible — single sealed mode' elif eig_count <= 5 and gap_type in ['wide', 'wide-distorted']: props['chemical_accessibility'] = 'low — resolved spectrum, gaps too wide for reactants' elif eig_count <= 7: props['chemical_accessibility'] = 'moderate — some gaps allow bonding partners' elif eig_count <= 9: props['chemical_accessibility'] = 'high — dense spectrum provides many entry points' else: props['chemical_accessibility'] = 'complex' # ───────────────────────────────────────────────────────────── # SPIN STABILITY (replaces "magnetism") # Unpaired electrons in competing eigenvalue zone = forced apart # Resolved spectrum = spins can pair # ───────────────────────────────────────────────────────────── if eig_count >= 9 and d_pos in [5, 6, 7]: props['spin_stability'] = 'unstable — dense competing modes force unpaired spins' elif eig_count >= 9 and d_pos in [3, 4]: props['spin_stability'] = 'mixed — consonant zone, exchange stabilization' elif eig_count <= 5: props['spin_stability'] = 'stable — resolved spectrum allows spin pairing' elif eig_count <= 7: props['spin_stability'] = 'moderate — some modes may hold unpaired spins' else: props['spin_stability'] = 'variable' # ───────────────────────────────────────────────────────────── # MIXING COMPATIBILITY (replaces "alloy formation") # Same mode count = spectra can superpose # Different count = destructive interference # ───────────────────────────────────────────────────────────── props['mixing_compatibility'] = f'{eig_count}-mode family' if corrected: props['mixing_compatibility'] += ' (transitional — may mix with both native families)' # ───────────────────────────────────────────────────────────── # CORRECTION STRAIN (NEW — only for corrected elements) # A corrected element is under geometric strain # Its properties are COMPROMISED relative to a native element # ───────────────────────────────────────────────────────────── if corrected: props['correction_strain'] = 'yes — geometry shifted by acceleration ramp, bonds under strain' else: props['correction_strain'] = 'no — native geometry, bonds at equilibrium' return props # ============================================================================= # RUN PROPERTY PREDICTIONS # ============================================================================= print("EIGENVALUE-NATIVE PROPERTY PREDICTIONS") print("=" * 100) print() print("Properties derived from eigenvalue mode count and gap structure.") print("No archetype labels. No lookup tables. Each property is a question") print("about the spectrum's response to a specific perturbation.") print() # Map archetype to eigenvalue characteristics def get_eig_characteristics(pred): arch = pred['final_arch'] coord = {'FCC': 12, 'BCC': 8, 'HCP': 12, 'Diamond': 4, 'A7': 6}.get(arch, 0) factor_3 = (coord % 3 == 0) and coord > 0 eig_map = {'FCC': (5, 'wide'), 'BCC': (9, 'narrow'), 'HCP': (7, 'moderate'), 'Diamond': (1, 'single'), 'A7': (4, 'partial'), 'other': (0, 'none')} eig_count, gap_type = eig_map.get(arch, (0, 'none')) if pred['corrected'] and arch == 'HCP': eig_count = 8 gap_type = 'transitional' elif pred['corrected'] and arch == 'A7': eig_count = 5 gap_type = 'reduced' return eig_count, gap_type, coord, factor_3 # Print d-block predictions as primary interest print(f"{'Z':>3} {'Sym':>4} {'Eig':>3} {'Gaps':>12} {'Deform':>12} {'Load':>10} " f"{'Transport':>12} {'ThermAbs':>10} {'PhCoupl':>10} {'ChemAcc':>10} " f"{'Spin':>10} {'Strain':>6}") print("-" * 115) for pred in predictions: Z = pred['Z'] if Z > 99: continue block = pred['block'] if block not in ['d']: continue eig_count, gap_type, coord, factor_3 = get_eig_characteristics(pred) cone_pos = 'plateau' # d-block is always plateau props = derive_properties_from_eigenvalues( eig_count, gap_type, coord, pred['d_pos'], factor_3, cone_pos, pred['corrected']) # Abbreviate for table def abbrev(s, n=12): return s[:n] if len(s) > n else s print(f"{Z:3d} {pred['sym']:>4s} {eig_count:3d} {gap_type:>12s} " f"{abbrev(props['deformation_tolerance']):>12s} " f"{abbrev(props['load_resistance']):>10s} " f"{abbrev(props['transport_pathway'], 12):>12s} " f"{abbrev(props['thermal_absorption'], 10):>10s} " f"{abbrev(props['phonon_coupling'], 10):>10s} " f"{abbrev(props['chemical_accessibility'], 10):>10s} " f"{abbrev(props['spin_stability'], 10):>10s} " f"{'YES' if pred['corrected'] else '':>6s}") # Print specific examples showing how this differs from label-based print() print("=" * 100) print("HOW EIGENVALUE-NATIVE DIFFERS FROM LABEL-BASED") print("=" * 100) print() examples = [ (26, "Fe: BCC label says 'hard, broadband, reactive.' " "Eigenvalue says '9 narrow-gap modes, T-dependent deformation, " "dense spectrum forces unpaired spins at d6.'"), (43, "Tc: Label calls it HCP (corrected). Eigenvalue says '8 transitional " "modes — under strain, compromised properties, not native HCP.'"), (74, "W: BCC label says same as Cr, Fe, Nb. Eigenvalue says '9 narrow-gap " "modes at d4 CONSONANT filling — the most stable seats in the densest " "spectrum. Best thermal absorber + strongest bonds = highest melting.'"), (28, "Ni: FCC label says 'ductile, noble, selective.' Eigenvalue says " "'5 wide-gap modes at d8 — deformation tolerant, but d8 in a wide-gap " "spectrum still has enough competition for weak ferromagnetism.'"), (80, "Hg: Label calls it A7 (corrected). Eigenvalue says '5 reduced modes " "from d10 screening — the full d-shell collapsed the HCP spectrum. " "Bonds so weakened it's liquid at room temperature.'"), (25, "Mn: Label says BCC (miss). Eigenvalue says '9 modes at d5 half-fill " "= maximum exchange competition. The spectrum SHATTERED into 58 sub-modes. " "Not a wrong prediction — a prediction of instability that went further " "than the cipher expected.'"), ] for Z, description in examples: print(f" Z={Z}: {description}") print()