universal-physics-tensor 10.0.0 → 12.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 +39 -36
- package/bin/upt.mjs +13 -1
- package/data/applied-cases.json +1892 -0
- package/data/applied-cases.schema.json +194 -0
- package/data/atlas/atlas.json +25 -25
- package/data/atlas/atlas.jsonld +1 -1
- package/data/atlas/diffusion.json +6 -6
- package/data/atlas/oscillators.json +7 -7
- package/data/atlas/waves.json +14 -14
- package/data/atlas/witness-results.json +11 -11
- package/data/bridge-catalog.json +389 -230
- package/data/bridge-catalog.schema.json +45 -7
- package/data/units.json +6 -25
- package/dist/atlas/applicability.d.ts.map +1 -1
- package/dist/atlas/applicability.js +21 -15
- package/dist/atlas/applicability.js.map +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts +9 -1
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.js +15 -13
- package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
- package/dist/atlas/benchmark/loader.js +2 -2
- package/dist/atlas/benchmark/loader.js.map +1 -1
- package/dist/atlas/benchmark/stats.d.ts +2 -2
- package/dist/atlas/benchmark/stats.d.ts.map +1 -1
- package/dist/atlas/benchmark/stats.js +9 -15
- package/dist/atlas/benchmark/stats.js.map +1 -1
- package/dist/atlas/catalog-formal-ref.d.ts +26 -3
- package/dist/atlas/catalog-formal-ref.d.ts.map +1 -1
- package/dist/atlas/catalog-formal-ref.js +52 -5
- package/dist/atlas/catalog-formal-ref.js.map +1 -1
- package/dist/atlas/chain-pipeline.d.ts.map +1 -1
- package/dist/atlas/chain-pipeline.js +7 -8
- package/dist/atlas/chain-pipeline.js.map +1 -1
- package/dist/atlas/diffusion/bridges-closure.d.ts +0 -4
- package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
- package/dist/atlas/diffusion/bridges-closure.js +8 -12
- package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
- package/dist/atlas/diffusion/bridges.d.ts.map +1 -1
- package/dist/atlas/diffusion/bridges.js +27 -39
- package/dist/atlas/diffusion/bridges.js.map +1 -1
- package/dist/atlas/diffusion/dimensions.d.ts +6 -14
- package/dist/atlas/diffusion/dimensions.d.ts.map +1 -1
- package/dist/atlas/diffusion/dimensions.js +8 -16
- package/dist/atlas/diffusion/dimensions.js.map +1 -1
- package/dist/atlas/diffusion/models.d.ts +3 -3
- package/dist/atlas/diffusion/models.d.ts.map +1 -1
- package/dist/atlas/diffusion/models.js +5 -10
- package/dist/atlas/diffusion/models.js.map +1 -1
- package/dist/atlas/diffusion/numerics.d.ts +16 -4
- package/dist/atlas/diffusion/numerics.d.ts.map +1 -1
- package/dist/atlas/diffusion/numerics.js +38 -24
- package/dist/atlas/diffusion/numerics.js.map +1 -1
- package/dist/atlas/link-prediction.d.ts +106 -3
- package/dist/atlas/link-prediction.d.ts.map +1 -1
- package/dist/atlas/link-prediction.js +212 -66
- package/dist/atlas/link-prediction.js.map +1 -1
- package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-coarse.js +7 -11
- package/dist/atlas/oscillators/bridges-coarse.js.map +1 -1
- package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-exact.js +6 -7
- package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
- package/dist/atlas/oscillators/bridges-limits.d.ts +3 -16
- package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-limits.js +23 -34
- package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
- package/dist/atlas/oscillators/dimensions.d.ts +9 -21
- package/dist/atlas/oscillators/dimensions.d.ts.map +1 -1
- package/dist/atlas/oscillators/dimensions.js +9 -21
- package/dist/atlas/oscillators/dimensions.js.map +1 -1
- package/dist/atlas/oscillators/limit-witnesses.d.ts +2 -2
- package/dist/atlas/oscillators/limit-witnesses.d.ts.map +1 -1
- package/dist/atlas/oscillators/limit-witnesses.js +17 -15
- package/dist/atlas/oscillators/limit-witnesses.js.map +1 -1
- package/dist/atlas/oscillators/models.d.ts.map +1 -1
- package/dist/atlas/oscillators/models.js +2 -6
- package/dist/atlas/oscillators/models.js.map +1 -1
- package/dist/atlas/oscillators/pendulum-motion.d.ts +29 -6
- package/dist/atlas/oscillators/pendulum-motion.d.ts.map +1 -1
- package/dist/atlas/oscillators/pendulum-motion.js +60 -40
- package/dist/atlas/oscillators/pendulum-motion.js.map +1 -1
- package/dist/atlas/oscillators/phase-translation.d.ts +0 -11
- package/dist/atlas/oscillators/phase-translation.d.ts.map +1 -1
- package/dist/atlas/oscillators/phase-translation.js +3 -4
- package/dist/atlas/oscillators/phase-translation.js.map +1 -1
- package/dist/atlas/oscillators/position-translation.d.ts +68 -7
- package/dist/atlas/oscillators/position-translation.d.ts.map +1 -1
- package/dist/atlas/oscillators/position-translation.js +123 -12
- package/dist/atlas/oscillators/position-translation.js.map +1 -1
- package/dist/atlas/oscillators/rejections.d.ts +0 -2
- package/dist/atlas/oscillators/rejections.d.ts.map +1 -1
- package/dist/atlas/oscillators/rejections.js +0 -7
- package/dist/atlas/oscillators/rejections.js.map +1 -1
- package/dist/atlas/physjs-entries.generated.d.ts +35 -25
- package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
- package/dist/atlas/physjs-entries.generated.js +37 -25
- package/dist/atlas/physjs-entries.generated.js.map +1 -1
- package/dist/atlas/physjs-ref.d.ts +34 -31
- package/dist/atlas/physjs-ref.d.ts.map +1 -1
- package/dist/atlas/physjs-ref.js +55 -53
- package/dist/atlas/physjs-ref.js.map +1 -1
- package/dist/atlas/physjs-reviewed.d.ts +1 -1
- package/dist/atlas/physjs-reviewed.js +15 -15
- package/dist/atlas/physjs-reviewed.js.map +1 -1
- package/dist/atlas/poster/statements.d.ts +0 -19
- package/dist/atlas/poster/statements.d.ts.map +1 -1
- package/dist/atlas/poster/statements.js +1 -1
- package/dist/atlas/poster/statements.js.map +1 -1
- package/dist/atlas/proof-target.d.ts +1 -1
- package/dist/atlas/proof-target.js +1 -1
- package/dist/atlas/proof-target.js.map +1 -1
- package/dist/atlas/regime.d.ts +1 -1
- package/dist/atlas/regime.d.ts.map +1 -1
- package/dist/atlas/regime.js +1 -1
- package/dist/atlas/regime.js.map +1 -1
- package/dist/atlas/text-overlap.d.ts +23 -0
- package/dist/atlas/text-overlap.d.ts.map +1 -0
- package/dist/atlas/text-overlap.js +41 -0
- package/dist/atlas/text-overlap.js.map +1 -0
- package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
- package/dist/atlas/waves/bridges-closure.js +2 -6
- package/dist/atlas/waves/bridges-closure.js.map +1 -1
- package/dist/atlas/waves/bridges.d.ts.map +1 -1
- package/dist/atlas/waves/bridges.js +32 -48
- package/dist/atlas/waves/bridges.js.map +1 -1
- package/dist/atlas/waves/models.d.ts +5 -6
- package/dist/atlas/waves/models.d.ts.map +1 -1
- package/dist/atlas/waves/models.js +7 -13
- package/dist/atlas/waves/models.js.map +1 -1
- package/dist/atlas/waves/numerics.d.ts.map +1 -1
- package/dist/atlas/waves/numerics.js +10 -3
- package/dist/atlas/waves/numerics.js.map +1 -1
- package/dist/atlas/witness-numeric.d.ts +30 -0
- package/dist/atlas/witness-numeric.d.ts.map +1 -1
- package/dist/atlas/witness-numeric.js +53 -0
- package/dist/atlas/witness-numeric.js.map +1 -1
- package/dist/atlas/witness-specs.d.ts.map +1 -1
- package/dist/atlas/witness-specs.js +19 -0
- package/dist/atlas/witness-specs.js.map +1 -1
- package/dist/atlas/witness-symbolic.d.ts +75 -3
- package/dist/atlas/witness-symbolic.d.ts.map +1 -1
- package/dist/atlas/witness-symbolic.js +116 -10
- package/dist/atlas/witness-symbolic.js.map +1 -1
- package/dist/bridges/catalog-load.d.ts.map +1 -1
- package/dist/bridges/catalog-load.js +13 -8
- package/dist/bridges/catalog-load.js.map +1 -1
- package/dist/bridges/catalog-types.d.ts +26 -2
- package/dist/bridges/catalog-types.d.ts.map +1 -1
- package/dist/bridges/catalog-types.js +11 -1
- package/dist/bridges/catalog-types.js.map +1 -1
- package/dist/bridges/evaluation-errors.d.ts +31 -1
- 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.d.ts.map +1 -1
- package/dist/bridges/evaluator-inputs.js +7 -5
- package/dist/bridges/evaluator-inputs.js.map +1 -1
- package/dist/bridges/evaluators.d.ts.map +1 -1
- package/dist/bridges/evaluators.js +27 -12
- package/dist/bridges/evaluators.js.map +1 -1
- package/dist/bridges/expr-parse.d.ts +11 -0
- package/dist/bridges/expr-parse.d.ts.map +1 -1
- package/dist/bridges/expr-parse.js +14 -5
- package/dist/bridges/expr-parse.js.map +1 -1
- package/dist/bridges/holds.d.ts +35 -3
- package/dist/bridges/holds.d.ts.map +1 -1
- package/dist/bridges/holds.js +117 -23
- package/dist/bridges/holds.js.map +1 -1
- package/dist/bridges/notices.d.ts.map +1 -1
- package/dist/bridges/notices.js +5 -5
- package/dist/bridges/notices.js.map +1 -1
- package/dist/bridges/relation-eval.d.ts +4 -4
- package/dist/bridges/relation-eval.d.ts.map +1 -1
- package/dist/bridges/relation-eval.js +15 -16
- package/dist/bridges/relation-eval.js.map +1 -1
- package/dist/bridges/sensitivity.d.ts.map +1 -1
- package/dist/bridges/sensitivity.js +3 -3
- package/dist/bridges/sensitivity.js.map +1 -1
- package/dist/bridges/validity.d.ts +33 -0
- package/dist/bridges/validity.d.ts.map +1 -0
- package/dist/bridges/validity.js +67 -0
- package/dist/bridges/validity.js.map +1 -0
- package/dist/canonical/entries/atomic.js +1 -3
- package/dist/canonical/entries/atomic.js.map +1 -1
- package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
- package/dist/canonical/entries/condensed-matter.js +4 -5
- package/dist/canonical/entries/condensed-matter.js.map +1 -1
- package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
- package/dist/canonical/entries/dimensional-classics.js +3 -4
- package/dist/canonical/entries/dimensional-classics.js.map +1 -1
- package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
- package/dist/canonical/entries/electromagnetism.js +4 -10
- package/dist/canonical/entries/electromagnetism.js.map +1 -1
- package/dist/canonical/entries/fluids-waves.d.ts.map +1 -1
- package/dist/canonical/entries/fluids-waves.js +3 -7
- package/dist/canonical/entries/fluids-waves.js.map +1 -1
- package/dist/canonical/entries/mechanics.d.ts.map +1 -1
- package/dist/canonical/entries/mechanics.js +4 -6
- package/dist/canonical/entries/mechanics.js.map +1 -1
- package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
- package/dist/canonical/entries/nonmonomial.js +9 -17
- package/dist/canonical/entries/nonmonomial.js.map +1 -1
- package/dist/canonical/entries/relativity.d.ts.map +1 -1
- package/dist/canonical/entries/relativity.js +6 -6
- package/dist/canonical/entries/relativity.js.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.js +6 -10
- package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
- package/dist/canonical/fixed-points.d.ts +94 -0
- package/dist/canonical/fixed-points.d.ts.map +1 -0
- package/dist/canonical/fixed-points.js +81 -0
- package/dist/canonical/fixed-points.js.map +1 -0
- package/dist/canonical/linkage.d.ts.map +1 -1
- package/dist/canonical/linkage.js +25 -44
- package/dist/canonical/linkage.js.map +1 -1
- package/dist/canonical/normal-form.d.ts.map +1 -1
- package/dist/canonical/normal-form.js +5 -11
- package/dist/canonical/normal-form.js.map +1 -1
- package/dist/canonical/structural.d.ts +21 -21
- package/dist/canonical/structural.d.ts.map +1 -1
- package/dist/canonical/structural.js +40 -19
- package/dist/canonical/structural.js.map +1 -1
- package/dist/cases/catalog-checks.d.ts +10 -0
- package/dist/cases/catalog-checks.d.ts.map +1 -0
- package/dist/cases/catalog-checks.js +241 -0
- package/dist/cases/catalog-checks.js.map +1 -0
- package/dist/cases/catalog.d.ts +83 -0
- package/dist/cases/catalog.d.ts.map +1 -0
- package/dist/cases/catalog.js +118 -0
- package/dist/cases/catalog.js.map +1 -0
- package/dist/cases/engine.d.ts +13 -0
- package/dist/cases/engine.d.ts.map +1 -0
- package/dist/cases/engine.js +179 -0
- package/dist/cases/engine.js.map +1 -0
- package/dist/cases/index.d.ts.map +1 -1
- package/dist/cases/index.js +5 -7
- package/dist/cases/index.js.map +1 -1
- package/dist/cases/methods.d.ts +215 -0
- package/dist/cases/methods.d.ts.map +1 -0
- package/dist/cases/methods.js +743 -0
- package/dist/cases/methods.js.map +1 -0
- package/dist/cases/quadrature.d.ts +7 -9
- package/dist/cases/quadrature.d.ts.map +1 -1
- package/dist/cases/quadrature.js +28 -32
- package/dist/cases/quadrature.js.map +1 -1
- package/dist/cases/types.d.ts +12 -0
- package/dist/cases/types.d.ts.map +1 -1
- package/dist/cases/types.js.map +1 -1
- package/dist/cli/args.d.ts +25 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +30 -8
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/bindings.d.ts.map +1 -1
- package/dist/cli/bindings.js +5 -4
- package/dist/cli/bindings.js.map +1 -1
- package/dist/cli/command.d.ts +11 -1
- package/dist/cli/command.d.ts.map +1 -1
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/commands/_atlas-map.d.ts +0 -9
- package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
- package/dist/cli/commands/_atlas-map.js +8 -18
- package/dist/cli/commands/_atlas-map.js.map +1 -1
- package/dist/cli/commands/_atlas-route.d.ts.map +1 -1
- package/dist/cli/commands/_atlas-route.js +6 -2
- package/dist/cli/commands/_atlas-route.js.map +1 -1
- package/dist/cli/commands/_discovery-opts.d.ts +1 -0
- package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
- package/dist/cli/commands/_discovery-opts.js +9 -9
- 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 +8 -5
- 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 +8 -1
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/cli/commands/axes.d.ts.map +1 -1
- package/dist/cli/commands/axes.js +20 -1
- package/dist/cli/commands/axes.js.map +1 -1
- package/dist/cli/commands/confront.d.ts.map +1 -1
- package/dist/cli/commands/confront.js +8 -14
- package/dist/cli/commands/confront.js.map +1 -1
- package/dist/cli/commands/derive.d.ts.map +1 -1
- package/dist/cli/commands/derive.js +22 -22
- 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 +122 -73
- 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 +1 -0
- 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 +67 -39
- 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 +24 -3
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/ground.d.ts.map +1 -1
- package/dist/cli/commands/ground.js +7 -1
- package/dist/cli/commands/ground.js.map +1 -1
- package/dist/cli/commands/map.d.ts.map +1 -1
- package/dist/cli/commands/map.js +84 -11
- 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 +12 -9
- package/dist/cli/commands/metric.js.map +1 -1
- package/dist/cli/commands/path.d.ts +10 -0
- package/dist/cli/commands/path.d.ts.map +1 -1
- package/dist/cli/commands/path.js +25 -3
- package/dist/cli/commands/path.js.map +1 -1
- package/dist/cli/commands/probe.d.ts.map +1 -1
- package/dist/cli/commands/probe.js +59 -16
- package/dist/cli/commands/probe.js.map +1 -1
- package/dist/cli/commands/regime.d.ts.map +1 -1
- package/dist/cli/commands/regime.js +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +19 -28
- package/dist/cli/commands/symbolic.js.map +1 -1
- package/dist/cli/commands/testplan.d.ts.map +1 -1
- package/dist/cli/commands/testplan.js +4 -2
- package/dist/cli/commands/testplan.js.map +1 -1
- package/dist/cli/determination.d.ts +1 -0
- package/dist/cli/determination.d.ts.map +1 -1
- package/dist/cli/determination.js.map +1 -1
- package/dist/cli/expr-print.d.ts +0 -2
- package/dist/cli/expr-print.d.ts.map +1 -1
- package/dist/cli/expr-print.js +7 -31
- package/dist/cli/expr-print.js.map +1 -1
- package/dist/cli/flag-help.d.ts +1 -0
- package/dist/cli/flag-help.d.ts.map +1 -1
- package/dist/cli/flag-help.js +1 -0
- package/dist/cli/flag-help.js.map +1 -1
- package/dist/cli/graphs.d.ts +2 -0
- package/dist/cli/graphs.d.ts.map +1 -1
- package/dist/cli/graphs.js +1 -0
- package/dist/cli/graphs.js.map +1 -1
- package/dist/cli/main.d.ts +8 -0
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +19 -3
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/numeric-flag.d.ts +12 -0
- package/dist/cli/numeric-flag.d.ts.map +1 -0
- package/dist/cli/numeric-flag.js +44 -0
- package/dist/cli/numeric-flag.js.map +1 -0
- package/dist/cli/output.d.ts +28 -0
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +23 -0
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/record-reach.js +2 -2
- package/dist/cli/record-reach.js.map +1 -1
- package/dist/cli/record-tables.d.ts.map +1 -1
- package/dist/cli/record-tables.js +6 -5
- package/dist/cli/record-tables.js.map +1 -1
- package/dist/cli/record.d.ts +1 -5
- package/dist/cli/record.d.ts.map +1 -1
- package/dist/cli/record.js +9 -8
- package/dist/cli/record.js.map +1 -1
- package/dist/cli/search-index.d.ts.map +1 -1
- package/dist/cli/search-index.js +7 -6
- package/dist/cli/search-index.js.map +1 -1
- package/dist/cli/statuses.d.ts +0 -2
- package/dist/cli/statuses.d.ts.map +1 -1
- package/dist/cli/statuses.js +12 -9
- package/dist/cli/statuses.js.map +1 -1
- package/dist/cli/stored-results.d.ts +7 -0
- package/dist/cli/stored-results.d.ts.map +1 -0
- package/dist/cli/stored-results.js +23 -0
- package/dist/cli/stored-results.js.map +1 -0
- package/dist/cli/version.d.ts +1 -0
- package/dist/cli/version.d.ts.map +1 -1
- package/dist/cli/version.js +8 -5
- package/dist/cli/version.js.map +1 -1
- package/dist/cli-api.d.ts +36 -5
- package/dist/cli-api.d.ts.map +1 -1
- package/dist/cli-api.js +30 -4
- package/dist/cli-api.js.map +1 -1
- package/dist/composition/algebraic-equivalence.d.ts +43 -0
- package/dist/composition/algebraic-equivalence.d.ts.map +1 -0
- package/dist/composition/algebraic-equivalence.js +115 -0
- package/dist/composition/algebraic-equivalence.js.map +1 -0
- package/dist/composition/axes.d.ts +0 -6
- package/dist/composition/axes.d.ts.map +1 -1
- package/dist/composition/axes.js +6 -6
- package/dist/composition/axes.js.map +1 -1
- package/dist/composition/axis-audit.d.ts +47 -20
- package/dist/composition/axis-audit.d.ts.map +1 -1
- package/dist/composition/axis-audit.js +82 -9
- package/dist/composition/axis-audit.js.map +1 -1
- package/dist/composition/bridge-analysis.d.ts +17 -0
- package/dist/composition/bridge-analysis.d.ts.map +1 -1
- package/dist/composition/bridge-analysis.js +102 -55
- package/dist/composition/bridge-analysis.js.map +1 -1
- package/dist/composition/canonical-compare.d.ts +40 -0
- package/dist/composition/canonical-compare.d.ts.map +1 -1
- package/dist/composition/canonical-compare.js +122 -24
- package/dist/composition/canonical-compare.js.map +1 -1
- package/dist/composition/canonical-graph.d.ts +3 -3
- package/dist/composition/canonical-graph.d.ts.map +1 -1
- package/dist/composition/canonical-graph.js +11 -38
- package/dist/composition/canonical-graph.js.map +1 -1
- package/dist/composition/canonical-json.js +2 -2
- package/dist/composition/canonical-json.js.map +1 -1
- package/dist/composition/catalog-graph.d.ts.map +1 -1
- package/dist/composition/catalog-graph.js +2 -5
- package/dist/composition/catalog-graph.js.map +1 -1
- package/dist/composition/chain-candidate.d.ts +8 -0
- package/dist/composition/chain-candidate.d.ts.map +1 -1
- package/dist/composition/chain-candidate.js +9 -2
- package/dist/composition/chain-candidate.js.map +1 -1
- package/dist/composition/chain-match.d.ts +6 -3
- package/dist/composition/chain-match.d.ts.map +1 -1
- package/dist/composition/chain-match.js +4 -1
- package/dist/composition/chain-match.js.map +1 -1
- package/dist/composition/chain-result.d.ts.map +1 -1
- package/dist/composition/chain-result.js +2 -14
- package/dist/composition/chain-result.js.map +1 -1
- package/dist/composition/compose-symbolic.d.ts.map +1 -1
- package/dist/composition/compose-symbolic.js +3 -2
- package/dist/composition/compose-symbolic.js.map +1 -1
- package/dist/composition/compose.d.ts.map +1 -1
- package/dist/composition/compose.js +13 -5
- package/dist/composition/compose.js.map +1 -1
- package/dist/composition/composition-recovery.d.ts.map +1 -1
- package/dist/composition/composition-recovery.js +4 -7
- package/dist/composition/composition-recovery.js.map +1 -1
- package/dist/composition/consequence.d.ts +15 -5
- package/dist/composition/consequence.d.ts.map +1 -1
- package/dist/composition/consequence.js +6 -4
- package/dist/composition/consequence.js.map +1 -1
- package/dist/composition/discovery.d.ts +129 -9
- package/dist/composition/discovery.d.ts.map +1 -1
- package/dist/composition/discovery.js +171 -67
- package/dist/composition/discovery.js.map +1 -1
- package/dist/composition/edge.d.ts +21 -2
- package/dist/composition/edge.d.ts.map +1 -1
- package/dist/composition/edge.js +23 -1
- package/dist/composition/edge.js.map +1 -1
- package/dist/composition/enumerate.d.ts.map +1 -1
- package/dist/composition/enumerate.js +18 -3
- package/dist/composition/enumerate.js.map +1 -1
- package/dist/composition/evaluate-relation.d.ts +35 -11
- package/dist/composition/evaluate-relation.d.ts.map +1 -1
- package/dist/composition/evaluate-relation.js +60 -39
- package/dist/composition/evaluate-relation.js.map +1 -1
- package/dist/composition/explain.d.ts +3 -12
- package/dist/composition/explain.d.ts.map +1 -1
- package/dist/composition/explain.js +7 -20
- package/dist/composition/explain.js.map +1 -1
- package/dist/composition/expr-eval.d.ts +1 -1
- package/dist/composition/expr-eval.d.ts.map +1 -1
- package/dist/composition/expr-eval.js +6 -15
- package/dist/composition/expr-eval.js.map +1 -1
- package/dist/composition/expr-simplify.d.ts +26 -14
- package/dist/composition/expr-simplify.d.ts.map +1 -1
- package/dist/composition/expr-simplify.js +64 -72
- package/dist/composition/expr-simplify.js.map +1 -1
- package/dist/composition/formula-shape.d.ts +23 -4
- package/dist/composition/formula-shape.d.ts.map +1 -1
- package/dist/composition/formula-shape.js +57 -17
- package/dist/composition/formula-shape.js.map +1 -1
- package/dist/composition/graph-structure.d.ts +98 -0
- package/dist/composition/graph-structure.d.ts.map +1 -0
- package/dist/composition/graph-structure.js +167 -0
- package/dist/composition/graph-structure.js.map +1 -0
- package/dist/composition/graph-viz-svg.d.ts.map +1 -1
- package/dist/composition/graph-viz-svg.js +1 -1
- package/dist/composition/graph-viz-svg.js.map +1 -1
- package/dist/composition/graph-viz.d.ts.map +1 -1
- package/dist/composition/graph-viz.js +8 -37
- package/dist/composition/graph-viz.js.map +1 -1
- package/dist/composition/grounding.d.ts.map +1 -1
- package/dist/composition/grounding.js +19 -7
- package/dist/composition/grounding.js.map +1 -1
- package/dist/composition/identifiability.d.ts +91 -4
- package/dist/composition/identifiability.d.ts.map +1 -1
- package/dist/composition/identifiability.js +363 -6
- package/dist/composition/identifiability.js.map +1 -1
- package/dist/composition/index.d.ts +8 -4
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +3 -2
- package/dist/composition/index.js.map +1 -1
- package/dist/composition/mathts-quiet.d.ts +7 -8
- package/dist/composition/mathts-quiet.d.ts.map +1 -1
- package/dist/composition/mathts-quiet.js +7 -16
- package/dist/composition/mathts-quiet.js.map +1 -1
- package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
- package/dist/composition/mathts-scalar-symbols.js +2 -1
- package/dist/composition/mathts-scalar-symbols.js.map +1 -1
- package/dist/composition/own-equation-magnitude.d.ts +95 -0
- package/dist/composition/own-equation-magnitude.d.ts.map +1 -0
- package/dist/composition/own-equation-magnitude.js +270 -0
- package/dist/composition/own-equation-magnitude.js.map +1 -0
- package/dist/composition/probe/backend-protocol.d.ts +3 -0
- package/dist/composition/probe/backend-protocol.d.ts.map +1 -1
- package/dist/composition/probe/backend-protocol.js.map +1 -1
- package/dist/composition/probe/candidate-store.d.ts +1 -0
- package/dist/composition/probe/candidate-store.d.ts.map +1 -1
- package/dist/composition/probe/candidate-store.js +1 -0
- package/dist/composition/probe/candidate-store.js.map +1 -1
- package/dist/composition/probe/corpus.d.ts +8 -4
- package/dist/composition/probe/corpus.d.ts.map +1 -1
- package/dist/composition/probe/corpus.js +23 -12
- package/dist/composition/probe/corpus.js.map +1 -1
- package/dist/composition/probe/dataset.d.ts +18 -0
- package/dist/composition/probe/dataset.d.ts.map +1 -1
- package/dist/composition/probe/dataset.js +95 -50
- package/dist/composition/probe/dataset.js.map +1 -1
- package/dist/composition/probe/experiment-design.d.ts +7 -1
- package/dist/composition/probe/experiment-design.d.ts.map +1 -1
- package/dist/composition/probe/experiment-design.js +44 -24
- package/dist/composition/probe/experiment-design.js.map +1 -1
- package/dist/composition/probe/falsify.d.ts +2 -0
- package/dist/composition/probe/falsify.d.ts.map +1 -1
- package/dist/composition/probe/falsify.js +2 -0
- package/dist/composition/probe/falsify.js.map +1 -1
- package/dist/composition/probe/fit.d.ts +7 -0
- package/dist/composition/probe/fit.d.ts.map +1 -1
- package/dist/composition/probe/fit.js +46 -22
- package/dist/composition/probe/fit.js.map +1 -1
- package/dist/composition/probe/frontier.d.ts.map +1 -1
- package/dist/composition/probe/frontier.js +33 -15
- package/dist/composition/probe/frontier.js.map +1 -1
- package/dist/composition/probe/generator.d.ts +30 -1
- package/dist/composition/probe/generator.d.ts.map +1 -1
- package/dist/composition/probe/generator.js +58 -36
- package/dist/composition/probe/generator.js.map +1 -1
- package/dist/composition/probe/index.d.ts +14 -0
- package/dist/composition/probe/index.d.ts.map +1 -1
- package/dist/composition/probe/index.js +6 -0
- package/dist/composition/probe/index.js.map +1 -1
- package/dist/composition/probe/limits.d.ts +25 -1
- package/dist/composition/probe/limits.d.ts.map +1 -1
- package/dist/composition/probe/limits.js +53 -11
- package/dist/composition/probe/limits.js.map +1 -1
- package/dist/composition/probe/pipeline.d.ts +5 -0
- package/dist/composition/probe/pipeline.d.ts.map +1 -1
- package/dist/composition/probe/pipeline.js +73 -24
- package/dist/composition/probe/pipeline.js.map +1 -1
- package/dist/composition/probe/power-law.d.ts +121 -0
- package/dist/composition/probe/power-law.d.ts.map +1 -0
- package/dist/composition/probe/power-law.js +251 -0
- package/dist/composition/probe/power-law.js.map +1 -0
- package/dist/composition/probe/problem.d.ts +8 -4
- package/dist/composition/probe/problem.d.ts.map +1 -1
- package/dist/composition/probe/problem.js +177 -49
- package/dist/composition/probe/problem.js.map +1 -1
- package/dist/composition/probe/report.js +1 -1
- package/dist/composition/probe/report.js.map +1 -1
- package/dist/composition/probe/residual.d.ts +7 -1
- package/dist/composition/probe/residual.d.ts.map +1 -1
- package/dist/composition/probe/residual.js +10 -7
- package/dist/composition/probe/residual.js.map +1 -1
- package/dist/composition/probe/run-manifest.d.ts +1 -0
- package/dist/composition/probe/run-manifest.d.ts.map +1 -1
- package/dist/composition/probe/run-manifest.js.map +1 -1
- package/dist/composition/probe/scalar-search.d.ts +50 -0
- package/dist/composition/probe/scalar-search.d.ts.map +1 -0
- package/dist/composition/probe/scalar-search.js +169 -0
- package/dist/composition/probe/scalar-search.js.map +1 -0
- package/dist/composition/probe/scoring.d.ts +1 -0
- package/dist/composition/probe/scoring.d.ts.map +1 -1
- package/dist/composition/probe/scoring.js.map +1 -1
- package/dist/composition/probe/structure.d.ts +82 -17
- package/dist/composition/probe/structure.d.ts.map +1 -1
- package/dist/composition/probe/structure.js +129 -55
- package/dist/composition/probe/structure.js.map +1 -1
- package/dist/composition/probe/study.d.ts +31 -9
- package/dist/composition/probe/study.d.ts.map +1 -1
- package/dist/composition/probe/study.js +235 -184
- package/dist/composition/probe/study.js.map +1 -1
- package/dist/composition/probe/t-tail.d.ts +16 -0
- package/dist/composition/probe/t-tail.d.ts.map +1 -0
- package/dist/composition/probe/t-tail.js +29 -0
- package/dist/composition/probe/t-tail.js.map +1 -0
- package/dist/composition/probe/types.d.ts +3 -0
- package/dist/composition/probe/types.d.ts.map +1 -1
- package/dist/composition/probe/types.js.map +1 -1
- package/dist/composition/proposed-bridges.d.ts +52 -12
- package/dist/composition/proposed-bridges.d.ts.map +1 -1
- package/dist/composition/proposed-bridges.js +107 -60
- package/dist/composition/proposed-bridges.js.map +1 -1
- package/dist/composition/quantity-clusters.d.ts +48 -0
- package/dist/composition/quantity-clusters.d.ts.map +1 -0
- package/dist/composition/quantity-clusters.js +98 -0
- package/dist/composition/quantity-clusters.js.map +1 -0
- package/dist/composition/rational-exponent.d.ts +40 -0
- package/dist/composition/rational-exponent.d.ts.map +1 -0
- package/dist/composition/rational-exponent.js +65 -0
- package/dist/composition/rational-exponent.js.map +1 -0
- package/dist/composition/representative-values.d.ts +22 -0
- package/dist/composition/representative-values.d.ts.map +1 -1
- package/dist/composition/representative-values.js +29 -0
- package/dist/composition/representative-values.js.map +1 -1
- package/dist/composition/retrodiction.d.ts +15 -0
- package/dist/composition/retrodiction.d.ts.map +1 -1
- package/dist/composition/retrodiction.js +12 -4
- package/dist/composition/retrodiction.js.map +1 -1
- package/dist/composition/user-equation.d.ts +1 -0
- package/dist/composition/user-equation.d.ts.map +1 -1
- package/dist/composition/user-equation.js +3 -2
- package/dist/composition/user-equation.js.map +1 -1
- package/dist/core/assignment.d.ts +19 -0
- package/dist/core/assignment.d.ts.map +1 -0
- package/dist/core/assignment.js +19 -0
- package/dist/core/assignment.js.map +1 -0
- package/dist/core/compare.d.ts +32 -0
- package/dist/core/compare.d.ts.map +1 -0
- package/dist/core/compare.js +46 -0
- package/dist/core/compare.js.map +1 -0
- package/dist/core/constants.d.ts +42 -41
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +71 -51
- package/dist/core/constants.js.map +1 -1
- package/dist/core/data-file.d.ts +7 -0
- package/dist/core/data-file.d.ts.map +1 -1
- package/dist/core/data-file.js +17 -0
- package/dist/core/data-file.js.map +1 -1
- package/dist/core/format.d.ts +36 -0
- package/dist/core/format.d.ts.map +1 -0
- package/dist/core/format.js +39 -0
- package/dist/core/format.js.map +1 -0
- package/dist/core/hash.d.ts +14 -0
- package/dist/core/hash.d.ts.map +1 -0
- package/dist/core/hash.js +17 -0
- package/dist/core/hash.js.map +1 -0
- package/dist/core/json-schema.d.ts +2 -0
- package/dist/core/json-schema.d.ts.map +1 -1
- package/dist/core/json-schema.js +14 -13
- package/dist/core/json-schema.js.map +1 -1
- package/dist/core/labeled-tensor.d.ts.map +1 -1
- package/dist/core/labeled-tensor.js +0 -8
- package/dist/core/labeled-tensor.js.map +1 -1
- package/dist/core/mathts-read.d.ts +25 -0
- package/dist/core/mathts-read.d.ts.map +1 -0
- package/dist/core/mathts-read.js +51 -0
- package/dist/core/mathts-read.js.map +1 -0
- package/dist/core/tensor.d.ts.map +1 -1
- package/dist/core/tensor.js +24 -0
- package/dist/core/tensor.js.map +1 -1
- package/dist/core/types.d.ts +5 -5
- package/dist/diff/bridge-ast-gradient.d.ts +27 -23
- package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-ast-gradient.js +75 -173
- package/dist/diff/bridge-ast-gradient.js.map +1 -1
- package/dist/diff/bridge-gradient.d.ts +19 -6
- package/dist/diff/bridge-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-gradient.js +19 -11
- package/dist/diff/bridge-gradient.js.map +1 -1
- package/dist/diff/bridge-specs.d.ts.map +1 -1
- package/dist/diff/bridge-specs.js +3 -0
- package/dist/diff/bridge-specs.js.map +1 -1
- package/dist/dimensional/algebra.d.ts +18 -0
- package/dist/dimensional/algebra.d.ts.map +1 -1
- package/dist/dimensional/algebra.js +41 -1
- package/dist/dimensional/algebra.js.map +1 -1
- package/dist/dimensional/ast-builders.d.ts +7 -0
- package/dist/dimensional/ast-builders.d.ts.map +1 -1
- package/dist/dimensional/ast-builders.js +11 -0
- package/dist/dimensional/ast-builders.js.map +1 -1
- package/dist/dimensional/ast-leaves.d.ts +81 -0
- package/dist/dimensional/ast-leaves.d.ts.map +1 -0
- package/dist/dimensional/ast-leaves.js +146 -0
- package/dist/dimensional/ast-leaves.js.map +1 -0
- package/dist/dimensional/ast-types.d.ts +15 -0
- package/dist/dimensional/ast-types.d.ts.map +1 -1
- package/dist/dimensional/ast-types.js.map +1 -1
- package/dist/dimensional/buckingham.d.ts.map +1 -1
- package/dist/dimensional/buckingham.js +15 -27
- package/dist/dimensional/buckingham.js.map +1 -1
- package/dist/dimensional/constant-rows.js +9 -9
- package/dist/dimensional/constant-rows.js.map +1 -1
- package/dist/dimensional/curvature-composite.d.ts +1 -1
- package/dist/dimensional/curvature-composite.js.map +1 -1
- package/dist/dimensional/dimension-inference.d.ts.map +1 -1
- package/dist/dimensional/dimension-inference.js +1 -2
- package/dist/dimensional/dimension-inference.js.map +1 -1
- package/dist/dimensional/errors.d.ts +1 -1
- package/dist/dimensional/errors.d.ts.map +1 -1
- package/dist/dimensional/errors.js +1 -15
- package/dist/dimensional/errors.js.map +1 -1
- package/dist/dimensional/exact-scale.d.ts +24 -11
- package/dist/dimensional/exact-scale.d.ts.map +1 -1
- package/dist/dimensional/exact-scale.js +122 -130
- package/dist/dimensional/exact-scale.js.map +1 -1
- package/dist/dimensional/gauge-field.d.ts.map +1 -1
- package/dist/dimensional/gauge-field.js +2 -2
- package/dist/dimensional/gauge-field.js.map +1 -1
- package/dist/dimensional/hyphen-names.d.ts +12 -2
- package/dist/dimensional/hyphen-names.d.ts.map +1 -1
- package/dist/dimensional/hyphen-names.js +44 -19
- package/dist/dimensional/hyphen-names.js.map +1 -1
- package/dist/dimensional/mathts-unit-delegation.d.ts +29 -0
- package/dist/dimensional/mathts-unit-delegation.d.ts.map +1 -0
- package/dist/dimensional/mathts-unit-delegation.js +187 -0
- package/dist/dimensional/mathts-unit-delegation.js.map +1 -0
- package/dist/dimensional/mathts-unit-wrapper.d.ts +33 -0
- package/dist/dimensional/mathts-unit-wrapper.d.ts.map +1 -0
- package/dist/dimensional/mathts-unit-wrapper.js +190 -0
- package/dist/dimensional/mathts-unit-wrapper.js.map +1 -0
- package/dist/dimensional/metric.d.ts.map +1 -1
- package/dist/dimensional/metric.js +0 -1
- package/dist/dimensional/metric.js.map +1 -1
- package/dist/dimensional/scalar-lowering.d.ts +21 -0
- package/dist/dimensional/scalar-lowering.d.ts.map +1 -0
- package/dist/dimensional/scalar-lowering.js +45 -0
- package/dist/dimensional/scalar-lowering.js.map +1 -0
- package/dist/dimensional/symbolic-constants.d.ts +9 -0
- package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
- package/dist/dimensional/symbolic-constants.js +13 -1
- package/dist/dimensional/symbolic-constants.js.map +1 -1
- package/dist/dimensional/types.d.ts +36 -0
- package/dist/dimensional/types.d.ts.map +1 -1
- package/dist/dimensional/types.js +45 -7
- package/dist/dimensional/types.js.map +1 -1
- package/dist/dimensional/unit-data.d.ts +5 -1
- package/dist/dimensional/unit-data.d.ts.map +1 -1
- package/dist/dimensional/unit-data.js +30 -6
- package/dist/dimensional/unit-data.js.map +1 -1
- package/dist/dimensional/units.d.ts +2 -0
- package/dist/dimensional/units.d.ts.map +1 -1
- package/dist/dimensional/units.js +59 -3
- package/dist/dimensional/units.js.map +1 -1
- package/dist/dimensional/validator.d.ts +2 -0
- package/dist/dimensional/validator.d.ts.map +1 -1
- package/dist/dimensional/validator.js.map +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/dist/numerical/christoffel-flat.d.ts.map +1 -1
- package/dist/numerical/christoffel-flat.js +3 -2
- package/dist/numerical/christoffel-flat.js.map +1 -1
- package/dist/numerical/connection-lowering-helpers.d.ts +3 -1
- package/dist/numerical/connection-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/connection-lowering-helpers.js +11 -15
- 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 +34 -11
- package/dist/numerical/covariant-eikonal.js.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +3 -2
- package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
- package/dist/numerical/errors.d.ts.map +1 -1
- package/dist/numerical/errors.js +0 -3
- package/dist/numerical/errors.js.map +1 -1
- package/dist/numerical/finite-difference.d.ts +22 -0
- package/dist/numerical/finite-difference.d.ts.map +1 -0
- package/dist/numerical/finite-difference.js +27 -0
- package/dist/numerical/finite-difference.js.map +1 -0
- package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
- package/dist/numerical/geodesic-integrator.js +22 -14
- package/dist/numerical/geodesic-integrator.js.map +1 -1
- package/dist/numerical/geometrized.d.ts.map +1 -1
- package/dist/numerical/geometrized.js +0 -1
- package/dist/numerical/geometrized.js.map +1 -1
- package/dist/numerical/mathts-engine.d.ts.map +1 -1
- package/dist/numerical/mathts-engine.js +10 -24
- package/dist/numerical/mathts-engine.js.map +1 -1
- package/dist/numerical/metric-inverse.d.ts.map +1 -1
- package/dist/numerical/metric-inverse.js +83 -46
- package/dist/numerical/metric-inverse.js.map +1 -1
- package/dist/numerical/null-ray-integrator.d.ts +2 -1
- package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
- package/dist/numerical/null-ray-integrator.js +12 -12
- package/dist/numerical/null-ray-integrator.js.map +1 -1
- package/dist/numerical/painleve-gullstrand-metric.js +2 -2
- package/dist/numerical/painleve-gullstrand-metric.js.map +1 -1
- package/dist/numerical/pderiv.d.ts.map +1 -1
- package/dist/numerical/pderiv.js +2 -6
- package/dist/numerical/pderiv.js.map +1 -1
- package/dist/numerical/perihelion-finder.d.ts +0 -36
- package/dist/numerical/perihelion-finder.d.ts.map +1 -1
- package/dist/numerical/perihelion-finder.js +41 -87
- package/dist/numerical/perihelion-finder.js.map +1 -1
- package/dist/numerical/quadrature.d.ts.map +1 -1
- package/dist/numerical/quadrature.js +11 -13
- package/dist/numerical/quadrature.js.map +1 -1
- package/dist/numerical/rk4-trajectory.d.ts +10 -0
- package/dist/numerical/rk4-trajectory.d.ts.map +1 -0
- package/dist/numerical/rk4-trajectory.js +37 -0
- package/dist/numerical/rk4-trajectory.js.map +1 -0
- package/dist/numerical/schwarzschild.d.ts +14 -0
- package/dist/numerical/schwarzschild.d.ts.map +1 -0
- package/dist/numerical/schwarzschild.js +17 -0
- package/dist/numerical/schwarzschild.js.map +1 -0
- package/dist/numerical/spacetime-metrics.d.ts +12 -0
- package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
- package/dist/numerical/spacetime-metrics.js +72 -56
- package/dist/numerical/spacetime-metrics.js.map +1 -1
- package/dist/numerical/statistics.d.ts +24 -0
- package/dist/numerical/statistics.d.ts.map +1 -0
- package/dist/numerical/statistics.js +52 -0
- package/dist/numerical/statistics.js.map +1 -0
- package/dist/numerical/strides.d.ts +3 -2
- package/dist/numerical/strides.d.ts.map +1 -1
- package/dist/numerical/strides.js +3 -10
- package/dist/numerical/strides.js.map +1 -1
- package/dist/numerical/tensor-engine.d.ts +21 -0
- package/dist/numerical/tensor-engine.d.ts.map +1 -1
- package/dist/numerical/tensor-engine.js +12 -0
- package/dist/numerical/tensor-engine.js.map +1 -1
- package/dist/relations/regime.d.ts +10 -0
- package/dist/relations/regime.d.ts.map +1 -1
- package/dist/relations/regime.js +18 -1
- package/dist/relations/regime.js.map +1 -1
- package/package.json +9 -12
- package/dist/cases/brownian-sphere.d.ts +0 -68
- package/dist/cases/brownian-sphere.d.ts.map +0 -1
- package/dist/cases/brownian-sphere.js +0 -354
- package/dist/cases/brownian-sphere.js.map +0 -1
- package/dist/cases/damped-resonator.d.ts +0 -23
- package/dist/cases/damped-resonator.d.ts.map +0 -1
- package/dist/cases/damped-resonator.js +0 -224
- package/dist/cases/damped-resonator.js.map +0 -1
- package/dist/cases/kepler-rv.d.ts +0 -13
- package/dist/cases/kepler-rv.d.ts.map +0 -1
- package/dist/cases/kepler-rv.js +0 -172
- package/dist/cases/kepler-rv.js.map +0 -1
- package/dist/cases/lumped-cooling.d.ts +0 -46
- package/dist/cases/lumped-cooling.d.ts.map +0 -1
- package/dist/cases/lumped-cooling.js +0 -261
- package/dist/cases/lumped-cooling.js.map +0 -1
- package/dist/cases/resistor-noise.d.ts +0 -14
- package/dist/cases/resistor-noise.d.ts.map +0 -1
- package/dist/cases/resistor-noise.js +0 -215
- package/dist/cases/resistor-noise.js.map +0 -1
- package/dist/cases/skin-depth.d.ts +0 -21
- package/dist/cases/skin-depth.d.ts.map +0 -1
- package/dist/cases/skin-depth.js +0 -174
- package/dist/cases/skin-depth.js.map +0 -1
|
@@ -23,7 +23,7 @@ const FLAGS = [
|
|
|
23
23
|
{
|
|
24
24
|
name: '--derive',
|
|
25
25
|
valueStyle: 'none',
|
|
26
|
-
description: 'For each promising identification, print the one algebraic relation it implies. That relation is not a bridge.',
|
|
26
|
+
description: 'For each promising identification (either tier), print the one algebraic relation it implies, and say when the identification had no magnitude evidence. That relation is not a bridge.',
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
name: '--show-adjudicated',
|
|
@@ -33,7 +33,7 @@ const FLAGS = [
|
|
|
33
33
|
{
|
|
34
34
|
name: '--require-falsifier',
|
|
35
35
|
valueStyle: 'none',
|
|
36
|
-
description: 'Hide promising rows that no independent falsifier ran on and survived.',
|
|
36
|
+
description: 'Hide promising rows (either tier) that no independent falsifier ran on and survived, counted per tier.',
|
|
37
37
|
},
|
|
38
38
|
JSON_FLAG,
|
|
39
39
|
];
|
|
@@ -42,13 +42,24 @@ const HELP = `upt discover [--source=catalog|canonical|both]
|
|
|
42
42
|
VET the link candidates through the inference suite: hypothesise
|
|
43
43
|
each identification a≡b and test whether it merges disconnected
|
|
44
44
|
physics, unlocks quantities, and stays numerically consistent.
|
|
45
|
-
Ranks promising / inert / contradictory.
|
|
45
|
+
Ranks promising / promising, magnitude unchecked / inert / contradictory.
|
|
46
|
+
A row that merges, unlocks and survives every falsifier that ran is
|
|
47
|
+
'promising' only when the magnitude falsifier ran on it and could have
|
|
48
|
+
failed (both endpoints have a representative magnitude, and the ratio
|
|
49
|
+
is not fixed by the graph at every anchor); otherwise it is 'promising,
|
|
50
|
+
magnitude unchecked' (promising-unchecked in --json). The two tiers are
|
|
51
|
+
counted and listed apart and never added.
|
|
46
52
|
--source=canonical runs the funnel on the standard-physics L-layer
|
|
47
53
|
ALONE (bridges excluded) — new candidates from established physics,
|
|
48
54
|
and a self-consistency check (expect 0 contradictory).
|
|
49
|
-
--derive emits, for each
|
|
50
|
-
relation it implies (monomial elimination) as an UNADJUDICATED,
|
|
51
|
-
proposal — NOT a bridge (Part-VI §XXVII-B)
|
|
55
|
+
--derive emits, for each promising identification of either tier, the ONE
|
|
56
|
+
algebraic relation it implies (monomial elimination) as an UNADJUDICATED,
|
|
57
|
+
math-only proposal — NOT a bridge (Part-VI §XXVII-B), and says when the
|
|
58
|
+
identification had no magnitude evidence. Pairs with --source=canonical.
|
|
59
|
+
A magnitude comes from the sourced table, else a constant the graph
|
|
60
|
+
fixes, else the quantity's own equation evaluated from the table and
|
|
61
|
+
the constants (used only at a propagated σ of at most one decade),
|
|
62
|
+
else the anchor; the MAGNITUDE-CLASH list marks the last two.
|
|
52
63
|
--max-orders=N tunes the magnitude-clash threshold (default ${DISCOVER_MAX_ORDERS_DEFAULT}); looser N
|
|
53
64
|
keeps more candidates 'promising', tighter N falsifies more as clashes.
|
|
54
65
|
--anchor=k=v[,k2=v2] overrides the numeric anchor (default mass=M_sun)
|
|
@@ -57,20 +68,21 @@ const HELP = `upt discover [--source=catalog|canonical|both]
|
|
|
57
68
|
kelvin: an energy is k_B T, and any other dimension is an error.
|
|
58
69
|
Candidates a physicist has already adjudicated
|
|
59
70
|
(${ADJUDICATION_URLS})
|
|
60
|
-
fold out of the PROMISING
|
|
71
|
+
fold out of the two PROMISING lists by default (decoy/entailed verdicts only —
|
|
61
72
|
review memory, not a re-litigation prompt); --show-adjudicated lists them
|
|
62
73
|
again with their recorded verdict.
|
|
63
|
-
Each PROMISING
|
|
74
|
+
Each row of either PROMISING list states its readiness dimension by dimension —
|
|
64
75
|
structure, kind, which independent falsifiers (magnitude, axis,
|
|
65
76
|
consequence) ran and survived or abstained — and what would make it
|
|
66
77
|
testable: the identity premise, the missing magnitudes and regimes,
|
|
67
78
|
and the observation that would test it. An abstention is a missing
|
|
68
|
-
test, never a pass. --require-falsifier hides promising rows
|
|
69
|
-
independent falsifier ran on and survived, counts them
|
|
70
|
-
encoded bridges that already carry a falsifier (a
|
|
71
|
-
counterexample, or a regime inequality).`;
|
|
79
|
+
test, never a pass. --require-falsifier hides promising rows (either
|
|
80
|
+
tier) that no independent falsifier ran on and survived, counts them per
|
|
81
|
+
tier, and lists the encoded bridges that already carry a falsifier (a
|
|
82
|
+
confrontation, a counterexample, or a regime inequality).`;
|
|
72
83
|
const EPISTEMICS = '⚠ a REVIEW SURFACE: `promising` means "worth a physicist\'s minute", not "true".\n' +
|
|
73
|
-
' Each candidate hypothesises an identification a≡b and tests its consequences
|
|
84
|
+
' Each candidate hypothesises an identification a≡b and tests its consequences.\n' +
|
|
85
|
+
' `promising-unchecked` is the same structure with no magnitude evidence; the two are never added.';
|
|
74
86
|
const DERIVE_EPISTEMICS = '⚠ Each is the ALGEBRAIC CONSEQUENCE of an unadjudicated identification — NOT a new\n' +
|
|
75
87
|
' relation and NOT a bridge. No mechanism asserted. Promotion to the catalog needs\n' +
|
|
76
88
|
' adversarial + literature review (Part-VI §XXVII-B). The enumerator proposes; humans dispose.';
|
|
@@ -121,6 +133,9 @@ function deriveReport(api, ranked, label, anchorLine, out) {
|
|
|
121
133
|
out(` ${p.formulaLatex} ${p.dimensionalSignature}${approx}`);
|
|
122
134
|
out(` from: ${p.derivedFrom.identification.a} ≟ ${p.derivedFrom.identification.b}` +
|
|
123
135
|
` (${p.derivedFrom.sourceEquationIds[0]} = ${p.derivedFrom.sourceEquationIds[1]}); solved for ${p.derivedFrom.solvedFor}`);
|
|
136
|
+
if (!p.derivedFrom.identification.magnitudeEvidence) {
|
|
137
|
+
out(' magnitude: no evidence — the identification is promising, magnitude unchecked (the magnitude falsifier never tested it)');
|
|
138
|
+
}
|
|
124
139
|
if (p.alsoDerivableFrom && p.alsoDerivableFrom.length) {
|
|
125
140
|
out(` also derivable from: ${p.alsoDerivableFrom.join('; ')}`);
|
|
126
141
|
}
|
|
@@ -158,7 +173,7 @@ function summarizeAdjudications(candidates) {
|
|
|
158
173
|
/** The reconciling line printed under PROMISING when some of it carries a
|
|
159
174
|
* recorded verdict — so the folded/shorter list never looks inconsistent
|
|
160
175
|
* against the funnel line's raw promising count. */
|
|
161
|
-
function adjudicationSummaryLine(promising, promisingCount) {
|
|
176
|
+
function adjudicationSummaryLine(promising, promisingCount, tierLabel) {
|
|
162
177
|
const adjudicated = promising.filter((r) => r.adjudication);
|
|
163
178
|
const counts = { genuine: 0, decoy: 0, entailed: 0, deferred: 0 };
|
|
164
179
|
let folded = 0;
|
|
@@ -175,7 +190,7 @@ function adjudicationSummaryLine(promising, promisingCount) {
|
|
|
175
190
|
const verb = total === 1 ? 'carries' : 'carry';
|
|
176
191
|
const noun = total === 1 ? 'a recorded verdict' : 'recorded verdicts';
|
|
177
192
|
const foldNote = folded === total ? '— folded' : folded === 0 ? '— shown below' : `— ${folded} folded`;
|
|
178
|
-
return ` adjudicated: ${total} of the ${promisingCount}
|
|
193
|
+
return ` adjudicated: ${total} of the ${promisingCount} ${tierLabel} ${verb} ${noun} (${parts.join(', ')}) ${foldNote}; --show-adjudicated to list`;
|
|
179
194
|
}
|
|
180
195
|
/** Encoded bridges that already carry a falsifier. Not discovery rows. */
|
|
181
196
|
function encodedFalsifiers(api) {
|
|
@@ -198,15 +213,24 @@ function encodedFalsifiers(api) {
|
|
|
198
213
|
}
|
|
199
214
|
return lines;
|
|
200
215
|
}
|
|
201
|
-
/**
|
|
202
|
-
|
|
203
|
-
|
|
216
|
+
/** The two promising tiers, in print order, with the label each is printed under. */
|
|
217
|
+
const TIERS = [
|
|
218
|
+
{ verdict: 'promising', label: 'promising', heading: 'PROMISING (merges disconnected physics, unlocks quantities, stays consistent, and the magnitude falsifier ran and survived):' },
|
|
219
|
+
{
|
|
220
|
+
verdict: 'promising-unchecked',
|
|
221
|
+
label: 'promising, magnitude unchecked',
|
|
222
|
+
heading: 'PROMISING, MAGNITUDE UNCHECKED (the same structure; the magnitude falsifier abstained or its pass is fixed by the graph at every anchor, so it never tested the row):',
|
|
223
|
+
},
|
|
224
|
+
];
|
|
225
|
+
/** How far one promising tier is from evidence, counted from candidate fields. */
|
|
226
|
+
function readinessOf(api, candidates, verdict) {
|
|
227
|
+
const p = candidates.filter((c) => c.verdict === verdict);
|
|
204
228
|
const g = p.map((c) => api.describeGrounding(c, c.consequence?.signal));
|
|
205
229
|
return {
|
|
206
|
-
|
|
230
|
+
count: p.length,
|
|
207
231
|
mechanismTested: g.filter((x) => x.mechanismTested).length,
|
|
208
232
|
dataTested: g.filter((x) => x.dataTested).length,
|
|
209
|
-
withoutMagnitudeEvidence: p.filter((c) => !
|
|
233
|
+
withoutMagnitudeEvidence: p.filter((c) => !api.hasMagnitudeEvidence(c)).length,
|
|
210
234
|
axisUnresolved: p.filter((c) => !c.axisChecked).length,
|
|
211
235
|
entailedConsequence: p.filter((c) => c.consequence?.signal === 'entailed').length,
|
|
212
236
|
};
|
|
@@ -234,7 +258,7 @@ async function run(ctx) {
|
|
|
234
258
|
}));
|
|
235
259
|
const result = requireFalsifier && !isDerive
|
|
236
260
|
? mapped.filter((c) => !('readiness' in c) ||
|
|
237
|
-
c.verdict
|
|
261
|
+
!api.isPromisingTier(c.verdict) ||
|
|
238
262
|
c.readiness.falsifiers.survived.length > 0)
|
|
239
263
|
: mapped;
|
|
240
264
|
const envelope = {
|
|
@@ -248,7 +272,10 @@ async function run(ctx) {
|
|
|
248
272
|
...(isDerive
|
|
249
273
|
? {}
|
|
250
274
|
: {
|
|
251
|
-
readiness:
|
|
275
|
+
readiness: {
|
|
276
|
+
promising: readinessOf(api, withConsequence, 'promising'),
|
|
277
|
+
promisingUnchecked: readinessOf(api, withConsequence, 'promising-unchecked'),
|
|
278
|
+
},
|
|
252
279
|
adjudicationSummary: summarizeAdjudications(withConsequence),
|
|
253
280
|
}),
|
|
254
281
|
};
|
|
@@ -269,20 +296,18 @@ async function run(ctx) {
|
|
|
269
296
|
return 0;
|
|
270
297
|
}
|
|
271
298
|
const by = (v) => withConsequence.filter((r) => r.verdict === v);
|
|
272
|
-
// Q1: within PROMISING, spend the physicist's first minute on consequence-
|
|
273
|
-
//
|
|
299
|
+
// Q1: within each PROMISING tier, spend the physicist's first minute on consequence-bearing
|
|
300
|
+
// rows before inconclusive coincidences. The magnitude evidence is the tier itself.
|
|
274
301
|
const consRank = (s) => s === 'entailed' ? 0 : s === 'novel-consequence' ? 1 : 2;
|
|
275
|
-
const
|
|
302
|
+
const tierRows = (verdict) => [...by(verdict)].sort((a, b) => {
|
|
276
303
|
const ca = consRank(a.consequence?.signal);
|
|
277
304
|
const cb = consRank(b.consequence?.signal);
|
|
278
305
|
if (ca !== cb)
|
|
279
306
|
return ca - cb;
|
|
280
|
-
const magA = a.magnitudeChecked && a.magnitudeAnchorInvariant !== true ? 0 : 1;
|
|
281
|
-
const magB = b.magnitudeChecked && b.magnitudeAnchorInvariant !== true ? 0 : 1;
|
|
282
|
-
if (magA !== magB)
|
|
283
|
-
return magA - magB;
|
|
284
307
|
return b.score - a.score || a.a.localeCompare(b.a) || a.b.localeCompare(b.b);
|
|
285
308
|
});
|
|
309
|
+
const tiers = TIERS.map((t) => ({ ...t, rows: tierRows(t.verdict), readiness: readinessOf(api, withConsequence, t.verdict) }));
|
|
310
|
+
const [promising, unchecked] = tiers;
|
|
286
311
|
const inert = by('inert');
|
|
287
312
|
const contra = by('contradictory');
|
|
288
313
|
const clash = by('magnitude-clash');
|
|
@@ -291,70 +316,93 @@ async function run(ctx) {
|
|
|
291
316
|
out(` ${groundTruthLine(anchor)}`);
|
|
292
317
|
out('⚠ a REVIEW SURFACE: `promising` means "worth a physicist\'s minute", not "true".');
|
|
293
318
|
out(' Each candidate hypothesises an identification a≡b and tests its consequences.\n');
|
|
294
|
-
|
|
319
|
+
// The two tiers are two counts, never one sum (AGENTS law 4).
|
|
320
|
+
out(` funnel: ${withConsequence.length} candidates → ${promising.rows.length} promising ` +
|
|
321
|
+
`· ${unchecked.rows.length} promising, magnitude unchecked ` +
|
|
295
322
|
`· ${inert.length} inert · ${clash.length} magnitude-clash ` +
|
|
296
323
|
`· ${contra.length} contradictory (numerically falsified) · ${axisClash.length} axis-clash`);
|
|
297
|
-
const
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
324
|
+
for (const t of tiers) {
|
|
325
|
+
const rd = t.readiness;
|
|
326
|
+
out(` readiness of the ${rd.count} ${t.label}: ${rd.mechanismTested} mechanism-tested · ` +
|
|
327
|
+
`${rd.dataTested} data-tested · ${rd.withoutMagnitudeEvidence} without magnitude evidence · ` +
|
|
328
|
+
`${rd.axisUnresolved} with axis unresolved · ${rd.entailedConsequence} with an entailed consequence`);
|
|
329
|
+
}
|
|
301
330
|
out(' promising ≠ evidence: promotion to a bridge needs a mechanism and a falsifiable prediction.\n');
|
|
302
331
|
const requireFalsifier = args.flags.has('require-falsifier');
|
|
303
332
|
const untested = (r) => api.describeReadiness(r, r.consequence?.signal).falsifiers.survived.length === 0;
|
|
304
333
|
if (requireFalsifier) {
|
|
305
|
-
out(` --require-falsifier:
|
|
306
|
-
|
|
334
|
+
out(` --require-falsifier: ` +
|
|
335
|
+
tiers.map((t) => `${t.rows.filter(untested).length} of the ${t.rows.length} ${t.label}`).join(' and ') +
|
|
336
|
+
' hidden — no independent falsifier ran and survived (connectivity alone is not evidence)\n');
|
|
307
337
|
const encoded = encodedFalsifiers(api);
|
|
308
338
|
out(` encoded falsifiers already on the records (${encoded.length}; these are not discovery rows):`);
|
|
309
339
|
for (const line of encoded)
|
|
310
340
|
out(` ${line}`);
|
|
311
341
|
out('');
|
|
312
342
|
}
|
|
313
|
-
|
|
314
|
-
out(
|
|
315
|
-
|
|
343
|
+
const printRow = (r) => {
|
|
344
|
+
out(` ${(r.a + ' ≟ ' + r.b).padEnd(52)} [${r.dim}] score ${r.score}`);
|
|
345
|
+
out(` unlocks: ${r.unlocksFromAnchor.join(', ') || '—'}`);
|
|
346
|
+
if (r.consequence) {
|
|
347
|
+
out(` [consequence: ${r.consequence.signal}]`);
|
|
348
|
+
}
|
|
349
|
+
const g = api.describeGrounding(r, r.consequence?.signal);
|
|
350
|
+
out(` [grounding — passed: ${g.passed.join(', ') || '—'}` +
|
|
351
|
+
` · gaps: ${g.gaps.join(', ') || '—'} · ceiling: no mechanism/data test]`);
|
|
352
|
+
const rd = api.describeReadiness(r, r.consequence?.signal);
|
|
353
|
+
const f = rd.falsifiers;
|
|
354
|
+
out(` [readiness — structure: ${rd.structure.mergesComponents ? 'merges components' : 'no merge'}, ` +
|
|
355
|
+
`unlocks ${rd.structure.unlocks} · kind: ${rd.kind} · independent falsifiers survived: ` +
|
|
356
|
+
`${f.survived.join(', ') || 'none'}${f.abstained.length ? ` (abstained: ${f.abstained.join(', ')})` : ''}` +
|
|
357
|
+
' · mechanism: none · data: none]');
|
|
358
|
+
const needs = [
|
|
359
|
+
...(rd.needs.magnitudeFor.length ? [`needs a representative magnitude for: ${rd.needs.magnitudeFor.join(', ')}`] : []),
|
|
360
|
+
...rd.needs.regimeFor.map((u) => `needs a stated ${u.axis} regime for: ${u.endpoints.join(', ')}`),
|
|
361
|
+
...(rd.needs.derivableConsequence ? ['needs a consequence that re-derives a known law'] : []),
|
|
362
|
+
];
|
|
363
|
+
out(` [to make it testable — premise: ${rd.needs.premise}${needs.map((n) => ` · ${n}`).join('')}]`);
|
|
364
|
+
out(` [observation: ${rd.observation}]`);
|
|
365
|
+
if (r.adjudication) {
|
|
366
|
+
out(` [adjudicated: ${r.adjudication.verdict} — ${r.adjudication.grounds}]`);
|
|
367
|
+
}
|
|
368
|
+
};
|
|
369
|
+
for (const t of tiers) {
|
|
370
|
+
if (t !== promising)
|
|
371
|
+
out('');
|
|
372
|
+
if (t.rows.length === 0) {
|
|
373
|
+
out(t === promising
|
|
374
|
+
? ' no candidate is `promising` (with magnitude evidence) from the anchor above.'
|
|
375
|
+
: ' no candidate is `promising, magnitude unchecked` from the anchor above.');
|
|
376
|
+
continue;
|
|
377
|
+
}
|
|
378
|
+
out(` ${t.heading}`);
|
|
379
|
+
for (const r of t.rows) {
|
|
316
380
|
if (r.adjudication && foldsOut(r.adjudication.verdict) && !showAdjudicated)
|
|
317
381
|
continue;
|
|
318
382
|
if (requireFalsifier && untested(r))
|
|
319
383
|
continue;
|
|
320
|
-
|
|
321
|
-
out(` unlocks: ${r.unlocksFromAnchor.join(', ') || '—'}`);
|
|
322
|
-
if (r.consequence) {
|
|
323
|
-
out(` [consequence: ${r.consequence.signal}]`);
|
|
324
|
-
}
|
|
325
|
-
const g = api.describeGrounding(r, r.consequence?.signal);
|
|
326
|
-
out(` [grounding — passed: ${g.passed.join(', ') || '—'}` +
|
|
327
|
-
` · gaps: ${g.gaps.join(', ') || '—'} · ceiling: no mechanism/data test]`);
|
|
328
|
-
const rd = api.describeReadiness(r, r.consequence?.signal);
|
|
329
|
-
const f = rd.falsifiers;
|
|
330
|
-
out(` [readiness — structure: ${rd.structure.mergesComponents ? 'merges components' : 'no merge'}, ` +
|
|
331
|
-
`unlocks ${rd.structure.unlocks} · kind: ${rd.kind} · independent falsifiers survived: ` +
|
|
332
|
-
`${f.survived.join(', ') || 'none'}${f.abstained.length ? ` (abstained: ${f.abstained.join(', ')})` : ''}` +
|
|
333
|
-
' · mechanism: none · data: none]');
|
|
334
|
-
const needs = [
|
|
335
|
-
...(rd.needs.magnitudeFor.length ? [`needs a representative magnitude for: ${rd.needs.magnitudeFor.join(', ')}`] : []),
|
|
336
|
-
...rd.needs.regimeFor.map((u) => `needs a stated ${u.axis} regime for: ${u.endpoints.join(', ')}`),
|
|
337
|
-
...(rd.needs.derivableConsequence ? ['needs a consequence that re-derives a known law'] : []),
|
|
338
|
-
];
|
|
339
|
-
out(` [to make it testable — premise: ${rd.needs.premise}${needs.map((n) => ` · ${n}`).join('')}]`);
|
|
340
|
-
out(` [observation: ${rd.observation}]`);
|
|
341
|
-
if (r.adjudication) {
|
|
342
|
-
out(` [adjudicated: ${r.adjudication.verdict} — ${r.adjudication.grounds}]`);
|
|
343
|
-
}
|
|
384
|
+
printRow(r);
|
|
344
385
|
}
|
|
345
|
-
if (
|
|
346
|
-
out(adjudicationSummaryLine(
|
|
386
|
+
if (t.rows.some((r) => r.adjudication)) {
|
|
387
|
+
out(adjudicationSummaryLine(t.rows, t.rows.length, t.label));
|
|
347
388
|
}
|
|
348
389
|
}
|
|
349
|
-
else {
|
|
350
|
-
out(' no candidate is `promising` from the anchor above.');
|
|
351
|
-
}
|
|
352
390
|
if (clash.length) {
|
|
353
|
-
out(`\n MAGNITUDE-CLASH (representative values differ by > N orders — a falsifier
|
|
391
|
+
out(`\n MAGNITUDE-CLASH (representative values differ by > N orders — a falsifier; p is the falsifier's strength ` +
|
|
392
|
+
`at the values' stated σ, 2Φ(−orders/√(σa²+σb²)), not a credibility score):`);
|
|
354
393
|
for (const r of clash) {
|
|
355
|
-
|
|
394
|
+
// Where each magnitude came from when it was not the sourced table: the quantity's own
|
|
395
|
+
// equation (not anchor-derived), or the anchor.
|
|
396
|
+
const bases = [
|
|
397
|
+
...((r.magnitudeDerived ?? []).length > 0 ? [`${r.magnitudeDerived.join(', ')} from its own equation`] : []),
|
|
398
|
+
...(r.magnitudeUsedAnchor ? ['anchor-derived'] : []),
|
|
399
|
+
];
|
|
400
|
+
const basis = bases.length > 0 ? ` (${bases.join('; ')})` : '';
|
|
401
|
+
// A p that underflows a double is not zero: it is below the smallest normal double.
|
|
402
|
+
const p = r.magnitudeP;
|
|
403
|
+
const strength = p === undefined || p === null ? '' : p === 0 ? ', p < 1e-300' : `, p = ${api.formatQuantity(p, 3)}`;
|
|
356
404
|
// A magnitude estimate is a statistic: three digits, marked approximate.
|
|
357
|
-
out(` ${(r.a + ' ≟ ' + r.b).padEnd(52)} ~${api.formatQuantity(r.ordersApart, 3)} orders apart${basis}`);
|
|
405
|
+
out(` ${(r.a + ' ≟ ' + r.b).padEnd(52)} ~${api.formatQuantity(r.ordersApart, 3)} orders apart${strength}${basis}`);
|
|
358
406
|
}
|
|
359
407
|
}
|
|
360
408
|
const subsumed = inert.filter((r) => r.subsuming);
|
|
@@ -376,7 +424,8 @@ async function run(ctx) {
|
|
|
376
424
|
out(` ${(r.a + ' ≟ ' + r.b).padEnd(52)} ${r.axisClashes.join('; ')}`);
|
|
377
425
|
}
|
|
378
426
|
}
|
|
379
|
-
out('\n (magnitude gate abstains where a representative value is unknown
|
|
427
|
+
out('\n (magnitude gate abstains where a representative value is unknown, and such a row is at most ' +
|
|
428
|
+
"'promising, magnitude unchecked'; weak priors on dimension.)");
|
|
380
429
|
out(` (inspect one candidate: upt ground --source=${source} <a> <b>, with the same --anchor/--max-orders)`);
|
|
381
430
|
return 0;
|
|
382
431
|
}
|
|
@@ -385,7 +434,7 @@ export const command = {
|
|
|
385
434
|
aliases: ['discovery'],
|
|
386
435
|
flags: FLAGS,
|
|
387
436
|
help: commandHelp(HELP, FLAGS),
|
|
388
|
-
summary: 'Vet quantity identifications and rank them promising, inert, or contradictory.',
|
|
437
|
+
summary: 'Vet quantity identifications and rank them promising (two tiers: magnitude checked or unchecked), inert, or contradictory.',
|
|
389
438
|
example: 'upt discover --source=canonical',
|
|
390
439
|
group: 'discovery',
|
|
391
440
|
run,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/cli/commands/discover.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `upt discover` — vet the link candidates through the inference suite, and\n * (with `--derive`) emit the algebraic identity-consequence proposals.\n * Transposed verbatim from bin/upt.mjs's `parseDiscoveryOpts()`/`discoverCmd()`/\n * `deriveCmd()` (lines 592-713), plus `--json`. `parseDiscoveryOpts` itself\n * moved to `_discovery-opts.ts` so `map`'s `--proposed` overlay can share it.\n */\nimport type { FlagSpec } from '../args.js';\nimport { registerCommand, type Command, type CommandCtx } from '../command.js';\nimport { commandHelp, JSON_FLAG, sourceFlag } from '../flag-help.js';\nimport { resolveGraph, groundTruthAnchor, groundTruthLine } from '../graphs.js';\nimport { emitJson } from '../output.js';\nimport { parseDiscoveryOpts } from './_discovery-opts.js';\nimport type { VettedCandidate } from '../../composition/discovery.js';\nimport type { AnnotatedCandidate } from '../../composition/adjudication.js';\nimport type { AdjudicationVerdict } from '../../bridges/catalog-types.js';\nimport { DISCOVER_MAX_ORDERS_DEFAULT } from '../library-defaults.js';\nimport { adjudicationSourceUrls } from '../published-url.js';\nimport type { ConsequenceSignal, ConsequenceEvidence } from '../../composition/consequence.js';\n\n/** `annotated` (adjudication layer) composed with the consequence layer —\n * both are `VettedCandidate & {...}` intersections, so a candidate carries\n * both `adjudication?` and `consequence?` after composition. */\ntype FullyAnnotatedCandidate = AnnotatedCandidate & {\n readonly consequence?: {\n readonly signal: ConsequenceSignal;\n readonly evidence: readonly ConsequenceEvidence[];\n };\n};\n\nconst FLAGS: FlagSpec[] = [\n sourceFlag('catalog', 'Which graph to read: catalog, canonical, or both. canonical excludes bridges.'),\n {\n name: '--max-orders',\n valueStyle: 'attached',\n description: 'Magnitude-clash threshold. A larger value keeps more pairs promising.',\n defaultValue: DISCOVER_MAX_ORDERS_DEFAULT,\n },\n {\n name: '--anchor',\n valueStyle: 'attached',\n repeatable: true,\n description: 'Override a numeric anchor as k=v or k=v,k2=v2.',\n defaultValue: 'mass=M_sun',\n },\n {\n name: '--derive',\n valueStyle: 'none',\n description: 'For each promising identification, print the one algebraic relation it implies. That relation is not a bridge.',\n },\n {\n name: '--show-adjudicated',\n valueStyle: 'none',\n description: 'List candidates a physicist has already adjudicated, with the recorded verdict.',\n },\n {\n name: '--require-falsifier',\n valueStyle: 'none',\n description: 'Hide promising rows that no independent falsifier ran on and survived.',\n },\n JSON_FLAG,\n];\n\nconst ADJUDICATION_URLS = adjudicationSourceUrls().join('\\n ');\n\nconst HELP = `upt discover [--source=catalog|canonical|both]\n VET the link candidates through the inference suite: hypothesise\n each identification a≡b and test whether it merges disconnected\n physics, unlocks quantities, and stays numerically consistent.\n Ranks promising / inert / contradictory.\n --source=canonical runs the funnel on the standard-physics L-layer\n ALONE (bridges excluded) — new candidates from established physics,\n and a self-consistency check (expect 0 contradictory).\n --derive emits, for each 'promising' identification, the ONE algebraic\n relation it implies (monomial elimination) as an UNADJUDICATED, math-only\n proposal — NOT a bridge (Part-VI §XXVII-B). Pairs with --source=canonical.\n --max-orders=N tunes the magnitude-clash threshold (default ${DISCOVER_MAX_ORDERS_DEFAULT}); looser N\n keeps more candidates 'promising', tighter N falsifies more as clashes.\n --anchor=k=v[,k2=v2] overrides the numeric anchor (default mass=M_sun)\n for the consistency/closure check. Both reshape the candidate pool that\n --derive consumes. T, temperature, temp, and T_K on an anchor are\n kelvin: an energy is k_B T, and any other dimension is an error.\n Candidates a physicist has already adjudicated\n (${ADJUDICATION_URLS})\n fold out of the PROMISING list by default (decoy/entailed verdicts only —\n review memory, not a re-litigation prompt); --show-adjudicated lists them\n again with their recorded verdict.\n Each PROMISING row states its readiness dimension by dimension —\n structure, kind, which independent falsifiers (magnitude, axis,\n consequence) ran and survived or abstained — and what would make it\n testable: the identity premise, the missing magnitudes and regimes,\n and the observation that would test it. An abstention is a missing\n test, never a pass. --require-falsifier hides promising rows that no\n independent falsifier ran on and survived, counts them, and lists the\n encoded bridges that already carry a falsifier (a confrontation, a\n counterexample, or a regime inequality).`;\n\nconst EPISTEMICS =\n '⚠ a REVIEW SURFACE: `promising` means \"worth a physicist\\'s minute\", not \"true\".\\n' +\n ' Each candidate hypothesises an identification a≡b and tests its consequences.';\n\nconst DERIVE_EPISTEMICS =\n '⚠ Each is the ALGEBRAIC CONSEQUENCE of an unadjudicated identification — NOT a new\\n' +\n ' relation and NOT a bridge. No mechanism asserted. Promotion to the catalog needs\\n' +\n ' adversarial + literature review (Part-VI §XXVII-B). The enumerator proposes; humans dispose.';\n\n// ── discover --derive (identity-consequence proposals) ────────────────────\n\n/**\n * Sample values for GENERIC quantities, which the representative-value table\n * leaves out on purpose. A proposal is evaluated only when every free input\n * has a sourced sample: this command once put 300 into every input, a Hubble\n * rate of 300 s⁻¹ among them (persona finding D5).\n */\nconst GENERIC_SAMPLES: Readonly<Record<string, { value: number; source: string }>> = {\n temperature: { value: 300, source: 'room temperature, 300 K' },\n};\nfunction deriveReport(\n api: CommandCtx['api'],\n ranked: readonly VettedCandidate[],\n label: string,\n anchorLine: string,\n out: (line?: string) => void\n): void {\n const proposals = api.deriveProposedBridges(ranked);\n out(`\\nDerived identity-consequence PROPOSALS — UNADJUDICATED, math-only [source: ${label}]`);\n out(` ${anchorLine}`);\n out(DERIVE_EPISTEMICS + '\\n');\n if (!proposals.length) {\n out(' no admissible proposal (need two fully-quantitative, monomial canonical targets).');\n return;\n }\n for (const p of proposals) {\n let approx = '';\n const governing = p.governing || [];\n const sampleOf = (name: string) => api.REPRESENTATIVE_VALUES[name] ?? GENERIC_SAMPLES[name];\n const missing = governing.filter((g) => sampleOf(g.name) === undefined).map((g) => g.name);\n if (missing.length > 0) {\n approx = ` (no sourced sample value for ${missing.join(', ')}; not evaluated)`;\n } else {\n try {\n const vals = Object.fromEntries(governing.map((g) => [g.name, sampleOf(g.name)!.value]));\n const at = governing\n .map((g) => `${g.name}=${sampleOf(g.name)!.value} [${sampleOf(g.name)!.source}]`)\n .join(', ');\n approx = ` ≈ ${api.formatQuantity(p.evaluate(vals))}${at ? ` (${at})` : ''}`;\n } catch (e) {\n // A proposal that cannot be evaluated at its samples says so and why; it is not shown as\n // though it had no sample. Only an `Error` is a refusal of the formula: anything else is a defect.\n if (!(e instanceof Error)) throw e;\n approx = ` (not evaluated at the sample values: ${e.message})`;\n }\n }\n out(` ${p.id}`);\n out(` ${p.formulaLatex} ${p.dimensionalSignature}${approx}`);\n out(\n ` from: ${p.derivedFrom.identification.a} ≟ ${p.derivedFrom.identification.b}` +\n ` (${p.derivedFrom.sourceEquationIds[0]} = ${p.derivedFrom.sourceEquationIds[1]}); solved for ${p.derivedFrom.solvedFor}`\n );\n if (p.alsoDerivableFrom && p.alsoDerivableFrom.length) {\n out(` also derivable from: ${p.alsoDerivableFrom.join('; ')}`);\n }\n const c = api.describeDerivedClaim(p);\n out(\n c.relation === 'known-law'\n ? ` status: known law — re-derives ${c.canonicalMatch.id}; the identification ${c.premise} is still unadjudicated`\n : ` status: conditional identity — holds only if ${c.premise} (unadjudicated); untested`,\n );\n out(` meaning: ${c.symbol.meaning}`);\n out(\n ` assumptions carried: ${c.assumptions.map((a) => `${a.equation}: ${a.assumptions.join(', ') || 'none stated'}`).join('; ')}`,\n );\n const governingSet = `{${p.governing.map((g) => g.name).join(', ')}}`;\n out(\n ` canonical match: ${c.canonicalMatch.id ?? 'none'} — ${c.canonicalMatch.sameTarget} registry equation(s) target ` +\n `${p.target.name}, ${c.canonicalMatch.sameTargetAndGoverning} with governing ${governingSet}; ` +\n 'scope: this registry only, not physics at large',\n );\n }\n out('');\n}\n\n/** Verdicts that fold a candidate out of the printed PROMISING list by\n * default — review memory, not news. `deferred`/`genuine` stay listed\n * (see the module-level docstring on `AdjudicationVerdict`). */\nfunction foldsOut(verdict: AdjudicationVerdict): boolean {\n return verdict === 'decoy' || verdict === 'entailed';\n}\n\n/** Tally an annotated candidate set's recorded verdicts, for `--json`'s\n * `adjudicationSummary` (over ALL candidates, every funnel bucket). */\nfunction summarizeAdjudications(\n candidates: readonly AnnotatedCandidate[]\n): { total: number; genuine: number; decoy: number; entailed: number; deferred: number } {\n const summary = { total: 0, genuine: 0, decoy: 0, entailed: 0, deferred: 0 };\n for (const c of candidates) {\n if (!c.adjudication) continue;\n summary.total++;\n summary[c.adjudication.verdict]++;\n }\n return summary;\n}\n\n/** The reconciling line printed under PROMISING when some of it carries a\n * recorded verdict — so the folded/shorter list never looks inconsistent\n * against the funnel line's raw promising count. */\nfunction adjudicationSummaryLine(promising: readonly AnnotatedCandidate[], promisingCount: number): string {\n const adjudicated = promising.filter((r) => r.adjudication);\n const counts = { genuine: 0, decoy: 0, entailed: 0, deferred: 0 };\n let folded = 0;\n for (const r of adjudicated) {\n const v = r.adjudication!.verdict;\n counts[v]++;\n if (foldsOut(v)) folded++;\n }\n const parts = (['decoy', 'entailed', 'deferred', 'genuine'] as const)\n .filter((v) => counts[v] > 0)\n .map((v) => `${counts[v]} ${v}`);\n const total = adjudicated.length;\n const verb = total === 1 ? 'carries' : 'carry';\n const noun = total === 1 ? 'a recorded verdict' : 'recorded verdicts';\n const foldNote = folded === total ? '— folded' : folded === 0 ? '— shown below' : `— ${folded} folded`;\n return ` adjudicated: ${total} of the ${promisingCount} promising ${verb} ${noun} (${parts.join(', ')}) ${foldNote}; --show-adjudicated to list`;\n}\n\ninterface Readiness {\n promising: number;\n mechanismTested: number;\n dataTested: number;\n withoutMagnitudeEvidence: number;\n axisUnresolved: number;\n entailedConsequence: number;\n}\n\n/** Encoded bridges that already carry a falsifier. Not discovery rows. */\nfunction encodedFalsifiers(api: CommandCtx['api']): readonly string[] {\n const lines: string[] = [];\n for (const id of [...api.CONFRONTATIONS.keys()].sort((a, b) => a - b)) {\n lines.push(`be-${id} (confrontation)`);\n }\n for (const f of api.ATLAS_FAMILIES) {\n for (const b of f.bridges) {\n const cx = b.counterexamples.length;\n const ineq = b.regime.inequalities.length;\n if (cx === 0 && ineq === 0) continue;\n const bits = [\n cx > 0 ? `${cx} counterexample${cx === 1 ? '' : 's'}` : '',\n ineq > 0 ? `${ineq} regime inequalit${ineq === 1 ? 'y' : 'ies'}` : '',\n ].filter((s) => s !== '');\n lines.push(`${b.id} (${bits.join(', ')})`);\n }\n }\n return lines;\n}\n\n/** How far the `promising` set is from evidence, counted from candidate fields. */\nfunction readinessOf(api: CommandCtx['api'], candidates: readonly FullyAnnotatedCandidate[]): Readiness {\n const p = candidates.filter((c) => c.verdict === 'promising');\n const g = p.map((c) => api.describeGrounding(c, c.consequence?.signal));\n return {\n promising: p.length,\n mechanismTested: g.filter((x) => x.mechanismTested).length,\n dataTested: g.filter((x) => x.dataTested).length,\n withoutMagnitudeEvidence: p.filter((c) => !c.magnitudeChecked || c.magnitudeAnchorInvariant === true).length,\n axisUnresolved: p.filter((c) => !c.axisChecked).length,\n entailedConsequence: p.filter((c) => c.consequence?.signal === 'entailed').length,\n };\n}\n\nasync function run(ctx: CommandCtx): Promise<number> {\n const { args, api, out } = ctx;\n const { graph, label, source } = resolveGraph(api, args.flags);\n const opts = parseDiscoveryOpts(api, args.flags);\n const anchor = groundTruthAnchor(api, opts);\n const ranked = api.rankDiscoveries(graph, opts);\n const isDerive = args.flags.has('derive');\n const annotated = isDerive ? ([] as AnnotatedCandidate[]) : api.annotateAdjudications(ranked);\n const withConsequence: readonly FullyAnnotatedCandidate[] = isDerive\n ? []\n : api.annotateConsequences(annotated);\n const showAdjudicated = args.flags.has('show-adjudicated');\n\n if (args.flags.has('json')) {\n const requireFalsifier = args.flags.has('require-falsifier');\n const mapped = isDerive\n ? api.deriveProposedBridges(ranked).map((p) => ({ ...p, claim: api.describeDerivedClaim(p) }))\n : withConsequence.map((c) => ({\n ...c,\n grounding: api.describeGrounding(c, c.consequence?.signal),\n readiness: api.describeReadiness(c, c.consequence?.signal),\n }));\n const result =\n requireFalsifier && !isDerive\n ? mapped.filter(\n (c) =>\n !('readiness' in c) ||\n c.verdict !== 'promising' ||\n c.readiness.falsifiers.survived.length > 0,\n )\n : mapped;\n const envelope = {\n command: 'discover',\n source,\n anchor: { groundTruth: anchor },\n options: { ...opts },\n epistemics: isDerive ? DERIVE_EPISTEMICS : EPISTEMICS,\n result,\n ...(requireFalsifier && !isDerive ? { encodedFalsifiers: encodedFalsifiers(api) } : {}),\n ...(isDerive\n ? {}\n : {\n readiness: readinessOf(api, withConsequence),\n adjudicationSummary: summarizeAdjudications(withConsequence),\n }),\n };\n emitJson(envelope, ctx.write);\n return 0;\n }\n\n if (Object.keys(opts).length) {\n const bits: string[] = [];\n if (opts.maxOrdersOfMagnitude !== undefined) bits.push(`max-orders=${opts.maxOrdersOfMagnitude}`);\n if (opts.groundTruth) {\n bits.push(`anchor={${Object.entries(opts.groundTruth).map(([k, v]) => `${k}=${v}`).join(', ')}}`);\n }\n out(` [discovery options: ${bits.join('; ')}]`);\n }\n\n if (isDerive) {\n deriveReport(api, ranked, label, groundTruthLine(anchor), out);\n return 0;\n }\n\n const by = (v: string) => withConsequence.filter((r) => r.verdict === v);\n // Q1: within PROMISING, spend the physicist's first minute on consequence-\n // bearing / magnitude-backed rows before inconclusive + no-magnitude coincidences.\n const consRank = (s: ConsequenceSignal | undefined): number =>\n s === 'entailed' ? 0 : s === 'novel-consequence' ? 1 : 2;\n const promising = [...by('promising')].sort((a, b) => {\n const ca = consRank(a.consequence?.signal);\n const cb = consRank(b.consequence?.signal);\n if (ca !== cb) return ca - cb;\n const magA = a.magnitudeChecked && a.magnitudeAnchorInvariant !== true ? 0 : 1;\n const magB = b.magnitudeChecked && b.magnitudeAnchorInvariant !== true ? 0 : 1;\n if (magA !== magB) return magA - magB;\n return b.score - a.score || a.a.localeCompare(b.a) || a.b.localeCompare(b.b);\n });\n const inert = by('inert');\n const contra = by('contradictory');\n const clash = by('magnitude-clash');\n const axisClash = by('axis-clash');\n out(`\\nDiscovery — link candidates VETTED through the inference suite [source: ${label}]`);\n out(` ${groundTruthLine(anchor)}`);\n out('⚠ a REVIEW SURFACE: `promising` means \"worth a physicist\\'s minute\", not \"true\".');\n out(' Each candidate hypothesises an identification a≡b and tests its consequences.\\n');\n out(\n ` funnel: ${withConsequence.length} candidates → ${promising.length} promising ` +\n `· ${inert.length} inert · ${clash.length} magnitude-clash ` +\n `· ${contra.length} contradictory (numerically falsified) · ${axisClash.length} axis-clash`\n );\n const rd = readinessOf(api, withConsequence);\n out(\n ` readiness of the ${rd.promising} promising: ${rd.mechanismTested} mechanism-tested · ` +\n `${rd.dataTested} data-tested · ${rd.withoutMagnitudeEvidence} without magnitude evidence · ` +\n `${rd.axisUnresolved} with axis unresolved · ${rd.entailedConsequence} with an entailed consequence`,\n );\n out(' promising ≠ evidence: promotion to a bridge needs a mechanism and a falsifiable prediction.\\n');\n const requireFalsifier = args.flags.has('require-falsifier');\n const untested = (r: FullyAnnotatedCandidate) =>\n api.describeReadiness(r, r.consequence?.signal).falsifiers.survived.length === 0;\n if (requireFalsifier) {\n out(\n ` --require-falsifier: ${promising.filter(untested).length} of the ${promising.length} promising hidden — ` +\n 'no independent falsifier ran and survived (connectivity alone is not evidence)\\n',\n );\n const encoded = encodedFalsifiers(api);\n out(` encoded falsifiers already on the records (${encoded.length}; these are not discovery rows):`);\n for (const line of encoded) out(` ${line}`);\n out('');\n }\n if (promising.length) {\n out(' PROMISING (merges disconnected physics, unlocks quantities, stays consistent):');\n for (const r of promising) {\n if (r.adjudication && foldsOut(r.adjudication.verdict) && !showAdjudicated) continue;\n if (requireFalsifier && untested(r)) continue;\n out(` ${(r.a + ' ≟ ' + r.b).padEnd(52)} [${r.dim}] score ${r.score}`);\n out(` unlocks: ${r.unlocksFromAnchor.join(', ') || '—'}`);\n if (r.consequence) {\n out(` [consequence: ${r.consequence.signal}]`);\n }\n const g = api.describeGrounding(r, r.consequence?.signal);\n out(\n ` [grounding — passed: ${g.passed.join(', ') || '—'}` +\n ` · gaps: ${g.gaps.join(', ') || '—'} · ceiling: no mechanism/data test]`,\n );\n const rd = api.describeReadiness(r, r.consequence?.signal);\n const f = rd.falsifiers;\n out(\n ` [readiness — structure: ${rd.structure.mergesComponents ? 'merges components' : 'no merge'}, ` +\n `unlocks ${rd.structure.unlocks} · kind: ${rd.kind} · independent falsifiers survived: ` +\n `${f.survived.join(', ') || 'none'}${f.abstained.length ? ` (abstained: ${f.abstained.join(', ')})` : ''}` +\n ' · mechanism: none · data: none]',\n );\n const needs = [\n ...(rd.needs.magnitudeFor.length ? [`needs a representative magnitude for: ${rd.needs.magnitudeFor.join(', ')}`] : []),\n ...rd.needs.regimeFor.map((u) => `needs a stated ${u.axis} regime for: ${u.endpoints.join(', ')}`),\n ...(rd.needs.derivableConsequence ? ['needs a consequence that re-derives a known law'] : []),\n ];\n out(` [to make it testable — premise: ${rd.needs.premise}${needs.map((n) => ` · ${n}`).join('')}]`);\n out(` [observation: ${rd.observation}]`);\n if (r.adjudication) {\n out(` [adjudicated: ${r.adjudication.verdict} — ${r.adjudication.grounds}]`);\n }\n }\n if (promising.some((r) => r.adjudication)) {\n out(adjudicationSummaryLine(promising, promising.length));\n }\n } else {\n out(' no candidate is `promising` from the anchor above.');\n }\n if (clash.length) {\n out(`\\n MAGNITUDE-CLASH (representative values differ by > N orders — a falsifier):`);\n for (const r of clash) {\n const basis = r.magnitudeUsedAnchor ? ' (anchor-derived)' : '';\n // A magnitude estimate is a statistic: three digits, marked approximate.\n out(` ${(r.a + ' ≟ ' + r.b).padEnd(52)} ~${api.formatQuantity(r.ordersApart!, 3)} orders apart${basis}`);\n }\n }\n const subsumed = inert.filter((r) => r.subsuming);\n if (subsumed.length) {\n out(`\\n SUBSUMING (generic ≟ specialization — tautological, barred from promising):`);\n for (const r of subsumed) {\n out(` ${(r.a + ' ≟ ' + r.b).padEnd(52)} [${r.dim}]`);\n }\n }\n if (contra.length) {\n out(`\\n CONTRADICTORY (the identification falsifies itself numerically):`);\n for (const r of contra) {\n out(` ${(r.a + ' ≟ ' + r.b).padEnd(52)} disagreeing node(s): ${r.inconsistentNodes.join(', ')}`);\n }\n }\n if (axisClash.length) {\n out(`\\n AXIS-CLASH (stated scale/force labels differ: a regime-label prior, not a physical test):`);\n for (const r of axisClash) {\n out(` ${(r.a + ' ≟ ' + r.b).padEnd(52)} ${r.axisClashes.join('; ')}`);\n }\n }\n out('\\n (magnitude gate abstains where a representative value is unknown; weak priors on dimension.)');\n out(` (inspect one candidate: upt ground --source=${source} <a> <b>, with the same --anchor/--max-orders)`);\n return 0;\n}\n\nexport const command: Command = {\n name: 'discover',\n aliases: ['discovery'],\n flags: FLAGS,\n help: commandHelp(HELP, FLAGS),\n summary: 'Vet quantity identifications and rank them promising, inert, or contradictory.',\n example: 'upt discover --source=canonical',\n group: 'discovery',\n run,\n};\n\nregisterCommand(command);\n"]}
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/cli/commands/discover.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `upt discover` — vet the link candidates through the inference suite, and\n * (with `--derive`) emit the algebraic identity-consequence proposals.\n * Transposed verbatim from bin/upt.mjs's `parseDiscoveryOpts()`/`discoverCmd()`/\n * `deriveCmd()` (lines 592-713), plus `--json`. `parseDiscoveryOpts` itself\n * moved to `_discovery-opts.ts` so `map`'s `--proposed` overlay can share it.\n */\nimport type { FlagSpec } from '../args.js';\nimport { registerCommand, type Command, type CommandCtx } from '../command.js';\nimport { commandHelp, JSON_FLAG, sourceFlag } from '../flag-help.js';\nimport { resolveGraph, groundTruthAnchor, groundTruthLine } from '../graphs.js';\nimport { emitJson } from '../output.js';\nimport { parseDiscoveryOpts } from './_discovery-opts.js';\nimport type { VettedCandidate } from '../../composition/discovery.js';\nimport type { AnnotatedCandidate } from '../../composition/adjudication.js';\nimport type { AdjudicationVerdict } from '../../bridges/catalog-types.js';\nimport { DISCOVER_MAX_ORDERS_DEFAULT } from '../library-defaults.js';\nimport { adjudicationSourceUrls } from '../published-url.js';\nimport type { ConsequenceSignal, ConsequenceEvidence } from '../../composition/consequence.js';\n\n/** `annotated` (adjudication layer) composed with the consequence layer —\n * both are `VettedCandidate & {...}` intersections, so a candidate carries\n * both `adjudication?` and `consequence?` after composition. */\ntype FullyAnnotatedCandidate = AnnotatedCandidate & {\n readonly consequence?: {\n readonly signal: ConsequenceSignal;\n readonly evidence: readonly ConsequenceEvidence[];\n };\n};\n\nconst FLAGS: FlagSpec[] = [\n sourceFlag('catalog', 'Which graph to read: catalog, canonical, or both. canonical excludes bridges.'),\n {\n name: '--max-orders',\n valueStyle: 'attached',\n description: 'Magnitude-clash threshold. A larger value keeps more pairs promising.',\n defaultValue: DISCOVER_MAX_ORDERS_DEFAULT,\n },\n {\n name: '--anchor',\n valueStyle: 'attached',\n repeatable: true,\n description: 'Override a numeric anchor as k=v or k=v,k2=v2.',\n defaultValue: 'mass=M_sun',\n },\n {\n name: '--derive',\n valueStyle: 'none',\n description:\n 'For each promising identification (either tier), print the one algebraic relation it implies, and say when the identification had no magnitude evidence. That relation is not a bridge.',\n },\n {\n name: '--show-adjudicated',\n valueStyle: 'none',\n description: 'List candidates a physicist has already adjudicated, with the recorded verdict.',\n },\n {\n name: '--require-falsifier',\n valueStyle: 'none',\n description: 'Hide promising rows (either tier) that no independent falsifier ran on and survived, counted per tier.',\n },\n JSON_FLAG,\n];\n\nconst ADJUDICATION_URLS = adjudicationSourceUrls().join('\\n ');\n\nconst HELP = `upt discover [--source=catalog|canonical|both]\n VET the link candidates through the inference suite: hypothesise\n each identification a≡b and test whether it merges disconnected\n physics, unlocks quantities, and stays numerically consistent.\n Ranks promising / promising, magnitude unchecked / inert / contradictory.\n A row that merges, unlocks and survives every falsifier that ran is\n 'promising' only when the magnitude falsifier ran on it and could have\n failed (both endpoints have a representative magnitude, and the ratio\n is not fixed by the graph at every anchor); otherwise it is 'promising,\n magnitude unchecked' (promising-unchecked in --json). The two tiers are\n counted and listed apart and never added.\n --source=canonical runs the funnel on the standard-physics L-layer\n ALONE (bridges excluded) — new candidates from established physics,\n and a self-consistency check (expect 0 contradictory).\n --derive emits, for each promising identification of either tier, the ONE\n algebraic relation it implies (monomial elimination) as an UNADJUDICATED,\n math-only proposal — NOT a bridge (Part-VI §XXVII-B), and says when the\n identification had no magnitude evidence. Pairs with --source=canonical.\n A magnitude comes from the sourced table, else a constant the graph\n fixes, else the quantity's own equation evaluated from the table and\n the constants (used only at a propagated σ of at most one decade),\n else the anchor; the MAGNITUDE-CLASH list marks the last two.\n --max-orders=N tunes the magnitude-clash threshold (default ${DISCOVER_MAX_ORDERS_DEFAULT}); looser N\n keeps more candidates 'promising', tighter N falsifies more as clashes.\n --anchor=k=v[,k2=v2] overrides the numeric anchor (default mass=M_sun)\n for the consistency/closure check. Both reshape the candidate pool that\n --derive consumes. T, temperature, temp, and T_K on an anchor are\n kelvin: an energy is k_B T, and any other dimension is an error.\n Candidates a physicist has already adjudicated\n (${ADJUDICATION_URLS})\n fold out of the two PROMISING lists by default (decoy/entailed verdicts only —\n review memory, not a re-litigation prompt); --show-adjudicated lists them\n again with their recorded verdict.\n Each row of either PROMISING list states its readiness dimension by dimension —\n structure, kind, which independent falsifiers (magnitude, axis,\n consequence) ran and survived or abstained — and what would make it\n testable: the identity premise, the missing magnitudes and regimes,\n and the observation that would test it. An abstention is a missing\n test, never a pass. --require-falsifier hides promising rows (either\n tier) that no independent falsifier ran on and survived, counts them per\n tier, and lists the encoded bridges that already carry a falsifier (a\n confrontation, a counterexample, or a regime inequality).`;\n\nconst EPISTEMICS =\n '⚠ a REVIEW SURFACE: `promising` means \"worth a physicist\\'s minute\", not \"true\".\\n' +\n ' Each candidate hypothesises an identification a≡b and tests its consequences.\\n' +\n ' `promising-unchecked` is the same structure with no magnitude evidence; the two are never added.';\n\nconst DERIVE_EPISTEMICS =\n '⚠ Each is the ALGEBRAIC CONSEQUENCE of an unadjudicated identification — NOT a new\\n' +\n ' relation and NOT a bridge. No mechanism asserted. Promotion to the catalog needs\\n' +\n ' adversarial + literature review (Part-VI §XXVII-B). The enumerator proposes; humans dispose.';\n\n// ── discover --derive (identity-consequence proposals) ────────────────────\n\n/**\n * Sample values for GENERIC quantities, which the representative-value table\n * leaves out on purpose. A proposal is evaluated only when every free input\n * has a sourced sample: this command once put 300 into every input, a Hubble\n * rate of 300 s⁻¹ among them (persona finding D5).\n */\nconst GENERIC_SAMPLES: Readonly<Record<string, { value: number; source: string }>> = {\n temperature: { value: 300, source: 'room temperature, 300 K' },\n};\nfunction deriveReport(\n api: CommandCtx['api'],\n ranked: readonly VettedCandidate[],\n label: string,\n anchorLine: string,\n out: (line?: string) => void\n): void {\n const proposals = api.deriveProposedBridges(ranked);\n out(`\\nDerived identity-consequence PROPOSALS — UNADJUDICATED, math-only [source: ${label}]`);\n out(` ${anchorLine}`);\n out(DERIVE_EPISTEMICS + '\\n');\n if (!proposals.length) {\n out(' no admissible proposal (need two fully-quantitative, monomial canonical targets).');\n return;\n }\n for (const p of proposals) {\n let approx = '';\n const governing = p.governing || [];\n const sampleOf = (name: string) => api.REPRESENTATIVE_VALUES[name] ?? GENERIC_SAMPLES[name];\n const missing = governing.filter((g) => sampleOf(g.name) === undefined).map((g) => g.name);\n if (missing.length > 0) {\n approx = ` (no sourced sample value for ${missing.join(', ')}; not evaluated)`;\n } else {\n try {\n const vals = Object.fromEntries(governing.map((g) => [g.name, sampleOf(g.name)!.value]));\n const at = governing\n .map((g) => `${g.name}=${sampleOf(g.name)!.value} [${sampleOf(g.name)!.source}]`)\n .join(', ');\n approx = ` ≈ ${api.formatQuantity(p.evaluate(vals))}${at ? ` (${at})` : ''}`;\n } catch (e) {\n // A proposal that cannot be evaluated at its samples says so and why; it is not shown as\n // though it had no sample. Only an `Error` is a refusal of the formula: anything else is a defect.\n if (!(e instanceof Error)) throw e;\n approx = ` (not evaluated at the sample values: ${e.message})`;\n }\n }\n out(` ${p.id}`);\n out(` ${p.formulaLatex} ${p.dimensionalSignature}${approx}`);\n out(\n ` from: ${p.derivedFrom.identification.a} ≟ ${p.derivedFrom.identification.b}` +\n ` (${p.derivedFrom.sourceEquationIds[0]} = ${p.derivedFrom.sourceEquationIds[1]}); solved for ${p.derivedFrom.solvedFor}`\n );\n if (!p.derivedFrom.identification.magnitudeEvidence) {\n out(' magnitude: no evidence — the identification is promising, magnitude unchecked (the magnitude falsifier never tested it)');\n }\n if (p.alsoDerivableFrom && p.alsoDerivableFrom.length) {\n out(` also derivable from: ${p.alsoDerivableFrom.join('; ')}`);\n }\n const c = api.describeDerivedClaim(p);\n out(\n c.relation === 'known-law'\n ? ` status: known law — re-derives ${c.canonicalMatch.id}; the identification ${c.premise} is still unadjudicated`\n : ` status: conditional identity — holds only if ${c.premise} (unadjudicated); untested`,\n );\n out(` meaning: ${c.symbol.meaning}`);\n out(\n ` assumptions carried: ${c.assumptions.map((a) => `${a.equation}: ${a.assumptions.join(', ') || 'none stated'}`).join('; ')}`,\n );\n const governingSet = `{${p.governing.map((g) => g.name).join(', ')}}`;\n out(\n ` canonical match: ${c.canonicalMatch.id ?? 'none'} — ${c.canonicalMatch.sameTarget} registry equation(s) target ` +\n `${p.target.name}, ${c.canonicalMatch.sameTargetAndGoverning} with governing ${governingSet}; ` +\n 'scope: this registry only, not physics at large',\n );\n }\n out('');\n}\n\n/** Verdicts that fold a candidate out of the printed PROMISING list by\n * default — review memory, not news. `deferred`/`genuine` stay listed\n * (see the module-level docstring on `AdjudicationVerdict`). */\nfunction foldsOut(verdict: AdjudicationVerdict): boolean {\n return verdict === 'decoy' || verdict === 'entailed';\n}\n\n/** Tally an annotated candidate set's recorded verdicts, for `--json`'s\n * `adjudicationSummary` (over ALL candidates, every funnel bucket). */\nfunction summarizeAdjudications(\n candidates: readonly AnnotatedCandidate[]\n): { total: number; genuine: number; decoy: number; entailed: number; deferred: number } {\n const summary = { total: 0, genuine: 0, decoy: 0, entailed: 0, deferred: 0 };\n for (const c of candidates) {\n if (!c.adjudication) continue;\n summary.total++;\n summary[c.adjudication.verdict]++;\n }\n return summary;\n}\n\n/** The reconciling line printed under PROMISING when some of it carries a\n * recorded verdict — so the folded/shorter list never looks inconsistent\n * against the funnel line's raw promising count. */\nfunction adjudicationSummaryLine(promising: readonly AnnotatedCandidate[], promisingCount: number, tierLabel: string): string {\n const adjudicated = promising.filter((r) => r.adjudication);\n const counts = { genuine: 0, decoy: 0, entailed: 0, deferred: 0 };\n let folded = 0;\n for (const r of adjudicated) {\n const v = r.adjudication!.verdict;\n counts[v]++;\n if (foldsOut(v)) folded++;\n }\n const parts = (['decoy', 'entailed', 'deferred', 'genuine'] as const)\n .filter((v) => counts[v] > 0)\n .map((v) => `${counts[v]} ${v}`);\n const total = adjudicated.length;\n const verb = total === 1 ? 'carries' : 'carry';\n const noun = total === 1 ? 'a recorded verdict' : 'recorded verdicts';\n const foldNote = folded === total ? '— folded' : folded === 0 ? '— shown below' : `— ${folded} folded`;\n return ` adjudicated: ${total} of the ${promisingCount} ${tierLabel} ${verb} ${noun} (${parts.join(', ')}) ${foldNote}; --show-adjudicated to list`;\n}\n\n/** How far one promising tier is from evidence. */\ninterface Readiness {\n count: number;\n mechanismTested: number;\n dataTested: number;\n withoutMagnitudeEvidence: number;\n axisUnresolved: number;\n entailedConsequence: number;\n}\n\n/** Encoded bridges that already carry a falsifier. Not discovery rows. */\nfunction encodedFalsifiers(api: CommandCtx['api']): readonly string[] {\n const lines: string[] = [];\n for (const id of [...api.CONFRONTATIONS.keys()].sort((a, b) => a - b)) {\n lines.push(`be-${id} (confrontation)`);\n }\n for (const f of api.ATLAS_FAMILIES) {\n for (const b of f.bridges) {\n const cx = b.counterexamples.length;\n const ineq = b.regime.inequalities.length;\n if (cx === 0 && ineq === 0) continue;\n const bits = [\n cx > 0 ? `${cx} counterexample${cx === 1 ? '' : 's'}` : '',\n ineq > 0 ? `${ineq} regime inequalit${ineq === 1 ? 'y' : 'ies'}` : '',\n ].filter((s) => s !== '');\n lines.push(`${b.id} (${bits.join(', ')})`);\n }\n }\n return lines;\n}\n\n/** The two promising tiers, in print order, with the label each is printed under. */\nconst TIERS = [\n { verdict: 'promising', label: 'promising', heading: 'PROMISING (merges disconnected physics, unlocks quantities, stays consistent, and the magnitude falsifier ran and survived):' },\n {\n verdict: 'promising-unchecked',\n label: 'promising, magnitude unchecked',\n heading:\n 'PROMISING, MAGNITUDE UNCHECKED (the same structure; the magnitude falsifier abstained or its pass is fixed by the graph at every anchor, so it never tested the row):',\n },\n] as const satisfies readonly { verdict: VettedCandidate['verdict']; label: string; heading: string }[];\n\n/** How far one promising tier is from evidence, counted from candidate fields. */\nfunction readinessOf(\n api: CommandCtx['api'],\n candidates: readonly FullyAnnotatedCandidate[],\n verdict: VettedCandidate['verdict'],\n): Readiness {\n const p = candidates.filter((c) => c.verdict === verdict);\n const g = p.map((c) => api.describeGrounding(c, c.consequence?.signal));\n return {\n count: p.length,\n mechanismTested: g.filter((x) => x.mechanismTested).length,\n dataTested: g.filter((x) => x.dataTested).length,\n withoutMagnitudeEvidence: p.filter((c) => !api.hasMagnitudeEvidence(c)).length,\n axisUnresolved: p.filter((c) => !c.axisChecked).length,\n entailedConsequence: p.filter((c) => c.consequence?.signal === 'entailed').length,\n };\n}\n\nasync function run(ctx: CommandCtx): Promise<number> {\n const { args, api, out } = ctx;\n const { graph, label, source } = resolveGraph(api, args.flags);\n const opts = parseDiscoveryOpts(api, args.flags);\n const anchor = groundTruthAnchor(api, opts);\n const ranked = api.rankDiscoveries(graph, opts);\n const isDerive = args.flags.has('derive');\n const annotated = isDerive ? ([] as AnnotatedCandidate[]) : api.annotateAdjudications(ranked);\n const withConsequence: readonly FullyAnnotatedCandidate[] = isDerive\n ? []\n : api.annotateConsequences(annotated);\n const showAdjudicated = args.flags.has('show-adjudicated');\n\n if (args.flags.has('json')) {\n const requireFalsifier = args.flags.has('require-falsifier');\n const mapped = isDerive\n ? api.deriveProposedBridges(ranked).map((p) => ({ ...p, claim: api.describeDerivedClaim(p) }))\n : withConsequence.map((c) => ({\n ...c,\n grounding: api.describeGrounding(c, c.consequence?.signal),\n readiness: api.describeReadiness(c, c.consequence?.signal),\n }));\n const result =\n requireFalsifier && !isDerive\n ? mapped.filter(\n (c) =>\n !('readiness' in c) ||\n !api.isPromisingTier(c.verdict) ||\n c.readiness.falsifiers.survived.length > 0,\n )\n : mapped;\n const envelope = {\n command: 'discover',\n source,\n anchor: { groundTruth: anchor },\n options: { ...opts },\n epistemics: isDerive ? DERIVE_EPISTEMICS : EPISTEMICS,\n result,\n ...(requireFalsifier && !isDerive ? { encodedFalsifiers: encodedFalsifiers(api) } : {}),\n ...(isDerive\n ? {}\n : {\n readiness: {\n promising: readinessOf(api, withConsequence, 'promising'),\n promisingUnchecked: readinessOf(api, withConsequence, 'promising-unchecked'),\n },\n adjudicationSummary: summarizeAdjudications(withConsequence),\n }),\n };\n emitJson(envelope, ctx.write);\n return 0;\n }\n\n if (Object.keys(opts).length) {\n const bits: string[] = [];\n if (opts.maxOrdersOfMagnitude !== undefined) bits.push(`max-orders=${opts.maxOrdersOfMagnitude}`);\n if (opts.groundTruth) {\n bits.push(`anchor={${Object.entries(opts.groundTruth).map(([k, v]) => `${k}=${v}`).join(', ')}}`);\n }\n out(` [discovery options: ${bits.join('; ')}]`);\n }\n\n if (isDerive) {\n deriveReport(api, ranked, label, groundTruthLine(anchor), out);\n return 0;\n }\n\n const by = (v: string) => withConsequence.filter((r) => r.verdict === v);\n // Q1: within each PROMISING tier, spend the physicist's first minute on consequence-bearing\n // rows before inconclusive coincidences. The magnitude evidence is the tier itself.\n const consRank = (s: ConsequenceSignal | undefined): number =>\n s === 'entailed' ? 0 : s === 'novel-consequence' ? 1 : 2;\n const tierRows = (verdict: VettedCandidate['verdict']) =>\n [...by(verdict)].sort((a, b) => {\n const ca = consRank(a.consequence?.signal);\n const cb = consRank(b.consequence?.signal);\n if (ca !== cb) return ca - cb;\n return b.score - a.score || a.a.localeCompare(b.a) || a.b.localeCompare(b.b);\n });\n const tiers = TIERS.map((t) => ({ ...t, rows: tierRows(t.verdict), readiness: readinessOf(api, withConsequence, t.verdict) }));\n const [promising, unchecked] = tiers;\n const inert = by('inert');\n const contra = by('contradictory');\n const clash = by('magnitude-clash');\n const axisClash = by('axis-clash');\n out(`\\nDiscovery — link candidates VETTED through the inference suite [source: ${label}]`);\n out(` ${groundTruthLine(anchor)}`);\n out('⚠ a REVIEW SURFACE: `promising` means \"worth a physicist\\'s minute\", not \"true\".');\n out(' Each candidate hypothesises an identification a≡b and tests its consequences.\\n');\n // The two tiers are two counts, never one sum (AGENTS law 4).\n out(\n ` funnel: ${withConsequence.length} candidates → ${promising!.rows.length} promising ` +\n `· ${unchecked!.rows.length} promising, magnitude unchecked ` +\n `· ${inert.length} inert · ${clash.length} magnitude-clash ` +\n `· ${contra.length} contradictory (numerically falsified) · ${axisClash.length} axis-clash`\n );\n for (const t of tiers) {\n const rd = t.readiness;\n out(\n ` readiness of the ${rd.count} ${t.label}: ${rd.mechanismTested} mechanism-tested · ` +\n `${rd.dataTested} data-tested · ${rd.withoutMagnitudeEvidence} without magnitude evidence · ` +\n `${rd.axisUnresolved} with axis unresolved · ${rd.entailedConsequence} with an entailed consequence`,\n );\n }\n out(' promising ≠ evidence: promotion to a bridge needs a mechanism and a falsifiable prediction.\\n');\n const requireFalsifier = args.flags.has('require-falsifier');\n const untested = (r: FullyAnnotatedCandidate) =>\n api.describeReadiness(r, r.consequence?.signal).falsifiers.survived.length === 0;\n if (requireFalsifier) {\n out(\n ` --require-falsifier: ` +\n tiers.map((t) => `${t.rows.filter(untested).length} of the ${t.rows.length} ${t.label}`).join(' and ') +\n ' hidden — no independent falsifier ran and survived (connectivity alone is not evidence)\\n',\n );\n const encoded = encodedFalsifiers(api);\n out(` encoded falsifiers already on the records (${encoded.length}; these are not discovery rows):`);\n for (const line of encoded) out(` ${line}`);\n out('');\n }\n const printRow = (r: FullyAnnotatedCandidate): void => {\n out(` ${(r.a + ' ≟ ' + r.b).padEnd(52)} [${r.dim}] score ${r.score}`);\n out(` unlocks: ${r.unlocksFromAnchor.join(', ') || '—'}`);\n if (r.consequence) {\n out(` [consequence: ${r.consequence.signal}]`);\n }\n const g = api.describeGrounding(r, r.consequence?.signal);\n out(\n ` [grounding — passed: ${g.passed.join(', ') || '—'}` +\n ` · gaps: ${g.gaps.join(', ') || '—'} · ceiling: no mechanism/data test]`,\n );\n const rd = api.describeReadiness(r, r.consequence?.signal);\n const f = rd.falsifiers;\n out(\n ` [readiness — structure: ${rd.structure.mergesComponents ? 'merges components' : 'no merge'}, ` +\n `unlocks ${rd.structure.unlocks} · kind: ${rd.kind} · independent falsifiers survived: ` +\n `${f.survived.join(', ') || 'none'}${f.abstained.length ? ` (abstained: ${f.abstained.join(', ')})` : ''}` +\n ' · mechanism: none · data: none]',\n );\n const needs = [\n ...(rd.needs.magnitudeFor.length ? [`needs a representative magnitude for: ${rd.needs.magnitudeFor.join(', ')}`] : []),\n ...rd.needs.regimeFor.map((u) => `needs a stated ${u.axis} regime for: ${u.endpoints.join(', ')}`),\n ...(rd.needs.derivableConsequence ? ['needs a consequence that re-derives a known law'] : []),\n ];\n out(` [to make it testable — premise: ${rd.needs.premise}${needs.map((n) => ` · ${n}`).join('')}]`);\n out(` [observation: ${rd.observation}]`);\n if (r.adjudication) {\n out(` [adjudicated: ${r.adjudication.verdict} — ${r.adjudication.grounds}]`);\n }\n };\n for (const t of tiers) {\n if (t !== promising) out('');\n if (t.rows.length === 0) {\n out(\n t === promising\n ? ' no candidate is `promising` (with magnitude evidence) from the anchor above.'\n : ' no candidate is `promising, magnitude unchecked` from the anchor above.',\n );\n continue;\n }\n out(` ${t.heading}`);\n for (const r of t.rows) {\n if (r.adjudication && foldsOut(r.adjudication.verdict) && !showAdjudicated) continue;\n if (requireFalsifier && untested(r)) continue;\n printRow(r);\n }\n if (t.rows.some((r) => r.adjudication)) {\n out(adjudicationSummaryLine(t.rows, t.rows.length, t.label));\n }\n }\n if (clash.length) {\n out(\n `\\n MAGNITUDE-CLASH (representative values differ by > N orders — a falsifier; p is the falsifier's strength ` +\n `at the values' stated σ, 2Φ(−orders/√(σa²+σb²)), not a credibility score):`,\n );\n for (const r of clash) {\n // Where each magnitude came from when it was not the sourced table: the quantity's own\n // equation (not anchor-derived), or the anchor.\n const bases = [\n ...((r.magnitudeDerived ?? []).length > 0 ? [`${r.magnitudeDerived!.join(', ')} from its own equation`] : []),\n ...(r.magnitudeUsedAnchor ? ['anchor-derived'] : []),\n ];\n const basis = bases.length > 0 ? ` (${bases.join('; ')})` : '';\n // A p that underflows a double is not zero: it is below the smallest normal double.\n const p = r.magnitudeP;\n const strength =\n p === undefined || p === null ? '' : p === 0 ? ', p < 1e-300' : `, p = ${api.formatQuantity(p, 3)}`;\n // A magnitude estimate is a statistic: three digits, marked approximate.\n out(` ${(r.a + ' ≟ ' + r.b).padEnd(52)} ~${api.formatQuantity(r.ordersApart!, 3)} orders apart${strength}${basis}`);\n }\n }\n const subsumed = inert.filter((r) => r.subsuming);\n if (subsumed.length) {\n out(`\\n SUBSUMING (generic ≟ specialization — tautological, barred from promising):`);\n for (const r of subsumed) {\n out(` ${(r.a + ' ≟ ' + r.b).padEnd(52)} [${r.dim}]`);\n }\n }\n if (contra.length) {\n out(`\\n CONTRADICTORY (the identification falsifies itself numerically):`);\n for (const r of contra) {\n out(` ${(r.a + ' ≟ ' + r.b).padEnd(52)} disagreeing node(s): ${r.inconsistentNodes.join(', ')}`);\n }\n }\n if (axisClash.length) {\n out(`\\n AXIS-CLASH (stated scale/force labels differ: a regime-label prior, not a physical test):`);\n for (const r of axisClash) {\n out(` ${(r.a + ' ≟ ' + r.b).padEnd(52)} ${r.axisClashes.join('; ')}`);\n }\n }\n out(\n '\\n (magnitude gate abstains where a representative value is unknown, and such a row is at most ' +\n \"'promising, magnitude unchecked'; weak priors on dimension.)\",\n );\n out(` (inspect one candidate: upt ground --source=${source} <a> <b>, with the same --anchor/--max-orders)`);\n return 0;\n}\n\nexport const command: Command = {\n name: 'discover',\n aliases: ['discovery'],\n flags: FLAGS,\n help: commandHelp(HELP, FLAGS),\n summary: 'Vet quantity identifications and rank them promising (two tiers: magnitude checked or unchecked), inert, or contradictory.',\n example: 'upt discover --source=canonical',\n group: 'discovery',\n run,\n};\n\nregisterCommand(command);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/eval.ts"],"names":[],"mappings":"AASA,OAAO,EAAmB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAC;AAmL/E,eAAO,MAAM,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/eval.ts"],"names":[],"mappings":"AASA,OAAO,EAAmB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAC;AAmL/E,eAAO,MAAM,OAAO,EAAE,OAUrB,CAAC"}
|
|
@@ -167,6 +167,7 @@ async function run(ctx) {
|
|
|
167
167
|
export const command = {
|
|
168
168
|
name: 'eval',
|
|
169
169
|
aliases: ['calc'],
|
|
170
|
+
positionals: { max: Infinity },
|
|
170
171
|
flags: FLAGS,
|
|
171
172
|
help: commandHelp(HELP, FLAGS),
|
|
172
173
|
summary: 'Evaluate a scalar formula. A bare e is the elementary charge; Euler\'s number is exp(x).',
|