// Simple numbering for non-book documents #let equation-numbering = "(1)" #let callout-numbering = "1" #let subfloat-numbering(n-super, subfloat-idx) = { numbering("1a", n-super, subfloat-idx) } // Theorem configuration for theorion // Simple numbering for non-book documents (no heading inheritance) #let theorem-inherited-levels = 0 // Theorem numbering format (can be overridden by extensions for appendix support) // This function returns the numbering pattern to use #let theorem-numbering(loc) = "1.1" // Default theorem render function #let theorem-render(prefix: none, title: "", full-title: auto, body) = { if full-title != "" and full-title != auto and full-title != none { strong[#full-title.] h(0.5em) } body } // Some definitions presupposed by pandoc's typst output. #let content-to-string(content) = { if content.has("text") { content.text } else if content.has("children") { content.children.map(content-to-string).join("") } else if content.has("body") { content-to-string(content.body) } else if content == [ ] { " " } } #let horizontalrule = line(start: (25%,0%), end: (75%,0%)) #let endnote(num, contents) = [ #stack(dir: ltr, spacing: 3pt, super[#num], contents) ] #show terms.item: it => block(breakable: false)[ #text(weight: "bold")[#it.term] #block(inset: (left: 1.5em, top: -0.4em))[#it.description] ] // Some quarto-specific definitions. #show raw.where(block: true): set block( fill: luma(230), width: 100%, inset: 8pt, radius: 2pt ) #let block_with_new_content(old_block, new_content) = { let fields = old_block.fields() let _ = fields.remove("body") if fields.at("below", default: none) != none { // TODO: this is a hack because below is a "synthesized element" // according to the experts in the typst discord... fields.below = fields.below.abs } block.with(..fields)(new_content) } #let empty(v) = { if type(v) == str { // two dollar signs here because we're technically inside // a Pandoc template :grimace: v.matches(regex("^\\s*$")).at(0, default: none) != none } else if type(v) == content { if v.at("text", default: none) != none { return empty(v.text) } for child in v.at("children", default: ()) { if not empty(child) { return false } } return true } } // Subfloats // This is a technique that we adapted from https://github.com/tingerrr/subpar/ #let quartosubfloatcounter = counter("quartosubfloatcounter") #let quarto_super( kind: str, caption: none, label: none, supplement: str, position: none, subcapnumbering: "(a)", body, ) = { context { let figcounter = counter(figure.where(kind: kind)) let n-super = figcounter.get().first() + 1 set figure.caption(position: position) [#figure( kind: kind, supplement: supplement, caption: caption, { show figure.where(kind: kind): set figure(numbering: _ => { let subfloat-idx = quartosubfloatcounter.get().first() + 1 subfloat-numbering(n-super, subfloat-idx) }) show figure.where(kind: kind): set figure.caption(position: position) show figure: it => { let num = numbering(subcapnumbering, n-super, quartosubfloatcounter.get().first() + 1) show figure.caption: it => block({ num.slice(2) // I don't understand why the numbering contains output that it really shouldn't, but this fixes it shrug? [ ] it.body }) quartosubfloatcounter.step() it counter(figure.where(kind: it.kind)).update(n => n - 1) } quartosubfloatcounter.update(0) body } )#label] } } // callout rendering // this is a figure show rule because callouts are crossreferenceable #show figure: it => { if type(it.kind) != str { return it } let kind_match = it.kind.matches(regex("^quarto-callout-(.*)")).at(0, default: none) if kind_match == none { return it } let kind = kind_match.captures.at(0, default: "other") kind = upper(kind.first()) + kind.slice(1) // now we pull apart the callout and reassemble it with the crossref name and counter // when we cleanup pandoc's emitted code to avoid spaces this will have to change let old_callout = it.body.children.at(1).body.children.at(1) let old_title_block = old_callout.body.children.at(0) let children = old_title_block.body.body.children let old_title = if children.len() == 1 { children.at(0) // no icon: title at index 0 } else { children.at(1) // with icon: title at index 1 } // TODO use custom separator if available // Use the figure's counter display which handles chapter-based numbering // (when numbering is a function that includes the heading counter) let callout_num = it.counter.display(it.numbering) let new_title = if empty(old_title) { [#kind #callout_num] } else { [#kind #callout_num: #old_title] } let new_title_block = block_with_new_content( old_title_block, block_with_new_content( old_title_block.body, if children.len() == 1 { new_title // no icon: just the title } else { children.at(0) + new_title // with icon: preserve icon block + new title })) align(left, block_with_new_content(old_callout, block(below: 0pt, new_title_block) + old_callout.body.children.at(1))) } // 2023-10-09: #fa-icon("fa-info") is not working, so we'll eval "#fa-info()" instead #let callout(body: [], title: "Callout", background_color: rgb("#dddddd"), icon: none, icon_color: black, body_background_color: white) = { block( breakable: false, fill: background_color, stroke: (paint: icon_color, thickness: 0.5pt, cap: "round"), width: 100%, radius: 2pt, block( inset: 1pt, width: 100%, below: 0pt, block( fill: background_color, width: 100%, inset: 8pt)[#if icon != none [#text(icon_color, weight: 900)[#icon] ]#title]) + if(body != []){ block( inset: 1pt, width: 100%, block(fill: body_background_color, width: 100%, inset: 8pt, body)) } ) } // arxivai — Quarto Typst template partial. // Replaces Quarto's default `article()` with the arxivai preprint layout. // Both packages are importable from raw ```{=typst}``` blocks in the body: // #arxivai.operation-box(...) #arxivai.app-figure(...) #lettreai.badge(...) #import "lettreai.typ" as lettreai #import "arxivai.typ" as arxivai // --------------------------------------------------------------------------- // Re-theme Quarto's automatic callouts (same contract as lettreai: block // nesting kept structurally identical to Quarto's default so the crossref // figure show rule in definitions.typ keeps working). // --------------------------------------------------------------------------- #let callout( body: [], title: "Callout", background_color: rgb("#dddddd"), icon: none, icon_color: black, body_background_color: white, ) = { let accent = if icon_color == black { lettreai.colors.oxford-blue } else { icon_color } block( breakable: false, fill: lettreai.tint(accent, 0.94), stroke: (left: 3pt + accent, rest: 0.5pt + lettreai.tint(accent, 0.5)), width: 100%, radius: 3pt, block( inset: 1pt, width: 100%, below: 0pt, block( fill: lettreai.tint(accent, 0.84), width: 100%, inset: 8pt, )[#if icon != none [#text(accent, weight: 900)[#icon] ]#text(fill: lettreai.shade(accent, 0.25), weight: 700)[#title]]) + if (body != []) { block( inset: 1pt, width: 100%, block(fill: body_background_color, width: 100%, inset: 8pt, body)) } ) } // --------------------------------------------------------------------------- // arXiv preprint article — same signature contract as Quarto's default, // extended with keywords and running-title. // --------------------------------------------------------------------------- #let article( title: none, subtitle: none, authors: none, keywords: (), running-title: none, book: false, date: none, abstract-title: none, abstract: none, thanks: none, cols: 1, lang: "en", region: "US", font: none, fontsize: 10.5pt, title-size: 1.7em, subtitle-size: 1.15em, heading-family: none, heading-weight: "bold", heading-style: "normal", heading-color: black, heading-line-height: 0.65em, mathfont: none, codefont: none, linestretch: 1, sectionnumbering: none, linkcolor: none, citecolor: none, filecolor: none, toc: false, toc_title: none, toc_depth: none, toc_indent: 1.5em, doc, ) = { // PDF metadata. set document(title: title) set document( author: authors.map(a => lettreai.to-string(a.name)).join(", ", last: " & "), ) if authors != none and authors != () set document( keywords: keywords.map(k => lettreai.to-string(k)), ) if keywords != none and keywords != () set par(justify: true, leading: linestretch * 0.65em) set text(lang: lang, region: region, size: fontsize) show math.equation: set text(font: mathfont) if mathfont != none set heading(numbering: sectionnumbering) // Running header + footer; book mode gets chapter-aware heads and the // O'Reilly outer-margin geometry. let rt = if running-title != none { running-title } else if title != none { title } else { [] } set page( header: if book { arxivai.book-header() } else { arxivai.arxiv-header(rt) }, footer: if book { arxivai.book-footer() } else { arxivai.arxiv-footer() }, ) set page(margin: arxivai.book-margin) if book // Resolve fonts: explicit Quarto fonts win, else theme defaults. let resolved-font = if font != none { font } else { lettreai.body-font } let resolved-code = if codefont != none { codefont } else { lettreai.mono-font } let resolved-heading-color = if heading-color != black { heading-color } else { lettreai.colors.oxford-blue } let resolved-link = if linkcolor != none { rgb(lettreai.to-string(linkcolor)) } else { lettreai.colors.oxford-blue } // Paint everything with the shared theme, then the figure rules. show: lettreai.theme-rules.with( fonts: resolved-font, code-font: resolved-code, heading-color: resolved-heading-color, link-color: resolved-link, ) show: arxivai.arxiv-figure-rules // Book chapter rule is the innermost show, so it transforms level-1 // headings FIRST (inner rules apply first), replacing them with chapter // openers before the theme's h1 rule could wrap them in a container. // Synthetic non-outlined headings (e.g. the outline's own title) are // excluded inside book-heading-rules. show: doc2 => if book { arxivai.book-heading-rules(doc2) } else { doc2 } show ref: set text(fill: rgb(lettreai.to-string(citecolor))) if citecolor != none // Preprint front matter. arxivai.arxiv-title-block( title: title, subtitle: subtitle, authors: authors, date: date, ) if abstract != none { arxivai.arxiv-abstract( abstract, abstract-title: if abstract-title == none { [Abstract] } else { abstract-title }, ) } arxivai.arxiv-keywords(keywords) // Book mode: the front matter is a title page of its own. if book { pagebreak(weak: true) } // Optional table of contents (its own page in book mode). if toc { block(above: 0.5em, below: 2em, lettreai.lettreai-outline( title: if toc_title == none { auto } else { toc_title }, depth: toc_depth, indent: toc_indent, )) if book { pagebreak(weak: true) } } if cols > 1 { columns(cols, doc) } else { doc } } #let brand-color = (:) #let brand-color-background = (:) #let brand-logo = (:) #set page( paper: "a4", margin: (x: 2.4cm,y: 2.6cm,), numbering: "1", columns: 1, ) #show: doc => article( title: [Desk Analysis: Do Existing Network Experiments Already Bound the Lag Term?], subtitle: [A companion note to "Causal Boundaries of Bell's Inequality" (not part of the paper)], authors: ( ( name: [Gerd Graßhoff], affiliation: [Humboldt-Universität zu Berlin], email: [gerd.grasshoff\@hu-berlin.de], orcid: [0000-0002-4450-357X] ), ), running-title: [Desk analysis --- lag term of H1], abstract: [Laidlaw's field-ontology model predicts that the coherence of an entangled pair held at range $r$ equals the short-range coherence at a later time, shifted by $kappa tau$ with $tau = r\/c$ and $kappa = 1$. Before any new experiment is proposed we ask whether published long-baseline experiments with memory qubits already exclude this. They do not, with one conditional exception. The effect scales as $tau\/T_(upright("coh"))$, and every published link protects its qubits with echo sequences that make $T_(upright("coh"))$ hundreds of microseconds to milliseconds, which hides a lag of tens of microseconds. The one experiment with a short hold time and no protection, Hensen et al.~(2015), bounds $kappa$ only once its coherence time is known, and that number is not in the main text. The analysis also yields a design rule: the test must be run with the coherence time deliberately reduced. ], abstract-title: "Abstract", font: ("Source Sans 3",), sectionnumbering: "1.1", toc: true, toc_title: [Table of contents], toc_depth: 3, doc, ) = What is being tested Let $C_r\(t\)$ be the coherence of a Bell state held for a time $t$ between two memory qubits $r$ apart, and $tau = r\/c$ the vacuum light time. The hypothesis H1 of the paper is $ C_r\(t\)= C_0\(t + kappa tau\)\,#h(2em) kappa = 1 . $ For an exponential decay $C_0\(t\)= e^(- 2 t\/T_(upright("coh")))$ the range factor is $ R #h(0em) = #h(0em) frac(C_r\(t\), C_0\(t\)) #h(0em) = #h(0em) e^(- 2 kappa tau\/T_(upright("coh"))) . $ Standard theory with uncorrelated local noise gives $R = 1$. This note asks what the published data say about $R$. All numbers below are read in the primary papers unless marked #emph[derived] (computed here from read numbers) or #emph[not read]. = How large is the effect? #ref(, supplement: [Table]) gives $R$ for $kappa = 1$. The geometric distances are those the papers give; $tau = r\/c$. #figure([ #table( columns: (12.5%, 12.5%, 12.5%, 12.5%, 12.5%, 12.5%, 12.5%, 12.5%), align: (auto,auto,auto,auto,auto,auto,auto,auto,), table.header([Geometric $r$], [$tau$], [$T_(upright("coh")) = 5 thin mu$s], [$30 thin mu$s], [$100 thin mu$s], [$330 thin mu$s], [$1$ ms], [$5$ ms],), table.hline(), [$400$ m], [$1.33 thin mu$s], [0.59], [0.92], [0.97], [0.992], [0.997], [0.9995], [$1.28$ km], [$4.27 thin mu$s], [0.18], [0.75], [0.92], [0.975], [0.991], [0.998], [$10$ km], [$33.4 thin mu$s], [0.00], [0.11], [0.51], [0.82], [0.94], [0.987], ) ], caption: figure.caption( position: top, [ Range factor $R = e^(- 2 tau\/T_(upright("coh")))$ under H1 with $kappa = 1$ (derived). ]), kind: "quarto-float-tbl", supplement: "Table", ) The message of the table is the design rule of this note: #strong[the effect is visible only where $T_(upright("coh"))$ is comparable to $tau$ or shorter.] With echo protection at the millisecond scale, even a 10 km link changes the coherence by only a few percent. = The three experiments == Hensen et al.~2015 (1.28 km) Read in the main text: the spins are $1280$ m apart, which defines a $4.27 thin mu$s window; readout lasts $3.7 thin mu$s; the entanglement fidelity to the ideal state, estimated from the two-photon interference visibility ($0.90 plus.minus 0.06$) and the spin-photon correlations measured in the same setup, is $0.92 plus.minus 0.03$\; combined with the readout fidelities this predicts $S = 2.30 plus.minus 0.07$\; the Bell test gives $S = 2.42 plus.minus 0.20$\; the collinear $Z Z$ and $X X$ runs during full operation are consistent with the estimated state. #emph[Derived.] The measured value exceeds the prediction: $S_(upright("meas"))\/S_(upright("pred")) = 1.05 plus.minus 0.09$ (the two errors combined in quadrature). Any unmodelled multiplicative loss $R_(upright("tot"))$, which would include a range term and hold-time dephasing together, is therefore bounded from below. At two standard deviations, one-sided, $R_(upright("tot")) > 0.87$, so $2 kappa tau\/T_(upright("coh")) < 0.14$ and $ kappa #h(0em) < #h(0em) 0.0165 thin #scale(x: 120%, y: 120%)[\(] T_(upright("coh"))\/1 thin mu upright("s") #scale(x: 120%, y: 120%)[\)] . $ #figure([ #table( columns: 6, align: (auto,auto,auto,auto,auto,auto,), table.header([$T_(upright("coh"))$ ($mu$s)], [5], [13], [30], [60], [100],), table.hline(), [bound on $kappa$ (2σ)], [0.08], [0.22], [0.50], [1.0], [1.7], ) ], caption: figure.caption( position: top, [ Bound on $kappa$ from Hensen et al.~as a function of the unknown coherence time (derived). ]), kind: "quarto-float-tbl", supplement: "Table", ) So Hensen's data exclude $kappa = 1$ at two standard deviations if the relevant coherence time was below about $60 thin mu$s, and say nothing if it was longer. #strong[The main text does not give the coherence time or the exact hold time between spin-photon entanglement and readout; these are in the supplement, which is not read here.] That is the single cheapest next step: read the supplement, or ask the authors. Caveats: the prediction of $S = 2.30$ already uses readout and photon parameters that are themselves uncertain; the bound treats the ratio of two numbers with the errors as stated; and $S$ carries only 245 trials. == Stolk et al.~2024 (10 km, Delft--The Hague) Read: the nodes are $10$ km apart, connected through a midpoint by $25$ km of deployed fibre. In the fully heralded mode the qubits wait $162.5 thin mu$s or $135.4 thin mu$s under an echo pulse; the wait reduces the coherence by $1.3$ (Delft) and $3.2$ (The Hague) per cent; the delivered fidelity is $0.534\(15\)$ at a rate of $0.022 thin upright(s^(- 1))$\; a model without free parameters describes the fidelity as a function of the acceptance window; the same devices were first validated in a single laboratory in Delft (fidelities above $0.6$). #emph[Derived.] If the loss is exponential in the wait, the effective echo coherence is about $5$ to $10$ ms. With $tau = 33.4 thin mu$s the H1 factor is $R approx 0.987$ to $0.993$ (#ref(, supplement: [Table])), a $1$ to $1.3$ per cent effect. The fidelity $0.534\(15\)$ corresponds to a contrast $V =\(4 F - 1\)\/3 = 0.38 plus.minus 0.02$, a relative error of $5$ per cent. A two-sigma bound is therefore $2 kappa tau\/T_(upright("coh")) lt.tilde 0.11$, i.e.~$kappa lt.tilde 8$ for $T_(upright("coh")) approx 5$ ms. This does not discriminate between $kappa = 0$ and $kappa = 1$. The link is nevertheless the best available lever: it is a long baseline, it has a same-hardware short-range control (the Delft-only configuration), and the coherence protection is a programmable sequence. The section "Where to run it, and what it would cost" uses that. == van Leent et al.~2022 (400 m, fibre up to 33 km) Read: two $""^87$Rb atoms sit in buildings $400$ m apart; the fibre link between them and a midpoint station is varied over $6$, $11$, $23$ and $33$ km. The lower bounds on the fidelity fall as $0.830\(10\)$, $0.799\(11\)$, $0.719\(12\)$, $0.622\(15\)$\; at $33$ km the states are analysed $171$ and $178 thin mu$s after excitation, with $T_2 approx 330 thin mu$s. The authors state that decoherence of the atomic states dominates the loss in fidelity. In a control they delay the memory readout electronically by the corresponding communication times with short fibres; the fidelities show, within the measurement accuracy, no difference from the long-fibre configuration. #emph[Derived.] The geometric light time between the atoms is $tau = 1.33 thin mu$s, so $R = e^(- 2 tau\/T_2) approx 0.992$: below the sensitivity of the data. The result that matters is the #strong[delay control]. It confirms that the coherence is set by elapsed time and not by fibre length, at fixed geometric distance. That is what H0 and H1 both predict for the "spool" control of experiment E1 in the paper, and it shows that control is technically routine. == Not analysed Pompili et al.~(2021) is a multi-node network over $3$ m; $tau approx 10$ ns, which is useless as a range lever. Photonic long-baseline tests (Ursin, Yin) store nothing: there is no hold time in which a memory decoheres, so they do not constrain $C_r\(t\)$ in the sense of H1. = What the desk analysis says + #strong[No published memory-qubit experiment excludes $kappa = 1$.] Hensen et al.~might, if the supplement gives a coherence time below about $60 thin mu$s. + #strong[The effect needs a short coherence time.] All three experiments protect their qubits, which is what makes their coherence times long and $R$ close to one. + #strong[The test is therefore a change of operating point, not a new platform.] Run an existing long link with the echo sequence weakened or replaced by a tunable one, so that $T_(upright("coh"))$ is a few hundred microseconds, and compare with the same hardware in one laboratory. = Where to run it, and what it would cost The Delft--The Hague link of Stolk et al.~has $tau = 33.4 thin mu$s and a same-hardware short-range control. With $T_(upright("coh"))$ tuned to $300 thin mu$s, H1 predicts $R = 0.82$ per qubit pair. #ref(, supplement: [Table]) gives the number of heralded events per Bell state that the sum rule of experiment E2 needs for a five-standard-deviation detection at the rate of $0.022 thin upright(s^(- 1))$ reported for the fully heralded mode. The three rows differ in the starting contrast of the delivered state. #figure([ #table( columns: (25%, 25%, 25%, 25%), align: (auto,auto,auto,auto,), table.header([Delivered fidelity], [$T_(upright("coh"))$], [events per Bell state], [hours at $0.022 thin upright(s^(- 1))$],), table.hline(), [ideal ($V = 1$)], [$300 thin mu$s], [2,300], [29], [ideal ($V = 1$)], [1 ms], [2,800], [35], [$0.80$ ($V = 0.73$), projected by the authors], [$300 thin mu$s], [4,500], [57], [$0.80$], [1 ms], [7,600], [96], [$0.534$ (measured, $V = 0.38$)], [$300 thin mu$s], [17,000], [220], [$0.534$], [1 ms], [36,000], [460], ) ], caption: figure.caption( position: top, [ Events per Bell state for a 5σ detection of the H1 deficit in the sum-rule quantity $Q$, for a Stolk-type link (derived; script `revision/checks.py` function `e2_n` with a finite starting contrast, hold time $140 thin mu$s, $tau = 33.4 thin mu$s). Illustrative: Gaussian dephasing, exponential decay, independent binomial readout, single-qubit shots assumed abundant. ]), kind: "quarto-float-tbl", supplement: "Table", ) At the measured fidelity the run would take several months per Bell state and per configuration, and so is not attractive. With the improvements the authors project (they state that replacing the NV centre by an SnV centre, quantum frequency conversion at all nodes and a known fix to the phase stabilisation would give fidelities above $80$ per cent) it takes days to a few weeks. The estimate is only as good as its assumptions; the experimenter's own noise budget should replace it. = Verification status #table( columns: (50%, 50%), align: (auto,auto,), table.header([Item], [Status],), table.hline(), [Hensen et al.: $4.27 thin mu$s window, $3.7 thin mu$s readout, $F = 0.92 plus.minus 0.03$, $S = 2.30 plus.minus 0.07$, $S = 2.42 plus.minus 0.20$, visibility $0.90 plus.minus 0.06$], [read (arXiv:1508.05949, main text)], [Hensen et al.: coherence time, hold time], [#strong[not read] (supplement)], [Stolk et al.: 10 km, 25 km fibre, $162.5$ / $135.4 thin mu$s, $1.3$ / $3.2$ %, $0.534\(15\)$, $0.022 thin upright(s^(- 1))$, projected $> 80$ %], [read (arXiv:2404.03723, main text)], [van Leent et al.: 400 m, 6--33 km, fidelities, $T_2 approx 330 thin mu$s, delay control], [read (arXiv:2111.15526, main text)], [$R$ table, bounds on $kappa$, cost table], [derived here; not independently checked], [Assignment of the $1.3$ and $3.2$ % losses to particular echo times in Stolk et al.], [not resolved; both bracket the result], ) The bounds treat the reported errors as Gaussian and independent, which they are not exactly.