Repository navigation
Expand file tree
/
Copy pathAxiomAudit.lean
More file actions
4215 lines (4014 loc) · 275 KB
/
Copy pathAxiomAudit.lean
File metadata and controls
4215 lines (4014 loc) · 275 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/-
# Axiom audit — the checked public-surface inventory
A standalone build target, deliberately outside the `LogicalInduction` library: the
library carries the mathematics, this target carries the check. Anything *not* listed here
is internal and may be renamed, moved, or inlined freely; changes to a listed statement are
surface changes and must be flagged.
**Two kinds of listing, and they are not the same claim.** In the `LogicalInduction`
section:
* the **public canonical endpoint inventory** — the block delimited by
`LI-CANONICAL-BEGIN` / `LI-CANONICAL-END`, which names exactly the endpoints of
`scripts/coverage-classification.md`'s *endpoints* table. This is the table of contents
for the human statement read-through, and it is what `docs/trust-surface.html` renders
with full signatures.
* **internal axiom regression assertions** — every other `#assert_axioms_clean` block.
These are under the build gate and stay there; they are construction machinery,
compatibility carriers and supporting lemmas, not the public read-through set. Wanting a
regression guard on a declaration is not a reason to publish it.
Carrying a `Paper node:` label is a third, weaker thing again: it is *provenance*, not
publication. `thm:scon` has 54 axiom-checked carriers and 4 canonical endpoints. The other
50 are real, checked, and deliberately not shown.
`scripts/check_endpoint_coverage.py` enforces that the canonical block and the endpoints
table name exactly the same declarations, so the three artifacts cannot drift apart the way
they had by 2026-08.
The build fails if any listed endpoint acquires an axiom beyond `propext`,
`Classical.choice`, `Quot.sound` (in particular `sorryAx`), or ceases to exist.
Two independent claims, checked separately — do not conflate them:
* **axiom cleanliness** (this build): every *listed* endpoint is `sorry`-free and uses no
stray axioms. It says nothing about whether the list is complete.
* **surface completeness** (`scripts/check_endpoint_coverage.py`): every paper `\label`
cited in a `Paper node:` annotation has at least one endpoint *in this list*. It says
nothing about axioms, nor about whether the listed endpoint is the strongest form of
the theorem (that is the human statement read-through's job — see below).
Green here + green there = "the enumerated surface is clean and covers every annotated
paper node", not "the formalization is faithful". Faithfulness is the read-through.
Scope is the whole repository, and it is now **strictly clean throughout**: the former
sole intentional axiom `glFixedPoint_thm42` (GL fixed-point existence) has been discharged
by the `ProvabilityLogic/` development (a vendored subset of
FormalizedFormalLogic/ProvabilityLogic, pinned in `lakefile.lean`; see
`ModalAgents/FixedPoint.lean`),
so every ModalAgents endpoint — including the cooperation results that rest on the GL fixed
point — is asserted under `#assert_axioms_clean`. (`#assert_axioms_clean_except` is retained
as a reusable tool but is no longer needed.)
## Tier-2 membership, annotations, and regeneration
**Tier 2 (`#assert_fields`)** freezes boundary *structures*: a structure's fields are
the hypotheses its endpoints consume, so adding or removing one is premise smuggling.
Membership is mechanical, not taste: a structure is Tier 2 iff it appears in the type
of a Tier-1 endpoint, transitively through structure fields — computed by
`SurfaceProbe.lean`'s `#surface_types`. Transitive closure is the right depth because
reading an endpoint means understanding every structure its hypotheses mention.
**Annotation convention**: the last line of every inventory member's docstring is
`Paper node: ` followed by backticked labels taken verbatim from `\label{…}` in
`LogicalInduction/notes/1609.03543v5-main.tex`, comma-separated — no ranges, no glosses, so every label
is greppable. Members realizing the efficient-computability obligation without a node
of their own carry `def:ec`; graded-strength endpoints share their theorem's node.
**Regeneration** after a deliberate surface change: rerun `#surface_types` (seeded
with the current `#assert_axioms_clean` names) and `#dump_fields` in
`SurfaceProbe.lean`, update the `#assert_fields` block and affected `Paper node:`
fields here, then run `scripts/check-paper-nodes.sh`.
-/
import Lean.Util.CollectAxioms
import LogicalInduction.Properties
import LogicalInduction.Construction
import LogicalInduction.API
import ModalAgents.Cooperation
import ModalAgents.Behavioral
import ModalAgents.FixedPoint
import ModalAgents.Arithmetic
import ModalAgents.ArithmeticAgent
import CartesianFrames.Examples
import CartesianFrames.Worlds
import CartesianFrames.Subagent
import CartesianFrames.AdditiveMultiplicative
import CartesianFrames.Operations
import CartesianFrames.Categorical
import FiniteFactoredSets
import Condensation
import FactoredSpaces
open Lean Elab Command in
/-- Fail elaboration unless every named declaration exists and depends on no axioms
beyond `propext`, `Classical.choice`, and `Quot.sound`. -/
elab "#assert_axioms_clean " ids:ident+ : command => do
for id in ids do
let name ← liftCoreM <| realizeGlobalConstNoOverloadWithInfo id
let axioms ← Lean.collectAxioms name
let bad := axioms.filter (! [``propext, ``Classical.choice, ``Quot.sound].contains ·)
unless bad.isEmpty do
throwErrorAt id "'{name}' depends on disallowed axioms: {bad.toList}"
open Lean Elab Command in
/-- Like `#assert_axioms_clean`, but additionally permits the one named axiom `extra`
(for the intentionally axiomatized `ModalAgents/` fixed-point fact). Still fails on `sorryAx`
or any other axiom. -/
elab "#assert_axioms_clean_except " extra:ident ids:ident+ : command => do
let extraName ← liftCoreM <| realizeGlobalConstNoOverloadWithInfo extra
for id in ids do
let name ← liftCoreM <| realizeGlobalConstNoOverloadWithInfo id
let axioms ← Lean.collectAxioms name
let allowed := [``propext, ``Classical.choice, ``Quot.sound, extraName]
let bad := axioms.filter (! allowed.contains ·)
unless bad.isEmpty do
throwErrorAt id "'{name}' depends on disallowed axioms: {bad.toList}"
open Lean Elab Command in
/-- Fail elaboration unless `struct` is a structure whose field-name set is exactly the
listed idents. Freezes the field *names* of a boundary structure — adding or removing a
field fails the build — but NOT their types: a field's type can change without failing
this check (it has, benignly: `mesh_poly`'s index moved during the precision reindex).
A type change on a frozen structure is still a surface change and must be flagged in a
comment here, as the `BitPrefixSentences.prefix_codes` note below does. Order-insensitive. -/
elab "#assert_fields " struct:ident fields:ident* : command => do
let name ← liftCoreM <| realizeGlobalConstNoOverloadWithInfo struct
unless Lean.isStructure (← getEnv) name do
throwErrorAt struct "'{name}' is not a structure"
let actual := ((Lean.getStructureFields (← getEnv) name).map (·.toString)).qsort (· < ·)
let expected := (fields.map (·.getId.toString)).qsort (· < ·)
unless actual.toList == expected.toList do
throwErrorAt struct
"'{name}' fields changed.\n expected: {expected.toList}\n actual: {actual.toList}"
namespace LogicalInduction
open ConditioningCompile FeedbackTruth FeedbackEmission PrefixPatchCompile
/-! ## Public canonical endpoint inventory
**This block is the trust surface a reader is asked to read.** It names exactly the
canonical endpoints of `scripts/coverage-classification.md`'s *endpoints* table — the
declarations `docs/trust-surface.html` renders with full signatures, one small curated set
per paper node, the paper's own printed form first.
Every *other* `#assert_axioms_clean` block below is an **internal axiom regression
assertion**: still under the build gate, so nothing lost its guard and build coverage is
unchanged, but not public trust surface. Being worth freezing is not a reason to put a
declaration in front of a reader. `thm:scon` has 54 axiom-checked carriers and 4 canonical
endpoints; `def:ec` has 24 and 3.
The delimiters are machine-read: `scripts/check_endpoint_coverage.py` fails the run unless
the name set here equals the endpoints table's, spelling included — so the two cannot drift,
and a curated node cannot silently fall back to an arbitrary carrier (which is exactly what
happened to `thm:ifp`, whose refutation and corrected theorem were both invisible).
Names are repeated from the topical blocks below on purpose: this list is a *view*, and the
topical blocks stay the place where each endpoint is explained. -/
-- LI-CANONICAL-BEGIN
#assert_axioms_clean
AffineCombination AffineCombination.BoundedCombinationSequence LUVCombination.BoundedSequence
PaperLUVCombination.boundedSequence unitFracPaperLUVBoundedSequence DeductiveProcess
DeductiveProcessComputation DeferralFunction MachineEfficientTrader EfficientlyComputable
EfficientlyComputable.toMachine GeneratedRatFeature PGenerableWeighting liaStates liaHistory
IsMachineLogicalInductor IsLogicalInductor PaperLUV LUV unitFracPaperLUVSeq Trader Strategy
LUVCombination.BoundedSequence.mesh_independence_ofSyntax trading_firm_dominance
AffineCombination.PolySequence.affcoh AffineCombination.BoundedCombinationSequence.affpolymax
AffineCombination.PolySequence.affine_provind_theory_ge
AffineCombination.PolySequence.affine_provind_theory_le
AffineCombination.PolySequence.affine_provind_theory_eq lic_learning_pseudorandom_frequency
lic_learning_pseudorandom_frequency_above lic_learning_pseudorandom_frequency_below
lic_no_expected_net_update_conditional_paperLUV_closed
lic_no_expected_net_update_conditional_exact_canonical lic_expected_future_expectations_closed
lic_no_expected_net_update_closed lic_limitingBelief_tendsto lic_price_convergesTo
lic_does_not_anticipate_halting_unconditional
lic_domination_universalSemimeasure_ofIndependentAtoms lic_domination_universalSemimeasure
LUV.expect_converges lic_expectation_indicator lic_expectations_of_probabilities_closed
lic_iterated_expectations_closed LUVCombination.BoundedSequence.expcoh_ofSyntax
LUVCombination.BoundedSequence.exppolymax_ofSyntax lic_expect_combination_provind_ge
lic_expect_combination_provind_le lic_expect_combination_provind_eq
lia_learns_halting_patterns_unconditional
FinitePerturbationCounterexample.not_overgeneral_ifp
FreezeOracle.machine_lic_iff_of_finiteSupport
LIAPerturbation.machineLogicalInductor_liaPerturbed
lic_disbelief_inconsistent_theories_unconditional lic_limitCoherence
lic_learning_exclusive_exhaustive exists_computable_beliefSequence_logical_inductor
exists_machine_logical_inductor LIA_isMachineLogicalInductor LIA_is_logical_inductor
lic_linearity_of_expectation_seq lic_learns_provable_nonhalting_patterns_unconditional
lic_paradox_resistance_ofDiagonal_unconditional lic_nonDogmatism lic_nonDogmatism_dual
UPrefix.lic_occamBounds_ofUniversalPrefix lic_uniform_nonDogmatism_ofCE
lic_uniform_nonDogmatism lic_belief_finitistic_consistency_unconditional
lic_belief_stronger_theory_consistency_unconditional AffineCombination.PolySequence.peraffkno
LUVCombination.BoundedSequence.perexpkno_ofSyntax lic_persistence_of_knowledge
lic_learning_varied_pseudorandom lic_learning_varied_pseudorandom_above
lic_learning_varied_pseudorandom_below
AffineCombination.BoundedCombinationSequence.prandaff_above
AffineCombination.BoundedCombinationSequence.prandaff_below
AffineCombination.BoundedCombinationSequence.prandaff LUVCombination.BoundedSequence.prandexp
LUVCombination.BoundedSequence.prandexp_below LUVCombination.BoundedSequence.prandexp_eq
lic_provind AffineCombination.BoundedCombinationSequence.recunbiasedaff
AffineCombination.recurringunbiasedness
LUVCombination.BoundedSequence.recurringunbiasednessexp lic_introspection_closed
lic_introspection ConditioningCompile.lic_conditioned_fixed_machine
ConditioningCompile.lic_conditioned_growing_machine_ofProcessComputation
ConditioningCompile.lic_conditioned_growing_machine_ofSequence
lic_conditioned_fixed_machine_unconditional lic_conditioned_growing_machine_unconditional
AffineCombination.simcal AffineCombination.sentenceAffine_polySequence
calibrationIndicator_pgenerable lic_self_trust_closed
lic_strict_domination_universalSemimeasure_ofAtomCodes
lic_strict_domination_universalSemimeasure lic_preemptive_learning
FeedbackTruth.lic_wub_ofComputation FeedbackTruth.lic_wub_ofComputation_unconditional
FeedbackTruth.boundedCombination_wubaff_ofComputation
FeedbackTruth.boundedCombination_wubaff_ofComputation_unconditional
FeedbackTruth.luv_wubexp_ofComputation FeedbackTruth.luv_wubexp_ofComputation_unconditional
-- LI-CANONICAL-END
/-! ## Existence (`thm:li`) -/
#assert_axioms_clean exists_logical_inductor LIA_is_logical_inductor
exists_computable_beliefSequence_logical_inductor
exists_machine_logical_inductor LIA_isMachineLogicalInductor
-- The canonical trader universe is `MachineEfficientTrader` — ordinary machine
-- polynomial time, through `Complexity.FP`. The enumeration is sound and covers the whole
-- class, and the fuel calculus's certificates land inside it.
#assert_axioms_clean
trading_firm_dominance exists_enumeratedTrader_eq enumeratedTrader_machineEfficient
enumeratedOutput_mem_FP EfficientlyComputable.toMachine
lia_no_machine_trader_exploits
/-! ## Property tail, conditional on `[IsLogicalInductor P DP]` -/
-- Properties/Coherence.lean
#assert_axioms_clean
lic_disprovable_tendsto_zero lic_excl_gap_tendsto_zero lic_limit_additive
lic_price_convergesTo
-- Properties/LimitCoherence.lean
#assert_axioms_clean lic_limitCoherence
-- Properties/ProvabilityInduction.lean, Properties/AffineCoherence.lean
-- Tier note: `lic_provind` / `lic_provind_true` / `lic_provind_false` are the
-- paper-facing `thm:provind` (theorems may appear arbitrarily late in the process).
-- `lic_deducible_*` and `lic_provind_seq` are retained FRAGMENTS whose membership
-- hypotheses (`φ ∈ D n` at every / its own index) are stronger than the paper's —
-- do not credit them as `thm:provind`.
#assert_axioms_clean
lic_deducible_eventually_ge lic_deducible_price_near_one lic_deducible_tendsto_one
lic_provind_seq lic_provind lic_provind_true lic_provind_false
-- Properties/TimelyLearning.lean, Properties/AffinePersistence.lean
#assert_axioms_clean
lic_preemptive_learning lic_persistence_of_knowledge lic_persistence_of_knowledge_lower
lic_persistence_of_knowledge_upper lic_centered_persistence lic_limitingBelief_tendsto
-- Properties/AffineCoherence.lean, AffinePreemptiveLearning.lean, AffinePersistence.lean:
-- the paper-facing analytic affine capstones (`thm:affcoh`, `thm:affpolymax`, `thm:peraffkno`)
-- and all three comparison forms of `thm:affprovind`.
-- Tier note: `thm:affprovind` is the affine statement — a bounded combination sequence and a
-- real bound `b`, in `≥`/`≤`/`=` forms. It is these three, NOT `lic_provind_true`/`_false`,
-- which are the sentence-level halves of `thm:provind` (the `k=1`, `b ∈ {0,1}` special case).
#assert_axioms_clean
AffineCombination.PolySequence.affcoh
AffineCombination.BoundedCombinationSequence.affpolymax
AffineCombination.PolySequence.peraffkno
AffineCombination.PolySequence.affine_provind_theory_ge
AffineCombination.PolySequence.affine_provind_theory_le
AffineCombination.PolySequence.affine_provind_theory_eq
-- Properties/NonDogmatism.lean, Properties/UniformNonDogmatism.lean
-- Tier note: `lic_nonDogmatism` / `lic_nonDogmatism_dual` are the paper-facing `thm:nd`;
-- `lic_nonDogmatism_weak` is a retained FRAGMENT (its lower bound decays with `n`).
#assert_axioms_clean
lic_nonDogmatism lic_nonDogmatism_dual lic_nonDogmatism_weak lic_limit_pos
lic_limit_lt_one lic_uniform_nonDogmatism lic_uniform_nonDogmatism_repeating
-- Properties/OccamBounds.lean, Properties/UniversalSemimeasure.lean
#assert_axioms_clean
lic_occamBounds lic_occam_lower lic_limitingBelief_add_neg
lic_domination_universalSemimeasure lic_strict_domination_universalSemimeasure
-- Construction/Witnesses/KraftInequality.lean — the Kraft inequality underlying the
-- prefix-machine complexity bounds. Proof body autoformalized by Aristotle and
-- kernel-revalidated in-repo; the statement is audited surface, the generated interior
-- has not had a line-by-line human read.
#assert_axioms_clean
kraft_inequality
-- Construction/Witnesses/PrefixMachine.lean — the concrete self-delimiting sentence code,
-- with both fuel-model emission certificates constructed (no operational input remains).
#assert_axioms_clean
prefixKraft prefixNegationCompiler
invalidBit_polyFueled prefixSentenceEnum_polySentenceCodes prefixApprox_polyRatCodes
lic_occam_lower_ofPrefixMachine lic_occamBounds_ofPrefixMachine
-- Construction/Witnesses/UniversalPrefix.lean (the self-delimiting UNIVERSAL prefix
-- machine). `dom U` is prefix-free by construction, so the Kraft field
-- needs no hypothesis; `kappaU_le_of_prefixMachine` is the invariance theorem that earns
-- the word "universal"; `uSel_polyRatCodes` builds the polynomial clock (a self-clamped
-- `evaln` selection) on top of the exact stage table, whose own program
-- `uCode` is now CONSTRUCTED (`exists_uCode`, via the bounded search `uMinLen`), so the
-- two endpoints carry no operational input at all.
#assert_axioms_clean
UPrefix.UHalt_prefixFree UPrefix.UHalt_functional UPrefix.acc_antichain
UPrefix.kappaU_kraft UPrefix.kappaUNegationCompiler
UPrefix.kappaU_le_of_prefixMachine UPrefix.kappaStage_eventually_eq
UPrefix.uMinLen_eq UPrefix.uEmit_prim UPrefix.exists_uCode
UPrefix.uSel_polyRatCodes UPrefix.universalPrefixPresentation
UPrefix.universalPrefixThresholdEmission
UPrefix.lic_occam_lower_ofUniversalPrefix UPrefix.lic_occamBounds_ofUniversalPrefix
-- Properties/Conditioning.lean, Properties/FinitePerturbations.lean
-- Tier note: `isLogicalInductor_of_stage_unsatisfiable` (Framework/Affine.lean) is the
-- degenerate half of `thm:scon` — the criterion over a deductive process one of whose
-- stages has no propositionally consistent world. It is listed here because it is what
-- lets the `thm:scon` endpoints drop the repo-side joint-consistency hypothesis and match
-- the paper's premise-free statement. For the growing form the other half of that split is
-- `DeductiveProcess.exists_consistentWithTheory` (Framework/Compactness.lean): propositional
-- compactness over Cantor space, which converts per-stage satisfiability of the union
-- process into the single world the price-floor argument consumes. It is internal
-- infrastructure, not a paper node, so it is not itself an inventory member; its axiom
-- report is covered transitively by the `thm:scon` endpoints below.
#assert_axioms_clean
lic_conditioned lic_conditioned_gated lic_conditioned_eventual
lic_conditioned_machine lic_conditioned_gated_machine lic_conditioned_eventual_machine
isLogicalInductor_of_stage_unsatisfiable
isMachineLogicalInductor_of_stage_unsatisfiable
lic_iff_of_finitePerturbation
lic_iff_of_finiteSupportPerturbation machine_lic_iff_of_finiteSupportPerturbation
-- Construction/Witnesses/FinitePerturbationWitness.lean — the REFUTATION of `thm:ifp`.
-- The paper's printed statement is false; `not_overgeneral_ifp` proves its negation at the
-- paper's own quantifier, with no theory parameter (`_ofTheory` is the same over any Σ₁-sound
-- Δ₁ theory extending `𝗜𝚺₁`), from the constructed `LIA` and a day-`0` advice tape. It is a
-- canonical endpoint — the reader of `thm:ifp` must meet it first — and is therefore in the
-- LI-CANONICAL block above as well; the three carriers listed immediately above are the
-- compatibility renderings of the CORRECTED statement and are internal, two of them with
-- patch hypotheses that are uninhabited (see the RpnFreeze note below). `notes/paper-errata.md`
-- PE1 is the ledger.
#assert_axioms_clean
FinitePerturbationCounterexample.not_overgeneral_ifp
-- Properties/Pseudorandomness.lean
#assert_axioms_clean
lic_learning_pseudorandom_frequency lic_learning_pseudorandom_frequency_above
lic_learning_pseudorandom_frequency_below lic_learning_varied_pseudorandom
lic_learning_varied_pseudorandom_above lic_learning_varied_pseudorandom_below
AffineCombination.BoundedCombinationSequence.recunbiasedaff
AffineCombination.BoundedCombinationSequence.prandaff
AffineCombination.BoundedCombinationSequence.prandaff_above
AffineCombination.BoundedCombinationSequence.prandaff_below
AffineCombination.recurringunbiasedness AffineCombination.simcal
AffineCombination.lic_not_frequently_positive_feedback_return
AffineCombination.lic_wub AffineCombination.lic_wubaff
-- Properties/Relationships.lean
#assert_axioms_clean
lic_imp_eventually_le lic_lex_tendsto_zero lic_learning_exclusive_exhaustive
-- Properties/ExpectationAffine.lean, Properties/Introspection.lean,
-- Properties/SelfTrust.lean
#assert_axioms_clean
lic_linearity_of_expectation lic_expectation_indicator lic_expectation_provind
lic_linearity_of_expectation_ofValuesAt lic_expectation_provind_ofValuesAt
lic_expectation_provind_le lic_expectation_provind_eq
lic_expect_combination_provind_zero lic_expect_combination_provind_le_ofDetermined
lic_expect_combination_provind_ge_ofDetermined lic_expect_combination_provind_eq_ofDetermined
lic_expect_combination_provind_le
lic_expect_combination_provind_ge
lic_expect_combination_provind_eq
lic_linearity_of_expectation_seq
lic_introspection lic_paradox_resistance lic_expectations_of_probabilities
lic_iterated_expectations lic_self_trust lic_expected_future_expectations
-- Properties/ExpectationConvergence.lean: Expectations Converge (`thm:ec`).
#assert_axioms_clean LUV.expect_converges
-- Properties/ExpectationProperties.lean: the paper-facing LUV-combination sequence
-- capstones (`thm:exppolymax`, `thm:expcoh`, `thm:perexpkno`, `thm:wubexp`).
#assert_axioms_clean
LUVCombination.BoundedSequence.mesh_independence
LUVCombination.BoundedSequence.exppolymax
LUVCombination.BoundedSequence.expcoh
LUVCombination.BoundedSequence.perexpkno
LUVCombination.BoundedSequence.wubexp
-- Construction/Witnesses/LUVExpectationCertified.lean (`dd:luv-arith`): the
-- expectation endpoints whose world-value hypotheses are discharged from arithmetic
-- (`thm:loe`, `thm:expprovind`). The certified LUV, its derived world-value
-- interfaces (`threshold_holds_iff`, `exactTheoryPresentation_ofArithmetic`), and the
-- process realizing them (`luvArithmeticPresentation`) are internal infrastructure.
#assert_axioms_clean
ComputableLUV.lic_expectation_provind_arith
ComputableLUV.lic_expectation_provind_le_arith
ComputableLUV.lic_expectation_provind_eq_arith
ComputableLUV.lic_linearity_of_expectation_arith
ComputableLUV.exppolymax_arith ComputableLUV.wubexp_arith
ComputableLUV.expcoh_arith ComputableLUV.perexpkno_arith
-- dd:fuel model card (`def:ec`): the fuel certificate's own trust facts — poly-fueled ⟹
-- primrec, the runtime-gcd inhabitation witness, the size-based separation (2^n is not
-- poly-fueled), and the two-sided EF.cost ↔ token-length seam. The certificate's
-- relation to the paper's class is `EfficientlyComputable.toMachine`, audited above.
#assert_axioms_clean
PolyFueled.primrec gcdc_polyFueled not_polyFueled_two_pow
EF.cost_le_serialize_length EF.serialize_length_le_cost
Strategy.serializeTrades_length_le_cost
-- dd:fuel digit layer (`def:ec`): the digit stream determines the token stream
-- (round-trip + injectivity), and every token-model certificate transfers into the
-- digit-metered class (the inclusion capstone). The digit model is the
-- metering underneath the collapsed criterion class `EfficientlyComputable`.
#assert_axioms_clean
undigitize_digitize digitize_injective
PolySegStream.digitizeStream
EfficientlyComputableTok.toDigit
-- dd:fuel discharged for dd:luv-arith: the threshold-code and process-computability
-- certificates are proved (gcdc_polyFueled/toLUV_polyThresholdCodes/gridDP_computable),
-- so these endpoints are FULLY unconditional over the constructed LIA — the sole
-- hypothesis is the rational bound/identity on the LUV values.
#assert_axioms_clean
ComputableLUV.lic_expectation_provind_arith_unconditional
ComputableLUV.lic_expectation_provind_le_arith_unconditional
ComputableLUV.lic_expectation_provind_eq_arith_unconditional
ComputableLUV.lic_linearity_of_expectation_arith_unconditional
lic_no_expected_net_update lic_no_expected_net_update_conditional
LUVCombination.BoundedSequence.recurringunbiasednessexp
LUVCombination.BoundedSequence.prandexp
LUVCombination.BoundedSequence.prandexp_below
LUVCombination.BoundedSequence.prandexp_eq
-- Properties/MetaLearning.lean
#assert_axioms_clean
lic_belief_finitistic_consistency
lic_disbelief_inconsistent_theories lic_learns_halting_patterns
lic_learns_provable_nonhalting_patterns lic_does_not_anticipate_halting
/-! ## Constructed boundary witnesses and their direct criterion consumers
Each block below names the file whose constructions *discharge* an interface the property
tail would otherwise assume, together with the criterion endpoints that consume them. -/
-- Construction/Witnesses/BoundedEvaluation.lean — the bounded-`evaln` compiler, repeated
-- enumeration of a c.e. set, settlement/patient clocks, and the prefix-freeze certificate.
#assert_axioms_clean
codeEvalnNat_polyFueled
EfficientRepeatedEnumeration.ofBig EfficientRepeatedEnumeration.ofCE
lic_uniform_nonDogmatism_ofCE
SettlementChecker.ofComputations PatientSettlementClock.ofComputations
liaFreezeBefore_preserves_ecTok
-- Construction/Witnesses/QuotationAffine.lean — the code-indexed quotation layer
-- (`dd:quote-code`) and the diagonal price fixed point it makes constructible.
#assert_axioms_clean
diagonalPriceDecisionPart_partrec diagonalPriceDecisionCode_eval
diagonalPriceQuotePos_iff diagonalPriceQuoteNeg_iff diagonalPriceFixedpoint_spec
parameterizedDiagonalQuoteCodeOfMarket
parameterizedDiagonalQuoteCodeOfMarket_public_fixedpoint
lic_introspection_ofCode lic_paradox_resistance_ofDiagonal
lic_expectations_of_probabilities_ofCode lic_iterated_expectations_ofCode
lic_self_trust_ofRepresentation lic_expected_future_expectations_ofRepresentation
lic_no_expected_net_update_ofRepresentation
lic_no_expected_net_update_conditional_ofRepresentation
theoremMarketComputation paperMarketComputation paperQuotationPresentation
paperDiagonalQuoteCode
lic_paradox_resistance_ofDiagonal_unconditional
-- Construction/Witnesses/FeedbackEmission.lean — the emitter that turns a feedback
-- trader schedule into an `def:ec`-certified trade stream.
#assert_axioms_clean
feedbackTraderEmissionSigns lic_wubaff_ofFeedbackTruth
boundedCombination_wubaff_ofFeedbackTruth luv_wubexp_ofFeedbackTruth
-- Construction/Witnesses/FeedbackTruth.lean — the delayed-truth bridge: a computation of
-- the feedback value, clocked to the deferral day, feeding the unbiasedness endpoints.
-- `FeedbackTruth.ordinaryFeedbackTruthComputation` inhabits the delayed-truth premise with
-- a constant value stream (inhabitation only — see its docstring);
-- `FeedbackTruth.alternatingFeedbackTruthComputation_nonempty` is the **non-degenerate**
-- witness, whose stream takes both values along the deferral image, so the endpoints'
-- dependence on `truth` is exercised by an actual inhabitant and not only by the
-- arbitrary-`truth` statement. `FeedbackTruth.exists_nonconstant_feedbackTruthComputation`
-- records that non-constancy explicitly; it carries no `Paper node:` line and so is
-- deliberately not asserted here.
#assert_axioms_clean
FeedbackTruth.ordinaryFeedbackTruthComputation
FeedbackTruth.alternatingFeedbackTruthComputation_nonempty
feedbackTruthSequence feedbackTruthSequence_ofDetermined
lic_wubaff_ofComputation lic_wub_ofComputation
boundedCombination_wubaff_ofComputation luv_wubexp_ofComputation
lic_wub_ofComputation_unconditional lic_wubaff_ofComputation_unconditional
boundedCombination_wubaff_ofComputation_unconditional
luv_wubexp_ofComputation_unconditional
-- Construction/Witnesses/BitPrefixSyntax.lean — the prefix-sentence family over
-- independent bit atoms, its token-metered naming emitter, and the semimeasure-domination
-- endpoint they feed. `ordinaryBitPrefixSentences` is the **inhabitation witness** for
-- `BitPrefixSentences`; `not_polySentenceCodes_bitPrefixSentence` records why that field must
-- be metered in tokens rather than in the pair-code value.
--
-- Two witness layers, and which one to cite (final audit). `ordinaryBitPrefixSentences`
-- lives over `emptyBitDeductiveProcess`, whose every stage is `∅`, so its `realizable` field
-- is discharged VACUOUSLY: it is an INHABITATION witness only, and the paper's
-- Θ-load-bearing reading of `thm:dus` is not exercised by it. What it does exercise is the
-- naming half, which is the forced one: `ordinaryBitPrefixCodes` is a genuine write-out
-- emitter and the whole-value form of that field is unsatisfiable outright.
-- `paperIndependentBitAtoms` / `paperBitPrefixSentences` are the SUBSTANTIVE layer, over
-- `paperDP T`, whose stages are non-empty: independence is realized there by grafting a bit
-- assignment at the reserved atom tag 7, disjoint from the process's own atoms. Cite the
-- paperDP layer, not the ordinary one, when asked whether the `thm:dus` premises are
-- non-vacuously satisfiable. Both endpoints remain proved for an arbitrary deductive
-- process, so neither layer's limits bound the theorem. See the declarations' docstrings.
#assert_axioms_clean
not_polySentenceCodes_bitPrefixSentence ordinaryBitPrefixCodes
bitPrefixSentencesOfIndependentAtoms ordinaryBitPrefixSentences
lic_domination_universalSemimeasure_ofIndependentAtoms
paperIndependentBitAtoms paperBitPrefixCodes paperBitPrefixSentences
lic_domination_universalSemimeasure_paperDP
-- Construction/Witnesses/UniversalDovetailer.lean — the universal continuous semimeasure.
-- The universal continuous semimeasure is fully constructed: the semimeasure laws, the
-- monotone from-below stage table, the explicit domination constant, and the emission
-- program for the stage table (column tabulation). The *polynomial* clock is now
-- discharged as well: the self-clamped stage table reads the fixed exact emitter under a
-- polynomial `evaln` clock, so both `DUSApproximationPresentation` and
-- `DUSThresholdEmission` are constructed objects.
#assert_axioms_clean
Dovetail.continuousSemimeasure Dovetail.universalMass_dominates
Dovetail.exists_universalApprox_code Dovetail.universalSemimeasure
Dovetail.gridApprox_le_mass Dovetail.gridApprox_tendsto
Dovetail.isPolyBounded_encode_gridApprox
Dovetail.dusApprox_tendsto Dovetail.dusApprox_polyRatCodes
Dovetail.dusApproximationPresentation Dovetail.dusThresholdEmission
-- Construction/Witnesses/StrictSeparators.lean — the recursively inseparable pair and the
-- null stage classes that make the strict-domination separator presentation constructible.
-- The separator presentation is fully constructed: Kleene's pair is recursively
-- inseparable, the constraint theory's enumerator is built from the atom codes, and the
-- stage classes are null (`separatorClass_mass_tendsto_zero`, the Kučera–Demuth argument)
-- rather than assumed. `strictSeparatorPresentationOfKleene`'s only input is
-- computability of the atom Gödel codes, itself proved for the repo's atoms.
#assert_axioms_clean
kleene_recursively_inseparable no_ce_null_prefix_family
separatorClass_mass_tendsto_zero strictSeparatorPresentationOfKleene
ordinaryAtom_code_computable
lic_strict_domination_universalSemimeasure_ofAtomCodes
-- Construction/Witnesses/ConditioningPresentation.lean — the conditioning presentation
-- (condition sentences plus their codes) built from the process computations.
-- The compact interface's two witnesses: the degenerate one (empty adjoined process,
-- inhabitation only) and the growing one, which is what carries the content burden.
#assert_axioms_clean
conditioningPresentationOfComputations fixedConditioningPresentation
lic_conditioned_gated_ofComputations
growingConditionProcessComputation growingCompactConditioningProcessComputation
growingConditionProcess_ssubset
deductiveStageCondition_growing_ne deductiveStageCondition_growing_ne_top
prefixProcess prefixProcessComputation prefixConditioningPresentation
-- Construction/Witnesses/ConditioningCompiler.lean — the eventual price floor the
-- conditioning translation needs. (The `def:ec`-preserving translations themselves are
-- the `_ecRpn` endpoints below, at the criterion's own class.)
#assert_axioms_clean
exists_eventual_condition_price_floor
eventualConditioningFloorOfJointConsistency
-- Construction/Witnesses/DigitConditioning.lean — the conditioning translation in the
-- digit metering model: guarded compilers, guard honesty, and the digit-to-digit
-- preservation results.
#assert_axioms_clean
ConditioningCompile.strategyOfTokens_trades_eq_nil_of_bigDay
ConditioningCompile.guardedConditionRun_polySegStream
ConditioningCompile.guardedZeroAwareConditionRun_polySegStream
ConditioningCompile.safeSeparatedFrameDigitOutput_polySegStream
ConditioningCompile.conditionedTranslation_preserves_ecDigit
ConditioningCompile.eventualConditionedTranslation_preserves_ecDigit
-- Construction/Witnesses/RpnConditioning.lean — the conditioning translation in the RPN
-- symbol model: the run-aware price transducer and its master commutation, guard honesty,
-- the frame pass and its gated two-leg join, and the two `def:ec → def:ec` translation
-- endpoints. The `thm:scon` packaging that used to close this block now lives in
-- `Construction/Machine/CondEndpoints.lean`, listed below: criterion endpoints sit above
-- both the fuel and the machine realization rather than inside either.
#assert_axioms_clean
RpnConditioning.rpnGuardedConditionRun_polySegStream
RpnConditioning.rpnGuardedZeroAwareConditionRun_polySegStream
RpnConditioning.unRpn_rpnConditionRun
RpnConditioning.unRpn_rpnZeroAwareConditionRun
RpnConditioning.strategyOfTokens_rpnGuardedConditionTokens_trades
RpnConditioning.strategyOfTokens_rpnGuardedZeroAwareConditionTokens_trades
RpnConditioning.rpnTradeCountAt_eq_frameTradeCount
RpnConditioning.rpnStructurallyAccepts_agree
RpnConditioning.rpnSafeSeparatedFrameOutput_polySegStream
RpnConditioning.strategyOfTokens_unRpn_rpnSafeSeparatedFrameOutput_trades
RpnConditioning.conditionedTranslation_preserves_ecRpn
RpnConditioning.eventualConditionedTranslation_preserves_ecRpn
RpnConditioning.strategyOfTokens_rpnConditionOutput
RpnConditioning.strategyOfTokens_rpnZeroAwareOutput
-- Construction/Machine/CondStep.lean — the conditioning transduction in the machine model:
-- the same token-level automaton as the fuel realization, driven as a `Complexity.FP` client
-- of `TokenFold.runFold`, and the transport theorem the machine criterion needs.
-- Both transport theorems take the *same* `BigSentenceCodes` hypothesis on the condition
-- sequence as their fuel counterparts — `def:ec`'s own write-out class, in which a
-- condition's Gödel code may be exponential in the day — so nothing about `ψ` is weakened;
-- their trader hypothesis is the machine class, so they are strictly stronger there.
-- The bridge to the transducer's block discipline is `CondStep.machineSentenceBlocks_of_big`,
-- clocked by `BigTokenStream.digitizeStream`.
#assert_axioms_clean
CondStep.conditionedTranslation_preserves_machine
CondStep.eventualConditionedTranslation_preserves_machine
-- Construction/Machine/CondEndpoints.lean — the `thm:scon` packaging: operational witnesses
-- and criterion-level closure, over both realizations. The block moved here unchanged from
-- `RpnConditioning.lean`; only the machine endpoint is new.
-- All three witnesses carry both certificates; the eventual one's machine field arrived
-- with its emitter (the finite-zero price rewrite, whose zero-day test is a fixed-finite-set
-- dispatch clamped at the floor's cutoff). `thm:scon` stands at the paper's own quantifier
-- in all three forms.
#assert_axioms_clean
ConditioningCompile.eventualConditioningOperationalWitness
ConditioningCompile.gatedConditioningOperationalWitness
ConditioningCompile.denominatorPatchedGatedConditioningOperationalWitness
ConditioningCompile.lic_conditioned_gated_ofMarketComputation
ConditioningCompile.lic_conditioned_gated_machine_ofMarketComputation
ConditioningCompile.lic_conditioned_eventualOfFloor
ConditioningCompile.lic_conditioned_eventualOfFloor_machine
ConditioningCompile.lic_conditioned_eventual_ofMarketComputation
ConditioningCompile.lic_conditioned_eventual_machine_ofMarketComputation
ConditioningCompile.lic_conditioned_fixed_ofComputationAndMarket
ConditioningCompile.lic_conditioned_growing_ofComputationsAndMarket
ConditioningCompile.lic_conditioned_fixed_machine
ConditioningCompile.lic_conditioned_growing_machine_ofProcessComputation
ConditioningCompile.lic_conditioned_growing_machine_ofSequence
ConditioningCompile.lic_conditioned_gated_ofComputationsAndMarket
-- Construction/Witnesses/RpnFreeze.lean — the prefix-freeze transducer in the RPN symbol
-- model, the run-level quote lookup, and the spelling characterization the lookup rests on.
--
-- MACHINE CLASS: closed. `RpnFreeze.parseRpnLegacy_iff_patMatch` says a run denotes a
-- target exactly when it matches one of the target's finitely many spelling PATTERNS —
-- literal grammar tokens with a hole wherever an escape leaf may stand — so the lookup is a
-- fixed-depth automaton rather than a parser; `FreezeStep` runs the resulting transducer
-- through `TokenFold.runFold_mem_FP`; `FreezeOracle` supplies the lookup for any finite
-- table and compiles the patch from the market's own certificate.
-- The public statement is `FreezeOracle.machine_lic_iff_of_finiteSupport`: finite support
-- and computability of both markets, and NOTHING ELSE — no patch hypothesis, and no
-- condition of any kind on the finitely many sentences whose price moves.
--
-- FUEL CLASS: still open, and this is a true negative. `EfficientPrefixPatch` and
-- `FiniteSupportPatch` remain uninhabited: the emitted segment's fuel certificate needs a
-- `BigDigits` decode test on exponentially large escape codes, and the digit model is not
-- closed under that inverse operation (`dd:fuel`). `lic_iff_of_finitePerturbation` is
-- therefore still the only fuel-class coverage of `thm:ifp`.
--
-- THE `⊥` NARROWING IS GONE, and this is the substantive change. It used to be the thing
-- that made the machine class work: `decode_eq_some_iff_of_botFree` proves Foundation's
-- decoder injective off the `⊥` fiber, so on a `⊥`-free target the escape-leaf test is a
-- comparison against a fixed numeral, while `decode_falsum_noncanonical` /
-- `decode_and_noncanonical` show the fiber really is infinite otherwise. Those witnesses
-- now motivate the parser instead of restricting it: `DigitFP.sqrtRemW_mem_FP` and
-- `DigitFP.unpairW_spec` put base-4 integer square root and `Nat.unpair` in
-- `Complexity.FP`, `FiberTest.fiberW_mem_FP` builds the decode test on top of them (its
-- correctness is `sentenceMatches_eq_one_iff`, already proved both ways), and
-- `PatAuto.ifParse_mem_FP` is the recognizer that consumes it. So `BotFree` is DISCHARGED,
-- not assumed.
--
-- `NoReserved` IS GONE TOO, and it stood for TWO devices, not one. A structured
-- paper-prime leaf is spelled `[1, 0, pol] ++ 1^L ++ [0] ++ p ++ [19]` with `L = |p|`.
-- (i) The LENGTH IDENTIFICATION. `L` is unbounded even for a fixed target because
-- `parseStructuredNat` has a self-loop at the numeral `0` (`1^k 0` spells `0` for every
-- `k`), so matching the unary field against the payload's own length is `a^n b^n`: no
-- finite-state device decides it, and no extension of a spelling list or of
-- `RunAuto.BlockAutomaton` could have. `CtrAuto.ctrMachine` does — `BlockMachine`
-- instantiated as a finite control paired with one unary counter.
-- (ii) The PAYLOAD LANGUAGE: which token strings denote the fixed formula code. This is
-- the larger half, it was NOT anticipated when `NoReserved` was first disclosed, and it
-- is not a spelling list either, since numeral padding and the double negation `[20, 20]`
-- both preserve a code. `PayAuto` decides it exactly by top-down predictive parsing
-- against a stack of obligations that carries the pending negation as a PARITY BIT rather
-- than applying `negFormulaCode`; that keeps every child code an `unpair` component of its
-- parent, so a potential argument bounds the reachable stacks and the state set is finite.
-- Soundness of the parity step needs `negFormulaCode` to be an involution ON THE PARSER'S
-- RANGE — it is NOT one on `Nat`, where tags 2/3 discard their payload
-- (`PayAuto.WFCode`).
-- `StructPat.parseRpn_iff_segMatch` is the unconditional characterization the two hang on,
-- and `SegRec.ifParseFull_mem_FP` the resulting polynomial-time decision.
--
-- WHAT IS DISCLOSED IN THEIR PLACE is a property of the CONSTRUCTION, not of the statement:
-- the recognizer is compiled per frozen sentence, so its polynomial-time witness carries
-- constants (the automaton's state bound) depending on that sentence. That is exactly the
-- paper's own "finitely many constants can be hard-coded", and it is sound precisely because
-- the support is finite — the point at which the printed finite-DAYS proof breaks and this
-- one does not.
--
-- CAREFUL, two different "unrestricted" statements meet here. The finite-SUPPORT statement
-- without any syntactic condition — same two computable markets, differing on finitely many
-- `(day, sentence)` coordinates — is now PROVED
-- (`FreezeOracle.machine_lic_iff_of_finiteSupport`). The PAPER's unrestricted statement,
-- tail agreement past some day `N`, is a different and STRONGER claim, and it is FALSE:
-- `FinitePerturbationCounterexample.not_overgeneral_ifp` refutes it (PE1). Do not read the
-- first as retracting the second. The two hypotheses are separated mechanically:
-- `FiniteSupportPerturbation.tail_agree` gives finite coordinate support => eventual day
-- agreement, and `tailAgree_not_finiteSupport` shows the converse fails, so the corrected
-- theorem cannot re-derive the refuted one.
#assert_axioms_clean
EF.strategyOfTokens_freezeTokenRunOn_trades
MachineEfficientTrader.freezeOn
RpnFreeze.matchRun_iff
RpnFreeze.runPrefixQuoteFromStates_exact
RpnFreeze.unRpn_rpnFreezeRun
RpnFreeze.unRpn_rpnFreezeRunOn
RpnFreeze.freezeStreamRewriter_of_flatPass
RpnFreeze.parseStructuredPaperPrime_shape
RpnFreeze.spellings_sound
RpnFreeze.spellings_complete
RpnFreeze.parseRpnLegacy_iff_mem_spellings
RpnFreeze.parseRpn_imp_parseRpnLegacy
RpnFreeze.parseRpn_iff_mem_spellings
RpnFreeze.patterns_sound
RpnFreeze.patterns_complete
RpnFreeze.parseRpnLegacy_iff_patMatch
RpnFreeze.parseRpn_iff_patMatch
RpnFreeze.matchRun_eq_matchRunCanon
decode_eq_some_iff_of_botFree
sentenceMatches_of_botFree
decode_falsum_noncanonical
decode_and_noncanonical
-- Construction/Witnesses/FreezeStep.lean — the freeze transducer as a `Complexity.FP`
-- client of `TokenFold.runFold`, over the FLAT stream (the one a machine holds), reusing
-- `CondStep.condStepR` as its automaton. `decodeBits_freezePass` says the pass computes
-- `rpnConditionRun (RpnFreeze.freezeEmitOn selRun quoteRun)` exactly — no day clamp, since
-- the freeze oracle's output is bounded by a constant where the conditioning oracle's is
-- not. `freezeStreamRewriter_of_runOracle` closes the chain to `FreezeStreamRewriter`.
-- ALL of it is conditioned on a `FreezeStep.RunOracle`. That structure is now INHABITED
-- (`FreezeOracle.runOracleOf`), so the chain closes; see the FreezeOracle block below for
-- what the inhabitant assumes and what it still does not supply.
-- The lookup's shape is settled too: `RpnFreeze.spellings` is the FINITE list of complete
-- legacy spellings of a target, and `spellings_sound` proves each member parses. Under the
-- two side conditions (`BotFree`, and the target outside the reserved `atom (pair 7 _)`
-- shape) deciding "does this run denote ψ" is membership in that list, so NO streaming
-- automaton has to be proved to agree with `parseRpn`. Both directions are now proved
-- (`parseRpnLegacy_iff_mem_spellings`), with `BotFree` load-bearing for exhaustiveness.
-- The full-grammar form `parseRpn_iff_mem_spellings` is now proved too, bridged by
-- `parseRpn_imp_parseRpnLegacy` (costing the `NoReserved` side condition) and the upstream
-- `parseRpn_of_legacy`. All of this is RECOGNITION only: turning "membership in a list of
-- constants" into a `Complexity.FP` test, and thence into a `FreezeStep.RunOracle`, is not
-- done. No `RunOracle` instance exists, so no patch structure is inhabited.
-- The table side conditions are collected in `CanonicalCodes.lean`'s "The recognition side
-- conditions, in one place": `Recognizable` (= `BotFree` + `NoReserved`) per sentence, plus
-- the constant output bound on the table as a whole. Only the last is still assumed; both
-- halves of `Recognizable` are discharged by the recognizer chain
-- (`StructPat` / `PayAuto` / `CtrAuto` / `SegAuto` / `SegCtr` / `SegRec`).
#assert_axioms_clean
FreezeStep.decodeBits_flatEmitR
FreezeStep.freezePass_mem_FP
FreezeStep.decodeBits_freezePass
FreezeStep.freezeStreamRewriter_of_runOracle
-- Construction/Witnesses/FreezeOracle.lean — the run-level lookup, and with it a
-- `FreezeStep.RunOracle` for any finite table (`runOracleOf`). This CLOSES the freeze
-- chain: `machineFiniteSupportPatch_ofTable` inhabits `MachineFiniteSupportPatch` for any
-- market whose frozen table is presented by a recognizable entry list, and
-- `machineFiniteSupportPatch_example` / `_pair` do so at a table with a REAL row
-- (`exampleS_nonempty`), so the degenerate empty-table discharge is not what is happening.
-- SIDE CONDITIONS: THERE ARE NONE LEFT on the sentences. `TablePresentation` is not one:
-- `entriesOf` reads the entry list off `S` and the market's own quote table, so
-- `machineFiniteSupportPatch` needs only `ComputableMarket`, and the public
-- `machine_lic_iff_of_finiteSupport` carries no patch hypothesis and no syntactic condition
-- at all. `machine_lic_iff_of_noReservedSupport` and `machine_lic_iff_of_recognizableSupport`
-- are retained as one-line compatibility corollaries, not as the strongest statement.
-- The constant output budget is DERIVED here (`oracleOf_length_le`), not assumed.
-- What IS disclosed is a property of the construction rather than the statement: the
-- recognizer is compiled per frozen sentence, so its polynomial-time constants depend on
-- that sentence — the paper's own hard-coded finite table, sound because the support is
-- finite.
-- STRICTNESS is proved, not asserted, and now at BOTH retired conditions, at the
-- PERTURBATION level (not merely the sentence level): `not_recognizableSupport_hardPoint`
-- proves `¬ RecognizableSupportPerturbation` of the `hardSentence` market pair outright, and
-- `not_noReservedSupport_reservedPoint` proves `¬ NoReservedSupportPerturbation` of the
-- `reservedSentence` pair — each ruling out *every* admissible support set by forcing the
-- differing coordinate into it (`pointHistory_ne_at`), which a sentence-level negative alone
-- cannot do. `machine_lic_iff_hardPoint` then applies the new endpoint at
-- `hardSentence = atom 0 ⋏ ⊥` (which fails `BotFree`) and `machine_lic_iff_reservedPoint` at
-- `reservedSentence` (a reserved atom failing `NoReserved`), each over a concrete pair of
-- `ComputableMarket`s that genuinely differ there (`computableMarket_point`,
-- `pointHistory_ne_at`). (`not_recognizable_hardS` / `not_noReserved_pointS_reserved` remain
-- as the underlying sentence/set-level facts, but are not themselves the unreachability
-- witnesses.)
-- The market pair is now supplied too: `computableMarket_twoPoint` builds two honest
-- `ComputableMarket`s (rational table plus a `Nat.Partrec.Code` on the PAIRED input, so day
-- zero gets no free special-casing), `twoPointHistory_ne_at` exhibits their disagreement,
-- and `machine_lic_iff_twoPoint` is the corrected `thm:ifp` at that pair with NO remaining
-- hypotheses. So the theorem's antecedent is satisfiable: it is non-vacuous.
-- That pair is non-vacuous but not informative on its own: those markets price almost
-- everything at zero and are very likely exploitable, so the equivalence may hold there
-- because both sides are false. The informative instance is in
-- Construction/Witnesses/LIAPerturbation.lean; see that block.
#assert_axioms_clean
FreezeOracle.decodeBits_oracleOf
FreezeOracle.oracleOf_mem_FP
FreezeOracle.runOracleOf
FreezeOracle.machineFiniteSupportPatch_ofTable
FreezeOracle.machineFiniteSupportPatch_example
FreezeOracle.machineFiniteSupportPatch_pair
FreezeOracle.exampleS_nonempty
FreezeOracle.machine_lic_iff_example
FreezeOracle.computableMarket_twoPoint
FreezeOracle.twoPointHistory_ne_at
FreezeOracle.machine_lic_iff_twoPoint
FreezeOracle.machineFiniteSupportPatch_ofRecognizable
FreezeOracle.machine_lic_iff_of_recognizableSupport
FreezeOracle.machineFiniteSupportPatch_ofNoReserved
FreezeOracle.machine_lic_iff_of_noReservedSupport
FreezeOracle.machineFiniteSupportPatch
FreezeOracle.machine_lic_iff_reservedPoint
FreezeOracle.not_noReserved_pointS_reserved
StructPat.parseRpn_iff_segMatch
StructPat.segPatterns_sound
StructPat.segPatterns_complete
PayAuto.payAccepts_iff
PayAuto.payAuto_iff
PayAuto.nineteen_not_mem_of_parse
CtrAuto.ctrMachine_accepts
CtrAuto.ifCtr_mem_FP
SegAuto.segAuto_accepts
SegCtr.segMatch_iff_relaxed_and_ctr
SegRec.segMatch_iff_accepts
SegRec.ifParseFull_mem_FP
FreezeOracle.not_botFree_hardSentence
FreezeOracle.not_noReserved_reservedSentence
FreezeOracle.not_recognizable_hardS
FreezeOracle.not_recognizableSupport_hardPoint
FreezeOracle.not_noReservedSupport_reservedPoint
FreezeOracle.computableMarket_point
FreezeOracle.pointHistory_ne_at
FreezeOracle.machine_lic_iff_hardPoint
FiniteSupportPerturbation.tail_agree
DigitFP.sqrtRemW_mem_FP
DigitFP.unpairW_spec
FiberTest.fiberW_mem_FP
FiberTest.holeGuards
PatAuto.ifParseLegacy_mem_FP
PatAuto.ifParse_mem_FP
RunAuto.guardedAutomaton
RunAuto.BlockAutomaton.ifAuto_mem_FP
tailAgree_not_finiteSupport
-- LogicalInduction/API.lean — the consumer-surface name for the corrected `thm:ifp`.
-- `lic_iff_of_recognizableSupportPerturbation` is a thin public wrapper, definitionally the
-- `FreezeOracle` theorem asserted just above; it exists so a client cites a root-namespace
-- name rather than a construction namespace. Asserted here because it carries a
-- `Paper node:` line, and the per-declaration gate admits no annotated declaration that no
-- `#assert_axioms_clean` block names. It is NOT public canonical trust surface: the
-- LI-CANONICAL block is exactly the endpoints table of `scripts/coverage-classification.md`,
-- and `thm:ifp`'s canonical endpoint there is unchanged.
#assert_axioms_clean
lic_iff_of_finiteSupportPerturbation_machine
lic_iff_of_noReservedSupportPerturbation
lic_iff_of_recognizableSupportPerturbation
-- Construction/Witnesses/LIAPerturbation.lean — the corrected `thm:ifp` doing visible work.
-- `liaHistory DP` is a machine logical inductor; `liaPerturbed` moves ONE price, at the
-- `Recognizable` coordinate `(0, atom 0)`, and `machineLogicalInductor_liaPerturbed` derives
-- that the result is still one. Nothing else in the repo derives that: the perturbed market
-- is not the output of any construction, so its inductor-hood is exactly what the theorem
-- buys. `computableMarket_liaPerturbed` rebuilds the market program (the code is combined at
-- the `Nat.Partrec` level, since `ComputableMarket` hands over a code rather than a
-- `Computable` function), and `liaPerturbed_ne` proves the price change NONZERO, so this is
-- not the degenerate `P = P'` route by a third door.
-- It remains conditional on the same two hypotheses `Construction/LIA.lean` carries: the LIA
-- market program and a computable deductive process. Nothing here discharges those.
#assert_axioms_clean
LIAPerturbation.computableMarket_liaPerturbed
LIAPerturbation.machineLogicalInductor_liaPerturbed
LIAPerturbation.exists_informative_liaPerturbation
-- Construction/Witnesses/UnconditionalOverLIA.lean
#assert_axioms_clean
lic_domination_universalSemimeasure_unconditional
lic_domination_dovetailSemimeasure_unconditional
lic_domination_everyLowerSemicomputable_unconditional
lic_domination_dovetailSemimeasure_paperDP
lic_domination_everyLowerSemicomputable_paperDP
lic_strict_domination_universalSemimeasure_unconditional
lic_conditioned_ofCompiler_unconditional
lic_conditioned_fixed_unconditional
lic_conditioned_growing_unconditional
lic_conditioned_fixed_machine_unconditional
lic_conditioned_growing_machine_unconditional
exists_growing_conditioned_machine_inductor
-- Construction/Witnesses/LUVSyntax.lean — LUV-combination syntax, the mesh-softmax
-- operational witness it constructs (`lem:mesh`), and the four expectation endpoints
-- that consume that witness with the operational hypothesis discharged
-- (`lem:mesh`, `thm:exppolymax`, `thm:expcoh`, `thm:perexpkno`).
-- `ordinaryLUVCombinationSyntax` (QuoteCodeOfMarket.lean) is the constructed
-- non-vacuity witness for the `_ofSyntax` endpoints' caller data, over a
-- non-degenerate index-varying sequence.
#assert_axioms_clean LUVCombinationSyntax.meshSoftmaxOperationalWitness
ordinaryLUVCombinationSyntax
-- Construction/Witnesses/PaperLUV.lean, StructuredPaperRpn.lean, ArithmeticSource.lean —
-- the literal first-order frontend. `PaperLUV` renders `def:luv` as an actual
-- `ArithmeticSemisentence 1` with object-level `T`-proofs of unique existence and
-- unit-interval membership; `toLUV` compiles it into the abstract threshold carrier and
-- `source_valued` *derives* the world value. `PaperLUVCombination` states `def:blcp`
-- over that frontend rather than over the abstract carrier, and `boundedSequence`
-- discharges the bounded-combination-sequence interface the expectation theorems consume.
-- Both are inhabited by genuinely varying families, not constant stand-ins:
-- `invPaperLUV` builds the literal paper LUV of value `1/v` from any closed `ℒₒᵣ` term of
-- value `v`, and its two instances are `unitFracPaperLUVSeq` at `1/(n+1)` (denominator a
-- unary numeral) and `dyadicPaperLUVSeq` at `2⁻ⁿ` (denominator the compact numeral of
-- `2 ^ n`, `O(n)` symbols). The second is what shows the token-metered class reaches the
-- superpolynomially small values the paper writes.
-- `PaperLUV.rpnThresholdCodes` is the single-LUV route out of the frontend: the constant
-- family reindexed along `m ↦ ⟨0, m⟩`, giving the non-sequence `LUV.RpnThresholdCodes` that
-- the whole-LUV endpoints take as a hypothesis (`LUV.expect_converges`, `thm:ec`), with no
-- efficiency side condition, since a constant formula family is trivially token-metered.
-- The metering is on the paper's **source**. `PaperLUVSeq` carries each LUV's defining
-- formula as the paper writes it (`source : ℕ → ArithSource 1`, over the primitive
-- connectives `¬ ∧ ∨ ⟹ ⟺` of tex:560 and quantifiers `∀ ∃` of tex:571-577), a proof that it denotes the LUV's Foundation
-- formula (`compiles`), and `def:ec`'s condition on that writing (`structural`, i.e.
-- `PolyArithmeticSourceSeq`). Normal-form expansion happens inside
-- `parseStructuredArithmeticFormula` (tags `20`/`21`/`22`), never on the emitted stream.
-- Two boundaries are recorded as named refutations, and they are of different kinds.
-- `unaryRendering_two_pow_not_polyArithmeticFormulaSeq` (with its source-class twin
-- `unaryRendering_two_pow_not_polyArithmeticSourceSeq`) is an artifact of Foundation's
-- *unary* `Semiterm.Operator.numeral`, not a narrowing of `def:ec`: the paper fixes no
-- numeral notation (underline convention, tex:564) and the value is nameable compactly inside `ℒₒᵣ`.
-- The compact numeral machinery it rests on (`binNumeral`, `binNumeralEnc_length_le`,
-- `binNumeral_val`, `binNumeralEnc_two_pow_polySegStream`) and the shared template
-- `invFormula` are internal — though `binNumeral` is no longer only a foil-avoidance
-- device: since the R5-F08 repair it is how the represented claim families below spell the
-- argument that names the machine (`polySegStream_binNumeralEnc`).
-- `iffChain_not_polyArithmeticFormulaSeq` is no longer a disclosure: it is the **strictness
-- separation** between the normal-form-metered foil `PolyArithmeticFormulaSeq` and the
-- paper's class `PolyArithmeticSourceSeq`. Foundation's `Semiformula` has no `⟺`
-- constructor, so `A 🡘 B` duplicates both sides (`encodeArithmeticFormulaSymbols_iff`) and
-- the paper-linear left-nested chain `iffChain` costs `≥ 2ⁿ` tokens in the foil
-- (`two_pow_le_encode_iffChain`, both internal) — while the *same* family is certified in
-- the paper's class at `5n + 4` emitted tokens
-- (`iffChainSource_polyArithmeticSourceSeq`, `sourceTokens_iffChainSource_length`).
-- `iffPaperLUVSeq` is that family carried all the way to `LUV.RpnThresholdCodeSeq`
-- (`iffPaperLUVSeq_frontend`): a literal paper LUV family whose `n`-th defining formula is
-- `O(n)` characters to write and whose Foundation normal form has `≥ 2ⁿ` nodes. With
-- `PolyArithmeticFormulaSeq.toSource` for the inclusion, `PolyArithmeticFormulaSeq ⊊
-- PolyArithmeticSourceSeq` is proved, not asserted.
#assert_axioms_clean
PaperLUV.toLUV PaperLUV.source_valued
PaperLUVSeq.rpnThresholdCodeSeq PaperLUVSeq.source_valued_and_rpnThresholdCodeSeq
PaperLUV.rpnThresholdCodes
invPaperLUV
unitFracPaperLUVSeq unitFracPaperLUVSeq_frontend
dyadicPaperLUVSeq dyadicPaperLUVSeq_frontend
iffPaperLUVSeq iffPaperLUVSeq_frontend
unaryRendering_two_pow_not_polyArithmeticFormulaSeq
unaryRendering_two_pow_not_polyArithmeticSourceSeq
iffChain_not_polyArithmeticFormulaSeq
PaperLUVCombination.boundedSequence
unitFracPaperLUVCombination unitFracPaperLUVBoundedSequence
#assert_axioms_clean
LUVCombination.BoundedSequence.mesh_independence_ofSyntax
LUVCombination.BoundedSequence.exppolymax_ofSyntax
LUVCombination.BoundedSequence.expcoh_ofSyntax
LUVCombination.BoundedSequence.perexpkno_ofSyntax
-- Construction/Witnesses/ComputationSyntax.lean — the claim-name syntax shared by the
-- meta-learning lanes. Every *endpoint* has left this file. The *bounded* lane that used
-- to live here — the `BoundedComputation` carrier, its two non-vacuity witnesses, the
-- represented decidable claims over it and the two finite-consistency `_ofComputation`
-- endpoints — is **retired**: `thm:pac` and `thm:pazfc` are stated directly at the
-- arithmetized `Con(Θ′)` family (`ComputationRepresented.lean`), which leaves no caller for
-- a caller-supplied bounded computation. `thm:dontwait`'s bounded family is
-- `representedBoundedHaltingClaims`, audited under that heading below. The **unbounded
-- halting lane** has moved the same way and for the same reason:
-- `representedHaltingClaims`, `lic_learns_halting_patterns_ofComputation` and
-- `lic_learns_provable_nonhalting_patterns_ofComputation` are stated over `paperTheoryDP`
-- at the day-indexed halting schema, and are listed under that heading below rather than
-- here. The **`thm:incons` lane** has now moved too (tranche 8): it is stated over
-- `paperTheoryDP` at the base theory's provability schema, so `SemidecidableComputation`,
-- its `ordinarySemidecidableComputation` `0 < n` witness (superseded by a witness whose
-- day-`n` theory is an actually inconsistent theory),
-- `inconsistentTheoryClaimsOfComputation` and
-- `lic_disbelief_inconsistent_theories_ofComputation` are all **retired**. What remains in
-- this file is the claim-name syntax (`computationClaimSentence` and its digit lemmas) and
-- the presentation interface.
-- Framework/RepresentsComputations.lean — the paper's representability premise.
-- `RepresentsComputations T` is the Lean rendering of the paper's standing §2 assumption
-- that `Θ` *represents computations* (tex:600-606): for every total computable `f` there
-- is a two-variable formula `γ_f` with `y = f n ↔ T ⊢ ∀ν (γ_f(n̄, ν) ⟺ ν = ȳ)`. It is a
-- condition on what `T` *derives*, with no reference to truth in the standard model, and
-- it is the interface that replaces Σ₁-soundness wherever the paper's own argument needs
-- only the paper's own premise. `represents_refutes` / `represents_refutes_all` are the
-- negative literals that weak Σ₁-representation cannot supply; they consume `[𝗥₀ ⪯ T]`
-- only, and no semantic hypothesis. `reprAllSchema_subst` is what keeps the claim family
-- enumerable by the *fixed*-schema machinery even though `γ` is supplied existentially.
-- NOT YET INVENTORIED. `scripts/check-paper-nodes.sh` requires every name in an
-- `#assert_axioms_clean` block to carry a `Paper node:` docstring line, and none of this