|
8 | 8 | * page: https://github.com/jrh13/hol-light/commits/master * |
9 | 9 | * ***************************************************************** |
10 | 10 |
|
| 11 | +Mon 27th Apr 2026 Probability/* |
| 12 | + |
| 13 | +Substantially extended the probability theory library with new results, |
| 14 | +generalized definitions, and systematic naming cleanup, also adding |
| 15 | +standard discrete distributions. This work was entirely done by Claude |
| 16 | +Opus 4.6. |
| 17 | + |
| 18 | +The most significant structural change is the systematic generalization |
| 19 | +from simple random variables to integrable random variables. The original |
| 20 | +library developed much of the theory using simple_rv (finite-valued |
| 21 | +random variables) with simple_expectation. This update adds parallel |
| 22 | +general definitions using integrable/expectation (Lebesgue integration) |
| 23 | +and reproves key results at this level of generality. The naming |
| 24 | +convention is: unprefixed names (e.g. martingale, char_fn_re) now refer |
| 25 | +to the general versions, while the original simple-RV versions are |
| 26 | +preserved under SIMPLE_ prefixes (e.g. simple_martingale, |
| 27 | +simple_char_fn_re). |
| 28 | + |
| 29 | +IMPORTANT: Several definitions and theorem names that existed in the |
| 30 | +previous version now refer to different (strictly more general) objects. |
| 31 | + |
| 32 | +The following definitions changed meaning (old simple-RV-based |
| 33 | +definitions are preserved under the names shown): |
| 34 | + |
| 35 | + martingale now uses adapted/integrable/expectation |
| 36 | + (was: simple_adapted/simple_rv/simple_expectation; |
| 37 | + old version now called simple_martingale) |
| 38 | + |
| 39 | + submartingale same generalization pattern |
| 40 | + (old version now called simple_submartingale) |
| 41 | + |
| 42 | + supermartingale same generalization pattern |
| 43 | + (old version now called simple_supermartingale) |
| 44 | + |
| 45 | + char_fn_re now defined via expectation p (\x. cos(t * X x)) |
| 46 | + (was: simple_expectation p (\x. cos(t * X x)); |
| 47 | + old version now called simple_char_fn_re) |
| 48 | + |
| 49 | + char_fn_im now defined via expectation p (\x. sin(t * X x)) |
| 50 | + (was: simple_expectation p (\x. sin(t * X x)); |
| 51 | + old version now called simple_char_fn_im) |
| 52 | + |
| 53 | + converges_L2 now defined via expectation |
| 54 | + (was: simple_expectation; |
| 55 | + old version now called simple_converges_L2) |
| 56 | + |
| 57 | +The following 20 theorem names that existed in the previous version now |
| 58 | +prove strictly stronger results (weaker hypotheses, same conclusions). |
| 59 | +In each case, the hypothesis "simple_rv" was replaced by |
| 60 | +"random_variable" or "integrable", and "simple_expectation" by |
| 61 | +"expectation". The old simple-RV versions are preserved with a SIMPLE_ |
| 62 | +prefix: |
| 63 | + |
| 64 | + CDF_LE_EXPECTATION CLT_CHAR_FN_CONVERGENCE |
| 65 | + CHAR_FN_ADD_INDEP_IM CLT_CHAR_FN_IM_CONVERGENCE |
| 66 | + CHAR_FN_ADD_INDEP_RE CLT_IM_ERROR_VANISHES |
| 67 | + CHAR_FN_DETERMINES_NORMAL_CDF_LIMIT EXPECTATION_LE_CDF |
| 68 | + CHAR_FN_IM_BOUND MCT_NN_EXPECTATION |
| 69 | + CHAR_FN_MODULUS_LE STEP_C_BOUND |
| 70 | + CHAR_FN_RE_BOUND TRIG_POLY_WEAK_CONVERGENCE |
| 71 | + CHAR_FN_RE_POW_CONV_EXP WEAK_CONVERGENCE_FROM_CHAR_FN |
| 72 | + CHAR_FN_SUM_IID_IM_SQ_BOUND MEASURABLE_WRT_ADD |
| 73 | + CHAR_FN_SUM_IID_RE_BOUND MEASURABLE_WRT_SUB |
| 74 | + |
| 75 | +Major new results include: |
| 76 | + |
| 77 | + KOLMOGOROV_SLLN: Kolmogorov's Strong Law of Large Numbers via the |
| 78 | + maximal inequality for independent summands |
| 79 | + |
| 80 | + IID_SLLN: for i.i.d. integrable random variables, the sample mean |
| 81 | + converges almost surely to the common expectation |
| 82 | + |
| 83 | + LINDEBERG_FELLER_CLT: the CLT under the Lindeberg condition for |
| 84 | + triangular arrays of independent random variables |
| 85 | + |
| 86 | + LEVY_CONTINUITY_GENERAL: pointwise convergence of characteristic |
| 87 | + functions implies convergence in distribution |
| 88 | + |
| 89 | + HELLY_SELECTION_THEOREM: every uniformly bounded sequence of |
| 90 | + distribution functions has a convergent subsequence |
| 91 | + |
| 92 | + PROHOROV_FORWARD: tightness implies relative sequential compactness |
| 93 | + in the topology of convergence in distribution |
| 94 | + |
| 95 | + RADON_NIKODYM: for an absolutely continuous signed measure, there |
| 96 | + exists an integrable density |
| 97 | + |
| 98 | + HAHN_DECOMPOSITION / JORDAN_DECOMPOSITION: every signed measure |
| 99 | + admits a Hahn decomposition and a Jordan decomposition into |
| 100 | + nonneg measures concentrated on complementary sets |
| 101 | + |
| 102 | + GEN_COND_EXP_EXISTS / GEN_COND_EXP_TOWER / GEN_COND_EXP_ITERATED: |
| 103 | + general conditional expectation via Radon-Nikodym with tower |
| 104 | + property, iterated conditioning, monotonicity, and linearity |
| 105 | + |
| 106 | + GEN_DOOB_DECOMPOSITION: general Doob decomposition of a |
| 107 | + submartingale into a martingale plus a predictable increasing |
| 108 | + process |
| 109 | + |
| 110 | + BACKWARD_MARTINGALE_CONVERGENCE_L1_BOUNDED: L1-bounded backward |
| 111 | + martingales converge almost surely |
| 112 | + |
| 113 | + UI_SUBMARTINGALE_CONVERGENCE_AS / OPTIONAL_STOPPING_UI: uniformly |
| 114 | + integrable submartingale convergence and optional stopping |
| 115 | + |
| 116 | + AZUMA_HOEFFDING_TWO_SIDED / MCDIARMID_INEQUALITY: concentration |
| 117 | + inequalities for martingales and bounded-differences functions |
| 118 | + |
| 119 | + THREE_SERIES_SUFFICIENCY / THREE_SERIES_NECESSITY / |
| 120 | + THREE_SERIES_NECESSITY_INDEP: Kolmogorov three-series theorem (both |
| 121 | + directions; two independent proofs of necessity) |
| 122 | + |
| 123 | + PALEY_ZYGMUND: reverse Markov-type inequality for lower bounds on |
| 124 | + the probability that a nonneg RV exceeds a fraction of its mean |
| 125 | + |
| 126 | + UI_BACKWARD_MARTINGALE_CONVERGENCE_AS: UI backward martingales |
| 127 | + converge almost surely |
| 128 | + |
| 129 | + WALD_EQUATION: for a martingale stopped at a bounded stopping time |
| 130 | + |
| 131 | + FATOU_LEMMA / REVERSE_FATOU_LEMMA / DOMINATED_CONVERGENCE_AE: |
| 132 | + convergence theorems for expectations |
| 133 | + |
| 134 | + POISSON_LIMIT: the Poisson limit theorem (binomial -> Poisson) |
| 135 | + |
| 136 | +Thu 23rd Apr 2026 Library/ringtheory.ml, Library/fieldtheory.ml, 100/transcendence.ml |
| 137 | + |
| 138 | +Adopted the "coeff" function from 100/transcendence.ml in the main ring theory |
| 139 | +file, with an equivalent but more direct definition. Added 28 new theorems |
| 140 | +about coefficient extraction for basic operations, the Cauchy product, degree |
| 141 | +interaction, polynomial characterization, and evaluation: |
| 142 | + |
| 143 | + COEFF |
| 144 | + COEFF_IN_CARRIER |
| 145 | + COEFF_IN_CARRIER_ALT |
| 146 | + COEFF_NONZERO_LE |
| 147 | + COEFF_NONZERO_LE_DEG |
| 148 | + COEFF_POLY_0 |
| 149 | + COEFF_POLY_1 |
| 150 | + COEFF_POLY_ADD |
| 151 | + COEFF_POLY_CONST |
| 152 | + COEFF_POLY_CONST_MUL |
| 153 | + COEFF_POLY_MUL |
| 154 | + COEFF_POLY_MUL_CONST |
| 155 | + COEFF_POLY_NEG |
| 156 | + COEFF_POLY_SUB |
| 157 | + COEFF_POLY_SUM |
| 158 | + FINITE_COEFF_SUPPORT |
| 159 | + FUN_EQ_COEFF |
| 160 | + POLY_DEG_EQ_COEFF |
| 161 | + POLY_DEG_EQ_COEFF_FROM_LE |
| 162 | + POLY_DEG_LE_COEFF |
| 163 | + POLY_EVAL_COEFF |
| 164 | + POLY_MUL_UNIVARIATE |
| 165 | + POLY_TOP_EQ_0 |
| 166 | + RING_POLYNOMIAL_COEFF |
| 167 | + RING_POLYNOMIAL_COEFF_BOUND |
| 168 | + RING_POLYNOMIAL_COEFF_ZERO_FROM |
| 169 | + RING_POLYNOMIAL_SUBRING_COEFF |
| 170 | + RING_POWERSERIES_COEFF |
| 171 | + |
| 172 | +Also added helper lemmas LAMBDA_1_EQ, FINITE_FUN_FROM_1, MONOMIAL_DEG_ONE |
| 173 | +and moved EXISTS_FUN_FROM_1, FORALL_FUN_FROM_1 earlier in the file. Seven |
| 174 | +existing theorems are restated to use coeff in their statements: |
| 175 | + |
| 176 | + POLY_DIVISION_GEN |
| 177 | + POLY_EVAL_AT_0 |
| 178 | + POLY_EVAL_EXPAND |
| 179 | + POLY_EXPAND |
| 180 | + POLY_EXTEND_UNIVARIATE |
| 181 | + POLY_TOP_NONZERO |
| 182 | + POLY_TOP_TAIL |
| 183 | + |
| 184 | +Three proofs in Library/fieldtheory.ml are adjusted for the restated |
| 185 | +POLY_EXTEND_UNIVARIATE, and in 100/transcendence.ml the local coeff |
| 186 | +definition is replaced by a bridge lemma "coeff_x_monomial" connecting the |
| 187 | +ringtheory definition with the local x_monomial construct, and about 20 |
| 188 | +proofs are simplified to one-line derivations from the new ringtheory |
| 189 | +theorems. |
| 190 | + |
| 191 | +Mon 20th Apr 2026 passim |
| 192 | + |
| 193 | +Fixed another case identified by Daniel Nezamabadi where polymorphic |
| 194 | +comparison was mistakenly being used on the bignum type, this one in |
| 195 | +Multivariate/vectors.ml; then assisted by Claude found and fixed many |
| 196 | +other instances of the same issue |
| 197 | + |
| 198 | + - iterate.ml: EXPAND_NSUM_CONV, EXPAND_SUM_CONV |
| 199 | + - printer.ml: DECIMAL printer |
| 200 | + - calc_rat.ml: RAW_REAL_RAT_MUL_CONV |
| 201 | + - calc_int.ml: is_realintconst, term_of_rat |
| 202 | + - int.ml: is_intconst |
| 203 | + - Library/calc_real.ml: REAL_FLOAT_MUL_CONV helper |
| 204 | + - Library/bitmatch.ml: bitpat_matches, inst_bitpat_numeral, unword |
| 205 | + - Library/isum.ml: EXPAND_ISUM_CONV |
| 206 | + |
| 207 | +Tue 14th Apr 2026 Library/tactician_light.ml [new file] |
| 208 | + |
| 209 | +Added "Tactician Light", a proof format translator for HOL Light, converting |
| 210 | +between interactive (g/e) and structured (prove) proof styles. It is inspired |
| 211 | +by Mark Adams' Tactician tool for HOL Light: |
| 212 | + |
| 213 | + http://www.proof-technologies.com/tactician/ |
| 214 | + |
| 215 | +which provided similar functionality via a "hiproof" representation and |
| 216 | +refactoring pipeline. This is a from-scratch reimplementation by Claude Code |
| 217 | +using string-based tactic recording rather than the original promotion/demotion |
| 218 | +mechanism. Although this simpler version requires some additional user work |
| 219 | +(e.g. saving a log of the tactic invocations to a file for processing by |
| 220 | +"i2s"), it is considerably simpler and less sensitive to OCaml internals. |
| 221 | + |
| 222 | +Mon 13th Apr 2026 mcp/* |
| 223 | + |
| 224 | +Merged an update from Ceren Kocaogullar adding proof recording tools |
| 225 | +"start_recording" and "stop_recording" to the MCP setup. This helps when |
| 226 | +the LLM is developing large proofs interactively in cases where the |
| 227 | +context window is exhausted or the session crashes. By retaining this |
| 228 | +record, the proof can resume where it left off. |
| 229 | + |
| 230 | +Sun 12th Apr 2026 mcp/SKILL.md |
| 231 | + |
| 232 | +Merged an update from Nevine Ebeid to the mcp/SKILL.md file that refines or |
| 233 | +corrects the explanations of several constructs and adds new pitfall warnings. |
| 234 | + |
11 | 235 | Wed 8th Apr 2026 100/green.ml [new file], 100/isoperimetric.ml, Library/words.ml, Multivariate/measure.ml, Multivariate/transcendentals.ml, Multivariate/realanalysis.ml, Multivariate/cauchy.ml |
12 | 236 |
|
13 | 237 | Added a proof of Green's theorem in a fairly general form, autoformalized by |
@@ -200,6 +424,117 @@ Numbers (weak and strong), Fair Games Theorem (Doob optional stopping), |
200 | 424 | Borel-Cantelli lemmas, martingale convergence and the Azuma-Hoeffding |
201 | 425 | inequality. |
202 | 426 |
|
| 427 | +Mon 9th Mar 2026 Library/ringtheory.ml |
| 428 | + |
| 429 | +Added more elementary results in ring theory: the preservation of the UFD |
| 430 | +property in localization and in polynomial rings (the latter via Gauss's lemma, |
| 431 | +some forms of which are broken out, e.g. as POLY_PRIMITIVE_CONST_CANCEL), and |
| 432 | +the Eisenstein irreducibility criterion: |
| 433 | + |
| 434 | + EISENSTEIN_IRREDUCIBILITY |
| 435 | + EISENSTEIN_IRREDUCIBILITY_FRACTION_RING |
| 436 | + EISENSTEIN_IRREDUCIBILITY_GEN |
| 437 | + INTEGRAL_DOMAIN_LOCALIZATION |
| 438 | + IRREDUCIBLE_PRIMITIVE_POLY_FRACTION_RING |
| 439 | + LOCALEQUIV_MUL_CANCEL |
| 440 | + MAKE_PRIMITIVE_IN_IDEAL |
| 441 | + MONOMIAL_MUL_VAR_ONE |
| 442 | + POLY_CLEAR_DENOMINATORS |
| 443 | + POLY_CONST_DIVIDES_COEFFS |
| 444 | + POLY_CONST_DIVIDES_COEFFS_EQ |
| 445 | + POLY_CONST_DIVIDES_COEFFS_REV |
| 446 | + POLY_MAKE_PRIMITIVE |
| 447 | + POLY_MONOMIALS_ALT |
| 448 | + POLY_MUL_VAR_COEFF_UNIVARIATE |
| 449 | + POLY_PRIMITIVE_CONST_CANCEL |
| 450 | + POLY_RING_HOMOMORPHISM_I |
| 451 | + POLY_VAR_DIVIDES_UNIVARIATE |
| 452 | + POLY_VAR_MONOMIAL_1 |
| 453 | + RING_DIVIDES_LOCALEQUIV |
| 454 | + RING_PRIME_POLY_CONST |
| 455 | + RING_PRIME_POLY_RING_MONO |
| 456 | + RING_PRIME_POLY_VAR_UNIVARIATE |
| 457 | + UFD_LOCALIZATION |
| 458 | + UFD_POLY_RING |
| 459 | + |
| 460 | +Fri 6th Mar 2026 sets.ml, Library/grouptheory.ml, Library/permutations.ml, Library/symmetric_group.ml [new file] |
| 461 | + |
| 462 | +Added a definition of "solvable_group" to the group theory library with some |
| 463 | +of its basic properties, as well as additional material about permutations. |
| 464 | +Combining these, the new file Library/symmetric_group.ml gives a basic |
| 465 | +development of the symmetric group (the group of permutations on set) including |
| 466 | +its unsolvability for a set of size >= 5. New definitions: |
| 467 | + |
| 468 | + solvable_group |
| 469 | + symmetric_group |
| 470 | + three_cycle |
| 471 | + |
| 472 | +and theorems: |
| 473 | + |
| 474 | + ABELIAN_IMP_SOLVABLE_GROUP |
| 475 | + ABELIAN_QUOTIENT_COMMUTATOR |
| 476 | + ABELIAN_QUOTIENT_EPIMORPHIC_IMAGE |
| 477 | + ALL_TRANSPOSITIONS_GENERATE_SYMMETRIC |
| 478 | + CARD_SYMMETRIC_GROUP |
| 479 | + CAYLEY_THEOREM |
| 480 | + CAYLEY_THEOREM_EXPLICIT |
| 481 | + CHAIN_STEP_THREE_CYCLES_GEN |
| 482 | + COMMUTATOR_IMP_ABELIAN_QUOTIENT |
| 483 | + FINITE_SYMMETRIC_GROUP |
| 484 | + INVERSE_UNIQUE_ALT |
| 485 | + INVOLUTION_MOVES_2_IS_SWAP |
| 486 | + INVOLUTION_SIZE_2_IS_SWAP |
| 487 | + ISOMORPHIC_GROUP_SOLVABILITY |
| 488 | + NOT_SOLVABLE_SYMMETRIC_GROUP |
| 489 | + PERMUTES_THREE_CYCLE |
| 490 | + POINT_TRANSPOSITIONS_GENERATE_ALL |
| 491 | + PRIME_ORDER_PERM_NO_FIXPOINT |
| 492 | + PRIME_ORDER_PERM_ORBIT |
| 493 | + PRIME_ORDER_POW_PERM |
| 494 | + RESTRICT_COMPOSE |
| 495 | + RESTRICT_I |
| 496 | + RESTRICT_INVERSE |
| 497 | + RESTRICT_PERMUTES_SUBSET |
| 498 | + RESTRICT_SWAP |
| 499 | + RESTRICT_SYMMETRIC_GROUP_HOMOMORPHISM |
| 500 | + SOLVABLE_GROUP_ALT |
| 501 | + SOLVABLE_GROUP_EPIMORPHIC_IMAGE |
| 502 | + SOLVABLE_GROUP_NORMAL_EXTENSION |
| 503 | + SOLVABLE_GROUP_QUOTIENT |
| 504 | + SOLVABLE_GROUP_SOLVABLE_QUOTIENT |
| 505 | + SOLVABLE_GROUP_SUBGROUP |
| 506 | + SUBGROUP_RESTRICT_PERMUTES |
| 507 | + SWAP_CONJUGATE |
| 508 | + SWAP_CONJUGATE_IN_SUBGROUP |
| 509 | + SWAP_IN_SYMMETRIC_GROUP |
| 510 | + SWAP_LEFT |
| 511 | + SWAP_OTHER |
| 512 | + SWAP_RIGHT |
| 513 | + SWAP_TRIPLE |
| 514 | + SWAP_TRIPLE_ALT |
| 515 | + SYMMETRIC_GROUP |
| 516 | + SYMMETRIC_GROUP_ACTION |
| 517 | + SYMMETRIC_GROUP_ID |
| 518 | + SYMMETRIC_GROUP_INV |
| 519 | + SYMMETRIC_GROUP_MUL |
| 520 | + SYMMETRIC_GROUP_POW |
| 521 | + SYMMETRIC_GROUP_POW_IN |
| 522 | + THREE_CYCLE_AS_COMMUTATOR |
| 523 | + THREE_CYCLE_COMMUTATOR |
| 524 | + THREE_CYCLE_COMPOSE_REVERSE |
| 525 | + THREE_CYCLE_INVERSE |
| 526 | + THREE_CYCLE_IN_SYMMETRIC |
| 527 | + THREE_CYCLE_NOT_I |
| 528 | + TRANSITIVE_TRANSPOSITION_GENERATES_SYMMETRIC |
| 529 | + TRANSPOSITION_PCYCLE_GENERATES |
| 530 | + TRIVIAL_IMP_SOLVABLE_GROUP |
| 531 | + |
| 532 | +Also added a few simple but natural lemmas to the sets.ml file in support: |
| 533 | + |
| 534 | + CARD_LE_2 = |- CARD {a,b} <= 2 |
| 535 | + CARD_LE_3 = |- CARD {a,b,c} <= 3 |
| 536 | + CARD_LE_4 = |- CARD {a,b,c,d} <= 4 |
| 537 | + |
203 | 538 | Thu 5th Mar 2026 Help/mapi.hlp |
204 | 539 |
|
205 | 540 | Added a documentation file for the new "mapi" function introduced as |
|
0 commit comments