"The adult human brain has approximately 86 billion neurons and an average of 7,000 synapses per neuron, resulting in a total synaptic count exceeding 6 × 10^14."

neuroscience biology mathematics · generated 2026-03-28 · v0.10.0
PARTIALLY VERIFIED 3 citations
Evidence assessed across 3 verified citations.
Verified by Proof Engine — an open-source tool that verifies claims using cited sources and executable code. Reasoning transparent and auditable.
methodology · github · re-run this proof · submit your own

The neuron count holds up well — but the synapse math rests on a figure that was never meant to apply to the whole brain, making the final total off by roughly an order of magnitude.

What Was Claimed?

You may have encountered the claim that the human brain contains 86 billion neurons, each connecting to about 7,000 others, putting the total number of synaptic connections somewhere above 600 trillion. It shows up in popular science articles, educational videos, and casual explanations of why the brain is so complex. The implied conclusion is that the sheer scale of those connections — 6 × 10¹⁴ of them — is what makes human cognition possible.

What Did We Find?

The 86 billion neuron figure is solid. A landmark 2009 study by neuroscientist Suzana Herculano-Houzel used a rigorous counting method — essentially liquefying brain tissue and counting cell nuclei — to arrive at that number. The UCLA Brain Research Institute independently reports the same figure. This part of the claim is well established.

The 7,000 synapses per neuron figure is real too, but it comes with a catch that changes everything. The primary source, a Harvard Medical School database entry citing a 2005 paper in the journal Neurology, is explicit: the 7,000 figure applies to roughly 20 billion neocortical neurons — the neurons of the brain's outer thinking layer. It does not apply to all 86 billion neurons.

That distinction matters enormously because of the cerebellum. Tucked at the back of the brain, the cerebellum contains about 69 billion granule cells — the most numerous type of neuron in the entire brain. These cells have only around 4 to 5 synapses each, not 7,000. When you apply the neocortical average to all 86 billion neurons, you're treating tiny, sparsely connected cerebellar cells as if they were richly connected cortical ones.

The arithmetic in the original claim is correct given its own premises: 86 billion times 7,000 does equal approximately 6 × 10¹⁴. But those premises don't hold for the brain as a whole. A more accurate estimate — applying 7,000 only to the 20 billion neocortical neurons — gives roughly 1.4 × 10¹⁴. Searches through the primary research literature found whole-brain synapse estimates consistently in the range of 1 to 3 × 10¹⁴. No peer-reviewed source was found reporting 6 × 10¹⁴ as a whole-brain figure.

What Should You Keep In Mind?

The 86 billion neuron figure itself has some scientific nuance: a 2024 paper raised questions about the precision of the underlying data, suggesting the true number might fall anywhere from about 73 to 99 billion. A 2025 rebuttal defended the estimate and recommended phrasing it as "around 86 billion." For everyday purposes, the claim's use of "approximately" is reasonable.

The synapse story is trickier. The 7,000 figure is not wrong — it's the accepted average for neocortical neurons. The problem is that this neocortical average gets repeated in popular sources without the qualifier, and it then gets multiplied by the total neuron count as if it applied universally. This is a common pattern in science communication: a specific, carefully bounded finding becomes a round number that travels far from its original context.

This verification also highlights something worth remembering: even when a calculation is arithmetically correct, the inputs matter. The math here works perfectly — the error lives in what was plugged into it.

How Was This Verified?

This claim was checked by retrieving and quoting the primary sources for both the neuron count and the synapses-per-neuron figure, confirming that the synapse figure is explicitly limited to neocortical neurons in its source, and searching primary literature for any whole-brain synapse estimates near 6 × 10¹⁴. You can read the structured proof report for a full breakdown of each sub-claim, inspect the full verification audit for every source quote and extraction record, or re-run the proof yourself to reproduce all results independently.

What could challenge this verdict?

"Is the 86 billion neuron figure disputed?" Goriely (2024, Brain, PMC11884752) argued that confidence intervals on the Azevedo 2009 data span approximately 73–99 billion, making it imprecise to state "86 billion" specifically. A 2025 rebuttal (Oxford Brain, PMID 39913195) defended the ~86 billion estimate and recommended the phrasing "around 86 billion neurons." This dispute concerns precision, not order-of-magnitude. SC1 (approximately 86 billion) is not undermined. Does not break the proof.

"Does the 7,000 synapses/neuron figure apply to ALL brain neurons?" The primary source (BioNumbers BNID 112055/Drachman 2005) explicitly limits the 7,000 figure to neocortical neurons. The ~69 billion cerebellar granule cells have only 4–5 synapses. If only the 20 billion neocortical neurons average 7,000 synapses, the neocortical contribution is ~1.4 × 10¹⁴, far below the claimed 6 × 10¹⁴. Breaks SC2 for all neurons.

"Do any primary sources report total brain synapses at or above 6 × 10¹⁴?" Searches of PubMed, PMC, and educational sources found: UCLA BRI ~100 trillion (1 × 10¹⁴); Pakkenberg et al. 2003 (PMID 12543266) ~1.5 × 10¹⁴ for neocortex alone; Tang et al. 2001 (PMID 11418939) ~1.64 × 10¹⁴ neocortex; PMC11423976 cites "around 10¹⁴ (100 trillion) synapses in the average adult human brain." No primary peer-reviewed source was found reporting 6 × 10¹⁴ as a whole-brain figure. Breaks SC3 empirically.


Sources

SourceIDTypeVerified
Frontiers in Human Neuroscience, Herculano-Houzel 2009 (PubMed Central) B1 Government Yes
UCLA Brain Research Institute, Brain Facts B2 Academic Yes
BioNumbers BNID 112055, Harvard Medical School (citing Drachman 2005, Neurology) B3 Academic Yes
SC3 arithmetic: 86e9 × 7,000 = 6.02e14 A1 Computed
SC3 comparison: 6.02e14 > 6e14 A2 Computed

detailed evidence

Detailed Evidence

Evidence Summary

ID Fact Verified
B1 Herculano-Houzel 2009 (Frontiers Hum Neurosci, PMC2776484): 86B neurons in adult brain Yes
B2 UCLA Brain Research Institute: ~86B neurons, ~100 trillion synapses whole-brain Yes
B3 BioNumbers BNID 112055 (Harvard/Drachman 2005): 7,000 synapses per neocortical neuron Yes
A1 SC3 arithmetic: 86 × 10⁹ × 7,000 = 6.02 × 10¹⁴ Computed
A2 SC3 comparison: 6.02 × 10¹⁴ > 6 × 10¹⁴ Computed

Proof Logic

SC1: Neuron Count (~86 billion)

Herculano-Houzel (2009), published in Frontiers in Human Neuroscience (B1, PMC2776484), established via the isotropic fractionator ("brain soup") method that "the adult male human brain, at an average of 1.5 kg, has 86 billion neurons and 85 billion non-neuronal cells." This superseded the long-standing informal estimate of 100 billion, which was never based on a primary count. The UCLA Brain Research Institute independently states "The human brain contains approximately 86 billion neurons" (B2).

Both sources agree exactly on 86 billion (B1, B2 — independently sourced). SC1 is proved.

SC2: Average Synapses per Neuron (7,000)

The 7,000 figure is cited by BioNumbers BNID 112055 (Harvard Medical School), which explicitly states: "stereologic studies estimate that there are approximately 20 billion neocortical neurons, with an average of 7,000 synaptic connections each" (B3, emphasis added). The primary source behind this entry is Drachman (2005, Neurology 64:2004), which itself cites Pakkenberg et al. 2003 for neocortical data.

The figure applies to the neocortex (~20 billion of the 86 billion total neurons), not the whole brain. The cerebellum alone contains approximately 69 billion granule cells with only 4–5 synapses each — the single most numerous neuron type in the brain. Applying 7,000 as a brain-wide average is a conflation of two different populations. SC2 as stated (for all neurons) is not supported.

SC3: Total Synaptic Count > 6 × 10¹⁴

Given the stated premises, the arithmetic is correct (A1, A2):

86 × 10⁹ neurons × 7,000 synapses/neuron = 6.02 × 10¹⁴ > 6 × 10¹⁴ ✓

However, because SC2 does not validly apply to all 86 billion neurons, this product is not a valid estimate of the total. Applying 7,000 only to the ~20 billion neocortical neurons gives 1.4 × 10¹⁴, consistent with primary literature whole-brain estimates of ~1–3 × 10¹⁴. SC3 is arithmetically true given the premises but empirically unsupported.


Conclusion

Verdict: PARTIALLY VERIFIED

  • SC1 (86 billion neurons): PROVED. Two independently verified sources (B1: PMC peer-reviewed; B2: UCLA BRI) confirm ~86 billion neurons. The prior "100 billion" figure was never based on a primary count.
  • SC2 (7,000 synapses/neuron brain-wide): NOT SUPPORTED. The 7,000 figure is the established average for neocortical neurons specifically (B3: BioNumbers/Harvard, citing Drachman 2005). The cerebellum's ~69 billion granule cells have only 4–5 synapses each, making the true brain-wide average far lower.
  • SC3 (total > 6 × 10¹⁴): NOT EMPIRICALLY SUPPORTED. The arithmetic follows from the stated premises (A1, A2), but because SC2 is invalid brain-wide, the product is not a valid total. Primary literature consistently reports ~1–3 × 10¹⁴ whole-brain synapses — an order of magnitude below 6 × 10¹⁴.

The claim as a whole is a widely repeated but scientifically imprecise formulation. It conflates a neocortex-specific synapse average with a whole-brain calculation, yielding a total that exceeds primary literature estimates by roughly 3–6×.

audit trail

Citation Verification 3/3 verified

All 3 citations verified.

Original audit log

B1 — Frontiers in Human Neuroscience (PMC2776484) - Status: verified - Method: full_quote - Fetch mode: live - Coverage: full match (no fragment)

B2 — UCLA Brain Research Institute - Status: verified - Method: full_quote - Fetch mode: live - Coverage: full match

B3 — BioNumbers BNID 112055 (Harvard) - Status: verified - Method: full_quote - Fetch mode: live - Coverage: full match

Source: proof.py JSON summary


Claim Specification
Field Value
Subject Adult human brain
SC1 Neuron count ≈ 86 billion (within ±15% tolerance)
SC2 Average synapses per neuron ≈ 7,000, applied brain-wide across all neurons
SC3 Total synaptic count = SC1 × SC2 > 6 × 10¹⁴
Operator >
Threshold 6.0 × 10¹⁴
Operator note "Exceeding 6 × 10¹⁴" means strictly > 6.0e14. Arithmetic (86e9 × 7000 = 6.02e14) is correct given premises. SC2 as stated for all neurons is unsupported; 7,000 is the neocortical figure only.

Source: proof.py JSON summary


Claim Interpretation

Natural language claim: "The adult human brain has approximately 86 billion neurons and an average of 7,000 synapses per neuron, resulting in a total synaptic count exceeding 6 × 10^14."

Formal interpretation:

Sub-claim Interpretation
SC1 Neuron count ≈ 86 billion (within ±15% tolerance)
SC2 Average synapses per neuron ≈ 7,000, applied brain-wide across all neurons
SC3 Total synaptic count = SC1 × SC2 > 6 × 10¹⁴

Operator note: "Exceeding 6 × 10¹⁴" means strictly greater than 6.0 × 10¹⁴. The arithmetic (86 × 10⁹ × 7,000 = 6.02 × 10¹⁴) is correct given the stated premises. However, the 7,000 synapses/neuron figure originates from research on neocortical neurons specifically (~20 billion neurons), not all 86 billion brain neurons. Applying it as a brain-wide average — including the ~69 billion cerebellar granule cells (which have only 4–5 synapses each) — inflates the estimated total by roughly 3–5×. SC2 as stated for all neurons is unsupported by primary literature.


Source Credibility Assessment
Fact ID Domain Type Tier Note
B1 nih.gov government 5 PubMed Central — NIH-hosted peer-reviewed full text
B2 ucla.edu academic 4 UCLA Brain Research Institute fact page
B3 harvard.edu academic 4 BioNumbers, Harvard Medical School; cites Drachman 2005 (Neurology)

All sources are Tier 4–5. No low-credibility sources used.

Source: proof.py JSON summary


Computation Traces
SC3: total synaptic count (86e9 neurons × 7,000 synapses/neuron): neurons * synapses_per_neuron = 86000000000.0 * 7000.0 = 6.02e+14
SC3 arithmetic: total_synapses > 6e14: 602000000000000.0 > 600000000000000.0 = True
SC1: neurons_a >= 70e9 (well within ~86B range): 86000000000.0 >= 70000000000.0 = True
SC1 neuron count: B1 (Herculano-Houzel) vs B2 (UCLA BRI): 86000000000.0 vs 86000000000.0, diff=0.0, tolerance=0.0 -> AGREE

Source: proof.py inline output (execution trace)


Independent Source Agreement
Cross-check Source A Source B Values Agreement
SC1 neuron count B1: Herculano-Houzel 2009 (86e9) B2: UCLA BRI (86e9) 86,000,000,000 vs 86,000,000,000 ✓ Exact agreement

Note: The neuron count cross-check is independent (different organizations, different publication types: peer-reviewed journal vs university fact page). The synapse average (B3) has no second independent source giving the same brain-wide figure; B3 is the sole citation for SC2.

Source: proof.py JSON summary


Adversarial Checks

1. Is the 86 billion neuron figure disputed? - Verification performed: Searched for critiques of Herculano-Houzel's isotropic fractionator method. Found Goriely (Brain, 2024, PMC11884752) arguing confidence intervals span ~73–99 billion, not precisely 86 billion. A 2025 rebuttal (Brain, PMID 39913195) defends the ~86 billion estimate and recommends the phrasing 'around 86 billion neurons'. - Finding: 86 billion is the best current estimate. The uncertainty (±8B per Azevedo 2009) does not undermine SC1. The claim says 'approximately 86 billion', which is accurate. - Breaks proof: No

2. Does the 7,000 synapses/neuron figure apply to ALL brain neurons? - Verification performed: Read BioNumbers BNID 112055 (Harvard): explicitly says '~20 billion neocortical neurons, with an average of 7,000 synaptic connections each' — not all 86 billion. Primary source: Drachman 2005 (Neurology 64:2004), citing Pakkenberg et al. 2003 for neocortical data. The cerebellum alone contains ~69 billion granule cells with only 4–5 synapses each. If only neocortical neurons average 7,000: 20e9 × 7000 = 1.4e14, well below 6e14. - Finding: BREAKS SC2 as stated for ALL neurons. The 7,000 figure applies to neocortical neurons only. Brain-wide average is far lower due to the ~69 billion cerebellar granule cells. The compound claim's SC2 premise is a conflation of neocortical average with whole-brain average. - Breaks proof: Yes → SC2 and SC3 are unsupported

3. Do any primary sources report total brain synapses at or above 6×10¹⁴? - Verification performed: Searched PubMed, PMC, and educational sources for whole-brain synapse estimates. UCLA BRI (B2): ~100 trillion = 1×10¹⁴. Pakkenberg et al. 2003 (PMID 12543266): ~0.15×10¹⁵ = 1.5×10¹⁴ (neocortex only). Tang et al. 2001 (PMID 11418939): ~1.64×10¹⁴ (neocortex). PMC11423976: 'around 10¹⁴ (100 trillion) synapses in the average adult human brain'. No primary peer-reviewed source found reporting 6×10¹⁴ for the whole brain. - Finding: No primary source corroborates 6×10¹⁴ as the total synapse count. Primary literature consistently gives ~1–3×10¹⁴. The 6×10¹⁴ figure arises from applying the neocortical average (7,000) to all 86 billion neurons — a methodological error in the original claim. - Breaks proof: Yes → SC3 is empirically unsupported

Source: proof.py JSON summary


Quality Checks
Rule Status Notes
Rule 1: Every empirical value parsed from quote text, not hand-typed ✓ PASS extract_billion_neurons() and extract_synapses_per_neuron() use regex + verify_extraction()
Rule 2: Every citation URL fetched and quote checked ✓ PASS All 3 citations verified live via verify_all_citations()
Rule 3: System time used for date-dependent logic N/A No date-dependent calculations
Rule 4: Claim interpretation explicit with operator rationale ✓ PASS CLAIM_FORMAL with operator_note documenting the SC2 scope issue
Rule 5: Adversarial checks searched for independent counter-evidence ✓ PASS 3 checks; 2 break the proof (SC2 scope, SC3 empirical support)
Rule 6: Cross-checks used independently sourced inputs ✓ PASS SC1 neuron count cross-checked from B1 (PMC) and B2 (UCLA), exact agreement
Rule 7: Constants and formulas imported from computations.py, not hand-coded ✓ PASS compare(), explain_calc(), cross_check() used throughout
validate_proof.py result PASS with warnings 14/16 checks passed, 0 issues, 2 warnings (compound boolean assignments for sc3_holds and claim_holds — no compare() equivalent for logical conjunction)
Source Data
Fact ID Extracted Value Value in Quote Extraction Method
B1 8.600e+10 (86 billion) extract_billion_neurons(): regex (\d+)\s+billion\s+neurons on normalized text
B2 8.600e+10 (86 billion) extract_billion_neurons(): same function, independently applied
B3 7000.0 extract_synapses_per_neuron(): regex average of ([\d,]+) synaptic connections

Quote snippets: - B1: "the adult male human brain, at an average of 1.5 kg, has 86 billion neurons and..." - B2: "The human brain contains approximately 86 billion neurons, each forming thousand..." - B3: "Within the liter and a half of human brain, stereologic studies estimate that th..."

Source: proof.py JSON summary; extraction method is author analysis


Cite this proof
Proof Engine. (2026). Claim Verification: “The adult human brain has approximately 86 billion neurons and an average of 7,000 synapses per neuron, resulting in a total synaptic count exceeding 6 × 10^14.” — Partially verified. https://doi.org/10.5281/zenodo.19455665
Proof Engine. "Claim Verification: “The adult human brain has approximately 86 billion neurons and an average of 7,000 synapses per neuron, resulting in a total synaptic count exceeding 6 × 10^14.” — Partially verified." 2026. https://doi.org/10.5281/zenodo.19455665.
@misc{proofengine_the_adult_human_brain_has_approximately_86_billion,
  title   = {Claim Verification: “The adult human brain has approximately 86 billion neurons and an average of 7,000 synapses per neuron, resulting in a total synaptic count exceeding 6 × 10^14.” — Partially verified},
  author  = {{Proof Engine}},
  year    = {2026},
  url     = {https://proofengine.info/proofs/the-adult-human-brain-has-approximately-86-billion/},
  note    = {Verdict: PARTIALLY VERIFIED. Generated by proof-engine v0.10.0},
  doi     = {10.5281/zenodo.19455665},
}
TY  - DATA
TI  - Claim Verification: “The adult human brain has approximately 86 billion neurons and an average of 7,000 synapses per neuron, resulting in a total synaptic count exceeding 6 × 10^14.” — Partially verified
AU  - Proof Engine
PY  - 2026
UR  - https://proofengine.info/proofs/the-adult-human-brain-has-approximately-86-billion/
N1  - Verdict: PARTIALLY VERIFIED. Generated by proof-engine v0.10.0
DO  - 10.5281/zenodo.19455665
ER  -
View proof source 336 lines · 14.9 KB

This is the exact proof.py that was deposited to Zenodo and runs when you re-execute via Binder. Every fact in the verdict above traces to code below.

"""
Proof: The adult human brain has approximately 86 billion neurons and an average of
7,000 synapses per neuron, resulting in a total synaptic count exceeding 6 × 10^14.
Generated: 2026-03-27
"""
import json
from datetime import date
import re
import os
import sys

PROOF_ENGINE_ROOT = os.environ.get("PROOF_ENGINE_ROOT")
if not PROOF_ENGINE_ROOT:
    _d = os.path.dirname(os.path.abspath(__file__))
    while _d != os.path.dirname(_d):
        if os.path.isdir(os.path.join(_d, "proof-engine", "skills", "proof-engine", "scripts")):
            PROOF_ENGINE_ROOT = os.path.join(_d, "proof-engine", "skills", "proof-engine")
            break
        _d = os.path.dirname(_d)
    if not PROOF_ENGINE_ROOT:
        raise RuntimeError("PROOF_ENGINE_ROOT not set and skill dir not found via walk-up from proof.py")
sys.path.insert(0, PROOF_ENGINE_ROOT)

from scripts.smart_extract import normalize_unicode, verify_extraction
from scripts.verify_citations import verify_all_citations, build_citation_detail
from scripts.computations import compare, explain_calc, cross_check

# ---------------------------------------------------------------------------
# 1. CLAIM INTERPRETATION (Rule 4)
# ---------------------------------------------------------------------------
CLAIM_NATURAL = (
    "The adult human brain has approximately 86 billion neurons and an average of "
    "7,000 synapses per neuron, resulting in a total synaptic count exceeding 6 × 10^14."
)
CLAIM_FORMAL = {
    "subject": "Adult human brain",
    "sub_claims": {
        "SC1": "Neuron count ≈ 86 billion (within ±15% tolerance)",
        "SC2": "Average synapses per neuron ≈ 7,000, applied brain-wide across all neurons",
        "SC3": "Total synaptic count = SC1 × SC2 > 6 × 10^14",
    },
    "operator": ">",
    "operator_note": (
        "'Exceeding 6 × 10^14' means strictly greater than 6.0e14. "
        "The arithmetic (86e9 × 7000 = 6.02e14 > 6e14) is correct given the premises. "
        "However, the 7,000 synapses/neuron figure (SC2) originates from research on "
        "NEOCORTICAL neurons specifically (~20 billion neurons), not all 86 billion brain neurons. "
        "Applying it as a brain-wide average — including the ~69 billion cerebellar granule "
        "cells (which have only 4–5 synapses each) — inflates the estimated total by roughly "
        "3–5×. This makes SC2, as stated for all neurons, unsupported by primary literature. "
        "The compound claim is therefore only PARTIALLY VERIFIED."
    ),
    "threshold": 6e14,
}

# ---------------------------------------------------------------------------
# 2. FACT REGISTRY
# ---------------------------------------------------------------------------
FACT_REGISTRY = {
    "B1": {
        "key": "source_neurons_a",
        "label": "Herculano-Houzel 2009 (Frontiers Hum Neurosci, PMC2776484): 86B neurons in adult brain",
    },
    "B2": {
        "key": "source_neurons_b",
        "label": "UCLA Brain Research Institute: ~86B neurons, ~100 trillion synapses whole-brain",
    },
    "B3": {
        "key": "source_synapses",
        "label": "BioNumbers BNID 112055 (Harvard/Drachman 2005): 7,000 synapses per neocortical neuron",
    },
    "A1": {
        "label": "SC3 arithmetic: 86e9 × 7,000 = 6.02e14",
        "method": None,
        "result": None,
    },
    "A2": {
        "label": "SC3 comparison: 6.02e14 > 6e14",
        "method": None,
        "result": None,
    },
}

# ---------------------------------------------------------------------------
# 3. EMPIRICAL FACTS
# ---------------------------------------------------------------------------
empirical_facts = {
    "source_neurons_a": {
        "quote": (
            "the adult male human brain, at an average of 1.5 kg, has 86 billion neurons "
            "and 85 billion non-neuronal cells"
        ),
        "url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC2776484/",
        "source_name": "Frontiers in Human Neuroscience, Herculano-Houzel 2009 (PubMed Central)",
    },
    "source_neurons_b": {
        "quote": (
            "The human brain contains approximately 86 billion neurons, each forming "
            "thousands of connections, resulting in an estimated 100 trillion synapses."
        ),
        "url": "https://bri.ucla.edu/brain-fact/billions-of-neurons-trillions-of-synapses/",
        "source_name": "UCLA Brain Research Institute, Brain Facts",
    },
    "source_synapses": {
        "quote": (
            "Within the liter and a half of human brain, stereologic studies estimate "
            "that there are approximately 20 billion neocortical neurons, with an average "
            "of 7,000 synaptic connections each"
        ),
        "url": "https://bionumbers.hms.harvard.edu/bionumber.aspx?s=n&v=3&id=112055",
        "source_name": "BioNumbers BNID 112055, Harvard Medical School (citing Drachman 2005, Neurology)",
    },
}

# ---------------------------------------------------------------------------
# 4. CITATION VERIFICATION (Rule 2)
# ---------------------------------------------------------------------------
citation_results = verify_all_citations(empirical_facts, wayback_fallback=True)

# ---------------------------------------------------------------------------
# 5. VALUE EXTRACTION (Rule 1) — parse numbers from quote strings
# ---------------------------------------------------------------------------
def extract_billion_neurons(quote, fact_id):
    """Extract N-billion neuron count. Returns count as float (raw neurons, e.g. 86e9)."""
    norm = normalize_unicode(quote)
    match = re.search(r'(\d+)\s+billion\s+neurons', norm)
    if not match:
        raise ValueError(f"[{fact_id}] Could not find 'N billion neurons' in: {quote!r}")
    billions = int(match.group(1))
    verify_extraction(billions, quote, fact_id)
    return float(billions) * 1e9


def extract_synapses_per_neuron(quote, fact_id):
    """Extract synapses-per-neuron average from BioNumbers quote."""
    norm = normalize_unicode(quote)
    match = re.search(r'average of ([\d,]+) synaptic connections', norm)
    if not match:
        raise ValueError(f"[{fact_id}] Could not find synapse count in: {quote!r}")
    val_str = match.group(1).replace(",", "")
    value = float(val_str)
    verify_extraction(int(value), quote, fact_id)
    return value


neurons_a = extract_billion_neurons(empirical_facts["source_neurons_a"]["quote"], "B1")
neurons_b = extract_billion_neurons(empirical_facts["source_neurons_b"]["quote"], "B2")
synapses_per_neuron = extract_synapses_per_neuron(empirical_facts["source_synapses"]["quote"], "B3")

# ---------------------------------------------------------------------------
# 6. CROSS-CHECK (Rule 6): Two independent sources agree on neuron count
# ---------------------------------------------------------------------------
cross_check(
    neurons_a, neurons_b,
    tolerance=0.0,
    mode="absolute",
    label="SC1 neuron count: B1 (Herculano-Houzel) vs B2 (UCLA BRI)",
)

# ---------------------------------------------------------------------------
# 7. COMPUTATION (Rule 7): SC3 arithmetic
# ---------------------------------------------------------------------------
neurons = neurons_a  # primary source
total_synapses = explain_calc(
    "neurons * synapses_per_neuron",
    locals(),
    label="SC3: total synaptic count (86e9 neurons × 7,000 synapses/neuron)",
)
sc3_arithmetic = compare(
    total_synapses, ">", CLAIM_FORMAL["threshold"],
    label="SC3 arithmetic: total_synapses > 6e14",
)

# ---------------------------------------------------------------------------
# 8. SUB-CLAIM VERDICTS
# ---------------------------------------------------------------------------
# SC1: 86 billion neurons — supported by B1 and B2 independently
# Cross-check already passed; use compare() to make this auditable
sc1_holds = compare(neurons_a, ">=", 70e9, label="SC1: neurons_a >= 70e9 (well within ~86B range)")

# SC2: 7,000 synapses per neuron as a BRAIN-WIDE average — NOT supported
# The 7,000 figure (B3) is explicitly for NEOCORTICAL neurons (~20B of 86B total).
# The ~69 billion cerebellar granule cells have only 4–5 synapses each.
# Primary literature whole-brain totals: ~1×10^14 (UCLA BRI) to ~3×10^14, not 6×10^14.
# SC2 is assessed False based on adversarial evidence; no computed equivalent exists.
sc2_applies_to_all_neurons = False  # editorial verdict from adversarial check #2

# SC3: arithmetic holds IF SC1 and SC2 hold; fails because SC2 is false for all neurons
sc3_holds = sc1_holds and sc2_applies_to_all_neurons

# Compound claim holds only if all three sub-claims hold
claim_holds = sc1_holds and sc2_applies_to_all_neurons and sc3_holds

# ---------------------------------------------------------------------------
# 9. ADVERSARIAL CHECKS (Rule 5)
# ---------------------------------------------------------------------------
adversarial_checks = [
    {
        "question": "Is the 86 billion neuron figure disputed?",
        "verification_performed": (
            "Searched for critiques of Herculano-Houzel's isotropic fractionator method. "
            "Found Goriely (Brain, 2024, PMC11884752) arguing confidence intervals "
            "span ~73–99 billion, not precisely 86 billion. A 2025 rebuttal (Brain, "
            "PMID 39913195) defends the ~86 billion estimate and recommends the phrasing "
            "'around 86 billion neurons'."
        ),
        "finding": (
            "86 billion is the best current estimate. The uncertainty (±8B per Azevedo 2009) "
            "does not undermine SC1. The claim says 'approximately 86 billion', which is accurate."
        ),
        "breaks_proof": False,
    },
    {
        "question": "Does the 7,000 synapses/neuron figure apply to ALL brain neurons?",
        "verification_performed": (
            "Read BioNumbers BNID 112055 (Harvard): explicitly says '~20 billion neocortical "
            "neurons, with an average of 7,000 synaptic connections each' — not all 86 billion. "
            "Primary source: Drachman 2005 (Neurology 64:2004), citing Pakkenberg et al. 2003 "
            "for neocortical data. The cerebellum alone contains ~69 billion granule cells with "
            "only 4–5 synapses each (confirmed in multiple neuroanatomy texts). If only neocortical "
            "neurons average 7,000: 20e9 × 7000 = 1.4e14, well below 6e14."
        ),
        "finding": (
            "BREAKS SC2 as stated for ALL neurons. "
            "The 7,000 figure applies to neocortical neurons only. Brain-wide average is far lower "
            "due to the ~69 billion cerebellar granule cells. The compound claim's SC2 premise is "
            "a conflation of neocortical average with whole-brain average."
        ),
        "breaks_proof": True,
    },
    {
        "question": "Do any primary sources report total brain synapses at or above 6×10^14?",
        "verification_performed": (
            "Searched PubMed, PMC, and educational sources for whole-brain synapse estimates. "
            "UCLA BRI (B2): ~100 trillion = 1×10^14. "
            "Pakkenberg et al. 2003 (PMID 12543266): ~0.15×10^15 = 1.5×10^14 (neocortex only). "
            "Tang et al. 2001 (PMID 11418939): ~1.64×10^14 (neocortex). "
            "PMC11423976: 'around 10^14 (100 trillion) synapses in the average adult human brain'. "
            "No primary peer-reviewed source found reporting 6×10^14 for the whole brain."
        ),
        "finding": (
            "No primary source corroborates 6×10^14 as the total synapse count. "
            "Primary literature consistently gives ~1–3×10^14. The 6×10^14 figure arises "
            "from applying the neocortical average (7,000) to all 86 billion neurons — a "
            "methodological error in the original claim."
        ),
        "breaks_proof": True,
    },
]

# ---------------------------------------------------------------------------
# 10. VERDICT AND STRUCTURED OUTPUT
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    any_unverified = any(
        cr["status"] != "verified" for cr in citation_results.values()
    )

    # SC1 is proved; SC2 is not supported brain-wide; SC3 arithmetic is correct given
    # the stated premises but those premises are invalid for SC2 applied to all neurons.
    if sc1_holds and not sc2_applies_to_all_neurons:
        verdict = "PARTIALLY VERIFIED"
    elif claim_holds and not any_unverified:
        verdict = "PROVED"
    elif claim_holds and any_unverified:
        verdict = "PROVED (with unverified citations)"
    elif not claim_holds and not any_unverified:
        verdict = "DISPROVED"
    else:
        verdict = "UNDETERMINED"

    FACT_REGISTRY["A1"]["method"] = "explain_calc(neurons * synapses_per_neuron)"
    FACT_REGISTRY["A1"]["result"] = f"{total_synapses:.3e}"
    FACT_REGISTRY["A2"]["method"] = "compare(total_synapses, '>', 6e14)"
    FACT_REGISTRY["A2"]["result"] = str(sc3_arithmetic)

    citation_detail = build_citation_detail(FACT_REGISTRY, citation_results, empirical_facts)

    extractions = {
        "B1": {
            "value": f"{neurons_a:.3e}",
            "value_in_quote": True,
            "quote_snippet": empirical_facts["source_neurons_a"]["quote"][:80],
        },
        "B2": {
            "value": f"{neurons_b:.3e}",
            "value_in_quote": True,
            "quote_snippet": empirical_facts["source_neurons_b"]["quote"][:80],
        },
        "B3": {
            "value": str(synapses_per_neuron),
            "value_in_quote": True,
            "quote_snippet": empirical_facts["source_synapses"]["quote"][:80],
        },
    }

    summary = {
        "fact_registry": {
            fid: {k: v for k, v in info.items()}
            for fid, info in FACT_REGISTRY.items()
        },
        "claim_formal": CLAIM_FORMAL,
        "claim_natural": CLAIM_NATURAL,
        "citations": citation_detail,
        "extractions": extractions,
        "cross_checks": [
            {
                "description": "SC1 neuron count: B1 (Herculano-Houzel 86e9) vs B2 (UCLA BRI 86e9)",
                "values_compared": [str(neurons_a), str(neurons_b)],
                "agreement": neurons_a == neurons_b,
            }
        ],
        "adversarial_checks": adversarial_checks,
        "verdict": verdict,
        "key_results": {
            "sc1_neurons": f"{neurons_a:.3e}",
            "sc2_synapses_per_neuron": synapses_per_neuron,
            "sc2_applies_to_all_neurons": sc2_applies_to_all_neurons,
            "sc3_arithmetic_total": f"{total_synapses:.3e}",
            "sc3_arithmetic_holds": sc3_arithmetic,
            "sc3_empirically_supported": False,
            "primary_literature_whole_brain_synapses": "~1e14 to ~3e14",
            "threshold": CLAIM_FORMAL["threshold"],
            "claim_holds": claim_holds,
        },
        "generator": {
            "name": "proof-engine",
            "version": "0.10.0",
            "repo": "https://github.com/yaniv-golan/proof-engine",
            "generated_at": date.today().isoformat(),
        },
    }

    print("\n=== PROOF SUMMARY (JSON) ===")
    print(json.dumps(summary, indent=2, default=str))

↓ download proof.py · view on Zenodo (immutable)

Re-execute this proof

The verdict above is cached from when this proof was minted. To re-run the exact proof.py shown in "View proof source" and see the verdict recomputed live, launch it in your browser — no install required.

Re-execute the exact bytes deposited at Zenodo.

Re-execute in Binder runs in your browser · ~60s · no install

First run takes longer while Binder builds the container image; subsequent runs are cached.

machine-readable formats

Jupyter Notebook interactive re-verification W3C PROV-JSON provenance trace RO-Crate 1.1 research object package
Downloads & raw data

found this useful? ★ star on github