universal-physics-tensor 9.0.0 → 10.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 +19 -16
- package/data/atlas/atlas.json +55 -44
- package/data/atlas/atlas.jsonld +1 -1
- package/data/atlas/diffusion.json +19 -18
- package/data/atlas/oscillators.json +15 -10
- package/data/atlas/waves.json +23 -18
- package/data/bridge-catalog.json +886 -1473
- package/data/bridge-catalog.schema.json +349 -132
- 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 +14 -3
- 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 +3 -2
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.js +15 -8
- 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.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 +1 -1
- package/dist/atlas/benchmark/stats.d.ts.map +1 -1
- package/dist/atlas/benchmark/stats.js +1 -1
- 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.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 +5 -16
- 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.map +1 -1
- package/dist/atlas/diffusion/bridges-closure.js +0 -5
- 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 +0 -3
- package/dist/atlas/diffusion/bridges.js.map +1 -1
- 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.js.map +1 -1
- 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 +1 -1
- package/dist/atlas/link-prediction.d.ts.map +1 -1
- 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 +0 -1
- 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 +0 -3
- package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
- package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-limits.js +0 -2
- package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
- 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.js.map +1 -1
- 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.js.map +1 -1
- package/dist/atlas/oscillators/phase-carriage.js.map +1 -1
- package/dist/atlas/oscillators/phase-translation.js.map +1 -1
- package/dist/atlas/oscillators/position-translation.js.map +1 -1
- package/dist/atlas/oscillators/rejections.js.map +1 -1
- package/dist/atlas/path-bound.js.map +1 -1
- package/dist/atlas/physjs-entries.generated.js.map +1 -1
- package/dist/atlas/physjs-ref.d.ts +79 -45
- package/dist/atlas/physjs-ref.d.ts.map +1 -1
- package/dist/atlas/physjs-ref.js +143 -62
- 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.js.map +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.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/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 +0 -3
- 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 +0 -4
- 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.js.map +1 -1
- 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 +8 -4
- package/dist/atlas/witness-numeric.d.ts.map +1 -1
- package/dist/atlas/witness-numeric.js +27 -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.js.map +1 -1
- 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 +171 -8
- package/dist/bridges/catalog-load.js.map +1 -1
- package/dist/bridges/catalog-types.d.ts +48 -24
- package/dist/bridges/catalog-types.d.ts.map +1 -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 +15 -2
- package/dist/bridges/evaluation-errors.d.ts.map +1 -1
- package/dist/bridges/evaluation-errors.js +20 -2
- package/dist/bridges/evaluation-errors.js.map +1 -1
- 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 +49 -16
- package/dist/bridges/evaluators.js.map +1 -1
- package/dist/bridges/expr-parse.d.ts +27 -4
- package/dist/bridges/expr-parse.d.ts.map +1 -1
- package/dist/bridges/expr-parse.js +90 -10
- package/dist/bridges/expr-parse.js.map +1 -1
- package/dist/bridges/holds.d.ts +5 -1
- package/dist/bridges/holds.d.ts.map +1 -1
- package/dist/bridges/holds.js +18 -3
- 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.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 +5 -6
- package/dist/bridges/relation-eval.d.ts.map +1 -1
- package/dist/bridges/relation-eval.js +9 -38
- 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 +24 -10
- 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/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.map +1 -1
- package/dist/canonical/entries/condensed-matter.js +4 -4
- package/dist/canonical/entries/condensed-matter.js.map +1 -1
- package/dist/canonical/entries/dimensional-classics.js +2 -2
- package/dist/canonical/entries/dimensional-classics.js.map +1 -1
- package/dist/canonical/entries/electromagnetism.js +2 -2
- package/dist/canonical/entries/electromagnetism.js.map +1 -1
- package/dist/canonical/entries/fluids-waves.js.map +1 -1
- 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 +29 -22
- package/dist/canonical/entries/nonmonomial.js.map +1 -1
- 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.js.map +1 -1
- package/dist/canonical/linkage.d.ts +29 -4
- package/dist/canonical/linkage.d.ts.map +1 -1
- package/dist/canonical/linkage.js +31 -29
- 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 +17 -12
- 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 +21 -0
- package/dist/canonical/structural.d.ts.map +1 -1
- package/dist/canonical/structural.js +24 -4
- package/dist/canonical/structural.js.map +1 -1
- package/dist/cases/brownian-sphere.js +4 -4
- package/dist/cases/brownian-sphere.js.map +1 -1
- package/dist/cases/damped-resonator.js +2 -2
- package/dist/cases/damped-resonator.js.map +1 -1
- package/dist/cases/index.js.map +1 -1
- package/dist/cases/kepler-rv.js.map +1 -1
- package/dist/cases/lumped-cooling.js +1 -1
- package/dist/cases/lumped-cooling.js.map +1 -1
- package/dist/cases/quadrature.js.map +1 -1
- package/dist/cases/resistor-noise.js +3 -3
- package/dist/cases/resistor-noise.js.map +1 -1
- package/dist/cases/skin-depth.js.map +1 -1
- package/dist/cases/types.js.map +1 -1
- package/dist/cli/args.d.ts +7 -2
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +18 -2
- 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 +32 -0
- package/dist/cli/bindings.js.map +1 -0
- package/dist/cli/closed-form-range.js.map +1 -1
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/commands/_atlas-map.d.ts +3 -3
- package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
- package/dist/cli/commands/_atlas-map.js +43 -18
- package/dist/cli/commands/_atlas-map.js.map +1 -1
- 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 +42 -7
- 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 +1 -3
- 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 +13 -20
- package/dist/cli/commands/audit.js.map +1 -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 -14
- 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 +42 -17
- 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 +15 -9
- 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 +13 -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 +53 -31
- 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 +14 -7
- 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 +40 -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 +82 -89
- 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 +53 -18
- package/dist/cli/commands/metric.js.map +1 -1
- package/dist/cli/commands/path.js +4 -4
- 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 +50 -26
- 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 +24 -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 +22 -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 +8 -4
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/symbolic.d.ts.map +1 -1
- package/dist/cli/commands/symbolic.js +13 -9
- package/dist/cli/commands/symbolic.js.map +1 -1
- package/dist/cli/commands/testplan.js +1 -1
- 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 +29 -2
- package/dist/cli/expr-print.d.ts.map +1 -1
- package/dist/cli/expr-print.js +46 -2
- 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.js +7 -3
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/map-evidence.js.map +1 -1
- package/dist/cli/output.d.ts +3 -6
- package/dist/cli/output.d.ts.map +1 -1
- 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 +16 -10
- package/dist/cli/record-reach.js.map +1 -1
- package/dist/cli/record-tables.js +1 -1
- package/dist/cli/record-tables.js.map +1 -1
- package/dist/cli/record.d.ts.map +1 -1
- package/dist/cli/record.js +31 -12
- 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 +12 -1
- package/dist/cli/search-index.js.map +1 -1
- package/dist/cli/statuses.js.map +1 -1
- package/dist/cli/top-level-help.js.map +1 -1
- package/dist/cli/version.js.map +1 -1
- package/dist/cli-api.d.ts +15 -9
- package/dist/cli-api.d.ts.map +1 -1
- package/dist/cli-api.js +14 -13
- package/dist/cli-api.js.map +1 -1
- package/dist/composition/adjudication.js.map +1 -1
- 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 +12 -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.js.map +1 -1
- package/dist/composition/bridge-analysis.d.ts +0 -18
- package/dist/composition/bridge-analysis.d.ts.map +1 -1
- package/dist/composition/bridge-analysis.js +57 -47
- 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.map +1 -1
- package/dist/composition/canonical-compare.js +12 -2
- package/dist/composition/canonical-compare.js.map +1 -1
- package/dist/composition/canonical-graph.d.ts +8 -9
- package/dist/composition/canonical-graph.d.ts.map +1 -1
- package/dist/composition/canonical-graph.js +25 -67
- package/dist/composition/canonical-graph.js.map +1 -1
- 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 +6 -20
- package/dist/composition/catalog-graph.js.map +1 -1
- package/dist/composition/chain-candidate.d.ts +2 -0
- package/dist/composition/chain-candidate.d.ts.map +1 -1
- package/dist/composition/chain-candidate.js +2 -0
- package/dist/composition/chain-candidate.js.map +1 -1
- package/dist/composition/chain-match.js.map +1 -1
- package/dist/composition/chain-regime.js.map +1 -1
- package/dist/composition/chain-result.js.map +1 -1
- package/dist/composition/compose-surface.js.map +1 -1
- package/dist/composition/compose-symbolic.js.map +1 -1
- package/dist/composition/compose.d.ts.map +1 -1
- package/dist/composition/compose.js +153 -36
- package/dist/composition/compose.js.map +1 -1
- 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 +21 -11
- package/dist/composition/discovery.d.ts.map +1 -1
- package/dist/composition/discovery.js +81 -21
- package/dist/composition/discovery.js.map +1 -1
- package/dist/composition/edge.d.ts +19 -8
- package/dist/composition/edge.d.ts.map +1 -1
- package/dist/composition/edge.js +24 -11
- 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.map +1 -1
- package/dist/composition/evaluate-relation.js.map +1 -1
- package/dist/composition/explain.d.ts +14 -9
- package/dist/composition/explain.d.ts.map +1 -1
- package/dist/composition/explain.js +46 -13
- package/dist/composition/explain.js.map +1 -1
- package/dist/composition/expr-eval.js.map +1 -1
- package/dist/composition/expr-simplify.d.ts.map +1 -1
- package/dist/composition/expr-simplify.js +9 -39
- 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 +9 -0
- package/dist/composition/formula-shape.d.ts.map +1 -1
- package/dist/composition/formula-shape.js +54 -0
- 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-viz-svg.js.map +1 -1
- package/dist/composition/graph-viz.js.map +1 -1
- package/dist/composition/grounding.js.map +1 -1
- package/dist/composition/identifiability.js.map +1 -1
- package/dist/composition/index.d.ts +6 -4
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +4 -3
- package/dist/composition/index.js.map +1 -1
- package/dist/composition/mathts-quiet.d.ts +28 -0
- package/dist/composition/mathts-quiet.d.ts.map +1 -0
- package/dist/composition/mathts-quiet.js +56 -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 +18 -34
- 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.js.map +1 -1
- package/dist/composition/probe/dataset.js.map +1 -1
- 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 +14 -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 +1 -1
- package/dist/composition/probe/fit.d.ts.map +1 -1
- package/dist/composition/probe/fit.js +2 -1
- package/dist/composition/probe/fit.js.map +1 -1
- package/dist/composition/probe/frontier.js.map +1 -1
- package/dist/composition/probe/generator.js.map +1 -1
- package/dist/composition/probe/index.d.ts +4 -2
- package/dist/composition/probe/index.d.ts.map +1 -1
- package/dist/composition/probe/index.js +4 -2
- package/dist/composition/probe/index.js.map +1 -1
- 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 +13 -6
- package/dist/composition/probe/pipeline.js.map +1 -1
- package/dist/composition/probe/problem.d.ts +8 -0
- package/dist/composition/probe/problem.d.ts.map +1 -1
- package/dist/composition/probe/problem.js +78 -12
- package/dist/composition/probe/problem.js.map +1 -1
- package/dist/composition/probe/report.js.map +1 -1
- 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.js.map +1 -1
- package/dist/composition/probe/study.d.ts +4 -3
- package/dist/composition/probe/study.d.ts.map +1 -1
- package/dist/composition/probe/study.js +5 -3
- package/dist/composition/probe/study.js.map +1 -1
- package/dist/composition/probe/types.d.ts +3 -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 +11 -4
- package/dist/composition/proposed-bridges.d.ts.map +1 -1
- package/dist/composition/proposed-bridges.js +11 -4
- 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.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/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 +34 -9
- package/dist/composition/retrodiction.js.map +1 -1
- package/dist/composition/uncertainty.js.map +1 -1
- package/dist/composition/user-equation.js.map +1 -1
- 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/constants.d.ts +8 -8
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +8 -10
- package/dist/core/constants.js.map +1 -1
- 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/json-schema.d.ts +1 -1
- package/dist/core/json-schema.d.ts.map +1 -1
- package/dist/core/json-schema.js +31 -7
- 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 -8
- package/dist/core/labeled-tensor.js.map +1 -1
- 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 +40 -8
- package/dist/core/tensor.js.map +1 -1
- 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 +24 -80
- package/dist/diff/bridge-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-gradient.js +21 -98
- 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 +16 -4
- package/dist/diff/bridge-specs.js.map +1 -1
- package/dist/dimensional/algebra.js.map +1 -1
- package/dist/dimensional/ast-builders.d.ts +5 -4
- package/dist/dimensional/ast-builders.d.ts.map +1 -1
- package/dist/dimensional/ast-builders.js +6 -5
- package/dist/dimensional/ast-builders.js.map +1 -1
- package/dist/dimensional/ast-types.js.map +1 -1
- package/dist/dimensional/bridge-check.js.map +1 -1
- 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 +9 -5
- 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.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 +3 -1
- package/dist/dimensional/errors.d.ts.map +1 -1
- package/dist/dimensional/errors.js +2 -2
- package/dist/dimensional/errors.js.map +1 -1
- 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 +0 -1
- package/dist/dimensional/gauge-field.js.map +1 -1
- package/dist/dimensional/hyphen-names.d.ts.map +1 -1
- package/dist/dimensional/hyphen-names.js +8 -0
- 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.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.map +1 -1
- package/dist/dimensional/symbolic-constants.js +7 -2
- 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.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 +9 -5
- 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 +50 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -20
- 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.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 +2 -2
- 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 +6 -3
- 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 -5
- 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/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.js.map +1 -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 +11 -6
- package/dist/numerical/mathts-engine.js.map +1 -1
- package/dist/numerical/metric-inverse.js.map +1 -1
- package/dist/numerical/null-ic.js.map +1 -1
- package/dist/numerical/null-ray-integrator.js +4 -4
- package/dist/numerical/null-ray-integrator.js.map +1 -1
- 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.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 +20 -3
- package/dist/numerical/quadrature.js.map +1 -1
- package/dist/numerical/spacetime-metrics.d.ts +13 -19
- package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
- package/dist/numerical/spacetime-metrics.js +126 -248
- package/dist/numerical/spacetime-metrics.js.map +1 -1
- package/dist/numerical/strides.js.map +1 -1
- package/dist/numerical/tensor-engine.d.ts +9 -5
- package/dist/numerical/tensor-engine.d.ts.map +1 -1
- 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 +18 -8
- package/dist/relations/regime.d.ts.map +1 -1
- package/dist/relations/regime.js +26 -14
- 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 +10 -14
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical-compare.d.ts","sourceRoot":"","sources":["../../src/composition/canonical-compare.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAiC5E,yEAAyE;AACzE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,qBAAqB,GAAG,cAAc,CAAC;IACrF,mEAAmE;IACnE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,oGAAoG;IACpG,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;IACzD;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,wGAAwG;AACxG,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAA;CAAE,CAAC;AA8R3F,8PAA8P;AAC9P,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,SAAS,gBAAgB,EAAE,EACpC,YAAY,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,MAAM,EAClE,OAAO,GAAE,SAAS,iBAAiB,EAAwB,EAC3D,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACnD,mBAAmB,EAAE,CA4MvB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,EAC3C,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,GAC7G,OAAO,CAAC,mBAAmB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"canonical-compare.d.ts","sourceRoot":"","sources":["../../src/composition/canonical-compare.ts"],"names":[],"mappings":"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"}
|
|
@@ -540,8 +540,18 @@ export async function compareUserEquation(equation, catalogDims, options) {
|
|
|
540
540
|
await parsePhysics(rhs, dims);
|
|
541
541
|
compiled = (await getFormulaParser()).parse(rhs);
|
|
542
542
|
}
|
|
543
|
-
catch {
|
|
544
|
-
|
|
543
|
+
catch (error) {
|
|
544
|
+
// "The equation could not be read" is a different fact from "no canonical
|
|
545
|
+
// equation has this target and these variables"; an empty list says the
|
|
546
|
+
// second. The row carries the parser's message (9.0.0 audit §4 C7).
|
|
547
|
+
return [
|
|
548
|
+
{
|
|
549
|
+
id: target,
|
|
550
|
+
name: equation,
|
|
551
|
+
kind: 'not-compared',
|
|
552
|
+
detail: `the equation did not parse: ${error instanceof Error ? error.message : String(error)}`,
|
|
553
|
+
},
|
|
554
|
+
];
|
|
545
555
|
}
|
|
546
556
|
const overrides = options?.constantOverrides;
|
|
547
557
|
const constantValues = Object.fromEntries(Object.entries(CONSTANTS).map(([name, c]) => [name, overrideValue(name, c.value, overrides)]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical-compare.js","sourceRoot":"","sources":["../../src/composition/canonical-compare.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"canonical-compare.js","sourceRoot":"","sources":["../../src/composition/canonical-compare.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Compare a user's formula with the canonical (textbook) equation it restates.\n *\n * Dimensional analysis cannot see a dimensionless prefactor, so `T = π√(ℓ/g)`\n * and `K = m v²` pass every dimensional check. When the registry holds an\n * equation with the same target and the same variables, this module evaluates\n * both sides at {@link FIXED_POINT_EXPONENTS}, fixed points documented here, and\n * classifies the ratio `yours / canonical`:\n *\n * - `agrees` — constant and equal to 1: the prefactor is checked and right.\n * - `factor` — constant but not 1: the forms agree and the prefactor does not.\n * - `form` — not constant across the points: a different law.\n * - `prefactor-unchecked` — the forms agree, but the registry records the law\n * only up to a constant or only dimensionally, so it holds no prefactor to\n * compare with. That is reported as unchecked, never as agreement.\n * - `not-compared` — the variables could not be aligned, or an evaluation\n * failed; `detail` says which.\n *\n * The points are fixed so the output is identical on every run.\n *\n * INTERNAL — surfaced by `upt map --equation` and `upt derive --formula`.\n *\n * @module composition/canonical-compare\n */\n\nimport type { ExprNode } from '../dimensional/validator.js';\nimport type { Dimension } from '../dimensional/types.js';\nimport { equals } from '../dimensional/algebra.js';\nimport { CANONICAL_EQUATIONS } from '../canonical/registry.js';\nimport type { CanonicalEquation } from '../canonical/canonical-equation.js';\nimport { CONSTANTS, piMultipleValue } from '../dimensional/symbolic-constants.js';\nimport { evalExpr } from './expr-eval.js';\nimport { CANONICAL_GROUP_PREFACTORS, canonicalPrefactor } from './canonical-prefactors.js';\nimport { formulaNameDimensions } from '../dimensional/formula-names.js';\nimport { NAME_TABLE } from './aliases.js';\nimport { parseUserEquation } from './user-equation.js';\nimport { resolveQuantityName } from '../dimensional/formula-names.js';\nimport { getFormulaParser, parsePhysics } from '../numerical/formula-registry.js';\nimport { formulaSymbolDimension } from '../numerical/formula-dimension.js';\nimport type { CompiledFormula } from '../numerical/formula-contract.js';\nimport { CATALOG_GRAPH } from './catalog-graph.js';\nimport { DIMENSIONLESS } from '../dimensional/types.js';\n\n/**\n * The comparison points: variable `i` (in sorted name order) takes the value\n * `(1.7 + i)^p` at point `p` of this list, the scheme `upt derive` uses to\n * recover a prefactor. Each variable has its own base, so the RATIOS between\n * variables change from point to point too. A common scale factor would leave\n * every ratio such as ℓ/g fixed, and `T ∝ ℓ/g` would then pass as the form of\n * `T ∝ √(ℓ/g)`.\n * @internal\n */\nconst FIXED_POINT_EXPONENTS: readonly number[] = [1, 1.3, 1.6];\n\n/** Relative tolerance for \"the ratio is constant\" and \"the ratio is 1\". @internal */\nconst RATIO_TOLERANCE = 1e-9;\n\n/** What a dimensionless registry stub stands for, when the symbol is not the latex. */\nconst STUB_GLOSS: Readonly<Record<string, string>> = {\n one_minus_e_sq: '1-e²',\n};\n\n/** How a user formula compares with one canonical equation. @internal */\nexport interface CanonicalComparison {\n readonly id: string;\n readonly name: string;\n readonly kind: 'agrees' | 'factor' | 'form' | 'prefactor-unchecked' | 'not-compared';\n /** `yours / canonical`, present only for `agrees` and `factor`. */\n readonly ratio?: number;\n /** Why the prefactor is unchecked, or why no comparison was made. */\n readonly detail?: string;\n /** `[yours, canonical]` for each variable paired by dimension, not by name (persona finding N1). */\n readonly paired?: readonly (readonly [string, string])[];\n /**\n * True when neither side has a free variable (every name is a registered constant, persona\n * finding W5): the two sides are compared once, at the SI constant values, so the form is not\n * tested, only the value.\n */\n readonly constantsOnly?: true;\n /**\n * Present when your target matched through the catalog bridge this entry restates\n * (`restatesBridge`), not by the entry's own target name: that bridge's id and the entry's target.\n */\n readonly targetVia?: { readonly bridge: string; readonly its: string };\n /**\n * Set when the comparison evaluated c, ħ, h or G at a non-SI value\n * (`--natural` / `--geometrized`). Absent on an SI comparison.\n */\n readonly evaluatedAt?: string;\n}\n\n/** A user source variable; with a dimension it may pair with a differently named canonical variable. */\nexport type ComparisonSource = string | { readonly name: string; readonly dim: Dimension };\n\nconst normalize = (name: string): string => name.replace(/_/g, '-');\n\n/**\n * Pair each user source with one canonical variable: by name first, then by a dimension that\n * exactly one remaining canonical variable carries, repeated until nothing changes. `null` when the\n * sources cannot be this entry's variables (a count, a name without a dimension, or a dimension no\n * variable left carries); `'ambiguous'` when every source has a same-dimension partner but the\n * pairing is not unique. Returns user name → canonical name, both normalized.\n */\nfunction pairSources(\n sources: readonly { name: string; dim?: Dimension }[],\n variables: readonly { name: string; dim: Dimension }[],\n): Map<string, string> | 'ambiguous' | null {\n if (sources.length !== variables.length) return null;\n const pairs = new Map<string, string>();\n const freeVars = new Map(variables.map((v) => [normalize(v.name), v.dim]));\n let open = sources.filter((s) => {\n if (!freeVars.has(s.name)) return true;\n pairs.set(s.name, s.name);\n freeVars.delete(s.name);\n return false;\n });\n let progress = true;\n while (open.length > 0 && progress) {\n progress = false;\n for (const s of open) {\n if (s.dim === undefined) return null;\n const partners = [...freeVars].filter(([, dim]) => equals(dim, s.dim!));\n if (partners.length === 0) return null;\n if (partners.length === 1) {\n pairs.set(s.name, partners[0]![0]);\n freeVars.delete(partners[0]![0]);\n progress = true;\n }\n }\n open = open.filter((s) => !pairs.has(s.name));\n }\n return open.length === 0 ? pairs : 'ambiguous';\n}\n\n/**\n * Peel user sources that restate a CE governing *constant* (persona finding W1).\n *\n * CE-mass-energy lists `c` as governing, but `c` is in {@link CONSTANTS}, so it is not a free\n * variable of the comparison. Writing the catalog quantity `speed-of-light` (same dimension) must\n * not make the source set look larger than `{mass}` and skip the prefactor check. A source pairs\n * with a constant by name, or by a dimension that exactly one remaining constant carries and that\n * no free variable carries (variables win — `velocity` still pairs with CE-kinetic-energy's\n * `speed`). Returns the sources left for {@link pairSources}, plus user→constant name pairs.\n * Leftover sources that match no variable and no unique constant make the entry a non-match\n * (`null` from the caller when `forVariables` then fails to pair).\n */\nfunction peelConstantAliases(\n sources: readonly { name: string; dim?: Dimension }[],\n variables: readonly { name: string; dim: Dimension }[],\n constants: readonly { name: string; dim: Dimension }[],\n): { forVariables: { name: string; dim?: Dimension }[]; constPairs: Map<string, string> } {\n const constPairs = new Map<string, string>();\n const freeConsts = new Map(constants.map((c) => [normalize(c.name), c.dim]));\n const forVariables: { name: string; dim?: Dimension }[] = [];\n for (const s of sources) {\n if (variables.some((v) => normalize(v.name) === s.name)) {\n forVariables.push(s);\n continue;\n }\n if (freeConsts.has(s.name)) {\n constPairs.set(s.name, s.name);\n freeConsts.delete(s.name);\n continue;\n }\n if (s.dim !== undefined) {\n const varHits = variables.filter((v) => equals(v.dim, s.dim!));\n if (varHits.length > 0) {\n forVariables.push(s);\n continue;\n }\n // h and ħ are both action. A formula that writes one is not the other.\n if (Object.prototype.hasOwnProperty.call(CONSTANTS, s.name)) {\n forVariables.push(s);\n continue;\n }\n const constHits = [...freeConsts].filter(([, dim]) => equals(dim, s.dim!));\n if (constHits.length === 1) {\n constPairs.set(s.name, constHits[0]![0]);\n freeConsts.delete(constHits[0]![0]);\n continue;\n }\n }\n forVariables.push(s);\n }\n return { forVariables, constPairs };\n}\n\n/** A governing variable that is a registered physical constant of the same dimension. */\nfunction isConstant(v: { name: string; dim: Dimension }): boolean {\n const c = CONSTANTS[v.name];\n return c !== undefined && equals(c.dim, v.dim);\n}\n\n/**\n * The catalog bridge through which `wantTarget` names this entry's target: the entry records that\n * it restates that bridge (`restatesBridge`), and the bridge's graph edge has `wantTarget` as its\n * target (persona finding W7: `landauer-erasure-energy` is BE-16's target, and CE-landauer, which\n * restates BE-16, names it `erasure-energy`). A recorded restatement, never a shared dimension.\n */\nfunction targetThroughRestatedBridge(entry: CanonicalEquation, wantTarget: string): string | undefined {\n if (entry.restatesBridge === undefined) return undefined;\n const beId = Number(entry.restatesBridge);\n return CATALOG_GRAPH.find((e) => e.beId === beId && normalize(e.target.name) === wantTarget)?.id;\n}\n\n/** The free (non-constant, non-literal) symbols of an AST, with their dimensions. */\nfunction freeSymbols(node: ExprNode, out: Map<string, Dimension>): Map<string, Dimension> {\n if (node.kind === 'symbol') {\n const literal = Number.isFinite(Number(node.name));\n if (!literal && CONSTANTS[node.name] === undefined && piMultipleValue(node.name) === undefined) {\n out.set(node.name, node.dim);\n }\n return out;\n }\n const args = (node as { args?: readonly ExprNode[] }).args ?? [];\n for (const a of args) freeSymbols(a, out);\n return out;\n}\n\n/**\n * Dimensionless symbols the entry's AST holds that its governing set does not, and that the user\n * names too: CE-ideal-gas writes `P = N k_B T/V` with the count `N` in its AST only (persona finding\n * L6). They join the comparison variables BY NAME only; pairing a dimensionless stub such as\n * `one_minus_e_sq` with any dimensionless user quantity by dimension would compare different laws.\n */\nfunction astOnlyCounts(\n entry: CanonicalEquation,\n userNames: ReadonlySet<string>,\n): { name: string; dim: Dimension }[] {\n if (entry.scalarAst === undefined) return [];\n const governing = new Set(entry.dimensional.governing.map((g) => normalize(g.name)));\n return [...freeSymbols(entry.scalarAst, new Map())]\n .filter(([name, dim]) => /^[A-Za-z][A-Za-z0-9_]*$/.test(name) && equals(dim, DIMENSIONLESS))\n .filter(([name]) => !governing.has(normalize(name)) && userNames.has(normalize(name)))\n .map(([name, dim]) => ({ name, dim }));\n}\n\n/**\n * Every way to map free AST symbols onto governing variables: by name first,\n * then any bijection that respects dimension. One map when each remaining\n * symbol has a unique dimension; several when a product such as m₁ m₂ can be\n * assigned either way. Empty when the counts differ or a symbol has no\n * variable of its dimension. More than 24 bijections is treated as empty —\n * that pairing is not checked, rather than searched.\n */\nfunction symbolAlignments(\n symbols: ReadonlyMap<string, Dimension>,\n governing: readonly { name: string; dim: Dimension }[],\n): Map<string, string>[] {\n if (symbols.size !== governing.length) return [];\n const assignment = new Map<string, string>();\n const free = new Set(governing.map((g) => g.name));\n for (const s of [...symbols.keys()].sort()) {\n if (free.has(s)) {\n assignment.set(s, s);\n free.delete(s);\n }\n }\n const rest = [...symbols.entries()]\n .filter(([s]) => !assignment.has(s))\n .sort(([a], [b]) => a.localeCompare(b));\n const out: Map<string, string>[] = [];\n const CAP = 24;\n const rec = (i: number): void => {\n if (out.length > CAP) return;\n if (i === rest.length) {\n out.push(new Map(assignment));\n return;\n }\n const [s, dim] = rest[i]!;\n const candidates = governing\n .filter((g) => free.has(g.name) && equals(g.dim, dim))\n .map((g) => g.name)\n .sort();\n for (const c of candidates) {\n assignment.set(s, c);\n free.delete(c);\n rec(i + 1);\n free.add(c);\n assignment.delete(s);\n if (out.length > CAP) return;\n }\n };\n rec(0);\n return out.length > CAP ? [] : out;\n}\n\n/** Why an AST could not be aligned, naming a dimensionless stub the user did not. */\nfunction alignmentDetail(\n symbols: ReadonlyMap<string, Dimension>,\n variables: readonly { name: string; dim: Dimension }[],\n): string {\n const named = new Set(variables.map((v) => v.name));\n const stubs = [...symbols.entries()]\n .filter(([name, dim]) => !named.has(name) && equals(dim, DIMENSIONLESS))\n .map(([name]) => name)\n .sort();\n if (symbols.size !== variables.length && stubs.length > 0) {\n const shown = stubs.map((s) => (STUB_GLOSS[s] === undefined ? s : `${s} (${STUB_GLOSS[s]})`));\n return `its formula depends on ${shown.join(', ')}, which your formula does not name`;\n }\n return 'its variables could not be aligned by name or by a unique dimension';\n}\n\n/** True when every alignment produced the same ratio at each fixed point. */\nfunction sameRatios(series: readonly (readonly number[])[]): boolean {\n const first = series[0];\n if (first === undefined) return false;\n return series.every((s) =>\n s.every((r, i) => {\n const r0 = first[i]!;\n return Number.isFinite(r) && Number.isFinite(r0) && r0 !== 0 && Math.abs(r / r0 - 1) <= RATIO_TOLERANCE;\n }),\n );\n}\n\nfunction classify(\n entry: CanonicalEquation,\n ratios: readonly number[],\n recordsPrefactor: boolean,\n): CanonicalComparison {\n const base = { id: entry.id, name: entry.name };\n const r0 = ratios[0]!;\n const constant = ratios.every((r) => Math.abs(r / r0 - 1) <= RATIO_TOLERANCE);\n if (!constant) return { ...base, kind: 'form' };\n if (!recordsPrefactor) {\n return {\n ...base,\n kind: 'prefactor-unchecked',\n detail:\n entry.epistemicStatus === 'dimensional'\n ? 'the registry records its dimensional form only'\n : entry.epistemicStatus === 'fully-quantitative' && entry.fieldEquation !== undefined\n ? 'the registry records its prefactor only in its field equation, and its scalar record is the dimensional monomial'\n : entry.epistemicStatus === 'fully-quantitative'\n ? 'its scalar record is the dimensional monomial only'\n : 'the registry records it only up to a constant',\n };\n }\n return Math.abs(r0 - 1) <= RATIO_TOLERANCE\n ? { ...base, kind: 'agrees', ratio: r0 }\n : { ...base, kind: 'factor', ratio: r0 };\n}\n\n/**\n * Compare a user formula with every canonical equation that has the same\n * target and the same non-constant variables. The target must match by name\n * (after `_` → `-`): pairing it by dimension would reach every law of that\n * dimension. Each source matches a variable by name, or, when the source\n * carries a dimension, by a dimension exactly one remaining variable carries\n * (`velocity` → CE-kinetic-energy's `speed`); such pairs are listed in\n * `paired`. A non-unique pairing is reported as `not-compared`, never guessed.\n * `evaluateUser` receives values keyed by the user's (normalized) source names.\n * Returns one comparison per matching entry, in registry order; empty when\n * no entry matches.\n *\n * @internal\n */\nfunction overrideValue(\n name: string,\n si: number,\n overrides: Readonly<Record<string, number>> | undefined,\n): number {\n if (overrides !== undefined && Object.prototype.hasOwnProperty.call(overrides, name)) return overrides[name]!;\n return si;\n}\n\n/** A short label for a non-SI constant table, or undefined when the table is SI. */\nfunction overrideLabel(overrides: Readonly<Record<string, number>> | undefined): string | undefined {\n if (overrides === undefined) return undefined;\n const bits: string[] = [];\n if (overrides.c === 1) bits.push('c = 1');\n if (overrides.hbar === 1) bits.push('ħ = 1');\n if (overrides.h === 2 * Math.PI) bits.push('h = 2π');\n if (overrides.G === 1) bits.push('G = 1');\n return bits.length === 0 ? undefined : bits.join(', ');\n}\n\n/** Compare a user expression against the canonical equations that share its target and source quantities. `evaluateUser` is called only for the user's expression; each canonical value comes from that entry's `scalarAst` or from its registry monomial. */\nexport function compareWithCanonical(\n target: string,\n sources: readonly ComparisonSource[],\n evaluateUser: (values: Readonly<Record<string, number>>) => number,\n entries: readonly CanonicalEquation[] = CANONICAL_EQUATIONS,\n constantOverrides?: Readonly<Record<string, number>>,\n): CanonicalComparison[] {\n const wantTarget = normalize(target);\n const wantSources = new Map<string, { name: string; dim?: Dimension }>();\n for (const s of sources) {\n const name = normalize(typeof s === 'string' ? s : s.name);\n if (!wantSources.has(name)) wantSources.set(name, typeof s === 'string' ? { name } : { name, dim: s.dim });\n }\n const results: CanonicalComparison[] = [];\n\n for (const entry of entries) {\n const d = entry.dimensional;\n const via = normalize(d.target.name) === wantTarget ? undefined : targetThroughRestatedBridge(entry, wantTarget);\n const alias = (NAME_TABLE.canonicalTargets[entry.id] ?? []).includes(wantTarget);\n if (normalize(d.target.name) !== wantTarget && via === undefined && !alias) continue;\n const targetVia = via === undefined ? {} : { targetVia: { bridge: via, its: d.target.name } };\n let variables = d.governing.filter((g) => !isConstant(g));\n const constants = d.governing.filter(isConstant);\n // W1: sources that restate a governing constant (speed-of-light ↔ c) peel off first so they\n // do not inflate the free-variable count and skip the prefactor check.\n const { forVariables, constPairs } = peelConstantAliases(\n [...wantSources.values()],\n variables,\n constants,\n );\n // A dimensionless group the record does not carry (sound-speed γ) is checked only when the\n // user wrote it. Friedmann's curvature term is CE-friedmann-curvature, not an extension of the flat entry.\n const groupSpec = CANONICAL_GROUP_PREFACTORS.find((g) => g.id === entry.id);\n let boundGroup: string | undefined;\n if (groupSpec) {\n const idx = forVariables.findIndex((s) => s.name === groupSpec.group);\n if (idx >= 0) {\n boundGroup = forVariables[idx]!.name;\n forVariables.splice(idx, 1);\n }\n }\n let pairing = pairSources(forVariables, variables);\n if (pairing === null) {\n // L6: a count the AST holds but the governing set does not (CE-ideal-gas's N), named by the user.\n const counts = astOnlyCounts(entry, new Set(forVariables.map((s) => s.name)));\n if (counts.length > 0) {\n const widened = [...variables, ...counts];\n pairing = pairSources(forVariables, widened);\n if (pairing !== null) variables = widened;\n }\n }\n if (pairing === null) continue;\n if (pairing === 'ambiguous') {\n results.push({\n id: entry.id,\n name: entry.name,\n kind: 'not-compared',\n detail: 'your variable names differ from its names, and they pair with its variables by dimension in more than one way',\n ...targetVia,\n });\n continue;\n }\n const byDimension = [...pairing, ...constPairs]\n .filter(([u, c]) => u !== c)\n .sort(([a], [b]) => a.localeCompare(b));\n const paired = byDimension.length > 0 ? { paired: byDimension } : {};\n const names = variables.map((g) => normalize(g.name)).sort();\n\n const points = FIXED_POINT_EXPONENTS.map((p) => {\n const row: Record<string, number> = Object.fromEntries(names.map((n, i) => [n, Math.pow(1.7 + i, p)]));\n if (boundGroup !== undefined) row['__group'] = Math.pow(2.3, p);\n return row;\n });\n // Constant aliases bind to the registered SI value (same as the canonical AST's CONSTANTS\n // lookup), not to a fixed-point sample — otherwise the ratio would wander with the points.\n const constBindings = Object.fromEntries(\n [...constPairs].map(([u, cName]) => {\n const c = CONSTANTS[cName];\n if (c === undefined) {\n throw new Error(`compareWithCanonical: governing constant '${cName}' is not in CONSTANTS`);\n }\n return [u, overrideValue(cName, c.value, constantOverrides)];\n }),\n );\n const userAt = (p: Readonly<Record<string, number>>) =>\n evaluateUser({\n ...Object.fromEntries([...pairing].map(([u, c]) => [u, p[c]!])),\n ...constBindings,\n ...(boundGroup === undefined ? {} : { [boundGroup]: p['__group']! }),\n });\n\n // A prefactor the entry does not record may come from the sourced table,\n // which lives outside the pinned src/canonical tree.\n const tabled = entry.epistemicStatus === 'fully-quantitative' ? undefined : canonicalPrefactor(entry.id);\n const extraFactor = (p: Readonly<Record<string, number>>): number =>\n boundGroup === undefined || groupSpec === undefined\n ? 1\n : groupSpec.coefficient * Math.pow(p['__group']!, groupSpec.exponent);\n const scale = (flat: number, p: Readonly<Record<string, number>>): number =>\n (tabled ?? 1) * extraFactor(p) * flat;\n let canonicalAt: (p: Readonly<Record<string, number>>) => number;\n if (entry.scalarAst !== undefined) {\n const ast = entry.scalarAst;\n const symbols = freeSymbols(ast, new Map());\n const alignments = symbolAlignments(symbols, variables);\n const at = (alignment: ReadonlyMap<string, string>) => (p: Readonly<Record<string, number>>) =>\n scale(\n evalExpr(ast, {\n ...(constantOverrides ?? {}),\n ...Object.fromEntries([...alignment].map(([sym, g]) => [sym, p[normalize(g)]!])),\n }),\n p,\n );\n if (alignments.length === 0) {\n results.push({\n id: entry.id,\n name: entry.name,\n kind: 'not-compared',\n detail: alignmentDetail(symbols, variables),\n ...paired, ...targetVia,\n });\n continue;\n }\n if (alignments.length === 1) {\n const alignment = alignments[0]!;\n canonicalAt = at(alignment);\n } else {\n let series: number[][];\n try {\n series = alignments.map((alignment) => points.map((p) => userAt(p) / at(alignment)(p)));\n } catch (e) {\n results.push({\n id: entry.id,\n name: entry.name,\n kind: 'not-compared',\n detail: `an evaluation failed (${e instanceof Error ? e.message : String(e)})`,\n ...paired, ...targetVia,\n });\n continue;\n }\n if (!sameRatios(series)) {\n results.push({\n id: entry.id,\n name: entry.name,\n kind: 'not-compared',\n detail: 'swapping its same-dimension symbols changes the ratio, so they were not paired',\n ...paired, ...targetVia,\n });\n continue;\n }\n // The ratio does not depend on which same-dimension symbol takes which\n // variable (m₁ m₂ = m₂ m₁). One assignment is enough; none is named.\n canonicalAt = at(alignments[0]!);\n }\n } else if (d.monomial !== null) {\n // W4: a governing constant takes its SI value, as on the user side and in the AST branch. A\n // name that is neither a variable nor a constant has no value, so the ratio is not finite and\n // the entry is reported as not compared; reading it as 1 made Kepler III \"factor 122404\".\n const monomial = d.monomial;\n const constValues = new Map(\n constants.map((g) => [normalize(g.name), overrideValue(g.name, CONSTANTS[g.name]!.value, constantOverrides)]),\n );\n canonicalAt = (p) =>\n scale(\n Object.entries(monomial).reduce(\n (acc, [n, e]) => acc * Math.pow(p[normalize(n)] ?? constValues.get(normalize(n)) ?? Number.NaN, e),\n 1,\n ),\n p,\n );\n } else {\n continue;\n }\n\n let ratios: number[];\n try {\n ratios = points.map((p) => userAt(p) / canonicalAt(p));\n } catch (e) {\n results.push({\n id: entry.id,\n name: entry.name,\n kind: 'not-compared',\n detail: `an evaluation failed (${e instanceof Error ? e.message : String(e)})`,\n ...paired, ...targetVia,\n });\n continue;\n }\n if (!ratios.every((r) => Number.isFinite(r) && r !== 0)) {\n results.push({ id: entry.id, name: entry.name, kind: 'not-compared', detail: 'a ratio was zero or not finite', ...paired, ...targetVia });\n continue;\n }\n // A monomial-only record carries no prefactor. A fully-quantitative scalar AST does.\n const recordsPrefactor =\n tabled !== undefined ||\n boundGroup !== undefined ||\n (entry.epistemicStatus === 'fully-quantitative' && entry.scalarAst !== undefined);\n const extension =\n boundGroup !== undefined && groupSpec !== undefined\n ? `the dimensionless group ${groupSpec.group} is bound, so the prefactor includes ${groupSpec.coefficient}·${groupSpec.group}^${groupSpec.exponent}`\n : undefined;\n const classified = classify(entry, ratios, recordsPrefactor);\n results.push({\n ...classified,\n ...(extension !== undefined && classified.detail === undefined ? { detail: extension } : {}),\n ...(names.length === 0 ? { constantsOnly: true as const } : {}),\n ...paired, ...targetVia,\n });\n }\n const label = overrideLabel(constantOverrides);\n return label === undefined ? results : results.map((r) => ({ ...r, evaluatedAt: label }));\n}\n\n/**\n * Compare a `TARGET = EXPR` user equation (the `upt map --equation` input) with\n * the canonical registry. Names resolve onto `catalogDims` the way\n * `analyzeUserEquation` resolves them; `pi` and `tau` are the only named numbers.\n * The right-hand side is dimension-checked through `parsePhysics` and evaluated by\n * the active formula parser, the one `upt eval` uses, so a comparison accepts every\n * function `eval` accepts (`ln(2)`, `asin`, `atan2`; persona finding W7). A registered\n * constant takes its SI value, as in the canonical AST, unless\n * `constantOverrides` replaces c, ħ, h or G (`--natural` / `--geometrized`).\n * Returns `[]` when the equation does not parse or no entry matches.\n *\n * @internal\n */\nexport async function compareUserEquation(\n equation: string,\n catalogDims: ReadonlyMap<string, Dimension>,\n options?: { readonly bindShortNames?: boolean; readonly constantOverrides?: Readonly<Record<string, number>> },\n): Promise<CanonicalComparison[]> {\n const dimsIn = new Map(catalogDims);\n for (const [name, dim] of formulaNameDimensions()) {\n if (!dimsIn.has(name)) dimsIn.set(name, dim);\n }\n const catalogNames = new Set(dimsIn.keys());\n const bindShort = options?.bindShortNames === true;\n const declined = (token: string): boolean => !bindShort && token.length === 1 && catalogNames.has(token);\n // W2: same kebab→underscore rewrite as analyzeUserEquation, so comparison and\n // dimensional check see one formula.\n const eq = await parseUserEquation(equation, catalogNames);\n const resolved = new Map(\n eq.sources.map((s) => [s, declined(s) ? s : (resolveQuantityName(s, catalogNames) ?? s)]),\n );\n const target = declined(eq.target) ? eq.target : (resolveQuantityName(eq.target, catalogNames) ?? eq.target);\n const dims: Record<string, Dimension> = {};\n for (const [name, c] of Object.entries(CONSTANTS)) dims[name] = c.dim;\n for (const [s, r] of resolved) {\n dims[s] = declined(s) ? DIMENSIONLESS : (dimsIn.get(r) ?? formulaSymbolDimension(s) ?? DIMENSIONLESS);\n }\n const rhs = eq.text.slice(eq.text.indexOf('=') + 1);\n let compiled: CompiledFormula;\n try {\n await parsePhysics(rhs, dims);\n compiled = (await getFormulaParser()).parse(rhs);\n } catch (error) {\n // \"The equation could not be read\" is a different fact from \"no canonical\n // equation has this target and these variables\"; an empty list says the\n // second. The row carries the parser's message (9.0.0 audit §4 C7).\n return [\n {\n id: target,\n name: equation,\n kind: 'not-compared',\n detail: `the equation did not parse: ${error instanceof Error ? error.message : String(error)}`,\n },\n ];\n }\n const overrides = options?.constantOverrides;\n const constantValues = Object.fromEntries(\n Object.entries(CONSTANTS).map(([name, c]) => [name, overrideValue(name, c.value, overrides)]),\n );\n // A name the catalog does not know carries no dimension, so it never pairs by dimension.\n const sources = [...resolved.entries()].map(([token, r]) => {\n if (declined(token)) return r;\n const dim = dimsIn.get(r);\n return dim === undefined ? r : { name: r, dim };\n });\n return compareWithCanonical(\n target,\n sources,\n (values) =>\n compiled.evaluate({\n ...constantValues,\n ...Object.fromEntries([...resolved].map(([s, r]) => [s, values[normalize(r)]!])),\n }),\n CANONICAL_EQUATIONS,\n overrides,\n );\n}\n\n/**\n * The report lines for a comparison result, shared by `upt map --equation` and\n * `upt derive`. An empty result is itself a line: a dimensional MATCH never\n * checks a prefactor, and the reader must not take silence for a check.\n * @internal\n */\nexport function describeComparisons(cs: readonly CanonicalComparison[]): string[] {\n return cs.length === 0\n ? ['· no canonical equation has this target and these variables, so the prefactor is NOT checked']\n : cs.map(describeComparison);\n}\n\n/** A catalog edge named because the formula's quantities are that edge. @internal */\nexport interface CatalogEdgeMatch {\n readonly id: string;\n readonly label: string;\n /** `exact` when every source is present. `dimensionful` when every omitted source is dimensionless. */\n readonly fit: 'exact' | 'dimensionful';\n}\n\n/** The slice of a catalog edge this report reads. */\ninterface FormulaEdge {\n readonly id: string;\n readonly label: string;\n readonly target: { readonly name: string };\n readonly sources: readonly { readonly name: string; readonly dim: Dimension }[];\n readonly aliases?: Readonly<Record<string, readonly string[]>>;\n}\n\nfunction registeredConstant(name: string, dim: Dimension | undefined): boolean {\n const c = CONSTANTS[name];\n if (c === undefined) return false;\n return dim === undefined || equals(c.dim, dim);\n}\n\nfunction resolvedFormulaSources(\n edge: FormulaEdge,\n sources: readonly { readonly name: string; readonly dim?: Dimension }[],\n): string[] {\n const alias = new Map<string, string>();\n for (const [quantity, keys] of Object.entries(edge.aliases ?? {})) {\n for (const key of keys) alias.set(normalize(key), normalize(quantity));\n }\n const out: string[] = [];\n for (const source of sources) {\n const name = normalize(source.name);\n if (registeredConstant(name, source.dim)) continue;\n out.push(alias.get(name) ?? name);\n }\n return out;\n}\n\nfunction sameSet(a: readonly string[], b: ReadonlySet<string>): boolean {\n if (a.length !== b.size) return false;\n const seen = new Set<string>();\n for (const name of a) {\n if (!b.has(name) || seen.has(name)) return false;\n seen.add(name);\n }\n return true;\n}\n\n/**\n * Catalog edges whose target and sources are this formula.\n *\n * A registered constant (`c`, `k_B`) is not a source. An omitted source that\n * is dimensionless is not a different edge: it cannot appear in a unique\n * monomial. An omitted or extra dimensionful source is a different edge.\n * Two edges that both fit only by dropping a dimensionless source are not\n * named: a shared quantity is not this report.\n * @internal\n */\nexport function matchingCatalogEdges(\n target: string,\n sources: readonly ({ readonly name: string; readonly dim?: Dimension } | string)[],\n edges: readonly FormulaEdge[] = CATALOG_GRAPH,\n): CatalogEdgeMatch[] {\n const given = sources.map((source) => (typeof source === 'string' ? { name: source } : source));\n const want = normalize(target);\n const exact: CatalogEdgeMatch[] = [];\n const dimensionful: CatalogEdgeMatch[] = [];\n for (const edge of edges) {\n if (normalize(edge.target.name) !== want) continue;\n const got = resolvedFormulaSources(edge, given);\n if (got.length === 0) continue;\n const all = new Set(edge.sources.map((source) => normalize(source.name)));\n if (sameSet(got, all)) {\n exact.push({ id: edge.id, label: edge.label, fit: 'exact' });\n continue;\n }\n const dimensional = new Set(\n edge.sources.filter((source) => !equals(source.dim, DIMENSIONLESS)).map((source) => normalize(source.name)),\n );\n const omitted = edge.sources.filter((source) => !got.includes(normalize(source.name)));\n if (sameSet(got, dimensional) && omitted.every((source) => equals(source.dim, DIMENSIONLESS))) {\n dimensionful.push({ id: edge.id, label: edge.label, fit: 'dimensionful' });\n }\n }\n if (exact.length > 0) return exact;\n return dimensionful.length === 1 ? dimensionful : [];\n}\n\n/**\n * The known-relation report: the canonical comparison, then a catalog edge\n * whose target and sources are the formula. Both `upt derive` and `upt map`\n * print this. The canonical sentence stays when that half has nothing to check.\n * @internal\n */\nexport function describeKnownRelation(\n comparisons: readonly CanonicalComparison[],\n target: string,\n sources: readonly ({ readonly name: string; readonly dim?: Dimension } | string)[],\n edges: readonly FormulaEdge[] = CATALOG_GRAPH,\n): string[] {\n const lines = describeComparisons(comparisons);\n for (const edge of matchingCatalogEdges(target, sources, edges)) {\n const who = `${edge.id} (${edge.label})`;\n lines.push(\n edge.fit === 'exact'\n ? `● ${who}: the target and the sources are this catalog edge`\n : `● ${who}: the target and the dimensionful sources are this catalog edge`,\n );\n }\n return lines;\n}\n\n/** One report line per comparison. @internal */\nexport function describeComparison(c: CanonicalComparison): string {\n const pairs = [\n ...(c.targetVia === undefined\n ? []\n : [`your target as its ${c.targetVia.its}, the target of ${c.targetVia.bridge}, which it restates`]),\n ...(c.paired === undefined ? [] : [`${c.paired.map(([yours, its]) => `your ${yours} as its ${its}`).join(', ')}, paired by dimension`]),\n ];\n const who = `${c.id} (${c.name}${pairs.length === 0 ? '' : `; ${pairs.join('; ')}`})`;\n const at =\n c.constantsOnly === true\n ? `at the ${c.evaluatedAt ?? 'SI'} constant values (no free variable, so only the value is compared, not the form)`\n : `at ${FIXED_POINT_EXPONENTS.length} fixed points${c.evaluatedAt === undefined ? '' : ` (${c.evaluatedAt})`}`;\n switch (c.kind) {\n case 'agrees':\n return `✓ agrees with ${who}, prefactor included: yours/canonical = 1 ${at}${c.detail ? ` (${c.detail})` : ''}`;\n case 'factor':\n return `⚠ differs from ${who} by a constant factor: yours/canonical = ${c.ratio!.toPrecision(6)} ${at}`;\n case 'form':\n return `⚠ differs in FORM from ${who}: yours/canonical is not constant across ${FIXED_POINT_EXPONENTS.length} fixed points`;\n case 'prefactor-unchecked':\n return `· same form as ${who}, but ${c.detail}, so your prefactor is NOT checked`;\n case 'not-compared':\n return `· ${who} shares your target and variables, but was not compared: ${c.detail}`;\n }\n}\n"]}
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
* established textbook physics ALONE, with the speculative bridge catalog
|
|
6
6
|
* excluded.
|
|
7
7
|
*
|
|
8
|
-
* WHY this exists: `CATALOG_GRAPH` mixes
|
|
9
|
-
*
|
|
10
|
-
* speculation. Feeding ONLY canonical equations gives (a) a new-candidate
|
|
8
|
+
* WHY this exists: `CATALOG_GRAPH` mixes established bridges with speculative
|
|
9
|
+
* ones (the counts per status are NOTES.md's), so a `promising` discovery
|
|
10
|
+
* there is polluted by speculation. Feeding ONLY canonical equations gives (a) a new-candidate
|
|
11
11
|
* review surface motivated by textbook physics, and (b) a regression harness —
|
|
12
12
|
* discovery on canonical-only must introduce no numerical contradiction
|
|
13
13
|
* (standard physics, fed to the inference suite, stays self-consistent).
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
* `confidence: 'established'` — the canonical graph IS the anchored core.
|
|
25
25
|
* - `kind: 'law'` (within-domain ground truth, not a cross-regime bridge);
|
|
26
26
|
* `beId: null` (not a catalog bridge). **Annotation-correctness note:**
|
|
27
|
-
* `toEdge` hardcodes `kind:'law'
|
|
28
|
-
* The
|
|
29
|
-
* path and no delta to measure.
|
|
27
|
+
* `toEdge` hardcodes `kind:'law'`; the attributes an edge carries do not
|
|
28
|
+
* decide its kind here. The attribute mapping is annotation-only; there
|
|
29
|
+
* is no edge-kind path and no delta to measure.
|
|
30
30
|
* - Evaluator: the dimensional MONOMIAL gives the power law over the variable
|
|
31
31
|
* sources, times the baked constant factor. A fully-quantitative scalar
|
|
32
32
|
* AST whose extra factors are a closed dimensionless coefficient
|
|
@@ -65,8 +65,8 @@
|
|
|
65
65
|
import type { BridgeEdge } from './edge.js';
|
|
66
66
|
import type { CanonicalEquation } from '../canonical/canonical-equation.js';
|
|
67
67
|
import type { Dimension } from '../dimensional/types.js';
|
|
68
|
-
/** A universal constant a canonical `governing` list may name: SI value + dim. */
|
|
69
|
-
interface ConstantDef {
|
|
68
|
+
/** A universal constant a canonical `governing` list may name: SI value + dim. Named by the public `CANONICAL_CONSTANTS`. @public */
|
|
69
|
+
export interface ConstantDef {
|
|
70
70
|
readonly value: number;
|
|
71
71
|
readonly dim: Dimension;
|
|
72
72
|
}
|
|
@@ -94,5 +94,4 @@ export declare function canonicalToEdges(equations?: readonly CanonicalEquation[
|
|
|
94
94
|
* @internal
|
|
95
95
|
*/
|
|
96
96
|
export declare const CANONICAL_GRAPH: readonly BridgeEdge[];
|
|
97
|
-
export {};
|
|
98
97
|
//# sourceMappingURL=canonical-graph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical-graph.d.ts","sourceRoot":"","sources":["../../src/composition/canonical-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"canonical-graph.d.ts","sourceRoot":"","sources":["../../src/composition/canonical-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,WAAW,CAAC;AAI5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAI5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAWzD,qIAAqI;AACrI,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAIrE,CAAC;AA2aF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,GAAE,SAAS,iBAAiB,EAAwB,GAC5D,UAAU,EAAE,CAEd;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,UAAU,EAAuB,CAAC"}
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
* established textbook physics ALONE, with the speculative bridge catalog
|
|
6
6
|
* excluded.
|
|
7
7
|
*
|
|
8
|
-
* WHY this exists: `CATALOG_GRAPH` mixes
|
|
9
|
-
*
|
|
10
|
-
* speculation. Feeding ONLY canonical equations gives (a) a new-candidate
|
|
8
|
+
* WHY this exists: `CATALOG_GRAPH` mixes established bridges with speculative
|
|
9
|
+
* ones (the counts per status are NOTES.md's), so a `promising` discovery
|
|
10
|
+
* there is polluted by speculation. Feeding ONLY canonical equations gives (a) a new-candidate
|
|
11
11
|
* review surface motivated by textbook physics, and (b) a regression harness —
|
|
12
12
|
* discovery on canonical-only must introduce no numerical contradiction
|
|
13
13
|
* (standard physics, fed to the inference suite, stays self-consistent).
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
* `confidence: 'established'` — the canonical graph IS the anchored core.
|
|
25
25
|
* - `kind: 'law'` (within-domain ground truth, not a cross-regime bridge);
|
|
26
26
|
* `beId: null` (not a catalog bridge). **Annotation-correctness note:**
|
|
27
|
-
* `toEdge` hardcodes `kind:'law'
|
|
28
|
-
* The
|
|
29
|
-
* path and no delta to measure.
|
|
27
|
+
* `toEdge` hardcodes `kind:'law'`; the attributes an edge carries do not
|
|
28
|
+
* decide its kind here. The attribute mapping is annotation-only; there
|
|
29
|
+
* is no edge-kind path and no delta to measure.
|
|
30
30
|
* - Evaluator: the dimensional MONOMIAL gives the power law over the variable
|
|
31
31
|
* sources, times the baked constant factor. A fully-quantitative scalar
|
|
32
32
|
* AST whose extra factors are a closed dimensionless coefficient
|
|
@@ -62,6 +62,8 @@
|
|
|
62
62
|
*
|
|
63
63
|
* @module composition/canonical-graph
|
|
64
64
|
*/
|
|
65
|
+
import { regimeAttributesOf } from './quantity.js';
|
|
66
|
+
import { AXES } from './axes.js';
|
|
65
67
|
import { CANONICAL_EQUATIONS } from '../canonical/registry.js';
|
|
66
68
|
import { applyCarrierSignPolicy } from '../bridges/carrier-sign.js';
|
|
67
69
|
import { CONSTANT_REGISTRY, CONSTANTS, piMultipleValue } from '../dimensional/symbolic-constants.js';
|
|
@@ -69,6 +71,7 @@ import { DIMENSIONLESS } from '../dimensional/types.js';
|
|
|
69
71
|
import { equals } from '../dimensional/algebra.js';
|
|
70
72
|
import { CANONICAL_GROUP_PREFACTORS, canonicalGroupPrefactor, canonicalPrefactor } from './canonical-prefactors.js';
|
|
71
73
|
import { evalExpr } from './expr-eval.js';
|
|
74
|
+
import { monomialExponents } from './formula-shape.js';
|
|
72
75
|
import { HoldsError, holds } from '../bridges/holds.js';
|
|
73
76
|
import { formulaNames, formulaScope } from '../bridges/expr-parse.js';
|
|
74
77
|
/**
|
|
@@ -97,19 +100,24 @@ const constantValue = (name, dim) => {
|
|
|
97
100
|
return c !== undefined && equals(c.dim, dim) ? c.value : null;
|
|
98
101
|
};
|
|
99
102
|
/**
|
|
100
|
-
* Carry the
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
+
* Carry every registry axis the canonical regime states under the same
|
|
104
|
+
* vocabulary (scale, force, symmetry), plus information through `INFO_MAP`,
|
|
105
|
+
* whose spelling differs. `TensorIndices.topology` is a number, not a
|
|
106
|
+
* `TopologyAxis`, and `dimension` is not a registry axis; neither is carried.
|
|
107
|
+
* The result is checked against the registry, so a canonical regime value
|
|
108
|
+
* outside an axis's value list is a load-time error, not an unstated axis.
|
|
103
109
|
*/
|
|
104
110
|
function attributesOf(eq) {
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
111
|
+
const stated = {};
|
|
112
|
+
for (const { name } of AXES) {
|
|
113
|
+
const value = eq.regime[name];
|
|
114
|
+
if (name === 'information' || typeof value !== 'string')
|
|
115
|
+
continue;
|
|
116
|
+
stated[name] = value;
|
|
117
|
+
}
|
|
110
118
|
if (eq.regime.information)
|
|
111
|
-
|
|
112
|
-
return
|
|
119
|
+
stated['information'] = INFO_MAP[eq.regime.information];
|
|
120
|
+
return regimeAttributesOf(stated, `canonical ${eq.id} regime`);
|
|
113
121
|
}
|
|
114
122
|
const PERMISSIVE_DOMAIN = {
|
|
115
123
|
description: 'standard-physics regime (canonical L-layer)',
|
|
@@ -127,7 +135,7 @@ function domainOf(eq, sourceNames) {
|
|
|
127
135
|
description: text,
|
|
128
136
|
predicate: (inputs) => {
|
|
129
137
|
try {
|
|
130
|
-
return holds(text, inputs, formulaScope(), [...formulaNames(), ...sourceNames]);
|
|
138
|
+
return holds(text, inputs, formulaScope(), [...formulaNames(), ...sourceNames], sourceNames);
|
|
131
139
|
}
|
|
132
140
|
catch (error) {
|
|
133
141
|
if (error instanceof HoldsError)
|
|
@@ -234,56 +242,6 @@ function recordedDimensionlessCoefficient(eq) {
|
|
|
234
242
|
return undefined;
|
|
235
243
|
return c;
|
|
236
244
|
}
|
|
237
|
-
/**
|
|
238
|
-
* Exponents of every symbol in a product, quotient, or integer power.
|
|
239
|
-
* Undefined for a sum or any node that is not that monomial.
|
|
240
|
-
*/
|
|
241
|
-
function monomialExponents(node) {
|
|
242
|
-
if (node === undefined)
|
|
243
|
-
return undefined;
|
|
244
|
-
if (node.kind === 'symbol')
|
|
245
|
-
return new Map([[node.name, 1]]);
|
|
246
|
-
if (node.kind !== 'op')
|
|
247
|
-
return undefined;
|
|
248
|
-
if (node.op === '*') {
|
|
249
|
-
const acc = new Map();
|
|
250
|
-
for (const arg of node.args) {
|
|
251
|
-
const part = monomialExponents(arg);
|
|
252
|
-
if (part === undefined)
|
|
253
|
-
return undefined;
|
|
254
|
-
for (const [name, exp] of part)
|
|
255
|
-
acc.set(name, (acc.get(name) ?? 0) + exp);
|
|
256
|
-
}
|
|
257
|
-
return acc;
|
|
258
|
-
}
|
|
259
|
-
if (node.op === '/') {
|
|
260
|
-
if (node.args.length !== 2)
|
|
261
|
-
return undefined;
|
|
262
|
-
const numerator = monomialExponents(node.args[0]);
|
|
263
|
-
const denominator = monomialExponents(node.args[1]);
|
|
264
|
-
if (numerator === undefined || denominator === undefined)
|
|
265
|
-
return undefined;
|
|
266
|
-
for (const [name, exp] of denominator)
|
|
267
|
-
numerator.set(name, (numerator.get(name) ?? 0) - exp);
|
|
268
|
-
return numerator;
|
|
269
|
-
}
|
|
270
|
-
if (node.op === '^') {
|
|
271
|
-
const base = node.args[0];
|
|
272
|
-
const expNode = node.args[1];
|
|
273
|
-
if (base === undefined || expNode === undefined || expNode.kind !== 'symbol')
|
|
274
|
-
return undefined;
|
|
275
|
-
const exp = Number(expNode.name);
|
|
276
|
-
if (!Number.isFinite(exp))
|
|
277
|
-
return undefined;
|
|
278
|
-
const inner = monomialExponents(base);
|
|
279
|
-
if (inner === undefined)
|
|
280
|
-
return undefined;
|
|
281
|
-
for (const [name, innerExp] of inner)
|
|
282
|
-
inner.set(name, innerExp * exp);
|
|
283
|
-
return inner;
|
|
284
|
-
}
|
|
285
|
-
return undefined;
|
|
286
|
-
}
|
|
287
245
|
/**
|
|
288
246
|
* Dimensionless counts a fully-quantitative AST multiplies in and Buckingham
|
|
289
247
|
* cannot see. `scalar-up-to-constant` stays excluded: that stub is the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical-graph.js","sourceRoot":"","sources":["../../src/composition/canonical-graph.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"canonical-graph.js","sourceRoot":"","sources":["../../src/composition/canonical-graph.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Canonical-only graph — project the standard-physics L-layer\n * (`CANONICAL_EQUATIONS`) into the composition-graph edge vocabulary so the\n * discovery/analysis funnel (`upt discover` / `candidates` / `map`) can run on\n * established textbook physics ALONE, with the speculative bridge catalog\n * excluded.\n *\n * WHY this exists: `CATALOG_GRAPH` mixes established bridges with speculative\n * ones (the counts per status are NOTES.md's), so a `promising` discovery\n * there is polluted by speculation. Feeding ONLY canonical equations gives (a) a new-candidate\n * review surface motivated by textbook physics, and (b) a regression harness —\n * discovery on canonical-only must introduce no numerical contradiction\n * (standard physics, fed to the inference suite, stays self-consistent).\n *\n * DESIGN — parity with the bridge graph:\n * - Universal constants (G, c, ℏ, k_B, ε₀, σ_sb, b, e) are BAKED INTO the\n * evaluator, exactly as the catalog edges bake them — they are not graph\n * nodes. This keeps the candidate proposer about physical OBSERVABLES and\n * lets the numeric filter fire from the standard `{ mass }` anchor (an\n * anchor cannot supply G/c/ℏ). A `governing` entry is a constant iff its\n * name is registered in `CANONICAL_CONSTANT_SI`; everything else is a\n * physical variable and becomes a source/target node.\n * - Every canonical equation is `established` physics, so every edge is\n * `confidence: 'established'` — the canonical graph IS the anchored core.\n * - `kind: 'law'` (within-domain ground truth, not a cross-regime bridge);\n * `beId: null` (not a catalog bridge). **Annotation-correctness note:**\n * `toEdge` hardcodes `kind:'law'`; the attributes an edge carries do not\n * decide its kind here. The attribute mapping is annotation-only; there\n * is no edge-kind path and no delta to measure.\n * - Evaluator: the dimensional MONOMIAL gives the power law over the variable\n * sources, times the baked constant factor. A fully-quantitative scalar\n * AST whose extra factors are a closed dimensionless coefficient\n * (4π, ln 2, 8π/3, …) multiplies that coefficient on the Buckingham path,\n * including a minus sign. The sourced prefactor table owns the factor\n * for an AST that is intentionally constant-free, so that path does not\n * multiply the AST coefficient again. A null monomial, or a dimensionless\n * count, is evaluated from the AST, which already folded those leaves.\n * A sourced prefactor from `canonicalPrefactor` multiplies as well. A dimensionless\n * group in `CANONICAL_GROUP_PREFACTORS` multiplies only when that input is\n * present (`√γ` for sound speed). Absent, a dimensional entry with no\n * sourced prefactor returns no number. That table is\n * outside this tree. `scalar-up-to-constant` is not a license to drop ½,\n * 2π, or 6π. A sourced 1 stays a value. A fully-quantitative dimensionless count (`N`,\n * `1-e²`) is a source in `formulaFactors`, not a stub that drops the\n * rest of the coefficient: the evaluator multiplies it, and a missing\n * count does not return the count-free value. A `scalar-up-to-constant`\n * stub (Jarzynski's log average) stays out of that list. A G-closure\n * is not given a second constant here. Where\n * dimensions cannot pin a monomial\n * (`monomial: null`), a fully-quantitative product, quotient, or integer\n * power is evaluated from that AST, so a numeric leaf (4, 6π, 8π) is not\n * dropped and Newton's two same-dim masses still return G m₁ m₂ / r².\n * A fully-quantitative sum or transcendental (Carnot, the first law, the\n * Boltzmann factor) is evaluated from that same AST. A\n * `scalar-up-to-constant` stub still carries a NaN evaluator;\n * `retrodict` accepts only finite derivations, so it abstains on those\n * rather than inventing a monomial or presenting the dropped ½ as the law.\n *\n * The public counterpart to `CATALOG_GRAPH` (the bridge-catalog graph): exported\n * from the package manifest and surfaced via the CLI's `--source=canonical`\n * flag on `discover` / `candidates` / `map`.\n *\n * @module composition/canonical-graph\n */\n\nimport type { BridgeEdge, ValidityDomain } from './edge.js';\nimport type { Quantity, RegimeAttributes } from './quantity.js';\nimport { regimeAttributesOf } from './quantity.js';\nimport { AXES } from './axes.js';\nimport type { CanonicalEquation } from '../canonical/canonical-equation.js';\nimport { CANONICAL_EQUATIONS } from '../canonical/registry.js';\nimport { applyCarrierSignPolicy } from '../bridges/carrier-sign.js';\nimport { CONSTANT_REGISTRY, CONSTANTS, piMultipleValue } from '../dimensional/symbolic-constants.js';\nimport type { Dimension } from '../dimensional/types.js';\nimport type { InformationMeasure } from '../core/types.js';\nimport { CHARGE, DIMENSIONLESS, MASS } from '../dimensional/types.js';\nimport { equals } from '../dimensional/algebra.js';\nimport type { ExprNode } from '../dimensional/validator.js';\nimport { CANONICAL_GROUP_PREFACTORS, canonicalGroupPrefactor, canonicalPrefactor } from './canonical-prefactors.js';\nimport { evalExpr } from './expr-eval.js';\nimport { monomialExponents } from './formula-shape.js';\nimport { HoldsError, holds } from '../bridges/holds.js';\nimport { formulaNames, formulaScope } from '../bridges/expr-parse.js';\n\n/** A universal constant a canonical `governing` list may name: SI value + dim. Named by the public `CANONICAL_CONSTANTS`. @public */\nexport interface ConstantDef {\n readonly value: number;\n readonly dim: Dimension;\n}\n\n/**\n * The universal constants a canonical `governing` list may name, under every\n * registered spelling, with SI value AND dimension: the canonical rows of the\n * constant registry. A governing entry is BAKED into the evaluator iff its\n * name AND dimension match an entry here; everything else is a physical\n * variable (a graph node). The dimension guard is load-bearing: it stops a\n * future same-named physical variable (e.g. orbital eccentricity `e`,\n * dimensionless) from being silently replaced by a constant of the same name.\n */\nexport const CANONICAL_CONSTANTS: Readonly<Record<string, ConstantDef>> = Object.fromEntries(\n CONSTANT_REGISTRY.filter((row) => row.canonical).flatMap((row) =>\n [row.name, ...row.spellings].map((spelling) => [spelling, { value: row.value, dim: row.dim }]),\n ),\n);\n\n/**\n * Map camelCase `InformationMeasure` (from canonical regime) to kebab-case\n * `RegimeAttributes.information` (for composition graph).\n */\nconst INFO_MAP: Record<InformationMeasure, NonNullable<RegimeAttributes['information']>> = {\n vonNeumann: 'von-neumann',\n shannon: 'shannon',\n kolmogorov: 'kolmogorov',\n quantumDiscord: 'discord',\n};\n\n/** A governing entry is a baked constant iff its name AND dimension match. */\nconst constantValue = (name: string, dim: Dimension): number | null => {\n const c = CANONICAL_CONSTANTS[name];\n return c !== undefined && equals(c.dim, dim) ? c.value : null;\n};\n\n/**\n * Carry every registry axis the canonical regime states under the same\n * vocabulary (scale, force, symmetry), plus information through `INFO_MAP`,\n * whose spelling differs. `TensorIndices.topology` is a number, not a\n * `TopologyAxis`, and `dimension` is not a registry axis; neither is carried.\n * The result is checked against the registry, so a canonical regime value\n * outside an axis's value list is a load-time error, not an unstated axis.\n */\nfunction attributesOf(eq: CanonicalEquation): RegimeAttributes {\n const stated: Record<string, string> = {};\n for (const { name } of AXES) {\n const value = (eq.regime as Readonly<Record<string, unknown>>)[name];\n if (name === 'information' || typeof value !== 'string') continue;\n stated[name] = value;\n }\n if (eq.regime.information) stated['information'] = INFO_MAP[eq.regime.information];\n return regimeAttributesOf(stated, `canonical ${eq.id} regime`);\n}\n\nconst PERMISSIVE_DOMAIN: ValidityDomain = {\n description: 'standard-physics regime (canonical L-layer)',\n predicate: () => true,\n};\n\n/**\n * The validity domain of `eq`: its stated condition over the source names, or\n * the permissive domain when none is stated. An unbound name is a violation.\n */\nfunction domainOf(eq: CanonicalEquation, sourceNames: readonly string[]): ValidityDomain {\n const text = eq.holds;\n if (text === undefined) return PERMISSIVE_DOMAIN;\n return {\n description: text,\n predicate: (inputs) => {\n try {\n return holds(text, inputs, formulaScope(), [...formulaNames(), ...sourceNames], sourceNames);\n } catch (error) {\n if (error instanceof HoldsError) return false;\n throw error;\n }\n },\n };\n}\n\n/** A registered or literal dimensionless number, or undefined when `name` is not one. */\nfunction dimensionlessLeaf(name: string): number | undefined {\n const c = CONSTANTS[name];\n if (c !== undefined && equals(c.dim, DIMENSIONLESS)) return c.value;\n const pi = piMultipleValue(name);\n if (pi !== undefined) return pi;\n const n = Number(name);\n return Number.isFinite(n) ? n : undefined;\n}\n\n/**\n * The dimensionless coefficient of a product or quotient. Dimensionful symbols\n * contribute 1 — the monomial evaluator already carries them. A sum, a\n * non-scalar arm, or a non-literal exponent is not a closed coefficient.\n */\nfunction dimensionlessCoefficient(node: ExprNode): number | undefined {\n if (node.kind === 'symbol') {\n const v = dimensionlessLeaf(node.name);\n return v !== undefined ? v : 1;\n }\n if (node.kind !== 'op') return undefined;\n if (node.op === '*') {\n let acc = 1;\n for (const a of node.args) {\n const c = dimensionlessCoefficient(a);\n if (c === undefined) return undefined;\n acc *= c;\n }\n return acc;\n }\n if (node.op === '/') {\n if (node.args.length !== 2) return undefined;\n const n = dimensionlessCoefficient(node.args[0]!);\n const d = dimensionlessCoefficient(node.args[1]!);\n if (n === undefined || d === undefined || d === 0) return undefined;\n return n / d;\n }\n if (node.op === '^') {\n const base = node.args[0];\n const exp = node.args[1];\n if (base === undefined || exp === undefined || exp.kind !== 'symbol') return undefined;\n const e = Number(exp.name);\n if (!Number.isFinite(e)) return undefined;\n if (base.kind === 'symbol') {\n const v = dimensionlessLeaf(base.name);\n return v !== undefined ? Math.pow(v, e) : 1;\n }\n const inner = dimensionlessCoefficient(base);\n return inner === undefined ? undefined : Math.pow(inner, e);\n }\n return undefined;\n}\n\n/** A symbol the coefficient walker would treat as 1 but that is not a constant or a governing name. */\nfunction hasUnresolvedStub(node: ExprNode, governing: ReadonlySet<string>): boolean {\n if (node.kind === 'symbol') {\n if (dimensionlessLeaf(node.name) !== undefined) return false;\n if (governing.has(node.name)) return false;\n if (node.name in CONSTANTS) return false;\n return true;\n }\n if (node.kind === 'op') return node.args.some((a) => hasUnresolvedStub(a, governing));\n return true;\n}\n\n/**\n * The closed dimensionless factor a fully-quantitative AST records in front of\n * its dimensional monomial. `undefined` when there is nothing to multiply\n * (no AST, not fully quantitative, a stub, a sum, a factor of +1, or a factor\n * the sourced prefactor table already owns).\n */\nfunction recordedDimensionlessCoefficient(eq: CanonicalEquation): number | undefined {\n if (eq.epistemicStatus !== 'fully-quantitative' || eq.scalarAst === undefined) return undefined;\n // The table is the sourced multiplier for an AST that stays constant-free.\n // Multiplying the AST as well would count that factor twice.\n if (canonicalPrefactor(eq.id) !== undefined) return undefined;\n const governing = new Set(eq.dimensional.governing.map((g) => g.name));\n if (hasUnresolvedStub(eq.scalarAst, governing)) return undefined;\n const c = dimensionlessCoefficient(eq.scalarAst);\n if (c === undefined || !Number.isFinite(c) || c === 0) return undefined;\n if (Math.abs(c - 1) < 1e-12) return undefined;\n return c;\n}\n\n/**\n * Dimensionless counts a fully-quantitative AST multiplies in and Buckingham\n * cannot see. `scalar-up-to-constant` stays excluded: that stub is the\n * unfixed factor, not a required input.\n */\nfunction formulaFactorExponents(eq: CanonicalEquation): Record<string, number> {\n if (eq.epistemicStatus !== 'fully-quantitative' || eq.scalarAst === undefined) return {};\n const powers = monomialExponents(eq.scalarAst);\n if (powers === undefined) return {};\n const governing = new Set(eq.dimensional.governing.map((g) => g.name));\n const dims = new Map<string, Dimension>();\n const collectDims = (node: ExprNode): void => {\n if (node.kind === 'symbol') dims.set(node.name, node.dim);\n else if (node.kind === 'op') for (const arg of node.args) collectDims(arg);\n };\n collectDims(eq.scalarAst);\n const factors: Record<string, number> = {};\n for (const [name, exp] of powers) {\n if (exp === 0) continue;\n const dim = dims.get(name);\n if (dim === undefined || !equals(dim, DIMENSIONLESS)) continue;\n if (dimensionlessLeaf(name) !== undefined) continue;\n if (governing.has(name) || name in CONSTANTS) continue;\n factors[name] = exp;\n }\n return factors;\n}\n\ntype InputParity = 'even' | 'odd' | 'neither' | 'absent';\n\n/**\n * Sign parity of `node` as a function of `name`. A product of two odd\n * factors is even. An absolute value is even. An even integer power is\n * even. A fractional power of an even subexpression stays even\n * (`√(q²)`), and a fractional power of an odd one is not a magnitude.\n */\nfunction inputParity(node: ExprNode, name: string): InputParity {\n if (node.kind === 'symbol') return node.name === name ? 'odd' : 'absent';\n if (node.kind === 'abs') {\n const inner = inputParity(node.arg, name);\n if (inner === 'absent' || inner === 'neither') return inner;\n return 'even';\n }\n if (node.kind === 'transcendental' || node.kind === 'dirac-delta') {\n const inner = inputParity(node.arg, name);\n return inner === 'absent' ? 'absent' : 'neither';\n }\n if (node.kind !== 'op') return 'neither';\n if (node.op === '+' || node.op === '-') {\n const parts = node.args.map((arg) => inputParity(arg, name)).filter((p) => p !== 'absent');\n if (parts.length === 0) return 'absent';\n if (parts.some((p) => p === 'neither')) return 'neither';\n if (parts.every((p) => p === 'even')) return 'even';\n if (parts.every((p) => p === 'odd')) return 'odd';\n return 'neither';\n }\n if (node.op === '*' || node.op === '/') {\n let acc: InputParity = 'absent';\n for (const arg of node.args) {\n const part = inputParity(arg, name);\n if (part === 'neither') return 'neither';\n if (part === 'absent') continue;\n if (acc === 'absent') acc = part;\n else if (acc === 'odd' && part === 'odd') acc = 'even';\n else if (acc === 'odd' || part === 'odd') acc = 'odd';\n else acc = 'even';\n }\n return acc;\n }\n if (node.op === '^') {\n const base = node.args[0];\n const expNode = node.args[1];\n if (base === undefined || expNode === undefined || expNode.kind !== 'symbol') return 'neither';\n const exp = Number(expNode.name);\n const inner = inputParity(base, name);\n if (!Number.isFinite(exp) || inner === 'neither') return inner === 'absent' ? 'absent' : 'neither';\n if (inner === 'absent' || exp === 0) return 'absent';\n if (Number.isInteger(exp) && Math.abs(exp) % 2 === 0) return 'even';\n if (Number.isInteger(exp)) return inner;\n return inner === 'even' ? 'even' : 'neither';\n }\n return 'neither';\n}\n\n/** Names whose scalar AST is an even function. A magnitude uses these absolutely. */\nfunction evenInputNames(node: ExprNode | undefined): ReadonlySet<string> {\n if (node === undefined) return new Set();\n const names = new Set<string>();\n const walk = (n: ExprNode): void => {\n if (n.kind === 'symbol') names.add(n.name);\n else if (n.kind === 'op') for (const arg of n.args) walk(arg);\n else if (n.kind === 'abs' || n.kind === 'transcendental' || n.kind === 'dirac-delta') walk(n.arg);\n };\n walk(node);\n const even = new Set<string>();\n for (const name of names) {\n if (inputParity(node, name) === 'even') even.add(name);\n }\n return even;\n}\n\n/** Evaluate a fully-quantitative monomial AST, including its dimensionless counts. */\nfunction evaluateAstMonomial(\n eq: CanonicalEquation,\n powers: ReadonlyMap<string, number>,\n): (inputs: Record<string, number>) => number {\n const dimByName = new Map(eq.dimensional.governing.map((g) => [g.name, g.dim]));\n let constFactor = 1;\n const varExps: Array<[string, number]> = [];\n for (const [name, exp] of powers) {\n if (exp === 0) continue;\n const leaf = dimensionlessLeaf(name);\n if (leaf !== undefined) {\n constFactor *= Math.pow(leaf, exp);\n continue;\n }\n const dim = dimByName.get(name) ?? CONSTANTS[name]?.dim;\n const cv = dim !== undefined ? constantValue(name, dim) : null;\n if (cv !== null) constFactor *= Math.pow(cv, exp);\n else varExps.push([name, exp]);\n }\n return (inputs: Record<string, number>): number => {\n let v = constFactor;\n for (const [name, exp] of varExps) {\n const x = inputs[name];\n if (x === undefined || !Number.isFinite(x)) return Number.NaN;\n v *= Math.pow(x, exp);\n }\n return v;\n };\n}\n\n/** Numeric literal symbols (`1`, `-1`) the monomial path already folded. */\nfunction literalInputs(node: ExprNode, inputs: Record<string, number>): Record<string, number> {\n const scope: Record<string, number> = { ...inputs };\n const walk = (current: ExprNode): void => {\n if (current.kind === 'symbol') {\n if (Object.hasOwn(scope, current.name)) return;\n const numeric = Number(current.name);\n if (current.name.trim() !== '' && Number.isFinite(numeric)) scope[current.name] = numeric;\n return;\n }\n if (current.kind === 'op') for (const arg of current.args) walk(arg);\n else if (current.kind === 'abs' || current.kind === 'transcendental' || current.kind === 'dirac-delta') walk(current.arg);\n };\n walk(node);\n return scope;\n}\n\n/**\n * A fully-quantitative sum or transcendental. The monomial exponent walk\n * cannot see it. `scalar-up-to-constant` stays out: that status dropped a\n * factor, and the AST is not the law.\n */\nfunction evaluateClosedScalar(\n eq: CanonicalEquation,\n): ((inputs: Record<string, number>) => number) | undefined {\n if (eq.epistemicStatus !== 'fully-quantitative' || eq.scalarAst === undefined) return undefined;\n if (monomialExponents(eq.scalarAst) !== undefined) return undefined;\n const ast = eq.scalarAst;\n const required = eq.dimensional.governing.filter((governing) => constantValue(governing.name, governing.dim) === null);\n return (inputs) => {\n for (const governing of required) {\n const value = inputs[governing.name];\n if (value === undefined || !Number.isFinite(value)) return Number.NaN;\n }\n try {\n const value = evalExpr(ast, literalInputs(ast, inputs));\n return Number.isFinite(value) ? value : Number.NaN;\n } catch {\n return Number.NaN;\n }\n };\n}\n\n/**\n * Build the evaluator for one canonical equation, keyed by its VARIABLE source\n * names. Variables carry the monomial exponent from `inputs`; constants\n * contribute a fixed baked factor. A fully-quantitative monomial multiplies\n * its recorded dimensionless coefficient when the sourced table does not\n * already own that factor, and multiplies the sourced table prefactor.\n * A fully-quantitative AST that names a dimensionless count, or whose\n * Buckingham monomial is null, is evaluated from that AST so the count and\n * the numeric leaves (6π) are not dropped. A fully-quantitative sum or\n * transcendental is evaluated from that AST too. The edge applies the sign policy\n * once before this function: an input the AST is even in is an absolute\n * value, and a product odd in both charge and mobility rejects opposite\n * signs. This function does not do that again.\n * Returns NaN when the monomial is null and the AST is not a fully-quantitative\n * closed form, and when a dimensional coefficient is unset and its group is unbound.\n * `retrodict` then abstains.\n */\nfunction makeEvaluate(\n eq: CanonicalEquation,\n): (inputs: Record<string, number>) => number {\n const powers = eq.epistemicStatus === 'fully-quantitative' ? monomialExponents(eq.scalarAst) : undefined;\n const factors = formulaFactorExponents(eq);\n if (powers !== undefined && (Object.keys(factors).length > 0 || eq.dimensional.monomial === null)) {\n return evaluateAstMonomial(eq, powers);\n }\n const closed = evaluateClosedScalar(eq);\n if (closed !== undefined) return closed;\n const monomial = eq.dimensional.monomial;\n if (monomial === null) return () => NaN;\n const dimByName = new Map(eq.dimensional.governing.map((g) => [g.name, g.dim]));\n let constFactor = 1;\n const varExps: Array<[string, number]> = [];\n for (const [name, exp] of Object.entries(monomial)) {\n const dim = dimByName.get(name);\n const cv = dim !== undefined ? constantValue(name, dim) : null;\n if (cv !== null) constFactor *= Math.pow(cv, exp);\n else varExps.push([name, exp]);\n }\n const recorded = recordedDimensionlessCoefficient(eq);\n const tabled = canonicalPrefactor(eq.id);\n const group = CANONICAL_GROUP_PREFACTORS.find((p) => p.id === eq.id);\n const unset = eq.epistemicStatus === 'dimensional' && tabled === undefined;\n return (inputs: Record<string, number>): number => {\n if (unset) {\n if (group === undefined) return Number.NaN;\n const bound = inputs[group.group];\n if (bound === undefined || !Number.isFinite(bound)) return Number.NaN;\n }\n let v = constFactor;\n if (recorded !== undefined) v *= recorded;\n if (tabled !== undefined) v *= tabled;\n if (group !== undefined) {\n const g = inputs[group.group];\n if (g !== undefined && Number.isFinite(g)) {\n const factor = canonicalGroupPrefactor(eq.id, g);\n if (factor !== undefined) v *= factor;\n }\n }\n for (const [name, exp] of varExps) {\n const x = inputs[name];\n v *= Math.pow(x === undefined ? Number.NaN : x, exp);\n }\n return v;\n };\n}\n\n/** Project one canonical equation to a composition-graph edge. */\nfunction toEdge(eq: CanonicalEquation): BridgeEdge {\n const attributes = attributesOf(eq);\n const target: Quantity = {\n name: eq.dimensional.target.name,\n symbol: eq.dimensional.target.name,\n dim: eq.dimensional.target.dim,\n attributes,\n };\n const factors = formulaFactorExponents(eq);\n const sources: Quantity[] = eq.dimensional.governing\n .filter((g) => constantValue(g.name, g.dim) === null)\n .map((g) => ({ name: g.name, symbol: g.name, dim: g.dim, attributes }));\n for (const name of Object.keys(factors)) {\n sources.push({ name, symbol: name, dim: DIMENSIONLESS, attributes });\n }\n const evaluateRaw = makeEvaluate(eq);\n const even = evenInputNames(eq.scalarAst);\n const evenInputs = sources.filter((source) => even.has(source.name)).map((source) => source.name);\n const monomial = eq.dimensional.monomial;\n return {\n id: eq.id,\n beId: null,\n kind: 'law',\n label: eq.name,\n sources,\n target,\n confidence: 'established',\n domain: domainOf(eq, sources.map((source) => source.name)),\n evaluate: (inputs) => evaluateRaw(applyCarrierSignPolicy(monomial, inputs, even)),\n citation: eq.references[0] ?? eq.id,\n ...(eq.epistemicStatus === 'dimensional' && canonicalPrefactor(eq.id) === undefined\n ? { coefficientUnset: true as const }\n : {}),\n ...(Object.keys(factors).length > 0 ? { formulaFactors: factors } : {}),\n ...(evenInputs.length > 0 ? { evenInputs } : {}),\n };\n}\n\n/**\n * Project canonical equations into composition-graph edges (defaults to the\n * full registry). See the module docstring for the modelling decisions.\n *\n * @internal\n */\nexport function canonicalToEdges(\n equations: readonly CanonicalEquation[] = CANONICAL_EQUATIONS,\n): BridgeEdge[] {\n return equations.map(toEdge);\n}\n\n/**\n * The standard-physics composition graph: every canonical equation as an\n * `established` `law` edge. The bridge-free counterpart to `CATALOG_GRAPH`.\n *\n * @internal\n */\nexport const CANONICAL_GRAPH: readonly BridgeEdge[] = canonicalToEdges();\n"]}
|