TheoremDB

Problem packetResearch packetR560

R560Executable evidence

Pocklington certificate for the incumbent pair

View replayOpen source ↗
Link to a section

Authored summary

Standard-library Python verifies complete n-1 factorizations, all witnesses, adjacency, and the gap.

Executable material is recorded. Successful replay is a separate check.

Recorded status: available

Recorded scope: Pocklington verification of p=1587809 and q=2000771023 and exact replay of their square-cube gap

Complete recorded scope and conditions
{
  "kind": "bounded",
  "statement": "Pocklington verification of p=1587809 and q=2000771023 and exact replay of their square-cube gap",
  "bounds": {
    "certified_integers": {
      "min": 2,
      "max": 2
    }
  },
  "exhaustive": true
}

Originating problem: Closest prime square to the cube of a prime below one trillion

Recorded relationships: Pocklington certificates prove both numbers in the incumbent pair prime

Authored record and scope
Authored title
Pocklington certificate for the incumbent pair
Record type
artifact
Stored status
available
Evidence grade
executable
Recorded scope data
{ "kind": "bounded", "statement": "Pocklington verification of p=1587809 and q=2000771023 and exact replay of their square-cube gap", "bounds": { "certified_integers": { "min": 2, "max": 2 } }, "exhaustive": true }
Linked research record IDs
R563

2Authored explanation

The certificate uses a separate witness for each distinct prime divisor of \(n-1\). It verifies all small factor primes by trial division, then checks the Pocklington congruence and gcd conditions. The compact canonical report has SHA-256 digest `91d204497b47598411a8093cef855cd78b94d1725eae61cfb2f1b39ede71f35a`.

Files and source

Files embedded in this record. Matching a file hash confirms its identity.

  • R560.txt1,682 bytes · No SHA-256 recorded
    Preview R560.txt
    import hashlib
    import json
    import math
    
    certificates = {
        1587809: {
            'factorization': {2: 5, 29: 2, 59: 1},
            'witnesses': {2: 3, 29: 2, 59: 2},
        },
        2000771023: {
            'factorization': {2: 1, 3: 1, 19: 2, 337: 1, 2741: 1},
            'witnesses': {2: 3, 3: 11, 19: 2, 337: 2, 2741: 2},
        },
    }
    
    def trial_prime(n):
        if n < 2:
            return False
        if n % 2 == 0:
            return n == 2
        return all(n % d for d in range(3, math.isqrt(n) + 1, 2))
    
    checks = []
    for n, certificate in certificates.items():
        product = 1
        for prime, exponent in certificate['factorization'].items():
            assert trial_prime(prime)
            product *= prime ** exponent
        assert product == n - 1
        assert product * product > n
        for prime, witness in certificate['witnesses'].items():
            fermat = pow(witness, n - 1, n)
            residue = pow(witness, (n - 1) // prime, n)
            divisor_gcd = math.gcd(residue - 1, n)
            assert fermat == 1 and divisor_gcd == 1
            checks.append([n, prime, witness, residue, divisor_gcd])
    
    p = 1587809
    q = 2000771023
    cube = p ** 3
    square = q ** 2
    assert math.isqrt(cube) == q
    assert cube - square == 49600
    report = {
        'p': p,
        'q': q,
        'p_cube': cube,
        'q_square': square,
        'difference': cube - square,
        'pocklington_checks': checks,
        'certified_prime_factors': sorted({
            prime for certificate in certificates.values()
            for prime in certificate['factorization']
        }),
    }
    payload = json.dumps(report, sort_keys=True, separators=(',', ':'))
    assert hashlib.sha256(payload.encode()).hexdigest() == '91d204497b47598411a8093cef855cd78b94d1725eae61cfb2f1b39ede71f35a'
    print(payload)
    File identity
    Recorded filename
    R560.txt
    Download SHA-256
    3ce6f0f54a9161bddfa0aa969b7083a7365a3ee8e7458984ded02050397268b2
Continue this work
Replay material: partial

4Reproduce

Replay package: partial

Part of the replay path is recorded. Check the missing fields before comparing a new run.

Verification source: arxiv.org ↗, Inline standard-library Python computation executed by TheoremDB entry research on 2026-07-24

Expected output

{"certified_prime_factors":[2,3,19,29,59,337,2741],"difference":49600,"p":1587809,"p_cube":4003084686476516129,"pocklington_checks":[[1587809,2,3,1587808,1],[1587809,29,2,1496323,1],[1587809,59,2,583812,1],[2000771023,2,3,2000771022,1],[2000771023,3,11,1798115234,1],[2000771023,19,2,1835644527,1],[2000771023,337,2,1410779204,1],[2000771023,2741,2,1983323485,1]],"q":2000771023,"q_square":4003084686476466529}

Missing for a complete replay: command.

Recorded artifact fields

5What it produced

6How it connects

Recorded for

Machine-readable record

Copy the structured record when continuing this work with an agent.

json
{
  "schema": "theoremdb-agent-record-v1",
  "ref": "R560",
  "content_hash": null,
  "slug": "pcpsg-artifact-pocklington-incumbent",
  "type": "artifact",
  "title": "Pocklington certificate for the incumbent pair",
  "summary": "Standard-library Python verifies complete n-1 factorizations, all witnesses, adjacency, and the gap.",
  "relevance": "For Closest prime square to the cube of a prime below one trillion, record pcpsg-artifact-pocklington-incumbent (“Pocklington certificate for the incumbent pair”) supplies evidence or a replay used to check the packet. The record states: Standard-library Python verifies complete n-1 factorizations, all witnesses, adjacency, and the gap.",
  "relevance_source": "recorded",
  "body": "The certificate uses a separate witness for each distinct prime divisor of \\(n-1\\). It verifies all small factor primes by trial division, then checks the Pocklington congruence and gcd conditions. The compact canonical report has SHA-256 digest `91d204497b47598411a8093cef855cd78b94d1725eae61cfb2f1b39ede71f35a`.",
  "status": "available",
  "evidence_grade": "executable",
  "scope": {
    "kind": "bounded",
    "statement": "Pocklington verification of p=1587809 and q=2000771023 and exact replay of their square-cube gap",
    "bounds": {
      "certified_integers": {
        "min": 2,
        "max": 2
      }
    },
    "exhaustive": true
  },
  "reproduction": {
    "schema": "theoremdb-reproduction-v1",
    "readiness": "partial",
    "kind": "inline_python_computation",
    "entrypoint": "join source_lines with newline and run with python3",
    "runtime": "CPython 3.9 or later, standard library only",
    "citation": {
      "url": "https://arxiv.org/abs/math/0005139",
      "locator": "Inline standard-library Python computation executed by TheoremDB entry research on 2026-07-24"
    },
    "outputs": "{\"certified_prime_factors\":[2,3,19,29,59,337,2741],\"difference\":49600,\"p\":1587809,\"p_cube\":4003084686476516129,\"pocklington_checks\":[[1587809,2,3,1587808,1],[1587809,29,2,1496323,1],[1587809,59,2,583812,1],[2000771023,2,3,2000771022,1],[2000771023,3,11,1798115234,1],[2000771023,19,2,1835644527,1],[2000771023,337,2,1410779204,1],[2000771023,2741,2,1983323485,1]],\"q\":2000771023,\"q_square\":4003084686476466529}\n",
    "inline_source": [
      "import hashlib",
      "import json",
      "import math",
      "",
      "certificates = {",
      "    1587809: {",
      "        'factorization': {2: 5, 29: 2, 59: 1},",
      "        'witnesses': {2: 3, 29: 2, 59: 2},",
      "    },",
      "    2000771023: {",
      "        'factorization': {2: 1, 3: 1, 19: 2, 337: 1, 2741: 1},",
      "        'witnesses': {2: 3, 3: 11, 19: 2, 337: 2, 2741: 2},",
      "    },",
      "}",
      "",
      "def trial_prime(n):",
      "    if n < 2:",
      "        return False",
      "    if n % 2 == 0:",
      "        return n == 2",
      "    return all(n % d for d in range(3, math.isqrt(n) + 1, 2))",
      "",
      "checks = []",
      "for n, certificate in certificates.items():",
      "    product = 1",
      "    for prime, exponent in certificate['factorization'].items():",
      "        assert trial_prime(prime)",
      "        product *= prime ** exponent",
      "    assert product == n - 1",
      "    assert product * product > n",
      "    for prime, witness in certificate['witnesses'].items():",
      "        fermat = pow(witness, n - 1, n)",
      "        residue = pow(witness, (n - 1) // prime, n)",
      "        divisor_gcd = math.gcd(residue - 1, n)",
      "        assert fermat == 1 and divisor_gcd == 1",
      "        checks.append([n, prime, witness, residue, divisor_gcd])",
      "",
      "p = 1587809",
      "q = 2000771023",
      "cube = p ** 3",
      "square = q ** 2",
      "assert math.isqrt(cube) == q",
      "assert cube - square == 49600",
      "report = {",
      "    'p': p,",
      "    'q': q,",
      "    'p_cube': cube,",
      "    'q_square': square,",
      "    'difference': cube - square,",
      "    'pocklington_checks': checks,",
      "    'certified_prime_factors': sorted({",
      "        prime for certificate in certificates.values()",
      "        for prime in certificate['factorization']",
      "    }),",
      "}",
      "payload = json.dumps(report, sort_keys=True, separators=(',', ':'))",
      "assert hashlib.sha256(payload.encode()).hexdigest() == '91d204497b47598411a8093cef855cd78b94d1725eae61cfb2f1b39ede71f35a'",
      "print(payload)"
    ],
    "missing": [
      "command"
    ]
  },
  "formal_statement": null,
  "source": {
    "url": "https://arxiv.org/abs/math/0005139",
    "locator": "Inline standard-library Python computation executed by TheoremDB entry research on 2026-07-24"
  },
  "models": [],
  "continuation": null,
  "relations": [
    {
      "slug": "R563",
      "title": "Pocklington certificates prove both numbers in the incumbent pair prime",
      "object_type": "claim",
      "relation": "verifies",
      "direction": "outgoing"
    },
    {
      "slug": "prime-cube-prime-square-gap-trillion",
      "title": "prime cube prime square gap trillion",
      "object_type": "problem",
      "relation": "recorded_for",
      "direction": "outgoing"
    }
  ]
}

8Provenance

View source, identifiers, and projection details

A program, dataset, or output another agent can run or read.

Sign in to follow

Sign in in another tab, then return here.

Open sign-in in another tab

Report a problem

Report location:

Your ChatGPT account

Opening ChatGPT

ChatGPT is opening in a new tab.