Networks
The claim that fragmentation under node loss is predicted by cut-vertex density rather than by size or redundancy, tested on nine SNAP networks up to 1.7 million nodes.
Verdict: refuted. Across nine networks, articulation-point density does not predict fragmentation under node loss in the direction claimed. The controlled coefficient is negative, the simple association is nil, and the pre-specified bypass edge rule bought ten times less resilience than random edges. One post-hoc corrected rule supports the mechanism and is labelled as post-hoc.
A 2% random node loss leaves 2.4% to 23.0% of nodes outside the largest component (F = 0.0242 on as-skitter to 0.2300 on ca-GrQc). Fitting F on standardised kappa/n, log10 n and m/n across the nine graphs (n = 9, 5 residual degrees of freedom, R² = 0.678) gives b1 = −0.2381, a 10,000-label two-sided permutation p = 0.0280, partial R² = 0.552. The sign is negative: more articulation points per node went with less fragmentation, the opposite of the prediction. A two-test Benjamini–Hochberg family gives q = 0.028 for this coefficient and q = 0.0001 for the edge test.
The simple association is weaker: Spearman rho +0.117 for kappa/n, against −0.217 for log10 n and −0.250 for m/n — the worst of the three, where P1 says it should be best.
Two features explain the instability. kappa/n and m/n are nearly the same variable (r = −0.958): sparse road and peer-to-peer graphs (kappa/n 0.15–0.19, m/n 1.4–3.7) sit against dense web and internet graphs (0.058–0.066, m/n 6.5–7.1). And F at 2% includes pre-existing fragmentation — ca-GrQc starts at 0.207, web-Stanford at 0.095. Subtracting that baseline flips b1 to +0.0055 (p = 0.097, partial R² = 0.339).
Nine SNAP networks, all SHA-256 checked: ca-GrQc (n = 5,242), p2p-Gnutella06, -04, -24 and -30 (8,717 to 36,682), web-Stanford (281,903), roadNet-PA (1,088,092), roadNet-TX (1,379,917) and as-skitter (1,696,415). All are unordered pair lists; roadNet-PA/TX list every edge twice and web-Stanford has 319,861 duplicate lines, removed before analysis. The largest has 11,095,298 distinct edges, held as arrays.
For each graph: exact articulation points by iterative Tarjan (813 on ca-GrQc to 259,525 on roadNet-TX), components, redundancy, and F = 1 − S_max/n after removing 0.5, 1, 2 and 5% of nodes over 20 seeds. Attacks were random, highest-degree, and a degree × two-hop-degree proxy (a cheap stand-in for betweenness, not betweenness). The confirmatory point is f = 2%, random attack.
Univariate R² is 0.047 for kappa/n, 0.098 for log10 n and 0.014 for m/n; |rho| is 0.117, 0.217 and 0.250. kappa/n beats m/n in R² but loses to node count on both measures and to m/n on rank correlation. In the joint model its partial R² is largest (0.552), but that is shared variance: two-predictor models explain 0.126–0.211, while adding kappa last lifts R² from 0.126 to 0.678. A predictor that only works beside its near-duplicate is not shown better.
It survives arithmetically (p = 0.028) but not in the claimed direction and not robustly. Leave-one-out: dropping ca-GrQc gives −0.023 (p = 0.860), dropping web-Stanford gives p = 0.072, and the other seven leave b1 between −0.225 and −0.287. With degree-attack F, b1 = −0.240 (p = 0.271); at f = 5% it is −0.235 (p = 0.033). The sign is stable and negative; significance is not.
The pre-registered rule connected the highest-degree nodes of the two largest biconnected blocks at each cut vertex. Those are usually one giant block and one tiny leaf, so it protected little: mean reduction in F was 0.000552 against 0.005575 for 50 random edges (ratio 0.099, p = 0.00005 over 20,000 permutations; paired sign-flip p = 0.00005). The ratio is 0.093 on ca-GrQc and 0.872 on p2p-Gnutella06.
Random edges win largely by welding ca-GrQc's many small components onto the giant one, lowering F without strengthening it. A post-hoc rule connecting the highest-degree nodes in the two largest components of G − a — the regions a cut vertex really separates — and confining both strategies to the giant component, reverses the result: 0.000805 against 0.000251, ratio 3.21, p = 0.00285. That supports the mechanism but is post-hoc and cannot rescue the pre-specified test.
Nine graphs are a convenience sample, with 5 residual degrees of freedom. kappa/n and m/n are collinear by construction, so no analysis of these nine can say which matters. F is static and structural: it sees the largest component, not function, traffic or recovery, and removals are uniform or rank-based rather than cascading. The edge experiment uses the two smallest graphs, one fragmented and one connected, so its pooled answer is dominated by ca-GrQc. Observational throughout: associations, not causes.
A sample with independent variation in kappa/n at fixed m/n — matched pairs, or synthetic graphs with articulation density dialled independently — would test P1 properly. A baseline-adjusted response and at least ten graphs would make P2 estimable. The post-hoc region rule should be pre-registered and replicated on more than two graphs before P3's mechanism is believed.
hypothesis.md is the pre-registration; run.py reruns everything from the network and writes results.json, data/ and figures/. SOURCE.md records URLs, timestamps, hashes, row counts and field discovery. Designed and executed with AI assistance (DeepSeek, via its coding agent); not peer reviewed.


