Skip to content

Commit bc9fdcf

Browse files
authored
Merge pull request #14 from CakeML/update
Update to latest HOL Light commit
2 parents 6562ec5 + 49a5ea9 commit bc9fdcf

24 files changed

Lines changed: 53241 additions & 7692 deletions

100/transcendence.ml

Lines changed: 37 additions & 155 deletions
Large diffs are not rendered by default.

CHANGES

Lines changed: 335 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,230 @@
88
* page: https://github.com/jrh13/hol-light/commits/master *
99
* *****************************************************************
1010

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+
11235
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
12236

13237
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),
200424
Borel-Cantelli lemmas, martingale convergence and the Azuma-Hoeffding
201425
inequality.
202426

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+
203538
Thu 5th Mar 2026 Help/mapi.hlp
204539

205540
Added a documentation file for the new "mapi" function introduced as

0 commit comments

Comments
 (0)