Run 2: re-run of release/reproducibility from an unpacked copy of release/source.zip (v1, sha256 21c51b8ffacc141f...), 2026-10-15.
Interpreters: check_note.py with /usr/bin/python3 (Python 3.9.6); all other programs with Python 3.13.5 in a virtual environment with numpy, scipy and mpmath, flags -I -B, nice -n 10, from the program's folder. Outputs written to new files and compared with the recorded ones.

Exit codes and running times:
  check_note.out rc=0 time=34s
  orig_q1_ball_constants.out rc=0 time=0s
  orig_q2_familyS_exact.out rc=0 time=4s
  orig_q2_fourth_moment.out rc=0 time=3s
  orig_q2_bound_table.out rc=0 time=6s
  orig_mc_sanity.out rc=0 time=4s
  orig_mc_first_moment_pair.out rc=0 time=8s
  orig_lemmaP_check.out rc=0 time=6s
  orig_explore_familyS_opt.out rc=0 time=1s
  orig_explore_familyA_cube.out rc=0 time=1s
  A_vA_exact_pair.out rc=0 time=1s
  A_vA_convexity_and_bounds.out rc=0 time=14s
  A_vA_lemmaG_P_tests.out rc=0 time=1s
  A_vA_mc_first_moment.out rc=0 time=10s
  A_vA_ball_theta.out rc=0 time=0s
  B_own_exact_pair_n3.out rc=0 time=0s
  B_own_exact_pair_n4.out rc=0 time=0s
  B_own_exact_pair_n5.out rc=0 time=0s
  B_own_exact_pair_n9.out rc=0 time=1s
  B_own_exact_pair_n9_wrong_s0.out rc=0 time=0s
  B_own_exact_pair_n9_wrong_apex.out rc=0 time=0s
  B_own_compare_reference.out rc=0 time=0s
  B_own_compare_reference_wrong.out rc=0 time=0s
  B_own_hull_check_control.out rc=0 time=1s
  B_own_bound.out rc=0 time=0s
  B_own_ball_constants.out rc=0 time=0s
  B_own_mc_first_moment.out rc=0 time=17s
  B_own_cube_lemmaG_mc.out rc=0 time=11s
  B_own_lemmaP_adversarial.out rc=0 time=6s
  DONE

Comparison with the recorded outputs:
  DIFFERENT  check_note.out: 16 differing lines
  IDENTICAL  original/outputs/q1_ball_constants.out
  IDENTICAL  original/outputs/q2_familyS_exact.out
  IDENTICAL  original/outputs/q2_fourth_moment.out
  IDENTICAL  original/outputs/q2_bound_table.out
  IDENTICAL  original/outputs/mc_sanity.out
  IDENTICAL  original/outputs/mc_first_moment_pair.out
  IDENTICAL  original/outputs/lemmaP_check.out
  IDENTICAL  original/outputs/explore_familyS_opt.out
  IDENTICAL  original/outputs/explore_familyA_cube.out
  IDENTICAL  verification_run_A/vA_exact_pair.out
  IDENTICAL  verification_run_A/vA_convexity_and_bounds.out
  IDENTICAL  verification_run_A/vA_lemmaG_P_tests.out
  IDENTICAL  verification_run_A/vA_mc_first_moment.out
  IDENTICAL  verification_run_A/vA_ball_theta.out
  IDENTICAL  verification_run_B/own_exact_pair_n3.out
  IDENTICAL  verification_run_B/own_exact_pair_n4.out
  IDENTICAL  verification_run_B/own_exact_pair_n5.out
  IDENTICAL  verification_run_B/own_exact_pair_n9.out
  DIFFERENT  verification_run_B/own_exact_pair_n9_wrong_s0.out: 15 differing lines
  DIFFERENT  verification_run_B/own_exact_pair_n9_wrong_apex.out: 17 differing lines
  IDENTICAL  verification_run_B/own_compare_reference.out
  IDENTICAL  verification_run_B/own_compare_reference_wrong.out
  IDENTICAL  verification_run_B/own_hull_check.out
  DIFFERENT  verification_run_B/own_hull_check_control.out: 6 differing lines
  IDENTICAL  verification_run_B/own_bound.out
  IDENTICAL  verification_run_B/own_ball_constants.out
  DIFFERENT  verification_run_B/own_mc_first_moment.out: 2 differing lines
  DIFFERENT  verification_run_B/own_cube_lemmaG_mc.out: 2 differing lines
  IDENTICAL  verification_run_B/own_lemmaP_adversarial.out

Explanation of every difference:
  check_note.out: diff =
      2c2
      < Python 3.13.5
      ---
      > Python 3.9.6
      33c33
      <    time for part (i): 0.2 s
      ---
      >    time for part (i): 0.5 s
      54c54
      <    time for part (ii): 0.0 s
      ---
      >    time for part (ii): 0.1 s
      73c73
      <       C = 190.136761, R = 1.2825766950; B(d) <= 1 for d < 44694, B(44694) > 1, B(d) > 1 for all d >= 44694   (7.5 s)
      ---
      >       C = 190.136761, R = 1.2825766950; B(d) <= 1 for d < 44694, B(44694) > 1, B(d) > 1 for all d >= 44694   (7.1 s)
      80c80
      <    time for part (iii): 8.2 s
      ---
      >    time for part (iii): 7.7 s
      92c92
      <    time for part (iv): 0.9 s
      ---
      >    time for part (iv): 1.3 s
      100c100
      <    time for part (v): 10.0 s
      ---
      >    time for part (v): 24.7 s
      119c119
      < total time: 19.4 s
      ---
      > total time: 34.2 s
    i.e. only the interpreter version line (the re-run used Python 3.9.6, the recording 3.13.5) and running times; the 51 checks and all values agree; 'TOTAL failures: 0', 'RESULT: ALL CHECKS PASSED'.
  own_mc_first_moment.out, own_cube_lemmaG_mc.out: only the '[time ...]' lines differ.
  own_exact_pair_n9_wrong_s0.out (7 lines) and own_exact_pair_n9_wrong_apex.out (5 lines): the recorded files are EXCERPTS of the program's output; every recorded line occurs verbatim in the full re-run output (22 lines each); the package README describes them as full outputs of the command line (to be corrected).
  own_hull_check_control.out: recorded with an earlier version of the program (as the README says); its first three lines agree with the re-run, the remaining lines are new output of the current version (h = 3/2: hull volume 2.7778 > union volume 2.5 for L0; 1.9178 > 1.8639 for K0: the union is not convex).
  Every other output is byte-identical.
