Quantum yield is a branching race, but one lifetime ratio is insufficient
Tested hypothesis · Mathematical and model findings · 30 October 2026
Incoprea Research · 30 October 2026 · Mathematical/model test
Finding: Competing reaction pathways determine yield in a simple excited-state model, and stronger absorption alone changes the amount of product rather than the yield per absorbed photon. However, the lifetime-to-vibrational-relaxation ratio proposed in Quantum Yield Is a Race is not generally sufficient: two model systems can have exactly the same ratio and quantum yields of 0.1 and 0.8.
This is an exact kinetic derivation and synthetic stochastic check. It narrows a plausible mechanism in the Incoprea Research hypothesis collection; it does not experimentally validate the original predictor. Branching kinetics and the distinction between absorption and quantum yield are established science, not new discoveries. This note has no external peer review.
The quantity being predicted
IUPAC's photochemistry glossary defines quantum yield by events per photon absorbed. Product count and quantum yield therefore answer different questions. Under fixed conditions, absorbing ten times as many photons can make ten times as much product without changing the fraction of absorbed photons that produces the chosen event.
Our declared model starts with one reactive excited state. It has three independent first-order exits: desired product at rate k_p, a vibrational-relaxation sink at rate k_v, and all other losses at rate k_o. The synthetic rate constants are expressed in inverse nanoseconds. The corresponding total excited-state lifetime is tau = 1/(k_p+k_v+k_o), and the putative vibrational time is tau_v = 1/k_v.
Calling vibrational relaxation a sink is an explicit simplifying assumption. In real molecules, vibrational cooling may leave a state that still reacts, and sequential pathways can require a multistate model. This test is intentionally more favorable to the proposed single-ratio mechanism than many real systems would be.
Exact result
The excited population is E(t) = exp[−(k_p+k_v+k_o)t]. Integrating the product flux k_p E(t) from zero to infinity gives
Phi_product = k_p/(k_p+k_v+k_o) = k_p × tau.
This is the branching fraction for the desired pathway. The lifetime ratio tau/tau_v = k_v/(k_p+k_v+k_o) instead specifies the fraction entering the vibrational sink. Without knowing the remaining channels, it cannot say how the rest is divided between product and other losses.
Only in the special two-exit case k_o = 0 does the proposed ratio determine yield: Phi_product = 1 − tau/tau_v. Even there, the direction needs care. A larger total-lifetime/vibrational-time ratio means a larger loss fraction in this model, not automatically a higher product yield. A lifetime that already includes competing decay rates is not an independent measure of how long the molecule “has to react.”
Numerical check and counterexample
The plan fixed four rate triples before outcome calculation: (k_p,k_v,k_o) = (1,9,0), (9,1,0), (1,1,8) and (8,1,1). For each, 200,000 independent excitations were simulated with separate exponential clocks for each available exit. The earliest clock decides the outcome; this is independent of directly sampling a precomputed branching probability.
Exact product yields are 0.1, 0.9, 0.1 and 0.8. Simulated yields are 0.099720, 0.900025, 0.100345 and 0.798810. All four meet the prespecified absolute tolerance of 0.005. The 800,000 events are synthetic trials, not laboratory photons.
The final two systems are the crucial control. Both have total rate 10/ns, lifetime 0.1 ns, vibrational time 1 ns and ratio 0.1. One allocates most exits to another loss channel and yields 0.1; the other allocates most to product and yields 0.8. This exact counterexample establishes that a universal mapping from that ratio to product yield is impossible within the declared three-channel family.
Absorption and the limits of the finding
Holding the rates fixed at yield 0.1, 1,000, 10,000 and 100,000 absorbed photons give expected product counts of 100, 1,000 and 10,000. Dividing each by its absorbed-photon count returns the same yield. This supports the narrow distinction in the original hypothesis, while avoiding the misleading inference that absorption cannot matter to practical productivity.
It also does not imply that changing a molecule's absorption spectrum can never change yield. Different excitation energies, electronic states, quenching, heating, concentration effects or saturation can change the rates themselves. Chain reactions may produce more than one product event per absorbed photon, outside this one-excitation/one-exit model. Absorbed and incident photons must not be interchanged.
The productive follow-up is a specified reaction scheme with measured rate constants and independently measured product yield. The current result gives that test a sharper target: estimate the desired branching rate and every important competitor. A lifetime ratio becomes predictive only after the missing-channel assumptions are justified.
Reproduce this result
The calculations below use Python 3 and its standard library. Save the code as reproduce.py in an empty folder and run python3 reproduce.py. It writes the result files there. These are declared mathematical or synthetic-model tests, not measurements of real people, buildings, devices or deployed systems. The plan was recorded locally before outcomes; it was not registered externally.
Show the complete runnable code
"""Independent exponential clocks for a synthetic first-order photochemical model."""
import csv,hashlib,json,math,random
from pathlib import Path
P=Path(__file__).resolve().parent;PLAN_SHA256='2635c6ffb0bfadcd2891230f49ac4ac7e89649705006852e56d76d22391db4ac';p={'rates': [[1, 9, 0], [9, 1, 0], [1, 1, 8], [8, 1, 1]], 'event_count': 200000, 'seed': 2026103013};
if (P/'PLAN.json').exists():assert hashlib.sha256((P/'PLAN.json').read_bytes()).hexdigest()==PLAN_SHA256
rng=random.Random(p['seed']);rows=[]
for kp,kv,ko in p['rates']:
wins=0;N=p['event_count'];kt=kp+kv+ko;tau=1/kt;tauv=1/kv;exact=kp/kt
for _ in range(N):
tp=rng.expovariate(kp);tv=rng.expovariate(kv);to=rng.expovariate(ko) if ko else math.inf
wins+=tp<min(tv,to)
observed=wins/N;assert abs(observed-exact)<.005
rows.append({'k_product':kp,'k_vibrational_sink':kv,'k_other_sink':ko,'tau':tau,'tau_v':tauv,'tau_over_tau_v':tau/tauv,'exact_yield':exact,'simulated_yield':observed,'N':N})
assert rows[2]['tau_over_tau_v']==rows[3]['tau_over_tau_v']
assert rows[2]['exact_yield']!=rows[3]['exact_yield']
for x in rows[:2]:assert math.isclose(x['exact_yield'],1-x['tau_over_tau_v'])
with (P/'cases.csv').open('w',newline='') as f:
w=csv.DictWriter(f,fieldnames=list(rows[0]));w.writeheader();w.writerows(rows)
r={'scope':'Single-excitation first-order branching model, synthetic rates. Vibrational relaxation is assumed to terminate the reactive state; this is not true for all photochemistry.','cases':rows,'absorbed_photon_counts':[1000,10000,100000],'expected_product_at_yield_point1':[100,1000,10000],'checks_passed':True,'seed':p['seed'],'plan_sha256':PLAN_SHA256,'code_sha256':hashlib.sha256(Path(__file__).read_bytes()).hexdigest()}
(P/'results.json').write_text(json.dumps(r,indent=2)+'\n');print(json.dumps(r,indent=2))
Show the frozen analysis plan
{
"claim": "quantum-yield-lifetime-ratio",
"volume": 12,
"model": "One initially excited state E follows dE/dt=-(k_p+k_v+k_o)E; product rate k_p E. Single excitation, constant independent first-order routes; product quantum yield Phi=k_p/(k_p+k_v+k_o), lifetime tau=1/(k_p+k_v+k_o), vibrational relaxation time tau_v=1/k_v. Absorption changes excitation count only, no saturation or photophysics changes.",
"parameters": {
"rates": [
[
1,
9,
0
],
[
9,
1,
0
],
[
1,
1,
8
],
[
8,
1,
1
]
],
"event_count": 200000,
"seed": 2026103013
},
"checks": [
"Independent exponential competing clocks matches branching probability within0.005",
"Same tau/tau_v but distinct yields counterexample using (1,1,8) and(8,1,1)",
"Expected total product scales with photons absorbed; yield per absorbed photon invariant for fixed rates",
"Special two-channel Phi=1-tau/tau_v; lifetime/vibration ratio alone fails when other channels vary"
],
"source_file": "[source path recorded in saved evidence package]",
"source_sha256": "4c4e031904dc3d281c903c8518367010f75287e215ffa16a41ca759931795d2f",
"plan_frozen_utc": "2026-10-30T17:04:41.307291+00:00",
"classification": "Exact mathematics and synthetic model check; not measured data, novelty or external peer review"
}
Show the complete numerical results
{
"scope": "Single-excitation first-order branching model, synthetic rates. Vibrational relaxation is assumed to terminate the reactive state; this is not true for all photochemistry.",
"cases": [
{
"k_product": 1,
"k_vibrational_sink": 9,
"k_other_sink": 0,
"tau": 0.1,
"tau_v": 0.1111111111111111,
"tau_over_tau_v": 0.9000000000000001,
"exact_yield": 0.1,
"simulated_yield": 0.09972,
"N": 200000
},
{
"k_product": 9,
"k_vibrational_sink": 1,
"k_other_sink": 0,
"tau": 0.1,
"tau_v": 1.0,
"tau_over_tau_v": 0.1,
"exact_yield": 0.9,
"simulated_yield": 0.900025,
"N": 200000
},
{
"k_product": 1,
"k_vibrational_sink": 1,
"k_other_sink": 8,
"tau": 0.1,
"tau_v": 1.0,
"tau_over_tau_v": 0.1,
"exact_yield": 0.1,
"simulated_yield": 0.100345,
"N": 200000
},
{
"k_product": 8,
"k_vibrational_sink": 1,
"k_other_sink": 1,
"tau": 0.1,
"tau_v": 1.0,
"tau_over_tau_v": 0.1,
"exact_yield": 0.8,
"simulated_yield": 0.79881,
"N": 200000
}
],
"absorbed_photon_counts": [
1000,
10000,
100000
],
"expected_product_at_yield_point1": [
100,
1000,
10000
],
"checks_passed": true,
"seed": 2026103013,
"plan_sha256": "2635c6ffb0bfadcd2891230f49ac4ac7e89649705006852e56d76d22391db4ac",
"code_sha256": "bbec58aaaf0892fcbba1d32681bbfa08b02ca6b5b1b9e25751ac3426fc3bc2f8"
}
Original hypothesis: DeepSeek / Incoprea. Analysis, code, figures and report: Codex. Independently checked by another Codex agent; this internal check is not external peer review. Established mathematics is not claimed as a new discovery. Return to Incoprea Research · Read the unchanged original hypothesis.
Publication code SHA-256: bbec58aaaf0892fcbba1d32681bbfa08b02ca6b5b1b9e25751ac3426fc3bc2f8
Saved result SHA-256: b93ebf973d01ab102bcd19543efe056491d640c547111348dc4a1a108b88978a
Comments
Post a Comment