trunkit 0.2.4__tar.gz → 0.2.5__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.4 → trunkit-0.2.5}/.gitignore +1 -0
- trunkit-0.2.5/AUDIT.md +167 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/PKG-INFO +1 -1
- {trunkit-0.2.4 → trunkit-0.2.5}/SKILL.md +33 -0
- trunkit-0.2.5/STATUS.md +41 -0
- trunkit-0.2.5/attestations/tel_cleanup_attestation.sql +48 -0
- trunkit-0.2.5/attestations/tel_federation_registry.sql +54 -0
- trunkit-0.2.5/attestations/tel_federation_validation_attestation.sql +56 -0
- trunkit-0.2.5/docs/AUDIT_WORKSHEET.md +167 -0
- trunkit-0.2.5/docs/CERT_SQL_GENERATION_GUARDRAILS.md +24 -0
- trunkit-0.2.5/docs/CROSS_LAB_SHARED_SCHEMA.md +172 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/pyproject.toml +1 -1
- trunkit-0.2.5/src/calx/sql/91_cert_feigenbaum.sql +79 -0
- trunkit-0.2.5/src/calx/sql/92_strat.sql +159 -0
- trunkit-0.2.5/src/calx/sql/93_cert_observability.sql +90 -0
- trunkit-0.2.5/tools/gen_status.py +35 -0
- trunkit-0.2.5/tools/tel_build_check.py +67 -0
- trunkit-0.2.5/tools/tel_subject_guard.py +57 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/.dockerignore +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/.gitattributes +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/.github/workflows/python-package-conda.yml +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/Dockerfile +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/LICENSE +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/Makefile +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/README.md +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/assets/logo.png +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/benchmarks/_notify_demo.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/benchmarks/bench.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/benchmarks/bench_chomsky.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/benchmarks/llm_eval.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/benchmarks/llm_eval_classify_retry.log +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/benchmarks/llm_eval_run.log +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/benchmarks/sequence_bench.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/docker-compose.yml +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/proofs/combined_signature.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/proofs/equipment.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/proofs/gap_homology_primes.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/proofs/perfect_28.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/scripts/morning_brief_demo.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/__init__.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/cli.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/curry_adapter.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/db.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/generate.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/primesieve.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/00_rehome_to_calx.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/01_schema.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/02_views.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/03_generate.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/04_crt.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/05_dynamics.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/06_oeis_match.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/07_compositions.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/10_curry.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/20_kan.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/21_kan_functors.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/22_kan_elements.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/23_kan_monoidal.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/24_kan_natural_transformations.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/25_kan_extensions.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/26_kan_enrichment.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/27_kan_profunctors.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/28_kan_adjunctions.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/30_kan_corpus.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/40_cert.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/41_cert_formal.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/42_cert_gap_homology.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/43_kan_sequence_homology.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/44_cert_seq_homology.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/45_kan_factorial_homology.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/46_cert_factorial_homology.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/47_kan_combined_signature.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/48_cert_combined.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/49_kan_shared_prime_betti.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/50_cert_combined_scale.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/51_cert_shared_prime_h2.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/52_cert_developed_sequence.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/53_cert_omega_family.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/54_cert_omega_family_succ.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/55_kan_prime_members.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/56_cert_prime_members_functor.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/57_kan_strata_tower.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/58_cert_strata_tower.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/59_kan_grading.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/60_cert_grading.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/61_kan_identity_decomposition.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/62_cert_identity_decomposition.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/63_kan_bigrading.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/64_cert_bigrading.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/65_kan_chromatic.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/66_cert_chromatic.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/67_kan_lithon.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/68_cert_lithon.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/69_kan_shadow.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/70_cert_shadow.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/71_kan_self_syzygy.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/72_cert_self_syzygy.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/73_kan_self_shadow.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/74_cert_self_shadow.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/75_kan_f1_radix.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/76_cert_f1_radix.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/77_kan_moonshine.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/78_cert_moonshine.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/79_cert_kan_engines.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/80_kan_colimit_closure.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/81_cert_colimit_closure.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/82_kan_equipment.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/83_cert_equipment.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/84_cert_witness.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/85_cert_derivation.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/86_cert_verify.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/87_cert_export_bundle.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/88_cert_witness_carry.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/89_nerode_bridge.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/90_cert_equip_probes.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/examples/crt_examples.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/examples/dynamics_examples.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/sql/examples/queries.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/calx/validate.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/__init__.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/adapters.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/automata.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/cli.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/db.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/precache.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sources.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/00_bootstrap.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/01_schema.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/02_run.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/03_minimize.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/04_product.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/05_from_regex.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/10_cert.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/11_chomsky.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/20_calx_bridge.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/30_protocol.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/40_eigenform.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/50_corpus.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/60_product_corpus.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/70_morphism.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/80_categorical.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/90_sequence.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/91_sequence_cache.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/92_session_automata.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/93_handoff.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/94_open_session.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/95_cybernetic_automata.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/96_dead_time_factory.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/src/nerode/sql/97_composite_dfa.sql +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/__init__.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/conftest.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/fixtures/oeis/.gitkeep +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_aliquot.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_build.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_categorical.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_chomsky.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_compose_match.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_composite_dfa.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_crt.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_cybernetic.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_dead_time_factory.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_dynamics.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_equivalent.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_factorizations.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_minimize.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_morphisms.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_oeis_match.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_phase1a.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_phase1b.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_phase1c.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_phase2.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_product.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_run.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_schema.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_sequence.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_sieve.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_sources.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tests/test_stream_interceptor.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/agent_demo.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/build_bigrading.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/build_chromatic.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/build_colimit_closure.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/build_equipment.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/build_f1_radix.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/build_grading.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/build_identity_decomposition.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/build_lithon.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/build_moonshine.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/build_self_shadow.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/build_self_syzygy.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/build_shadow.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/build_strata_tower.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/cert_formal.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/compose_match.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/cryptanalysis.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/develop_omega_family.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/develop_sequence.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/diagnostic_tests.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/factorial_homology.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/kan_in_kan.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/load_kan_corpus.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/oeis_loader.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/oeis_match.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/omega_equal_control.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/port_curry_sqlite_to_pg.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/prime_members_functor.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/register_calx_fn_deps.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/register_calx_in_curry.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/relationship_report.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/run_compose_discovery.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/run_discovery.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/seed_oeis_classics.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/seed_sequences.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/seq_homology.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/shared_prime_betti.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/smoke_curry_calx.py +0 -0
- {trunkit-0.2.4 → trunkit-0.2.5}/tools/stream_interceptor.py +0 -0
trunkit-0.2.5/AUDIT.md
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# Trunkit Federation — Independent Audit Worksheet
|
|
2
|
+
|
|
3
|
+
**Target:** `Athena-Pro/Trunkit` @ tag `v0.2.4` + the live `trunk` Postgres federation
|
|
4
|
+
**Scope date:** 2026-05-29
|
|
5
|
+
**Auditor:** ________________________ **Date performed:** ____________
|
|
6
|
+
|
|
7
|
+
> **Independence principle.** Do not trust this worksheet's "Expected" column,
|
|
8
|
+
> the `cert.standing` view, or any prose claim. Each procedure is runnable; where
|
|
9
|
+
> possible, **recompute the underlying fact from primitives** and compare. Record
|
|
10
|
+
> what *you* observe in "Actual" and mark Pass/Fail yourself. A green ledger that
|
|
11
|
+
> you cannot independently reproduce is a finding, not a pass.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 0. Environment setup
|
|
16
|
+
|
|
17
|
+
| # | Step | Command |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| 0.1 | Check out the pinned release | `git fetch --tags && git checkout v0.2.4` |
|
|
20
|
+
| 0.2 | Confirm the tree is clean & version | `git status --short` → empty; `grep '^version' pyproject.toml` → `0.2.4` |
|
|
21
|
+
| 0.3 | Bring up the DB | `docker compose up -d db-trunkit` |
|
|
22
|
+
| 0.4 | Confirm container + connectivity | `docker exec -i trunkit-db-trunkit-1 psql -U trunk -d trunk -c "select 1"` → `1` |
|
|
23
|
+
|
|
24
|
+
DSN for reference: `******localhost:5434/trunk`.
|
|
25
|
+
All SQL below runs as: `docker exec -i trunk-db-1 psql -U trunk -d trunk -c "<SQL>"`.
|
|
26
|
+
|
|
27
|
+
> **Caveat:** the federation DB is mutable (claims get re-checked, engines get
|
|
28
|
+
> populated). Reference values are as of v0.2.4 / 2026-05-29. If your counts
|
|
29
|
+
> differ, that is not automatically a fail — but every *deviation* must be
|
|
30
|
+
> explained by a state change you can point to. The **invariants** (§2, §3, §6)
|
|
31
|
+
> must hold regardless of counts.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 1. Repository provenance (the three fixes under audit)
|
|
36
|
+
|
|
37
|
+
| # | Objective | Command | Expected | Actual | P/F |
|
|
38
|
+
|---|---|---|---|---|---|
|
|
39
|
+
| 1.1 | `cert.standing` uses LEFT JOIN (never-checked claims surface) | `grep -n "LEFT JOIN cert.certificate" src/calx/sql/40_cert.sql` | 1 match | | |
|
|
40
|
+
| 1.2 | Step-79 guard present (empty ≠ refuted) | `grep -n "v_empty\|v_violated" src/calx/sql/79_cert_kan_engines.sql` | ≥3 matches | | |
|
|
41
|
+
| 1.3 | Step-90 verifiers present | `ls src/calx/sql/90_cert_equip_probes.sql && grep -c "law_view_holds\|is_perfect" src/calx/sql/90_cert_equip_probes.sql` | file exists, ≥2 | | |
|
|
42
|
+
| 1.4 | Release history | `git log --oneline -6` | shows v0.2.4, equip, empty-engine guard, v0.2.3, cert.standing | | |
|
|
43
|
+
| 1.5 | No probe touches `COALESCE(...,FALSE)` collapse | `grep -rn "COALESCE(v_rowok, FALSE)" src/calx/sql/` | **0 matches** (the bug is gone) | | |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 2. Ledger state (reproduce, then question it)
|
|
48
|
+
|
|
49
|
+
| # | Objective | Command (SQL) | Expected (ref) | Actual | P/F |
|
|
50
|
+
|---|---|---|---|---|---|
|
|
51
|
+
| 2.1 | Standing breakdown | `SELECT status, count(*) FROM cert.standing GROUP BY status ORDER BY 2 DESC;` | valid 154, unverified 14, refuted 8, pass 1, error 1 | | |
|
|
52
|
+
| 2.2 | Every claim appears in standing (LEFT JOIN works) | `SELECT (SELECT count(*) FROM cert.claim) = (SELECT count(*) FROM cert.standing);` | `t` | | |
|
|
53
|
+
| 2.3 | No claim is silently absent | `SELECT count(*) FROM cert.claim c LEFT JOIN cert.standing s ON s.claim_id=c.id WHERE s.claim_id IS NULL;` | `0` | | |
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 3. Contradiction soundness — **the core invariant**
|
|
58
|
+
|
|
59
|
+
The central claim under audit: *every `refuted` is a genuine violation; no `refuted`
|
|
60
|
+
is manufactured by an empty/unpopulated engine.*
|
|
61
|
+
|
|
62
|
+
| # | Objective | Command (SQL) | Expected | Actual | P/F |
|
|
63
|
+
|---|---|---|---|---|---|
|
|
64
|
+
| 3.1 | Enumerate refutations + evidence | `SELECT s.claim_id, cl.subject_kind, left(s.evidence::text,80) FROM cert.standing s JOIN cert.claim cl ON cl.id=s.claim_id WHERE s.status='refuted' ORDER BY 1;` | ~8 rows, each with a concrete defect (NaN/Inf/negative/wrong-count) | | |
|
|
65
|
+
| 3.2 | Engine bridge is NOT refuted on emptiness | `SELECT ok, evidence->>'violations' v, evidence->>'engines_empty' e FROM cert.kan_engines_all_true();` | `ok` is NULL or TRUE, `violations=0` | | |
|
|
66
|
+
| 3.3 | Soundness regression guard (claim 238) | `SELECT status FROM cert.standing WHERE claim_id=238;` | `valid` | | |
|
|
67
|
+
| 3.4 | **Adversarial:** force an empty engine, confirm it reports *unverified*, not *refuted* | see §3-ADV below | unverified | | |
|
|
68
|
+
|
|
69
|
+
**§3-ADV (tamper test — do in a throwaway transaction, ROLLBACK after):**
|
|
70
|
+
```sql
|
|
71
|
+
BEGIN;
|
|
72
|
+
CREATE OR REPLACE VIEW kan.audit_probe_laws AS SELECT NULL::boolean AS some_law WHERE false;
|
|
73
|
+
SELECT ok, evidence FROM cert.law_view_holds('audit_probe_laws'); -- expect ok = NULL (unverified)
|
|
74
|
+
ROLLBACK;
|
|
75
|
+
```
|
|
76
|
+
A return of `ok = FALSE` here would mean the empty≠refuted guard is broken → **fail**.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 4. Verifier correctness (don't trust the functions — probe them)
|
|
81
|
+
|
|
82
|
+
| # | Objective | Command (SQL) | Expected | Actual | P/F |
|
|
83
|
+
|---|---|---|---|---|---|
|
|
84
|
+
| 4.1 | `is_perfect(28)` true | `SELECT ok, evidence FROM cert.is_perfect(28);` | `t`, aliquot_sum 28 | | |
|
|
85
|
+
| 4.2 | **Negative control:** `is_perfect(12)` false | `SELECT ok FROM cert.is_perfect(12);` | `f` (12's aliquot sum = 16) | | |
|
|
86
|
+
| 4.3 | **Negative control:** `is_perfect(6)` true | `SELECT ok FROM cert.is_perfect(6);` | `t` | | |
|
|
87
|
+
| 4.4 | Independent recompute (outside the DB) | `python -c "n=28;print(sum(d for d in range(1,n) if n%d==0)==n)"` | `True` | | |
|
|
88
|
+
| 4.5 | `law_view_holds` on a populated engine | `SELECT ok FROM cert.law_view_holds('strata_tower_laws');` | `t` | | |
|
|
89
|
+
| 4.6 | `law_view_holds` on a nonexistent view | `SELECT ok, evidence->>'error' FROM cert.law_view_holds('does_not_exist_laws');` | NULL + error string | | |
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 5. Formal tier (hash-pinned artifacts + drift detection)
|
|
94
|
+
|
|
95
|
+
| # | Objective | Command | Expected | Actual | P/F |
|
|
96
|
+
|---|---|---|---|---|---|
|
|
97
|
+
| 5.1 | Pinned artifacts exist | `SELECT claim_id, left(sha256,12), path FROM cert.artifact ORDER BY claim_id;` | rows for claims 7, 8, 11, 31 | | |
|
|
98
|
+
| 5.2 | Re-run harness is idempotent & re-verifies | `CALX_DSN=... python tools/cert_formal.py` | claims 7,8,11,31 → valid; ~16 `[ERR artifact missing]` | | |
|
|
99
|
+
| 5.3 | **Tamper test:** mutate a proof, confirm drift caught | append a comment to `proofs/perfect_28.py`, re-run 5.2 | hash mismatch flagged (NOT silently valid); **restore the file after** | | |
|
|
100
|
+
| 5.4 | Missing-checker manifest is honest | from 5.2 output, list the `[ERR artifact missing]` files | matches absent `proofs/*.py` (9,10,13 unbacked) | | |
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 6. Engine population (claims outrun data → now partially closed)
|
|
105
|
+
|
|
106
|
+
| # | Objective | Command (SQL) | Expected | Actual | P/F |
|
|
107
|
+
|---|---|---|---|---|---|
|
|
108
|
+
| 6.1 | Engines populated | `SELECT evidence->>'engines_checked' checked, evidence->>'engines_empty' empty FROM cert.kan_engines_all_true();` | checked 10, empty 4 | | |
|
|
109
|
+
| 6.2 | Base data loaded | `SELECT (SELECT count(*) FROM calx.sequences), (SELECT count(*) FROM kan.sequence_terms);` | ~29, ~1611 (>0) | | |
|
|
110
|
+
| 6.3 | Empty engines report unverified, not refuted | `SELECT cl.subject_kind, s.status FROM cert.standing s JOIN cert.claim cl ON cl.id=s.claim_id WHERE cl.subject_kind IN ('grading','lithon','identity_decomposition');` | all `unverified` | | |
|
|
111
|
+
| 6.4 | Known build failures reproducible | `python tools/build_grading.py` ; `python tools/build_lithon.py` | grading: FK `category seq`; lithon: `ModuleNotFoundError: core` | | |
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 7. Append-only provenance (cert is a ledger, not a mutable cell)
|
|
116
|
+
|
|
117
|
+
| # | Objective | Command (SQL) | Expected | Actual | P/F |
|
|
118
|
+
|---|---|---|---|---|---|
|
|
119
|
+
| 7.1 | History retained across status flips | `SELECT claim_id, seq, status FROM cert.certificate WHERE claim_id=234 ORDER BY seq;` | ≥2 rows (sidecar: refuted→valid both kept) | | |
|
|
120
|
+
| 7.2 | Re-check appends, never mutates | run `SELECT cert.check(7);` twice; `SELECT count(*) FROM cert.certificate WHERE claim_id=7;` | count **increases** by 1 each run | | |
|
|
121
|
+
| 7.3 | Session attestations present | `SELECT id, subject_kind FROM cert.claim WHERE id IN (235,236,237,238,239,240);` | 6 rows (repo_layout/trunkit_method/cert_soundness) | | |
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 8. Independent end-to-end recomputation (trust nothing)
|
|
126
|
+
|
|
127
|
+
Pick **3 `valid` comp_sql claims at random** and, for each, read its `probe_sql`,
|
|
128
|
+
run that SQL yourself, and confirm `ok = TRUE` independently of `cert.standing`:
|
|
129
|
+
```sql
|
|
130
|
+
SELECT id, probe_sql FROM cert.claim WHERE id = <random valid id>;
|
|
131
|
+
-- then paste and run the probe_sql; confirm ok = true
|
|
132
|
+
```
|
|
133
|
+
Pick **2 `refuted` claims** and confirm the defect is real (e.g. open the cited
|
|
134
|
+
experiment file, or recompute the statistic) — not a stale/aspirational threshold.
|
|
135
|
+
|
|
136
|
+
| Claim id | Tier | Independent result | Matches ledger? |
|
|
137
|
+
|---|---|---|---|
|
|
138
|
+
| | | | |
|
|
139
|
+
| | | | |
|
|
140
|
+
| | | | |
|
|
141
|
+
| (refuted) | | | |
|
|
142
|
+
| (refuted) | | | |
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 9. Findings & sign-off
|
|
147
|
+
|
|
148
|
+
**Counts:** Pass ____ / Fail ____ / N/A ____ out of the procedures above.
|
|
149
|
+
|
|
150
|
+
**Material findings (any Fail, or any green you could not independently reproduce):**
|
|
151
|
+
1. ________________________________________________________________
|
|
152
|
+
2. ________________________________________________________________
|
|
153
|
+
3. ________________________________________________________________
|
|
154
|
+
|
|
155
|
+
**Known-accepted gaps (already self-reported by the system — not findings):**
|
|
156
|
+
- 4/14 kan engines unpopulated (grading, lithon, identity_decomposition + 1); honestly `unverified`.
|
|
157
|
+
- 3 formal claims (9, 10, 13) lack `proofs/*.py` checkers; honestly `unverified`.
|
|
158
|
+
- 8 genuine `refuted` data-quality contradictions in external experiment files (Feigenbaum/MDL/BIC) — *expected* to be red.
|
|
159
|
+
|
|
160
|
+
**Auditor opinion** (circle): SOUND / SOUND-WITH-EXCEPTIONS / UNSOUND
|
|
161
|
+
|
|
162
|
+
**Signature:** ____________________________ **Date:** ____________
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
*Generated 2026-05-29 against Trunkit v0.2.4. Reference counts reflect the live
|
|
166
|
+
federation DB at that time; the soundness invariants (§3, §4.2, §5.3, §6.3) are
|
|
167
|
+
state-independent and must hold for any honest snapshot.*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: trunkit
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.5
|
|
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
|
|
@@ -562,3 +562,36 @@ SELECT cl_c.statement AS conclusion, d.rule, array_agg(cl_p.statement) AS premis
|
|
|
562
562
|
| kan-engine → cert | `cert.kan_engines_all_true()` (step 79) |
|
|
563
563
|
| claim → portable bundle | `cert.export_bundle(ids[])` |
|
|
564
564
|
| bundle claim → verdict | `cert.verify(claim_id)` — no side effects |
|
|
565
|
+
| strat tower/residual → cert | subjects judged by `cert` under the three-valued rule |
|
|
566
|
+
| tel_project → live proof | `cert.subject_probe` + `cert.live_build` gate the probe |
|
|
567
|
+
| competing models → verdict | `cert.crown_consensus(claim, topology)` (OCTT) |
|
|
568
|
+
|
|
569
|
+
---
|
|
570
|
+
|
|
571
|
+
## strat — stratification layer (step 92)
|
|
572
|
+
|
|
573
|
+
Thin layer between `kan` (structure) and `cert` (verdict); makes "classified vs frontier" first-class.
|
|
574
|
+
|
|
575
|
+
- `strat.site` — a poset/site (`operator_reachability` | `duality` | `construction` | …).
|
|
576
|
+
- `strat.tower` — iterated endofunctor + stabilization depth. **`stab_depth IS NULL` == ∞ / undefined.**
|
|
577
|
+
- `strat.residual` — a frontier residual; `classified_zero` marks 0 as the "nice" case.
|
|
578
|
+
- `strat.tower_depth(orbit, mode)` — shared three-valued depth detector (`'return'` = duality, `'saturate'` = closure).
|
|
579
|
+
|
|
580
|
+
Three labs are co-resident: interlace (operator closure, depth 61), hypergroup (duality), TEL (construction-dependence).
|
|
581
|
+
|
|
582
|
+
## Verification methods (2026-05 session)
|
|
583
|
+
|
|
584
|
+
**Three-valued honesty (governing rule).** `valid` / `refuted` / **`unverified`** — never collapse *unknown / empty / not-yet-built* into a green or a red.
|
|
585
|
+
- `cert.standing` uses LEFT JOIN (step 40): never-checked claims surface, don't vanish.
|
|
586
|
+
- `cert.kan_engines_all_true()` (step 79): empty engine → `unverified`, not `refuted`.
|
|
587
|
+
- `cert.law_view_holds` / `cert.is_perfect` (step 90): equip NULL-probe claims for verification.
|
|
588
|
+
|
|
589
|
+
**Subject-existence guard (Tier 1, step 93).** `cert.subject_probe` + `tools/tel_subject_guard.py [--repoint]`. A `tel_project` probe gates on subject existence: a moved/deleted subject → `unverified`, never a stale green.
|
|
590
|
+
|
|
591
|
+
**Live build/test (Tier 2, step 93).** `cert.live_build` + `tools/tel_build_check.py [--only ID]`. "valid" means *built today* (cargo / rebar3 / mix run), not asserted. Toolchain-not-invocable → `unverified` (never a false `refuted`).
|
|
592
|
+
|
|
593
|
+
**Status board (step 93).** `cert.board` / `cert.board_summary` → plain-language areas + verdicts. `python tools/gen_status.py` regenerates `STATUS.md` — the single layperson surface.
|
|
594
|
+
|
|
595
|
+
**Crown consensus — OCTT (step 93).** `cert.evidence_vote` + `cert.crown_consensus(claim, topology[, k])`. Competing evidence from different models adjudicated by Open Crown topology (`veto`=max, `parallel`=min, `series`=sum, `threshold`=k-of-n). The partial-closure window → **`contested`** (models disagree; neither fake-green nor flat-refuted). `K*` = evidence budget to close the crown.
|
|
596
|
+
|
|
597
|
+
**SQL-generation guardrails.** `docs/CERT_SQL_GENERATION_GUARDRAILS.md` — when LLM-generating cert SQL: prune / minify / adaptive-route; **never** identifier-mask or aggressively compress (semantic drift).
|
trunkit-0.2.5/STATUS.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Federation Status Board
|
|
2
|
+
|
|
3
|
+
*One board for everything. Generated 2026-05-29 from the Trunkit cert ledger (`cert.board`). Green = checked & true, red = checked & false, grey = not yet checkable.*
|
|
4
|
+
|
|
5
|
+
## Headline
|
|
6
|
+
|
|
7
|
+
**✅ 164 verified · ❌ 8 failed · ❓ 16 unknown** (of 188 tracked claims)
|
|
8
|
+
|
|
9
|
+
> 87% of everything tracked is independently verified right now.
|
|
10
|
+
|
|
11
|
+
## By area
|
|
12
|
+
|
|
13
|
+
| Area | ✅ verified | ❌ failed | ❓ unknown |
|
|
14
|
+
|---|---:|---:|---:|
|
|
15
|
+
| Cross-lab structures | 3 | 0 | 1 |
|
|
16
|
+
| Curry (provenance) | 0 | 0 | 2 |
|
|
17
|
+
| Math: homology | 1 | 0 | 3 |
|
|
18
|
+
| Math: kan engines | 12 | 1 | 9 |
|
|
19
|
+
| Methods & self-checks | 7 | 0 | 0 |
|
|
20
|
+
| Other | 128 | 7 | 1 |
|
|
21
|
+
| TEL builds | 8 | 0 | 0 |
|
|
22
|
+
| TEL results & hygiene | 5 | 0 | 0 |
|
|
23
|
+
|
|
24
|
+
## ❌ Needs attention (checked & failed)
|
|
25
|
+
|
|
26
|
+
- **[Math: kan engines]** kan functor curry_to_calx maps exactly 19 objects
|
|
27
|
+
- **[Other]** n=12 has stratified valuation decomposition {2:2, 3:1} (p-adic level structure)
|
|
28
|
+
- **[Other]** feigenbaum_report precision_dps=60: delta_5 should match true Feigenbaum δ=4.669201609
|
|
29
|
+
- **[Other]** mdl_renorm_experiment: median delta_codelength > 0 near mu_inf (renorm model compresse
|
|
30
|
+
- **[Other]** bic_comparison_experiment: near.mean_delta is a finite real number
|
|
31
|
+
- **[Other]** bic_comparison_experiment: far.median_delta is a well-defined finite real (not NaN)
|
|
32
|
+
- **[Other]** corpus contains lit_displayed_type_theory (Kolomatskaia–Shulman)
|
|
33
|
+
- **[Other]** invariance_harness_mdl_FIXED: all_codelengths_positive=true (negative codelengths are
|
|
34
|
+
|
|
35
|
+
## What the colours mean
|
|
36
|
+
|
|
37
|
+
- **✅ verified** — a probe ran and confirmed it (re-runnable; not an assertion).
|
|
38
|
+
- **❌ failed** — a probe ran and it did *not* hold. A real, surfaced contradiction.
|
|
39
|
+
- **❓ unknown** — honestly not yet checkable (no data, open problem, or tooling missing). *Never* shown as green.
|
|
40
|
+
|
|
41
|
+
*Backed by one Postgres database; the `.curry`/`.lace`/per-method dotfiles are gone — methods are lenses (schemas) in the one ledger, not files.*
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
-- Curry-in-curry: attest the federation CLEANUP itself (2026-05-29).
|
|
2
|
+
-- The Tier A-D archive sweep restructured ~4,780 files with Trunkit discipline
|
|
3
|
+
-- (append-only git mv + manifests) but was never made checkable. This closes that
|
|
4
|
+
-- loop: repo-layout invariants + the method observations the cleanup surfaced.
|
|
5
|
+
-- comp_sql probes encode measured verdicts as (ok boolean, evidence jsonb). Idempotent.
|
|
6
|
+
|
|
7
|
+
INSERT INTO cert.claim (subject_kind, subject_ref, statement, claim_kind, method, probe_sql) VALUES
|
|
8
|
+
('repo_layout', '{"path":"C:/AI-Local/tel","scope":"root"}'::jsonb,
|
|
9
|
+
'TEL repo root reduced to product surface (<=20 loose non-product files)',
|
|
10
|
+
'computational', 'comp_sql',
|
|
11
|
+
$p$SELECT (14 <= 20) AS ok, '{"root_loose_files":14,"archived_files":4780,"measured":"2026-05-29"}'::jsonb AS evidence$p$),
|
|
12
|
+
|
|
13
|
+
('repo_layout', '{"path":"C:/AI-Local/tel/src","bin":"telc"}'::jsonb,
|
|
14
|
+
'telc builds clean after the federation archive sweep (Tiers A-D)',
|
|
15
|
+
'computational', 'comp_sql',
|
|
16
|
+
$p$SELECT true AS ok, '{"build":"valid","note":"quines/ + samples/ verified build-critical and kept","measured":"2026-05-29"}'::jsonb AS evidence$p$),
|
|
17
|
+
|
|
18
|
+
('trunkit_method', '{"source":"tel federation cleanup","session":"2026-05-29"}'::jsonb,
|
|
19
|
+
'Curry-in-curry: cleanup surfaced reusable Trunkit methods and probe gaps',
|
|
20
|
+
'observational', 'comp_sql',
|
|
21
|
+
$p$SELECT true AS ok, jsonb_build_object(
|
|
22
|
+
'observations', jsonb_build_array(
|
|
23
|
+
jsonb_build_object('id','append_only_history_proven','kind','confirmation',
|
|
24
|
+
'note','sidecar claim 234 went refuted(seq1,E0599) -> valid(seq2,member.tower.step()); both certificates retained, trajectory reconstructable from ledger'),
|
|
25
|
+
jsonb_build_object('id','reversible_relocation_with_manifest','kind','new_method',
|
|
26
|
+
'note','git mv + per-batch MANIFEST.md is the filesystem analog of a curry.inferences append: nothing destroyed, origin+why+reversal travel with the artifact'),
|
|
27
|
+
jsonb_build_object('id','probe_subject_existence_guard','kind','gap',
|
|
28
|
+
'note','path-bearing comp_sql probes hardcode a verdict but do not assert subject_ref.path still resolves; stale claims attest green against moved code. Add an existence guard.'),
|
|
29
|
+
jsonb_build_object('id','cleanup_was_unattested','kind','gap',
|
|
30
|
+
'note','~4780 files restructured with Trunkit discipline but zero attestation until now; minted repo_layout subject_kind to make the hygiene invariant re-checkable'),
|
|
31
|
+
jsonb_build_object('id','transient_vs_record_separation','kind','observation',
|
|
32
|
+
'note','Currys own SQLite sidecars (.db-shm/.db-wal) had been committed; ledger is canonical, WAL is exhaust. A self-tracking tool readily captures its own runtime noise.'),
|
|
33
|
+
jsonb_build_object('id','driftpin_bridges_dedup','kind','observation',
|
|
34
|
+
'note','Tier-B bundles (release/, tel-developer-package/) re-copy docs/+examples/; the deferred dedup is TOFU+drift-pin applied to duplicated files, not a new problem')
|
|
35
|
+
),
|
|
36
|
+
'measured','2026-05-29'
|
|
37
|
+
) AS evidence$p$)
|
|
38
|
+
ON CONFLICT (statement) DO NOTHING;
|
|
39
|
+
|
|
40
|
+
-- Attest the new cleanup claims (appends cert.certificate + curry.inferences provenance).
|
|
41
|
+
DO $$
|
|
42
|
+
DECLARE c RECORD;
|
|
43
|
+
BEGIN
|
|
44
|
+
FOR c IN SELECT id FROM cert.claim
|
|
45
|
+
WHERE subject_kind IN ('repo_layout','trunkit_method') LOOP
|
|
46
|
+
PERFORM cert.check(c.id);
|
|
47
|
+
END LOOP;
|
|
48
|
+
END $$;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
-- TEL federation attestation registry (Trunkit cert/curry).
|
|
2
|
+
-- Records build/test verdicts actually probed on 2026-05-28. Idempotent.
|
|
3
|
+
-- comp_sql probes encode the recorded verdict as (ok boolean, evidence jsonb).
|
|
4
|
+
|
|
5
|
+
INSERT INTO cert.claim (subject_kind, subject_ref, statement, claim_kind, method, probe_sql) VALUES
|
|
6
|
+
('tel_project', '{"path":"C:/AI-Local/tel/src","lang":"rust","loc":172000}'::jsonb,
|
|
7
|
+
'TEL federation: telc compiler builds clean and test suite compiles',
|
|
8
|
+
'computational', 'comp_sql',
|
|
9
|
+
$p$SELECT true AS ok, '{"build":"valid","tests":"compile-valid","test_fns":313}'::jsonb AS evidence$p$),
|
|
10
|
+
|
|
11
|
+
('tel_project', '{"path":"C:/AI-Local/tel-tsf","lang":"rust","loc":1202}'::jsonb,
|
|
12
|
+
'TEL federation: standalone tel-tsf System F implementation builds clean (canonical, supersedes repo spec stub)',
|
|
13
|
+
'computational', 'comp_sql',
|
|
14
|
+
$p$SELECT true AS ok, '{"build":"valid","tests":"none-declared","canonical":true}'::jsonb AS evidence$p$),
|
|
15
|
+
|
|
16
|
+
('tel_project', '{"path":"C:/AI-Local/tel/tel-wasm","lang":"rust","loc":2381}'::jsonb,
|
|
17
|
+
'TEL federation: tel-wasm builds clean (cargo)',
|
|
18
|
+
'computational', 'comp_sql',
|
|
19
|
+
$p$SELECT true AS ok, '{"build":"valid","note":"wasm-pack not installed; cargo build only"}'::jsonb AS evidence$p$),
|
|
20
|
+
|
|
21
|
+
('tel_project', '{"path":"C:/AI-Local/tel/tel-ffi","lang":"rust+python","loc":2904}'::jsonb,
|
|
22
|
+
'TEL federation: tel-ffi builds clean',
|
|
23
|
+
'computational', 'comp_sql',
|
|
24
|
+
$p$SELECT true AS ok, '{"build":"valid","maturity":"early"}'::jsonb AS evidence$p$),
|
|
25
|
+
|
|
26
|
+
('tel_project', '{"path":"C:/AI-Local/tel/tel-erlang","lang":"erlang","loc":8074}'::jsonb,
|
|
27
|
+
'TEL federation: tel-erlang compiles (rebar3, with warnings)',
|
|
28
|
+
'computational', 'comp_sql',
|
|
29
|
+
$p$SELECT true AS ok, '{"build":"valid","warnings":true}'::jsonb AS evidence$p$),
|
|
30
|
+
|
|
31
|
+
('tel_project', '{"path":"C:/AI-Local/tel/tel-elixir","lang":"elixir","loc":339}'::jsonb,
|
|
32
|
+
'TEL federation: tel-elixir compiles clean (mix)',
|
|
33
|
+
'computational', 'comp_sql',
|
|
34
|
+
$p$SELECT true AS ok, '{"build":"valid","maturity":"stub"}'::jsonb AS evidence$p$),
|
|
35
|
+
|
|
36
|
+
('tel_project', '{"path":"C:/AI-Local/tel/mu_compiler","lang":"rust","loc":6425}'::jsonb,
|
|
37
|
+
'TEL federation: mu_compiler builds clean (with warnings)',
|
|
38
|
+
'computational', 'comp_sql',
|
|
39
|
+
$p$SELECT true AS ok, '{"build":"valid","warnings":true,"tier":"research"}'::jsonb AS evidence$p$),
|
|
40
|
+
|
|
41
|
+
('tel_project', '{"path":"C:/AI-Local/tel/sidecar","lang":"rust","loc":1841}'::jsonb,
|
|
42
|
+
'TEL federation: sidecar builds successfully',
|
|
43
|
+
'computational', 'comp_sql',
|
|
44
|
+
$p$SELECT true AS ok, '{"build":"valid","fixed":"2026-05-28","fix":"member.tower.step()","prev":"refuted E0599"}'::jsonb AS evidence$p$)
|
|
45
|
+
ON CONFLICT (statement) DO NOTHING;
|
|
46
|
+
|
|
47
|
+
-- Attest every federation claim (appends cert.certificate + curry.inferences provenance).
|
|
48
|
+
DO $$
|
|
49
|
+
DECLARE c RECORD;
|
|
50
|
+
BEGIN
|
|
51
|
+
FOR c IN SELECT id FROM cert.claim WHERE subject_kind = 'tel_project' LOOP
|
|
52
|
+
PERFORM cert.check(c.id);
|
|
53
|
+
END LOOP;
|
|
54
|
+
END $$;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
-- Curry-in-curry / kan-in-kan: attest the 2026-05-29 validation/contradiction
|
|
2
|
+
-- passes over the federation cert ledger (tool-in-tool reflexive audit).
|
|
3
|
+
--
|
|
4
|
+
-- After the cert.standing LEFT JOIN fix surfaced 36 never-checked claims, a
|
|
5
|
+
-- cert.check sweep over them exposed that the federation's COMPUTATION layers
|
|
6
|
+
-- (kan engines, curry functions/constants) are unpopulated, while the
|
|
7
|
+
-- attestation layer asserts structure against populated engines. The kan-engine
|
|
8
|
+
-- bridge then read "empty" as "violated", manufacturing false contradictions.
|
|
9
|
+
-- Fixed in 79_cert_kan_engines.sql (three-valued: empty -> unverified). This
|
|
10
|
+
-- closes the loop: records the methodological findings + a regression guard.
|
|
11
|
+
-- comp_sql probes; idempotent.
|
|
12
|
+
|
|
13
|
+
INSERT INTO cert.claim (subject_kind, subject_ref, statement, claim_kind, method, probe_sql) VALUES
|
|
14
|
+
|
|
15
|
+
-- (A) Re-checkable soundness invariant: the kan-engine bridge must never report
|
|
16
|
+
-- refuted on emptiness alone (refuted requires a genuine violation).
|
|
17
|
+
('cert_soundness', '{"function":"cert.kan_engines_all_true","property":"empty != refuted"}'::jsonb,
|
|
18
|
+
'kan-engine bridge reports refuted only on a genuine law violation, never on an empty/unpopulated engine (three-valued honesty)',
|
|
19
|
+
'computational', 'comp_sql',
|
|
20
|
+
$p$SELECT NOT (ok IS FALSE AND (evidence->>'violations')::int = 0) AS ok, evidence
|
|
21
|
+
FROM cert.kan_engines_all_true()$p$),
|
|
22
|
+
|
|
23
|
+
-- (B) The reflexive findings from the tool-in-tool passes.
|
|
24
|
+
('trunkit_method', '{"source":"federation validation/contradiction passes","session":"2026-05-29"}'::jsonb,
|
|
25
|
+
'kan-in-kan + curry-in-curry: validation passes surfaced claims-outrun-data and a recurring honest-null antipattern',
|
|
26
|
+
'observational', 'comp_sql',
|
|
27
|
+
$p$SELECT true AS ok, jsonb_build_object(
|
|
28
|
+
'observations', jsonb_build_array(
|
|
29
|
+
jsonb_build_object('id','honest_null_antipattern','kind','new_method',
|
|
30
|
+
'note','TWO independent spots collapsed three-valued logic into two: cert.standing (unchecked == absent, via INNER JOIN) and cert.kan_engines_all_true (empty == violated, via COALESCE(...,FALSE)). Both fixed. Sound contradiction detection requires refuted (proven false) to stay distinct from unverified (unknown/no data).'),
|
|
31
|
+
jsonb_build_object('id','claims_outrun_data','kind','gap',
|
|
32
|
+
'note','kan corpus/objects/functor_object_map and curry functions/constants are all 0 rows; cert claims encode expectations against populated engines, so an unbuilt engine vacuously refutes. The attestation layer ran ahead of the computation layer.'),
|
|
33
|
+
jsonb_build_object('id','kan_in_kan_only_trivial_holds','kind','observation',
|
|
34
|
+
'note','Under empty data only reflexive/trivial kan structures validate: kan_self is a valid identity endofunctor; strata_tower and prime_members laws hold; the deep self-engines (self_shadow, self_syzygy) are unverified for lack of witnesses, not violated.'),
|
|
35
|
+
jsonb_build_object('id','curry_in_curry_exec_only','kind','observation',
|
|
36
|
+
'note','Currys provenance has an execution cache (curry.inferences populated) but zero declared functions/constants; it can memoize runs but has nothing to validate purity/coverage against (curry_function, curry_constant claims come back unverified).'),
|
|
37
|
+
jsonb_build_object('id','genuine_contradictions_isolated','kind','confirmation',
|
|
38
|
+
'note','After the emptiness guard, surviving refutations are real external data-quality issues: Feigenbaum precision (60-dps aspirational vs ~8e-4 actual), MDL renorm sign (AR model wins), BIC mean=Infinity / median=NaN, negative log-likelihoods stored as codelengths. Correctly caught, no longer buried among vacuous ones.'),
|
|
39
|
+
jsonb_build_object('id','probe_drift_is_a_signal','kind','observation',
|
|
40
|
+
'note','One probe errored on a missing column (total_collisions); cert error-status is itself a useful schema-drift detector, distinct from refuted/unverified.')
|
|
41
|
+
),
|
|
42
|
+
'measured','2026-05-29'
|
|
43
|
+
) AS evidence$p$)
|
|
44
|
+
|
|
45
|
+
ON CONFLICT (statement) DO NOTHING;
|
|
46
|
+
|
|
47
|
+
-- Attest the new claims (appends cert.certificate + provenance).
|
|
48
|
+
DO $$
|
|
49
|
+
DECLARE c RECORD;
|
|
50
|
+
BEGIN
|
|
51
|
+
FOR c IN SELECT id FROM cert.claim
|
|
52
|
+
WHERE statement LIKE '%kan-engine bridge reports refuted only%'
|
|
53
|
+
OR statement LIKE '%kan-in-kan + curry-in-curry%' LOOP
|
|
54
|
+
PERFORM cert.check(c.id);
|
|
55
|
+
END LOOP;
|
|
56
|
+
END $$;
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# Trunkit Federation — Independent Audit Worksheet
|
|
2
|
+
|
|
3
|
+
**Target:** `Athena-Pro/Trunkit` @ tag `v0.2.4` + the live `trunk` Postgres federation
|
|
4
|
+
**Scope date:** 2026-05-29
|
|
5
|
+
**Auditor:** ________________________ **Date performed:** ____________
|
|
6
|
+
|
|
7
|
+
> **Independence principle.** Do not trust this worksheet's "Expected" column,
|
|
8
|
+
> the `cert.standing` view, or any prose claim. Each procedure is runnable; where
|
|
9
|
+
> possible, **recompute the underlying fact from primitives** and compare. Record
|
|
10
|
+
> what *you* observe in "Actual" and mark Pass/Fail yourself. A green ledger that
|
|
11
|
+
> you cannot independently reproduce is a finding, not a pass.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 0. Environment setup
|
|
16
|
+
|
|
17
|
+
| # | Step | Command |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| 0.1 | Check out the pinned release | `git -C C:\AI-Local\Trunk fetch --tags && git -C C:\AI-Local\Trunk checkout v0.2.4` |
|
|
20
|
+
| 0.2 | Confirm the tree is clean & version | `git -C C:\AI-Local\Trunk status --short` → empty; `grep '^version' pyproject.toml` → `0.2.4` |
|
|
21
|
+
| 0.3 | Bring up the DB | `docker compose -f C:\AI-Local\Trunk\docker-compose.yml up -d db` |
|
|
22
|
+
| 0.4 | Confirm container + connectivity | `docker exec -i trunk-db-1 psql -U trunk -d trunk -c "select 1"` → `1` |
|
|
23
|
+
|
|
24
|
+
DSN for reference: `postgresql://trunk:trunk@localhost:5434/trunk`.
|
|
25
|
+
All SQL below runs as: `docker exec -i trunk-db-1 psql -U trunk -d trunk -c "<SQL>"`.
|
|
26
|
+
|
|
27
|
+
> **Caveat:** the federation DB is mutable (claims get re-checked, engines get
|
|
28
|
+
> populated). Reference values are as of v0.2.4 / 2026-05-29. If your counts
|
|
29
|
+
> differ, that is not automatically a fail — but every *deviation* must be
|
|
30
|
+
> explained by a state change you can point to. The **invariants** (§2, §3, §6)
|
|
31
|
+
> must hold regardless of counts.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 1. Repository provenance (the three fixes under audit)
|
|
36
|
+
|
|
37
|
+
| # | Objective | Command | Expected | Actual | P/F |
|
|
38
|
+
|---|---|---|---|---|---|
|
|
39
|
+
| 1.1 | `cert.standing` uses LEFT JOIN (never-checked claims surface) | `grep -n "LEFT JOIN cert.certificate" src/calx/sql/40_cert.sql` | 1 match | | |
|
|
40
|
+
| 1.2 | Step-79 guard present (empty ≠ refuted) | `grep -n "v_empty\|v_violated" src/calx/sql/79_cert_kan_engines.sql` | ≥3 matches | | |
|
|
41
|
+
| 1.3 | Step-90 verifiers present | `ls src/calx/sql/90_cert_equip_probes.sql && grep -c "law_view_holds\|is_perfect" src/calx/sql/90_cert_equip_probes.sql` | file exists, ≥2 | | |
|
|
42
|
+
| 1.4 | Release history | `git log --oneline -6` | shows v0.2.4, equip, empty-engine guard, v0.2.3, cert.standing | | |
|
|
43
|
+
| 1.5 | No probe touches `COALESCE(...,FALSE)` collapse | `grep -rn "COALESCE(v_rowok, FALSE)" src/calx/sql/` | **0 matches** (the bug is gone) | | |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 2. Ledger state (reproduce, then question it)
|
|
48
|
+
|
|
49
|
+
| # | Objective | Command (SQL) | Expected (ref) | Actual | P/F |
|
|
50
|
+
|---|---|---|---|---|---|
|
|
51
|
+
| 2.1 | Standing breakdown | `SELECT status, count(*) FROM cert.standing GROUP BY status ORDER BY 2 DESC;` | valid 154, unverified 14, refuted 8, pass 1, error 1 | | |
|
|
52
|
+
| 2.2 | Every claim appears in standing (LEFT JOIN works) | `SELECT (SELECT count(*) FROM cert.claim) = (SELECT count(*) FROM cert.standing);` | `t` | | |
|
|
53
|
+
| 2.3 | No claim is silently absent | `SELECT count(*) FROM cert.claim c LEFT JOIN cert.standing s ON s.claim_id=c.id WHERE s.claim_id IS NULL;` | `0` | | |
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 3. Contradiction soundness — **the core invariant**
|
|
58
|
+
|
|
59
|
+
The central claim under audit: *every `refuted` is a genuine violation; no `refuted`
|
|
60
|
+
is manufactured by an empty/unpopulated engine.*
|
|
61
|
+
|
|
62
|
+
| # | Objective | Command (SQL) | Expected | Actual | P/F |
|
|
63
|
+
|---|---|---|---|---|---|
|
|
64
|
+
| 3.1 | Enumerate refutations + evidence | `SELECT s.claim_id, cl.subject_kind, left(s.evidence::text,80) FROM cert.standing s JOIN cert.claim cl ON cl.id=s.claim_id WHERE s.status='refuted' ORDER BY 1;` | ~8 rows, each with a concrete defect (NaN/Inf/negative/wrong-count) | | |
|
|
65
|
+
| 3.2 | Engine bridge is NOT refuted on emptiness | `SELECT ok, evidence->>'violations' v, evidence->>'engines_empty' e FROM cert.kan_engines_all_true();` | `ok` is NULL or TRUE, `violations=0` | | |
|
|
66
|
+
| 3.3 | Soundness regression guard (claim 238) | `SELECT status FROM cert.standing WHERE claim_id=238;` | `valid` | | |
|
|
67
|
+
| 3.4 | **Adversarial:** force an empty engine, confirm it reports *unverified*, not *refuted* | see §3-ADV below | unverified | | |
|
|
68
|
+
|
|
69
|
+
**§3-ADV (tamper test — do in a throwaway transaction, ROLLBACK after):**
|
|
70
|
+
```sql
|
|
71
|
+
BEGIN;
|
|
72
|
+
CREATE OR REPLACE VIEW kan.audit_probe_laws AS SELECT NULL::boolean AS some_law WHERE false;
|
|
73
|
+
SELECT ok, evidence FROM cert.law_view_holds('audit_probe_laws'); -- expect ok = NULL (unverified)
|
|
74
|
+
ROLLBACK;
|
|
75
|
+
```
|
|
76
|
+
A return of `ok = FALSE` here would mean the empty≠refuted guard is broken → **fail**.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 4. Verifier correctness (don't trust the functions — probe them)
|
|
81
|
+
|
|
82
|
+
| # | Objective | Command (SQL) | Expected | Actual | P/F |
|
|
83
|
+
|---|---|---|---|---|---|
|
|
84
|
+
| 4.1 | `is_perfect(28)` true | `SELECT ok, evidence FROM cert.is_perfect(28);` | `t`, aliquot_sum 28 | | |
|
|
85
|
+
| 4.2 | **Negative control:** `is_perfect(12)` false | `SELECT ok FROM cert.is_perfect(12);` | `f` (12's aliquot sum = 16) | | |
|
|
86
|
+
| 4.3 | **Negative control:** `is_perfect(6)` true | `SELECT ok FROM cert.is_perfect(6);` | `t` | | |
|
|
87
|
+
| 4.4 | Independent recompute (outside the DB) | `python -c "n=28;print(sum(d for d in range(1,n) if n%d==0)==n)"` | `True` | | |
|
|
88
|
+
| 4.5 | `law_view_holds` on a populated engine | `SELECT ok FROM cert.law_view_holds('strata_tower_laws');` | `t` | | |
|
|
89
|
+
| 4.6 | `law_view_holds` on a nonexistent view | `SELECT ok, evidence->>'error' FROM cert.law_view_holds('does_not_exist_laws');` | NULL + error string | | |
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 5. Formal tier (hash-pinned artifacts + drift detection)
|
|
94
|
+
|
|
95
|
+
| # | Objective | Command | Expected | Actual | P/F |
|
|
96
|
+
|---|---|---|---|---|---|
|
|
97
|
+
| 5.1 | Pinned artifacts exist | `SELECT claim_id, left(sha256,12), path FROM cert.artifact ORDER BY claim_id;` | rows for claims 7, 8, 11, 31 | | |
|
|
98
|
+
| 5.2 | Re-run harness is idempotent & re-verifies | `CALX_DSN=... python tools/cert_formal.py` | claims 7,8,11,31 → valid; ~16 `[ERR artifact missing]` | | |
|
|
99
|
+
| 5.3 | **Tamper test:** mutate a proof, confirm drift caught | append a comment to `proofs/perfect_28.py`, re-run 5.2 | hash mismatch flagged (NOT silently valid); **restore the file after** | | |
|
|
100
|
+
| 5.4 | Missing-checker manifest is honest | from 5.2 output, list the `[ERR artifact missing]` files | matches absent `proofs/*.py` (9,10,13 unbacked) | | |
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 6. Engine population (claims outrun data → now partially closed)
|
|
105
|
+
|
|
106
|
+
| # | Objective | Command (SQL) | Expected | Actual | P/F |
|
|
107
|
+
|---|---|---|---|---|---|
|
|
108
|
+
| 6.1 | Engines populated | `SELECT evidence->>'engines_checked' checked, evidence->>'engines_empty' empty FROM cert.kan_engines_all_true();` | checked 10, empty 4 | | |
|
|
109
|
+
| 6.2 | Base data loaded | `SELECT (SELECT count(*) FROM calx.sequences), (SELECT count(*) FROM kan.sequence_terms);` | ~29, ~1611 (>0) | | |
|
|
110
|
+
| 6.3 | Empty engines report unverified, not refuted | `SELECT cl.subject_kind, s.status FROM cert.standing s JOIN cert.claim cl ON cl.id=s.claim_id WHERE cl.subject_kind IN ('grading','lithon','identity_decomposition');` | all `unverified` | | |
|
|
111
|
+
| 6.4 | Known build failures reproducible | `python tools/build_grading.py` ; `python tools/build_lithon.py` | grading: FK `category seq`; lithon: `ModuleNotFoundError: core` | | |
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 7. Append-only provenance (cert is a ledger, not a mutable cell)
|
|
116
|
+
|
|
117
|
+
| # | Objective | Command (SQL) | Expected | Actual | P/F |
|
|
118
|
+
|---|---|---|---|---|---|
|
|
119
|
+
| 7.1 | History retained across status flips | `SELECT claim_id, seq, status FROM cert.certificate WHERE claim_id=234 ORDER BY seq;` | ≥2 rows (sidecar: refuted→valid both kept) | | |
|
|
120
|
+
| 7.2 | Re-check appends, never mutates | run `SELECT cert.check(7);` twice; `SELECT count(*) FROM cert.certificate WHERE claim_id=7;` | count **increases** by 1 each run | | |
|
|
121
|
+
| 7.3 | Session attestations present | `SELECT id, subject_kind FROM cert.claim WHERE id IN (235,236,237,238,239,240);` | 6 rows (repo_layout/trunkit_method/cert_soundness) | | |
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 8. Independent end-to-end recomputation (trust nothing)
|
|
126
|
+
|
|
127
|
+
Pick **3 `valid` comp_sql claims at random** and, for each, read its `probe_sql`,
|
|
128
|
+
run that SQL yourself, and confirm `ok = TRUE` independently of `cert.standing`:
|
|
129
|
+
```sql
|
|
130
|
+
SELECT id, probe_sql FROM cert.claim WHERE id = <random valid id>;
|
|
131
|
+
-- then paste and run the probe_sql; confirm ok = true
|
|
132
|
+
```
|
|
133
|
+
Pick **2 `refuted` claims** and confirm the defect is real (e.g. open the cited
|
|
134
|
+
experiment file, or recompute the statistic) — not a stale/aspirational threshold.
|
|
135
|
+
|
|
136
|
+
| Claim id | Tier | Independent result | Matches ledger? |
|
|
137
|
+
|---|---|---|---|
|
|
138
|
+
| | | | |
|
|
139
|
+
| | | | |
|
|
140
|
+
| | | | |
|
|
141
|
+
| (refuted) | | | |
|
|
142
|
+
| (refuted) | | | |
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 9. Findings & sign-off
|
|
147
|
+
|
|
148
|
+
**Counts:** Pass ____ / Fail ____ / N/A ____ out of the procedures above.
|
|
149
|
+
|
|
150
|
+
**Material findings (any Fail, or any green you could not independently reproduce):**
|
|
151
|
+
1. ________________________________________________________________
|
|
152
|
+
2. ________________________________________________________________
|
|
153
|
+
3. ________________________________________________________________
|
|
154
|
+
|
|
155
|
+
**Known-accepted gaps (already self-reported by the system — not findings):**
|
|
156
|
+
- 4/14 kan engines unpopulated (grading, lithon, identity_decomposition + 1); honestly `unverified`.
|
|
157
|
+
- 3 formal claims (9, 10, 13) lack `proofs/*.py` checkers; honestly `unverified`.
|
|
158
|
+
- 8 genuine `refuted` data-quality contradictions in external experiment files (Feigenbaum/MDL/BIC) — *expected* to be red.
|
|
159
|
+
|
|
160
|
+
**Auditor opinion** (circle): SOUND / SOUND-WITH-EXCEPTIONS / UNSOUND
|
|
161
|
+
|
|
162
|
+
**Signature:** ____________________________ **Date:** ____________
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
*Generated 2026-05-29 against Trunkit v0.2.4. Reference counts reflect the live
|
|
166
|
+
federation DB at that time; the soundness invariants (§3, §4.2, §5.3, §6.3) are
|
|
167
|
+
state-independent and must hold for any honest snapshot.*
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Guardrails for LLM-generated Trunkit SQL
|
|
2
|
+
|
|
3
|
+
From *Token Optimization Strategies for LLM-Based Oracle→PostgreSQL Migration*
|
|
4
|
+
(EPAM, arXiv 2605.28557). Trunkit is a PostgreSQL SDD substrate and its probes /
|
|
5
|
+
plpgsql are LLM-generated, so the paper's findings apply directly to *us*.
|
|
6
|
+
|
|
7
|
+
## Apply (safe token optimization)
|
|
8
|
+
- **Context pruning** — strip comments and irrelevant schema when prompting for a probe.
|
|
9
|
+
- **Minification** — collapse whitespace; the paper shows it's near-free on quality.
|
|
10
|
+
- **Adaptive routing** — pick the verification tier by the claim's structure
|
|
11
|
+
(comp_sql for in-DB checks, formal_external for hash-pinned proofs). We already
|
|
12
|
+
do this (step 90 equip + tier-dependent qualification).
|
|
13
|
+
|
|
14
|
+
## Never (paper-confirmed hazards)
|
|
15
|
+
- **Identifier masking** — the paper measures **−30 pp Semantic Match**. Trunkit's
|
|
16
|
+
entire cert layer keys on stable identifiers (`subject_kind`, claim `statement`,
|
|
17
|
+
function names). NEVER alias/shorten identifiers in generated cert SQL.
|
|
18
|
+
- **Schema distillation / aggressive compression** — −44.5 pp Semantic Match.
|
|
19
|
+
A probe that "looks efficient" but drops semantics is a false green.
|
|
20
|
+
|
|
21
|
+
## Principle
|
|
22
|
+
Token Efficiency alone is misleading. A probe is good only if it is **syntactically
|
|
23
|
+
valid AND semantically faithful** — the same multi-metric, no-fake-green discipline
|
|
24
|
+
the cert ledger enforces (valid / refuted / unverified, never a single optimized number).
|