MRB DECIMAL - ENTRY INDEPENDENT SPOT CHECKER

From a conversation with GPT. The author (Marvin Ray Burns) takes full responsibility of all claims in this notebook.
This version takes only the claimed CMRB value/digit file . It does not require you to supply a known - correct CMRB value . It independently computes what it needs from the defining MRB series using NSum, caches that calculation, and tests the claimed decimal - entry parity against it . One unavoidable point : some independent computation of MRB is mathematically necessary . What we have eliminated is the need to provide a previously known correct value .
In[]:=
First test : a known - correct value
​
You can calculate your 10, 000 - digit claim as before :
In[]:=
mrbClaim=N[NSum[(-1)^n(n^(1/n)-1),{n,1,Infinity},Method->"AlternatingSigns",WorkingPrecision->10010],10000];
Then:
In[]:=
good=MRBClaimSpotCheck[mrbClaim,{1000,1250,1500,2000,2500,3000,4000}];​​​​good["Summary"]​​​​good["Results"]
Computing an independent MRB reference from the defining series...
Target decimal digits: 8130
Working precision: 8160
Independent usable digits: 8110
Out[]=
Requested7,Resolved7,Passed7,Failed0,PrefixFailures0,Unresolved0,IndependentDigits8110,IndependentAccuracy8130.73
Out[]=
n
ClaimedNextDigit
IndependentNextDigit
ExactDigitMatch
PrefixMatch
PredictedFromClaim
ActualFromSeries
ParityPass
TieDistance
OddEntryIndex
1000
0
0
True
True
Even
Even
True
0.42220167964488066376
1486016357271969012888345532 ... 8491672020197404969045597369 (1005 digits)
1250
5
5
True
True
Odd
Odd
True
0.036905728659287086875
2687741691683676633255822523 ... 4639187519422865993797294933 (1254 digits)
1500
4
4
True
True
Even
Even
True
0.037046034670966778285
3739145261835197442007281586 ... 7529858252403809533492842883 (1504 digits)
2000
1
1
True
True
Even
Even
True
0.35657830703754068247
1608841711990717330974487545 ... 2669152966719317774055266985 (2005 digits)
2500
8
8
True
True
Odd
Odd
True
0.38064223634816078095
3272927378816067893398453416 ... 3256998562920234642249116267 (2504 digits)
3000
5
5
True
True
Odd
Odd
True
0.066608414112639998858
6103396726423078139632612653 ... 9537343205091458100233178495 (3004 digits)
4000
9
9
True
True
Odd
Odd
True
0.45988304866294496453
4802052283078596139396802410 ... 9005255199350284502525795283 (4004 digits)
columns 1–10 of 15
The checker will independently calculate its own reference . The first call does the expensive calculation; later tests reuse it . Then deliberately spoil digit 2001
​
First convert the claim :
In[]:=
claimDigits=MRBLoadDigits[mrbClaim];
Force digit 2001 into the opposite class :
In[]:=
wrongClaim=MRBFlipNextDigitClass[claimDigits,2000];
Now :
In[]:=
bad=MRBClaimSpotCheck[wrongClaim,{2000}];​​​​bad["Summary"]​​​​bad["Results"]
Out[]=
Requested1,Resolved1,Passed0,Failed1,PrefixFailures0,Unresolved0,IndependentDigits8110,IndependentAccuracy8130.73
Out[]=
n
ClaimedNextDigit
IndependentNextDigit
ExactDigitMatch
PrefixMatch
PredictedFromClaim
ActualFromSeries
ParityPass
TieDistance
OddEntryIndex
2000
7
1
False
True
Odd
Even
False
0.35657830703754068247
1608841711990717330974487545 ... 2669152966719317774055266985 (2005 digits)
columns 1–10 of 15
That should produce a parity contradiction . For the value we saw earlier, the good digit at position 2001 was in the 0–4 class, so the deliberately flipped claim should predict the opposite parity and fail . Your 10
−2000
/e experiment
​
You can also test a naturally corrupted numerical value :
In[]:=
wrongNumericalClaim=mrbClaim-N[10^-2000/E,10000];
Then :
In[]:=
bad2=MRBClaimSpotCheck[wrongNumericalClaim,{1998,1999,2000,2001,2002,2010}];​​​​bad2["Summary"]​​​​bad2["Results"]
Out[]=
Requested6,Resolved6,Passed2,Failed4,PrefixFailures4,Unresolved0,IndependentDigits8110,IndependentAccuracy8130.73
Out[]=
n
ClaimedNextDigit
PrefixMatch
FirstMismatchDigit
PredictedFromClaim
ActualFromSeries
ParityPass
Status
IndependentNextDigit
ExactDigitMatch
1998
3
True
—
Even
Even
True
PASS -- very strong
3
True
1999
6
True
—
Odd
Odd
True
PASS -- very strong
7
False
2000
7
False
2000
Odd
Claimed interval already wrong
False
FAIL -- claimed prefix disagrees with independent MRB computation.
—
—
2001
7
False
2000
Odd
Claimed interval already wrong
False
FAIL -- claimed prefix disagrees with independent MRB computation.
—
—
2002
5
False
2000
Odd
Claimed interval already wrong
False
FAIL -- claimed prefix disagrees with independent MRB computation.
—
—
2010
9
False
2000
Odd
Claimed interval already wrong
False
FAIL -- claimed prefix disagrees with independent MRB computation.
—
—
columns 1–10 of 16
Here I expect the program to detect either a prefix failure or a parity failure at the point where the perturbation first becomes visible . One especially useful control remains : deliberately replace a digit with a different digit in the same half . The exact - digit column should say False, while the parity test may still say True . That is precisely what the theorem predicts : it checks the binary division
​
0, 1, 2, 3, 4 versus5, 6, 7, 8, 9, not the exact digit .