universal-physics-tensor 9.0.0 → 11.0.0
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.
- package/README.md +21 -17
- package/bin/upt.mjs +13 -1
- package/data/atlas/atlas.json +79 -68
- package/data/atlas/atlas.jsonld +1 -1
- package/data/atlas/diffusion.json +24 -23
- package/data/atlas/oscillators.json +21 -16
- package/data/atlas/waves.json +36 -31
- package/data/atlas/witness-results.json +11 -11
- package/data/bridge-catalog.json +1192 -1636
- package/data/bridge-catalog.schema.json +390 -135
- package/data/quantities.json +53 -19
- package/data/schemas/atlas-record.v0.json +184 -46
- package/data/units.json +33 -4
- package/dist/atlas/applicability.d.ts.map +1 -1
- package/dist/atlas/applicability.js +35 -18
- package/dist/atlas/applicability.js.map +1 -1
- package/dist/atlas/association.js.map +1 -1
- package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -1
- package/dist/atlas/benchmark/backend-shapes.js +5 -1
- package/dist/atlas/benchmark/backend-shapes.js.map +1 -1
- package/dist/atlas/benchmark/baselines.d.ts.map +1 -1
- package/dist/atlas/benchmark/baselines.js +8 -0
- package/dist/atlas/benchmark/baselines.js.map +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts +12 -3
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.js +30 -21
- package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
- package/dist/atlas/benchmark/leakage.js.map +1 -1
- package/dist/atlas/benchmark/loader.js +2 -2
- package/dist/atlas/benchmark/loader.js.map +1 -1
- package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -1
- package/dist/atlas/benchmark/run-atlas.js +14 -2
- package/dist/atlas/benchmark/run-atlas.js.map +1 -1
- package/dist/atlas/benchmark/stats.d.ts +3 -3
- package/dist/atlas/benchmark/stats.d.ts.map +1 -1
- package/dist/atlas/benchmark/stats.js +16 -8
- package/dist/atlas/benchmark/stats.js.map +1 -1
- package/dist/atlas/benchmark/study.js.map +1 -1
- package/dist/atlas/benchmark/types.js.map +1 -1
- package/dist/atlas/bridge-record.d.ts +4 -4
- package/dist/atlas/bridge-record.d.ts.map +1 -1
- package/dist/atlas/bridge-record.js +6 -6
- package/dist/atlas/bridge-record.js.map +1 -1
- package/dist/atlas/catalog-formal-ref.d.ts +26 -3
- package/dist/atlas/catalog-formal-ref.d.ts.map +1 -1
- package/dist/atlas/catalog-formal-ref.js +52 -5
- package/dist/atlas/catalog-formal-ref.js.map +1 -1
- package/dist/atlas/chain-pipeline.d.ts +0 -11
- package/dist/atlas/chain-pipeline.d.ts.map +1 -1
- package/dist/atlas/chain-pipeline.js +12 -24
- package/dist/atlas/chain-pipeline.js.map +1 -1
- package/dist/atlas/composition-table.js.map +1 -1
- package/dist/atlas/conventions.js.map +1 -1
- package/dist/atlas/coverage.d.ts +2 -2
- package/dist/atlas/coverage.js.map +1 -1
- package/dist/atlas/derivation.js.map +1 -1
- package/dist/atlas/derive-evidence.d.ts +6 -4
- package/dist/atlas/derive-evidence.d.ts.map +1 -1
- package/dist/atlas/derive-evidence.js +7 -2
- package/dist/atlas/derive-evidence.js.map +1 -1
- package/dist/atlas/diffusion/bridges-closure.d.ts +0 -4
- package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
- package/dist/atlas/diffusion/bridges-closure.js +8 -17
- package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
- package/dist/atlas/diffusion/bridges.d.ts.map +1 -1
- package/dist/atlas/diffusion/bridges.js +27 -42
- package/dist/atlas/diffusion/bridges.js.map +1 -1
- package/dist/atlas/diffusion/dimensions.d.ts +6 -14
- package/dist/atlas/diffusion/dimensions.d.ts.map +1 -1
- package/dist/atlas/diffusion/dimensions.js +8 -16
- package/dist/atlas/diffusion/dimensions.js.map +1 -1
- package/dist/atlas/diffusion/index.d.ts +1 -1
- package/dist/atlas/diffusion/index.d.ts.map +1 -1
- package/dist/atlas/diffusion/index.js.map +1 -1
- package/dist/atlas/diffusion/models.d.ts +3 -3
- package/dist/atlas/diffusion/models.d.ts.map +1 -1
- package/dist/atlas/diffusion/models.js +5 -10
- package/dist/atlas/diffusion/models.js.map +1 -1
- package/dist/atlas/diffusion/numerics.d.ts +16 -4
- package/dist/atlas/diffusion/numerics.d.ts.map +1 -1
- package/dist/atlas/diffusion/numerics.js +38 -24
- package/dist/atlas/diffusion/numerics.js.map +1 -1
- package/dist/atlas/error-algebra.d.ts +6 -0
- package/dist/atlas/error-algebra.d.ts.map +1 -1
- package/dist/atlas/error-algebra.js +26 -0
- package/dist/atlas/error-algebra.js.map +1 -1
- package/dist/atlas/export.d.ts +18 -2
- package/dist/atlas/export.d.ts.map +1 -1
- package/dist/atlas/export.js +9 -3
- package/dist/atlas/export.js.map +1 -1
- package/dist/atlas/families.d.ts +19 -2
- package/dist/atlas/families.d.ts.map +1 -1
- package/dist/atlas/families.js +26 -3
- package/dist/atlas/families.js.map +1 -1
- package/dist/atlas/family.d.ts +27 -0
- package/dist/atlas/family.d.ts.map +1 -0
- package/dist/atlas/family.js +12 -0
- package/dist/atlas/family.js.map +1 -0
- package/dist/atlas/index.d.ts +3 -2
- package/dist/atlas/index.d.ts.map +1 -1
- package/dist/atlas/index.js +2 -1
- package/dist/atlas/index.js.map +1 -1
- package/dist/atlas/link-prediction.d.ts +107 -4
- package/dist/atlas/link-prediction.d.ts.map +1 -1
- package/dist/atlas/link-prediction.js +212 -66
- package/dist/atlas/link-prediction.js.map +1 -1
- package/dist/atlas/model.js.map +1 -1
- package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-coarse.js +7 -12
- package/dist/atlas/oscillators/bridges-coarse.js.map +1 -1
- package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-exact.js +6 -10
- package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
- package/dist/atlas/oscillators/bridges-limits.d.ts +3 -16
- package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-limits.js +23 -36
- package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
- package/dist/atlas/oscillators/dimensions.d.ts +9 -21
- package/dist/atlas/oscillators/dimensions.d.ts.map +1 -1
- package/dist/atlas/oscillators/dimensions.js +9 -21
- package/dist/atlas/oscillators/dimensions.js.map +1 -1
- package/dist/atlas/oscillators/index.d.ts +1 -16
- package/dist/atlas/oscillators/index.d.ts.map +1 -1
- package/dist/atlas/oscillators/index.js.map +1 -1
- package/dist/atlas/oscillators/limit-witnesses.d.ts +2 -2
- package/dist/atlas/oscillators/limit-witnesses.d.ts.map +1 -1
- package/dist/atlas/oscillators/limit-witnesses.js +17 -15
- package/dist/atlas/oscillators/limit-witnesses.js.map +1 -1
- package/dist/atlas/oscillators/models.d.ts.map +1 -1
- package/dist/atlas/oscillators/models.js +2 -6
- package/dist/atlas/oscillators/models.js.map +1 -1
- package/dist/atlas/oscillators/norm-transport-witness.js.map +1 -1
- package/dist/atlas/oscillators/norm-transport.js.map +1 -1
- package/dist/atlas/oscillators/norms.js.map +1 -1
- package/dist/atlas/oscillators/pendulum-motion.d.ts +29 -6
- package/dist/atlas/oscillators/pendulum-motion.d.ts.map +1 -1
- package/dist/atlas/oscillators/pendulum-motion.js +60 -40
- package/dist/atlas/oscillators/pendulum-motion.js.map +1 -1
- package/dist/atlas/oscillators/phase-carriage.js.map +1 -1
- package/dist/atlas/oscillators/phase-translation.d.ts +0 -11
- package/dist/atlas/oscillators/phase-translation.d.ts.map +1 -1
- package/dist/atlas/oscillators/phase-translation.js +3 -4
- package/dist/atlas/oscillators/phase-translation.js.map +1 -1
- package/dist/atlas/oscillators/position-translation.d.ts +68 -7
- package/dist/atlas/oscillators/position-translation.d.ts.map +1 -1
- package/dist/atlas/oscillators/position-translation.js +123 -12
- package/dist/atlas/oscillators/position-translation.js.map +1 -1
- package/dist/atlas/oscillators/rejections.d.ts +0 -2
- package/dist/atlas/oscillators/rejections.d.ts.map +1 -1
- package/dist/atlas/oscillators/rejections.js +0 -7
- package/dist/atlas/oscillators/rejections.js.map +1 -1
- package/dist/atlas/path-bound.js.map +1 -1
- package/dist/atlas/physjs-entries.generated.d.ts +25 -24
- package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
- package/dist/atlas/physjs-entries.generated.js +25 -24
- package/dist/atlas/physjs-entries.generated.js.map +1 -1
- package/dist/atlas/physjs-ref.d.ts +107 -70
- package/dist/atlas/physjs-ref.d.ts.map +1 -1
- package/dist/atlas/physjs-ref.js +184 -101
- package/dist/atlas/physjs-ref.js.map +1 -1
- package/dist/atlas/physjs-reviewed.d.ts +31 -0
- package/dist/atlas/physjs-reviewed.d.ts.map +1 -0
- package/dist/atlas/physjs-reviewed.js +194 -0
- package/dist/atlas/physjs-reviewed.js.map +1 -0
- package/dist/atlas/poster/associations.js.map +1 -1
- package/dist/atlas/poster/derivations.js.map +1 -1
- package/dist/atlas/poster/statements.d.ts +0 -19
- package/dist/atlas/poster/statements.d.ts.map +1 -1
- package/dist/atlas/poster/statements.js +1 -1
- package/dist/atlas/poster/statements.js.map +1 -1
- package/dist/atlas/proof-target.d.ts +1 -1
- package/dist/atlas/proof-target.js +1 -1
- package/dist/atlas/proof-target.js.map +1 -1
- package/dist/atlas/public.d.ts +2 -1
- package/dist/atlas/public.d.ts.map +1 -1
- package/dist/atlas/public.js +2 -1
- package/dist/atlas/public.js.map +1 -1
- package/dist/atlas/regime.d.ts +1 -1
- package/dist/atlas/regime.d.ts.map +1 -1
- package/dist/atlas/regime.js +1 -1
- package/dist/atlas/regime.js.map +1 -1
- package/dist/atlas/serialize.d.ts +18 -12
- package/dist/atlas/serialize.d.ts.map +1 -1
- package/dist/atlas/serialize.js +28 -18
- package/dist/atlas/serialize.js.map +1 -1
- package/dist/atlas/statement.js.map +1 -1
- package/dist/atlas/text-overlap.d.ts +23 -0
- package/dist/atlas/text-overlap.d.ts.map +1 -0
- package/dist/atlas/text-overlap.js +41 -0
- package/dist/atlas/text-overlap.js.map +1 -0
- package/dist/atlas/translation-registry.js.map +1 -1
- package/dist/atlas/translation.js.map +1 -1
- package/dist/atlas/types.d.ts +9 -2
- package/dist/atlas/types.d.ts.map +1 -1
- package/dist/atlas/types.js +1 -1
- package/dist/atlas/types.js.map +1 -1
- package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
- package/dist/atlas/waves/bridges-closure.js +2 -9
- package/dist/atlas/waves/bridges-closure.js.map +1 -1
- package/dist/atlas/waves/bridges.d.ts.map +1 -1
- package/dist/atlas/waves/bridges.js +32 -52
- package/dist/atlas/waves/bridges.js.map +1 -1
- package/dist/atlas/waves/index.d.ts +1 -1
- package/dist/atlas/waves/index.d.ts.map +1 -1
- package/dist/atlas/waves/index.js.map +1 -1
- package/dist/atlas/waves/models.d.ts +5 -6
- package/dist/atlas/waves/models.d.ts.map +1 -1
- package/dist/atlas/waves/models.js +7 -13
- package/dist/atlas/waves/models.js.map +1 -1
- package/dist/atlas/waves/numerics.d.ts.map +1 -1
- package/dist/atlas/waves/numerics.js +10 -3
- package/dist/atlas/waves/numerics.js.map +1 -1
- package/dist/atlas/witness-artifact.js.map +1 -1
- package/dist/atlas/witness-dominance.d.ts +4 -3
- package/dist/atlas/witness-dominance.d.ts.map +1 -1
- package/dist/atlas/witness-dominance.js +15 -5
- package/dist/atlas/witness-dominance.js.map +1 -1
- package/dist/atlas/witness-numeric.d.ts +38 -4
- package/dist/atlas/witness-numeric.d.ts.map +1 -1
- package/dist/atlas/witness-numeric.js +80 -2
- package/dist/atlas/witness-numeric.js.map +1 -1
- package/dist/atlas/witness-result.d.ts +7 -1
- package/dist/atlas/witness-result.d.ts.map +1 -1
- package/dist/atlas/witness-result.js.map +1 -1
- package/dist/atlas/witness-specs.d.ts.map +1 -1
- package/dist/atlas/witness-specs.js +19 -0
- package/dist/atlas/witness-specs.js.map +1 -1
- package/dist/atlas/witness-symbolic.d.ts +75 -3
- package/dist/atlas/witness-symbolic.d.ts.map +1 -1
- package/dist/atlas/witness-symbolic.js +116 -10
- package/dist/atlas/witness-symbolic.js.map +1 -1
- package/dist/atlas/witnesses/quantum-support.js.map +1 -1
- package/dist/bridges/caller-table.d.ts +1 -1
- package/dist/bridges/caller-table.d.ts.map +1 -1
- package/dist/bridges/caller-table.js.map +1 -1
- package/dist/bridges/carrier-sign.d.ts.map +1 -1
- package/dist/bridges/carrier-sign.js +8 -3
- package/dist/bridges/carrier-sign.js.map +1 -1
- package/dist/bridges/catalog-adapter.d.ts +12 -3
- package/dist/bridges/catalog-adapter.d.ts.map +1 -1
- package/dist/bridges/catalog-adapter.js +17 -9
- package/dist/bridges/catalog-adapter.js.map +1 -1
- package/dist/bridges/catalog-load.d.ts +12 -2
- package/dist/bridges/catalog-load.d.ts.map +1 -1
- package/dist/bridges/catalog-load.js +181 -13
- package/dist/bridges/catalog-load.js.map +1 -1
- package/dist/bridges/catalog-types.d.ts +74 -26
- package/dist/bridges/catalog-types.d.ts.map +1 -1
- package/dist/bridges/catalog-types.js +11 -1
- package/dist/bridges/catalog-types.js.map +1 -1
- package/dist/bridges/coefficient-statement.js +1 -5
- package/dist/bridges/coefficient-statement.js.map +1 -1
- package/dist/bridges/confrontation-coverage.js.map +1 -1
- package/dist/bridges/confrontations.d.ts +1 -1
- package/dist/bridges/confrontations.d.ts.map +1 -1
- package/dist/bridges/confrontations.js +1 -1
- package/dist/bridges/confrontations.js.map +1 -1
- package/dist/bridges/evaluation-errors.d.ts +46 -3
- package/dist/bridges/evaluation-errors.d.ts.map +1 -1
- package/dist/bridges/evaluation-errors.js +40 -4
- package/dist/bridges/evaluation-errors.js.map +1 -1
- package/dist/bridges/evaluator-inputs.d.ts.map +1 -1
- package/dist/bridges/evaluator-inputs.js +7 -5
- package/dist/bridges/evaluator-inputs.js.map +1 -1
- package/dist/bridges/evaluators.d.ts +17 -2
- package/dist/bridges/evaluators.d.ts.map +1 -1
- package/dist/bridges/evaluators.js +76 -28
- package/dist/bridges/evaluators.js.map +1 -1
- package/dist/bridges/expr-parse.d.ts +38 -4
- package/dist/bridges/expr-parse.d.ts.map +1 -1
- package/dist/bridges/expr-parse.js +101 -12
- package/dist/bridges/expr-parse.js.map +1 -1
- package/dist/bridges/holds.d.ts +40 -4
- package/dist/bridges/holds.d.ts.map +1 -1
- package/dist/bridges/holds.js +128 -19
- package/dist/bridges/holds.js.map +1 -1
- package/dist/bridges/index.d.ts +15 -14
- package/dist/bridges/index.d.ts.map +1 -1
- package/dist/bridges/index.js +14 -15
- package/dist/bridges/index.js.map +1 -1
- package/dist/bridges/input-contract.js.map +1 -1
- package/dist/bridges/membership.d.ts +5 -3
- package/dist/bridges/membership.d.ts.map +1 -1
- package/dist/bridges/membership.js +5 -6
- package/dist/bridges/membership.js.map +1 -1
- package/dist/bridges/notices.d.ts.map +1 -1
- package/dist/bridges/notices.js +5 -5
- package/dist/bridges/notices.js.map +1 -1
- package/dist/bridges/observations/types.js.map +1 -1
- package/dist/bridges/rejected.d.ts +11 -17
- package/dist/bridges/rejected.d.ts.map +1 -1
- package/dist/bridges/rejected.js +13 -68
- package/dist/bridges/rejected.js.map +1 -1
- package/dist/bridges/relation-eval.d.ts +6 -7
- package/dist/bridges/relation-eval.d.ts.map +1 -1
- package/dist/bridges/relation-eval.js +20 -50
- package/dist/bridges/relation-eval.js.map +1 -1
- package/dist/bridges/rhs-registry.js.map +1 -1
- package/dist/bridges/sensitivity.d.ts +11 -3
- package/dist/bridges/sensitivity.d.ts.map +1 -1
- package/dist/bridges/sensitivity.js +27 -13
- package/dist/bridges/sensitivity.js.map +1 -1
- package/dist/bridges/tensor-index.js.map +1 -1
- package/dist/bridges/types.d.ts +1 -7
- package/dist/bridges/types.d.ts.map +1 -1
- package/dist/bridges/types.js +1 -4
- package/dist/bridges/types.js.map +1 -1
- package/dist/bridges/validity.d.ts +33 -0
- package/dist/bridges/validity.d.ts.map +1 -0
- package/dist/bridges/validity.js +67 -0
- package/dist/bridges/validity.js.map +1 -0
- package/dist/canonical/canonical-equation.js.map +1 -1
- package/dist/canonical/dimensional-fields.js.map +1 -1
- package/dist/canonical/entries/_l1-build.js.map +1 -1
- package/dist/canonical/entries/atomic.js +1 -3
- package/dist/canonical/entries/atomic.js.map +1 -1
- package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
- package/dist/canonical/entries/condensed-matter.js +8 -9
- package/dist/canonical/entries/condensed-matter.js.map +1 -1
- package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
- package/dist/canonical/entries/dimensional-classics.js +5 -6
- package/dist/canonical/entries/dimensional-classics.js.map +1 -1
- package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
- package/dist/canonical/entries/electromagnetism.js +6 -12
- package/dist/canonical/entries/electromagnetism.js.map +1 -1
- package/dist/canonical/entries/fluids-waves.d.ts.map +1 -1
- package/dist/canonical/entries/fluids-waves.js +3 -7
- package/dist/canonical/entries/fluids-waves.js.map +1 -1
- package/dist/canonical/entries/mechanics.d.ts.map +1 -1
- package/dist/canonical/entries/mechanics.js +4 -6
- package/dist/canonical/entries/mechanics.js.map +1 -1
- package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
- package/dist/canonical/entries/nonmonomial.js +38 -39
- package/dist/canonical/entries/nonmonomial.js.map +1 -1
- package/dist/canonical/entries/relativity.d.ts.map +1 -1
- package/dist/canonical/entries/relativity.js +6 -6
- package/dist/canonical/entries/relativity.js.map +1 -1
- package/dist/canonical/entries/statistical-mechanics.js +5 -5
- package/dist/canonical/entries/statistical-mechanics.js.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.js +6 -10
- package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
- package/dist/canonical/fixed-points.d.ts +94 -0
- package/dist/canonical/fixed-points.d.ts.map +1 -0
- package/dist/canonical/fixed-points.js +81 -0
- package/dist/canonical/fixed-points.js.map +1 -0
- package/dist/canonical/linkage.d.ts +29 -4
- package/dist/canonical/linkage.d.ts.map +1 -1
- package/dist/canonical/linkage.js +47 -64
- package/dist/canonical/linkage.js.map +1 -1
- package/dist/canonical/normal-form.d.ts +0 -8
- package/dist/canonical/normal-form.d.ts.map +1 -1
- package/dist/canonical/normal-form.js +22 -23
- package/dist/canonical/normal-form.js.map +1 -1
- package/dist/canonical/registry.js.map +1 -1
- package/dist/canonical/residual.js.map +1 -1
- package/dist/canonical/seed-l-layer.d.ts +7 -1
- package/dist/canonical/seed-l-layer.d.ts.map +1 -1
- package/dist/canonical/seed-l-layer.js +7 -1
- package/dist/canonical/seed-l-layer.js.map +1 -1
- package/dist/canonical/structural.d.ts +42 -21
- package/dist/canonical/structural.d.ts.map +1 -1
- package/dist/canonical/structural.js +64 -23
- package/dist/canonical/structural.js.map +1 -1
- package/dist/cases/brownian-sphere.d.ts +3 -3
- package/dist/cases/brownian-sphere.d.ts.map +1 -1
- package/dist/cases/brownian-sphere.js +10 -9
- package/dist/cases/brownian-sphere.js.map +1 -1
- package/dist/cases/damped-resonator.d.ts.map +1 -1
- package/dist/cases/damped-resonator.js +8 -11
- package/dist/cases/damped-resonator.js.map +1 -1
- package/dist/cases/index.js.map +1 -1
- package/dist/cases/kepler-rv.d.ts +1 -1
- package/dist/cases/kepler-rv.d.ts.map +1 -1
- package/dist/cases/kepler-rv.js +3 -2
- package/dist/cases/kepler-rv.js.map +1 -1
- package/dist/cases/lumped-cooling.d.ts +8 -3
- package/dist/cases/lumped-cooling.d.ts.map +1 -1
- package/dist/cases/lumped-cooling.js +22 -24
- package/dist/cases/lumped-cooling.js.map +1 -1
- package/dist/cases/quadrature.d.ts +7 -9
- package/dist/cases/quadrature.d.ts.map +1 -1
- package/dist/cases/quadrature.js +28 -32
- package/dist/cases/quadrature.js.map +1 -1
- package/dist/cases/resistor-noise.js +7 -7
- package/dist/cases/resistor-noise.js.map +1 -1
- package/dist/cases/skin-depth.d.ts +0 -4
- package/dist/cases/skin-depth.d.ts.map +1 -1
- package/dist/cases/skin-depth.js +3 -7
- package/dist/cases/skin-depth.js.map +1 -1
- package/dist/cases/types.js.map +1 -1
- package/dist/cli/args.d.ts +30 -3
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +47 -9
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/bindings.d.ts +13 -0
- package/dist/cli/bindings.d.ts.map +1 -0
- package/dist/cli/bindings.js +33 -0
- package/dist/cli/bindings.js.map +1 -0
- package/dist/cli/closed-form-range.js.map +1 -1
- package/dist/cli/command.d.ts +8 -1
- package/dist/cli/command.d.ts.map +1 -1
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/commands/_atlas-map.d.ts +2 -11
- package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
- package/dist/cli/commands/_atlas-map.js +50 -35
- package/dist/cli/commands/_atlas-map.js.map +1 -1
- package/dist/cli/commands/_atlas-route.d.ts.map +1 -1
- package/dist/cli/commands/_atlas-route.js +6 -2
- package/dist/cli/commands/_atlas-route.js.map +1 -1
- package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
- package/dist/cli/commands/_discovery-opts.js +48 -14
- package/dist/cli/commands/_discovery-opts.js.map +1 -1
- package/dist/cli/commands/atlas.d.ts.map +1 -1
- package/dist/cli/commands/atlas.js +9 -8
- package/dist/cli/commands/atlas.js.map +1 -1
- package/dist/cli/commands/audit.d.ts.map +1 -1
- package/dist/cli/commands/audit.js +20 -20
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/cli/commands/axes.d.ts.map +1 -1
- package/dist/cli/commands/axes.js +20 -1
- package/dist/cli/commands/axes.js.map +1 -1
- package/dist/cli/commands/candidates.d.ts.map +1 -1
- package/dist/cli/commands/candidates.js +16 -8
- package/dist/cli/commands/candidates.js.map +1 -1
- package/dist/cli/commands/canonical.js.map +1 -1
- package/dist/cli/commands/chain.js +1 -1
- package/dist/cli/commands/chain.js.map +1 -1
- package/dist/cli/commands/confront.d.ts.map +1 -1
- package/dist/cli/commands/confront.js +22 -20
- package/dist/cli/commands/confront.js.map +1 -1
- package/dist/cli/commands/connectors.js.map +1 -1
- package/dist/cli/commands/coverage.js.map +1 -1
- package/dist/cli/commands/derive.d.ts.map +1 -1
- package/dist/cli/commands/derive.js +60 -35
- package/dist/cli/commands/derive.js.map +1 -1
- package/dist/cli/commands/discover.d.ts.map +1 -1
- package/dist/cli/commands/discover.js +20 -10
- package/dist/cli/commands/discover.js.map +1 -1
- package/dist/cli/commands/eval.d.ts.map +1 -1
- package/dist/cli/commands/eval.js +14 -10
- package/dist/cli/commands/eval.js.map +1 -1
- package/dist/cli/commands/evaluate.d.ts.map +1 -1
- package/dist/cli/commands/evaluate.js +108 -58
- package/dist/cli/commands/evaluate.js.map +1 -1
- package/dist/cli/commands/explain.d.ts.map +1 -1
- package/dist/cli/commands/explain.js +16 -8
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/frontier.js.map +1 -1
- package/dist/cli/commands/ground.d.ts.map +1 -1
- package/dist/cli/commands/ground.js +41 -10
- package/dist/cli/commands/ground.js.map +1 -1
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/map.d.ts.map +1 -1
- package/dist/cli/commands/map.js +155 -92
- package/dist/cli/commands/map.js.map +1 -1
- package/dist/cli/commands/metric.d.ts.map +1 -1
- package/dist/cli/commands/metric.js +58 -20
- package/dist/cli/commands/metric.js.map +1 -1
- package/dist/cli/commands/path.d.ts +10 -0
- package/dist/cli/commands/path.d.ts.map +1 -1
- package/dist/cli/commands/path.js +29 -7
- package/dist/cli/commands/path.js.map +1 -1
- package/dist/cli/commands/predict.js.map +1 -1
- package/dist/cli/commands/priority.js.map +1 -1
- package/dist/cli/commands/probe.d.ts.map +1 -1
- package/dist/cli/commands/probe.js +105 -38
- package/dist/cli/commands/probe.js.map +1 -1
- package/dist/cli/commands/recover.js +1 -1
- package/dist/cli/commands/recover.js.map +1 -1
- package/dist/cli/commands/regime.d.ts +5 -4
- package/dist/cli/commands/regime.d.ts.map +1 -1
- package/dist/cli/commands/regime.js +25 -26
- package/dist/cli/commands/regime.js.map +1 -1
- package/dist/cli/commands/retrieve.d.ts.map +1 -1
- package/dist/cli/commands/retrieve.js +23 -14
- package/dist/cli/commands/retrieve.js.map +1 -1
- package/dist/cli/commands/search.d.ts.map +1 -1
- package/dist/cli/commands/search.js +9 -4
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/symbolic.js +31 -36
- package/dist/cli/commands/symbolic.js.map +1 -1
- package/dist/cli/commands/testplan.d.ts.map +1 -1
- package/dist/cli/commands/testplan.js +5 -3
- package/dist/cli/commands/testplan.js.map +1 -1
- package/dist/cli/conventions.js.map +1 -1
- package/dist/cli/determination.js.map +1 -1
- package/dist/cli/errors.js.map +1 -1
- package/dist/cli/euler-guard.js.map +1 -1
- package/dist/cli/eval-numbers.js.map +1 -1
- package/dist/cli/expr-print.d.ts +28 -3
- package/dist/cli/expr-print.d.ts.map +1 -1
- package/dist/cli/expr-print.js +42 -22
- package/dist/cli/expr-print.js.map +1 -1
- package/dist/cli/flag-help.js.map +1 -1
- package/dist/cli/graphs.js.map +1 -1
- package/dist/cli/library-defaults.d.ts +19 -0
- package/dist/cli/library-defaults.d.ts.map +1 -0
- package/dist/cli/library-defaults.js +22 -0
- package/dist/cli/library-defaults.js.map +1 -0
- package/dist/cli/main.d.ts +7 -0
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +25 -6
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/map-evidence.js.map +1 -1
- package/dist/cli/numeric-flag.d.ts +12 -0
- package/dist/cli/numeric-flag.d.ts.map +1 -0
- package/dist/cli/numeric-flag.js +44 -0
- package/dist/cli/numeric-flag.js.map +1 -0
- package/dist/cli/output.d.ts +23 -6
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +15 -0
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/published-url.js.map +1 -1
- package/dist/cli/record-reach.d.ts +6 -0
- package/dist/cli/record-reach.d.ts.map +1 -1
- package/dist/cli/record-reach.js +17 -11
- package/dist/cli/record-reach.js.map +1 -1
- package/dist/cli/record-tables.d.ts.map +1 -1
- package/dist/cli/record-tables.js +7 -6
- package/dist/cli/record-tables.js.map +1 -1
- package/dist/cli/record.d.ts +1 -5
- package/dist/cli/record.d.ts.map +1 -1
- package/dist/cli/record.js +40 -20
- package/dist/cli/record.js.map +1 -1
- package/dist/cli/search-index.d.ts +5 -0
- package/dist/cli/search-index.d.ts.map +1 -1
- package/dist/cli/search-index.js +19 -7
- package/dist/cli/search-index.js.map +1 -1
- package/dist/cli/statuses.d.ts +0 -2
- package/dist/cli/statuses.d.ts.map +1 -1
- package/dist/cli/statuses.js +0 -7
- package/dist/cli/statuses.js.map +1 -1
- package/dist/cli/stored-results.d.ts +7 -0
- package/dist/cli/stored-results.d.ts.map +1 -0
- package/dist/cli/stored-results.js +23 -0
- package/dist/cli/stored-results.js.map +1 -0
- package/dist/cli/top-level-help.js.map +1 -1
- package/dist/cli/version.d.ts.map +1 -1
- package/dist/cli/version.js +7 -5
- package/dist/cli/version.js.map +1 -1
- package/dist/cli-api.d.ts +49 -14
- package/dist/cli-api.d.ts.map +1 -1
- package/dist/cli-api.js +42 -17
- package/dist/cli-api.js.map +1 -1
- package/dist/composition/adjudication.js.map +1 -1
- package/dist/composition/algebraic-equivalence.d.ts +43 -0
- package/dist/composition/algebraic-equivalence.d.ts.map +1 -0
- package/dist/composition/algebraic-equivalence.js +115 -0
- package/dist/composition/algebraic-equivalence.js.map +1 -0
- package/dist/composition/aliases.js.map +1 -1
- package/dist/composition/audit-coverage.d.ts +2 -0
- package/dist/composition/audit-coverage.d.ts.map +1 -1
- package/dist/composition/audit-coverage.js.map +1 -1
- package/dist/composition/axes.d.ts +6 -0
- package/dist/composition/axes.d.ts.map +1 -1
- package/dist/composition/axes.js +18 -6
- package/dist/composition/axes.js.map +1 -1
- package/dist/composition/axis-audit.d.ts +47 -20
- package/dist/composition/axis-audit.d.ts.map +1 -1
- package/dist/composition/axis-audit.js +82 -9
- package/dist/composition/axis-audit.js.map +1 -1
- package/dist/composition/bridge-analysis.d.ts +14 -15
- package/dist/composition/bridge-analysis.d.ts.map +1 -1
- package/dist/composition/bridge-analysis.js +148 -91
- package/dist/composition/bridge-analysis.js.map +1 -1
- package/dist/composition/bridge-prediction.d.ts +5 -1
- package/dist/composition/bridge-prediction.d.ts.map +1 -1
- package/dist/composition/bridge-prediction.js +12 -16
- package/dist/composition/bridge-prediction.js.map +1 -1
- package/dist/composition/buckingham-filter.js.map +1 -1
- package/dist/composition/canonical-compare.d.ts +40 -0
- package/dist/composition/canonical-compare.d.ts.map +1 -1
- package/dist/composition/canonical-compare.js +134 -26
- package/dist/composition/canonical-compare.js.map +1 -1
- package/dist/composition/canonical-graph.d.ts +9 -10
- package/dist/composition/canonical-graph.d.ts.map +1 -1
- package/dist/composition/canonical-graph.js +33 -102
- package/dist/composition/canonical-graph.js.map +1 -1
- package/dist/composition/canonical-json.js +2 -2
- package/dist/composition/canonical-json.js.map +1 -1
- package/dist/composition/canonical-prefactors.js.map +1 -1
- package/dist/composition/catalog-graph.d.ts.map +1 -1
- package/dist/composition/catalog-graph.js +8 -25
- package/dist/composition/catalog-graph.js.map +1 -1
- package/dist/composition/chain-candidate.d.ts +10 -0
- package/dist/composition/chain-candidate.d.ts.map +1 -1
- package/dist/composition/chain-candidate.js +11 -2
- package/dist/composition/chain-candidate.js.map +1 -1
- package/dist/composition/chain-match.d.ts +6 -3
- package/dist/composition/chain-match.d.ts.map +1 -1
- package/dist/composition/chain-match.js +4 -1
- package/dist/composition/chain-match.js.map +1 -1
- package/dist/composition/chain-regime.js.map +1 -1
- package/dist/composition/chain-result.d.ts.map +1 -1
- package/dist/composition/chain-result.js +2 -14
- package/dist/composition/chain-result.js.map +1 -1
- package/dist/composition/compose-surface.js.map +1 -1
- package/dist/composition/compose-symbolic.d.ts.map +1 -1
- package/dist/composition/compose-symbolic.js +3 -2
- package/dist/composition/compose-symbolic.js.map +1 -1
- package/dist/composition/compose.d.ts.map +1 -1
- package/dist/composition/compose.js +166 -41
- package/dist/composition/compose.js.map +1 -1
- package/dist/composition/composition-recovery.d.ts.map +1 -1
- package/dist/composition/composition-recovery.js +4 -7
- package/dist/composition/composition-recovery.js.map +1 -1
- package/dist/composition/consequence.d.ts.map +1 -1
- package/dist/composition/consequence.js +15 -6
- package/dist/composition/consequence.js.map +1 -1
- package/dist/composition/consistency.js.map +1 -1
- package/dist/composition/descriptor.d.ts +1 -1
- package/dist/composition/descriptor.d.ts.map +1 -1
- package/dist/composition/descriptor.js.map +1 -1
- package/dist/composition/dimension-adjacency.js.map +1 -1
- package/dist/composition/discovery.d.ts +77 -11
- package/dist/composition/discovery.d.ts.map +1 -1
- package/dist/composition/discovery.js +194 -80
- package/dist/composition/discovery.js.map +1 -1
- package/dist/composition/edge.d.ts +40 -10
- package/dist/composition/edge.d.ts.map +1 -1
- package/dist/composition/edge.js +47 -12
- package/dist/composition/edge.js.map +1 -1
- package/dist/composition/enumerate.d.ts +2 -2
- package/dist/composition/enumerate.d.ts.map +1 -1
- package/dist/composition/enumerate.js +18 -3
- package/dist/composition/enumerate.js.map +1 -1
- package/dist/composition/evaluate-relation.d.ts +35 -11
- package/dist/composition/evaluate-relation.d.ts.map +1 -1
- package/dist/composition/evaluate-relation.js +60 -39
- package/dist/composition/evaluate-relation.js.map +1 -1
- package/dist/composition/explain.d.ts +5 -9
- package/dist/composition/explain.d.ts.map +1 -1
- package/dist/composition/explain.js +38 -18
- package/dist/composition/explain.js.map +1 -1
- package/dist/composition/expr-eval.d.ts.map +1 -1
- package/dist/composition/expr-eval.js +2 -11
- package/dist/composition/expr-eval.js.map +1 -1
- package/dist/composition/expr-simplify.d.ts +16 -0
- package/dist/composition/expr-simplify.d.ts.map +1 -1
- package/dist/composition/expr-simplify.js +24 -59
- package/dist/composition/expr-simplify.js.map +1 -1
- package/dist/composition/expr-subst.js.map +1 -1
- package/dist/composition/formula-shape.d.ts +28 -0
- package/dist/composition/formula-shape.d.ts.map +1 -1
- package/dist/composition/formula-shape.js +96 -2
- package/dist/composition/formula-shape.js.map +1 -1
- package/dist/composition/frontier-account.d.ts +3 -2
- package/dist/composition/frontier-account.d.ts.map +1 -1
- package/dist/composition/frontier-account.js +7 -3
- package/dist/composition/frontier-account.js.map +1 -1
- package/dist/composition/graph-structure.d.ts +98 -0
- package/dist/composition/graph-structure.d.ts.map +1 -0
- package/dist/composition/graph-structure.js +167 -0
- package/dist/composition/graph-structure.js.map +1 -0
- package/dist/composition/graph-viz-svg.d.ts.map +1 -1
- package/dist/composition/graph-viz-svg.js +1 -1
- package/dist/composition/graph-viz-svg.js.map +1 -1
- package/dist/composition/graph-viz.d.ts.map +1 -1
- package/dist/composition/graph-viz.js +8 -37
- package/dist/composition/graph-viz.js.map +1 -1
- package/dist/composition/grounding.js.map +1 -1
- package/dist/composition/identifiability.d.ts +91 -4
- package/dist/composition/identifiability.d.ts.map +1 -1
- package/dist/composition/identifiability.js +363 -6
- package/dist/composition/identifiability.js.map +1 -1
- package/dist/composition/index.d.ts +14 -8
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +7 -5
- package/dist/composition/index.js.map +1 -1
- package/dist/composition/mathts-quiet.d.ts +29 -0
- package/dist/composition/mathts-quiet.d.ts.map +1 -0
- package/dist/composition/mathts-quiet.js +57 -0
- package/dist/composition/mathts-quiet.js.map +1 -0
- package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
- package/dist/composition/mathts-scalar-symbols.js +20 -35
- package/dist/composition/mathts-scalar-symbols.js.map +1 -1
- package/dist/composition/not-composable-seeds.d.ts +3 -1
- package/dist/composition/not-composable-seeds.d.ts.map +1 -1
- package/dist/composition/not-composable-seeds.js +2 -0
- package/dist/composition/not-composable-seeds.js.map +1 -1
- package/dist/composition/probe/backend-protocol.js.map +1 -1
- package/dist/composition/probe/candidate-store.js.map +1 -1
- package/dist/composition/probe/corpus.d.ts +4 -2
- package/dist/composition/probe/corpus.d.ts.map +1 -1
- package/dist/composition/probe/corpus.js +20 -9
- package/dist/composition/probe/corpus.js.map +1 -1
- package/dist/composition/probe/dataset.d.ts +17 -0
- package/dist/composition/probe/dataset.d.ts.map +1 -1
- package/dist/composition/probe/dataset.js +95 -50
- package/dist/composition/probe/dataset.js.map +1 -1
- package/dist/composition/probe/experiment-design.d.ts +5 -1
- package/dist/composition/probe/experiment-design.d.ts.map +1 -1
- package/dist/composition/probe/experiment-design.js +44 -24
- package/dist/composition/probe/experiment-design.js.map +1 -1
- package/dist/composition/probe/expression-gaps.js.map +1 -1
- package/dist/composition/probe/falsify.d.ts +14 -3
- package/dist/composition/probe/falsify.d.ts.map +1 -1
- package/dist/composition/probe/falsify.js +16 -27
- package/dist/composition/probe/falsify.js.map +1 -1
- package/dist/composition/probe/fingerprint.js.map +1 -1
- package/dist/composition/probe/fit.d.ts +7 -1
- package/dist/composition/probe/fit.d.ts.map +1 -1
- package/dist/composition/probe/fit.js +48 -23
- package/dist/composition/probe/fit.js.map +1 -1
- package/dist/composition/probe/frontier.d.ts.map +1 -1
- package/dist/composition/probe/frontier.js +33 -15
- package/dist/composition/probe/frontier.js.map +1 -1
- package/dist/composition/probe/generator.d.ts +27 -1
- package/dist/composition/probe/generator.d.ts.map +1 -1
- package/dist/composition/probe/generator.js +53 -30
- package/dist/composition/probe/generator.js.map +1 -1
- package/dist/composition/probe/index.d.ts +18 -2
- package/dist/composition/probe/index.d.ts.map +1 -1
- package/dist/composition/probe/index.js +10 -2
- package/dist/composition/probe/index.js.map +1 -1
- package/dist/composition/probe/limits.d.ts +24 -1
- package/dist/composition/probe/limits.d.ts.map +1 -1
- package/dist/composition/probe/limits.js +53 -11
- package/dist/composition/probe/limits.js.map +1 -1
- package/dist/composition/probe/metadata.js.map +1 -1
- package/dist/composition/probe/pipeline.d.ts +5 -0
- package/dist/composition/probe/pipeline.d.ts.map +1 -1
- package/dist/composition/probe/pipeline.js +22 -9
- package/dist/composition/probe/pipeline.js.map +1 -1
- package/dist/composition/probe/power-law.d.ts +121 -0
- package/dist/composition/probe/power-law.d.ts.map +1 -0
- package/dist/composition/probe/power-law.js +255 -0
- package/dist/composition/probe/power-law.js.map +1 -0
- package/dist/composition/probe/problem.d.ts +12 -1
- package/dist/composition/probe/problem.d.ts.map +1 -1
- package/dist/composition/probe/problem.js +242 -48
- package/dist/composition/probe/problem.js.map +1 -1
- package/dist/composition/probe/report.js +1 -1
- package/dist/composition/probe/report.js.map +1 -1
- package/dist/composition/probe/residual.d.ts +6 -1
- package/dist/composition/probe/residual.d.ts.map +1 -1
- package/dist/composition/probe/residual.js +9 -7
- package/dist/composition/probe/residual.js.map +1 -1
- package/dist/composition/probe/run-manifest.js +2 -2
- package/dist/composition/probe/run-manifest.js.map +1 -1
- package/dist/composition/probe/scoring.d.ts +2 -1
- package/dist/composition/probe/scoring.d.ts.map +1 -1
- package/dist/composition/probe/scoring.js +21 -7
- package/dist/composition/probe/scoring.js.map +1 -1
- package/dist/composition/probe/search-budget.js.map +1 -1
- package/dist/composition/probe/serialize.js.map +1 -1
- package/dist/composition/probe/structure.d.ts +82 -17
- package/dist/composition/probe/structure.d.ts.map +1 -1
- package/dist/composition/probe/structure.js +129 -55
- package/dist/composition/probe/structure.js.map +1 -1
- package/dist/composition/probe/study.d.ts +35 -12
- package/dist/composition/probe/study.d.ts.map +1 -1
- package/dist/composition/probe/study.js +241 -184
- package/dist/composition/probe/study.js.map +1 -1
- package/dist/composition/probe/t-tail.d.ts +17 -0
- package/dist/composition/probe/t-tail.d.ts.map +1 -0
- package/dist/composition/probe/t-tail.js +32 -0
- package/dist/composition/probe/t-tail.js.map +1 -0
- package/dist/composition/probe/types.d.ts +6 -1
- package/dist/composition/probe/types.d.ts.map +1 -1
- package/dist/composition/probe/types.js +2 -0
- package/dist/composition/probe/types.js.map +1 -1
- package/dist/composition/proposed-bridges.d.ts +51 -13
- package/dist/composition/proposed-bridges.d.ts.map +1 -1
- package/dist/composition/proposed-bridges.js +110 -58
- package/dist/composition/proposed-bridges.js.map +1 -1
- package/dist/composition/quantities.d.ts +0 -4
- package/dist/composition/quantities.d.ts.map +1 -1
- package/dist/composition/quantities.js +5 -5
- package/dist/composition/quantities.js.map +1 -1
- package/dist/composition/quantity-clusters.d.ts +48 -0
- package/dist/composition/quantity-clusters.d.ts.map +1 -0
- package/dist/composition/quantity-clusters.js +98 -0
- package/dist/composition/quantity-clusters.js.map +1 -0
- package/dist/composition/quantity.d.ts +18 -2
- package/dist/composition/quantity.d.ts.map +1 -1
- package/dist/composition/quantity.js +35 -6
- package/dist/composition/quantity.js.map +1 -1
- package/dist/composition/rational-exponent.d.ts +40 -0
- package/dist/composition/rational-exponent.d.ts.map +1 -0
- package/dist/composition/rational-exponent.js +65 -0
- package/dist/composition/rational-exponent.js.map +1 -0
- package/dist/composition/representative-values.d.ts +22 -0
- package/dist/composition/representative-values.d.ts.map +1 -1
- package/dist/composition/representative-values.js +23 -0
- package/dist/composition/representative-values.js.map +1 -1
- package/dist/composition/retrodiction.d.ts +16 -6
- package/dist/composition/retrodiction.d.ts.map +1 -1
- package/dist/composition/retrodiction.js +36 -10
- package/dist/composition/retrodiction.js.map +1 -1
- package/dist/composition/uncertainty.js.map +1 -1
- package/dist/composition/user-equation.d.ts.map +1 -1
- package/dist/composition/user-equation.js +2 -2
- package/dist/composition/user-equation.js.map +1 -1
- package/dist/core/assignment.d.ts +19 -0
- package/dist/core/assignment.d.ts.map +1 -0
- package/dist/core/assignment.js +19 -0
- package/dist/core/assignment.js.map +1 -0
- package/dist/core/axes-registry.d.ts +8 -5
- package/dist/core/axes-registry.d.ts.map +1 -1
- package/dist/core/axes-registry.js.map +1 -1
- package/dist/core/cell.js.map +1 -1
- package/dist/core/compare.d.ts +32 -0
- package/dist/core/compare.d.ts.map +1 -0
- package/dist/core/compare.js +46 -0
- package/dist/core/compare.js.map +1 -0
- package/dist/core/constants.d.ts +35 -35
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +52 -37
- package/dist/core/constants.js.map +1 -1
- package/dist/core/data-file.d.ts +7 -0
- package/dist/core/data-file.d.ts.map +1 -1
- package/dist/core/data-file.js +17 -0
- package/dist/core/data-file.js.map +1 -1
- package/dist/core/flux-rules.js +1 -1
- package/dist/core/flux-rules.js.map +1 -1
- package/dist/core/format.d.ts +36 -0
- package/dist/core/format.d.ts.map +1 -0
- package/dist/core/format.js +39 -0
- package/dist/core/format.js.map +1 -0
- package/dist/core/hash.d.ts +14 -0
- package/dist/core/hash.d.ts.map +1 -0
- package/dist/core/hash.js +17 -0
- package/dist/core/hash.js.map +1 -0
- package/dist/core/json-schema.d.ts +3 -1
- package/dist/core/json-schema.d.ts.map +1 -1
- package/dist/core/json-schema.js +41 -16
- package/dist/core/json-schema.js.map +1 -1
- package/dist/core/labeled-tensor.d.ts +6 -1
- package/dist/core/labeled-tensor.d.ts.map +1 -1
- package/dist/core/labeled-tensor.js +18 -16
- package/dist/core/labeled-tensor.js.map +1 -1
- package/dist/core/mathts-read.d.ts +25 -0
- package/dist/core/mathts-read.d.ts.map +1 -0
- package/dist/core/mathts-read.js +51 -0
- package/dist/core/mathts-read.js.map +1 -0
- package/dist/core/regime-registry.d.ts +6 -2
- package/dist/core/regime-registry.d.ts.map +1 -1
- package/dist/core/regime-registry.js.map +1 -1
- package/dist/core/regime-rule-install.js.map +1 -1
- package/dist/core/regimes-builtins.js.map +1 -1
- package/dist/core/tensor.d.ts +7 -4
- package/dist/core/tensor.d.ts.map +1 -1
- package/dist/core/tensor.js +64 -8
- package/dist/core/tensor.js.map +1 -1
- package/dist/core/types.d.ts +5 -5
- package/dist/core/types.js.map +1 -1
- package/dist/core/universal-index.js.map +1 -1
- package/dist/diff/bridge-ast-gradient.d.ts +4 -5
- package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-ast-gradient.js +10 -6
- package/dist/diff/bridge-ast-gradient.js.map +1 -1
- package/dist/diff/bridge-gradient.d.ts +43 -86
- package/dist/diff/bridge-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-gradient.js +40 -109
- package/dist/diff/bridge-gradient.js.map +1 -1
- package/dist/diff/bridge-specs.d.ts +16 -5
- package/dist/diff/bridge-specs.d.ts.map +1 -1
- package/dist/diff/bridge-specs.js +19 -4
- package/dist/diff/bridge-specs.js.map +1 -1
- package/dist/dimensional/algebra.d.ts +18 -0
- package/dist/dimensional/algebra.d.ts.map +1 -1
- package/dist/dimensional/algebra.js +41 -1
- package/dist/dimensional/algebra.js.map +1 -1
- package/dist/dimensional/ast-builders.d.ts +12 -4
- package/dist/dimensional/ast-builders.d.ts.map +1 -1
- package/dist/dimensional/ast-builders.js +17 -5
- package/dist/dimensional/ast-builders.js.map +1 -1
- package/dist/dimensional/ast-leaves.d.ts +81 -0
- package/dist/dimensional/ast-leaves.d.ts.map +1 -0
- package/dist/dimensional/ast-leaves.js +146 -0
- package/dist/dimensional/ast-leaves.js.map +1 -0
- package/dist/dimensional/ast-types.js.map +1 -1
- package/dist/dimensional/bridge-check.js.map +1 -1
- package/dist/dimensional/buckingham.d.ts.map +1 -1
- package/dist/dimensional/buckingham.js +15 -27
- package/dist/dimensional/buckingham.js.map +1 -1
- package/dist/dimensional/connection-validators.d.ts +2 -1
- package/dist/dimensional/connection-validators.d.ts.map +1 -1
- package/dist/dimensional/connection-validators.js.map +1 -1
- package/dist/dimensional/connection.js.map +1 -1
- package/dist/dimensional/constant-rows.d.ts.map +1 -1
- package/dist/dimensional/constant-rows.js +17 -13
- package/dist/dimensional/constant-rows.js.map +1 -1
- package/dist/dimensional/constants.d.ts +5 -6
- package/dist/dimensional/constants.d.ts.map +1 -1
- package/dist/dimensional/constants.js +5 -6
- package/dist/dimensional/constants.js.map +1 -1
- package/dist/dimensional/curvature-composite.js.map +1 -1
- package/dist/dimensional/curvature-invariants.js.map +1 -1
- package/dist/dimensional/curvature.js.map +1 -1
- package/dist/dimensional/dimension-inference.d.ts.map +1 -1
- package/dist/dimensional/dimension-inference.js +1 -2
- package/dist/dimensional/dimension-inference.js.map +1 -1
- package/dist/dimensional/dimension-spec.d.ts +13 -7
- package/dist/dimensional/dimension-spec.d.ts.map +1 -1
- package/dist/dimensional/dimension-spec.js +49 -23
- package/dist/dimensional/dimension-spec.js.map +1 -1
- package/dist/dimensional/einstein-equation.js.map +1 -1
- package/dist/dimensional/errors.d.ts +4 -2
- package/dist/dimensional/errors.d.ts.map +1 -1
- package/dist/dimensional/errors.js +3 -17
- package/dist/dimensional/errors.js.map +1 -1
- package/dist/dimensional/exact-scale.d.ts +0 -17
- package/dist/dimensional/exact-scale.d.ts.map +1 -1
- package/dist/dimensional/exact-scale.js +8 -8
- package/dist/dimensional/exact-scale.js.map +1 -1
- package/dist/dimensional/field-equation-helpers.js.map +1 -1
- package/dist/dimensional/formula-names.js.map +1 -1
- package/dist/dimensional/fresh-label.js.map +1 -1
- package/dist/dimensional/friedmann-equation.d.ts +3 -3
- package/dist/dimensional/friedmann-equation.js +3 -3
- package/dist/dimensional/friedmann-equation.js.map +1 -1
- package/dist/dimensional/gauge-field.d.ts +2 -3
- package/dist/dimensional/gauge-field.d.ts.map +1 -1
- package/dist/dimensional/gauge-field.js +2 -3
- package/dist/dimensional/gauge-field.js.map +1 -1
- package/dist/dimensional/hyphen-names.d.ts +12 -2
- package/dist/dimensional/hyphen-names.d.ts.map +1 -1
- package/dist/dimensional/hyphen-names.js +45 -12
- package/dist/dimensional/hyphen-names.js.map +1 -1
- package/dist/dimensional/killing-validators.js.map +1 -1
- package/dist/dimensional/klein-gordon-equation.js.map +1 -1
- package/dist/dimensional/metric-validators.d.ts +2 -1
- package/dist/dimensional/metric-validators.d.ts.map +1 -1
- package/dist/dimensional/metric-validators.js.map +1 -1
- package/dist/dimensional/metric.d.ts.map +1 -1
- package/dist/dimensional/metric.js +0 -1
- package/dist/dimensional/metric.js.map +1 -1
- package/dist/dimensional/natural-units.js.map +1 -1
- package/dist/dimensional/quantity-registry.d.ts +13 -0
- package/dist/dimensional/quantity-registry.d.ts.map +1 -1
- package/dist/dimensional/quantity-registry.js +14 -6
- package/dist/dimensional/quantity-registry.js.map +1 -1
- package/dist/dimensional/rg-flow.js.map +1 -1
- package/dist/dimensional/stress-energy-validators.js.map +1 -1
- package/dist/dimensional/symbolic-constants.d.ts +9 -0
- package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
- package/dist/dimensional/symbolic-constants.js +20 -3
- package/dist/dimensional/symbolic-constants.js.map +1 -1
- package/dist/dimensional/tensor-trace.js.map +1 -1
- package/dist/dimensional/tensor.js.map +1 -1
- package/dist/dimensional/types.d.ts +36 -0
- package/dist/dimensional/types.d.ts.map +1 -1
- package/dist/dimensional/types.js +45 -7
- package/dist/dimensional/types.js.map +1 -1
- package/dist/dimensional/unit-convention.d.ts +0 -2
- package/dist/dimensional/unit-convention.d.ts.map +1 -1
- package/dist/dimensional/unit-convention.js +2 -2
- package/dist/dimensional/unit-convention.js.map +1 -1
- package/dist/dimensional/unit-data.d.ts.map +1 -1
- package/dist/dimensional/unit-data.js +11 -7
- package/dist/dimensional/unit-data.js.map +1 -1
- package/dist/dimensional/units.d.ts.map +1 -1
- package/dist/dimensional/units.js +38 -20
- package/dist/dimensional/units.js.map +1 -1
- package/dist/dimensional/validator-registry.js.map +1 -1
- package/dist/dimensional/validator.d.ts +0 -16
- package/dist/dimensional/validator.d.ts.map +1 -1
- package/dist/dimensional/validator.js +65 -29
- package/dist/dimensional/validator.js.map +1 -1
- package/dist/dimensional/weyl-validators.js.map +1 -1
- package/dist/index.d.ts +59 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -24
- package/dist/index.js.map +1 -1
- package/dist/numerical/bianchi-residual.js.map +1 -1
- package/dist/numerical/binding-value.d.ts +11 -6
- package/dist/numerical/binding-value.d.ts.map +1 -1
- package/dist/numerical/binding-value.js +126 -122
- package/dist/numerical/binding-value.js.map +1 -1
- package/dist/numerical/christoffel-flat.d.ts.map +1 -1
- package/dist/numerical/christoffel-flat.js +3 -2
- package/dist/numerical/christoffel-flat.js.map +1 -1
- package/dist/numerical/connection-lowering-helpers.js.map +1 -1
- package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
- package/dist/numerical/covariant-eikonal.js +36 -13
- package/dist/numerical/covariant-eikonal.js.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.d.ts +20 -0
- package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +9 -5
- package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
- package/dist/numerical/derivative-lowering.js.map +1 -1
- package/dist/numerical/einstein-equation.js.map +1 -1
- package/dist/numerical/engine-registry.js.map +1 -1
- package/dist/numerical/errors.d.ts +7 -3
- package/dist/numerical/errors.d.ts.map +1 -1
- package/dist/numerical/errors.js +5 -8
- package/dist/numerical/errors.js.map +1 -1
- package/dist/numerical/evaluator-uncertainty.d.ts.map +1 -1
- package/dist/numerical/evaluator-uncertainty.js +19 -2
- package/dist/numerical/evaluator-uncertainty.js.map +1 -1
- package/dist/numerical/finite-difference.d.ts +22 -0
- package/dist/numerical/finite-difference.d.ts.map +1 -0
- package/dist/numerical/finite-difference.js +27 -0
- package/dist/numerical/finite-difference.js.map +1 -0
- package/dist/numerical/formula-contract.d.ts +63 -7
- package/dist/numerical/formula-contract.d.ts.map +1 -1
- package/dist/numerical/formula-contract.js +61 -42
- package/dist/numerical/formula-contract.js.map +1 -1
- package/dist/numerical/formula-dimension.d.ts +8 -7
- package/dist/numerical/formula-dimension.d.ts.map +1 -1
- package/dist/numerical/formula-dimension.js +58 -36
- package/dist/numerical/formula-dimension.js.map +1 -1
- package/dist/numerical/formula-mathts.d.ts.map +1 -1
- package/dist/numerical/formula-mathts.js +5 -2
- package/dist/numerical/formula-mathts.js.map +1 -1
- package/dist/numerical/formula-registry.d.ts +13 -3
- package/dist/numerical/formula-registry.d.ts.map +1 -1
- package/dist/numerical/formula-registry.js +7 -2
- package/dist/numerical/formula-registry.js.map +1 -1
- package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
- package/dist/numerical/geodesic-integrator.js +22 -14
- package/dist/numerical/geodesic-integrator.js.map +1 -1
- package/dist/numerical/geometrized.d.ts.map +1 -1
- package/dist/numerical/geometrized.js +0 -1
- package/dist/numerical/geometrized.js.map +1 -1
- package/dist/numerical/gl4-integrator.d.ts +28 -27
- package/dist/numerical/gl4-integrator.d.ts.map +1 -1
- package/dist/numerical/gl4-integrator.js +41 -42
- package/dist/numerical/gl4-integrator.js.map +1 -1
- package/dist/numerical/grid-field.js.map +1 -1
- package/dist/numerical/index.js.map +1 -1
- package/dist/numerical/input-validation.d.ts +3 -6
- package/dist/numerical/input-validation.d.ts.map +1 -1
- package/dist/numerical/input-validation.js +4 -8
- package/dist/numerical/input-validation.js.map +1 -1
- package/dist/numerical/killing.d.ts +8 -5
- package/dist/numerical/killing.d.ts.map +1 -1
- package/dist/numerical/killing.js.map +1 -1
- package/dist/numerical/klein-gordon.js.map +1 -1
- package/dist/numerical/kretschmann.js.map +1 -1
- package/dist/numerical/lowering-utils.js.map +1 -1
- package/dist/numerical/lowering.d.ts.map +1 -1
- package/dist/numerical/lowering.js +7 -17
- package/dist/numerical/lowering.js.map +1 -1
- package/dist/numerical/mathts-engine.d.ts.map +1 -1
- package/dist/numerical/mathts-engine.js +16 -25
- package/dist/numerical/mathts-engine.js.map +1 -1
- package/dist/numerical/metric-inverse.d.ts.map +1 -1
- package/dist/numerical/metric-inverse.js +83 -46
- package/dist/numerical/metric-inverse.js.map +1 -1
- package/dist/numerical/null-ic.js.map +1 -1
- package/dist/numerical/null-ray-integrator.d.ts +2 -1
- package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
- package/dist/numerical/null-ray-integrator.js +12 -12
- package/dist/numerical/null-ray-integrator.js.map +1 -1
- package/dist/numerical/painleve-gullstrand-metric.js +2 -2
- package/dist/numerical/painleve-gullstrand-metric.js.map +1 -1
- package/dist/numerical/pderiv.d.ts.map +1 -1
- package/dist/numerical/pderiv.js +9 -2
- package/dist/numerical/pderiv.js.map +1 -1
- package/dist/numerical/perihelion-finder.d.ts +0 -36
- package/dist/numerical/perihelion-finder.d.ts.map +1 -1
- package/dist/numerical/perihelion-finder.js +41 -87
- package/dist/numerical/perihelion-finder.js.map +1 -1
- package/dist/numerical/quadrature.d.ts +5 -2
- package/dist/numerical/quadrature.d.ts.map +1 -1
- package/dist/numerical/quadrature.js +19 -4
- package/dist/numerical/quadrature.js.map +1 -1
- package/dist/numerical/rk4-trajectory.d.ts +10 -0
- package/dist/numerical/rk4-trajectory.d.ts.map +1 -0
- package/dist/numerical/rk4-trajectory.js +37 -0
- package/dist/numerical/rk4-trajectory.js.map +1 -0
- package/dist/numerical/schwarzschild.d.ts +14 -0
- package/dist/numerical/schwarzschild.d.ts.map +1 -0
- package/dist/numerical/schwarzschild.js +17 -0
- package/dist/numerical/schwarzschild.js.map +1 -0
- package/dist/numerical/spacetime-metrics.d.ts +25 -19
- package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
- package/dist/numerical/spacetime-metrics.js +180 -286
- package/dist/numerical/spacetime-metrics.js.map +1 -1
- package/dist/numerical/statistics.d.ts +24 -0
- package/dist/numerical/statistics.d.ts.map +1 -0
- package/dist/numerical/statistics.js +52 -0
- package/dist/numerical/statistics.js.map +1 -0
- package/dist/numerical/strides.js.map +1 -1
- package/dist/numerical/tensor-engine.d.ts +30 -5
- package/dist/numerical/tensor-engine.d.ts.map +1 -1
- package/dist/numerical/tensor-engine.js +12 -0
- package/dist/numerical/tensor-engine.js.map +1 -1
- package/dist/numerical/types.js.map +1 -1
- package/dist/numerical/weyl-lowering.js.map +1 -1
- package/dist/relations/category.js.map +1 -1
- package/dist/relations/composition-table.d.ts +4 -4
- package/dist/relations/composition-table.js +4 -4
- package/dist/relations/composition-table.js.map +1 -1
- package/dist/relations/conventions.js.map +1 -1
- package/dist/relations/domain-regimes.js.map +1 -1
- package/dist/relations/regime-registration.js.map +1 -1
- package/dist/relations/regime-vocabularies.js.map +1 -1
- package/dist/relations/regime.d.ts +28 -8
- package/dist/relations/regime.d.ts.map +1 -1
- package/dist/relations/regime.js +44 -15
- package/dist/relations/regime.js.map +1 -1
- package/dist/relations/types.d.ts +18 -5
- package/dist/relations/types.d.ts.map +1 -1
- package/dist/relations/types.js +5 -3
- package/dist/relations/types.js.map +1 -1
- package/package.json +16 -20
- package/dist/bridges/registry.d.ts +0 -60
- package/dist/bridges/registry.d.ts.map +0 -1
- package/dist/bridges/registry.js +0 -87
- package/dist/bridges/registry.js.map +0 -1
- package/dist/cli/poster-source.d.ts +0 -154
- package/dist/cli/poster-source.d.ts.map +0 -1
- package/dist/cli/poster-source.js +0 -184
- package/dist/cli/poster-source.js.map +0 -1
package/dist/atlas/physjs-ref.js
CHANGED
|
@@ -1,70 +1,62 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Reviewed `formalRef`s keyed by
|
|
2
|
+
* Reviewed `formalRef`s keyed by this repository's Lean manifest.
|
|
3
3
|
*
|
|
4
|
-
* The
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* `
|
|
8
|
-
*
|
|
9
|
-
*
|
|
4
|
+
* The Lean proofs are this repository's `lean/` (they moved from PhysJS in
|
|
5
|
+
* 11.0.0, with their history; the `PhysJS.*` theorem names are Lean
|
|
6
|
+
* namespaces, not a dependency). The manifest file is `formal/lean/manifest.json`.
|
|
7
|
+
* `src/` cannot import a file outside its root, so `physjs-entries.generated.ts`
|
|
8
|
+
* is the table this module reads. `bun run physjs:table` writes that file from
|
|
9
|
+
* the manifest and writes nothing else. `tests/atlas/physjs-manifest.test.ts`
|
|
10
|
+
* fails when the file and that table disagree on the toolchain, a theorem, a
|
|
11
|
+
* key, or the coverage phrase. CI's `lean` job builds every file under `lean/`
|
|
12
|
+
* and audits its axioms; this module does not run Lean.
|
|
10
13
|
*
|
|
11
|
-
*
|
|
12
|
-
* the
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* `
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* included, is the manifest's own field (schema `physjs-bridge-manifest/v2`),
|
|
31
|
-
* which PhysJS reads from the kind line of the Lean file that declares the
|
|
32
|
-
* theorem; this module keeps no
|
|
33
|
-
* override and does not parse the covers line for it. The sentence that a
|
|
34
|
-
* counted covers line begins with `reduction`, `limit`, or `derivation-step`,
|
|
35
|
-
* and that a catalog entry's `formalKind` overrides that word, is the record
|
|
36
|
-
* from before that schema. A field of a manifest entry outside the
|
|
37
|
-
* base fields is a nested statement: a second theorem on the same entry,
|
|
38
|
-
* named by the field, with no key. It is recorded and compared, and it is not
|
|
39
|
-
* a `formalRef`. The generator reads it by its shape, so a new nested name
|
|
40
|
-
* needs no edit here. The sentence that the nested names are a fixed list in
|
|
41
|
-
* this module and in the generator is the record from before that change.
|
|
42
|
-
* PhysJS #66 adds be-103 through be-125. The sentence that the pin is
|
|
43
|
-
* `03e8bb77c952f720bdd2730af2afc6a7f2d36243` and that the table stops at
|
|
44
|
-
* be-102 is the record from before that pin. PhysJS #67 adds be-126 through
|
|
45
|
-
* be-133. The sentence that the pin is
|
|
46
|
-
* `d519c2c6504e7fbbd2cf6932f9e52981ce595a0f` and that the table stops at
|
|
47
|
-
* be-125 is the record from before that pin. PhysJS #68 adds be-134 through
|
|
48
|
-
* be-146. The sentence that the pin is
|
|
49
|
-
* `8515c621d1c6e6d31c2eea4467181eb85d58234b` and that the table stops at
|
|
50
|
-
* be-133 is the record from before that pin.
|
|
14
|
+
* Permalinks name `lean/<File>.lean` at the release tag `LEAN_SOURCE_TAG`
|
|
15
|
+
* (`v` and the package version), so a published version links to the proofs
|
|
16
|
+
* it shipped with. Which PhysJS pull request added which keys, and the PhysJS
|
|
17
|
+
* pins before the move, are history in `NOTES.md` and `CHANGELOG.md`.
|
|
18
|
+
*
|
|
19
|
+
* Each statement's `kind`, nested ones included, is the manifest's own field
|
|
20
|
+
* (schema `upt-lean-manifest/v1`), the kind line of the Lean file that
|
|
21
|
+
* declares the theorem (`scripts/lean-index.ts --check` compares the two);
|
|
22
|
+
* this module keeps no override
|
|
23
|
+
* and does not parse the covers line for it. A field of a manifest entry
|
|
24
|
+
* outside the base fields is a nested statement: a second theorem on the same
|
|
25
|
+
* entry, named by the field, with no key. It is recorded and compared, and it
|
|
26
|
+
* is not a `formalRef`. The generator reads it by its shape, so a new nested
|
|
27
|
+
* name needs no edit here.
|
|
28
|
+
*
|
|
29
|
+
* A reference's `fidelity` is DERIVED here, never typed on a record:
|
|
30
|
+
* `physjsFidelity` reads the reviewed-row table (`physjs-reviewed.ts`) and the
|
|
31
|
+
* sanity-lemma key list, and a key ahead of the catalog, or whose row is not
|
|
32
|
+
* in that table, is `'unreviewed'`.
|
|
51
33
|
*
|
|
52
34
|
* @module atlas/physjs-ref
|
|
53
35
|
*/
|
|
36
|
+
import { sha256Hex } from '../core/hash.js';
|
|
54
37
|
import { FORMAL_REF_KINDS } from '../relations/types.js';
|
|
55
38
|
import { catalogEntries, catalogIdNumber } from '../bridges/catalog-load.js';
|
|
56
|
-
import {
|
|
39
|
+
import { PHYSJS_REVIEWED_ROWS, PHYSJS_SANITY_LEMMA_KEYS } from './physjs-reviewed.js';
|
|
40
|
+
import { LEAN_MATHLIB, LEAN_PHYSLIB, LEAN_SOURCE_TAG, LEAN_TOOLCHAIN, PHYSJS_ENTRIES as GENERATED_PHYSJS_ENTRIES, } from './physjs-entries.generated.js';
|
|
57
41
|
/**
|
|
58
|
-
*
|
|
42
|
+
* The release tag whose `lean/` tree the permalinks name.
|
|
59
43
|
*
|
|
60
44
|
* @internal
|
|
61
45
|
*/
|
|
62
|
-
export {
|
|
46
|
+
export { LEAN_SOURCE_TAG } from './physjs-entries.generated.js';
|
|
63
47
|
/**
|
|
64
48
|
* Every reviewed PhysJS reference covers its statement only. A lemma about
|
|
65
49
|
* `bound.delta` does not certify the regime, the horizon, or the side conditions.
|
|
66
50
|
*/
|
|
67
51
|
const PHYSJS_COVERAGE = 'covers its statement only';
|
|
52
|
+
/**
|
|
53
|
+
* The axioms a complete Lean 4 proof over Mathlib may rest on. `#print axioms`
|
|
54
|
+
* of a proof with a `sorry` adds `sorryAx`, and Lean still exits 0 (TOOLS.md),
|
|
55
|
+
* so every statement's list is held to this set. The manifest records the
|
|
56
|
+
* list; CI's `lean` job audits the axioms of every declaration in `lean/`
|
|
57
|
+
* against the same set, and this module does not re-measure them.
|
|
58
|
+
*/
|
|
59
|
+
const PHYSJS_ALLOWED_AXIOMS = new Set(['propext', 'Classical.choice', 'Quot.sound']);
|
|
68
60
|
/** The fields of a manifest entry. Any other field is a nested statement. */
|
|
69
61
|
const BASE_FIELDS = new Set(['key', 'bridgeId', 'theorem', 'kind', 'covers', 'coverage', 'leanProof', 'axioms', 'imports']);
|
|
70
62
|
/** The fields of a statement, sorted. A nested field with exactly these is a statement. */
|
|
@@ -104,14 +96,14 @@ const FILE_BY_THEOREM = new Map(PHYSJS_ENTRIES.flatMap((entry) => [entry, ...ent
|
|
|
104
96
|
export function physjsTheorem(key) {
|
|
105
97
|
return entryByKey.get(key)?.theorem;
|
|
106
98
|
}
|
|
107
|
-
/** `formalRef.version`
|
|
99
|
+
/** `formalRef.version`: the release tag of `lean/` and the toolchain it builds with. */
|
|
108
100
|
function physjsVersion() {
|
|
109
|
-
return `
|
|
101
|
+
return `upt-lean@${LEAN_SOURCE_TAG} ${LEAN_TOOLCHAIN} mathlib:${LEAN_MATHLIB} physlib@${LEAN_PHYSLIB}`;
|
|
110
102
|
}
|
|
111
103
|
/**
|
|
112
|
-
* Lean file name that
|
|
104
|
+
* Lean file name under `lean/` that declares `theorem`.
|
|
113
105
|
*
|
|
114
|
-
* Read from the compiled table, which copies `formal/
|
|
106
|
+
* Read from the compiled table, which copies `formal/lean/theorem-files.json`:
|
|
115
107
|
* the file is where the theorem is declared, not its namespace
|
|
116
108
|
* (`PhysJS.Einstein.friedmann_corollary` is in `VacuumFriedmann.lean`;
|
|
117
109
|
* `PhysJS.SpringLc` is a namespace inside `OscillatorDictionary.lean`).
|
|
@@ -122,32 +114,31 @@ function physjsVersion() {
|
|
|
122
114
|
export function physjsLeanFile(theorem) {
|
|
123
115
|
const file = FILE_BY_THEOREM.get(theorem);
|
|
124
116
|
if (file === undefined)
|
|
125
|
-
throw new Error(`PhysJS theorem '${theorem}' is not a statement of the
|
|
117
|
+
throw new Error(`PhysJS theorem '${theorem}' is not a statement of the Lean manifest`);
|
|
126
118
|
return file;
|
|
127
119
|
}
|
|
128
120
|
/**
|
|
129
|
-
* Permalink to one Lean file at the
|
|
121
|
+
* Permalink to one Lean file of this repository at the release tag.
|
|
130
122
|
*
|
|
131
|
-
*
|
|
132
|
-
* of those URLs.
|
|
123
|
+
* Sources are `lean/<File>.lean`. This is the only builder of those URLs.
|
|
133
124
|
*
|
|
134
125
|
* @internal
|
|
135
126
|
*/
|
|
136
127
|
export function physjsFileUrl(file) {
|
|
137
|
-
return `https://github.com/danielsimonjr/
|
|
128
|
+
return `https://github.com/danielsimonjr/Universal-Physics-Tensor/blob/${LEAN_SOURCE_TAG}/lean/${file}`;
|
|
138
129
|
}
|
|
139
|
-
/** Permalink to the Lean file that
|
|
130
|
+
/** Permalink to the Lean file that declares `theorem`, at the release tag. */
|
|
140
131
|
function physjsStatementUrl(theorem) {
|
|
141
132
|
return physjsFileUrl(physjsLeanFile(theorem));
|
|
142
133
|
}
|
|
143
134
|
/** The highest id in the bridge catalog. */
|
|
144
135
|
const CATALOG_MAX_ID = Math.max(...catalogEntries().map((entry) => entry.id));
|
|
145
136
|
/**
|
|
146
|
-
* True when `key` is ahead of the catalog:
|
|
137
|
+
* True when `key` is ahead of the catalog: `lean/` proves the statement for a
|
|
147
138
|
* catalog id the catalog has not reached yet. That is an id above the
|
|
148
139
|
* catalog's highest, with every id between them also a key of `keys` (the
|
|
149
140
|
* manifest's), so the ahead keys are one unbroken run that starts right after
|
|
150
|
-
* the catalog. Such an entry is
|
|
141
|
+
* the catalog. Such an entry is compiled and compared, and it is not a seed
|
|
151
142
|
* and not a problem until the catalog entry exists. A missing id inside the
|
|
152
143
|
* catalog's range is not ahead, nor is an id past a gap in the run (a typo
|
|
153
144
|
* such as an extra digit), nor an atlas key.
|
|
@@ -181,26 +172,103 @@ export function physjsKeysAheadOfCatalog() {
|
|
|
181
172
|
return PHYSJS_ENTRIES.filter((entry) => physjsAheadOfCatalog(entry.key)).map((entry) => entry.key);
|
|
182
173
|
}
|
|
183
174
|
/**
|
|
184
|
-
* The
|
|
185
|
-
*
|
|
175
|
+
* The row of a manifest entry as the manifest writes it, in the shape
|
|
176
|
+
* {@link physjsRowHash} reads. @internal
|
|
177
|
+
*/
|
|
178
|
+
export function physjsManifestRow(entry) {
|
|
179
|
+
return {
|
|
180
|
+
key: entry.key,
|
|
181
|
+
theorem: entry.theorem,
|
|
182
|
+
kind: entry.kind,
|
|
183
|
+
covers: entry.covers,
|
|
184
|
+
leanProof: entry.leanProof,
|
|
185
|
+
axioms: entry.axioms,
|
|
186
|
+
nested: physjsNestedStatements(entry).nested.map((statement) => ({
|
|
187
|
+
name: statement.name,
|
|
188
|
+
theorem: statement.theorem,
|
|
189
|
+
kind: statement.kind,
|
|
190
|
+
covers: statement.covers,
|
|
191
|
+
leanProof: statement.leanProof,
|
|
192
|
+
axioms: statement.axioms,
|
|
193
|
+
})),
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* SHA-256 of one row: `[key, theorem, kind, covers, leanProof, axioms,
|
|
198
|
+
* nested[]]`, each nested statement as `[name, theorem, kind, covers,
|
|
199
|
+
* leanProof, axioms]`. A swapped theorem or key, a changed kind, a reworded
|
|
200
|
+
* covers line, a proof status, an axiom, or a nested statement changes it.
|
|
201
|
+
* This is what `physjs-reviewed.ts` pins per key.
|
|
202
|
+
*
|
|
203
|
+
* @internal
|
|
204
|
+
*/
|
|
205
|
+
export function physjsRowHash(row) {
|
|
206
|
+
const columns = [
|
|
207
|
+
row.key,
|
|
208
|
+
row.theorem,
|
|
209
|
+
row.kind,
|
|
210
|
+
row.covers,
|
|
211
|
+
row.leanProof,
|
|
212
|
+
[...row.axioms],
|
|
213
|
+
row.nested.map((n) => [n.name, n.theorem, n.kind, n.covers, n.leanProof, [...n.axioms]]),
|
|
214
|
+
];
|
|
215
|
+
return sha256Hex(JSON.stringify(columns));
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* The fidelity a manifest key earns, derived from what checks it:
|
|
219
|
+
*
|
|
220
|
+
* - `'unreviewed'` when the key is ahead of the catalog
|
|
221
|
+
* ({@link physjsAheadOfCatalog}): no bridge exists to read the row against;
|
|
222
|
+
* - `'unreviewed'` when the compiled row's hash is not the one
|
|
223
|
+
* `PHYSJS_REVIEWED_ROWS` records for the key, or the key has no entry there;
|
|
224
|
+
* - `'sanity-lemmas'` when the row is reviewed AND the key is in
|
|
225
|
+
* `PHYSJS_SANITY_LEMMA_KEYS`, whose statements
|
|
226
|
+
* `tests/atlas/formal-sanity.test.ts` instantiates on known cases;
|
|
227
|
+
* - `'reviewed-manifest'` when the row is reviewed and no sanity lemma exists.
|
|
228
|
+
*
|
|
229
|
+
* A key the manifest does not name throws, like {@link physjsFormalRef}.
|
|
230
|
+
*
|
|
231
|
+
* @internal
|
|
232
|
+
*/
|
|
233
|
+
export function physjsFidelity(key,
|
|
234
|
+
/** Defaults to the generated table. A test passes a mutated copy. */
|
|
235
|
+
compiledEntries = PHYSJS_ENTRIES) {
|
|
236
|
+
const entry = compiledEntries.find((candidate) => candidate.key === key);
|
|
237
|
+
if (entry === undefined)
|
|
238
|
+
throw new Error(`the Lean manifest has no entry for '${key}'`);
|
|
239
|
+
if (physjsAheadOfCatalog(key))
|
|
240
|
+
return 'unreviewed';
|
|
241
|
+
if (PHYSJS_REVIEWED_ROWS[key] !== physjsRowHash(entry))
|
|
242
|
+
return 'unreviewed';
|
|
243
|
+
return PHYSJS_SANITY_LEMMA_KEYS.includes(key) ? 'sanity-lemmas' : 'reviewed-manifest';
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* The reference for a manifest key, with its derived fidelity. Throws when
|
|
247
|
+
* the key is not an entry, so a typo cannot ship a bridge with no reference.
|
|
248
|
+
* A key ahead of the catalog, or whose row is not reviewed, is returned
|
|
249
|
+
* `'unreviewed'` and derives no proof tag.
|
|
186
250
|
*
|
|
187
251
|
* @internal
|
|
188
252
|
*/
|
|
189
253
|
export function physjsFormalRef(key) {
|
|
190
254
|
const entry = entryByKey.get(key);
|
|
191
255
|
if (entry === undefined)
|
|
192
|
-
throw new Error(`
|
|
256
|
+
throw new Error(`the Lean manifest has no entry for '${key}'`);
|
|
193
257
|
return {
|
|
194
258
|
system: 'lean4-physjs',
|
|
195
259
|
statement: entry.theorem,
|
|
196
260
|
version: physjsVersion(),
|
|
197
261
|
axioms: entry.axioms,
|
|
198
|
-
fidelity:
|
|
262
|
+
fidelity: physjsFidelity(key),
|
|
199
263
|
kind: entry.kind,
|
|
200
264
|
url: physjsStatementUrl(entry.theorem),
|
|
201
265
|
covers: `${entry.covers} — ${entry.coverage}`,
|
|
202
266
|
};
|
|
203
267
|
}
|
|
268
|
+
/** The axioms of a statement that are outside {@link PHYSJS_ALLOWED_AXIOMS}. */
|
|
269
|
+
function disallowedAxioms(axioms) {
|
|
270
|
+
return axioms.filter((axiom) => !PHYSJS_ALLOWED_AXIOMS.has(axiom));
|
|
271
|
+
}
|
|
204
272
|
function sameAxioms(recorded, manifest) {
|
|
205
273
|
return recorded.length === manifest.length && recorded.every((axiom, i) => axiom === manifest[i]);
|
|
206
274
|
}
|
|
@@ -222,41 +290,45 @@ function isFormalRefKind(kind) {
|
|
|
222
290
|
return typeof kind === 'string' && FORMAL_REF_KINDS.includes(kind);
|
|
223
291
|
}
|
|
224
292
|
/**
|
|
225
|
-
* Problems in the
|
|
293
|
+
* Problems in the Lean manifest against the bridges that claim to be keyed
|
|
226
294
|
* by it. Empty means every entry resolves to a `lean4-physjs` reference whose
|
|
227
|
-
* theorem, axioms,
|
|
295
|
+
* theorem, axioms, version and coverage phrase are the entry's own.
|
|
228
296
|
*
|
|
229
|
-
* A wrong
|
|
297
|
+
* A wrong toolchain, version, theorem, key or coverage phrase is a problem. A manifest
|
|
230
298
|
* entry with no bridge is a problem. A `lean4-physjs` reference with no entry
|
|
231
299
|
* is a problem: the gate does not skip that system. A nested object is kept
|
|
232
300
|
* and compared; naming it as the `formalRef` is a problem. The top-level
|
|
233
301
|
* theorem stays the reference. The reference's kind is the entry's
|
|
234
|
-
* `kind`; a kind outside the formal-reference kinds is a problem.
|
|
302
|
+
* `kind`; a kind outside the formal-reference kinds is a problem. An axiom
|
|
303
|
+
* outside {@link PHYSJS_ALLOWED_AXIOMS} on any statement is a problem. A `be-`
|
|
235
304
|
* key in the unbroken run above the catalog's highest id is ahead of the
|
|
236
305
|
* catalog and is not a problem (`physjsAheadOfCatalog`); any other key with
|
|
237
|
-
* no bridge is.
|
|
306
|
+
* no bridge is. Every structural check (fields, kinds, coverage, proof
|
|
307
|
+
* status, axioms, Lean file, compiled copy) runs for every entry, ahead keys
|
|
308
|
+
* included; only the checks against a bridge's reference are skipped for a
|
|
309
|
+
* key that has no bridge yet.
|
|
238
310
|
*
|
|
239
311
|
* @internal
|
|
240
312
|
*/
|
|
241
313
|
export function physjsManifestProblems(input) {
|
|
242
314
|
const problems = [];
|
|
243
315
|
const manifest = input.manifest;
|
|
244
|
-
if (manifest.schema !== '
|
|
245
|
-
problems.push(`manifest schema is '${manifest.schema}', expected '
|
|
246
|
-
}
|
|
247
|
-
if (manifest.commit !== PHYSJS_COMMIT) {
|
|
248
|
-
problems.push(`manifest commit is '${manifest.commit}', expected '${PHYSJS_COMMIT}'`);
|
|
316
|
+
if (manifest.schema !== 'upt-lean-manifest/v1') {
|
|
317
|
+
problems.push(`manifest schema is '${manifest.schema}', expected 'upt-lean-manifest/v1'`);
|
|
249
318
|
}
|
|
250
|
-
if (manifest.toolchain !==
|
|
251
|
-
problems.push(`manifest toolchain is '${manifest.toolchain}', expected '${
|
|
319
|
+
if (manifest.toolchain !== LEAN_TOOLCHAIN) {
|
|
320
|
+
problems.push(`manifest toolchain is '${manifest.toolchain}', expected '${LEAN_TOOLCHAIN}'`);
|
|
252
321
|
}
|
|
253
|
-
if (manifest.mathlib !==
|
|
254
|
-
problems.push(`manifest mathlib is '${manifest.mathlib}', expected '${
|
|
322
|
+
if (manifest.mathlib !== LEAN_MATHLIB) {
|
|
323
|
+
problems.push(`manifest mathlib is '${manifest.mathlib}', expected '${LEAN_MATHLIB}'`);
|
|
255
324
|
}
|
|
256
|
-
if (manifest.physlib !==
|
|
257
|
-
problems.push(`manifest physlib is '${manifest.physlib}', expected '${
|
|
325
|
+
if (manifest.physlib !== LEAN_PHYSLIB) {
|
|
326
|
+
problems.push(`manifest physlib is '${manifest.physlib}', expected '${LEAN_PHYSLIB}'`);
|
|
258
327
|
}
|
|
259
|
-
const
|
|
328
|
+
const compiledEntries = input.compiledEntries ?? PHYSJS_ENTRIES;
|
|
329
|
+
const compiledByKey = new Map(compiledEntries.map((entry) => [entry.key, entry]));
|
|
330
|
+
/** Theorem → Lean file over the compiled table under test, nested statements included. */
|
|
331
|
+
const fileByTheorem = new Map(compiledEntries.flatMap((entry) => [entry, ...entry.nested].map((statement) => [statement.theorem, statement.file])));
|
|
260
332
|
const byId = new Map(input.bridges.map((bridge) => [bridge.id, bridge]));
|
|
261
333
|
const seen = new Set();
|
|
262
334
|
const manifestKeys = manifest.entries.map((entry) => entry.key);
|
|
@@ -278,6 +350,9 @@ export function physjsManifestProblems(input) {
|
|
|
278
350
|
if (!isFormalRefKind(entry.kind)) {
|
|
279
351
|
problems.push(`manifest key '${entry.key}' kind '${String(entry.kind)}' is not one of ${FORMAL_REF_KINDS.join(', ')}`);
|
|
280
352
|
}
|
|
353
|
+
if (disallowedAxioms(entry.axioms).length > 0) {
|
|
354
|
+
problems.push(`manifest key '${entry.key}' axioms [${entry.axioms.join(', ')}] are not a subset of [${[...PHYSJS_ALLOWED_AXIOMS].join(', ')}]`);
|
|
355
|
+
}
|
|
281
356
|
for (const statement of nested) {
|
|
282
357
|
if (!isFormalRefKind(statement.kind)) {
|
|
283
358
|
problems.push(`${statement.name} kind for '${entry.key}' is '${String(statement.kind)}', not one of ${FORMAL_REF_KINDS.join(', ')}`);
|
|
@@ -288,6 +363,29 @@ export function physjsManifestProblems(input) {
|
|
|
288
363
|
if (statement.leanProof !== 'complete') {
|
|
289
364
|
problems.push(`${statement.name} leanProof for '${entry.key}' is '${statement.leanProof}', expected 'complete'`);
|
|
290
365
|
}
|
|
366
|
+
if (disallowedAxioms(statement.axioms).length > 0) {
|
|
367
|
+
problems.push(`${statement.name} axioms for '${entry.key}' [${statement.axioms.join(', ')}] are not a subset of [${[...PHYSJS_ALLOWED_AXIOMS].join(', ')}]`);
|
|
368
|
+
}
|
|
369
|
+
if (!fileByTheorem.has(statement.theorem)) {
|
|
370
|
+
problems.push(`manifest theorem '${statement.theorem}' (${entry.key}.${statement.name}) has no Lean file in formal/lean/theorem-files.json`);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
const file = fileByTheorem.get(entry.theorem);
|
|
374
|
+
if (file === undefined) {
|
|
375
|
+
problems.push(`manifest theorem '${entry.theorem}' has no Lean file in formal/lean/theorem-files.json`);
|
|
376
|
+
}
|
|
377
|
+
const compiled = compiledByKey.get(entry.key);
|
|
378
|
+
if (compiled === undefined) {
|
|
379
|
+
problems.push(`manifest key '${entry.key}' is not in the compiled entry table`);
|
|
380
|
+
}
|
|
381
|
+
else if (compiled.theorem !== entry.theorem ||
|
|
382
|
+
compiled.kind !== entry.kind ||
|
|
383
|
+
compiled.covers !== entry.covers ||
|
|
384
|
+
compiled.coverage !== entry.coverage ||
|
|
385
|
+
compiled.leanProof !== entry.leanProof ||
|
|
386
|
+
!sameAxioms(compiled.axioms, entry.axioms) ||
|
|
387
|
+
!sameNested(compiled.nested, nested)) {
|
|
388
|
+
problems.push(`compiled entry for '${entry.key}' disagrees with the Lean manifest`);
|
|
291
389
|
}
|
|
292
390
|
const bridge = byId.get(entry.key);
|
|
293
391
|
if (bridge === undefined) {
|
|
@@ -317,8 +415,8 @@ export function physjsManifestProblems(input) {
|
|
|
317
415
|
if (!ref.covers.includes(entry.covers)) {
|
|
318
416
|
problems.push(`bridge '${entry.key}' covers line does not record '${entry.covers}'`);
|
|
319
417
|
}
|
|
320
|
-
if (ref.version !== physjsVersion()
|
|
321
|
-
problems.push(`bridge '${entry.key}' version '${ref.version}'
|
|
418
|
+
if (ref.version !== physjsVersion()) {
|
|
419
|
+
problems.push(`bridge '${entry.key}' version '${ref.version}' is not '${physjsVersion()}'`);
|
|
322
420
|
}
|
|
323
421
|
if (ref.fidelity === 'unreviewed') {
|
|
324
422
|
problems.push(`bridge '${entry.key}' formalRef is unreviewed`);
|
|
@@ -326,24 +424,9 @@ export function physjsManifestProblems(input) {
|
|
|
326
424
|
if (ref.kind !== entry.kind) {
|
|
327
425
|
problems.push(`bridge '${entry.key}' kind is '${ref.kind}', expected '${entry.kind}'`);
|
|
328
426
|
}
|
|
329
|
-
|
|
330
|
-
if (file === undefined) {
|
|
331
|
-
problems.push(`manifest theorem '${entry.theorem}' has no Lean file in formal/physjs/theorem-files.json`);
|
|
332
|
-
}
|
|
333
|
-
else if (ref.url !== physjsFileUrl(file)) {
|
|
427
|
+
if (file !== undefined && ref.url !== physjsFileUrl(file)) {
|
|
334
428
|
problems.push(`bridge '${entry.key}' url is '${ref.url}', expected '${physjsFileUrl(file)}'`);
|
|
335
429
|
}
|
|
336
|
-
const compiled = compiledByKey.get(entry.key);
|
|
337
|
-
if (compiled === undefined) {
|
|
338
|
-
problems.push(`manifest key '${entry.key}' is not in the compiled entry table`);
|
|
339
|
-
}
|
|
340
|
-
else if (compiled.theorem !== entry.theorem ||
|
|
341
|
-
compiled.kind !== entry.kind ||
|
|
342
|
-
compiled.covers !== entry.covers ||
|
|
343
|
-
compiled.coverage !== entry.coverage ||
|
|
344
|
-
!sameNested(compiled.nested, nested)) {
|
|
345
|
-
problems.push(`compiled entry for '${entry.key}' disagrees with the vendored manifest`);
|
|
346
|
-
}
|
|
347
430
|
}
|
|
348
431
|
for (const bridge of input.bridges) {
|
|
349
432
|
if (bridge.formalRef?.system !== 'lean4-physjs')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"physjs-ref.js","sourceRoot":"","sources":["../../src/atlas/physjs-ref.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"physjs-ref.js","sourceRoot":"","sources":["../../src/atlas/physjs-ref.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Reviewed `formalRef`s keyed by this repository's Lean manifest.\n *\n * The Lean proofs are this repository's `lean/` (they moved from PhysJS in\n * 11.0.0, with their history; the `PhysJS.*` theorem names are Lean\n * namespaces, not a dependency). The manifest file is `formal/lean/manifest.json`.\n * `src/` cannot import a file outside its root, so `physjs-entries.generated.ts`\n * is the table this module reads. `bun run physjs:table` writes that file from\n * the manifest and writes nothing else. `tests/atlas/physjs-manifest.test.ts`\n * fails when the file and that table disagree on the toolchain, a theorem, a\n * key, or the coverage phrase. CI's `lean` job builds every file under `lean/`\n * and audits its axioms; this module does not run Lean.\n *\n * Permalinks name `lean/<File>.lean` at the release tag `LEAN_SOURCE_TAG`\n * (`v` and the package version), so a published version links to the proofs\n * it shipped with. Which PhysJS pull request added which keys, and the PhysJS\n * pins before the move, are history in `NOTES.md` and `CHANGELOG.md`.\n *\n * Each statement's `kind`, nested ones included, is the manifest's own field\n * (schema `upt-lean-manifest/v1`), the kind line of the Lean file that\n * declares the theorem (`scripts/lean-index.ts --check` compares the two);\n * this module keeps no override\n * and does not parse the covers line for it. A field of a manifest entry\n * outside the base fields is a nested statement: a second theorem on the same\n * entry, named by the field, with no key. It is recorded and compared, and it\n * is not a `formalRef`. The generator reads it by its shape, so a new nested\n * name needs no edit here.\n *\n * A reference's `fidelity` is DERIVED here, never typed on a record:\n * `physjsFidelity` reads the reviewed-row table (`physjs-reviewed.ts`) and the\n * sanity-lemma key list, and a key ahead of the catalog, or whose row is not\n * in that table, is `'unreviewed'`.\n *\n * @module atlas/physjs-ref\n */\n\nimport { sha256Hex } from '../core/hash.js';\nimport type { FormalFidelity, FormalRef, FormalRefKind } from './types.js';\nimport { FORMAL_REF_KINDS } from '../relations/types.js';\nimport { catalogEntries, catalogIdNumber } from '../bridges/catalog-load.js';\nimport { PHYSJS_REVIEWED_ROWS, PHYSJS_SANITY_LEMMA_KEYS } from './physjs-reviewed.js';\nimport {\n LEAN_MATHLIB,\n LEAN_PHYSLIB,\n LEAN_SOURCE_TAG,\n LEAN_TOOLCHAIN,\n PHYSJS_ENTRIES as GENERATED_PHYSJS_ENTRIES,\n} from './physjs-entries.generated.js';\n\n/**\n * The release tag whose `lean/` tree the permalinks name.\n *\n * @internal\n */\nexport { LEAN_SOURCE_TAG } from './physjs-entries.generated.js';\n\n/**\n * Every reviewed PhysJS reference covers its statement only. A lemma about\n * `bound.delta` does not certify the regime, the horizon, or the side conditions.\n */\nconst PHYSJS_COVERAGE = 'covers its statement only';\n\n/**\n * The axioms a complete Lean 4 proof over Mathlib may rest on. `#print axioms`\n * of a proof with a `sorry` adds `sorryAx`, and Lean still exits 0 (TOOLS.md),\n * so every statement's list is held to this set. The manifest records the\n * list; CI's `lean` job audits the axioms of every declaration in `lean/`\n * against the same set, and this module does not re-measure them.\n */\nconst PHYSJS_ALLOWED_AXIOMS: ReadonlySet<string> = new Set(['propext', 'Classical.choice', 'Quot.sound']);\n\n/** One statement the manifest records: an entry's own, or a nested one. */\ninterface PhysjsStatement {\n readonly theorem: string;\n /** How the theorem relates to the equation the key names, as the manifest writes it. */\n readonly kind: string;\n readonly covers: string;\n readonly coverage: string;\n readonly leanProof: string;\n readonly axioms: readonly string[];\n}\n\n/** The fields of a manifest entry. Any other field is a nested statement. */\nconst BASE_FIELDS = new Set<string>(['key', 'bridgeId', 'theorem', 'kind', 'covers', 'coverage', 'leanProof', 'axioms', 'imports']);\n\n/** The fields of a statement, sorted. A nested field with exactly these is a statement. */\nconst STATEMENT_FIELDS = ['axioms', 'coverage', 'covers', 'kind', 'leanProof', 'theorem'] as const;\n\n/** A compiled statement: the manifest's fields and the Lean file that declares its theorem. */\ninterface PhysjsCompiledStatement extends PhysjsStatement {\n /** `<File>.lean` under `lean/`, from `formal/lean/theorem-files.json`. */\n readonly file: string;\n}\n\n/** A nested statement, named by its manifest field. No key. Not a `formalRef`. */\ninterface PhysjsNestedStatement extends PhysjsCompiledStatement {\n readonly name: string;\n readonly kind: FormalRefKind;\n}\n\n/** One compiled entry: its own statement, and every nested statement by name. */\ninterface PhysjsEntry extends PhysjsCompiledStatement {\n readonly key: string;\n readonly bridgeId: string;\n /** The manifest's kind: how the theorem relates to the equation the key names. */\n readonly kind: FormalRefKind;\n readonly imports?: string;\n readonly nested: readonly PhysjsNestedStatement[];\n}\n\n/**\n * One manifest entry as `formal/lean/manifest.json` writes it: the base fields, and each nested\n * statement under a field of its own (`planeWave`, `corollary`).\n * @internal\n */\nexport interface PhysjsManifestEntry extends PhysjsStatement {\n readonly key: string;\n readonly bridgeId: string;\n readonly kind: string;\n readonly imports?: string;\n readonly [field: string]: unknown;\n}\n\n/**\n * The nested statements of a manifest entry, in field order: every field\n * outside the base fields whose value has exactly the statement fields. A\n * field that is neither is returned in `problems`.\n * @internal\n */\nexport function physjsNestedStatements(entry: PhysjsManifestEntry): {\n readonly nested: readonly (PhysjsStatement & { readonly name: string })[];\n readonly problems: readonly string[];\n} {\n const nested: (PhysjsStatement & { readonly name: string })[] = [];\n const problems: string[] = [];\n for (const [field, value] of Object.entries(entry)) {\n if (BASE_FIELDS.has(field)) continue;\n const keys = typeof value === 'object' && value !== null && !Array.isArray(value) ? Object.keys(value).sort() : [];\n if (keys.join() === STATEMENT_FIELDS.join()) nested.push({ name: field, ...(value as PhysjsStatement) });\n else problems.push(`manifest entry '${entry.key}' has unexpected field '${field}'`);\n }\n return { nested, problems };\n}\n\n/** The Lean manifest, as this module compares it. @internal */\nexport interface PhysjsManifestFile {\n readonly schema: string;\n readonly toolchain: string;\n readonly mathlib: string;\n readonly physlib: string;\n readonly entries: readonly PhysjsManifestEntry[];\n}\n\nconst PHYSJS_ENTRIES: readonly PhysjsEntry[] = GENERATED_PHYSJS_ENTRIES;\n\nconst entryByKey = new Map(PHYSJS_ENTRIES.map((entry) => [entry.key, entry]));\n\n/** Theorem → its Lean file, for every statement of the compiled table, nested ones included. */\nconst FILE_BY_THEOREM: ReadonlyMap<string, string> = new Map(\n PHYSJS_ENTRIES.flatMap((entry) => [entry, ...entry.nested].map((statement) => [statement.theorem, statement.file] as const)),\n);\n\n/**\n * Theorem name on the compiled manifest copy for `key`.\n *\n * This reads the compiled table. It does not build a formal reference\n * and it does not derive an evidence tag.\n *\n * @internal\n */\nexport function physjsTheorem(key: string): string | undefined {\n return entryByKey.get(key)?.theorem;\n}\n\n/** `formalRef.version`: the release tag of `lean/` and the toolchain it builds with. */\nfunction physjsVersion(): string {\n return `upt-lean@${LEAN_SOURCE_TAG} ${LEAN_TOOLCHAIN} mathlib:${LEAN_MATHLIB} physlib@${LEAN_PHYSLIB}`;\n}\n\n/**\n * Lean file name under `lean/` that declares `theorem`.\n *\n * Read from the compiled table, which copies `formal/lean/theorem-files.json`:\n * the file is where the theorem is declared, not its namespace\n * (`PhysJS.Einstein.friedmann_corollary` is in `VacuumFriedmann.lean`;\n * `PhysJS.SpringLc` is a namespace inside `OscillatorDictionary.lean`).\n * Throws for a theorem the manifest does not name.\n *\n * @internal\n */\nexport function physjsLeanFile(theorem: string): string {\n const file = FILE_BY_THEOREM.get(theorem);\n if (file === undefined) throw new Error(`PhysJS theorem '${theorem}' is not a statement of the Lean manifest`);\n return file;\n}\n\n/**\n * Permalink to one Lean file of this repository at the release tag.\n *\n * Sources are `lean/<File>.lean`. This is the only builder of those URLs.\n *\n * @internal\n */\nexport function physjsFileUrl(file: string): string {\n return `https://github.com/danielsimonjr/Universal-Physics-Tensor/blob/${LEAN_SOURCE_TAG}/lean/${file}`;\n}\n\n/** Permalink to the Lean file that declares `theorem`, at the release tag. */\nfunction physjsStatementUrl(theorem: string): string {\n return physjsFileUrl(physjsLeanFile(theorem));\n}\n\n/** The highest id in the bridge catalog. */\nconst CATALOG_MAX_ID = Math.max(...catalogEntries().map((entry) => entry.id));\n\n/**\n * True when `key` is ahead of the catalog: `lean/` proves the statement for a\n * catalog id the catalog has not reached yet. That is an id above the\n * catalog's highest, with every id between them also a key of `keys` (the\n * manifest's), so the ahead keys are one unbroken run that starts right after\n * the catalog. Such an entry is compiled and compared, and it is not a seed\n * and not a problem until the catalog entry exists. A missing id inside the\n * catalog's range is not ahead, nor is an id past a gap in the run (a typo\n * such as an extra digit), nor an atlas key.\n *\n * @internal\n */\nexport function physjsAheadOfCatalog(\n key: string,\n keys: readonly string[] = PHYSJS_ENTRIES.map((entry) => entry.key),\n): boolean {\n const id = catalogIdNumber(key);\n if (id === undefined || id <= CATALOG_MAX_ID) return false;\n const ids = new Set(keys.map(catalogIdNumber));\n for (let n = CATALOG_MAX_ID + 1; n < id; n++) if (!ids.has(n)) return false;\n return true;\n}\n\n/**\n * Manifest keys of kind `bridge`, the theorem stating the equation its key\n * names, that resolve to a bridge: every such atlas key, and every such\n * catalog key whose catalog entry exists. The kind is the manifest's own\n * field. A caller-supplied overlay entry is read the same way. The return\n * value is not stored on a bridge.\n *\n * @internal\n */\nexport function bridgeSeedKeys(\n entries: readonly { readonly key: string; readonly kind: FormalRefKind }[] = PHYSJS_ENTRIES,\n): readonly string[] {\n return entries.filter((entry) => entry.kind === 'bridge' && !physjsAheadOfCatalog(entry.key)).map((entry) => entry.key);\n}\n\n/** Every manifest key ahead of the catalog, in manifest order. @internal */\nexport function physjsKeysAheadOfCatalog(): readonly string[] {\n return PHYSJS_ENTRIES.filter((entry) => physjsAheadOfCatalog(entry.key)).map((entry) => entry.key);\n}\n\n/** The fields of one manifest row that a review reads, nested statements included. @internal */\nexport interface PhysjsReviewedRow {\n readonly key: string;\n readonly theorem: string;\n readonly kind: string;\n readonly covers: string;\n readonly leanProof: string;\n readonly axioms: readonly string[];\n readonly nested: readonly {\n readonly name: string;\n readonly theorem: string;\n readonly kind: string;\n readonly covers: string;\n readonly leanProof: string;\n readonly axioms: readonly string[];\n }[];\n}\n\n/**\n * The row of a manifest entry as the manifest writes it, in the shape\n * {@link physjsRowHash} reads. @internal\n */\nexport function physjsManifestRow(entry: PhysjsManifestEntry): PhysjsReviewedRow {\n return {\n key: entry.key,\n theorem: entry.theorem,\n kind: entry.kind,\n covers: entry.covers,\n leanProof: entry.leanProof,\n axioms: entry.axioms,\n nested: physjsNestedStatements(entry).nested.map((statement) => ({\n name: statement.name,\n theorem: statement.theorem,\n kind: statement.kind,\n covers: statement.covers,\n leanProof: statement.leanProof,\n axioms: statement.axioms,\n })),\n };\n}\n\n/**\n * SHA-256 of one row: `[key, theorem, kind, covers, leanProof, axioms,\n * nested[]]`, each nested statement as `[name, theorem, kind, covers,\n * leanProof, axioms]`. A swapped theorem or key, a changed kind, a reworded\n * covers line, a proof status, an axiom, or a nested statement changes it.\n * This is what `physjs-reviewed.ts` pins per key.\n *\n * @internal\n */\nexport function physjsRowHash(row: PhysjsReviewedRow): string {\n const columns = [\n row.key,\n row.theorem,\n row.kind,\n row.covers,\n row.leanProof,\n [...row.axioms],\n row.nested.map((n) => [n.name, n.theorem, n.kind, n.covers, n.leanProof, [...n.axioms]]),\n ];\n return sha256Hex(JSON.stringify(columns));\n}\n\n/**\n * The fidelity a manifest key earns, derived from what checks it:\n *\n * - `'unreviewed'` when the key is ahead of the catalog\n * ({@link physjsAheadOfCatalog}): no bridge exists to read the row against;\n * - `'unreviewed'` when the compiled row's hash is not the one\n * `PHYSJS_REVIEWED_ROWS` records for the key, or the key has no entry there;\n * - `'sanity-lemmas'` when the row is reviewed AND the key is in\n * `PHYSJS_SANITY_LEMMA_KEYS`, whose statements\n * `tests/atlas/formal-sanity.test.ts` instantiates on known cases;\n * - `'reviewed-manifest'` when the row is reviewed and no sanity lemma exists.\n *\n * A key the manifest does not name throws, like {@link physjsFormalRef}.\n *\n * @internal\n */\nexport function physjsFidelity(\n key: string,\n /** Defaults to the generated table. A test passes a mutated copy. */\n compiledEntries: readonly PhysjsEntry[] = PHYSJS_ENTRIES,\n): FormalFidelity {\n const entry = compiledEntries.find((candidate) => candidate.key === key);\n if (entry === undefined) throw new Error(`the Lean manifest has no entry for '${key}'`);\n if (physjsAheadOfCatalog(key)) return 'unreviewed';\n if (PHYSJS_REVIEWED_ROWS[key] !== physjsRowHash(entry)) return 'unreviewed';\n return PHYSJS_SANITY_LEMMA_KEYS.includes(key) ? 'sanity-lemmas' : 'reviewed-manifest';\n}\n\n/**\n * The reference for a manifest key, with its derived fidelity. Throws when\n * the key is not an entry, so a typo cannot ship a bridge with no reference.\n * A key ahead of the catalog, or whose row is not reviewed, is returned\n * `'unreviewed'` and derives no proof tag.\n *\n * @internal\n */\nexport function physjsFormalRef(key: string): FormalRef {\n const entry = entryByKey.get(key);\n if (entry === undefined) throw new Error(`the Lean manifest has no entry for '${key}'`);\n return {\n system: 'lean4-physjs',\n statement: entry.theorem,\n version: physjsVersion(),\n axioms: entry.axioms,\n fidelity: physjsFidelity(key),\n kind: entry.kind,\n url: physjsStatementUrl(entry.theorem),\n covers: `${entry.covers} — ${entry.coverage}`,\n };\n}\n\n/** The axioms of a statement that are outside {@link PHYSJS_ALLOWED_AXIOMS}. */\nfunction disallowedAxioms(axioms: readonly string[]): readonly string[] {\n return axioms.filter((axiom) => !PHYSJS_ALLOWED_AXIOMS.has(axiom));\n}\n\nfunction sameAxioms(recorded: readonly string[], manifest: readonly string[]): boolean {\n return recorded.length === manifest.length && recorded.every((axiom, i) => axiom === manifest[i]);\n}\n\nfunction sameStatement(compiled: PhysjsStatement, manifest: PhysjsStatement): boolean {\n return (\n compiled.theorem === manifest.theorem &&\n compiled.kind === manifest.kind &&\n compiled.covers === manifest.covers &&\n compiled.coverage === manifest.coverage &&\n compiled.leanProof === manifest.leanProof &&\n sameAxioms(compiled.axioms, manifest.axioms)\n );\n}\n\n/** The compiled nested statements are the manifest's: the same names, in order, each the same statement. */\nfunction sameNested(\n compiled: readonly PhysjsNestedStatement[],\n manifest: readonly (PhysjsStatement & { readonly name: string })[],\n): boolean {\n return (\n compiled.length === manifest.length &&\n compiled.every((statement, i) => statement.name === manifest[i]!.name && sameStatement(statement, manifest[i]!))\n );\n}\n\n/** The kind of a manifest entry is one of the formal-reference kinds. */\nfunction isFormalRefKind(kind: unknown): kind is FormalRefKind {\n return typeof kind === 'string' && (FORMAL_REF_KINDS as readonly string[]).includes(kind);\n}\n\n/**\n * Problems in the Lean manifest against the bridges that claim to be keyed\n * by it. Empty means every entry resolves to a `lean4-physjs` reference whose\n * theorem, axioms, version and coverage phrase are the entry's own.\n *\n * A wrong toolchain, version, theorem, key or coverage phrase is a problem. A manifest\n * entry with no bridge is a problem. A `lean4-physjs` reference with no entry\n * is a problem: the gate does not skip that system. A nested object is kept\n * and compared; naming it as the `formalRef` is a problem. The top-level\n * theorem stays the reference. The reference's kind is the entry's\n * `kind`; a kind outside the formal-reference kinds is a problem. An axiom\n * outside {@link PHYSJS_ALLOWED_AXIOMS} on any statement is a problem. A `be-`\n * key in the unbroken run above the catalog's highest id is ahead of the\n * catalog and is not a problem (`physjsAheadOfCatalog`); any other key with\n * no bridge is. Every structural check (fields, kinds, coverage, proof\n * status, axioms, Lean file, compiled copy) runs for every entry, ahead keys\n * included; only the checks against a bridge's reference are skipped for a\n * key that has no bridge yet.\n *\n * @internal\n */\nexport function physjsManifestProblems(input: {\n readonly manifest: PhysjsManifestFile;\n readonly bridges: readonly { readonly id: string; readonly formalRef?: FormalRef }[];\n /** Defaults to the generated table. A test passes a mutated copy. */\n readonly compiledEntries?: readonly PhysjsEntry[];\n}): string[] {\n const problems: string[] = [];\n const manifest = input.manifest;\n if (manifest.schema !== 'upt-lean-manifest/v1') {\n problems.push(`manifest schema is '${manifest.schema}', expected 'upt-lean-manifest/v1'`);\n }\n if (manifest.toolchain !== LEAN_TOOLCHAIN) {\n problems.push(`manifest toolchain is '${manifest.toolchain}', expected '${LEAN_TOOLCHAIN}'`);\n }\n if (manifest.mathlib !== LEAN_MATHLIB) {\n problems.push(`manifest mathlib is '${manifest.mathlib}', expected '${LEAN_MATHLIB}'`);\n }\n if (manifest.physlib !== LEAN_PHYSLIB) {\n problems.push(`manifest physlib is '${manifest.physlib}', expected '${LEAN_PHYSLIB}'`);\n }\n\n const compiledEntries = input.compiledEntries ?? PHYSJS_ENTRIES;\n const compiledByKey = new Map(compiledEntries.map((entry) => [entry.key, entry]));\n /** Theorem → Lean file over the compiled table under test, nested statements included. */\n const fileByTheorem = new Map(\n compiledEntries.flatMap((entry) => [entry, ...entry.nested].map((statement) => [statement.theorem, statement.file] as const)),\n );\n const byId = new Map(input.bridges.map((bridge) => [bridge.id, bridge]));\n const seen = new Set<string>();\n const manifestKeys = manifest.entries.map((entry) => entry.key);\n for (const entry of manifest.entries) {\n if (seen.has(entry.key)) problems.push(`manifest key '${entry.key}' is duplicated`);\n seen.add(entry.key);\n const { nested, problems: fieldProblems } = physjsNestedStatements(entry);\n problems.push(...fieldProblems);\n if (entry.key !== entry.bridgeId) {\n problems.push(`manifest key '${entry.key}' does not equal bridgeId '${entry.bridgeId}'`);\n }\n if (entry.coverage !== PHYSJS_COVERAGE) {\n problems.push(\n `coverage phrase for '${entry.key}' is '${entry.coverage}', expected '${PHYSJS_COVERAGE}'`,\n );\n }\n if (entry.leanProof !== 'complete') {\n problems.push(`leanProof for '${entry.key}' is '${entry.leanProof}', expected 'complete'`);\n }\n if (!isFormalRefKind(entry.kind)) {\n problems.push(`manifest key '${entry.key}' kind '${String(entry.kind)}' is not one of ${FORMAL_REF_KINDS.join(', ')}`);\n }\n if (disallowedAxioms(entry.axioms).length > 0) {\n problems.push(\n `manifest key '${entry.key}' axioms [${entry.axioms.join(', ')}] are not a subset of [${[...PHYSJS_ALLOWED_AXIOMS].join(', ')}]`,\n );\n }\n for (const statement of nested) {\n if (!isFormalRefKind(statement.kind)) {\n problems.push(\n `${statement.name} kind for '${entry.key}' is '${String(statement.kind)}', not one of ${FORMAL_REF_KINDS.join(', ')}`,\n );\n }\n if (statement.coverage !== PHYSJS_COVERAGE) {\n problems.push(\n `${statement.name} coverage phrase for '${entry.key}' is '${statement.coverage}', expected '${PHYSJS_COVERAGE}'`,\n );\n }\n if (statement.leanProof !== 'complete') {\n problems.push(`${statement.name} leanProof for '${entry.key}' is '${statement.leanProof}', expected 'complete'`);\n }\n if (disallowedAxioms(statement.axioms).length > 0) {\n problems.push(\n `${statement.name} axioms for '${entry.key}' [${statement.axioms.join(', ')}] are not a subset of [${[...PHYSJS_ALLOWED_AXIOMS].join(', ')}]`,\n );\n }\n if (!fileByTheorem.has(statement.theorem)) {\n problems.push(`manifest theorem '${statement.theorem}' (${entry.key}.${statement.name}) has no Lean file in formal/lean/theorem-files.json`);\n }\n }\n const file = fileByTheorem.get(entry.theorem);\n if (file === undefined) {\n problems.push(`manifest theorem '${entry.theorem}' has no Lean file in formal/lean/theorem-files.json`);\n }\n const compiled = compiledByKey.get(entry.key);\n if (compiled === undefined) {\n problems.push(`manifest key '${entry.key}' is not in the compiled entry table`);\n } else if (\n compiled.theorem !== entry.theorem ||\n compiled.kind !== entry.kind ||\n compiled.covers !== entry.covers ||\n compiled.coverage !== entry.coverage ||\n compiled.leanProof !== entry.leanProof ||\n !sameAxioms(compiled.axioms, entry.axioms) ||\n !sameNested(compiled.nested, nested)\n ) {\n problems.push(`compiled entry for '${entry.key}' disagrees with the Lean manifest`);\n }\n const bridge = byId.get(entry.key);\n if (bridge === undefined) {\n if (!physjsAheadOfCatalog(entry.key, manifestKeys)) problems.push(`manifest key '${entry.key}' does not resolve to a bridge`);\n continue;\n }\n const ref = bridge.formalRef;\n if (ref === undefined || ref.system !== 'lean4-physjs') {\n problems.push(\n `bridge '${entry.key}' has no lean4-physjs formalRef (system '${ref?.system ?? 'none'}')`,\n );\n continue;\n }\n for (const statement of nested) {\n if (ref.statement === statement.theorem) {\n problems.push(\n `bridge '${entry.key}' formalRef names the nested ${statement.name} theorem '${statement.theorem}'; the top-level theorem stays the reference`,\n );\n }\n }\n if (ref.statement !== entry.theorem) {\n problems.push(`bridge '${entry.key}' theorem is '${ref.statement}', manifest theorem is '${entry.theorem}'`);\n }\n if (!sameAxioms(ref.axioms, entry.axioms)) {\n problems.push(\n `bridge '${entry.key}' axioms [${ref.axioms.join(', ')}] differ from the manifest [${entry.axioms.join(', ')}]`,\n );\n }\n if (!ref.covers.includes(PHYSJS_COVERAGE)) {\n problems.push(`bridge '${entry.key}' covers line does not say '${PHYSJS_COVERAGE}'`);\n }\n if (!ref.covers.includes(entry.covers)) {\n problems.push(`bridge '${entry.key}' covers line does not record '${entry.covers}'`);\n }\n if (ref.version !== physjsVersion()) {\n problems.push(`bridge '${entry.key}' version '${ref.version}' is not '${physjsVersion()}'`);\n }\n if (ref.fidelity === 'unreviewed') {\n problems.push(`bridge '${entry.key}' formalRef is unreviewed`);\n }\n if (ref.kind !== entry.kind) {\n problems.push(`bridge '${entry.key}' kind is '${ref.kind}', expected '${entry.kind}'`);\n }\n if (file !== undefined && ref.url !== physjsFileUrl(file)) {\n problems.push(`bridge '${entry.key}' url is '${ref.url}', expected '${physjsFileUrl(file)}'`);\n }\n }\n\n for (const bridge of input.bridges) {\n if (bridge.formalRef?.system !== 'lean4-physjs') continue;\n if (!seen.has(bridge.id)) {\n problems.push(`lean4-physjs formalRef on '${bridge.id}' has no manifest entry`);\n }\n }\n return problems;\n}\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The reviewed Lean manifest rows (`formal/lean/manifest.json`), pinned per key.
|
|
3
|
+
*
|
|
4
|
+
* Each value is `physjsRowHash` of the row as the manifest writes it:
|
|
5
|
+
* `[key, theorem, kind, covers, leanProof, axioms, nested statements]`. A key
|
|
6
|
+
* is listed only after its row was read against the bridge it keys (the
|
|
7
|
+
* procedure is WORKFLOWS.md, "Adding or changing a Lean formalRef"). A key
|
|
8
|
+
* that is ahead of the catalog has no bridge to read it against and is not
|
|
9
|
+
* listed; `physjsFidelity` returns `'unreviewed'` for it.
|
|
10
|
+
*
|
|
11
|
+
* `tests/atlas/physjs-manifest.test.ts` fails, and prints the line to paste
|
|
12
|
+
* here, when a manifest row that resolves to a bridge is missing or has
|
|
13
|
+
* changed since its review, and when a listed key no longer resolves to a
|
|
14
|
+
* bridge. The sentence that the review was one SHA-256 over every row in
|
|
15
|
+
* that test file is the record from before this table.
|
|
16
|
+
*
|
|
17
|
+
* @module atlas/physjs-reviewed
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Keys whose statements `tests/atlas/formal-sanity.test.ts` instantiates on
|
|
21
|
+
* known cases. A reviewed row with its key here derives
|
|
22
|
+
* `fidelity: 'sanity-lemmas'`; every other reviewed row derives
|
|
23
|
+
* `'reviewed-manifest'`. That test fails when a key listed here has no
|
|
24
|
+
* lemma in it, and when a lemma there names a key missing here.
|
|
25
|
+
*
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
export declare const PHYSJS_SANITY_LEMMA_KEYS: readonly string[];
|
|
29
|
+
/** Manifest key → `physjsRowHash` of its reviewed row. @internal */
|
|
30
|
+
export declare const PHYSJS_REVIEWED_ROWS: Readonly<Record<string, string>>;
|
|
31
|
+
//# sourceMappingURL=physjs-reviewed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"physjs-reviewed.d.ts","sourceRoot":"","sources":["../../src/atlas/physjs-reviewed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAWrD,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwJjE,CAAC"}
|