Authority, context and temporal truth

Trust, but verify with a different path

Rajesh Ranjan Mahapatra

A second reviewer reduces decision risk only when the causal route by which it can accept an error differs from the proposer’s route on the cases that matter.

© 2026 Rajesh Ranjan Mahapatra. 33 min read

Trust, but verify with a different pathAll Human–Machine Convergence

Authority, context and temporal truth

Trust, but verify with a different path

A second reviewer reduces decision risk only when the causal route by which it can accept an error differs from the proposer’s route on the cases that matter.

TLDR

  1. Verification value comes from failure-path independence, not model or vendor count.
  2. Measure the verifier on proposer failures: the decisive quantity is P(verifier misses | proposer wrong).
  3. Shared evidence, extraction, objectives, prompts or task difficulty can make apparently diverse systems fail together.
  4. Generate blind-first commitments, use orthogonal evidence and deterministic or domain-specific oracles, then exchange results.
  5. Release consequential actions only after task-local dependence tests and receipts show what the second path actually checked.

A worked scenario

A procurement agent recommends releasing £480,000 to a supplier. It has read the invoice packet, matched the purchase-order number and produced a compact rationale. The amount is below the delegated ceiling, the supplier appears on the approved list and the delivery record is marked complete.

The organisation has anticipated model error. Before any payment can move, a second language model reviews the proposal. It comes from another provider, uses a different architecture and receives a prompt that says, “Act as an independent financial controller.” It agrees. The interface now shows two green verdicts.

The agreement is reassuring, but it is not independent evidence. Both models received the same text extracted from the same scanned packet. The document splitter silently dropped a final page containing a £300,000 credit note. The first model proposed the gross amount. The second model carefully verified the same incomplete world.

A less impressive-looking path catches the error. It never asks another model whether the prose is convincing. It queries the signed document bundle, checks the page count, joins the purchase order to the goods-receipt ledger, reads the credit-note register and computes the payable amount from typed fields. Its result is £180,000. It produces a mismatch receipt and blocks release.

This is a synthetic scenario, not a reported deployment. Yet the puzzle is ordinary. Why did the expensive second reviewer add so little, while a narrower reconciliation path changed the decision?

The obvious answer is that the second model was not good enough. That answer misses the mechanism. Even a stronger model could not reason from the missing page. The real defect was not insufficient intelligence. It was a shared failure path.

Two apparent verification routes share one hidden mountain pass A mountain landscape shows a proposer and a second model taking visibly different trails that merge at one concealed pass labelled shared evidence and task frame. A third route uses an independent map and reaches a separate observation ridge. shared pass same missing page separate ridge Proposer Second model Independent check Visible route diversity can hide one causal bottleneck
Two routes, one hidden pass. Model diversity is cosmetic when both paths inherit the same decisive defect. A useful verifier reaches the decision through evidence or constraints that do not pass through that bottleneck.Illustrative.

The mountain is not a metaphor for general difficulty alone. It represents a common causal ancestor: a missing source, flawed extraction, ambiguous requirement or contaminated benchmark that can make both systems accept the same wrong result.

Part I: The second-opinion illusion

Two climbers, one map

Thought experiment 1

Send two excellent climbers towards a summit. They use different boots, move at different speeds and choose different-looking trails. Unknown to them, both navigate from copies of the same map, and the map marks a collapsed bridge as intact. A third climber is less experienced but triangulates the ridge from current satellite images and a local weather station. Whose arrival gives you the most new information?

Change only one property: replace the third climber’s independent map with another copy of the old one. Their personal diversity remains, but their assurance value collapses. The relevant unit was never the climber. It was the route by which a false belief could survive.

Multi-model designs often count visible differences: provider, parameter count, architecture, system prompt or persona. Those differences can matter. They can alter priors, decoding behaviour and the set of mistakes a system tends to make. But they do not answer the release question: what could make both paths accept this particular wrong action?

Failure-path independence is the absence of a shared causal route that can carry a decision-relevant defect through both checks. It is narrower than statistical independence over all outputs, and more operational than saying two systems are “diverse”. It asks about the failures that pass a gate, under the actual evidence, task framing, interaction order and authority design.

The lesson predates language models. N-version programming asked separate teams to implement the same specification, then used agreement among versions as protection against software faults. A landmark experiment found that independently developed programs still failed together more often than a simple independence assumption predicted.[1] The accompanying theory identified a reason: some inputs are intrinsically harder, so observing one version fail changes the probability that another fails.[2][3]

Established evidence Independent implementation is not a guarantee of independent failure. Classic software experiments and reliability models show that common specifications, common difficult inputs and similar problem-solving choices can produce coincident errors.[4]

This does not prove that diversity is useless. It proves that a component count cannot be substituted for a dependence claim. Diversity may reduce errors while still leaving the residual risk several times larger than an independence calculation suggests.

The hidden common ancestors

Suppose a proposer and verifier produce separate outputs. Draw arrows backwards from each accepted answer. Where do the arrows meet? They may meet at a document retriever, an OCR service, the same policy summary, the same generated test cases, the same benchmark annotation, the same user framing or the same ambiguous requirement. They may also meet in subtler places: related training data, similar post-training preferences or a shared tendency to reward fluent rationales.

A shared ancestor is not automatically dangerous. Both paths may use the same authoritative exchange rate or signed policy because there is only one correct source. The risk appears when the shared node can be wrong, incomplete or adversarially shaped, and neither branch contains an intervention capable of detecting that defect.

Causal graph of shared and independent verification paths A causal diagram shows world state passing through a shared evidence extract and task frame into both proposer and verifier, causing correlated acceptance. An intervention adds an independent source and typed oracle before the verifier. Where can one defect enter both decisions? Authoritative world state Shared extract and task frame missing page, ambiguous rule, poisoned source Proposer generates action and rationale Verifier reviews the same representation false agreement release risk independent source typed oracle page count, ledger join, test intervention cuts shared path
A causal intervention, not another opinion. The independent source and typed oracle create a route that can reveal defects in the shared extract. The dotted intervention line marks the design change that must be tested.Illustrative causal model.

The diagram is deliberately asymmetric. The proposer may remain broad and generative. The verifier earns authority by checking a narrower claim through a source or operation with different failure causes.

Recent work on language models makes the same problem visible at a larger scale. An analysis spanning hundreds of models found that error patterns were correlated, especially among related model families, and that models often converged on the same wrong answer more frequently than a random baseline would suggest.[5] A separate panel study reports that nine model judges can behave like only a few effective independent votes, although this result is preliminary and evaluation-specific.[6]

These findings do not license a universal correlation coefficient for “LLMs”. Dependence changes with task, prompt, evidence, answer space and model family. They do support a design warning: the appearance of a panel is not evidence of a portfolio.

Four ways to look separate while remaining coupled

A verifier can be independent in one sense and dependent in another. Model independence means that a different learned system produces the second judgement. This can diversify learned shortcuts, but it says nothing about shared inputs. Evidence independence means that the second path obtains at least one decisive fact without inheriting the proposer’s representation. This can expose missing or corrupted context, but it may still apply the same mistaken rule.

Procedural independence means that the verifier decomposes the claim differently or uses another oracle. A numerical reconciliation, constraint solver or counterexample search can reject an answer that another generative critique would endorse. Authority independence means that the check has a separately governed ability to block, abstain or escalate. Without it, independent knowledge may exist but never alter the outcome.

These dimensions should not be collapsed. A different model with no authority is an advisory opinion. A deterministic check over the same corrupted extract is procedurally different but evidentially coupled. A human controller with an independent source may still be anchored if the interface presents the model’s conclusion first. The required combination depends on the failure being controlled.

That is why “independent verifier” is incomplete as an architecture label. It needs an object: independent of which cause, for which claim and at which boundary? The more consequential the action, the less acceptable it is to answer with provider names.

The argument in one pass
Chart · flow
flowchart LR
  A["Part I, The second-opinion<br/>illusion"] --> B["Part II, Dependence hides in<br/>averages"]
  B --> C["Part III, Build another causal<br/>path"]
  C --> D["Part IV, Test the path"]
  D -. "re-test" .-> A
  classDef first fill:#0a1424,stroke:#7B4CD8,stroke-width:2px,color:#e6f3ff
  classDef step fill:#0a1424,stroke:#3f7da0,stroke-width:1px,color:#e6f3ff
  class A first
  class B,C,D step
A structural route through Trust, but verify with a different path: from Part I, The second-opinion illusion to Spend verification on a different…. Reading use: follow the relation, then return to the surrounding argument for evidence and limits.

Part II: Dependence hides in averages

The wrong answer key

Worked example 1: a toy case

Two exam markers independently grade one hundred scripts. Their handwriting recognition and arithmetic are excellent. Each would make an ordinary marking error on only two scripts. Yet both receive the same answer key, and question 37 is incorrectly keyed.

Across the full exam they look 98 per cent accurate. On question 37 they are guaranteed to agree and guaranteed to be wrong. Adding a third marker with the same key increases confidence without increasing truth. The useful check is not another marker. It is a derivation of the disputed answer from the syllabus or a separately governed key.

Average accuracy asks how often a system is right over all cases. Verification asks a different question: when the proposer is wrong, how often does the gate still open? A reviewer can be excellent on easy cases and useless exactly where it is needed.

The decisive mechanism

Let Fp mean “the proposer is wrong” and Av mean “the verifier accepts or fails to block”. The probability of an undetected wrong release is:

P(undetected release) = P(Fp) × P(Av | Fp) The first term is proposer quality. The second is the verifier’s miss rate on proposer failures. The second term is where independence, shared blind spots and check design become visible.

A strong overall verifier can still have a high conditional miss rate if it shares the proposer’s difficult cases. Conversely, a narrow deterministic check may look incapable on most of the task but be highly valuable on the failure class assigned to it.

Change only the distribution

Thought experiment 2 and worked example 2

Imagine two reviewers whose errors are independent once a case’s difficulty is fixed. On easy cases each fails 2 per cent of the time. On hard cases each fails 60 per cent. Ninety per cent of the workload is easy and ten per cent is hard.

Now change nothing about either reviewer. Only mix the two kinds of case before measuring them. Each reviewer’s marginal error rate becomes 7.8 per cent. Multiplying those averages predicts a joint error rate of 0.61 per cent. The actual joint rate is 3.64 per cent, almost six times larger, because failures reveal that the case probably came from the hard subset.

Marginal error = 0.9 × 0.02 + 0.1 × 0.60 = 0.078
Naive joint error = 0.078 × 0.078 = 0.006084
Actual joint error = 0.9 × 0.02² + 0.1 × 0.60² = 0.03636 The equation assumes conditional independence inside each difficulty stratum. Removing the false assumption that all cases have equal difficulty changes the joint risk, even though neither reviewer changes.
7.8%each reviewer’s marginal error rate
0.61%joint error predicted by multiplying averages
3.64%actual joint error under the mixture
Illustrative chart comparing naive and actual joint error under mixed difficulty A bar chart shows naive joint error at 0.61 percent and actual joint error at 3.64 percent. A strip below shows that the small hard-case population contributes almost all joint failures. The hard minority dominates coincident failure 0% 1% 2% 3% 4% 0.61% 3.64% Multiply marginal rates Preserve difficulty mixture 90% easy cases 10% hard cases small stratum,large risk
Why multiplying average error rates can be dangerously optimistic. A small hard-case stratum produces most coincident failures, even when reviewers fail independently within each stratum.Illustrative synthetic calculation.

This is the simplest form of hidden dependence. Real systems add further common causes such as shared retrieval, ambiguous specifications, related training data and interaction-induced convergence.

A compact diagnostic is the error-dependence amplification:

D = P(Fp ∩ Fv) ÷ [P(Fp) × P(Fv)] D = 1 matches binary error independence on the tested distribution. D > 1 means failures coincide more often than that baseline. D < 1 means anti-correlation. It is a diagnostic, not a universal property of a model pair.

In the example, D is about 5.98. More revealingly, after the proposer fails, the probability that the verifier also fails is 46.6 per cent, not 7.8 per cent. That conditional quantity belongs in the assurance case.

Do not optimise the diagnostic

D is useful because it challenges an independence baseline. It is not a target to minimise in isolation. Suppose a new verifier becomes dramatically better on easy cases but remains unchanged on hard cases. Its marginal error falls, so the product in the denominator shrinks. D can rise even while the absolute joint failure rate falls. A team reporting only amplification might reject a genuine improvement.

The reverse can also mislead. A verifier that rejects nearly everything may achieve a low conditional acceptance rate, but it has not become a useful collaborator. It has transferred the workload to humans. Report at least four quantities together: proposer error, verifier abstention or rejection burden, undetected joint failure, and conditional miss on proposer failures. Add latency and review cost when the control is operational.

Stratification matters for the same reason. A single conditional miss rate can hide a path that catches arithmetic errors but misses every entitlement error. Group cases by plausible mechanism, not only by business category. “Missing evidence”, “stale world state”, “ambiguous rule”, “tool execution fault” and “adversarial instruction” are more useful strata than a single aggregate called quality.

A dependence metric is an instrument for finding shared causes, not a badge for certifying a pair of models. When it changes, inspect which cases moved and which path property changed.

Agreement is not the same as joint failure

Free-form systems complicate the binary picture. Two reviewers can both be wrong in different ways and therefore disagree, which may still trigger abstention. Conversely, they can give the same wrong answer, or one can accept the other’s wrong proposal despite holding a different internal belief. A dependence test should therefore match the protocol’s actual failure event: same wrong answer, incorrect approval, failure to identify a violated constraint, or unauthorised release.

The large LLM error-correlation study is useful because it examined not only whether models erred, but whether they converged on the same wrong option.[5] That is closer to a majority-vote failure. For a release gate, however, the operational event is simpler: did the verifier block the proposer’s wrong action? Measure the event that reaches authority, not a convenient proxy for disagreement.

The sealed-envelope verifier

Thought experiment 3

Give two analysts the same case. In the first condition, each writes a conclusion and decisive evidence in a sealed envelope before seeing the other’s work. In the second, the verifier sees the proposer’s answer, rationale and confidence before starting.

Nothing about their underlying skill has changed. Yet the second condition introduces anchoring, shared decomposition and a ready-made search path. It may improve efficiency and enable targeted critique, but it can also erase the very diversity the second analyst was meant to provide. Open the envelopes only after both have committed, and disagreement becomes evidence rather than friction.

Timeline comparing blind-first verification with early answer sharing The upper timeline shows proposer and verifier independently gathering evidence and sealing commitments before comparison. The lower timeline shows the proposer sharing a full solution early, after which verifier search narrows around it. Interaction order changes the evidence value of agreement Blind-first 1 2 3 4 Proposer commits Verifier commits Compare deltas Gate or escalate diversity preserved until comparison Early sharing 1 2 3 4 Proposer shares Verifier anchors Search narrows Agreement rises visible consensus can rise while independent search falls
Commit before communication when diversity is the purpose. Blind-first work preserves independent decomposition. Early sharing may be useful later, but it changes what agreement can mean.Illustrative protocol timeline.

A recent study on verifier-scored optimisation tasks reports that full-solution exchange can rapidly collapse behavioural diversity, while independent proposal generation preserves it. The scope is narrow, so the figure presents a testable design principle rather than a universal law.[10]

Multi-agent debate and self-consistency can improve performance on some reasoning and factuality tasks.[7][8] That is an important positive result. It means repeated sampling, critique and aggregation can locate a better answer. It does not establish that agreement is independent assurance. A method can improve mean accuracy while preserving a high conditional miss rate on a particular failure class.

Evidence on self-correction sharpens the point. Broadly prompted self-feedback is unreliable outside tasks with special structure, while reliable external feedback improves correction.[9] The design question is therefore not “one model or many?” It is “which additional observation or operation can disconfirm the proposal?”

Part III: Build another causal path

Different along the dimensions that can break the error

A verification path has more anatomy than a model endpoint. It begins before inference and ends after the claimed effect. The following dimensions should be recorded separately, because averaging them into one “diversity score” would manufacture precision.

Evidence lineage
Did both paths receive the same retrieved chunks, document extraction, sensor feed or human summary? An independent path may query the authoritative source directly or use a separately generated sample.
Representation and extraction
Did both consume the same OCR, parser, schema mapping or feature transform? Re-running the same model on the same malformed representation cannot recover omitted state.
Question and objective
Did the verifier answer “does this rationale sound right?”, or test a narrower invariant such as amount equality, policy entitlement, conservation, type safety or temporal validity?
Computation or oracle
Did both paths use open-ended generation, or did one invoke a compiler, theorem checker, database constraint, simulator, signed ledger, unit test or domain calculation?
Model and training lineage
Provider, architecture, data lineage and post-training still matter. They are one layer of diversity, not a certificate for the whole path.
Interaction order
Did the verifier commit before seeing the proposal, or inherit its decomposition and confidence? Blind-first work can preserve evidence value.
Authority and receipts
Can the verifier actually block release? Does the system preserve the proposal, check result, source identifiers, policy decision and effect readback?

The verifier should be designed backwards from a plausible shared failure, not forwards from an available second model. Ask what defect must be caught, which observation exposes it and which tool can make that observation with different failure causes.

Verify the claim in slices

A consequential proposal is rarely one indivisible statement. “Release this payment” contains several claims: the requester has the right identity; the supplier and bank account are authorised; the invoice corresponds to delivered goods; the net amount is correct; required approvals exist; the evidence was valid at the decision cut-off; and the action is still permitted now. Asking a second model whether the whole proposal is correct encourages it to repeat the proposer’s narrative.

Decomposition lets each claim meet an appropriate check. Identity can be validated by the identity provider. Amount equality can be computed. Approval thresholds can be evaluated by a policy engine. Document completeness can be checked against a signed manifest. Temporal claims can be replayed against bitemporal records. A model may still be needed to interpret an unusual clause, but its interpretation becomes one typed input rather than the final authority.

This is not defence by bureaucracy. It reduces duplicate cognition. The verifier does not need to recreate every judgement. It needs enough orthogonal coverage to make the dangerous errors observable. One path can verify the arithmetic while another checks entitlement, and the authority kernel can require both receipts only when irreversibility warrants the cost.

The method also clarifies disagreement. If the proposal and amount oracle disagree, the system knows which claim failed. If two broad model rationales disagree, a human first has to discover what they are disagreeing about. Claim decomposition converts vague dissent into a recoverable state transition.

Swap the oracle, rather than only the speaker

Thought experiment 4

A coding agent writes a function. You can verify it in one of two ways. Path A asks a different model to review the code and explanation. Path B uses the original model again, but strips its explanation, generates boundary inputs from the specification, runs property-based tests and asks the model only to classify failing traces.

Which path is more independent? Path A has greater model diversity. Path B may have greater failure-path independence because executable behaviour can contradict fluent prose. Now reverse the situation: if the specification itself is ambiguous, both test generation and review may encode the same mistaken requirement. The independent oracle must target the suspected failure, rather than only look mechanical.

This thought experiment blocks two simplistic rules. “Always use another provider” is too weak, because shared evidence and task structure can dominate. “Always use deterministic tools” is also too strong, because tools faithfully enforce their inputs. The design criterion is whether the path introduces a disconfirming constraint that the proposer’s error cannot easily survive.

The payment check, rebuilt

Worked example 3: a configured system

Return to the £480,000 payment. The proposer is allowed to interpret unstructured commercial context: whether the invoice appears related to the purchase order, whether a delivery note is plausible and which exception code might apply. It returns a typed proposal, not an action: supplier ID, invoice ID, gross amount, proposed net amount, source references, confidence and unresolved questions.

The verifier does not critique the prose. It independently reads the signed bundle manifest, checks expected page count, queries the purchase-order and goods-receipt records, and calculates net payable from invoice and credit-note rows. It also confirms that the supplier bank account matches the separately governed master record. Any mismatch creates an abstention packet for a human controller.

The authority kernel then checks the requester’s capability, amount ceiling, segregation-of-duties policy and temporal entitlement. Only a matching proposal, verification receipt and policy decision can produce a typed payment instruction. The payment rail returns an effect receipt, and a readback confirms the posted amount.

Annotated worked example of a payment proposal and independent reconciliation The left side shows a proposer reading an extracted packet and proposing 480,000 pounds. The right side shows a verifier using a signed bundle manifest, purchase-order ledger, goods receipt and credit-note register to compute 180,000 pounds and emit a mismatch receipt. One decision, two evidence lineages Proposal path OCR packet, pages 1 to 2 credit-note page omitted Model proposal gross amount = £480,000 rationale appears coherent proposed release £480,000 Broad interpretation, incomplete evidence Verification path signed manifest3 pages expected credit register£300,000 credit PO ledgerauthorised amount goods receiptdelivered quantity Typed reconciliation £480,000 − £300,000 = £180,000 mismatch receipt block and escalate contradiction Authority sees proposal + independent receipt, not two opinions
The verifier checks a different object. The proposer interprets commercial context. The verifier reconstructs the payable amount from authoritative records and emits a typed mismatch receipt.Illustrative configured-system example. No deployment result is claimed.

The paths need not duplicate the whole task. Their overlap should be the decision claim, while their evidence or operation differs enough to expose the target failure.

The configured example separates vocabulary that is often collapsed. The model produces a proposal. The ledger supplies world state. The policy engine holds authority. The payment instruction is a typed action. The mismatch, policy decision and payment readback are evidence and receipts. None of these should be called “memory”.

System boundary for governed proposal, verification, authority and outcome A layered system view places untrusted generative components inside a proposal zone, an independent verifier in an evidence zone, a deterministic authority kernel at the release boundary, and external systems of record beyond it. Receipts flow back through a separate evidence ledger. Different paths meet only at a typed release boundary GOVERNED DECISION SYSTEM Proposal zone intent + permitted context model proposal + uncertainty no direct action authority Verification zone independent source access typed checks + failure injection verification receipt Deterministic authority kernel identity · capability · policy · cut-off · action contract Evidence and decision ledger Typed action gateway System of record returns effect receipt and readback
Verification gains force at the authority boundary. A model proposal and a verification receipt remain evidence. The deterministic kernel decides whether they satisfy identity, policy, time and action constraints.Practitioner synthesis.

A verifier that cannot block or escalate is advisory. A gate without effect readback verifies intent but not outcome. The end-to-end claim therefore includes release and recovery, not only answer comparison.

The verification path dossier

The following instrument turns “independent reviewer” into an auditable claim. For each consequential action class, record the proposer path, the verifier path, the suspected common cause, the intervention that should expose it and the empirical test. Leave cells blank when evidence is absent. Missingness is more honest than a reassuring score.

Verification path dossier matrix A matrix lists evidence lineage, extraction, objective, oracle, model lineage, interaction order and authority. Each row records whether the path is shared, deliberately varied and empirically tested. Do not score diversity. Record where it lives. Path dimension Shared defect candidate Designed variation Test evidence Evidence lineageExtractionQuestionOracleModel lineageInteractionAuthority same document packetmay omit a page same OCR and parsermay share malformed fields same broad correctness promptrewards plausible rationale open-ended generationmay repeat learned shortcut related model familyunknown overlap verifier sees proposal firstanchoring possible advisory onlycannot block action signed manifest + ledgerseparate source query typed API readindependent page count amount equality + entitlementorthogonal invariant deterministic reconciliationproperty tests second family where usefulnot sole control blind-first commitmentcompare after seal typed block or escalatereceipt required injected omission parser swap pilot replay unknown A/B test gate log Green = tested evidence · saffron = incomplete · coral = unresolved. Labels, not colour, carry meaning.
A verification path dossier. Each row names a possible common cause, a designed variation and the operating evidence that supports it. No composite independence score is produced.New decision instrument proposed in this paper.

The dossier should be versioned by action class and configuration. A path that is independent for arithmetic may be dependent for policy interpretation. A model upgrade, retriever change or new interaction protocol can invalidate previous evidence.

The smallest useful dossier can fit on one page. Start with one high-consequence failure class, such as omitted document state or misapplied amount threshold. Define the proposer failure, define what counts as a verifier miss, create a matched test set with injected instances, and preserve both paths’ source and configuration identifiers. This is enough to move from a naming claim to a causal test.

Worked example 4: the specification trap

A policy states that payments “exceeding £250,000” require committee approval. A cross-currency invoice is worth £247,000 at submission and £253,000 at execution. The proposer uses the submission rate. A deterministic verifier implements the same reading because its rule was compiled from the proposer team’s summary. Both paths are internally correct and jointly wrong if policy intended the execution rate.

Adding another model may produce a debate about wording, but no path can settle the policy owner’s intent from the sentence alone. The correct response is to expose the unresolved temporal reference, abstain and obtain an authoritative interpretation. Once recorded, the policy engine can enforce the clarified rule and historical replay can show which rate was knowable at each cut-off.

The failure is not weak reasoning. It is under-specified authority. This is where “different path” reaches its boundary: independent computation cannot manufacture a missing normative fact.

When unanimity is the attack

An adversary does not need to defeat several models separately if it can shape their common input. A poisoned retrieval item, malicious document annotation or compromised policy summary can fan out to every reviewer. More agents may then amplify the malicious source by producing multiple mutually reinforcing rationales.

Adversarial source poisoning fans out to multiple reviewers A coral poisoned source at left passes through one retriever and fans out to four model reviewers that all approve. A separate teal path queries an authoritative source and blocks the action. A shared source turns a panel into one attack surface poisonedsource shared retrieverone representation Model A: approveModel B: approveModel C: approveModel D: approve unanimouswrong release authoritative source query block + receipt
Consensus can be an adversarial symptom. Four reviewers do not create four evidence paths when one poisoned source controls all four inputs. An authoritative query outside that fan-out supplies the disconfirming route.Illustrative adversarial path.

The same structure appears without an attacker when a document pipeline truncates pages or a benchmark annotation is wrong. Security and reliability meet at the shared ancestor.

A recent N-version coding-agent preprint reports both sides of the story: diverse implementations often reduced observed failure, yet coincident failures exceeded an independence prediction and clustered around ambiguous or difficult items.[11] Because this is a preprint on a particular benchmark, its numerical results should not be generalised. Its experimental shape is valuable: retain the benefit of diversity, then measure the dependence that remains.

How the claim changes under pressure
Chart · state
stateDiagram-v2
  [*] --> Claim
  state "Two climbers, one map" as Claim
  state "The hidden common ancestors" as Test
  state "Four ways to look separate<br/>while remaining coupled" as Revision
  Claim --> Test: expose mechanism
  Test --> Decision: evidence survives
  Test --> Revision: rival survives
  Revision --> Claim: narrow or rebuild
  Decision --> [*]
The revision loop begins with Two climbers, one map and keeps counterexamples inside the reasoning path. Reading use: follow the relation, then return to the surrounding argument for evidence and limits.

Part IV: Test the path

A small dependence lab

The interactive lab below implements the difficulty-mixture mechanism. It assumes proposer and verifier failures are independent within each difficulty stratum, then shows how a mixed workload and a shared-source fault create marginal dependence. The numbers are synthetic. Their purpose is to expose logic that prose can hide.

Different-path dependence lab

Adjust workload difficulty, path error rates and shared-source fault probability. Results update analytically, without random sampling.

7.80%proposer marginal error
7.80%verifier marginal miss
0.61%joint risk if marginals were independent
3.64%actual joint risk under the model
5.98×error-dependence amplification D
46.62%verifier miss given proposer failure
Naive and actual undetected error comparison Bars update to compare the joint risk predicted by multiplying marginal errors with the actual joint risk under mixed difficulty and shared-source faults. 0.61% 3.64% naive product actual joint chart scale: 0 to 4.00%

A proposer failure makes verifier failure about 5.98 times more likely than the verifier’s marginal miss rate would suggest.

An executable dependence surface. The lab separates marginal quality, naive joint risk, actual joint risk and conditional verifier miss. Add a shared-source fault to see why model improvements alone may not repair assurance.Interactive synthetic model. Assumptions are stated below.

A positive result, meaning low conditional miss under injected proposer failures, permits a bounded claim about that tested action class and configuration. A negative result means the second path should not be credited as independent assurance. Neither result establishes correctness on untested failures.

How to use the lab

Begin with the default mixture. The 90 per cent easy workload hides a hard stratum that creates nearly sixfold joint-risk amplification. Lower the verifier’s hard-case miss rate while leaving proposer rates unchanged. This simulates a check that is specifically better on proposer failure cases. The conditional miss and actual joint risk fall.

Next, set both hard-case rates low but introduce a shared-source fault. This represents a missing page, poisoned retrieval item or common incorrect label that defeats both paths before their own reasoning begins. The amplification rises again. The repair is not necessarily a stronger model. It is an independent source, representation or invariant that can detect the common fault.

The lab encodes three assumptions. Cases belong to an easy or hard stratum. Errors are independent inside each stratum except for the explicit shared-source event. The shared event makes both paths fail. Real data can violate all three assumptions, so the production audit should use observed rows, stratified by meaningful failure classes.

The executable audit

The Python artefact below accepts case-level records. It computes marginal error, joint error, naive independent joint error, amplification, the verifier’s miss rate conditional on proposer failure and per-stratum summaries. Replace the synthetic rows with authorised test data. A browser button above downloads the same code as verification_dependence_audit.py.

Python · verification_dependence_audit.py
from __future__ import annotations

from dataclasses import dataclass, asdict
from typing import Iterable, Sequence
import json


@dataclass(frozen=True)
class Case:
    case_id: str
    stratum: str
    proposer_wrong: bool
    verifier_wrong: bool
    verifier_accepts: bool


@dataclass(frozen=True)
class Metrics:
    n: int
    proposer_error: float
    verifier_error: float
    joint_error: float
    naive_joint: float
    amplification: float | None
    conditional_miss: float | None


def _rate(values: Sequence[bool]) -> float:
    if not values:
        raise ValueError("A rate requires at least one observation")
    return sum(values) / len(values)


def audit(cases: Iterable[Case]) -> dict[str, object]:
    rows = list(cases)
    if not rows:
        raise ValueError("Provide at least one case")
    if len({row.case_id for row in rows}) != len(rows):
        raise ValueError("case_id values must be unique")

    p = _rate([row.proposer_wrong for row in rows])
    v = _rate([row.verifier_wrong for row in rows])
    joint = _rate([
        row.proposer_wrong and row.verifier_wrong for row in rows
    ])
    naive = p * v
    proposer_failures = [row for row in rows if row.proposer_wrong]
    miss = (
        _rate([row.verifier_accepts for row in proposer_failures])
        if proposer_failures else None
    )
    amplification = joint / naive if naive > 0 else None

    overall = Metrics(
        n=len(rows), proposer_error=p, verifier_error=v,
        joint_error=joint, naive_joint=naive,
        amplification=amplification, conditional_miss=miss,
    )

    by_stratum: dict[str, dict[str, object]] = {}
    for name in sorted({row.stratum for row in rows}):
        subset = [row for row in rows if row.stratum == name]
        by_stratum[name] = audit_without_strata(subset)

    return {"overall": asdict(overall), "by_stratum": by_stratum}


def audit_without_strata(rows: Sequence[Case]) -> dict[str, object]:
    p = _rate([row.proposer_wrong for row in rows])
    v = _rate([row.verifier_wrong for row in rows])
    joint = _rate([row.proposer_wrong and row.verifier_wrong for row in rows])
    naive = p * v
    failures = [row for row in rows if row.proposer_wrong]
    return asdict(Metrics(
        n=len(rows), proposer_error=p, verifier_error=v,
        joint_error=joint, naive_joint=naive,
        amplification=(joint / naive if naive > 0 else None),
        conditional_miss=(
            _rate([row.verifier_accepts for row in failures])
            if failures else None
        ),
    ))


if __name__ == "__main__":
    sample = [
        Case("e1", "easy", False, False, False),
        Case("e2", "easy", False, False, False),
        Case("e3", "easy", True, False, False),
        Case("h1", "hard", True, True, True),
        Case("h2", "hard", True, True, True),
        Case("h3", "hard", False, True, False),
    ]
    print(json.dumps(audit(sample), indent=2))

Code caption. The audit tests whether verifier failures coincide with proposer failures more often than marginal rates imply, while preserving the release-relevant acceptance event and failure strata.

The verifier_wrong field measures the verifier’s own answer error. The verifier_accepts field measures the gate failure that matters when the proposer is wrong. They may differ. For example, a verifier can be uncertain rather than wrong yet still accept because the policy threshold is too permissive.

Read the result as a bounded claim

A low observed conditional miss does not mean the verifier is independent in general. It means that, among the proposer failures represented in the tested configuration, the gate usually blocked. Record the denominator. One miss among ten proposer failures and ten among one hundred have the same point estimate but support different confidence. Zero observed misses is especially easy to overread when failures are rare.

A negative result is often more useful than a flattering average. If both paths miss injected stale-state cases, the dossier points to a shared temporal source or absent readback. Repair that path, then rerun the same cases. The experiment becomes an engineering loop rather than a one-time benchmark.

For live monitoring, preserve enough information to distinguish drift from mix change. An increase in joint failure may mean that the verifier degraded, but it may also mean that more difficult cases entered the workload. Track failure strata, path versions and action types. Where labels arrive slowly, use near misses, human overrides and replayed incidents as leading evidence, while keeping them separate from confirmed failures.

Do not let the test become a route to automatic release. A positive result permits the organisation to credit a specific control in a specific assurance argument. It does not remove the need for authority limits, reversibility, incident response or periodic failure injection. Evidence for independence is versioned operating evidence, not a permanent property of an endpoint.

Technical depth: the six-step empirical protocol
  1. Define the release failure. State the wrong action, not a vague quality score.
  2. Build a proposer-failure set. Include natural failures and controlled injections such as omitted pages, stale state, ambiguous rules and poisoned retrieval.
  3. Freeze interaction order. Compare blind-first verification with proposal-visible verification as separate protocols.
  4. Record path lineage. Version sources, extraction, prompts, tools, models, policies and action schemas.
  5. Estimate conditional miss. Report P(verifier accepts | proposer wrong), joint error, amplification and confidence intervals, stratified by failure class.
  6. Replay configuration changes. Re-run the suite after model, retriever, policy, tool or workflow changes. Independence evidence expires when the path changes.
Technical depth: derive the mixture formula

Let H denote a hard case and E an easy case. Suppose proposer and verifier errors are independent conditional on H or E. Then the joint failure probability is the weighted sum of the two within-stratum products:

P(Fp ∩ Fv) = P(E)P(Fp|E)P(Fv|E) + P(H)P(Fp|H)P(Fv|H)

Multiplying marginal error rates instead mixes the strata before multiplication. The two expressions are equal only under restrictive conditions, such as no variation in difficulty effects. The gap is a covariance term induced by the latent stratum.

What would strengthen or weaken the proposal?

Open research hypothesis

For consequential AI workflows, path-level diversity in evidence, objective and oracle will predict reduction in conditional verifier miss better than provider-level model diversity alone.

The hypothesis is strengthened if preregistered failure injections show that adding an independent source or orthogonal oracle reduces misses after controlling for model quality and case difficulty. It is weakened if provider or architecture variation predicts the reduction equally well and path interventions add no benefit. A rival explanation is that the new path simply has higher standalone accuracy. Matched tests should therefore compare paths with similar marginal quality but different shared ancestors.

Do not apply the claim to low-consequence creative generation where disagreement costs more than residual error. The smallest implementation is one action class, two failure injections, blind-first commitments and a typed release log.

The strongest boundary

Boundary condition

No verifier is independent of the world it is trying to describe. Two paths may legitimately converge because the underlying fact is unambiguous. They may also share a single authoritative source because no independent source exists. In those cases, the goal is not fictional independence. It is to expose source integrity, check internal consistency, monitor change and bound the action’s reversibility.

Nor does correlation prove that a panel is useless. Self-consistency, debate and diverse implementations can improve accuracy. The claim is narrower: do not price the residual risk as though reviewers were independent unless the relevant failure event has been tested.

NIST guidance for critical AI systems emphasises validation against intended use and misuse, and the Generative AI Profile calls for independent evaluation and assessment.[12][13] The path framework adds an engineering question to that governance requirement: independent in what causal sense, for which failure, under which configuration and with what receipt?

Practical decision rule

Before crediting a second model, reviewer or agent as a risk control, name one proposer failure it should catch. Trace both paths backwards to their shared ancestors. Introduce a source, representation, invariant or oracle that can break the target failure. Generate blind-first commitments where interaction could anchor the check. Then measure the verifier’s miss rate on proposer failures and preserve the evidence at the release boundary.

The evidence conversation
Chart · sequence
sequenceDiagram
  participant Q as Question
  participant M as Mechanism
  participant E as Evidence
  participant D as Decision
  Q->>M: Part I, The second-opinion illusion
  M->>E: Two climbers, one map
  E-->>M: compare rival explanations
  E->>D: Spend verification on a different failure path
  D-->>Q: revise scope or act
Question, mechanism, evidence and decision exchange the burdens developed in Trust, but verify with a different path. Reading use: follow the relation, then return to the surrounding argument for evidence and limits.

Spend verification on a different failure path

Stop asking, “How many models agreed?” Ask, “What new fact or constraint entered because the second path existed?”

If the answer is only another rationale over the same evidence, treat the result as ensemble performance, not independent assurance. It may still improve average quality. It should not silently lower the risk estimate for a consequential release.

If the second path uses independently obtained state, a different representation, an orthogonal invariant or an executable oracle, and if it demonstrates a low conditional miss rate on the proposer’s actual failure classes, then it has earned a bounded verification claim. The claim belongs to that configured path, action class and test distribution. It does not travel automatically to another task or model version.

The decision is to buy disconfirmation, not duplication. Spend the next unit of verification effort on the path that can make the proposal fail for a different reason. Sometimes that will be another model. Often it will be a ledger query, a compiler, a simulator, a held-out source, a blind-first human judgement or a deterministic authority rule.

Two green verdicts can still be useful. One green verdict and one well-designed contradiction test are usually more informative.

Glossary

Conditional miss
The probability that a verifier accepts or fails to block, given that the proposer is wrong.
Error-dependence amplification
The observed joint failure rate divided by the product of marginal failure rates on the tested distribution.
Failure-path independence
A task-local property in which the causal route that can make one check accept a wrong decision differs from the route affecting another.
Blind-first commitment
A verifier’s recorded conclusion and decisive evidence before seeing the proposer’s answer or rationale.
Typed oracle
A constrained operation, such as a ledger reconciliation, compiler or invariant check, whose inputs and outputs have explicit semantics.
Decision receipt
A durable record of the evidence, configuration, policy and result used at an authority boundary.

References

  1. Knight, J. C., & Leveson, N. G. (1986). An experimental evaluation of the assumption of independence in multiversion programming. IEEE Transactions on Software Engineering, SE-12(1), 96–109. DOI.
  2. Eckhardt, D. E., & Lee, L. D. (1985). A theoretical basis for the analysis of multiversion software subject to coincident errors. IEEE Transactions on Software Engineering, SE-11(12), 1511–1517. DOI.
  3. Littlewood, B., & Miller, D. R. (1989). Conceptual modeling of coincident failures in multiversion software. IEEE Transactions on Software Engineering, 15(12), 1596–1614. DOI.
  4. Littlewood, B., & Strigini, L. (1993). Validation of ultra-high dependability for software-based systems. Communications of the ACM, 36(11), 69–80. DOI.
  5. Kim, E. M., Garg, A., Peng, K., & Garg, N. (2025). Correlated errors in large language models. Proceedings of the 42nd International Conference on Machine Learning, PMLR 267, 30038–30066. PMLR.
  6. Kohli, G. (2026). Nine judges, two effective votes: Correlated errors undermine LLM evaluation panels. arXiv preprint. Preliminary evidence. arXiv.
  7. Du, Y., Li, S., Torralba, A., Tenenbaum, J. B., & Mordatch, I. (2024). Improving factuality and reasoning in language models through multiagent debate. Proceedings of the 41st International Conference on Machine Learning, PMLR 235, 11733–11763. PMLR.
  8. Wang, X., Wei, J., Schuurmans, D., Le, Q., Chi, E., Narang, S., Chowdhery, A., & Zhou, D. (2023). Self-consistency improves chain of thought reasoning in language models. International Conference on Learning Representations. OpenReview.
  9. Kamoi, R., Zhang, Y., Zhang, N., Han, J., & Zhang, R. (2024). When can LLMs actually correct their own mistakes? A critical survey of self-correction of LLMs. Transactions of the Association for Computational Linguistics, 12, 1417–1440. DOI.
  10. Ann, S. E., Liu, H., & Tan, C. (2026). The interaction tax: When communication erases diversity in multi-agent teams. arXiv preprint. Preliminary evidence limited to verifier-scored optimisation tasks. arXiv.
  11. Ron, J., Baudry, B., & Monperrus, M. (2026). N-version programming with coding agents. arXiv preprint. Preliminary evidence. arXiv.
  12. Laplante, P., DeFranco, J., Kuhn, D. R., Voas, J., & Kassab, M. (2024). Proxy validation and verification for critical AI systems: A proxy design process (NIST CSWP 31). National Institute of Standards and Technology. DOI.
  13. National Institute of Standards and Technology. (2024). Artificial Intelligence Risk Management Framework: Generative Artificial Intelligence Profile (NIST AI 600-1). DOI.