""Thank God 2026 has no square root" is mathematically meaningful"

mathematics · generated 2026-03-28 · v0.10.0
PROVED pure computation — no citations
Verified by computation — no external sources required.
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 exclamation holds up. "Thank God 2026 has no square root" is not just a quirky sentiment — it makes a precise, true mathematical claim.

What Was Claimed?

The idea behind the phrase is that some years are "perfect square years" — years whose number is the square of a whole number, like 2025, which equals 45 times 45. The implicit claim is that 2026 escapes this property: no whole number, when multiplied by itself, gives 2026. If that's true, the statement is mathematically meaningful. If it were false — if someone could produce such a number — the relief expressed would be misplaced.

This matters because 2025 really was a perfect square year, making 2026's status the very next question a mathematically curious person would ask.

What Did We Find?

The simplest check: what is the whole number closest to the square root of 2026? It's 45. And 45 squared is 2025 — one short. The next candidate, 46, gives 2116 — already 90 too large. Since 2026 sits strictly between two consecutive perfect squares, there is no whole number that squares to it. An exhaustive search through every positive integer up to 2026 confirmed this — zero matches.

A completely independent method reached the same conclusion. Breaking 2026 into its prime factors gives 2 × 1013 — two prime numbers, each appearing exactly once. A number is a perfect square only when every prime in its factorisation appears an even number of times. Here both exponents are 1, which is odd, so 2026 cannot be a perfect square by the Fundamental Theorem of Arithmetic. Two entirely different mathematical techniques, agreeing completely.

The predecessor context adds color. The year 2025 equals 45², making it a genuine perfect square year. The "Thank God" framing only makes sense as a reaction to 2025's status — and the math confirms the reaction is warranted. The property held for 2025 and genuinely does not hold for 2026.

One more result emerged along the way: not only does 2026 lack a whole-number square root, its square root is irrational — it cannot even be expressed as a fraction. This follows from the same prime factorisation: because 2 appears to an odd power in 2026, a standard number-theory argument produces a contradiction if you assume the square root is rational. So √2026 ≈ 45.011… exists as a decimal, but it never terminates or repeats.

What Should You Keep In Mind?

Every positive number has a real-valued square root. √2026 exists — it's approximately 45.011. The claim is not that no square root exists in any sense, but that no whole-number square root exists. This is the natural reading in the context of calendar years and "perfect square years," but it is worth being precise: the phrase "has no square root" is informal shorthand for "is not a perfect square."

The proof is entirely computational — there are no citations, no external sources to go stale, and no assumptions beyond basic arithmetic. Anyone can verify it by running the proof script directly.

How Was This Verified?

This claim was verified by a structured mathematical proof using two independent computational methods — integer square root arithmetic and prime factorisation — along with four adversarial checks designed to find weaknesses. The full reasoning is in the structured proof report, every computation step is logged in the full verification audit, and you can re-run the proof yourself.

What could challenge this verdict?

Four adversarial questions were investigated before writing the proof:

  1. "Does 2026 have an integer square root that was overlooked?" Exhaustive computation: for all n ∈ [1, 2026], n² ≠ 2026. Zero counterexamples found.

  2. "Could 'no square root' mean something other than 'not a perfect square'?" Three interpretations were examined: (a) no real square root — FALSE (√2026 ≈ 45.011 exists), (b) no rational square root — TRUE, (c) no integer square root — TRUE. Only interpretation (a) would falsify the claim, but it is inconsistent with the celebratory "Thank God" framing used in the context of perfect-square years. The claim is unambiguously meaningful.

  3. "Is 2026 perhaps a perfect power of another kind?" Since 2026 = 2 × 1013 (semiprimes with exponents all equal to 1), it cannot be a perfect k-th power for any k ≥ 2. The claim is specific to squares and is not undermined by other power relationships.

  4. "Is 1013 actually prime?" Trial division by all primes up to ⌊√1013⌋ = 31 found no divisors. 1013 is prime.

No adversarial check breaks the proof.


detailed evidence

Detailed Evidence

Evidence Summary

ID Fact Verified
A1 isqrt(2026)² ≠ 2026 (primary: no integer square root) Computed: True — 45² = 2025 ≠ 2026 and 46² = 2116 ≠ 2026
A2 Prime factorisation of 2026 has odd-exponent prime factors (cross-check) Computed: True — 2026 = 2¹ × 1013¹, both exponents odd
A3 45² = 2025 (predecessor year is a perfect square — context) Computed: True — 2025 = 45² confirmed
A4 √2026 is irrational Computed: True — valuation argument (see Proof Logic)

Proof Logic

Sub-claim 1 (A1): No integer square root — isqrt method

Python's math.isqrt(n) returns the largest integer k such that k² ≤ n. For n = 2026:

math.isqrt(2026) = 45
45² = 2025 ≠ 2026   (one short)
46² = 2116 ≠ 2026   (already past)

Since 2026 lies strictly between 45² = 2025 and 46² = 2116, there is no integer whose square equals 2026 (A1).

Sub-claim 2 (A2): No integer square root — prime factorisation method

A positive integer is a perfect square if and only if every prime in its factorisation appears to an even exponent (Fundamental Theorem of Arithmetic). Factorising 2026:

2026 = 2¹ × 1013¹

Both 2 and 1013 are prime (1013's primality verified by trial division up to ⌊√1013⌋ = 31). Both exponents are 1 — odd. Therefore 2026 is not a perfect square (A2).

Cross-check (A1 vs A2): The two methods use completely different mathematical machinery (integer square root floor/ceiling vs prime factorisation and exponent parity) and agree: 2026 is not a perfect square.

Sub-claim 3 (A3): 2025 is a perfect square — context

math.isqrt(2025) = 45
45² = 2025 ✓

The year 2025 is a perfect square (A3). This gives the colloquial claim its meaning: the property "is a perfect square" held for 2025 and does not hold for 2026. The relief expressed by "Thank God" is mathematically grounded.

Sub-claim 4 (A4): √2026 is irrational

Proof by contradiction. Suppose √2026 = p/q in lowest terms (p, q ∈ ℤ⁺, gcd(p,q) = 1). Then p² = 2026 q².

Let v₂(m) denote the 2-adic valuation of m (exponent of 2 in the prime factorisation of m). Since 2026 = 2¹ × 1013¹:

  • Left side: v₂(p²) = 2·v₂(p) — always even
  • Right side: v₂(2026 q²) = v₂(2026) + v₂(q²) = 1 + 2·v₂(q) — always odd

Even = Odd is a contradiction. Therefore √2026 is irrational (A4).


Conclusion

PROVED. The statement "Thank God 2026 has no square root" is mathematically meaningful and correct under the natural interpretation: 2026 is not a perfect square. This was established by two independent computational methods:

  • isqrt method (A1): 45² = 2025 < 2026 < 2116 = 46² — no integer squares to 2026.
  • Factorisation method (A2): 2026 = 2¹ × 1013¹ — odd exponents preclude perfect-square status.

Both methods agree. Additionally, √2026 is irrational (A4), and the immediately preceding year 2025 = 45² is a perfect square (A3), grounding the "relief" expressed in the original claim. The exhaustive adversarial search found zero counterexamples.

All results are pure Type A (computed) facts — no citations, no external sources, fully reproducible by running python proof.py.

audit trail

Claim Specification
Field Value
Subject 2026
Property Count of positive integers n such that n² = 2026 (equivalently: is 2026 a perfect square?)
Operator ==
Threshold 0
Operator note The phrase "has no square root" is interpreted as "is not a perfect square" — no positive integer n satisfies n² = 2026. "Mathematically meaningful" means the assertion is precise and true. The claim would be FALSE if any n ∈ ℤ⁺ existed with n²=2026. Context: 2025 = 45² is a perfect square, grounding the "relief". Real-valued √2026 ≈ 45.011 exists but that is not the meaningful assertion in this context.

Claim Interpretation

Natural claim: "Thank God 2026 has no square root" is mathematically meaningful.

Formal interpretation: The phrase "has no square root" is a colloquial shorthand for "is not a perfect square" — i.e., no positive integer n satisfies n² = 2026. The claim is mathematically meaningful if and only if it makes a precise, true mathematical assertion. We formalise this as:

Count of positive integers n with n² = 2026 = 0

The claim would be false — and thus not supported — if any n ∈ ℤ⁺ existed with n² = 2026.

Operator choice: The == operator with threshold 0 is the natural formalisation: we assert the count of integer square roots is exactly zero, which is a stronger statement than < 1 and makes the structure of the claim explicit.

Important note on real square roots: Every positive real number has a real-valued square root. √2026 ≈ 45.011… exists in ℝ. The mathematically interesting (and true) assertion is about integer square roots. This is consistent with the colloquial usage in year-numbering contexts (e.g., "2025 is a perfect square year").


Computation Traces

Verbatim output from python proof.py:

=== PRIMARY: integer square root check ===
math.isqrt(2026) = 45
  floor_sq = isqrt(2026)²: isqrt_n * isqrt_n = 45 * 45 = 2025
  ceil_sq  = (isqrt(2026)+1)²: (isqrt_n + 1) * (isqrt_n + 1) = (45 + 1) * (45 + 1) = 2116
  A1a: 45² ≠ 2026: 2025 != 2026 = True
  A1b: 46² ≠ 2026: 2116 != 2026 = True
  A1: both 45² ≠ 2026 AND 46² ≠ 2026 → no integer square root: 1 == 1 = True

=== CROSS-CHECK: prime factorisation ===
Prime factorisation of 2026: 2^1 × 1013^1
Factorisation product verified: 2026 = 2026 ✓
Primes with odd exponents: [(2, 1), (1013, 1)]
  A2: at least one prime with odd exponent → not a perfect square: 2 >= 1 = True
Cross-check A1 vs A2: AGREE ✓

=== CONTEXT: 2025 is a perfect square ===
  A3: isqrt(2025)²: isqrt_2025 * isqrt_2025 = 45 * 45 = 2025
  A3: 2025 is a perfect square: 2025 == 2025 = True
isqrt(2025) = 45, so 2025 = 45²  → perfect square: True

=== IRRATIONALITY of √2026 ===
v₂(2026) = 1  (exponent of 2 in prime factorisation of 2026)
  A4: v₂(2026) is odd → √2026 irrational: 1 == 1 = True
A4 (√2026 irrational): True  [if √2026 = p/q then 2·v₂(p) = 1 + 2·v₂(q), but LHS is even and RHS is odd — contradiction]

=== ADVERSARIAL: exhaustive n² = 2026 search ===
  Exhaustive search: no n with n²=2026: 0 == 0 = True

=== ADVERSARIAL: primality of 1013 ===
  1013 has no divisors in [2, floor(√1013)]: 0 == 0 = True
1013 is prime: True
  Primary claim: 2026 is not a perfect square: 0 == 0 = True

Adversarial Checks
# Question Verification Performed Finding Breaks Proof?
1 Does 2026 have an integer square root that was overlooked? Computed math.isqrt(2026) = 45; verified 45² = 2025 and 46² = 2116. Exhaustive search over all n ∈ [1, 2026] — zero counterexamples. No integer n satisfies n² = 2026. Nearest perfect squares: 45² = 2025 and 46² = 2116. No
2 Could 'no square root' mean something other than 'not a perfect square'? Three interpretations evaluated: (1) no real root — FALSE; (2) no rational root — TRUE; (3) no integer root — TRUE. The "year context" framing aligns with interpretation (3). Claim is true under both meaningful interpretations (2) and (3). Only interpretation (1) fails, but is linguistically inconsistent with the "Thank God" framing. No
3 Is 2026 a perfect power of some other kind? 2026 = 2 × 1013 (semiprimes, all exponents = 1). A perfect k-th power requires all exponents divisible by k. For k ≥ 2, no exponent of 1 is divisible by k. Not a perfect square, cube, or any higher power. The claim is not undermined by other power relationships. No
4 Is 1013 actually prime? Trial division by all integers from 2 to ⌊√1013⌋ = 31. Zero divisors found. 1013 is prime. Factorisation 2026 = 2 × 1013 is correct. No
Cite this proof
Proof Engine. (2026). Claim Verification: “"Thank God 2026 has no square root" is mathematically meaningful” — Proved. https://proofengine.info/proofs/thank-god-2026-has-no-square-root-is-mathematically-meaningful/
Proof Engine. "Claim Verification: “"Thank God 2026 has no square root" is mathematically meaningful” — Proved." 2026. https://proofengine.info/proofs/thank-god-2026-has-no-square-root-is-mathematically-meaningful/.
@misc{proofengine_thank_god_2026_has_no_square_root_is_mathematically_meaningful,
  title   = {Claim Verification: “"Thank God 2026 has no square root" is mathematically meaningful” — Proved},
  author  = {{Proof Engine}},
  year    = {2026},
  url     = {https://proofengine.info/proofs/thank-god-2026-has-no-square-root-is-mathematically-meaningful/},
  note    = {Verdict: PROVED. Generated by proof-engine v0.10.0},
}
TY  - DATA
TI  - Claim Verification: “"Thank God 2026 has no square root" is mathematically meaningful” — Proved
AU  - Proof Engine
PY  - 2026
UR  - https://proofengine.info/proofs/thank-god-2026-has-no-square-root-is-mathematically-meaningful/
N1  - Verdict: PROVED. Generated by proof-engine v0.10.0
ER  -
View proof source 322 lines · 13.5 KB

This is the proof.py that produced the verdict above. Every fact traces to code below. (This proof has not yet been minted to Zenodo; the source here is the working copy from this repository.)

"""
Proof: "Thank God 2026 has no square root" is mathematically meaningful
Generated: 2026-03-28

The colloquial phrase "has no square root" is interpreted as "is not a perfect square"
(no positive integer n satisfies n² = 2026). The proof establishes this claim is TRUE,
making the statement precisely and verifiably meaningful in mathematics.
"""
import json
import math
import os
import sys
from datetime import date

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.computations import compare, explain_calc

# 1. CLAIM INTERPRETATION (Rule 4)
CLAIM_NATURAL = (
    '"Thank God 2026 has no square root" is mathematically meaningful'
)
CLAIM_FORMAL = {
    "subject": "2026",
    "property": (
        "count of positive integers n such that n² = 2026 "
        "(equivalently: is 2026 a perfect square?)"
    ),
    "operator": "==",
    "threshold": 0,
    "operator_note": (
        "The phrase 'has no square root' is a colloquial way of saying '2026 is not "
        "a perfect square' — i.e., no positive integer n satisfies n² = 2026. "
        "The claim is 'mathematically meaningful' if and only if it makes a precise, "
        "true mathematical assertion. We formalise this as: the count of such n equals 0. "
        "The claim would be FALSE (and thus not supported) if any n ∈ ℤ⁺ existed with n²=2026. "
        "Context: 2025 = 45² is a perfect square, so the 'relief' that 2026 escapes this "
        "property is mathematically grounded. "
        "Note: every positive real has a real-valued square root (√2026 ≈ 45.011...); "
        "the meaningful assertion concerns integer square roots only."
    ),
}

# 2. FACT REGISTRY — A-types only for pure math
FACT_REGISTRY = {
    "A1": {
        "label": "isqrt(2026)² ≠ 2026 (primary: no integer square root)",
        "method": None,
        "result": None,
    },
    "A2": {
        "label": "Prime factorisation of 2026 has no repeated factors (cross-check)",
        "method": None,
        "result": None,
    },
    "A3": {
        "label": "45² = 2025 (predecessor year is a perfect square — context)",
        "method": None,
        "result": None,
    },
    "A4": {
        "label": "√2026 is irrational (consequence of A1/A2)",
        "method": None,
        "result": None,
    },
}

# ---------------------------------------------------------------------------
# 3. PRIMARY COMPUTATION: integer square root floor check
# ---------------------------------------------------------------------------
print("=== PRIMARY: integer square root check ===")
n = 2026

isqrt_n = math.isqrt(n)  # largest integer k with k² ≤ n
print(f"math.isqrt({n}) = {isqrt_n}")

sq_floor = explain_calc("isqrt_n * isqrt_n", locals(), label="floor_sq = isqrt(2026)²")
sq_ceil = explain_calc("(isqrt_n + 1) * (isqrt_n + 1)", locals(), label="ceil_sq  = (isqrt(2026)+1)²")

floor_is_not_n = compare(sq_floor, "!=", n, label="A1a: 45² ≠ 2026")
ceil_is_not_n  = compare(sq_ceil,  "!=", n, label="A1b: 46² ≠ 2026")

a1_holds = compare(
    int(floor_is_not_n and ceil_is_not_n), "==", 1,
    label="A1: both 45² ≠ 2026 AND 46² ≠ 2026 → no integer square root",
)

# ---------------------------------------------------------------------------
# 4. CROSS-CHECK: prime factorisation
#    A number is a perfect square iff every prime factor appears to an even power.
# ---------------------------------------------------------------------------
print("\n=== CROSS-CHECK: prime factorisation ===")

def prime_factors(m):
    """Return sorted list of (prime, exponent) pairs for m."""
    factors = {}
    d = 2
    while d * d <= m:
        while m % d == 0:
            factors[d] = factors.get(d, 0) + 1
            m //= d
        d += 1
    if m > 1:
        factors[m] = factors.get(m, 0) + 1
    return sorted(factors.items())

factors_2026 = prime_factors(n)
print(f"Prime factorisation of {n}: " + " × ".join(f"{p}^{e}" for p, e in factors_2026))

# Verify factorisation is correct
product_check = 1
for p, e in factors_2026:
    product_check *= p ** e
assert product_check == n, f"Factorisation product mismatch: {product_check}{n}"
print(f"Factorisation product verified: {product_check} = {n} ✓")

# Perfect square iff all exponents are even
odd_exponent_primes = [(p, e) for p, e in factors_2026 if e % 2 != 0]
print(f"Primes with odd exponents: {odd_exponent_primes}")

a2_holds = compare(
    len(odd_exponent_primes), ">=", 1,
    label="A2: at least one prime with odd exponent → not a perfect square",
)

# Cross-check agreement: A1 and A2 must agree
assert a1_holds == a2_holds, (
    f"Cross-check failed: A1 (isqrt method) says {a1_holds}, "
    f"A2 (factorisation method) says {a2_holds}"
)
print("Cross-check A1 vs A2: AGREE ✓")

# ---------------------------------------------------------------------------
# 5. CONTEXT: predecessor year 2025 is a perfect square
# ---------------------------------------------------------------------------
print("\n=== CONTEXT: 2025 is a perfect square ===")
year_before = 2025
isqrt_2025 = math.isqrt(year_before)
sq_2025 = explain_calc("isqrt_2025 * isqrt_2025", locals(), label="A3: isqrt(2025)²")
a3_holds = compare(sq_2025, "==", year_before, label="A3: 2025 is a perfect square")
print(f"isqrt(2025) = {isqrt_2025}, so 2025 = {isqrt_2025}²  → perfect square: {a3_holds}")

# ---------------------------------------------------------------------------
# 6. IRRATIONALITY of √2026
#    If √2026 = p/q (reduced fraction), then p² = 2026 q².
#    From factorisation: 2026 = 2¹ × 1013¹.  The prime 2 appears to odd power (1) in 2026.
#    For p² = 2026 q², v₂(p²) must equal v₂(2026 q²) = 1 + 2·v₂(q),
#    which is always odd. But v₂(p²) = 2·v₂(p) is always even. Contradiction.
# ---------------------------------------------------------------------------
print("\n=== IRRATIONALITY of √2026 ===")

# Verify: 2 appears to power 1 in 2026 (odd)
v2_2026 = next(e for p, e in factors_2026 if p == 2)
print(f"v₂(2026) = {v2_2026}  (exponent of 2 in prime factorisation of 2026)")
a4_holds = compare(v2_2026 % 2, "==", 1, label="A4: v₂(2026) is odd → √2026 irrational")
print(
    f"A4 (√2026 irrational): {a4_holds}  "
    f"[if √2026 = p/q then 2·v₂(p) = {v2_2026} + 2·v₂(q), "
    f"but LHS is even and RHS is odd — contradiction]"
)

# ---------------------------------------------------------------------------
# 7. ADVERSARIAL CHECKS (Rule 5)
# ---------------------------------------------------------------------------
adversarial_checks = [
    {
        "question": "Does 2026 have an integer square root that was overlooked?",
        "verification_performed": (
            "Computed math.isqrt(2026) = 45; verified 45² = 2025 and 46² = 2116. "
            "Also verified via exhaustive search: no n in [1, 2026] satisfies n² = 2026."
        ),
        "finding": (
            "Exhaustive check confirms no integer n satisfies n² = 2026. "
            "The nearest perfect squares are 45² = 2025 (one below) and 46² = 2116 (next above)."
        ),
        "breaks_proof": False,
    },
    {
        "question": "Could 'no square root' mean something other than 'not a perfect square'?",
        "verification_performed": (
            "Considered three interpretations: "
            "(1) no real square root — FALSE, √2026 ≈ 45.011 exists in ℝ; "
            "(2) no rational square root — TRUE, proved via valuation argument (A4); "
            "(3) no integer square root — TRUE, proved via isqrt and factorisation (A1, A2). "
            "The colloquial use in the context of year-numbering most naturally refers to "
            "interpretation (3), consistent with 2025 = 45² being called 'a perfect square year'."
        ),
        "finding": (
            "Under the natural 'year context' interpretation (integer square root), the claim "
            "is TRUE. Under the rational interpretation it is also TRUE. "
            "Only under interpretation (1) — real square root — is it false, but that "
            "reading is inconsistent with the celebratory framing ('Thank God'). "
            "The claim is therefore unambiguously mathematically meaningful."
        ),
        "breaks_proof": False,
    },
    {
        "question": "Is 2026 perhaps a perfect power of some other kind that could confuse the claim?",
        "verification_performed": (
            "Checked whether 2026 is a perfect cube, 4th power, or any perfect power. "
            "2026 = 2 × 1013 (both primes); for a perfect k-th power all exponents must be "
            "divisible by k. Since 2026 has exponents {2:1, 1013:1}, it is a perfect power "
            "only for k=1 (trivially). Not a perfect square, cube, or any higher power."
        ),
        "finding": "2026 is not a perfect power for any exponent k ≥ 2. The claim is specific to squares.",
        "breaks_proof": False,
    },
    {
        "question": "Is 1013 actually prime? (needed for the factorisation cross-check)",
        "verification_performed": (
            "Trial division up to √1013 ≈ 31.8: tested all primes ≤ 31 "
            "(2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31). None divide 1013. "
            "Therefore 1013 is prime."
        ),
        "finding": "1013 is prime. Factorisation 2026 = 2 × 1013 is correct.",
        "breaks_proof": False,
    },
]

# Exhaustive search (adversarial check 1 — machine-verified)
print("\n=== ADVERSARIAL: exhaustive n² = 2026 search ===")
counterexamples = [nn for nn in range(1, n + 1) if nn * nn == n]
compare(len(counterexamples), "==", 0, label="Exhaustive search: no n with n²=2026")

# Primality of 1013 (adversarial check 4 — machine-verified)
print("\n=== ADVERSARIAL: primality of 1013 ===")
p1013 = 1013
divisors_of_1013 = [d for d in range(2, math.isqrt(p1013) + 1) if p1013 % d == 0]
compare(len(divisors_of_1013), "==", 0, label="1013 has no divisors in [2, floor(√1013)]")
print(f"1013 is prime: {len(divisors_of_1013) == 0}")

# ---------------------------------------------------------------------------
# 8. VERDICT AND STRUCTURED OUTPUT
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    # The proof's primary claim: count of integer square roots of 2026 = 0
    integer_sqrt_count = len([nn for nn in range(1, n + 1) if nn * nn == n])
    claim_holds = compare(
        integer_sqrt_count,
        CLAIM_FORMAL["operator"],
        CLAIM_FORMAL["threshold"],
        label="Primary claim: 2026 is not a perfect square",
    )
    verdict = "PROVED" if (claim_holds and a1_holds and a2_holds and a3_holds and a4_holds) else "DISPROVED"

    FACT_REGISTRY["A1"]["method"] = (
        "math.isqrt(2026) = 45; verified 45² = 2025 ≠ 2026 and 46² = 2116 ≠ 2026"
    )
    FACT_REGISTRY["A1"]["result"] = str(a1_holds)

    FACT_REGISTRY["A2"]["method"] = (
        "Prime factorisation: 2026 = 2¹ × 1013¹; "
        "both exponents are odd → not a perfect square (cross-check)"
    )
    FACT_REGISTRY["A2"]["result"] = str(a2_holds)

    FACT_REGISTRY["A3"]["method"] = (
        "math.isqrt(2025) = 45; verified 45² = 2025 (context: predecessor year is a perfect square)"
    )
    FACT_REGISTRY["A3"]["result"] = str(a3_holds)

    FACT_REGISTRY["A4"]["method"] = (
        "Valuation argument: v₂(2026) = 1 (odd); "
        "if √2026 = p/q then 2·v₂(p) = 1 + 2·v₂(q) — even = odd, contradiction"
    )
    FACT_REGISTRY["A4"]["result"] = str(a4_holds)

    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,
        "cross_checks": [
            {
                "description": (
                    "A1 (isqrt floor/ceil method) vs A2 (prime factorisation method): "
                    "both independently establish 2026 is not a perfect square"
                ),
                "values_compared": [str(a1_holds), str(a2_holds)],
                "agreement": a1_holds == a2_holds,
            },
        ],
        "adversarial_checks": adversarial_checks,
        "verdict": verdict,
        "key_results": {
            "n": n,
            "isqrt_n": isqrt_n,
            "isqrt_n_squared": int(sq_floor),
            "next_perfect_square": int(sq_ceil),
            "factorisation": {str(p): e for p, e in factors_2026},
            "odd_exponent_primes": odd_exponent_primes,
            "predecessor_year_is_perfect_square": a3_holds,
            "predecessor_year_sqrt": isqrt_2025,
            "sqrt_2026_is_irrational": a4_holds,
            "integer_sqrt_count": integer_sqrt_count,
            "threshold": CLAIM_FORMAL["threshold"],
            "operator": CLAIM_FORMAL["operator"],
            "claim_holds": claim_holds,
        },
        "generator": {
            "name": "proof-engine",
            "version": open(os.path.join(PROOF_ENGINE_ROOT, "VERSION")).read().strip(),
            "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

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 from GitHub commit 1ba3732 — same bytes shown above.

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