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":"explain.js","sourceRoot":"","sources":["../../src/composition/explain.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"explain.js","sourceRoot":"","sources":["../../src/composition/explain.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * \"Explain this quantity\" — the unified entry point over the three\n * bridge-inference primitives (docs/planning/Bridge-Inference-Epistemics-\n * Note.md). Given a target quantity and a set of knowns (names, or\n * name→value), it composes:\n *\n * 1. the identifiability classifier — CAN the graph compute the target\n * from the knowns, and via how many derivations? Independence is\n * counted by catalog bridge (`beId`): two routes that restate one bridge\n * agree by algebra, and the summary says so.\n * 2. the retrodiction harness — when values are supplied, RECOVER the\n * value via each derivation and (for over-determined targets) check\n * they agree;\n * 3. the Buckingham-π enumerator — is the known set even DIMENSIONALLY\n * sufficient to fix the target up to a constant, independent of the\n * graph's encoded edges?\n *\n * The three answer complementary questions, so the explanation is richer\n * than any one alone: the graph may compute a target whose dimensional\n * closure relies on constants baked into the evaluator (e.g. r_s = 2GM/c²\n * — mass alone is not dimensionally sufficient), and the classifier +\n * Buckingham layer make that explicit together.\n *\n * @module composition/explain\n */\n\nimport type { BridgeEdge } from './edge.js';\nimport type { QuantityIdentification } from './compose.js';\nimport { QUANTITY_IDENTIFICATIONS } from './compose.js';\nimport type { IdentifiabilityResult } from './identifiability.js';\nimport { classifyIdentifiability, forwardClosure } from './identifiability.js';\nimport type { RetrodictionResult } from './retrodiction.js';\nimport { retrodictNode } from './retrodiction.js';\nimport type { Dimension } from '../dimensional/types.js';\nimport { CANONICAL_GROUP_PREFACTORS } from './canonical-prefactors.js';\nimport { canonicalById } from '../canonical/registry.js';\n\n/**\n * Text form of a recovered quantity: `digits` significant digits (15 by default, the precision an\n * evaluator input is already passed at; a statistic such as a residual in σ asks for 3). JSON keeps\n * the number; this is only the printed form. An integer stays an integer (`1`, not `1.0000e+0`).\n * Every command prints a number through this function or through {@link formatExact}.\n * @internal\n */\nexport function formatQuantity(value: number, digits = 15): string {\n return String(Number(value.toPrecision(digits)));\n}\n\n/**\n * Text form of a computed value that a reader may need to reproduce bit for bit: the shortest\n * decimal that round-trips to the same double (`upt evaluate`'s outputs). A recovered or compared\n * quantity prints through {@link formatQuantity} instead.\n * @internal\n */\nexport function formatExact(value: number): string {\n return String(value);\n}\nimport type { DimensionalDeterminationResult } from '../dimensional/buckingham.js';\nimport { dimensionallyDetermines } from '../dimensional/buckingham.js';\nimport { collapseSynonymGovernors } from './aliases.js';\nimport { formulaShape } from './formula-shape.js';\n\n/** One structural derivation of the target, with the recovered value when\n * ground-truth values were supplied. @public */\nexport interface DerivationExplanation {\n readonly edge: string;\n /**\n * The catalog bridge the last edge encodes (`BridgeEdge.beId`), `null` for a\n * law or an uncatalogued edge. Two routes with the same `beId` are one\n * bridge restated, so their agreement is algebra, not a check.\n */\n readonly beId: number | null;\n readonly label: string;\n /** The edge's immediate (last-hop) source quantities. */\n readonly sources: readonly string[];\n /**\n * The LEAF inputs this derivation ultimately depends on — its immediate\n * sources traced back through every intermediate to the known set. The\n * full-chain (leaf-to-target) view, vs `sources` (last-hop). A subset of\n * the known set.\n */\n readonly leafInputs: readonly string[];\n /**\n * The target as a dimensionless-constant-times-monomial in the LEAF\n * inputs, when those leaves dimensionally fix it (Buckingham-π over the\n * full chain). Absent when the leaves rely on dimensionful constants\n * baked into the evaluators (the common case for the bridge graph).\n */\n readonly dimensionalForm?: {\n readonly monomial: Readonly<Record<string, number>>;\n /** e.g. `period ∝ length^1·gravity^-1` (up to a dimensionless constant). */\n readonly formula: string;\n };\n /** Value recovered via this derivation (only when values were given). */\n readonly value?: number;\n}\n\n/** Options for {@link explainQuantity}. @public */\nexport interface ExplainOptions {\n readonly identifications?: readonly QuantityIdentification[];\n /** Consistency tolerance forwarded to the retrodiction harness. */\n readonly tolerance?: number;\n /**\n * Dimensions for known names that are not graph quantities (e.g. raw\n * constants `G`, `c`, `hbar`) — lets the Buckingham layer test a known\n * set richer than the graph's nodes.\n */\n readonly extraDimensions?: Readonly<Record<string, Dimension>>;\n}\n\n/** The unified explanation of one quantity. @public */\nexport interface QuantityExplanation {\n readonly target: string;\n readonly known: readonly string[];\n /** Structural verdict (under/exactly/over-determined or given). */\n readonly identifiability: IdentifiabilityResult;\n /** One entry per independent derivation the classifier found. */\n readonly derivations: readonly DerivationExplanation[];\n /** Retrodiction result, present when ≥2 derivations fired on values. */\n readonly consistency?: RetrodictionResult;\n /** Agreed recovered value (consistent or single), when values supplied. */\n readonly recoveredValue?: number;\n /**\n * Where the numeric factor came from. `unset` is not the same as a\n * missing `recoveredValue`: the inputs were read and the factor has\n * no source. `group` means a bound dimensionless group supplied it.\n */\n readonly coefficient?: 'sourced' | 'group' | 'unset';\n /** Whether the KNOWN set dimensionally fixes the target (Buckingham-π);\n * absent when the target has no resolvable dimension. */\n readonly dimensional?: DimensionalDeterminationResult;\n /** Derivations that refused the given values, each under its own kind (`RetrodictionRefusal`). */\n readonly refusals?: RetrodictionResult['refusals'];\n /** Upstream gaps for an under-determined target (from the classifier). */\n readonly blockingFrontier: readonly string[];\n /** Plain-language synthesis of the above. */\n readonly summary: string;\n}\n\n/**\n * A Buckingham monomial is the encoded formula only when scaling each known\n * input scales the recovered value by that exponent. A monomial such as\n * `n^(-1/3)` or `∝ 1` can share the target's dimension and still not be the\n * formula, because the formula carries constants the monomial did not use.\n * Samples that the domain refuses leave the monomial in place: this check\n * does not invent a second domain.\n */\nfunction encodedMatchesMonomial(\n edges: readonly BridgeEdge[],\n target: string,\n knownNames: readonly string[],\n monomial: Readonly<Record<string, number>>,\n identifications: readonly QuantityIdentification[],\n): boolean {\n if (knownNames.length === 0) return true;\n const base: Record<string, number> = {};\n knownNames.forEach((name, i) => {\n base[name] = 1.7 + 0.3 * i;\n });\n const read = (values: Record<string, number>): number | undefined => {\n const retro = retrodictNode(edges, values, target, { identifications });\n const hit = retro.predictions.find((prediction) => Number.isFinite(prediction.value) && prediction.value !== 0);\n return hit?.value;\n };\n const origin = read(base);\n if (origin === undefined) return true;\n for (const name of knownNames) {\n const current = base[name];\n if (current === undefined) return true;\n const next = read({ ...base, [name]: current * 4 });\n if (next === undefined) return true;\n const exponent = monomial[name] ?? 0;\n // A known name the evaluator does not read (G declared beside a law that\n // already bakes G in) does not move the value. That is not a mismatch.\n const unchanged = Math.abs(next - origin) / Math.max(Math.abs(origin), 1e-300) < 1e-9;\n if (unchanged && Math.abs(exponent) > 1e-9) continue;\n const expected = origin * Math.pow(4, exponent);\n const scale = Math.max(Math.abs(expected), Math.abs(next), 1e-300);\n if (Math.abs(next - expected) / scale > 1e-6) return false;\n }\n return true;\n}\n\nfunction buildDimMap(\n edges: readonly BridgeEdge[],\n extra?: Readonly<Record<string, Dimension>>,\n): Map<string, Dimension> {\n const m = new Map<string, Dimension>();\n for (const e of edges) {\n for (const s of e.sources) if (!m.has(s.name)) m.set(s.name, s.dim);\n if (!m.has(e.target.name)) m.set(e.target.name, e.target.dim);\n }\n if (extra) for (const [k, v] of Object.entries(extra)) m.set(k, v);\n return m;\n}\n\n/**\n * Trace `startSources` back through every intermediate to the leaf inputs\n * — names in `known`, or terminals that no determinable edge produces.\n * Never expands the target (a self-loop would be circular). The union over\n * alternative sub-derivations of an over-determined intermediate.\n */\nfunction traceLeaves(\n edges: readonly BridgeEdge[],\n known: ReadonlySet<string>,\n determinable: ReadonlySet<string>,\n startSources: readonly string[],\n idents: readonly QuantityIdentification[],\n target: string,\n): string[] {\n const leaves = new Set<string>();\n const visited = new Set<string>([target]); // never expand the target itself\n const stack = [...startSources];\n while (stack.length) {\n const q = stack.pop()!;\n if (known.has(q)) {\n leaves.add(q);\n continue;\n }\n if (visited.has(q)) continue;\n visited.add(q);\n let expanded = false;\n for (const e of edges) {\n if (e.target.name !== q) continue;\n if (!e.sources.every((s) => determinable.has(s.name))) continue;\n for (const s of e.sources) stack.push(s.name);\n expanded = true;\n }\n if (!expanded) {\n for (const id of idents) {\n if (id.to === q && determinable.has(id.from)) {\n stack.push(id.from);\n expanded = true;\n }\n }\n }\n if (!expanded) leaves.add(q); // a terminal we cannot expand\n }\n return [...leaves].sort();\n}\n\n/** An even integer power is already an even function of a signed input. */\nfunction evenIntegerPower(exp: number): boolean {\n return Number.isInteger(exp) && Math.abs(exp) % 2 === 0;\n}\n\n/**\n * Buckingham's exponent of an even input is the exponent of its magnitude.\n * `√(q²)` and `|q|` come out as `q^1` and `q^-1`. Those odd powers are\n * printed as `|q|`, so a dimensionless constant can produce the positive\n * value. An even integer power (`q^2`, `q^-2`) is already even.\n */\nfunction formatMonomial(m: Readonly<Record<string, number>>, even?: ReadonlySet<string>): string {\n const parts = Object.entries(m)\n .filter(([, e]) => e !== 0)\n .map(([n, e]) => {\n const token = even?.has(n) === true && !evenIntegerPower(e) ? `|${n}|` : n;\n return e === 1 ? token : `${token}^${e}`;\n });\n return parts.join('·') || '1';\n}\n\n/**\n * Names every fired edge treats as a magnitude. A name that is signed on\n * any fired edge stays signed: one odd formula does not borrow another's\n * absolute value.\n */\nfunction magnitudeNames(edges: readonly BridgeEdge[]): ReadonlySet<string> {\n const even = new Set<string>();\n const signed = new Set<string>();\n for (const edge of edges) {\n const marked = new Set(edge.evenInputs ?? []);\n for (const source of edge.sources) {\n if (marked.has(source.name)) even.add(source.name);\n else signed.add(source.name);\n }\n }\n for (const name of signed) even.delete(name);\n return even;\n}\n\nfunction factorsOn(edge: BridgeEdge | undefined): Readonly<Record<string, number>> {\n return edge?.formulaFactors ?? {};\n}\n\nfunction collectFactors(edges: readonly BridgeEdge[]): Record<string, number> {\n const out: Record<string, number> = {};\n for (const edge of edges) {\n for (const [name, exp] of Object.entries(factorsOn(edge))) out[name] = exp;\n }\n return out;\n}\n\n/**\n * Buckingham cannot see a dimensionless count, so the printed monomial\n * omits it. Put the recorded exponent back for each count the inputs name.\n */\nfunction monomialWithFactors(\n monomial: Readonly<Record<string, number>>,\n factors: Readonly<Record<string, number>>,\n present: ReadonlySet<string>,\n): Record<string, number> {\n const merged: Record<string, number> = { ...monomial };\n for (const [name, exp] of Object.entries(factors)) {\n if (present.has(name) && exp !== 0) merged[name] = exp;\n }\n return merged;\n}\n\n\nfunction buildSummary(\n target: string,\n id: IdentifiabilityResult,\n derivations: readonly DerivationExplanation[],\n consistency: RetrodictionResult | undefined,\n recoveredValue: number | undefined,\n dimensional: DimensionalDeterminationResult | undefined,\n knownNames: readonly string[],\n formulaIsSum: boolean,\n encodedMatchesMonomial: boolean,\n unsetSentence: string | undefined,\n even: ReadonlySet<string>,\n /** The identification that determines the target when no edge does. */\n viaIdentification: QuantityIdentification | undefined,\n): string {\n const known = knownNames.length\n ? `{${knownNames.join(', ')}}`\n : '{} (no inputs)';\n const ids = derivations.map((d) => d.edge).join(', ');\n let s: string;\n\n switch (id.verdict) {\n case 'given':\n s = `'${target}' is a supplied input.`;\n if (derivations.length) {\n s += ` ${derivations.length} graph derivation(s) (${ids}) can cross-check it`;\n s += consistency\n ? consistency.outcome === 'consistent'\n ? `, and they are consistent (relative spread ${consistency.relativeSpread.toExponential(1)}).`\n : ` — and they are INCONSISTENT (relative spread ${consistency.relativeSpread.toExponential(1)}).`\n : '.';\n }\n break;\n case 'under-determined':\n s = `'${target}' is in the graph, but cannot be determined from ${known}: the graph has no derivation path.`;\n if (id.blockingFrontier.length) {\n s += ` Knowing one of {${id.blockingFrontier.join(', ')}} would unblock it.`;\n }\n break;\n case 'exactly-determined': {\n // No edge derives a target the identification alone determines; the\n // sentence then names the identification, not an undefined edge\n // (9.0.0 audit §4 C11).\n const first = derivations[0];\n s =\n first !== undefined\n ? `'${target}' is determined from ${known} via ${first.edge} (${first.label}).`\n : viaIdentification !== undefined\n ? `'${target}' is determined from ${known} by the identification ${viaIdentification.from} ≡ ${viaIdentification.to} (${viaIdentification.rationale}).`\n : `'${target}' is determined from ${known}.`;\n if (recoveredValue !== undefined) {\n s += ` Recovered value: ${formatQuantity(recoveredValue)}.`;\n }\n break;\n }\n case 'over-determined':\n default: {\n // Independence is counted by BRIDGE, not by edge: be-42 and be-42-via-rs\n // are one bridge written in M and in r_s, and agree by algebra.\n const bridges = [...new Set(derivations.map((d) => (d.beId === null ? d.edge : `BE-${d.beId}`)))];\n const oneBridge = bridges.length === 1 && derivations.length > 1;\n if (bridges.length === derivations.length) {\n s = `'${target}' is over-determined from ${known}: ${derivations.length} independent derivations (${ids}).`;\n } else if (oneBridge) {\n s = `'${target}' is over-determined from ${known}: ${derivations.length} derivation routes (${ids}) restate ONE bridge (${bridges[0]}).`;\n } else {\n s = `'${target}' is over-determined from ${known}: ${derivations.length} derivation routes (${ids}) over ${bridges.length} distinct bridges (${bridges.join(', ')}).`;\n }\n if (consistency) {\n const spread = consistency.relativeSpread.toExponential(1);\n if (consistency.outcome === 'consistent') {\n s += oneBridge\n ? ` They agree (relative spread ${spread}) — agreement by construction, not an independent check.`\n : ` They agree (relative spread ${spread}) — a passing consistency check.`;\n } else {\n s += oneBridge\n ? ` They DISAGREE (relative spread ${spread}) — two forms of one bridge disagree: an encoding error.`\n : ` They DISAGREE (relative spread ${spread}) — a falsification.`;\n }\n } else if (oneBridge) {\n s += ` The routes restate one bridge, so they carry no independent constraint.`;\n } else {\n s += ` The ${id.surplusConstraints} surplus derivation(s) are falsifiable consistency constraints (supply values to check them).`;\n }\n if (recoveredValue !== undefined) {\n s += ` Recovered value: ${formatQuantity(recoveredValue)}.`;\n }\n break;\n }\n }\n\n if (dimensional?.determined && dimensional.monomial && formulaIsSum) {\n s += ` The encoded formula adds dimensionful terms, so it is not a proportionality.`;\n } else if (dimensional?.determined && dimensional.monomial && !encodedMatchesMonomial) {\n s += ` Dimensionally, those inputs alone do not fix it — the encoded formula carries dimensionful constants.`;\n } else if (dimensional?.determined && dimensional.monomial) {\n s += ` Dimensionally, ${known} fix it up to a dimensionless constant: ${target} ∝ ${formatMonomial(dimensional.monomial, even)}.`;\n } else if (dimensional?.outsideGoverningSpan && knownNames.length) {\n s += ` Dimensionally, those inputs alone do not fix it — the encoded formula carries dimensionful constants.`;\n } else if (dimensional && !dimensional.determined && knownNames.length) {\n s += ` Dimensionally, those inputs alone do not fix a unique monomial.`;\n }\n // The unset factor is a fact about the edge, whatever the inputs span: it is said whether or\n // not a ∝ line could be printed (a baked constant removes the ∝ line, not the unset factor).\n if (unsetSentence !== undefined) s += ` ${unsetSentence}`;\n return s;\n}\n\n/**\n * Explain a quantity: synthesize the identifiability verdict, the\n * recovered value + consistency (when values are supplied), and the\n * dimensional sufficiency of the known set into one report.\n *\n * `known` may be a list of names (structural + dimensional analysis only)\n * or a `name → value` map (adds value recovery and the over-determined\n * consistency check).\n *\n * @public\n */\nexport function explainQuantity(\n edges: readonly BridgeEdge[],\n target: string,\n known: readonly string[] | Readonly<Record<string, number>>,\n opts: ExplainOptions = {},\n): QuantityExplanation {\n const identifications = opts.identifications ?? QUANTITY_IDENTIFICATIONS;\n const hasValues = !Array.isArray(known);\n const values = hasValues ? (known as Record<string, number>) : null;\n const rawNames = hasValues\n ? Object.keys(values!)\n : [...new Set(known as string[])];\n const sourceNames = new Set<string>();\n for (const e of edges) {\n if (e.target.name !== target) continue;\n for (const s of e.sources) sourceNames.add(s.name);\n }\n // A copied synonym is the same quantity. Buckingham and the printed\n // known set see one name. The value map still carries both spellings\n // so the edge source evaluates.\n const knownNames = collapseSynonymGovernors(rawNames, sourceNames, values);\n\n const identifiability = classifyIdentifiability(edges, knownNames, target, {\n identifications,\n });\n\n const byId = new Map(edges.map((e) => [e.id, e] as const));\n\n let consistency: RetrodictionResult | undefined;\n let refusals: RetrodictionResult['refusals'];\n let recoveredValue: number | undefined;\n const valueByEdge = new Map<string, number>();\n if (values) {\n const references =\n target in values ? { [target]: values[target] } : undefined;\n const retro = retrodictNode(edges, values, target, {\n identifications,\n tolerance: opts.tolerance,\n references,\n });\n refusals = retro.refusals;\n for (const p of retro.predictions) valueByEdge.set(p.edge, p.value);\n if (retro.predictions.length >= 2) consistency = retro;\n if (\n (retro.outcome === 'consistent' || retro.outcome === 'single') &&\n retro.predictions.length > 0\n ) {\n recoveredValue =\n retro.predictions.reduce((a, p) => a + p.value, 0) /\n retro.predictions.length;\n }\n }\n\n const dimMap = buildDimMap(edges, opts.extraDimensions);\n const knownSet = new Set(knownNames);\n const determinable = forwardClosure(edges, knownNames, identifications);\n\n const derivations: DerivationExplanation[] = identifiability.derivations.map(\n (eid) => {\n const e = byId.get(eid);\n const sources = e ? e.sources.map((s) => s.name) : [];\n // Full-chain: trace the immediate sources back to the leaf inputs.\n const leafInputs = e\n ? traceLeaves(\n edges,\n knownSet,\n determinable,\n sources,\n identifications,\n target,\n )\n : [];\n // Dimensional form in terms of those leaves, when they fix the target.\n let dimensionalForm: DerivationExplanation['dimensionalForm'];\n const targetDimForChain = dimMap.get(target);\n if (targetDimForChain && leafInputs.length) {\n const factors = factorsOn(e);\n const governing = leafInputs\n .filter((n) => n !== target && dimMap.has(n) && factors[n] === undefined)\n .map((n) => ({ name: n, dim: dimMap.get(n)! }));\n const det = dimensionallyDetermines(\n { name: target, dim: targetDimForChain },\n governing,\n );\n const symbolic = e?.symbolic;\n const sum = symbolic !== undefined && formulaShape(symbolic) === 'dimensional-sum';\n const leaves = leafInputs.filter((name) => name !== target);\n const missingCount = Object.keys(factors).some((name) => !leaves.includes(name));\n const merged =\n det.determined && det.monomial !== undefined\n ? monomialWithFactors(det.monomial, factors, new Set(leaves))\n : undefined;\n const agrees =\n merged !== undefined &&\n encodedMatchesMonomial(edges, target, leaves, merged, identifications);\n if (!sum && !missingCount && merged !== undefined && agrees) {\n dimensionalForm = {\n monomial: merged,\n formula: `${target} ∝ ${formatMonomial(merged, new Set(e?.evenInputs ?? []))}`,\n };\n }\n }\n return {\n edge: eid,\n beId: e?.beId ?? null,\n label: e?.label ?? eid,\n sources,\n leafInputs,\n ...(dimensionalForm ? { dimensionalForm } : {}),\n ...(valueByEdge.has(eid) ? { value: valueByEdge.get(eid) } : {}),\n };\n },\n );\n\n // Dimensional sufficiency of the KNOWN set, independent of the graph.\n // A dimensionless count is stripped before Buckingham (it is a π-group and\n // would make the monomial non-unique) and written back into the monomial\n // the summary prints. An edge whose other sources are known, but whose\n // count is not, does not get to claim the count-free monomial.\n const firedEdges = identifiability.derivations\n .map((id) => byId.get(id))\n .filter((edge): edge is BridgeEdge => edge !== undefined);\n const firedFactors = collectFactors(firedEdges);\n const boundGroupExponents: Record<string, number> = {};\n if (values) {\n for (const edge of firedEdges) {\n const group = CANONICAL_GROUP_PREFACTORS.find((p) => p.id === edge.id);\n if (group !== undefined && Number.isFinite(values[group.group])) {\n boundGroupExponents[group.group] = group.exponent;\n }\n }\n }\n const blockedByCount = edges.filter((edge) => {\n if (edge.target.name !== target) return false;\n const factors = factorsOn(edge);\n const names = Object.keys(factors);\n if (names.length === 0 || names.every((name) => knownSet.has(name))) return false;\n return edge.sources\n .filter((source) => factors[source.name] === undefined)\n .every((source) => knownSet.has(source.name) || determinable.has(source.name));\n });\n let dimensional: DimensionalDeterminationResult | undefined;\n const targetDim = dimMap.get(target);\n if (targetDim) {\n const strip = new Set<string>([\n ...Object.keys(firedFactors),\n ...blockedByCount.flatMap((edge) => Object.keys(factorsOn(edge))),\n ]);\n const governing = knownNames\n .filter((n) => n !== target && dimMap.has(n) && !strip.has(n))\n .map((n) => ({ name: n, dim: dimMap.get(n)! }));\n const det = dimensionallyDetermines({ name: target, dim: targetDim }, governing);\n const hideCountFree = blockedByCount.length > 0 && firedEdges.length === 0;\n if (hideCountFree) {\n dimensional = {\n ...det,\n determined: false,\n monomial: undefined,\n reason: 'a dimensionless count in the formula is not among the inputs',\n };\n } else if (det.determined && det.monomial !== undefined) {\n dimensional = {\n ...det,\n monomial: monomialWithFactors(\n det.monomial,\n { ...firedFactors, ...boundGroupExponents },\n knownSet,\n ),\n };\n } else {\n dimensional = det;\n }\n }\n\n const formulaIsSum = identifiability.derivations.some((eid) => {\n const symbolic = byId.get(eid)?.symbolic;\n return symbolic !== undefined && formulaShape(symbolic) === 'dimensional-sum';\n });\n const encodedAgrees =\n dimensional?.determined === true && dimensional.monomial !== undefined\n ? encodedMatchesMonomial(edges, target, knownNames, dimensional.monomial, identifications)\n : true;\n\n const unsetEdge = derivations\n .map((d) => byId.get(d.edge))\n .find((e) => e?.coefficientUnset === true);\n const groupBound =\n unsetEdge !== undefined &&\n CANONICAL_GROUP_PREFACTORS.some(\n (p) => p.id === unsetEdge.id && values !== null && Number.isFinite(values[p.group]),\n );\n const unsetSentence =\n unsetEdge === undefined || groupBound\n ? undefined\n : 'The factor is unset.' +\n (canonicalById(unsetEdge.id)?.unsetFactorNote !== undefined ? ` ${canonicalById(unsetEdge.id)!.unsetFactorNote}` : '');\n\n const coefficient: QuantityExplanation['coefficient'] =\n unsetEdge !== undefined && !groupBound\n ? 'unset'\n : groupBound\n ? 'group'\n : recoveredValue !== undefined\n ? 'sourced'\n : undefined;\n\n // A target with no derivation that is still determinable is reached by an\n // identification whose `from` the known set determines.\n const viaIdentification =\n identifiability.verdict === 'exactly-determined' && derivations.length === 0\n ? identifications.find((ident) => ident.to === target && determinable.has(ident.from))\n : undefined;\n\n const summary = buildSummary(\n target,\n identifiability,\n derivations,\n consistency,\n recoveredValue,\n dimensional,\n knownNames,\n formulaIsSum,\n encodedAgrees,\n unsetSentence,\n magnitudeNames(firedEdges),\n viaIdentification,\n );\n // A refusal of the point (a validity domain, opposite carrier signs, a formula with no\n // finite value there) is a bad value and is named with the edge's own reason. An unset\n // coefficient is not: `unsetSentence` already says it in words (AGENTS law 4).\n const domainRefusals = (refusals ?? []).filter((r) => r.kind !== 'coefficient-unset');\n const refusalSentence =\n domainRefusals.length === 0 || recoveredValue !== undefined\n ? ''\n : ` No recovered value: ${domainRefusals.map((r) => r.reason).join('; ')}.`;\n\n return {\n target,\n known: knownNames,\n identifiability,\n derivations,\n ...(consistency ? { consistency } : {}),\n ...(recoveredValue !== undefined ? { recoveredValue } : {}),\n ...(coefficient !== undefined ? { coefficient } : {}),\n ...(dimensional ? { dimensional } : {}),\n ...(refusals !== undefined ? { refusals } : {}),\n blockingFrontier: identifiability.blockingFrontier,\n summary: summary + refusalSentence,\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expr-eval.js","sourceRoot":"","sources":["../../src/composition/expr-eval.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"expr-eval.js","sourceRoot":"","sources":["../../src/composition/expr-eval.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Scalar `ExprNode` value evaluator (v0.12 symbolic composition).\n *\n * Numerically evaluates a SCALAR `ExprNode` (the `symbol` / `op` /\n * `transcendental` / `abs` arms) given leaf values. The dimensional validator infers\n * dimensions but never computes values, and the formula parser evaluates a\n * DIFFERENT AST — so this is the missing primitive that makes a bridge's\n * `symbolic` form executable.\n *\n * The tree is lowered with `createScalarBuilder` and evaluated with\n * `evaluateScalar`. This module does not print a formula and does not parse\n * one. Leaf resolution order (Adam A-1, A-5): caller `values` win, then the\n * `CONSTANTS` registry, then a spelled-out multiple of π, then a base-10\n * numeric-literal symbol (`'2'`, `'3'`), which MathTS resolves. An unresolved\n * or non-finite operator result throws. Tensor / integral / derivative arms\n * are out of scope and throw.\n *\n * INTERNAL — not on the public surface.\n *\n * @module composition/expr-eval\n */\n\nimport { createScalarBuilder, ScalarBuildError } from '@danielsimonjr/mathts-expression';\nimport { evaluateScalar, ScalarEvalError } from '@danielsimonjr/mathts-functions';\nimport type { ExprNode } from '../dimensional/validator.js';\nimport { CONSTANTS, piMultipleValue } from '../dimensional/symbolic-constants.js';\nimport { FORMULA_NAMED } from '../dimensional/formula-names.js';\n\n/** A scalar `ExprNode` could not be evaluated (unsupported arm / unresolved\n * leaf / non-finite result). @public */\nexport class SymbolicEvalError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'SymbolicEvalError';\n }\n}\n\nconst builder = createScalarBuilder();\n\n/** Symbol names on the scalar arms. Other kinds are left for the builder to reject. */\nfunction symbolNames(node: ExprNode, out: Set<string>): void {\n if (node.kind === 'symbol') {\n out.add(node.name);\n return;\n }\n if (node.kind === 'op') {\n for (const arg of node.args) symbolNames(arg, out);\n return;\n }\n if (node.kind === 'transcendental' || node.kind === 'abs') symbolNames(node.arg, out);\n}\n\n/**\n * Caller bindings, then registered constants and spelled-out π multiples\n * that the caller did not set. Numeric-literal names stay unset so MathTS\n * reads them.\n */\nfunction scopeFor(\n node: ExprNode,\n values: Readonly<Record<string, number>>,\n): Record<string, number> {\n const scope: Record<string, number> = { ...values };\n const names = new Set<string>();\n symbolNames(node, names);\n for (const name of names) {\n if (Object.prototype.hasOwnProperty.call(scope, name)) continue;\n const constant = CONSTANTS[name];\n if (constant !== undefined) {\n scope[name] = constant.value;\n continue;\n }\n const named = FORMULA_NAMED.find((row) => row.name === name);\n if (named !== undefined) {\n scope[name] = named.value;\n continue;\n }\n const pi = piMultipleValue(name);\n if (pi !== undefined) scope[name] = pi;\n }\n return scope;\n}\n\nfunction asSymbolic(err: unknown): Error {\n if (err instanceof ScalarEvalError || err instanceof ScalarBuildError) {\n // MathTS names its own function first (`evaluateScalar:`); the message is kept whole, not rewritten.\n return new SymbolicEvalError(`evalExpr: ${err.message}`);\n }\n return err instanceof Error ? err : new SymbolicEvalError(String(err));\n}\n\n/**\n * Evaluate a scalar `ExprNode` to a number. See module docs for the leaf\n * resolution order and scope.\n *\n * @internal\n */\nexport function evalExpr(\n node: ExprNode,\n values: Readonly<Record<string, number>> = {},\n): number {\n try {\n const lowered = builder.from(node);\n return evaluateScalar(lowered, scopeFor(node, values));\n } catch (err) {\n throw asSymbolic(err);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expr-simplify.d.ts","sourceRoot":"","sources":["../../src/composition/expr-simplify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAO5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"expr-simplify.d.ts","sourceRoot":"","sources":["../../src/composition/expr-simplify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAO5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAwOxD,0DAA0D;AAC1D,UAAU,cAAc;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE9D;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,CAgE1E;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAI7E"}
|
|
@@ -33,6 +33,7 @@ import { evalExpr } from './expr-eval.js';
|
|
|
33
33
|
import { CONSTANTS } from '../dimensional/symbolic-constants.js';
|
|
34
34
|
import { makeObservable } from './compose-symbolic.js';
|
|
35
35
|
import { renderScalarLeaf } from './mathts-scalar-symbols.js';
|
|
36
|
+
import { quietly } from './mathts-quiet.js';
|
|
36
37
|
/** A simplification completed but produced a dimensionally/numerically wrong
|
|
37
38
|
* result (a real bug — not a graceful no-op). @internal */
|
|
38
39
|
class SimplificationError extends Error {
|
|
@@ -50,29 +51,15 @@ class Unsupported extends Error {
|
|
|
50
51
|
// formula-registry.ts).
|
|
51
52
|
// ---------------------------------------------------------------------------
|
|
52
53
|
let cached;
|
|
53
|
-
/** Run `fn` with MathTS's import-time WASM-fallback chatter suppressed. */
|
|
54
|
-
async function quietly(fn) {
|
|
55
|
-
const origWarn = console.warn;
|
|
56
|
-
const origError = console.error;
|
|
57
|
-
const origWrite = process.stderr.write.bind(process.stderr);
|
|
58
|
-
console.warn = () => { };
|
|
59
|
-
console.error = () => { };
|
|
60
|
-
process.stderr.write = () => true;
|
|
61
|
-
try {
|
|
62
|
-
return await fn();
|
|
63
|
-
}
|
|
64
|
-
finally {
|
|
65
|
-
console.warn = origWarn;
|
|
66
|
-
console.error = origError;
|
|
67
|
-
process.stderr.write = origWrite;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
54
|
/** Load + smoke-test the peer. A peer with `parse` but a missing/broken
|
|
71
55
|
* `simplify` (it must actually CANCEL) is rejected → null (graceful no-op). */
|
|
72
56
|
async function detect() {
|
|
73
57
|
try {
|
|
74
|
-
// Import AND smoke-test inside
|
|
75
|
-
//
|
|
58
|
+
// Import AND smoke-test inside the ONE suppression window this module
|
|
59
|
+
// opens (`mathts-quiet.ts` states the invariant): the WASM-fallback
|
|
60
|
+
// chatter fires lazily on first parse/simplify, not only at import, and
|
|
61
|
+
// the smoke below is that first use. Later calls run with the console
|
|
62
|
+
// untouched.
|
|
76
63
|
return await quietly(async () => {
|
|
77
64
|
const mod = (await import('@danielsimonjr/mathts-functions'));
|
|
78
65
|
if (typeof mod.parse !== 'function' || typeof mod.simplify !== 'function') {
|
|
@@ -93,24 +80,6 @@ function loadSimplifier() {
|
|
|
93
80
|
cached ??= detect();
|
|
94
81
|
return cached;
|
|
95
82
|
}
|
|
96
|
-
/** Synchronous variant of {@link quietly} for the parse+simplify calls (MathTS
|
|
97
|
-
* emits WASM-fallback chatter lazily on first use, not only at import). */
|
|
98
|
-
function quietlySync(fn) {
|
|
99
|
-
const origWarn = console.warn;
|
|
100
|
-
const origError = console.error;
|
|
101
|
-
const origWrite = process.stderr.write.bind(process.stderr);
|
|
102
|
-
console.warn = () => { };
|
|
103
|
-
console.error = () => { };
|
|
104
|
-
process.stderr.write = () => true;
|
|
105
|
-
try {
|
|
106
|
-
return fn();
|
|
107
|
-
}
|
|
108
|
-
finally {
|
|
109
|
-
console.warn = origWarn;
|
|
110
|
-
console.error = origError;
|
|
111
|
-
process.stderr.write = origWrite;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
83
|
function collectMathSymbols(n, out) {
|
|
115
84
|
if (n.type === 'SymbolNode' && n.name)
|
|
116
85
|
out.add(n.name);
|
|
@@ -284,8 +253,9 @@ export async function simplifyExpr(expr) {
|
|
|
284
253
|
const str = renderGensym(expr, gensymOf, meta);
|
|
285
254
|
// The peer can THROW on some forms (e.g. a known mathts `simplify` BigInt
|
|
286
255
|
// bug on nested `a/(b/c²)`); that, like an unsupported node, is a graceful
|
|
287
|
-
// no-op, not an error.
|
|
288
|
-
|
|
256
|
+
// no-op, not an error. The console is not touched here: the peer's first
|
|
257
|
+
// use already ran inside `detect`'s load window.
|
|
258
|
+
const simplifiedNode = mod.simplify(mod.parse(str));
|
|
289
259
|
candidate = walkBack(simplifiedNode, meta);
|
|
290
260
|
}
|
|
291
261
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expr-simplify.js","sourceRoot":"","sources":["../../src/composition/expr-simplify.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"expr-simplify.js","sourceRoot":"","sources":["../../src/composition/expr-simplify.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Symbolic simplification of a scalar `ExprNode` via MathTS (v0.12 — optional\n * supplement to symbolic composition).\n *\n * Composing two bridges' symbolic forms leaves an UNSIMPLIFIED AST — CT-1 is\n * `k_B·(ℏc³/8πG·mass·k_B)·ln2`, with `k_B` uncancelled. This folds it to the\n * canonical `ℏc³·ln2/(8πG·mass)` using `@danielsimonjr/mathts-functions`'\n * `simplify` (the same OPTIONAL peer the Path-A formula parser loads).\n *\n * Pipeline (Adam+Eve-vetted — docs/planning/v0.12.0-Symbolic-Simplification-\n * Design.md): GENSYM every non-exponent leaf to a mathjs-safe identifier\n * (shared by name, so repeated leaves cancel), render FULLY-PARENTHESIZED\n * (EVE-A — no precedence ambiguity), `parse`+`simplify`, walk the result back\n * (un-gensym, INTEGER-exponent-strict — EVE/Adam HIGH-1). Three guards make a\n * black-box CAS safe to trust:\n * 1. dimensional — `validate(simplified)` dim `equals` the original's;\n * 2. structural — non-numeric symbols of the result ⊆ those of the original\n * (no leaf invented — Adam HIGH-2 / EVE-B);\n * 3. numeric — `evalExpr` agrees over ≥2 finite synthesized probes at\n * rel tol 1e-9 (Adam CRITICAL-2 / EVE-C).\n * A representable result that DISAGREES dimensionally/numerically THROWS (a\n * bug to surface); anything we cannot represent / verify / load degrades to a\n * graceful no-op (return the original, `simplified:false`).\n *\n * INTERNAL — surfaced via `upt symbolic --simplify`.\n *\n * @module composition/expr-simplify\n */\n\nimport type { ExprNode } from '../dimensional/validator.js';\nimport { validate } from '../dimensional/validator.js';\nimport { equals } from '../dimensional/algebra.js';\nimport type { Dimension } from '../dimensional/types.js';\nimport { DIMENSIONLESS } from '../dimensional/types.js';\nimport { evalExpr } from './expr-eval.js';\nimport { CONSTANTS } from '../dimensional/symbolic-constants.js';\nimport type { Observable } from './compose-symbolic.js';\nimport { makeObservable } from './compose-symbolic.js';\nimport { renderScalarLeaf } from './mathts-scalar-symbols.js';\nimport { quietly } from './mathts-quiet.js';\n\n/** A simplification completed but produced a dimensionally/numerically wrong\n * result (a real bug — not a graceful no-op). @internal */\nclass SimplificationError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'SimplificationError';\n }\n}\n\n/** The bits of a MathTS (mathjs-style) AST node the walk-back reads — pinned\n * + runtime-verified (Adam CRITICAL-1). */\ninterface MathNode {\n readonly type?: string;\n readonly op?: string;\n readonly name?: string;\n readonly value?: unknown;\n readonly args?: MathNode[];\n readonly content?: MathNode;\n toString(): string;\n}\ninterface MathtsSimplifyModule {\n parse(expr: string): MathNode;\n simplify(node: MathNode): MathNode;\n}\n\n/** Thrown internally when a node cannot be rendered/walked — caught and turned\n * into a graceful no-op (never escapes the module). */\nclass Unsupported extends Error {}\n\n// ---------------------------------------------------------------------------\n// Optional-peer load — cache + quietly + simplify-smoke (mirrors\n// formula-registry.ts).\n// ---------------------------------------------------------------------------\n\nlet cached: Promise<MathtsSimplifyModule | null> | undefined;\n\n/** Load + smoke-test the peer. A peer with `parse` but a missing/broken\n * `simplify` (it must actually CANCEL) is rejected → null (graceful no-op). */\nasync function detect(): Promise<MathtsSimplifyModule | null> {\n try {\n // Import AND smoke-test inside the ONE suppression window this module\n // opens (`mathts-quiet.ts` states the invariant): the WASM-fallback\n // chatter fires lazily on first parse/simplify, not only at import, and\n // the smoke below is that first use. Later calls run with the console\n // untouched.\n return await quietly(async () => {\n const mod = (await import(\n '@danielsimonjr/mathts-functions'\n )) as unknown as MathtsSimplifyModule;\n if (typeof mod.parse !== 'function' || typeof mod.simplify !== 'function') {\n return null;\n }\n // Smoke: g0 must cancel out of (g0)*((g1)/(g0)) → only g1 remains.\n const s = mod.simplify(mod.parse('(g0)*((g1)/(g0))'));\n const names = new Set<string>();\n collectMathSymbols(s, names);\n return names.size === 1 && names.has('g1') ? mod : null;\n });\n } catch {\n return null;\n }\n}\n\nfunction loadSimplifier(): Promise<MathtsSimplifyModule | null> {\n cached ??= detect();\n return cached;\n}\n\nfunction collectMathSymbols(n: MathNode, out: Set<string>): void {\n if (n.type === 'SymbolNode' && n.name) out.add(n.name);\n if (n.content) collectMathSymbols(n.content, out);\n for (const a of n.args ?? []) collectMathSymbols(a, out);\n}\n\n// ---------------------------------------------------------------------------\n// ExprNode → gensym string (fully parenthesized) and back.\n// ---------------------------------------------------------------------------\n\ninterface LeafMeta {\n readonly name: string;\n readonly dim: Dimension;\n}\n\nconst isLiteral = (name: string): boolean => Number.isFinite(Number(name));\n\n/** Render a scalar ExprNode to a mathjs-safe, fully-parenthesized string,\n * gensym'ing each non-literal leaf by NAME (so repeats share an identifier\n * and can cancel). Throws `Unsupported` on non-scalar arms. */\nfunction renderGensym(\n expr: ExprNode,\n gensymOf: Map<string, string>,\n meta: Map<string, LeafMeta>,\n): string {\n switch (expr.kind) {\n case 'symbol':\n return renderScalarLeaf(expr, gensymOf, meta);\n case 'op': {\n if (expr.op === '^') {\n const exp = expr.args[1];\n if (!exp || exp.kind !== 'symbol' || !isLiteral(exp.name)) {\n throw new Unsupported();\n }\n return `(${renderGensym(expr.args[0], gensymOf, meta)})^${Number(exp.name)}`;\n }\n if (expr.args.length === 0) throw new Unsupported();\n const parts = expr.args.map((a) => `(${renderGensym(a, gensymOf, meta)})`);\n return `(${parts.join(expr.op)})`;\n }\n default:\n throw new Unsupported(); // integral / derivative / tensor arms\n }\n}\n\nconst lit = (v: number): ExprNode => ({ kind: 'symbol', name: String(v), dim: DIMENSIONLESS });\n\n/** Walk a simplified MathTS node back to an ExprNode, un-gensym'ing leaves and\n * rejecting anything outside UPT's integer-exponent scalar model (→ throws\n * `Unsupported`, a graceful no-op). */\nfunction walkBack(node: MathNode, meta: Map<string, LeafMeta>): ExprNode {\n switch (node.type) {\n case 'ConstantNode': {\n if (typeof node.value !== 'number' || !Number.isFinite(node.value)) {\n throw new Unsupported();\n }\n return lit(node.value);\n }\n case 'SymbolNode': {\n const m = node.name !== undefined ? meta.get(node.name) : undefined;\n if (!m) throw new Unsupported(); // a symbol we did not issue\n return { kind: 'symbol', name: m.name, dim: m.dim };\n }\n case 'ParenthesisNode':\n if (!node.content) throw new Unsupported();\n return walkBack(node.content, meta);\n case 'OperatorNode': {\n const op = node.op;\n const args = node.args ?? [];\n if (op === '^') {\n if (args.length !== 2) throw new Unsupported();\n const exp = args[1];\n if (\n exp.type !== 'ConstantNode' ||\n typeof exp.value !== 'number' ||\n !Number.isInteger(exp.value)\n ) {\n throw new Unsupported(); // non-integer exponent — not in ℤ⁷ model\n }\n return {\n kind: 'op',\n op: '^',\n args: [walkBack(args[0], meta), lit(exp.value)],\n };\n }\n if ((op === '+' || op === '-') && args.length === 1) {\n // unary minus → (-1) * arg\n return { kind: 'op', op: '*', args: [lit(-1), walkBack(args[0], meta)] };\n }\n if (op === '+' || op === '-' || op === '*' || op === '/') {\n if (args.length < 2) throw new Unsupported();\n return { kind: 'op', op, args: args.map((a) => walkBack(a, meta)) };\n }\n throw new Unsupported();\n }\n default:\n throw new Unsupported(); // FunctionNode (sqrt/cbrt/…) etc.\n }\n}\n\n// ---------------------------------------------------------------------------\n// Guards.\n// ---------------------------------------------------------------------------\n\nfunction symbolNames(expr: ExprNode, out: string[] = []): string[] {\n if (expr.kind === 'symbol') out.push(expr.name);\n else if (expr.kind === 'op') for (const a of expr.args) symbolNames(a, out);\n else if (expr.kind === 'integral') {\n symbolNames(expr.over, out);\n symbolNames(expr.integrand, out);\n } else if (expr.kind === 'derivative') {\n symbolNames(expr.of, out);\n symbolNames(expr.wrt, out);\n }\n return out;\n}\n\nconst nonNumericSymbols = (expr: ExprNode): string[] =>\n symbolNames(expr).filter((n) => !isLiteral(n));\n\nconst PROBE_VALUES = [2.3, 3.7, 5.1, 7.9, 11.3, 13.1, 17.9, 19.3];\nconst PROBE_MULTIPLIERS = [1, 1.7, 0.41, 2.9];\n\n/** Numeric agreement of `original` and `candidate` over synthesized probes.\n * Free (non-constant) leaves get distinct, mutually-incommensurate values to\n * avoid accidental cancellation. <2 finite probes ⇒ 'insufficient' (cannot\n * verify — EVE-C). */\nfunction numericAgreement(\n original: ExprNode,\n candidate: ExprNode,\n): 'agree' | 'disagree' | 'insufficient' {\n const leaves = [...new Set(nonNumericSymbols(original))].filter(\n (n) => !(n in CONSTANTS),\n );\n let finiteProbes = 0;\n for (const mult of PROBE_MULTIPLIERS) {\n const values: Record<string, number> = {};\n leaves.forEach((leaf, i) => {\n values[leaf] = PROBE_VALUES[i % PROBE_VALUES.length] * mult;\n });\n let a: number;\n let b: number;\n try {\n a = evalExpr(original, values);\n b = evalExpr(candidate, values);\n } catch {\n continue; // a probe drove evalExpr non-finite — skip it\n }\n if (!Number.isFinite(a) || !Number.isFinite(b)) continue;\n finiteProbes++;\n if (Math.abs(a - b) / Math.abs(b || 1) > 1e-9) return 'disagree';\n }\n return finiteProbes >= 2 ? 'agree' : 'insufficient';\n}\n\n// ---------------------------------------------------------------------------\n// Public entry points.\n// ---------------------------------------------------------------------------\n\n/** The result of attempting to simplify an expression. */\ninterface SimplifyResult {\n readonly expr: ExprNode;\n /** True iff MathTS was present AND produced a guard-passing, distinct form. */\n readonly simplified: boolean;\n}\n\n/**\n * Whether the optional MathTS simplifier peer is installed AND passes its\n * smoke test.\n *\n * {@link simplifyExpr} returns `simplified: false` both when the peer is absent\n * and when it is present but could not reduce the expression, so a caller that\n * must report WHY nothing happened (the atlas witness runner's `peer-absent`\n * versus `not-simplified`) needs this separate signal. Shares the same cached\n * detection, so it costs nothing after the first call.\n *\n * @internal\n */\nexport async function isSimplifierAvailable(): Promise<boolean> {\n return (await loadSimplifier()) !== null;\n}\n\n/**\n * Simplify a scalar `ExprNode` via MathTS, guarded. Returns the original\n * unchanged (`simplified:false`) when the peer is absent or the result cannot\n * be represented/verified; THROWS {@link SimplificationError} only when a\n * representable result disagrees dimensionally/numerically. See module docs.\n *\n * @internal\n */\nexport async function simplifyExpr(expr: ExprNode): Promise<SimplifyResult> {\n const mod = await loadSimplifier();\n if (!mod) return { expr, simplified: false };\n\n const gensymOf = new Map<string, string>();\n const meta = new Map<string, LeafMeta>();\n let candidate: ExprNode;\n try {\n const str = renderGensym(expr, gensymOf, meta);\n // The peer can THROW on some forms (e.g. a known mathts `simplify` BigInt\n // bug on nested `a/(b/c²)`); that, like an unsupported node, is a graceful\n // no-op, not an error. The console is not touched here: the peer's first\n // use already ran inside `detect`'s load window.\n const simplifiedNode = mod.simplify(mod.parse(str));\n candidate = walkBack(simplifiedNode, meta);\n } catch {\n return { expr, simplified: false }; // unsupported / unrepresentable / peer threw\n }\n\n // Guard 1 — dimensional. Inability to validate ⇒ no-op; a CHANGED dimension\n // is a representable disagreement ⇒ throw.\n const origDim = validate(expr).inferredDimension;\n // A literal ZERO carries every dimension: `x − x` with `x` a length is a zero\n // LENGTH, but the CAS hands back a bare dimensionless `0`. Re-stamp it with\n // the original dimension, or this guard would reject every exact\n // cancellation of a dimensioned expression as a \"changed dimension\".\n if (\n origDim !== null &&\n candidate.kind === 'symbol' &&\n candidate.name.trim() !== '' &&\n Number(candidate.name) === 0\n ) {\n candidate = { kind: 'symbol', name: '0', dim: origDim };\n }\n const newResult = validate(candidate);\n if (origDim === null || !newResult.ok || newResult.inferredDimension === null) {\n return { expr, simplified: false };\n }\n if (!equals(origDim, newResult.inferredDimension)) {\n throw new SimplificationError(\n `simplifyExpr: the simplified form changed dimension — a CAS or ` +\n `walk-back error.`,\n );\n }\n\n // Guard 2 — structural subset (no non-numeric leaf invented).\n const origSyms = new Set(nonNumericSymbols(expr));\n for (const s of nonNumericSymbols(candidate)) {\n if (!origSyms.has(s)) return { expr, simplified: false }; // suspicious ⇒ no-op\n }\n\n // Guard 3 — numeric agreement.\n const verdict = numericAgreement(expr, candidate);\n if (verdict === 'disagree') {\n throw new SimplificationError(\n `simplifyExpr: the simplified form disagrees numerically with the ` +\n `original — a CAS or walk-back error.`,\n );\n }\n if (verdict === 'insufficient') return { expr, simplified: false };\n\n // Identical-structure ⇒ nothing gained; report not simplified.\n const changed = symbolNames(candidate).length !== symbolNames(expr).length;\n return { expr: candidate, simplified: changed };\n}\n\n/**\n * Simplify a composed {@link Observable}: returns a freshly-RECONSTRUCTED\n * Observable (new strict `evaluate` closure over the simplified `expr` +\n * recomputed `leaves`) when simplification succeeds, else the original\n * unchanged. See module docs.\n *\n * @internal\n */\nexport async function simplifyObservable(obs: Observable): Promise<Observable> {\n const { expr, simplified } = await simplifyExpr(obs.expr);\n if (!simplified) return obs;\n return makeObservable(obs.name, obs.symbol, obs.dim, expr);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expr-subst.js","sourceRoot":"","sources":["../../src/composition/expr-subst.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAQnD;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CACxB,IAAc,EACd,IAAY,EACZ,WAAqB;IAErB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI;gBACvB,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;gBACjC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAEzB,KAAK,IAAI,EAAE,CAAC;YACV,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC/B,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC3C,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;gBACjB,OAAO,CAAC,CAAC,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;QAC5C,CAAC;QAED,KAAK,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAChE,OAAO;gBACL,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE;gBAC7D,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK;aACpC,CAAC;QACJ,CAAC;QAED,KAAK,YAAY,EAAE,CAAC;YAClB,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAClD,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YACpD,OAAO;gBACL,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE;gBAC7C,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK;aAC5B,CAAC;QACJ,CAAC;QAED,KAAK,gBAAgB,CAAC;QACtB,KAAK,KAAK,CAAC;QACX,KAAK,aAAa,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YACtD,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QACpE,CAAC;QAED;YACE,MAAM,IAAI,iBAAiB,CACzB,0BAA0B,IAAI,CAAC,IAAI,4BAA4B;gBAC7D,0FAA0F;gBAC1F,sBAAsB,CACzB,CAAC;IACN,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"expr-subst.js","sourceRoot":"","sources":["../../src/composition/expr-subst.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAQnD;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CACxB,IAAc,EACd,IAAY,EACZ,WAAqB;IAErB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI;gBACvB,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;gBACjC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAEzB,KAAK,IAAI,EAAE,CAAC;YACV,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC/B,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC3C,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;gBACjB,OAAO,CAAC,CAAC,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;QAC5C,CAAC;QAED,KAAK,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAChE,OAAO;gBACL,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE;gBAC7D,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK;aACpC,CAAC;QACJ,CAAC;QAED,KAAK,YAAY,EAAE,CAAC;YAClB,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAClD,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YACpD,OAAO;gBACL,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE;gBAC7C,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK;aAC5B,CAAC;QACJ,CAAC;QAED,KAAK,gBAAgB,CAAC;QACtB,KAAK,KAAK,CAAC;QACX,KAAK,aAAa,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YACtD,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QACpE,CAAC;QAED;YACE,MAAM,IAAI,iBAAiB,CACzB,0BAA0B,IAAI,CAAC,IAAI,4BAA4B;gBAC7D,0FAA0F;gBAC1F,sBAAsB,CACzB,CAAC;IACN,CAAC;AACH,CAAC","sourcesContent":["/**\n * Scalar `ExprNode` substitution (v0.12 symbolic composition).\n *\n * `substitute(expr, name, replacement)` replaces every `{kind:'symbol', name}`\n * leaf with `replacement`, recursing the scalar arms (`op` / `integral` /\n * `derivative` / `transcendental` / `abs` / `dirac-delta`). It returns the new\n * tree AND the occurrence count — the count\n * is load-bearing: `composeSymbolic` rejects a ZERO-occurrence substitution\n * (a silent no-op that would yield a dimensionally-valid but physics-wrong\n * composition ignoring the first operand — Adam A-3). Tensor arms are out of\n * scope and throw (symbolic composition targets scalar closed forms).\n *\n * INTERNAL — not on the public surface.\n *\n * @module composition/expr-subst\n */\n\nimport type { ExprNode } from '../dimensional/validator.js';\nimport { SymbolicEvalError } from './expr-eval.js';\n\n/** The substituted tree and how many leaves were replaced. */\ninterface SubstitutionResult {\n readonly expr: ExprNode;\n readonly count: number;\n}\n\n/**\n * Replace every leaf `symbol` named `name` with `replacement`. See module\n * docs. Returns `{ expr, count }`.\n *\n * @internal\n */\nexport function substitute(\n expr: ExprNode,\n name: string,\n replacement: ExprNode,\n): SubstitutionResult {\n switch (expr.kind) {\n case 'symbol':\n return expr.name === name\n ? { expr: replacement, count: 1 }\n : { expr, count: 0 };\n\n case 'op': {\n let count = 0;\n const args = expr.args.map((a) => {\n const r = substitute(a, name, replacement);\n count += r.count;\n return r.expr;\n });\n return { expr: { ...expr, args }, count };\n }\n\n case 'integral': {\n const over = substitute(expr.over, name, replacement);\n const integrand = substitute(expr.integrand, name, replacement);\n return {\n expr: { ...expr, over: over.expr, integrand: integrand.expr },\n count: over.count + integrand.count,\n };\n }\n\n case 'derivative': {\n const of = substitute(expr.of, name, replacement);\n const wrt = substitute(expr.wrt, name, replacement);\n return {\n expr: { ...expr, of: of.expr, wrt: wrt.expr },\n count: of.count + wrt.count,\n };\n }\n\n case 'transcendental':\n case 'abs':\n case 'dirac-delta': {\n const inner = substitute(expr.arg, name, replacement);\n return { expr: { ...expr, arg: inner.expr }, count: inner.count };\n }\n\n default:\n throw new SymbolicEvalError(\n `substitute: node kind '${expr.kind}' is out of scope (scalar ` +\n `symbol/op/integral/derivative/transcendental/abs/dirac-delta only; tensor nodes are not ` +\n `substitutable here).`,\n );\n }\n}\n"]}
|
|
@@ -12,6 +12,15 @@
|
|
|
12
12
|
import type { ExprNode } from '../dimensional/ast-types.js';
|
|
13
13
|
/** `monomial` is a product of powers. `dimensional-sum` adds dimensionful terms. */
|
|
14
14
|
type FormulaShape = 'monomial' | 'dimensional-sum';
|
|
15
|
+
/**
|
|
16
|
+
* Exponents of every symbol in a product, quotient, or literal integer power.
|
|
17
|
+
* Undefined for a sum or any node that is not that monomial. The one reader
|
|
18
|
+
* of a monomial's exponents: the canonical graph reads a count's exponent
|
|
19
|
+
* from it, and a composed edge reads the junction's exponent from it.
|
|
20
|
+
*
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export declare function monomialExponents(node: ExprNode | undefined): Map<string, number> | undefined;
|
|
15
24
|
/**
|
|
16
25
|
* Classify `expr`. A node this walker does not understand, and that is not
|
|
17
26
|
* itself a sum, stays a monomial so an unread tensor equation is not
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formula-shape.d.ts","sourceRoot":"","sources":["../../src/composition/formula-shape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAK5D,oFAAoF;AACpF,KAAK,YAAY,GAAG,UAAU,GAAG,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"formula-shape.d.ts","sourceRoot":"","sources":["../../src/composition/formula-shape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAK5D,oFAAoF;AACpF,KAAK,YAAY,GAAG,UAAU,GAAG,iBAAiB,CAAC;AAInD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAiC7F;AAuFD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAEzD"}
|
|
@@ -12,6 +12,60 @@
|
|
|
12
12
|
import { divide, equals, multiply, power } from '../dimensional/algebra.js';
|
|
13
13
|
import { DIMENSIONLESS } from '../dimensional/types.js';
|
|
14
14
|
const NUMERIC_NAME = /^[+-]?(?:\d+(?:\.\d+)?|\.\d+)$/;
|
|
15
|
+
/**
|
|
16
|
+
* Exponents of every symbol in a product, quotient, or literal integer power.
|
|
17
|
+
* Undefined for a sum or any node that is not that monomial. The one reader
|
|
18
|
+
* of a monomial's exponents: the canonical graph reads a count's exponent
|
|
19
|
+
* from it, and a composed edge reads the junction's exponent from it.
|
|
20
|
+
*
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export function monomialExponents(node) {
|
|
24
|
+
if (node === undefined)
|
|
25
|
+
return undefined;
|
|
26
|
+
if (node.kind === 'symbol')
|
|
27
|
+
return new Map([[node.name, 1]]);
|
|
28
|
+
if (node.kind !== 'op')
|
|
29
|
+
return undefined;
|
|
30
|
+
if (node.op === '*') {
|
|
31
|
+
const acc = new Map();
|
|
32
|
+
for (const arg of node.args) {
|
|
33
|
+
const part = monomialExponents(arg);
|
|
34
|
+
if (part === undefined)
|
|
35
|
+
return undefined;
|
|
36
|
+
for (const [name, exp] of part)
|
|
37
|
+
acc.set(name, (acc.get(name) ?? 0) + exp);
|
|
38
|
+
}
|
|
39
|
+
return acc;
|
|
40
|
+
}
|
|
41
|
+
if (node.op === '/') {
|
|
42
|
+
if (node.args.length !== 2)
|
|
43
|
+
return undefined;
|
|
44
|
+
const numerator = monomialExponents(node.args[0]);
|
|
45
|
+
const denominator = monomialExponents(node.args[1]);
|
|
46
|
+
if (numerator === undefined || denominator === undefined)
|
|
47
|
+
return undefined;
|
|
48
|
+
for (const [name, exp] of denominator)
|
|
49
|
+
numerator.set(name, (numerator.get(name) ?? 0) - exp);
|
|
50
|
+
return numerator;
|
|
51
|
+
}
|
|
52
|
+
if (node.op === '^') {
|
|
53
|
+
const base = node.args[0];
|
|
54
|
+
const expNode = node.args[1];
|
|
55
|
+
if (base === undefined || expNode === undefined || expNode.kind !== 'symbol')
|
|
56
|
+
return undefined;
|
|
57
|
+
const exp = Number(expNode.name);
|
|
58
|
+
if (!Number.isFinite(exp))
|
|
59
|
+
return undefined;
|
|
60
|
+
const inner = monomialExponents(base);
|
|
61
|
+
if (inner === undefined)
|
|
62
|
+
return undefined;
|
|
63
|
+
for (const [name, innerExp] of inner)
|
|
64
|
+
inner.set(name, innerExp * exp);
|
|
65
|
+
return inner;
|
|
66
|
+
}
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
15
69
|
/** A dimensionless symbol whose name is a number, the way a literal exponent is written. */
|
|
16
70
|
function numericExponent(node) {
|
|
17
71
|
if (node.kind !== 'symbol' || !NUMERIC_NAME.test(node.name))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formula-shape.js","sourceRoot":"","sources":["../../src/composition/formula-shape.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"formula-shape.js","sourceRoot":"","sources":["../../src/composition/formula-shape.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Whether an encoded formula is a product of powers, or a sum of dimensionful terms.\n *\n * Buckingham-π returns a monomial. A formula that adds dimensionful terms is\n * not that monomial, even when a unique monomial exists in the same variables\n * (fast magnetosonic speed: the monomial is the sound speed; the formula is\n * √(c_s² + v_A²)). A sum whose every addend is dimensionless is still a\n * factor in a monomial: (1+R), (1−e²), (1 + E/(kT)).\n *\n * @module composition/formula-shape\n */\n\nimport type { ExprNode } from '../dimensional/ast-types.js';\nimport { divide, equals, multiply, power } from '../dimensional/algebra.js';\nimport type { Dimension } from '../dimensional/types.js';\nimport { DIMENSIONLESS } from '../dimensional/types.js';\n\n/** `monomial` is a product of powers. `dimensional-sum` adds dimensionful terms. */\ntype FormulaShape = 'monomial' | 'dimensional-sum';\n\nconst NUMERIC_NAME = /^[+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/;\n\n/**\n * Exponents of every symbol in a product, quotient, or literal integer power.\n * Undefined for a sum or any node that is not that monomial. The one reader\n * of a monomial's exponents: the canonical graph reads a count's exponent\n * from it, and a composed edge reads the junction's exponent from it.\n *\n * @internal\n */\nexport function monomialExponents(node: ExprNode | undefined): Map<string, number> | undefined {\n if (node === undefined) return undefined;\n if (node.kind === 'symbol') return new Map([[node.name, 1]]);\n if (node.kind !== 'op') return undefined;\n if (node.op === '*') {\n const acc = new Map<string, number>();\n for (const arg of node.args) {\n const part = monomialExponents(arg);\n if (part === undefined) return undefined;\n for (const [name, exp] of part) acc.set(name, (acc.get(name) ?? 0) + exp);\n }\n return acc;\n }\n if (node.op === '/') {\n if (node.args.length !== 2) return undefined;\n const numerator = monomialExponents(node.args[0]);\n const denominator = monomialExponents(node.args[1]);\n if (numerator === undefined || denominator === undefined) return undefined;\n for (const [name, exp] of denominator) numerator.set(name, (numerator.get(name) ?? 0) - exp);\n return numerator;\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 undefined;\n const exp = Number(expNode.name);\n if (!Number.isFinite(exp)) return undefined;\n const inner = monomialExponents(base);\n if (inner === undefined) return undefined;\n for (const [name, innerExp] of inner) inner.set(name, innerExp * exp);\n return inner;\n }\n return undefined;\n}\n\n/** A dimensionless symbol whose name is a number, the way a literal exponent is written. */\nfunction numericExponent(node: ExprNode): number | undefined {\n if (node.kind !== 'symbol' || !NUMERIC_NAME.test(node.name)) return undefined;\n if (!equals(node.dim, DIMENSIONLESS)) return undefined;\n const n = Number(node.name);\n return Number.isFinite(n) ? n : undefined;\n}\n\n/**\n * Dimension of a scalar node this classifier understands. `undefined` means\n * the node is not a product of powers of dimensioned symbols. A sum that\n * cannot be dimensioned is treated as dimensionful.\n */\nfunction dimOf(node: ExprNode): Dimension | undefined {\n if (node.kind === 'symbol') return node.dim;\n if (node.kind === 'abs') return dimOf(node.arg);\n if (node.kind === 'transcendental') {\n const arg = dimOf(node.arg);\n if (arg === undefined || !equals(arg, DIMENSIONLESS)) return undefined;\n return DIMENSIONLESS;\n }\n if (node.kind !== 'op') return undefined;\n if (node.op === '+' || node.op === '-') {\n if (node.args.length === 0) return undefined;\n const dims = node.args.map(dimOf);\n if (dims.some((d) => d === undefined)) return undefined;\n const first = dims[0]!;\n if (!dims.every((d) => equals(d!, first))) return undefined;\n return first;\n }\n if (node.op === '*') {\n let acc: Dimension = DIMENSIONLESS;\n for (const arg of node.args) {\n const d = dimOf(arg);\n if (d === undefined) return undefined;\n acc = multiply(acc, d);\n }\n return acc;\n }\n if (node.op === '/') {\n if (node.args.length !== 2) return undefined;\n const num = dimOf(node.args[0]!);\n const den = dimOf(node.args[1]!);\n if (num === undefined || den === undefined) return undefined;\n return divide(num, den);\n }\n if (node.op === '^') {\n if (node.args.length !== 2) return undefined;\n const base = dimOf(node.args[0]!);\n const exp = numericExponent(node.args[1]!);\n if (base === undefined || exp === undefined) return undefined;\n return power(base, exp);\n }\n return undefined;\n}\n\n/** Scalar children. A tensor node this walker does not understand contributes none. */\nfunction children(node: ExprNode): readonly ExprNode[] {\n if (node.kind === 'op') return node.args;\n if (node.kind === 'abs' || node.kind === 'transcendental' || node.kind === 'dirac-delta') return [node.arg];\n if (node.kind === 'integral') {\n return [node.over, node.integrand, ...(node.lower === undefined ? [] : [node.lower]), ...(node.upper === undefined ? [] : [node.upper])];\n }\n if (node.kind === 'derivative') return [node.of, node.wrt];\n if (node.kind === 'variational-derivative') return [node.functional, node.field, node.over];\n return [];\n}\n\n/**\n * True when `node` adds terms that are not all dimensionless. An addend whose\n * dimension cannot be read counts as dimensionful: a sum we cannot see is not\n * reported as a monomial.\n */\nfunction isDimensionalSum(node: ExprNode): boolean {\n if (node.kind !== 'op' || (node.op !== '+' && node.op !== '-')) return false;\n const dims = node.args.map(dimOf);\n if (dims.some((d) => d === undefined)) return true;\n return dims.some((d) => !equals(d!, DIMENSIONLESS));\n}\n\nfunction hasDimensionalSum(node: ExprNode): boolean {\n if (isDimensionalSum(node)) return true;\n return children(node).some(hasDimensionalSum);\n}\n\n/**\n * Classify `expr`. A node this walker does not understand, and that is not\n * itself a sum, stays a monomial so an unread tensor equation is not\n * reclassified.\n */\nexport function formulaShape(expr: ExprNode): FormulaShape {\n return hasDimensionalSum(expr) ? 'dimensional-sum' : 'monomial';\n}\n"]}
|
|
@@ -7,9 +7,10 @@ import type { BridgeEdge } from './edge.js';
|
|
|
7
7
|
*/
|
|
8
8
|
export declare const CANDIDATE_NOT_A_BRIDGE_REASON = "a coincidence-heavy REVIEW SURFACE, NOT discovered bridges";
|
|
9
9
|
/**
|
|
10
|
-
* Bridge ids
|
|
10
|
+
* Bridge ids whose catalog row is marked `contested` in `data/bridge-catalog.json`.
|
|
11
11
|
* A contested row stays out of the null-result list until an adjudication
|
|
12
|
-
* exists. A membership rejection is that adjudication.
|
|
12
|
+
* exists. A membership rejection is that adjudication. Derived from the data,
|
|
13
|
+
* never typed here (the owner's decision of 2026-10-09).
|
|
13
14
|
*
|
|
14
15
|
* @internal
|
|
15
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontier-account.d.ts","sourceRoot":"","sources":["../../src/composition/frontier-account.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"frontier-account.d.ts","sourceRoot":"","sources":["../../src/composition/frontier-account.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAO5C;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,+DACoB,CAAC;AAE/D;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAEf,CAAC;AAEpC,oGAAoG;AACpG,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAExE,8FAA8F;AAC9F,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,0HAA0H;AAC1H,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,sBAAsB,GAAG,WAAW,GAAG,eAAe,CAAC;CACzE;AAED,wGAAwG;AACxG,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,uGAAuG;AACvG,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAClD;AAED,8JAA8J;AAC9J,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC1C;AAQD,wFAAwF;AACxF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GACxF,iBAAiB,EAAE,CAQrB;AAoBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,OAAO,GAAE,sBAA2B,GACnC,eAAe,CA4BjB;AAED,qGAAqG;AACrG,wBAAgB,sBAAsB,IAAI,eAAe,CAUxD;AAED,iGAAiG;AACjG,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAatE"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* @internal
|
|
9
9
|
*/
|
|
10
10
|
import { proposeLinkCandidates } from './bridge-analysis.js';
|
|
11
|
+
import { catalogEntries } from '../bridges/catalog-load.js';
|
|
11
12
|
import { CATALOG_GRAPH } from './catalog-graph.js';
|
|
12
13
|
import { scanFrontier } from './probe/frontier.js';
|
|
13
14
|
import { expressionSearchGaps } from './probe/expression-gaps.js';
|
|
@@ -21,13 +22,16 @@ import { listConfrontations } from '../bridges/confrontations.js';
|
|
|
21
22
|
*/
|
|
22
23
|
export const CANDIDATE_NOT_A_BRIDGE_REASON = 'a coincidence-heavy REVIEW SURFACE, NOT discovered bridges';
|
|
23
24
|
/**
|
|
24
|
-
* Bridge ids
|
|
25
|
+
* Bridge ids whose catalog row is marked `contested` in `data/bridge-catalog.json`.
|
|
25
26
|
* A contested row stays out of the null-result list until an adjudication
|
|
26
|
-
* exists. A membership rejection is that adjudication.
|
|
27
|
+
* exists. A membership rejection is that adjudication. Derived from the data,
|
|
28
|
+
* never typed here (the owner's decision of 2026-10-09).
|
|
27
29
|
*
|
|
28
30
|
* @internal
|
|
29
31
|
*/
|
|
30
|
-
export const CONTESTED_BRIDGE_IDS =
|
|
32
|
+
export const CONTESTED_BRIDGE_IDS = catalogEntries()
|
|
33
|
+
.filter((entry) => entry.contested === true)
|
|
34
|
+
.map((entry) => `be-${entry.id}`);
|
|
31
35
|
const OBSERVATION_ABSENT = 'observation absent';
|
|
32
36
|
function byId(rows) {
|
|
33
37
|
return [...rows].sort((a, b) => a.id.localeCompare(b.id) || a.id.localeCompare(b.id));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontier-account.js","sourceRoot":"","sources":["../../src/composition/frontier-account.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"frontier-account.js","sourceRoot":"","sources":["../../src/composition/frontier-account.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Two lists the catalog already knows how to tell apart: records that were\n * examined and did not become an accepted connection, and connections the\n * catalog does not contain. Neither list is a verdict and neither list\n * changes a score.\n *\n * @module composition/frontier-account\n * @internal\n */\nimport { proposeLinkCandidates } from './bridge-analysis.js';\nimport { catalogEntries } from '../bridges/catalog-load.js';\nimport { CATALOG_GRAPH } from './catalog-graph.js';\nimport type { BridgeEdge } from './edge.js';\nimport { scanFrontier } from './probe/frontier.js';\nimport { expressionSearchGaps } from './probe/expression-gaps.js';\nimport type { FrontierGap } from './probe/types.js';\nimport { REJECTED_BRIDGE_ADJUDICATIONS } from '../bridges/rejected.js';\nimport { listConfrontations } from '../bridges/confrontations.js';\n\n/**\n * The link proposer's existing label, quoted from `upt candidates`.\n * Not a new verdict.\n *\n * @internal\n */\nexport const CANDIDATE_NOT_A_BRIDGE_REASON =\n 'a coincidence-heavy REVIEW SURFACE, NOT discovered bridges';\n\n/**\n * Bridge ids whose catalog row is marked `contested` in `data/bridge-catalog.json`.\n * A contested row stays out of the null-result list until an adjudication\n * exists. A membership rejection is that adjudication. Derived from the data,\n * never typed here (the owner's decision of 2026-10-09).\n *\n * @internal\n */\nexport const CONTESTED_BRIDGE_IDS: readonly string[] = catalogEntries()\n .filter((entry) => entry.contested === true)\n .map((entry) => `be-${entry.id}`);\n\n/** Why an entry cannot be confronted yet: no comparison exists, or its data is absent. @internal */\nexport type ConfrontationMarkStatus = 'unconfrontable' | 'data-pending';\n\n/** One entry's confrontation status, with the reason that entry already carries. @internal */\nexport interface ConfrontationMark {\n readonly id: string;\n readonly status: ConfrontationMarkStatus;\n readonly reason: string;\n}\n\n/** One record that was examined and did not become an accepted connection, and where that finding came from. @internal */\nexport interface NullResultRow {\n readonly id: string;\n readonly reason: string;\n readonly source: 'membership-rejection' | 'candidate' | 'confrontation';\n}\n\n/** One connection the catalog does not contain, named by the two quantities it would join. @internal */\nexport interface FrontierAccountRow {\n readonly id: string;\n readonly left: string;\n readonly right: string;\n readonly reason: string;\n /** A registered observation id, or the words `observation absent`. */\n readonly observation: string;\n}\n\n/** The two lists together: the null results, and the frontier the catalog does not cover. @internal */\nexport interface FrontierAccount {\n readonly nullResults: readonly NullResultRow[];\n readonly frontier: readonly FrontierAccountRow[];\n}\n\n/** Inputs the account reads rather than derives: rejections, contested ids, confrontation marks, and whether catalog-wide expression gaps count. @internal */\nexport interface FrontierAccountOptions {\n readonly rejections?: readonly { id: string; reason: string }[];\n readonly contestedIds?: readonly string[];\n readonly marks?: readonly ConfrontationMark[];\n /**\n * Expression gaps are catalog-wide applied-case templates, not missing\n * edges of a fixture graph. The live catalog includes them because\n * `upt probe scan` emits them. A fixture with no missing edges does not.\n */\n readonly includeExpressionGaps?: boolean;\n}\n\nconst OBSERVATION_ABSENT = 'observation absent';\n\nfunction byId<T extends { id: string }>(rows: readonly T[]): T[] {\n return [...rows].sort((a, b) => a.id.localeCompare(b.id) || a.id.localeCompare(b.id));\n}\n\n/** Read marks only where an entry already carries the status. Invent none. @internal */\nexport function marksFromEntries(\n entries: readonly { bridgeId: number; title: string; status?: string; reason?: string }[],\n): ConfrontationMark[] {\n const out: ConfrontationMark[] = [];\n for (const entry of entries) {\n if (entry.status !== 'unconfrontable' && entry.status !== 'data-pending') continue;\n const reason = entry.reason?.trim() ? entry.reason : entry.title;\n out.push({ id: `be-${entry.bridgeId}`, status: entry.status, reason });\n }\n return out;\n}\n\nfunction sidesOf(gap: FrontierGap): { left: string; right: string } {\n const participants = gap.participants.map((p) => p.id).filter((id) => id !== '');\n if (participants.length >= 2) return { left: participants[0]!, right: participants[1]! };\n if (gap.regimes.length >= 2) return { left: gap.regimes[0]!, right: gap.regimes[1]! };\n return { left: gap.id, right: gap.evidence.summary };\n}\n\nfunction frontierRow(gap: FrontierGap): FrontierAccountRow {\n const sides = sidesOf(gap);\n return {\n id: gap.id,\n left: sides.left,\n right: sides.right,\n reason: gap.kind,\n observation: gap.observations.length > 0 ? gap.observations.join(', ') : OBSERVATION_ABSENT,\n };\n}\n\n/**\n * Null results and frontier rows for one graph. Rejections, contested ids,\n * and confrontation marks are inputs: the function does not invent them.\n *\n * @internal\n */\nexport function accountFromGraph(\n edges: readonly BridgeEdge[],\n options: FrontierAccountOptions = {},\n): FrontierAccount {\n const contested = new Set(options.contestedIds ?? []);\n const rejectionIds = new Set((options.rejections ?? []).map((row) => row.id));\n const nullResults: NullResultRow[] = [];\n\n for (const rejection of options.rejections ?? []) {\n nullResults.push({ id: rejection.id, reason: rejection.reason, source: 'membership-rejection' });\n }\n for (const candidate of proposeLinkCandidates(edges)) {\n nullResults.push({\n id: `candidate:${candidate.a}:${candidate.b}`,\n reason: CANDIDATE_NOT_A_BRIDGE_REASON,\n source: 'candidate',\n });\n }\n for (const mark of options.marks ?? []) {\n if (contested.has(mark.id) && !rejectionIds.has(mark.id)) continue;\n nullResults.push({ id: mark.id, reason: mark.reason, source: 'confrontation' });\n }\n\n const gaps = [\n ...scanFrontier(edges),\n ...(options.includeExpressionGaps ? expressionSearchGaps() : []),\n ];\n return {\n nullResults: byId(nullResults),\n frontier: byId(gaps.map(frontierRow)),\n };\n}\n\n/** The catalog's two lists. Expression gaps are included because probe scan emits them. @internal */\nexport function catalogFrontierAccount(): FrontierAccount {\n return accountFromGraph(CATALOG_GRAPH, {\n rejections: REJECTED_BRIDGE_ADJUDICATIONS.map((row) => ({\n id: `be-${row.beId}`,\n reason: row.reason,\n })),\n contestedIds: CONTESTED_BRIDGE_IDS,\n marks: marksFromEntries(listConfrontations()),\n includeExpressionGaps: true,\n });\n}\n\n/** Both headings and both counts. An empty list is the word `(empty)`, not silence. @internal */\nexport function formatFrontierAccount(account: FrontierAccount): string {\n const lines: string[] = [];\n lines.push(`Null results (${account.nullResults.length})`);\n if (account.nullResults.length === 0) lines.push(' (empty)');\n for (const row of account.nullResults) {\n lines.push(` ${row.id} ${row.reason}`);\n }\n lines.push(`Frontier (${account.frontier.length})`);\n if (account.frontier.length === 0) lines.push(' (empty)');\n for (const row of account.frontier) {\n lines.push(` ${row.left} — ${row.right} ${row.reason} ${row.observation}`);\n }\n return lines.join('\\n');\n}\n"]}
|