trunkit 0.2.6__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {trunkit-0.2.6 → trunkit-0.4.0}/.dockerignore +18 -18
- {trunkit-0.2.6 → trunkit-0.4.0}/.gitattributes +2 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/.github/workflows/python-package-conda.yml +36 -1
- {trunkit-0.2.6 → trunkit-0.4.0}/.gitignore +69 -52
- {trunkit-0.2.6 → trunkit-0.4.0}/Dockerfile +18 -18
- trunkit-0.4.0/METHODS.md +25 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/Makefile +83 -82
- {trunkit-0.2.6 → trunkit-0.4.0}/PKG-INFO +73 -17
- {trunkit-0.2.6 → trunkit-0.4.0}/README.md +360 -310
- {trunkit-0.2.6 → trunkit-0.4.0}/SKILL.md +2 -2
- trunkit-0.4.0/STATUS.md +39 -0
- trunkit-0.4.0/TRUNKIT_CAPABILITY_FOOTPRINT.md +78 -0
- trunkit-0.4.0/Trunkit_Erdos_AI_Capability_Fit.md +120 -0
- trunkit-0.4.0/Trunkit_arXiv_Expansion_Review.md +89 -0
- trunkit-0.4.0/corpus/2311.18781.pdf +0 -0
- trunkit-0.4.0/docs/LEAN_BRIDGE_SPEC.md +164 -0
- trunkit-0.4.0/docs/NEXT_EXPANSIONS.md +55 -0
- trunkit-0.4.0/docs/PORTER_POLICY_GATE.md +159 -0
- trunkit-0.4.0/docs/QUANT_EHA_WFFA_DESIGN.md +189 -0
- trunkit-0.4.0/docs/RELEASE_0_4_0_ARXIV_SCAN.md +101 -0
- trunkit-0.4.0/docs/TOOL_IN_TOOL_EHA_WFFA.md +92 -0
- trunkit-0.4.0/docs/VISION_ARXIV_SCAN.md +29 -0
- trunkit-0.4.0/docs/VISION_LAYER.md +44 -0
- trunkit-0.4.0/docs/methods/arith_check_spec.md +73 -0
- trunkit-0.4.0/docs/methods/csp_carry_spec.md +41 -0
- trunkit-0.4.0/docs/methods/parity_results.md +49 -0
- trunkit-0.4.0/docs/methods/quote_carry_spec.md +40 -0
- trunkit-0.4.0/local/README.md +52 -0
- trunkit-0.4.0/local/STATUS_BOARD.html +284 -0
- trunkit-0.4.0/local/attestations/tel_cleanup_attestation.sql +48 -0
- trunkit-0.4.0/local/attestations/tel_federation_registry.sql +54 -0
- trunkit-0.4.0/local/attestations/tel_federation_validation_attestation.sql +56 -0
- trunkit-0.4.0/local/benchmarks/llm_eval.py +838 -0
- trunkit-0.4.0/local/benchmarks/llm_eval_classify_retry.log +54 -0
- trunkit-0.4.0/local/benchmarks/llm_eval_run.log +59 -0
- trunkit-0.4.0/local/docs/AUDIT_WORKSHEET.md +167 -0
- trunkit-0.4.0/local/docs/NEXT_SESSION.md +65 -0
- trunkit-0.4.0/local/docs/STATUS.md +33 -0
- trunkit-0.4.0/local/docs/STATUS_BOARD.html +277 -0
- trunkit-0.4.0/local/morning_brief_demo.py +338 -0
- trunkit-0.4.0/local/sql/22_curry_calx_functor_seed.sql +35 -0
- trunkit-0.4.0/local/sql/31_kan_corpus_seed.sql +20 -0
- trunkit-0.4.0/local/sql/32_kan_sequence_terms.sql +42 -0
- trunkit-0.4.0/local/sql/33_kan_sequence_terms_bridge.sql +24 -0
- trunkit-0.4.0/local/sql/50_curry_lib.sql +336 -0
- trunkit-0.4.0/local/sql/51_curry_lib_claims.sql +57 -0
- trunkit-0.4.0/local/sql/81_cert_kan_engines.sql +36 -0
- trunkit-0.4.0/local/sql/82_cert_curry_calx_invariant.sql +38 -0
- trunkit-0.4.0/local/sql/83_cert_tier1_proofs.sql +52 -0
- trunkit-0.4.0/local/sql/84_cert_outrun_detector.sql +94 -0
- trunkit-0.4.0/local/sql/85_cert_diffeology.sql +58 -0
- trunkit-0.4.0/local/sql/86_cert_kan_self_report.sql +44 -0
- trunkit-0.4.0/local/sql/87_cert_lattice_gauge.sql +79 -0
- trunkit-0.4.0/local/sql/88_cert_hyperdual.sql +53 -0
- trunkit-0.4.0/local/sql/89_cert_yang_mills.sql +85 -0
- trunkit-0.4.0/local/sql/90_cert_equip_probes.sql +87 -0
- trunkit-0.4.0/local/sql/91_cert_feigenbaum.sql +79 -0
- trunkit-0.4.0/local/sql/92_strat.sql +334 -0
- trunkit-0.4.0/local/sql/93_cert_observability.sql +95 -0
- trunkit-0.4.0/local/sql/94_cert_kernel.sql +1029 -0
- trunkit-0.4.0/local/sql/95_cert_ledger.sql +400 -0
- trunkit-0.4.0/local/sql/96_cert_probe_sandbox.sql +180 -0
- trunkit-0.4.0/local/tests/kernel_vectors.py +115 -0
- trunkit-0.4.0/local/tests/test_cert_kernel.py +209 -0
- trunkit-0.4.0/local/tests/test_cert_ledger.py +94 -0
- trunkit-0.4.0/local/tests/test_kernel_parity.py +88 -0
- trunkit-0.4.0/local/tools/agent_demo.py +346 -0
- trunkit-0.4.0/local/tools/build_bigrading.py +178 -0
- trunkit-0.4.0/local/tools/build_chromatic.py +195 -0
- trunkit-0.4.0/local/tools/build_colimit_closure.py +194 -0
- trunkit-0.4.0/local/tools/build_equipment.py +204 -0
- trunkit-0.4.0/local/tools/build_f1_radix.py +148 -0
- trunkit-0.4.0/local/tools/build_grading.py +182 -0
- trunkit-0.4.0/local/tools/build_identity_decomposition.py +178 -0
- trunkit-0.4.0/local/tools/build_lithon.py +224 -0
- trunkit-0.4.0/local/tools/build_moonshine.py +222 -0
- trunkit-0.4.0/local/tools/build_scott.py +321 -0
- trunkit-0.4.0/local/tools/build_self_shadow.py +144 -0
- trunkit-0.4.0/local/tools/build_self_syzygy.py +124 -0
- trunkit-0.4.0/local/tools/build_shadow.py +170 -0
- trunkit-0.4.0/local/tools/build_strata_tower.py +163 -0
- trunkit-0.4.0/local/tools/cert_kernel.py +61 -0
- trunkit-0.4.0/local/tools/cryptanalysis.py +341 -0
- trunkit-0.4.0/local/tools/develop_omega_family.py +255 -0
- trunkit-0.4.0/local/tools/develop_sequence.py +191 -0
- trunkit-0.4.0/local/tools/diagnostic_tests.py +353 -0
- trunkit-0.4.0/local/tools/gen_board.py +271 -0
- trunkit-0.4.0/local/tools/gen_status.py +41 -0
- trunkit-0.4.0/local/tools/kan_in_kan.py +300 -0
- trunkit-0.4.0/local/tools/lithon_core.py +176 -0
- trunkit-0.4.0/local/tools/load_kan_corpus.py +153 -0
- trunkit-0.4.0/local/tools/omega_equal_control.py +155 -0
- trunkit-0.4.0/local/tools/port_curry_sqlite_to_pg.py +152 -0
- trunkit-0.4.0/local/tools/register_calx_fn_deps.py +116 -0
- trunkit-0.4.0/local/tools/register_calx_in_curry.py +424 -0
- trunkit-0.4.0/local/tools/relationship_report.py +372 -0
- trunkit-0.4.0/local/tools/run_compose_discovery.py +102 -0
- trunkit-0.4.0/local/tools/run_discovery.py +115 -0
- trunkit-0.4.0/local/tools/seed_oeis_classics.py +239 -0
- trunkit-0.4.0/local/tools/seed_sequences.py +321 -0
- trunkit-0.4.0/local/tools/shared_prime_betti.py +226 -0
- trunkit-0.4.0/local/tools/sitecustomize.py +9 -0
- trunkit-0.4.0/local/tools/smoke_curry_calx.py +114 -0
- trunkit-0.4.0/local/tools/stream_interceptor.py +237 -0
- trunkit-0.4.0/local/tools/tel_behavior_check.py +91 -0
- trunkit-0.4.0/local/tools/tel_behavior_claims.sql +47 -0
- trunkit-0.4.0/local/tools/tel_build_check.py +67 -0
- trunkit-0.4.0/local/tools/tel_calx_frames.py +106 -0
- trunkit-0.4.0/local/tools/tel_calx_live_check.py +132 -0
- trunkit-0.4.0/local/tools/tel_calx_live_claim.sql +55 -0
- trunkit-0.4.0/local/tools/tel_calx_render.py +101 -0
- trunkit-0.4.0/local/tools/tel_capability_sweep.py +209 -0
- trunkit-0.4.0/local/tools/tel_constants_check.py +176 -0
- trunkit-0.4.0/local/tools/tel_constants_claims.sql +33 -0
- trunkit-0.4.0/local/tools/tel_constants_manifest.json +30 -0
- trunkit-0.4.0/local/tools/tel_constants_seed.py +81 -0
- trunkit-0.4.0/local/tools/tel_graphics_calx_claim.sql +28 -0
- trunkit-0.4.0/local/tools/tel_graphics_claims.sql +30 -0
- trunkit-0.4.0/local/tools/tel_mosaic_render.py +132 -0
- trunkit-0.4.0/local/tools/tel_subject_guard.py +57 -0
- trunkit-0.4.0/local/tools/tel_ulam_render.py +165 -0
- trunkit-0.4.0/local/tools/tel_visuals_live_check.py +131 -0
- trunkit-0.4.0/local/tools/tel_visuals_live_claim.sql +66 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/pyproject.toml +19 -16
- trunkit-0.4.0/src/calx/arith.py +418 -0
- trunkit-0.4.0/src/calx/bundle.py +185 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/cli.py +223 -11
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/db.py +165 -140
- trunkit-0.4.0/src/calx/holographic.py +73 -0
- trunkit-0.4.0/src/calx/imagefeatures.py +154 -0
- trunkit-0.4.0/src/calx/kernel.py +504 -0
- trunkit-0.4.0/src/calx/leanbridge.py +106 -0
- trunkit-0.4.0/src/calx/methods/__init__.py +23 -0
- trunkit-0.4.0/src/calx/methods/arith_check.py +296 -0
- trunkit-0.4.0/src/calx/methods/csp_carry.py +100 -0
- trunkit-0.4.0/src/calx/methods/parity_puzzle.py +159 -0
- trunkit-0.4.0/src/calx/methods/quote_carry.py +113 -0
- trunkit-0.4.0/src/calx/morphism.py +85 -0
- trunkit-0.4.0/src/calx/quickstart.py +164 -0
- trunkit-0.4.0/src/calx/recurrence.py +62 -0
- trunkit-0.4.0/src/calx/sql/41a_cert_formal_lean.sql +80 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/55_kan_prime_members.sql +18 -9
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/57_kan_strata_tower.sql +11 -3
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/63_kan_bigrading.sql +9 -2
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/65_kan_chromatic.sql +15 -4
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/67_kan_lithon.sql +3 -1
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/69_kan_shadow.sql +17 -2
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/84_cert_witness.sql +30 -1
- trunkit-0.4.0/src/calx/sql/90_cert_agentic.sql +222 -0
- trunkit-0.4.0/src/calx/sql/91_cert_image.sql +147 -0
- trunkit-0.4.0/src/calx/sql/92_oeis_cosine.sql +138 -0
- trunkit-0.4.0/src/calx/sql/93_cert_recurrence.sql +168 -0
- trunkit-0.4.0/src/calx/sql/94_cert_exactness.sql +56 -0
- trunkit-0.4.0/src/calx/sql/95_cert_morphism.sql +121 -0
- trunkit-0.4.0/src/calx/sql/96_cert_holographic.sql +66 -0
- trunkit-0.4.0/src/calx/sql/97_cert_crypto.sql +191 -0
- trunkit-0.4.0/src/calx/sql/98_kan_scott.sql +72 -0
- trunkit-0.4.0/src/calx/sql/99_cert_vacuity.sql +191 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/cli.py +58 -6
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/db.py +23 -1
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/00_bootstrap.sql +15 -13
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/70_morphism.sql +3 -22
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/98_topological_signature.sql +3 -22
- trunkit-0.4.0/src/nerode/sql/99_precacher_roundtrip_cert.sql +187 -0
- trunkit-0.4.0/src/nerode/sql/A0_interval.sql +180 -0
- trunkit-0.4.0/src/nerode/sql/A1_eha.sql +296 -0
- trunkit-0.4.0/src/nerode/sql/A2_wffa.sql +269 -0
- trunkit-0.4.0/src/nerode/sql/A3_wffa_product.sql +216 -0
- trunkit-0.4.0/src/nerode/sql/A4_extremal.sql +257 -0
- trunkit-0.4.0/src/nerode/sql/A5_extremal_cert.sql +155 -0
- trunkit-0.4.0/src/nerode/sql/A6_monotonicity.sql +224 -0
- trunkit-0.4.0/src/nerode/sql/B0_ledger.sql +92 -0
- trunkit-0.4.0/src/nerode/sql/B1_policy.sql +123 -0
- trunkit-0.4.0/src/nerode/sql/B2_gate.sql +101 -0
- trunkit-0.4.0/src/nerode/sql/B3_gate_cert.sql +160 -0
- trunkit-0.4.0/src/nerode/sql/B4_carry.sql +240 -0
- trunkit-0.4.0/src/nerode/sql/C0_verify.sql +124 -0
- trunkit-0.4.0/src/nerode/warden.py +280 -0
- trunkit-0.4.0/src/trunkit_mcp/__init__.py +1 -0
- trunkit-0.4.0/src/trunkit_mcp/server.py +736 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/conftest.py +150 -147
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/dbskip.py +11 -11
- trunkit-0.4.0/tests/test_bundle_verify.py +242 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_categorical.py +434 -432
- trunkit-0.4.0/tests/test_cert_crypto.py +175 -0
- trunkit-0.4.0/tests/test_cert_formal_lean.py +184 -0
- trunkit-0.4.0/tests/test_cert_image.py +91 -0
- trunkit-0.4.0/tests/test_close_resolution.py +23 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_composite_dfa.py +283 -283
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_cybernetic.py +544 -544
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_dead_time_factory.py +287 -287
- trunkit-0.4.0/tests/test_exactness.py +66 -0
- trunkit-0.4.0/tests/test_holographic.py +81 -0
- trunkit-0.4.0/tests/test_imagefeatures.py +63 -0
- trunkit-0.4.0/tests/test_imagefeatures_fourier.py +129 -0
- trunkit-0.4.0/tests/test_leanbridge.py +75 -0
- trunkit-0.4.0/tests/test_mcp_cert_tools.py +226 -0
- trunkit-0.4.0/tests/test_methods.py +272 -0
- trunkit-0.4.0/tests/test_morphism.py +75 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_morphisms.py +533 -533
- trunkit-0.4.0/tests/test_oeis_cosine.py +133 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_packaging_surface.py +31 -31
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_phase1b.py +373 -373
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_phase1c.py +294 -294
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_phase2.py +456 -456
- trunkit-0.4.0/tests/test_recurrence.py +124 -0
- trunkit-0.4.0/tests/test_schema_numbering.py +57 -0
- trunkit-0.4.0/tests/test_scott.py +127 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_sequence.py +336 -336
- trunkit-0.4.0/tests/test_stack_coherence.py +88 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_stream_interceptor.py +337 -334
- trunkit-0.4.0/tests/test_vacuity.py +103 -0
- trunkit-0.4.0/tests/test_witness_kinds.py +69 -0
- trunkit-0.4.0/tools/AxiomAudit.lean +80 -0
- trunkit-0.4.0/tools/cert_crypto.py +172 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tools/cert_formal.py +130 -32
- trunkit-0.4.0/tools/erdos_straus.py +118 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tools/factorial_homology.py +22 -5
- trunkit-0.4.0/tools/figure_extract.py +99 -0
- trunkit-0.4.0/tools/fraction_families.py +481 -0
- trunkit-0.4.0/tools/general_fraction_families.py +429 -0
- trunkit-0.4.0/tools/image_features.py +103 -0
- trunkit-0.4.0/tools/lean_check.sh +47 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tools/verify_bundle.py +55 -55
- trunkit-0.2.6/src/calx/sql/93_cert_observability.sql +0 -113
- trunkit-0.2.6/src/calx/sql/97_cert_self_topology.sql +0 -187
- {trunkit-0.2.6 → trunkit-0.4.0}/AUDIT.md +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/LICENSE +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/SECURITY.md +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/assets/logo.png +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/benchmarks/_notify_demo.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/benchmarks/bench.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/benchmarks/bench_chomsky.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/benchmarks/sequence_bench.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/docker-compose.yml +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/docs/CERT_SQL_GENERATION_GUARDRAILS.md +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/docs/CROSS_LAB_SHARED_SCHEMA.md +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/docs/DEMO_CORPUS.md +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/docs/TOOL_ON_TOOL_TOPOLOGY.md +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/proofs/combined_signature.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/proofs/equipment.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/proofs/gap_homology_primes.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/proofs/perfect_28.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/__init__.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/curry_adapter.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/generate.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/ledger.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/primesieve.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/00_rehome_to_calx.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/01_schema.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/02_views.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/03_generate.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/04_crt.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/05_dynamics.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/06_oeis_match.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/07_compositions.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/10_curry.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/20_kan.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/21_kan_functors.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/22_kan_elements.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/23_kan_monoidal.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/24_kan_natural_transformations.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/25_kan_extensions.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/26_kan_enrichment.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/27_kan_profunctors.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/28_kan_adjunctions.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/30_kan_corpus.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/40_cert.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/41_cert_formal.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/42_cert_gap_homology.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/43_kan_sequence_homology.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/44_cert_seq_homology.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/45_kan_factorial_homology.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/46_cert_factorial_homology.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/47_kan_combined_signature.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/48_cert_combined.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/49_kan_shared_prime_betti.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/50_cert_combined_scale.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/51_cert_shared_prime_h2.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/52_cert_developed_sequence.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/53_cert_omega_family.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/54_cert_omega_family_succ.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/56_cert_prime_members_functor.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/58_cert_strata_tower.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/59_kan_grading.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/60_cert_grading.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/61_kan_identity_decomposition.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/62_cert_identity_decomposition.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/64_cert_bigrading.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/66_cert_chromatic.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/68_cert_lithon.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/70_cert_shadow.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/71_kan_self_syzygy.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/72_cert_self_syzygy.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/73_kan_self_shadow.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/74_cert_self_shadow.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/75_kan_f1_radix.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/76_cert_f1_radix.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/77_kan_moonshine.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/78_cert_moonshine.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/79_cert_kan_engines.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/80_kan_colimit_closure.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/81_cert_colimit_closure.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/82_kan_equipment.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/83_cert_equipment.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/85_cert_derivation.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/86_cert_verify.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/87_cert_export_bundle.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/88_cert_witness_carry.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/89_nerode_bridge.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/examples/crt_examples.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/examples/dynamics_examples.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/sql/examples/queries.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/calx/validate.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/__init__.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/adapters.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/automata.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/precache.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sources.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/01_schema.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/02_run.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/03_minimize.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/04_product.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/05_from_regex.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/10_cert.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/11_chomsky.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/20_calx_bridge.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/30_protocol.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/40_eigenform.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/50_corpus.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/60_product_corpus.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/80_categorical.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/90_sequence.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/91_sequence_cache.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/92_session_automata.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/93_handoff.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/94_open_session.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/95_cybernetic_automata.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/96_dead_time_factory.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/src/nerode/sql/97_composite_dfa.sql +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/__init__.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/fixtures/oeis/.gitkeep +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_aliquot.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_build.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_chomsky.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_compose_match.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_crt.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_dynamics.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_equivalent.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_factorizations.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_minimize.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_oeis_match.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_phase1a.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_product.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_run.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_schema.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_sieve.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tests/test_sources.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tools/compose_match.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tools/oeis_loader.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tools/oeis_match.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tools/prime_members_functor.py +0 -0
- {trunkit-0.2.6 → trunkit-0.4.0}/tools/seq_homology.py +0 -0
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
.git
|
|
2
|
-
.github
|
|
3
|
-
__pycache__
|
|
4
|
-
*.pyc
|
|
5
|
-
*.pyo
|
|
6
|
-
*.py[cod]
|
|
7
|
-
.pytest_cache
|
|
8
|
-
.mypy_cache
|
|
9
|
-
.ruff_cache
|
|
10
|
-
.coverage
|
|
11
|
-
htmlcov/
|
|
12
|
-
.venv
|
|
13
|
-
venv
|
|
14
|
-
dist
|
|
15
|
-
build
|
|
16
|
-
*.egg-info
|
|
17
|
-
tests/fixtures/oeis/b*.txt
|
|
18
|
-
.claude/
|
|
1
|
+
.git
|
|
2
|
+
.github
|
|
3
|
+
__pycache__
|
|
4
|
+
*.pyc
|
|
5
|
+
*.pyo
|
|
6
|
+
*.py[cod]
|
|
7
|
+
.pytest_cache
|
|
8
|
+
.mypy_cache
|
|
9
|
+
.ruff_cache
|
|
10
|
+
.coverage
|
|
11
|
+
htmlcov/
|
|
12
|
+
.venv
|
|
13
|
+
venv
|
|
14
|
+
dist
|
|
15
|
+
build
|
|
16
|
+
*.egg-info
|
|
17
|
+
tests/fixtures/oeis/b*.txt
|
|
18
|
+
.claude/
|
|
@@ -58,7 +58,8 @@ jobs:
|
|
|
58
58
|
env:
|
|
59
59
|
PGPASSWORD: trunk
|
|
60
60
|
run: |
|
|
61
|
-
|
|
61
|
+
# LC_ALL=C sort -n: numeric prefix order (99_ < 100_), matching calx.db.schema_order
|
|
62
|
+
for f in $(ls src/calx/sql/*.sql | LC_ALL=C sort -n); do
|
|
62
63
|
psql -h localhost -p 5434 -U trunk -d trunk -f "$f" -q
|
|
63
64
|
done
|
|
64
65
|
|
|
@@ -79,6 +80,40 @@ jobs:
|
|
|
79
80
|
NERODE_DSN: postgresql://nerode:nerode@localhost:5435/nerode
|
|
80
81
|
run: pytest -m "not slow and not primesieve and not network"
|
|
81
82
|
|
|
83
|
+
windows-smoke:
|
|
84
|
+
# The CLIs ship Unicode marks (✓ ✗ →) that crash on legacy cp1252 consoles
|
|
85
|
+
# unless stdio is reconfigured; this leg pins that fix and basic CLI health
|
|
86
|
+
# on Windows, where no database is available.
|
|
87
|
+
runs-on: windows-latest
|
|
88
|
+
|
|
89
|
+
steps:
|
|
90
|
+
- uses: actions/checkout@v4
|
|
91
|
+
|
|
92
|
+
- uses: actions/setup-python@v5
|
|
93
|
+
with:
|
|
94
|
+
python-version: "3.11"
|
|
95
|
+
cache: pip
|
|
96
|
+
|
|
97
|
+
- name: Install dependencies
|
|
98
|
+
run: pip install -e ".[dev]"
|
|
99
|
+
|
|
100
|
+
- name: CLI smoke under cp1252
|
|
101
|
+
shell: pwsh
|
|
102
|
+
env:
|
|
103
|
+
PYTHONIOENCODING: cp1252
|
|
104
|
+
PYTHONUTF8: "0"
|
|
105
|
+
run: |
|
|
106
|
+
trunkit --help
|
|
107
|
+
nerode --help
|
|
108
|
+
python -c "from calx.cli import _utf8_stdio; _utf8_stdio(); print('✓ ✗ →')"
|
|
109
|
+
trunkit quickstart --compose-only --dir $env:RUNNER_TEMP\qs
|
|
110
|
+
|
|
111
|
+
- name: Unit tests (no database — DB-backed tests self-skip)
|
|
112
|
+
shell: pwsh
|
|
113
|
+
env:
|
|
114
|
+
PYTHONIOENCODING: cp1252
|
|
115
|
+
run: pytest -m "not slow and not primesieve and not network" -q
|
|
116
|
+
|
|
82
117
|
build:
|
|
83
118
|
runs-on: ubuntu-latest
|
|
84
119
|
needs: ci
|
|
@@ -1,52 +1,69 @@
|
|
|
1
|
-
__pycache__/
|
|
2
|
-
*.py[cod]
|
|
3
|
-
*.egg-info/
|
|
4
|
-
.pytest_cache/
|
|
5
|
-
.mypy_cache/
|
|
6
|
-
.ruff_cache/
|
|
7
|
-
.coverage
|
|
8
|
-
htmlcov/
|
|
9
|
-
dist/
|
|
10
|
-
build/
|
|
11
|
-
.venv/
|
|
12
|
-
venv/
|
|
13
|
-
.env
|
|
14
|
-
.envrc
|
|
15
|
-
*.whl
|
|
16
|
-
*.tar.gz
|
|
17
|
-
|
|
18
|
-
# OEIS validation fixtures are pulled on demand
|
|
19
|
-
tests/fixtures/oeis/b*.txt
|
|
20
|
-
|
|
21
|
-
# Local data dumps
|
|
22
|
-
*.dump
|
|
23
|
-
*.sql.bak
|
|
24
|
-
*.sql.gz
|
|
25
|
-
|
|
26
|
-
# Claude IDE settings
|
|
27
|
-
.claude/
|
|
28
|
-
|
|
29
|
-
# Jules tooling
|
|
30
|
-
.curry/
|
|
31
|
-
|
|
32
|
-
# Editor
|
|
33
|
-
.vscode/
|
|
34
|
-
.idea/
|
|
35
|
-
|
|
36
|
-
# Local artifacts
|
|
37
|
-
test_results.txt
|
|
38
|
-
results.json
|
|
39
|
-
tools/advanced_results.json
|
|
40
|
-
tools/benchmark_advanced.py
|
|
41
|
-
tools/benchmark_prime.py
|
|
42
|
-
tools/_schema_check.py
|
|
43
|
-
|
|
44
|
-
# Accidentally-named venv path fragments
|
|
45
|
-
Users*/
|
|
46
|
-
.curry/
|
|
47
|
-
|
|
48
|
-
.pr_body.md
|
|
49
|
-
|
|
50
|
-
#
|
|
51
|
-
|
|
52
|
-
|
|
1
|
+
__pycache__/
|
|
2
|
+
*.py[cod]
|
|
3
|
+
*.egg-info/
|
|
4
|
+
.pytest_cache/
|
|
5
|
+
.mypy_cache/
|
|
6
|
+
.ruff_cache/
|
|
7
|
+
.coverage
|
|
8
|
+
htmlcov/
|
|
9
|
+
dist/
|
|
10
|
+
build/
|
|
11
|
+
.venv/
|
|
12
|
+
venv/
|
|
13
|
+
.env
|
|
14
|
+
.envrc
|
|
15
|
+
*.whl
|
|
16
|
+
*.tar.gz
|
|
17
|
+
|
|
18
|
+
# OEIS validation fixtures are pulled on demand
|
|
19
|
+
tests/fixtures/oeis/b*.txt
|
|
20
|
+
|
|
21
|
+
# Local data dumps
|
|
22
|
+
*.dump
|
|
23
|
+
*.sql.bak
|
|
24
|
+
*.sql.gz
|
|
25
|
+
|
|
26
|
+
# Claude IDE settings
|
|
27
|
+
.claude/
|
|
28
|
+
|
|
29
|
+
# Jules tooling
|
|
30
|
+
.curry/
|
|
31
|
+
|
|
32
|
+
# Editor
|
|
33
|
+
.vscode/
|
|
34
|
+
.idea/
|
|
35
|
+
|
|
36
|
+
# Local artifacts
|
|
37
|
+
test_results.txt
|
|
38
|
+
results.json
|
|
39
|
+
tools/advanced_results.json
|
|
40
|
+
tools/benchmark_advanced.py
|
|
41
|
+
tools/benchmark_prime.py
|
|
42
|
+
tools/_schema_check.py
|
|
43
|
+
|
|
44
|
+
# Accidentally-named venv path fragments
|
|
45
|
+
Users*/
|
|
46
|
+
.curry/
|
|
47
|
+
|
|
48
|
+
.pr_body.md
|
|
49
|
+
|
|
50
|
+
# p-adic tree (calx + lithon) -- local-only project, do not push
|
|
51
|
+
padic_tree/
|
|
52
|
+
|
|
53
|
+
# Local-only research scratch (kernels + specs/results, not part of the package)
|
|
54
|
+
chess-carry/
|
|
55
|
+
ladder-encoder/
|
|
56
|
+
rhyme-discovery/
|
|
57
|
+
|
|
58
|
+
# Loom layer (bespoke arithmetic of orthogonal F_1 axes) -- local, untracked
|
|
59
|
+
docs/LOOM_ORTHOGONAL_F1.md
|
|
60
|
+
local/sql/97_kan_loom.sql
|
|
61
|
+
local/sql/98_cert_loom.sql
|
|
62
|
+
local/sql/99_loom_lift.sql
|
|
63
|
+
local/tools/build_loom.py
|
|
64
|
+
local/tools/build_loom_lift.py
|
|
65
|
+
local/tests/test_loom.py
|
|
66
|
+
local/tests/test_loom_lift.py
|
|
67
|
+
local/backups/
|
|
68
|
+
proofs/loom.py
|
|
69
|
+
proofs/loom_lift.py
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
FROM python:3.12-slim
|
|
2
|
-
|
|
3
|
-
RUN apt-get update \
|
|
4
|
-
&& apt-get install -y --no-install-recommends \
|
|
5
|
-
primesieve \
|
|
6
|
-
libpq5 \
|
|
7
|
-
&& rm -rf /var/lib/apt/lists/*
|
|
8
|
-
|
|
9
|
-
WORKDIR /app
|
|
10
|
-
|
|
11
|
-
COPY pyproject.toml README.md ./
|
|
12
|
-
COPY src ./src
|
|
13
|
-
|
|
14
|
-
RUN pip install --no-cache-dir .
|
|
15
|
-
|
|
16
|
-
# Default entrypoint for the nerode CLI; override to 'trunk' for Trunkit
|
|
17
|
-
ENTRYPOINT ["nerode"]
|
|
18
|
-
CMD ["--help"]
|
|
1
|
+
FROM python:3.12-slim
|
|
2
|
+
|
|
3
|
+
RUN apt-get update \
|
|
4
|
+
&& apt-get install -y --no-install-recommends \
|
|
5
|
+
primesieve \
|
|
6
|
+
libpq5 \
|
|
7
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
8
|
+
|
|
9
|
+
WORKDIR /app
|
|
10
|
+
|
|
11
|
+
COPY pyproject.toml README.md ./
|
|
12
|
+
COPY src ./src
|
|
13
|
+
|
|
14
|
+
RUN pip install --no-cache-dir .
|
|
15
|
+
|
|
16
|
+
# Default entrypoint for the nerode CLI; override to 'trunk' for Trunkit
|
|
17
|
+
ENTRYPOINT ["nerode"]
|
|
18
|
+
CMD ["--help"]
|
trunkit-0.4.0/METHODS.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Trunkit verification methods
|
|
2
|
+
|
|
3
|
+
Universal, proof-carrying verification methods for the Trunkit ledger. Each is **verify-easy /
|
|
4
|
+
find-hard**: a tiny deterministic kernel re-checks a compact, portable witness and returns one of
|
|
5
|
+
three honest verdicts — `valid` / `refuted` / `unverified` (never a guess).
|
|
6
|
+
|
|
7
|
+
The kernels live in the package at [`src/calx/methods/`](src/calx/methods/) and are registered
|
|
8
|
+
with `calx.kernel.verify_witness`, so every dispatch surface picks them up automatically:
|
|
9
|
+
`trunkit verify --bundle`, the consumer bundle checker, and the trunkit-mcp `kernel_verify`
|
|
10
|
+
tool. Their verdict batteries run in the test suite (`tests/test_methods.py`).
|
|
11
|
+
|
|
12
|
+
| Method | Kernel schema | Verifies | Witness (kind) | Refutation certificate |
|
|
13
|
+
|--------|---------------|----------|----------------|------------------------|
|
|
14
|
+
| [arith_check](docs/methods/arith_check_spec.md) | `arith_check` | a numeric claim, by exact recomputation | typed expression AST (`term`) | exact mismatch / dimensional mismatch / interval separation |
|
|
15
|
+
| [quote_carry](docs/methods/quote_carry_spec.md) | `quote_carry` | a citation, by span + content hash | doc hash + span + quote hash (`quote_span`) | quote absent or at a different offset; version mismatch |
|
|
16
|
+
| [csp_carry](docs/methods/csp_carry_spec.md) | `csp_carry` | a solution to a constraint problem | the assignment map (`term`) | the specific violated constraint, named |
|
|
17
|
+
| [puzzle_parity](docs/methods/parity_results.md) | `puzzle_parity` | sliding-puzzle solvability | move sequence, or none (`trace`) | the parity invariant I = −1 |
|
|
18
|
+
|
|
19
|
+
`puzzle_parity` is the sequential special case of `csp_carry` (witness = move list). `quote_carry`
|
|
20
|
+
generalizes `empirical_corpus` and carries the new `quote_span` witness kind (registered in the
|
|
21
|
+
canonical vocabulary, `84_cert_witness.sql`). Together they cover the recompute / ground /
|
|
22
|
+
satisfy / invariant corners of one verify-easy pattern.
|
|
23
|
+
|
|
24
|
+
Every kernel is stdlib-only, keeping the `calx.kernel` charter: a consumer who receives an
|
|
25
|
+
exported bundle re-verifies these witnesses with nothing but a Python interpreter.
|
|
@@ -1,82 +1,83 @@
|
|
|
1
|
-
TRUNK_DSN ?= postgresql://trunk:trunk@localhost:5434/trunk
|
|
2
|
-
NERODE_DSN ?= postgresql://nerode:nerode@localhost:5435/nerode
|
|
3
|
-
|
|
4
|
-
.PHONY: up down apply apply-trunkit apply-nerode check check-trunkit check-nerode \
|
|
5
|
-
install dev-install test test-network lint build reset-trunkit reset-nerode
|
|
6
|
-
|
|
7
|
-
## Start both PostgreSQL instances via Docker Compose
|
|
8
|
-
up:
|
|
9
|
-
docker compose up -d db-trunkit db-nerode
|
|
10
|
-
|
|
11
|
-
## Stop and remove containers
|
|
12
|
-
down:
|
|
13
|
-
docker compose down
|
|
14
|
-
|
|
15
|
-
## Apply Trunkit (calx/kan/curry/cert) schemas — idempotent
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
check
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
check
|
|
40
|
-
|
|
41
|
-
nerode
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
@
|
|
50
|
-
|
|
51
|
-
$(MAKE)
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
dev
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
$(
|
|
77
|
-
$(MAKE)
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
$(
|
|
1
|
+
TRUNK_DSN ?= postgresql://trunk:trunk@localhost:5434/trunk
|
|
2
|
+
NERODE_DSN ?= postgresql://nerode:nerode@localhost:5435/nerode
|
|
3
|
+
|
|
4
|
+
.PHONY: up down apply apply-trunkit apply-nerode check check-trunkit check-nerode \
|
|
5
|
+
install dev-install test test-network lint build reset-trunkit reset-nerode
|
|
6
|
+
|
|
7
|
+
## Start both PostgreSQL instances via Docker Compose
|
|
8
|
+
up:
|
|
9
|
+
docker compose up -d db-trunkit db-nerode
|
|
10
|
+
|
|
11
|
+
## Stop and remove containers
|
|
12
|
+
down:
|
|
13
|
+
docker compose down
|
|
14
|
+
|
|
15
|
+
## Apply Trunkit (calx/kan/curry/cert) schemas — idempotent
|
|
16
|
+
## LC_ALL=C sort -n: numeric prefix order (99_ < 100_), matching calx.db.schema_order
|
|
17
|
+
apply-trunkit:
|
|
18
|
+
@for f in $$(ls src/calx/sql/*.sql | LC_ALL=C sort -n); do \
|
|
19
|
+
echo " $$f"; \
|
|
20
|
+
psql "$(TRUNK_DSN)" -f "$$f" -q; \
|
|
21
|
+
done
|
|
22
|
+
@echo "Trunkit schema applied."
|
|
23
|
+
|
|
24
|
+
## Apply Nerode (automata/session/porter) schemas — idempotent
|
|
25
|
+
apply-nerode:
|
|
26
|
+
@for f in $$(ls src/nerode/sql/*.sql | sort); do \
|
|
27
|
+
echo " $$f"; \
|
|
28
|
+
psql "$(NERODE_DSN)" -f "$$f" -q; \
|
|
29
|
+
done
|
|
30
|
+
@echo "Nerode schema applied."
|
|
31
|
+
|
|
32
|
+
## Apply all schemas for both databases
|
|
33
|
+
apply: apply-trunkit apply-nerode
|
|
34
|
+
|
|
35
|
+
## Trunkit smoke check: populate integers and run reflexive closure
|
|
36
|
+
check-trunkit:
|
|
37
|
+
python tools/kan_in_kan.py
|
|
38
|
+
|
|
39
|
+
## Nerode smoke check: build a minimal DFA from a*b+ and run it
|
|
40
|
+
check-nerode:
|
|
41
|
+
nerode build --regex "a*b+" --dsn "$(NERODE_DSN)"
|
|
42
|
+
nerode run --input "aaab" --dsn "$(NERODE_DSN)" --id 1
|
|
43
|
+
|
|
44
|
+
## Run all checks
|
|
45
|
+
check: check-trunkit check-nerode
|
|
46
|
+
|
|
47
|
+
## Full local bootstrap: up -> apply -> check
|
|
48
|
+
install: up
|
|
49
|
+
@echo "Waiting for databases to be ready..."
|
|
50
|
+
@sleep 3
|
|
51
|
+
$(MAKE) apply
|
|
52
|
+
$(MAKE) check
|
|
53
|
+
|
|
54
|
+
## Install Python packages in editable/dev mode
|
|
55
|
+
dev-install:
|
|
56
|
+
pip install -e ".[dev]"
|
|
57
|
+
|
|
58
|
+
## Run tests
|
|
59
|
+
test:
|
|
60
|
+
pytest -v
|
|
61
|
+
|
|
62
|
+
## Network tests (real HTTP — weather, tickers, HN)
|
|
63
|
+
test-network:
|
|
64
|
+
pytest tests/test_sources.py -m network -v
|
|
65
|
+
|
|
66
|
+
## Lint
|
|
67
|
+
lint:
|
|
68
|
+
ruff check src tests
|
|
69
|
+
|
|
70
|
+
## Build wheel
|
|
71
|
+
build:
|
|
72
|
+
python -m build
|
|
73
|
+
|
|
74
|
+
## Drop Trunkit schemas and start fresh (destructive)
|
|
75
|
+
reset-trunkit:
|
|
76
|
+
psql "$(TRUNK_DSN)" -c "DROP SCHEMA IF EXISTS cert, kan, curry, calx CASCADE;"
|
|
77
|
+
$(MAKE) apply-trunkit
|
|
78
|
+
$(MAKE) check-trunkit
|
|
79
|
+
|
|
80
|
+
## Drop Nerode schemas and start fresh (destructive)
|
|
81
|
+
reset-nerode:
|
|
82
|
+
psql "$(NERODE_DSN)" -c "DROP SCHEMA IF EXISTS nerode CASCADE;"
|
|
83
|
+
$(MAKE) apply-nerode
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: trunkit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Trunkit — proof-carrying code and deterministic automata middleware on PostgreSQL, with Porter agent context handoff
|
|
5
5
|
Project-URL: Homepage, https://github.com/Athena-Pro/Trunkit
|
|
6
6
|
Project-URL: Repository, https://github.com/Athena-Pro/Trunkit
|
|
7
|
+
Author-email: Athena Kaminsky <thegiantsnail@gmail.com>
|
|
7
8
|
License: MIT
|
|
8
9
|
License-File: LICENSE
|
|
9
10
|
Keywords: agent,automata,category-theory,dfa,formal-verification,handoff,integer-sequences,llm,minimization,nerode-equivalence,postgresql,proof-carrying-code
|
|
@@ -23,11 +24,16 @@ Provides-Extra: binary
|
|
|
23
24
|
Requires-Dist: psycopg[binary]<4,>=3.2; extra == 'binary'
|
|
24
25
|
Provides-Extra: dev
|
|
25
26
|
Requires-Dist: build>=1.0; extra == 'dev'
|
|
27
|
+
Requires-Dist: mcp>=1.0.0; extra == 'dev'
|
|
26
28
|
Requires-Dist: psycopg[binary]<4,>=3.2; extra == 'dev'
|
|
27
29
|
Requires-Dist: pytest-cov>=5; extra == 'dev'
|
|
28
30
|
Requires-Dist: pytest>=8; extra == 'dev'
|
|
29
31
|
Requires-Dist: ruff>=0.6; extra == 'dev'
|
|
30
32
|
Requires-Dist: twine>=5.0; extra == 'dev'
|
|
33
|
+
Provides-Extra: image
|
|
34
|
+
Requires-Dist: pillow>=10; extra == 'image'
|
|
35
|
+
Provides-Extra: mcp
|
|
36
|
+
Requires-Dist: mcp>=1.0.0; extra == 'mcp'
|
|
31
37
|
Description-Content-Type: text/markdown
|
|
32
38
|
|
|
33
39
|
<p align="center">
|
|
@@ -74,10 +80,10 @@ Just PostgreSQL, Python, and ~1.5 MB of schemas.
|
|
|
74
80
|
|
|
75
81
|
| Layer | Role |
|
|
76
82
|
|-------|------|
|
|
77
|
-
| **calx** | Dense prime factorisation of ℤ[1..N]; aliquot/derivative dynamics; CRT; OEIS
|
|
83
|
+
| **calx** | Dense prime factorisation of ℤ[1..N]; aliquot/derivative dynamics; CRT; OEIS exact + **cosine-candidate** matching; **C-finite/P-finite recurrence certificates** |
|
|
78
84
|
| **curry** | Immutable versioned constants and functions; append-only computational provenance |
|
|
79
85
|
| **kan** | Category-*structured* meta-layer: reflects Postgres FK graphs into objects/morphisms and checks **structural invariants** (triangle commutativity, product universal property, naturality, epi classification) as re-runnable probes — see the caveat below |
|
|
80
|
-
| **cert** | Proof-carrying attestation:
|
|
86
|
+
| **cert** | Proof-carrying attestation: six method tiers, structured witness storage, proof composition DAG, portable bundle export, consumer re-verification; **exact-domain shield**, **recurrence/morphism certificates**, **holographic (Merkle) commitments**, **image anchoring**, **crypto-succinct (arithmetised) claims** |
|
|
81
87
|
| **Nerode** | DFA/automata engine on PostgreSQL: construction, minimization, product, session DFAs, sequence cache, certified handoff envelopes |
|
|
82
88
|
| **Porter** | Agent context handoff: pre-pack external data, certify session boundaries, hand verified context to a new model with zero tool calls |
|
|
83
89
|
|
|
@@ -113,6 +119,21 @@ compromised or wiped Nerode cannot corrupt or rewrite proof history.
|
|
|
113
119
|
|
|
114
120
|
## Quick start
|
|
115
121
|
|
|
122
|
+
From pip (requires Docker for the bundled databases):
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
pip install trunkit # installs both the trunkit and nerode CLIs
|
|
126
|
+
trunkit quickstart # writes docker-compose.yml, starts both DBs, applies both schemas
|
|
127
|
+
trunkit generate --limit 10000
|
|
128
|
+
trunkit standing
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
`trunkit quickstart --compose-only` just writes the compose file if you'd
|
|
132
|
+
rather start the databases yourself; already-running instances are picked up
|
|
133
|
+
via `$CALX_DSN` / `$NERODE_DSN`.
|
|
134
|
+
|
|
135
|
+
From a repo checkout:
|
|
136
|
+
|
|
116
137
|
```bash
|
|
117
138
|
# 1. Start both PostgreSQL instances
|
|
118
139
|
docker compose up -d db-trunkit db-nerode
|
|
@@ -128,11 +149,6 @@ trunkit close --write
|
|
|
128
149
|
python scripts/morning_brief_demo.py
|
|
129
150
|
```
|
|
130
151
|
|
|
131
|
-
```bash
|
|
132
|
-
# Install
|
|
133
|
-
pip install trunkit # installs both the trunkit and nerode CLIs
|
|
134
|
-
```
|
|
135
|
-
|
|
136
152
|
Environment variable: `CALX_DSN=postgresql://trunk:trunk@localhost:5434/trunk`
|
|
137
153
|
|
|
138
154
|
---
|
|
@@ -158,6 +174,13 @@ trunkit export <id> [<id> ...]
|
|
|
158
174
|
# Emits a self-contained JSONB bundle to stdout:
|
|
159
175
|
# claims + certificates + witnesses + derivations.
|
|
160
176
|
# Portable — consumers can re-verify without a Trunkit install.
|
|
177
|
+
|
|
178
|
+
trunkit verify --bundle FILE [--offline]
|
|
179
|
+
# Consumer side of export: re-verifies a received bundle.
|
|
180
|
+
# Replays each embedded probe against YOUR database (rolled back after),
|
|
181
|
+
# checks witness presence, and verifies artifact sha256 hashes against
|
|
182
|
+
# local files. --offline skips probe replay (structural checks only).
|
|
183
|
+
# Three-valued per claim: VALID / REFUTED / UNVERIFIED. Exits 0 iff all valid.
|
|
161
184
|
```
|
|
162
185
|
|
|
163
186
|
```
|
|
@@ -199,7 +222,11 @@ trunkit close [--write]
|
|
|
199
222
|
|
|
200
223
|
trunkit witness <claim_id> --kind KIND --body JSON [--write]
|
|
201
224
|
# Attach a structured proof witness to a claim.
|
|
202
|
-
# KIND: term | trace | counterexample | hash_chain | kan_diagram
|
|
225
|
+
# KIND: term | trace | counterexample | hash_chain | kan_diagram | quote_span
|
|
226
|
+
|
|
227
|
+
trunkit register-lean <claim_id> --root DIR --decl Module.thm [--write]
|
|
228
|
+
# Register a Lean (Lake) project + declaration as a formal_external artifact.
|
|
229
|
+
# Re-checked by tools/lean_check.sh: lake build + axiom / `sorry` audit.
|
|
203
230
|
```
|
|
204
231
|
|
|
205
232
|
### calx data
|
|
@@ -212,6 +239,7 @@ trunkit reset # drop all calx tables
|
|
|
212
239
|
trunkit oeis-load [--family F] # fetch curated OEIS b-files
|
|
213
240
|
trunkit oeis-match [--orbit-id ID | --all]
|
|
214
241
|
trunkit compose-match
|
|
242
|
+
trunkit oeis-cosine --seq-id A000045 # scale-invariant growth-shape candidates, confirmed by exact prefix
|
|
215
243
|
```
|
|
216
244
|
|
|
217
245
|
---
|
|
@@ -276,6 +304,25 @@ conn.execute(
|
|
|
276
304
|
| `formal_external` | SHA256-pinned external artifact | Python/Lean/Agda proof scripts |
|
|
277
305
|
| `empirical_corpus` | Provenance only | Corpus document assertions |
|
|
278
306
|
| `witness_carry` | In-DB witness term | Structured proof terms stored alongside certificates; consumer-replayable |
|
|
307
|
+
| `crypto_succinct` | Pinned verifying key + external verifier | Succinct (optionally zero-knowledge) proofs over arithmetised first-order claims (`calx.arith`); the prover stays outside the package |
|
|
308
|
+
|
|
309
|
+
> **Exactness shield.** Every claim also carries a `domain` tag (`exact_int` /
|
|
310
|
+
> `rational` / `algebraic` / `interval` / `float_heuristic`). A ledger trigger
|
|
311
|
+
> guarantees a `float_heuristic` claim can **never** record a `valid`
|
|
312
|
+
> certificate — only `unverified`. Heuristics (e.g. cosine similarity)
|
|
313
|
+
> *propose*; exact probes *decide*.
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## Attestable structures (calx / cert)
|
|
318
|
+
|
|
319
|
+
Beyond integer-fact and categorical claims, cert ships re-checkable, **exact** certificate families:
|
|
320
|
+
|
|
321
|
+
- **Recurrence certificates** — a C-finite/P-finite recurrence (coefficients + initial terms) regenerates a sequence; `cert.recurrence_*` verifies it exactly and refuses non-exact division.
|
|
322
|
+
- **Sequence morphisms** — `cert.morphism_*` proves an exact map (scale / affine / index-shift) between two sequences — the structural relation a cosine candidate only hints at.
|
|
323
|
+
- **OEIS cosine candidates** — `calx.oeis_cosine_candidates` surfaces scale-invariant growth-shape neighbours, each confirmed by exact prefix agreement.
|
|
324
|
+
- **Image anchoring + similarity** — `cert.image_*` anchors a figure by sha256 and scores perceptual cosine similarity (pure-SQL; the `[image]` extra is only for decoding).
|
|
325
|
+
- **Holographic commitments** — `cert.merkle_root` / `cert.claim_commitment` commit an arbitrarily long trace to a 32-byte root (core `sha256`).
|
|
279
326
|
|
|
280
327
|
---
|
|
281
328
|
|
|
@@ -294,17 +341,19 @@ conn.execute(
|
|
|
294
341
|
|
|
295
342
|
| Component | Files | Size |
|
|
296
343
|
|-----------|-------|------|
|
|
297
|
-
| SQL (00–
|
|
298
|
-
| Python
|
|
299
|
-
|
|
|
300
|
-
|
|
|
301
|
-
|
|
|
344
|
+
| SQL (calx 00–98 + nerode 00–C0) | ~117 | ~711 KB |
|
|
345
|
+
| Python packages (`src/`: calx + nerode + trunkit_mcp) | ~25 | ~183 KB |
|
|
346
|
+
| Python tools | ~17 | ~188 KB |
|
|
347
|
+
| Proof scripts | 6 | ~42 KB |
|
|
348
|
+
| Tests | ~45 | ~296 KB |
|
|
349
|
+
| **Total (no virtualenv)** | **~210** | **~1.4 MB** |
|
|
302
350
|
|
|
303
351
|
For scale only (not a capability comparison): a Lean 4 toolchain is ≈ 2.9 GB
|
|
304
352
|
per version and a compiled Mathlib ≈ 4–10 GB per project. **Trunkit is not a
|
|
305
353
|
substitute for a proof assistant** — Lean/Mathlib verify arbitrary
|
|
306
354
|
human-authored theorems, whereas Trunkit re-checks a fixed, small set of
|
|
307
|
-
certificate schemas (factorization, CRT, Egyptian fractions, matrix words
|
|
355
|
+
certificate schemas (factorization, CRT, Egyptian fractions, matrix words,
|
|
356
|
+
recurrence & morphism certificates, image / OEIS cosine candidates) plus
|
|
308
357
|
re-runnable in-DB probes. The size figures say only that Trunkit fits in a
|
|
309
358
|
database you already run; they do **not** imply equivalent verification power.
|
|
310
359
|
|
|
@@ -315,12 +364,16 @@ database you already run; they do **not** imply equivalent verification power.
|
|
|
315
364
|
```
|
|
316
365
|
src/
|
|
317
366
|
calx/ — Trunkit Python package (calx + kan + curry + cert)
|
|
367
|
+
+ leanbridge.py · imagefeatures.py · recurrence.py
|
|
318
368
|
nerode/ — Nerode/Porter Python package
|
|
319
|
-
sql/ —
|
|
369
|
+
sql/ — 38 idempotent SQL schema files (00_bootstrap → C0_verify),
|
|
370
|
+
incl. quantitative EHA/WFFA (A0–A6) + Porter policy gate (B0–B4, C0)
|
|
320
371
|
precache.py — Precacher context manager (Porter API)
|
|
321
372
|
sources.py — WeatherSource, TickerSource, HNSource, TickerHistorySource
|
|
322
373
|
adapters.py — HttpSource, CallableSource, resolve(), with_retry()
|
|
323
374
|
db.py — connection utilities + SCHEMA_FILES list
|
|
375
|
+
trunkit_mcp/ — MCP server (`trunkit-mcp`): consumer verify/export tools always
|
|
376
|
+
on; prover tools gated behind TRUNKIT_ALLOW_WRITE=1
|
|
324
377
|
scripts/
|
|
325
378
|
morning_brief_demo.py — end-to-end Porter demo
|
|
326
379
|
tests/
|
|
@@ -332,7 +385,10 @@ tests/
|
|
|
332
385
|
proofs/
|
|
333
386
|
*.py — Trunkit proof scripts
|
|
334
387
|
tools/
|
|
335
|
-
|
|
388
|
+
cert_formal.py — formal-tier harness (python + lean checkers)
|
|
389
|
+
lean_check.sh, AxiomAudit.lean — Lean bridge driver + axiom/`sorry` auditor
|
|
390
|
+
image_features.py, figure_extract.py — vision tools ([image] extra)
|
|
391
|
+
oeis_loader.py, oeis_match.py, compose_match.py — OEIS workflows
|
|
336
392
|
```
|
|
337
393
|
|
|
338
394
|
---
|