universal-physics-tensor 0.45.2 → 0.46.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 +28 -27
- package/dist/atlas/applicability.d.ts +108 -0
- package/dist/atlas/applicability.d.ts.map +1 -0
- package/dist/atlas/applicability.js +301 -0
- package/dist/atlas/applicability.js.map +1 -0
- package/dist/atlas/association.d.ts +92 -0
- package/dist/atlas/association.d.ts.map +1 -0
- package/dist/atlas/association.js +112 -0
- package/dist/atlas/association.js.map +1 -0
- package/dist/atlas/benchmark/backend-shapes.d.ts +47 -0
- package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -0
- package/dist/atlas/benchmark/backend-shapes.js +58 -0
- package/dist/atlas/benchmark/backend-shapes.js.map +1 -0
- package/dist/atlas/benchmark/baselines.d.ts +64 -0
- package/dist/atlas/benchmark/baselines.d.ts.map +1 -0
- package/dist/atlas/benchmark/baselines.js +112 -0
- package/dist/atlas/benchmark/baselines.js.map +1 -0
- package/dist/atlas/benchmark/leakage.d.ts +56 -0
- package/dist/atlas/benchmark/leakage.d.ts.map +1 -0
- package/dist/atlas/benchmark/leakage.js +100 -0
- package/dist/atlas/benchmark/leakage.js.map +1 -0
- package/dist/atlas/benchmark/loader.d.ts +56 -0
- package/dist/atlas/benchmark/loader.d.ts.map +1 -0
- package/dist/atlas/benchmark/loader.js +104 -0
- package/dist/atlas/benchmark/loader.js.map +1 -0
- package/dist/atlas/benchmark/run-atlas.d.ts +72 -0
- package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -0
- package/dist/atlas/benchmark/run-atlas.js +210 -0
- package/dist/atlas/benchmark/run-atlas.js.map +1 -0
- package/dist/atlas/benchmark/stats.d.ts +90 -0
- package/dist/atlas/benchmark/stats.d.ts.map +1 -0
- package/dist/atlas/benchmark/stats.js +159 -0
- package/dist/atlas/benchmark/stats.js.map +1 -0
- package/dist/atlas/benchmark/study.d.ts +120 -0
- package/dist/atlas/benchmark/study.d.ts.map +1 -0
- package/dist/atlas/benchmark/study.js +192 -0
- package/dist/atlas/benchmark/study.js.map +1 -0
- package/dist/atlas/benchmark/types.d.ts +79 -0
- package/dist/atlas/benchmark/types.d.ts.map +1 -0
- package/dist/atlas/benchmark/types.js +46 -0
- package/dist/atlas/benchmark/types.js.map +1 -0
- package/dist/atlas/composition-table.d.ts +55 -0
- package/dist/atlas/composition-table.d.ts.map +1 -0
- package/dist/atlas/composition-table.js +133 -0
- package/dist/atlas/composition-table.js.map +1 -0
- package/dist/atlas/conventions.d.ts +63 -0
- package/dist/atlas/conventions.d.ts.map +1 -0
- package/dist/atlas/conventions.js +93 -0
- package/dist/atlas/conventions.js.map +1 -0
- package/dist/atlas/coverage.d.ts +93 -0
- package/dist/atlas/coverage.d.ts.map +1 -0
- package/dist/atlas/coverage.js +69 -0
- package/dist/atlas/coverage.js.map +1 -0
- package/dist/atlas/derivation.d.ts +137 -0
- package/dist/atlas/derivation.d.ts.map +1 -0
- package/dist/atlas/derivation.js +190 -0
- package/dist/atlas/derivation.js.map +1 -0
- package/dist/atlas/derive-evidence.d.ts +218 -0
- package/dist/atlas/derive-evidence.d.ts.map +1 -0
- package/dist/atlas/derive-evidence.js +225 -0
- package/dist/atlas/derive-evidence.js.map +1 -0
- package/dist/atlas/diffusion/bridges-closure.d.ts +63 -0
- package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -0
- package/dist/atlas/diffusion/bridges-closure.js +324 -0
- package/dist/atlas/diffusion/bridges-closure.js.map +1 -0
- package/dist/atlas/diffusion/bridges.d.ts +36 -0
- package/dist/atlas/diffusion/bridges.d.ts.map +1 -0
- package/dist/atlas/diffusion/bridges.js +226 -0
- package/dist/atlas/diffusion/bridges.js.map +1 -0
- package/dist/atlas/diffusion/dimensions.d.ts +21 -0
- package/dist/atlas/diffusion/dimensions.d.ts.map +1 -0
- package/dist/atlas/diffusion/dimensions.js +21 -0
- package/dist/atlas/diffusion/dimensions.js.map +1 -0
- package/dist/atlas/diffusion/index.d.ts +16 -0
- package/dist/atlas/diffusion/index.d.ts.map +1 -0
- package/dist/atlas/diffusion/index.js +23 -0
- package/dist/atlas/diffusion/index.js.map +1 -0
- package/dist/atlas/diffusion/models.d.ts +24 -0
- package/dist/atlas/diffusion/models.d.ts.map +1 -0
- package/dist/atlas/diffusion/models.js +139 -0
- package/dist/atlas/diffusion/models.js.map +1 -0
- package/dist/atlas/diffusion/numerics.d.ts +181 -0
- package/dist/atlas/diffusion/numerics.d.ts.map +1 -0
- package/dist/atlas/diffusion/numerics.js +251 -0
- package/dist/atlas/diffusion/numerics.js.map +1 -0
- package/dist/atlas/error-algebra.d.ts +52 -0
- package/dist/atlas/error-algebra.d.ts.map +1 -0
- package/dist/atlas/error-algebra.js +55 -0
- package/dist/atlas/error-algebra.js.map +1 -0
- package/dist/atlas/export.d.ts +48 -0
- package/dist/atlas/export.d.ts.map +1 -0
- package/dist/atlas/export.js +106 -0
- package/dist/atlas/export.js.map +1 -0
- package/dist/atlas/families.d.ts +14 -0
- package/dist/atlas/families.d.ts.map +1 -0
- package/dist/atlas/families.js +20 -0
- package/dist/atlas/families.js.map +1 -0
- package/dist/atlas/index.d.ts +90 -0
- package/dist/atlas/index.d.ts.map +1 -0
- package/dist/atlas/index.js +69 -0
- package/dist/atlas/index.js.map +1 -0
- package/dist/atlas/link-prediction.d.ts +71 -0
- package/dist/atlas/link-prediction.d.ts.map +1 -0
- package/dist/atlas/link-prediction.js +128 -0
- package/dist/atlas/link-prediction.js.map +1 -0
- package/dist/atlas/model.d.ts +70 -0
- package/dist/atlas/model.d.ts.map +1 -0
- package/dist/atlas/model.js +26 -0
- package/dist/atlas/model.js.map +1 -0
- package/dist/atlas/oscillators/bridges-coarse.d.ts +71 -0
- package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -0
- package/dist/atlas/oscillators/bridges-coarse.js +146 -0
- package/dist/atlas/oscillators/bridges-coarse.js.map +1 -0
- package/dist/atlas/oscillators/bridges-exact.d.ts +70 -0
- package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -0
- package/dist/atlas/oscillators/bridges-exact.js +227 -0
- package/dist/atlas/oscillators/bridges-exact.js.map +1 -0
- package/dist/atlas/oscillators/bridges-limits.d.ts +118 -0
- package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -0
- package/dist/atlas/oscillators/bridges-limits.js +342 -0
- package/dist/atlas/oscillators/bridges-limits.js.map +1 -0
- package/dist/atlas/oscillators/dimensions.d.ts +34 -0
- package/dist/atlas/oscillators/dimensions.d.ts.map +1 -0
- package/dist/atlas/oscillators/dimensions.js +34 -0
- package/dist/atlas/oscillators/dimensions.js.map +1 -0
- package/dist/atlas/oscillators/index.d.ts +38 -0
- package/dist/atlas/oscillators/index.d.ts.map +1 -0
- package/dist/atlas/oscillators/index.js +37 -0
- package/dist/atlas/oscillators/index.js.map +1 -0
- package/dist/atlas/oscillators/models.d.ts +25 -0
- package/dist/atlas/oscillators/models.d.ts.map +1 -0
- package/dist/atlas/oscillators/models.js +160 -0
- package/dist/atlas/oscillators/models.js.map +1 -0
- package/dist/atlas/oscillators/rejections.d.ts +21 -0
- package/dist/atlas/oscillators/rejections.d.ts.map +1 -0
- package/dist/atlas/oscillators/rejections.js +54 -0
- package/dist/atlas/oscillators/rejections.js.map +1 -0
- package/dist/atlas/path-bound.d.ts +143 -0
- package/dist/atlas/path-bound.d.ts.map +1 -0
- package/dist/atlas/path-bound.js +268 -0
- package/dist/atlas/path-bound.js.map +1 -0
- package/dist/atlas/poster/associations.d.ts +66 -0
- package/dist/atlas/poster/associations.d.ts.map +1 -0
- package/dist/atlas/poster/associations.js +90 -0
- package/dist/atlas/poster/associations.js.map +1 -0
- package/dist/atlas/poster/derivations.d.ts +156 -0
- package/dist/atlas/poster/derivations.d.ts.map +1 -0
- package/dist/atlas/poster/derivations.js +430 -0
- package/dist/atlas/poster/derivations.js.map +1 -0
- package/dist/atlas/poster/statements.d.ts +198 -0
- package/dist/atlas/poster/statements.d.ts.map +1 -0
- package/dist/atlas/poster/statements.js +365 -0
- package/dist/atlas/poster/statements.js.map +1 -0
- package/dist/atlas/public.d.ts +26 -0
- package/dist/atlas/public.d.ts.map +1 -0
- package/dist/atlas/public.js +21 -0
- package/dist/atlas/public.js.map +1 -0
- package/dist/atlas/regime.d.ts +171 -0
- package/dist/atlas/regime.d.ts.map +1 -0
- package/dist/atlas/regime.js +309 -0
- package/dist/atlas/regime.js.map +1 -0
- package/dist/atlas/serialize.d.ts +50 -0
- package/dist/atlas/serialize.d.ts.map +1 -0
- package/dist/atlas/serialize.js +180 -0
- package/dist/atlas/serialize.js.map +1 -0
- package/dist/atlas/statement.d.ts +165 -0
- package/dist/atlas/statement.d.ts.map +1 -0
- package/dist/atlas/statement.js +176 -0
- package/dist/atlas/statement.js.map +1 -0
- package/dist/atlas/types.d.ts +308 -0
- package/dist/atlas/types.d.ts.map +1 -0
- package/dist/atlas/types.js +61 -0
- package/dist/atlas/types.js.map +1 -0
- package/dist/atlas/waves/bridges-closure.d.ts +39 -0
- package/dist/atlas/waves/bridges-closure.d.ts.map +1 -0
- package/dist/atlas/waves/bridges-closure.js +223 -0
- package/dist/atlas/waves/bridges-closure.js.map +1 -0
- package/dist/atlas/waves/bridges.d.ts +49 -0
- package/dist/atlas/waves/bridges.d.ts.map +1 -0
- package/dist/atlas/waves/bridges.js +265 -0
- package/dist/atlas/waves/bridges.js.map +1 -0
- package/dist/atlas/waves/index.d.ts +16 -0
- package/dist/atlas/waves/index.d.ts.map +1 -0
- package/dist/atlas/waves/index.js +23 -0
- package/dist/atlas/waves/index.js.map +1 -0
- package/dist/atlas/waves/models.d.ts +29 -0
- package/dist/atlas/waves/models.d.ts.map +1 -0
- package/dist/atlas/waves/models.js +127 -0
- package/dist/atlas/waves/models.js.map +1 -0
- package/dist/atlas/waves/numerics.d.ts +149 -0
- package/dist/atlas/waves/numerics.d.ts.map +1 -0
- package/dist/atlas/waves/numerics.js +218 -0
- package/dist/atlas/waves/numerics.js.map +1 -0
- package/dist/atlas/witness-artifact.d.ts +65 -0
- package/dist/atlas/witness-artifact.d.ts.map +1 -0
- package/dist/atlas/witness-artifact.js +78 -0
- package/dist/atlas/witness-artifact.js.map +1 -0
- package/dist/atlas/witness-numeric.d.ts +81 -0
- package/dist/atlas/witness-numeric.d.ts.map +1 -0
- package/dist/atlas/witness-numeric.js +105 -0
- package/dist/atlas/witness-numeric.js.map +1 -0
- package/dist/atlas/witness-result.d.ts +77 -0
- package/dist/atlas/witness-result.d.ts.map +1 -0
- package/dist/atlas/witness-result.js +39 -0
- package/dist/atlas/witness-result.js.map +1 -0
- package/dist/atlas/witness-specs.d.ts +110 -0
- package/dist/atlas/witness-specs.d.ts.map +1 -0
- package/dist/atlas/witness-specs.js +372 -0
- package/dist/atlas/witness-specs.js.map +1 -0
- package/dist/atlas/witness-symbolic.d.ts +79 -0
- package/dist/atlas/witness-symbolic.d.ts.map +1 -0
- package/dist/atlas/witness-symbolic.js +140 -0
- package/dist/atlas/witness-symbolic.js.map +1 -0
- package/dist/atlas/witnesses/quantum-support.d.ts +50 -0
- package/dist/atlas/witnesses/quantum-support.d.ts.map +1 -0
- package/dist/atlas/witnesses/quantum-support.js +48 -0
- package/dist/atlas/witnesses/quantum-support.js.map +1 -0
- package/dist/bridges/be11-decoherence-confrontation.js.map +1 -1
- package/dist/bridges/be21-kss-confrontation.js.map +1 -1
- package/dist/bridges/be23-planckian-confrontation.js.map +1 -1
- package/dist/bridges/be35-bootstrap-confrontation.js.map +1 -1
- package/dist/bridges/be36-gw170817-confrontation.js.map +1 -1
- package/dist/bridges/be37-cassini-confrontation.js.map +1 -1
- package/dist/bridges/be48-collapse-confrontation.js.map +1 -1
- package/dist/bridges/be51-lensing-confrontation.js.map +1 -1
- package/dist/bridges/be52-mercury-confrontation.js.map +1 -1
- package/dist/bridges/be55-quantum-hall-confrontation.js.map +1 -1
- package/dist/bridges/be56-casimir-confrontation.js.map +1 -1
- package/dist/bridges/be58-johnson-nyquist-confrontation.js.map +1 -1
- package/dist/bridges/be59-ac-josephson-confrontation.js.map +1 -1
- package/dist/bridges/be60-fractional-qh-confrontation.js.map +1 -1
- package/dist/bridges/be61-wiedemann-franz-confrontation.js.map +1 -1
- package/dist/bridges/be62-bcs-gap-confrontation.js.map +1 -1
- package/dist/bridges/be63-chandrasekhar-mass-confrontation.js.map +1 -1
- package/dist/bridges/be64-eddington-luminosity-confrontation.js.map +1 -1
- package/dist/bridges/be65-jeans-mass-confrontation.js.map +1 -1
- package/dist/bridges/bridge-equations.d.ts +2 -1
- package/dist/bridges/bridge-equations.d.ts.map +1 -1
- package/dist/bridges/bridge-equations.js +3 -2
- package/dist/bridges/bridge-equations.js.map +1 -1
- package/dist/bridges/catalog-adapter.d.ts.map +1 -1
- package/dist/bridges/catalog-adapter.js.map +1 -1
- package/dist/bridges/equations/_be-helpers.d.ts +2 -2
- package/dist/bridges/equations/_be-helpers.js +2 -2
- package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -1
- package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +88 -58
- package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +1 -1
- package/dist/bridges/equations/be-35-conformal-bootstrap.js +102 -62
- package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +1 -1
- package/dist/bridges/equations/be-48-grw-localization.d.ts +9 -8
- package/dist/bridges/equations/be-48-grw-localization.d.ts.map +1 -1
- package/dist/bridges/equations/be-48-grw-localization.js +9 -8
- package/dist/bridges/equations/be-48-grw-localization.js.map +1 -1
- package/dist/bridges/gravitational-lensing.d.ts +10 -0
- package/dist/bridges/gravitational-lensing.d.ts.map +1 -1
- package/dist/bridges/gravitational-lensing.js.map +1 -1
- package/dist/bridges/index.d.ts +125 -7
- package/dist/bridges/index.d.ts.map +1 -1
- package/dist/bridges/index.js +483 -20
- package/dist/bridges/index.js.map +1 -1
- package/dist/bridges/perihelion-precession.d.ts +10 -0
- package/dist/bridges/perihelion-precession.d.ts.map +1 -1
- package/dist/bridges/perihelion-precession.js.map +1 -1
- package/dist/bridges/rhs-registry.js +2 -2
- package/dist/canonical/canonical-equation.d.ts +15 -0
- package/dist/canonical/canonical-equation.d.ts.map +1 -1
- package/dist/canonical/entries/_l1-build.d.ts +1 -1
- package/dist/canonical/entries/_l1-build.d.ts.map +1 -1
- package/dist/canonical/entries/atomic.d.ts.map +1 -1
- package/dist/canonical/entries/atomic.js +23 -0
- package/dist/canonical/entries/atomic.js.map +1 -1
- package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
- package/dist/canonical/entries/nonmonomial.js +93 -0
- package/dist/canonical/entries/nonmonomial.js.map +1 -1
- package/dist/canonical/normal-form.js.map +1 -1
- package/dist/canonical/residual.d.ts +28 -0
- package/dist/canonical/residual.d.ts.map +1 -0
- package/dist/canonical/residual.js +31 -0
- package/dist/canonical/residual.js.map +1 -0
- package/dist/cli/command.d.ts +8 -0
- package/dist/cli/command.d.ts.map +1 -1
- package/dist/cli/command.js +10 -0
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/commands/atlas.d.ts +3 -0
- package/dist/cli/commands/atlas.d.ts.map +1 -0
- package/dist/cli/commands/atlas.js +158 -0
- package/dist/cli/commands/atlas.js.map +1 -0
- package/dist/cli/commands/confront.js.map +1 -1
- package/dist/cli/commands/coverage.js +3 -3
- package/dist/cli/commands/index.d.ts +3 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +3 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/map.d.ts.map +1 -1
- package/dist/cli/commands/map.js +161 -27
- package/dist/cli/commands/map.js.map +1 -1
- package/dist/cli/commands/path.d.ts +3 -0
- package/dist/cli/commands/path.d.ts.map +1 -0
- package/dist/cli/commands/path.js +145 -0
- package/dist/cli/commands/path.js.map +1 -0
- package/dist/cli/commands/recover.d.ts.map +1 -1
- package/dist/cli/commands/recover.js +25 -6
- package/dist/cli/commands/recover.js.map +1 -1
- package/dist/cli/commands/regime.d.ts +14 -0
- package/dist/cli/commands/regime.d.ts.map +1 -0
- package/dist/cli/commands/regime.js +189 -0
- package/dist/cli/commands/regime.js.map +1 -0
- package/dist/cli/errors.d.ts.map +1 -1
- package/dist/cli/graphs.d.ts.map +1 -1
- package/dist/cli/graphs.js +5 -1
- package/dist/cli/graphs.js.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +22 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/output.d.ts +6 -1
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/version.js.map +1 -1
- package/dist/cli-api.d.ts +16 -0
- package/dist/cli-api.d.ts.map +1 -1
- package/dist/cli-api.js +18 -0
- package/dist/cli-api.js.map +1 -1
- package/dist/composition/axis-audit.js.map +1 -1
- package/dist/composition/bridge-prediction.d.ts.map +1 -1
- package/dist/composition/bridge-prediction.js +0 -0
- package/dist/composition/bridge-prediction.js.map +1 -1
- package/dist/composition/canonical-graph.d.ts +2 -2
- package/dist/composition/canonical-graph.js +2 -2
- package/dist/composition/canonical-graph.js.map +1 -1
- package/dist/composition/compose-symbolic.d.ts.map +1 -1
- package/dist/composition/compose-symbolic.js.map +1 -1
- package/dist/composition/compose.d.ts.map +1 -1
- package/dist/composition/compose.js +80 -1
- package/dist/composition/compose.js.map +1 -1
- package/dist/composition/consequence.js.map +1 -1
- package/dist/composition/discovery.js.map +1 -1
- package/dist/composition/edge.d.ts +64 -0
- package/dist/composition/edge.d.ts.map +1 -1
- package/dist/composition/edge.js +29 -0
- package/dist/composition/edge.js.map +1 -1
- package/dist/composition/edges/calibration.d.ts.map +1 -1
- package/dist/composition/edges/calibration.js +46 -0
- package/dist/composition/edges/calibration.js.map +1 -1
- package/dist/composition/edges/catalog-quantum.d.ts.map +1 -1
- package/dist/composition/edges/catalog-quantum.js +9 -0
- package/dist/composition/edges/catalog-quantum.js.map +1 -1
- package/dist/composition/edges/catalog-tranche.d.ts.map +1 -1
- package/dist/composition/edges/catalog-tranche.js +18 -0
- package/dist/composition/edges/catalog-tranche.js.map +1 -1
- package/dist/composition/enumerate.js.map +1 -1
- package/dist/composition/explain.js.map +1 -1
- package/dist/composition/expr-eval.d.ts.map +1 -1
- package/dist/composition/expr-eval.js.map +1 -1
- package/dist/composition/expr-simplify.d.ts +13 -0
- package/dist/composition/expr-simplify.d.ts.map +1 -1
- package/dist/composition/expr-simplify.js +25 -0
- package/dist/composition/expr-simplify.js.map +1 -1
- package/dist/composition/expr-subst.js.map +1 -1
- package/dist/composition/graph-viz-svg.d.ts.map +1 -1
- package/dist/composition/graph-viz.d.ts +118 -1
- package/dist/composition/graph-viz.d.ts.map +1 -1
- package/dist/composition/graph-viz.js +189 -6
- package/dist/composition/graph-viz.js.map +1 -1
- package/dist/composition/identifiability.js.map +1 -1
- package/dist/composition/index.d.ts +4 -2
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +2 -1
- package/dist/composition/index.js.map +1 -1
- package/dist/composition/poster-source.d.ts +153 -0
- package/dist/composition/poster-source.d.ts.map +1 -0
- package/dist/composition/poster-source.js +183 -0
- package/dist/composition/poster-source.js.map +1 -0
- package/dist/composition/probe/backend-protocol.d.ts +34 -1
- package/dist/composition/probe/backend-protocol.d.ts.map +1 -1
- package/dist/composition/probe/backend-protocol.js +9 -2
- package/dist/composition/probe/backend-protocol.js.map +1 -1
- package/dist/composition/probe/candidate-store.d.ts.map +1 -1
- package/dist/composition/probe/limits.js.map +1 -1
- package/dist/composition/probe/pipeline.js.map +1 -1
- package/dist/composition/probe/problem.js.map +1 -1
- package/dist/composition/probe/residual.d.ts.map +1 -1
- package/dist/composition/probe/residual.js.map +1 -1
- package/dist/composition/probe/search-budget.js.map +1 -1
- package/dist/composition/proposed-bridges.d.ts +2 -2
- package/dist/composition/proposed-bridges.d.ts.map +1 -1
- package/dist/composition/proposed-bridges.js +1 -1
- package/dist/composition/proposed-bridges.js.map +1 -1
- package/dist/composition/retrodiction.js.map +1 -1
- package/dist/composition/uncertainty.d.ts +52 -2
- package/dist/composition/uncertainty.d.ts.map +1 -1
- package/dist/composition/uncertainty.js +38 -2
- package/dist/composition/uncertainty.js.map +1 -1
- package/dist/composition/user-equation.d.ts.map +1 -1
- package/dist/core/flux-rules.d.ts.map +1 -1
- package/dist/core/flux-rules.js.map +1 -1
- package/dist/core/labeled-tensor.d.ts.map +1 -1
- package/dist/core/regime-registry.d.ts.map +1 -1
- package/dist/core/regime-rule-install.js.map +1 -1
- package/dist/core/tensor.d.ts.map +1 -1
- package/dist/core/tensor.js.map +1 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/diff/bridge-ast-gradient.js.map +1 -1
- package/dist/dimensional/ast-types.d.ts +31 -1
- package/dist/dimensional/ast-types.d.ts.map +1 -1
- package/dist/dimensional/bridge-check.d.ts +1 -1
- package/dist/dimensional/bridge-check.js +1 -1
- package/dist/dimensional/buckingham.d.ts.map +1 -1
- package/dist/dimensional/connection.d.ts +2 -0
- package/dist/dimensional/connection.d.ts.map +1 -1
- package/dist/dimensional/connection.js +2 -0
- package/dist/dimensional/connection.js.map +1 -1
- package/dist/dimensional/curvature-composite.d.ts +5 -3
- package/dist/dimensional/curvature-composite.d.ts.map +1 -1
- package/dist/dimensional/curvature-composite.js +1 -0
- package/dist/dimensional/curvature-composite.js.map +1 -1
- package/dist/dimensional/curvature-invariants.d.ts +2 -0
- package/dist/dimensional/curvature-invariants.d.ts.map +1 -1
- package/dist/dimensional/curvature-invariants.js +2 -0
- package/dist/dimensional/curvature-invariants.js.map +1 -1
- package/dist/dimensional/dimension-spec.d.ts.map +1 -1
- package/dist/dimensional/einstein-equation.d.ts +3 -3
- package/dist/dimensional/einstein-equation.js +3 -3
- package/dist/dimensional/errors.d.ts.map +1 -1
- package/dist/dimensional/metric.d.ts +5 -2
- package/dist/dimensional/metric.d.ts.map +1 -1
- package/dist/dimensional/metric.js +5 -2
- package/dist/dimensional/metric.js.map +1 -1
- package/dist/dimensional/tensor-trace.js.map +1 -1
- package/dist/dimensional/validator-registry.js.map +1 -1
- package/dist/dimensional/validator.d.ts +3 -2
- package/dist/dimensional/validator.d.ts.map +1 -1
- package/dist/dimensional/validator.js +23 -4
- package/dist/dimensional/validator.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +104 -0
- package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
- package/dist/numerical/errors.d.ts.map +1 -1
- package/dist/numerical/errors.js.map +1 -1
- package/dist/numerical/float64-engine.d.ts.map +1 -1
- package/dist/numerical/float64-engine.js +51 -24
- package/dist/numerical/float64-engine.js.map +1 -1
- package/dist/numerical/formula-dimension.d.ts.map +1 -1
- package/dist/numerical/formula-dimension.js.map +1 -1
- package/dist/numerical/formula.d.ts.map +1 -1
- package/dist/numerical/formula.js.map +1 -1
- package/dist/numerical/geometrized.d.ts.map +1 -1
- package/dist/numerical/gl4-integrator.d.ts +3 -3
- package/dist/numerical/gl4-integrator.js +3 -3
- package/dist/numerical/killing.d.ts +47 -5
- package/dist/numerical/killing.d.ts.map +1 -1
- package/dist/numerical/killing.js +41 -3
- package/dist/numerical/killing.js.map +1 -1
- package/dist/numerical/klein-gordon.d.ts +2 -2
- package/dist/numerical/klein-gordon.js +2 -2
- package/dist/numerical/lowering.d.ts +2 -2
- package/dist/numerical/lowering.d.ts.map +1 -1
- package/dist/numerical/lowering.js +5 -3
- package/dist/numerical/lowering.js.map +1 -1
- package/dist/numerical/mathts-engine.d.ts.map +1 -1
- package/dist/numerical/mathts-engine.js.map +1 -1
- package/dist/numerical/metric-inverse.js.map +1 -1
- package/dist/numerical/perihelion-finder.d.ts +15 -13
- package/dist/numerical/perihelion-finder.d.ts.map +1 -1
- package/dist/numerical/perihelion-finder.js +15 -13
- package/dist/numerical/perihelion-finder.js.map +1 -1
- package/dist/numerical/weyl-lowering.d.ts.map +1 -1
- package/dist/numerical/weyl-lowering.js +90 -40
- package/dist/numerical/weyl-lowering.js.map +1 -1
- package/package.json +121 -104
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"witness-result.d.ts","sourceRoot":"","sources":["../../src/atlas/witness-result.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB;AAC1B,kEAAkE;AAChE,aAAa;AACf,8DAA8D;GAC5D,SAAS;AACX,yDAAyD;GACvD,aAAa;AACf,qEAAqE;GACnE,gBAAgB;AAClB,sEAAsE;GACpE,gBAAgB,CAAC;AAErB,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,SAAS,gBAAgB,EAAE,GACnC,WAAW,CAAC,MAAM,CAAC,CAErB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Phase 4, S4.2 — the shape a witness run reports.
|
|
3
|
+
*
|
|
4
|
+
* Design note: `docs/planning/Atlas-Phase-4-Design.md` §2.2.
|
|
5
|
+
*
|
|
6
|
+
* **The load-bearing distinction in this file: a check that DID NOT RUN is not
|
|
7
|
+
* a check that FAILED.** Peer absent, budget exhausted, and parser throw are
|
|
8
|
+
* all `'unresolved'`, each carrying the reason it could not answer. Only a
|
|
9
|
+
* check that COMPLETES and finds a disagreement is `'refuted'`.
|
|
10
|
+
*
|
|
11
|
+
* This repo has been bitten by exactly that conflation more than once — a
|
|
12
|
+
* checker that discarded its own stderr manufactured a false negative
|
|
13
|
+
* indistinguishable from a clean pass. Folding "could not run" into "failed"
|
|
14
|
+
* is the same defect with the sign flipped: it turns a missing optional peer
|
|
15
|
+
* into a refutation of the physics.
|
|
16
|
+
*
|
|
17
|
+
* Nothing here throws. A runner that threw would force every caller into a
|
|
18
|
+
* `try`/`catch` whose `catch` arm cannot tell which of the three outcomes it
|
|
19
|
+
* is looking at.
|
|
20
|
+
*
|
|
21
|
+
* @module atlas/witness-result
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* The ids of runs that CHECKED, as `deriveEvidence` wants its
|
|
26
|
+
* `passingWitnessIds` argument.
|
|
27
|
+
*
|
|
28
|
+
* A convenience with one purpose: keep the mapping from run results to
|
|
29
|
+
* "passing" in ONE place. Writing `results.filter(r => r.status !== 'refuted')`
|
|
30
|
+
* at a call site would hand `symbolically-checked` to every unresolved run —
|
|
31
|
+
* the free-tag defect `derive-evidence.ts` documents at length, reintroduced
|
|
32
|
+
* one layer up.
|
|
33
|
+
*
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
36
|
+
export function passingWitnessIds(results) {
|
|
37
|
+
return new Set(results.filter((r) => r.status === 'checked').map((r) => r.witnessId));
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=witness-result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"witness-result.js","sourceRoot":"","sources":["../../src/atlas/witness-result.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AA6CH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAoC;IAEpC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Phase 4, S4.3 — the EXECUTABLE witness registry.
|
|
3
|
+
*
|
|
4
|
+
* Design note: `docs/planning/Atlas-Phase-4-Design.md` §3.
|
|
5
|
+
*
|
|
6
|
+
* A `Witness` record names a check and the test file that runs it; it carries
|
|
7
|
+
* nothing a runner can execute. This module holds the executable form of every
|
|
8
|
+
* witness the results artifact covers, keyed by the record it supports. The
|
|
9
|
+
* Lead-run `scripts/emit-witness-results.mjs` runs exactly this list, and
|
|
10
|
+
* `tests/atlas/witness-results.test.ts` deep-equals the committed artifact
|
|
11
|
+
* against a fresh run of it.
|
|
12
|
+
*
|
|
13
|
+
* ## The symbolic specs apply the bridge's DICTIONARY, they do not restate it
|
|
14
|
+
*
|
|
15
|
+
* Writing `lhs` and `rhs` as two hand-typed ASTs that happen to be equal would
|
|
16
|
+
* check nothing but the typist. Each spec below starts from the PREMISE
|
|
17
|
+
* model's expression and pushes it through the bridge's variable dictionary
|
|
18
|
+
* with `substitute`; the CAS then has to show that the result equals the
|
|
19
|
+
* CONCLUSION model's expression. What is checked is the dictionary.
|
|
20
|
+
*
|
|
21
|
+
* @module atlas/witness-specs
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
import type { HeatFixture, LangevinFixture, SteadyStateFixture, WickFixture } from './diffusion/numerics.js';
|
|
25
|
+
import type { AcousticFixture, DalembertFixture, StringFixture } from './waves/numerics.js';
|
|
26
|
+
import type { NumericWitnessSpec } from './witness-numeric.js';
|
|
27
|
+
import type { SymbolicWitnessSpec } from './witness-symbolic.js';
|
|
28
|
+
/** A symbolic spec bound to the record it supports. @internal */
|
|
29
|
+
export interface RegisteredSymbolicWitness {
|
|
30
|
+
/** The `AtlasBridge.id` (or other record id) the witness belongs to. */
|
|
31
|
+
readonly recordId: string;
|
|
32
|
+
readonly kind: 'symbolic';
|
|
33
|
+
readonly spec: SymbolicWitnessSpec;
|
|
34
|
+
}
|
|
35
|
+
/** A numeric spec bound to the record it supports. @internal */
|
|
36
|
+
export interface RegisteredNumericWitness {
|
|
37
|
+
readonly recordId: string;
|
|
38
|
+
readonly kind: 'numeric';
|
|
39
|
+
readonly spec: NumericWitnessSpec;
|
|
40
|
+
}
|
|
41
|
+
/** One entry of the registry. @internal */
|
|
42
|
+
export type RegisteredWitness = RegisteredSymbolicWitness | RegisteredNumericWitness;
|
|
43
|
+
/** WD1 fixture: D and t, fixed while the walk is refined. @internal */
|
|
44
|
+
export declare const WD1_FIXTURE: {
|
|
45
|
+
readonly D: 0.5;
|
|
46
|
+
readonly t: 2;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* WD2 fixture. κ, ρ and c_p are chosen so the heat equation's own variables
|
|
50
|
+
* are all different from 1 while κ/(ρ c_p) = 1: a dictionary that dropped or
|
|
51
|
+
* inverted a factor would move the answer.
|
|
52
|
+
*
|
|
53
|
+
* @internal
|
|
54
|
+
*/
|
|
55
|
+
export declare const WD2_FIXTURE: HeatFixture;
|
|
56
|
+
/** WD3 fixture: an off-centre point, so no symmetry zeroes a derivative. @internal */
|
|
57
|
+
export declare const WD3_FIXTURE: WickFixture;
|
|
58
|
+
/** WS1 fixture: F and μ both ≠ 1 while c = √(F/μ) = 2. @internal */
|
|
59
|
+
export declare const WS1_FIXTURE: StringFixture;
|
|
60
|
+
/** WS2 fixture: an off-centre point where both profiles contribute. @internal */
|
|
61
|
+
export declare const WS2_FIXTURE: DalembertFixture;
|
|
62
|
+
/** WS3 fixture: γ = 1.4 with nondimensional p₀ = 1, ρ₀ = 1.2. @internal */
|
|
63
|
+
export declare const WS3_FIXTURE: AcousticFixture;
|
|
64
|
+
/** WS4 fixture: ω₀ = c = 1, base wavenumber k₀ = 10 (the domain edge ω₀/(ck) = 0.1). @internal */
|
|
65
|
+
export declare const WS4_FIXTURE: {
|
|
66
|
+
readonly omega0: 1;
|
|
67
|
+
readonly c: 1;
|
|
68
|
+
readonly k0: 10;
|
|
69
|
+
};
|
|
70
|
+
/** WD4 fixture: m, γ, k_BT all ≠ 1; τ_p = m/γ = 4. @internal */
|
|
71
|
+
export declare const WD4_FIXTURE: LangevinFixture;
|
|
72
|
+
/** WD6 base: τ₀ = 0.1 with D = q = 1, so ε = τ at the resolution's τ = τ₀/resolution. @internal */
|
|
73
|
+
export declare const WD6_FIXTURE: {
|
|
74
|
+
readonly tau0: 0.1;
|
|
75
|
+
readonly D: 1;
|
|
76
|
+
readonly q: 1;
|
|
77
|
+
};
|
|
78
|
+
/** WD7 base: ε = 25 · resolution with D = q = 1. @internal */
|
|
79
|
+
export declare const WD7_FIXTURE: {
|
|
80
|
+
readonly eps0: 25;
|
|
81
|
+
readonly D: 1;
|
|
82
|
+
readonly q: 1;
|
|
83
|
+
};
|
|
84
|
+
/** WD8 fixture: a unit rod held at 2 and 5, base time 0.1 (Fourier number 0.1 per unit). @internal */
|
|
85
|
+
export declare const WD8_FIXTURE: SteadyStateFixture;
|
|
86
|
+
/** WS5 base: x₀ = ck/ω₀ = 0.1, halved per resolution step. @internal */
|
|
87
|
+
export declare const WS5_FIXTURE: {
|
|
88
|
+
readonly x0: 0.1;
|
|
89
|
+
};
|
|
90
|
+
/** WS6 fixture: c = 1, ω₀ = 2, t = 3; resolution = time steps. @internal */
|
|
91
|
+
export declare const WS6_FIXTURE: {
|
|
92
|
+
readonly c: 1;
|
|
93
|
+
readonly omega0: 2;
|
|
94
|
+
readonly tEnd: 3;
|
|
95
|
+
};
|
|
96
|
+
/** WS7 fixture: F = 100, μ = 0.01 (so √(F/μ) = 100), EI = 0.01, k₀ = 10 (β = 0.01 at res 1). @internal */
|
|
97
|
+
export declare const WS7_FIXTURE: {
|
|
98
|
+
readonly F: 100;
|
|
99
|
+
readonly mu: 0.01;
|
|
100
|
+
readonly EI: 0.01;
|
|
101
|
+
readonly k0: 10;
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Every witness the results artifact covers, in a fixed order (the artifact is
|
|
105
|
+
* emitted in this order, so reordering is a reviewable diff, not churn).
|
|
106
|
+
*
|
|
107
|
+
* @internal
|
|
108
|
+
*/
|
|
109
|
+
export declare const WITNESS_REGISTRY: readonly RegisteredWitness[];
|
|
110
|
+
//# sourceMappingURL=witness-specs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"witness-specs.d.ts","sourceRoot":"","sources":["../../src/atlas/witness-specs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAwBH,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,WAAW,EACZ,MAAM,yBAAyB,CAAC;AAajC,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,iEAAiE;AACjE,MAAM,WAAW,yBAAyB;IACxC,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;CACpC;AAED,gEAAgE;AAChE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;CACnC;AAED,2CAA2C;AAC3C,MAAM,MAAM,iBAAiB,GAAG,yBAAyB,GAAG,wBAAwB,CAAC;AA4CrF,uEAAuE;AACvE,eAAO,MAAM,WAAW;aAAK,CAAC,EAAE,GAAG;aAAE,CAAC,EAAE,CAAC;CAAW,CAAC;AAErD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,WAOzB,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,WAAW,EAAE,WAAoE,CAAC;AAU/F,oEAAoE;AACpE,eAAO,MAAM,WAAW,EAAE,aAAkD,CAAC;AAE7E,iFAAiF;AACjF,eAAO,MAAM,WAAW,EAAE,gBAAsD,CAAC;AAEjF,2EAA2E;AAC3E,eAAO,MAAM,WAAW,EAAE,eAA8D,CAAC;AAEzF,kGAAkG;AAClG,eAAO,MAAM,WAAW;aAAK,MAAM,EAAE,CAAC;aAAE,CAAC,EAAE,CAAC;aAAE,EAAE,EAAE,EAAE;CAAW,CAAC;AAIhE,gEAAgE;AAChE,eAAO,MAAM,WAAW,EAAE,eAA+C,CAAC;AAE1E,mGAAmG;AACnG,eAAO,MAAM,WAAW;aAAK,IAAI,EAAE,GAAG;aAAE,CAAC,EAAE,CAAC;aAAE,CAAC,EAAE,CAAC;CAAW,CAAC;AAE9D,8DAA8D;AAC9D,eAAO,MAAM,WAAW;aAAK,IAAI,EAAE,EAAE;aAAE,CAAC,EAAE,CAAC;aAAE,CAAC,EAAE,CAAC;CAAW,CAAC;AAE7D,sGAAsG;AACtG,eAAO,MAAM,WAAW,EAAE,kBAOzB,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,WAAW;aAAK,EAAE,EAAE,GAAG;CAAW,CAAC;AAEhD,4EAA4E;AAC5E,eAAO,MAAM,WAAW;aAAK,CAAC,EAAE,CAAC;aAAE,MAAM,EAAE,CAAC;aAAE,IAAI,EAAE,CAAC;CAAW,CAAC;AAEjE,0GAA0G;AAC1G,eAAO,MAAM,WAAW;aAAK,CAAC,EAAE,GAAG;aAAE,EAAE,EAAE,IAAI;aAAE,EAAE,EAAE,IAAI;aAAE,EAAE,EAAE,EAAE;CAAW,CAAC;AAQ3E;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,iBAAiB,EAwPxD,CAAC"}
|
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Phase 4, S4.3 — the EXECUTABLE witness registry.
|
|
3
|
+
*
|
|
4
|
+
* Design note: `docs/planning/Atlas-Phase-4-Design.md` §3.
|
|
5
|
+
*
|
|
6
|
+
* A `Witness` record names a check and the test file that runs it; it carries
|
|
7
|
+
* nothing a runner can execute. This module holds the executable form of every
|
|
8
|
+
* witness the results artifact covers, keyed by the record it supports. The
|
|
9
|
+
* Lead-run `scripts/emit-witness-results.mjs` runs exactly this list, and
|
|
10
|
+
* `tests/atlas/witness-results.test.ts` deep-equals the committed artifact
|
|
11
|
+
* against a fresh run of it.
|
|
12
|
+
*
|
|
13
|
+
* ## The symbolic specs apply the bridge's DICTIONARY, they do not restate it
|
|
14
|
+
*
|
|
15
|
+
* Writing `lhs` and `rhs` as two hand-typed ASTs that happen to be equal would
|
|
16
|
+
* check nothing but the typist. Each spec below starts from the PREMISE
|
|
17
|
+
* model's expression and pushes it through the bridge's variable dictionary
|
|
18
|
+
* with `substitute`; the CAS then has to show that the result equals the
|
|
19
|
+
* CONCLUSION model's expression. What is checked is the dictionary.
|
|
20
|
+
*
|
|
21
|
+
* @module atlas/witness-specs
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
import { sym } from '../dimensional/ast-builders.js';
|
|
25
|
+
import { DIMENSIONLESS, ENERGY, LENGTH, MASS } from '../dimensional/types.js';
|
|
26
|
+
import { substitute } from '../composition/expr-subst.js';
|
|
27
|
+
import { CAPACITANCE, DAMPING, INDUCTANCE, RESISTANCE, SPRING_CONSTANT, } from './oscillators/dimensions.js';
|
|
28
|
+
import { heatSteadyDeviation, langevinMsdRatio, telegraphSlowRateRatio, telegraphWaveFrequencyRatio, diffusionKernel, gaussianSpread, heatFtcsCentre, randomWalkCentralDensity, wickHeatResidual, } from './diffusion/numerics.js';
|
|
29
|
+
import { DENSITY, DIFFUSIVITY, SPECIFIC_HEAT, THERMAL_CONDUCTIVITY } from './diffusion/dimensions.js';
|
|
30
|
+
import { VISCOSITY } from './diffusion/models.js';
|
|
31
|
+
import { wickRotatedFreeKernel } from './witnesses/quantum-support.js';
|
|
32
|
+
import { kgNonrelativisticError, kgUniformModeValue, stiffStringPhaseVelocity, acousticLeapfrogQuarter, dalembertResidual, kleinGordonPhaseVelocity, stringLeapfrogMidpoint, } from './waves/numerics.js';
|
|
33
|
+
const op = (o, ...args) => ({
|
|
34
|
+
kind: 'op',
|
|
35
|
+
op: o,
|
|
36
|
+
args,
|
|
37
|
+
});
|
|
38
|
+
const n = (value) => sym(String(value), DIMENSIONLESS);
|
|
39
|
+
/**
|
|
40
|
+
* Push `expr` through a variable dictionary, REFUSING a mapping that matches no
|
|
41
|
+
* leaf. A zero-occurrence substitution is a silent no-op that would leave the
|
|
42
|
+
* premise variable in place and let the check pass or fail for the wrong
|
|
43
|
+
* reason — the same guard `composeSymbolic` applies (Adam A-3).
|
|
44
|
+
*/
|
|
45
|
+
function applyDictionary(expr, dictionary) {
|
|
46
|
+
let out = expr;
|
|
47
|
+
for (const [name, replacement] of Object.entries(dictionary)) {
|
|
48
|
+
const r = substitute(out, name, replacement);
|
|
49
|
+
if (r.count === 0) {
|
|
50
|
+
throw new Error(`witness-specs: dictionary entry '${name}' matches no leaf`);
|
|
51
|
+
}
|
|
52
|
+
out = r.expr;
|
|
53
|
+
}
|
|
54
|
+
return out;
|
|
55
|
+
}
|
|
56
|
+
// Spring and LC symbols, with the dimensions the oscillator models declare.
|
|
57
|
+
const m = sym('m', MASS);
|
|
58
|
+
const k = sym('k', SPRING_CONSTANT);
|
|
59
|
+
const b = sym('b', DAMPING);
|
|
60
|
+
const L = sym('L', INDUCTANCE);
|
|
61
|
+
const C = sym('C', CAPACITANCE);
|
|
62
|
+
const R = sym('R', RESISTANCE);
|
|
63
|
+
/** The spring ↔ circuit dictionary of `ab-spring-lc` / `ab-damped-rlc`: m ↔ L, k ↔ 1/C, b ↔ R. */
|
|
64
|
+
const SPRING_TO_CIRCUIT = {
|
|
65
|
+
m: L,
|
|
66
|
+
k: op('/', n(1), C),
|
|
67
|
+
b: R,
|
|
68
|
+
};
|
|
69
|
+
// ── Diffusion family (S4.4) ────────────────────────────────────────────────
|
|
70
|
+
/** WD1 fixture: D and t, fixed while the walk is refined. @internal */
|
|
71
|
+
export const WD1_FIXTURE = { D: 0.5, t: 2 };
|
|
72
|
+
/**
|
|
73
|
+
* WD2 fixture. κ, ρ and c_p are chosen so the heat equation's own variables
|
|
74
|
+
* are all different from 1 while κ/(ρ c_p) = 1: a dictionary that dropped or
|
|
75
|
+
* inverted a factor would move the answer.
|
|
76
|
+
*
|
|
77
|
+
* @internal
|
|
78
|
+
*/
|
|
79
|
+
export const WD2_FIXTURE = {
|
|
80
|
+
kappa: 2,
|
|
81
|
+
rho: 4,
|
|
82
|
+
cp: 0.5,
|
|
83
|
+
s0: 0.05,
|
|
84
|
+
tEnd: 0.2,
|
|
85
|
+
halfWidth: 4,
|
|
86
|
+
};
|
|
87
|
+
/** WD3 fixture: an off-centre point, so no symmetry zeroes a derivative. @internal */
|
|
88
|
+
export const WD3_FIXTURE = { hbar: 1, m: 0.5, s: 0.7, x: 0.3, tau: 0.4, h0: 0.1 };
|
|
89
|
+
const kappa = sym('kappa', THERMAL_CONDUCTIVITY);
|
|
90
|
+
const rho = sym('rho', DENSITY);
|
|
91
|
+
const cp = sym('cp', SPECIFIC_HEAT);
|
|
92
|
+
const D = sym('D', DIFFUSIVITY);
|
|
93
|
+
const q = sym('q', { ...LENGTH, L: -1 });
|
|
94
|
+
// ── Wave family (S4.5) ─────────────────────────────────────────────────────
|
|
95
|
+
/** WS1 fixture: F and μ both ≠ 1 while c = √(F/μ) = 2. @internal */
|
|
96
|
+
export const WS1_FIXTURE = { tension: 2, mu: 0.5, tEnd: 0.3 };
|
|
97
|
+
/** WS2 fixture: an off-centre point where both profiles contribute. @internal */
|
|
98
|
+
export const WS2_FIXTURE = { c: 1.5, x: 0.4, t: 0.3, h0: 0.1 };
|
|
99
|
+
/** WS3 fixture: γ = 1.4 with nondimensional p₀ = 1, ρ₀ = 1.2. @internal */
|
|
100
|
+
export const WS3_FIXTURE = { p0: 1, rho0: 1.2, gamma: 1.4, tEnd: 0.37 };
|
|
101
|
+
/** WS4 fixture: ω₀ = c = 1, base wavenumber k₀ = 10 (the domain edge ω₀/(ck) = 0.1). @internal */
|
|
102
|
+
export const WS4_FIXTURE = { omega0: 1, c: 1, k0: 10 };
|
|
103
|
+
// ── Sprint 4 closure ───────────────────────────────────────────────────────
|
|
104
|
+
/** WD4 fixture: m, γ, k_BT all ≠ 1; τ_p = m/γ = 4. @internal */
|
|
105
|
+
export const WD4_FIXTURE = { m: 2, gamma: 0.5, kT: 1.5 };
|
|
106
|
+
/** WD6 base: τ₀ = 0.1 with D = q = 1, so ε = τ at the resolution's τ = τ₀/resolution. @internal */
|
|
107
|
+
export const WD6_FIXTURE = { tau0: 0.1, D: 1, q: 1 };
|
|
108
|
+
/** WD7 base: ε = 25 · resolution with D = q = 1. @internal */
|
|
109
|
+
export const WD7_FIXTURE = { eps0: 25, D: 1, q: 1 };
|
|
110
|
+
/** WD8 fixture: a unit rod held at 2 and 5, base time 0.1 (Fourier number 0.1 per unit). @internal */
|
|
111
|
+
export const WD8_FIXTURE = {
|
|
112
|
+
alpha: 1,
|
|
113
|
+
ell: 1,
|
|
114
|
+
tLeft: 2,
|
|
115
|
+
tRight: 5,
|
|
116
|
+
t0: 0.1,
|
|
117
|
+
cells: 40,
|
|
118
|
+
};
|
|
119
|
+
/** WS5 base: x₀ = ck/ω₀ = 0.1, halved per resolution step. @internal */
|
|
120
|
+
export const WS5_FIXTURE = { x0: 0.1 };
|
|
121
|
+
/** WS6 fixture: c = 1, ω₀ = 2, t = 3; resolution = time steps. @internal */
|
|
122
|
+
export const WS6_FIXTURE = { c: 1, omega0: 2, tEnd: 3 };
|
|
123
|
+
/** WS7 fixture: F = 100, μ = 0.01 (so √(F/μ) = 100), EI = 0.01, k₀ = 10 (β = 0.01 at res 1). @internal */
|
|
124
|
+
export const WS7_FIXTURE = { F: 100, mu: 0.01, EI: 0.01, k0: 10 };
|
|
125
|
+
const kT = sym('kT', ENERGY);
|
|
126
|
+
const gammaSym = sym('gamma', DAMPING);
|
|
127
|
+
const eta = sym('eta', VISCOSITY);
|
|
128
|
+
const a = sym('a', LENGTH);
|
|
129
|
+
const pi = sym('pi', DIMENSIONLESS);
|
|
130
|
+
/**
|
|
131
|
+
* Every witness the results artifact covers, in a fixed order (the artifact is
|
|
132
|
+
* emitted in this order, so reordering is a reviewable diff, not churn).
|
|
133
|
+
*
|
|
134
|
+
* @internal
|
|
135
|
+
*/
|
|
136
|
+
export const WITNESS_REGISTRY = [
|
|
137
|
+
{
|
|
138
|
+
// ω0² of the spring, pushed through the dictionary, is ω0² of the LC circuit.
|
|
139
|
+
recordId: 'ab-spring-lc',
|
|
140
|
+
kind: 'symbolic',
|
|
141
|
+
spec: {
|
|
142
|
+
id: 'W1s',
|
|
143
|
+
lhs: applyDictionary(op('/', k, m), { m: SPRING_TO_CIRCUIT['m'], k: SPRING_TO_CIRCUIT['k'] }),
|
|
144
|
+
rhs: op('/', n(1), op('*', L, C)),
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
// ζ² of the damped spring, b²/(4mk), pushed through the dictionary, is ζ² of
|
|
149
|
+
// the RLC circuit, R²C/(4L). The squared form avoids a fractional exponent
|
|
150
|
+
// on a dimensioned base, which the grammar forbids.
|
|
151
|
+
recordId: 'ab-damped-rlc',
|
|
152
|
+
kind: 'symbolic',
|
|
153
|
+
spec: {
|
|
154
|
+
id: 'W2s',
|
|
155
|
+
lhs: applyDictionary(op('/', op('^', b, n(2)), op('*', n(4), m, k)), SPRING_TO_CIRCUIT),
|
|
156
|
+
rhs: op('/', op('*', op('^', R, n(2)), C), op('*', n(4), L)),
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
// Coarse-graining: the walk's density at the origin converges to the
|
|
161
|
+
// diffusion kernel as the closure D = Δx²/(2Δt) is held and Δt → 0.
|
|
162
|
+
recordId: 'ab-walk-diffusion',
|
|
163
|
+
kind: 'numeric',
|
|
164
|
+
spec: {
|
|
165
|
+
id: 'WD1',
|
|
166
|
+
evaluate: (steps) => randomWalkCentralDensity(steps, WD1_FIXTURE.D, WD1_FIXTURE.t),
|
|
167
|
+
target: diffusionKernel(0, WD1_FIXTURE.t, WD1_FIXTURE.D),
|
|
168
|
+
coarseResolution: 100,
|
|
169
|
+
fineResolution: 1000,
|
|
170
|
+
tolerance: 1e-4,
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
// Exact equivalence: the HEAT equation, solved in κ, ρ, c_p, reproduces the
|
|
175
|
+
// FICK solution with D = κ/(ρ c_p).
|
|
176
|
+
recordId: 'ab-heat-diffusion',
|
|
177
|
+
kind: 'numeric',
|
|
178
|
+
spec: {
|
|
179
|
+
id: 'WD2',
|
|
180
|
+
evaluate: (cells) => heatFtcsCentre(cells, WD2_FIXTURE),
|
|
181
|
+
target: gaussianSpread(0, WD2_FIXTURE.tEnd, WD2_FIXTURE.kappa / (WD2_FIXTURE.rho * WD2_FIXTURE.cp), WD2_FIXTURE.s0),
|
|
182
|
+
coarseResolution: 80,
|
|
183
|
+
fineResolution: 160,
|
|
184
|
+
tolerance: 5e-4,
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
// The heat side's Fourier-mode decay rate κq²/(ρ c_p), pushed through the
|
|
189
|
+
// inverse dictionary κ ↦ D ρ c_p, is the Fick side's D q².
|
|
190
|
+
recordId: 'ab-heat-diffusion',
|
|
191
|
+
kind: 'symbolic',
|
|
192
|
+
spec: {
|
|
193
|
+
id: 'WD2s',
|
|
194
|
+
lhs: applyDictionary(op('/', op('*', kappa, op('^', q, n(2))), op('*', rho, cp)), {
|
|
195
|
+
kappa: op('*', D, rho, cp),
|
|
196
|
+
}),
|
|
197
|
+
rhs: op('*', D, op('^', q, n(2))),
|
|
198
|
+
},
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
// Analytic continuation: the Wick-rotated free kernel satisfies the
|
|
202
|
+
// diffusion equation with D = ħ/(2m); the residual's target is zero.
|
|
203
|
+
recordId: 'ab-schrodinger-diffusion',
|
|
204
|
+
kind: 'numeric',
|
|
205
|
+
spec: {
|
|
206
|
+
id: 'WD3',
|
|
207
|
+
evaluate: (resolution) => wickHeatResidual(resolution, WD3_FIXTURE, wickRotatedFreeKernel),
|
|
208
|
+
target: 0,
|
|
209
|
+
coarseResolution: 1,
|
|
210
|
+
fineResolution: 4,
|
|
211
|
+
tolerance: 1e-3,
|
|
212
|
+
},
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
// Restriction: the string, solved in F and μ, reproduces the 1-D wave
|
|
216
|
+
// solution with c = √(F/μ).
|
|
217
|
+
recordId: 'ab-string-wave',
|
|
218
|
+
kind: 'numeric',
|
|
219
|
+
spec: {
|
|
220
|
+
id: 'WS1',
|
|
221
|
+
evaluate: (cells) => stringLeapfrogMidpoint(cells, WS1_FIXTURE),
|
|
222
|
+
target: Math.sin(Math.PI * 0.5) *
|
|
223
|
+
Math.cos(Math.PI * Math.sqrt(WS1_FIXTURE.tension / WS1_FIXTURE.mu) * WS1_FIXTURE.tEnd),
|
|
224
|
+
coarseResolution: 40,
|
|
225
|
+
fineResolution: 80,
|
|
226
|
+
tolerance: 2e-4,
|
|
227
|
+
},
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
// Derivation: d'Alembert's form satisfies the wave equation; residual → 0.
|
|
231
|
+
recordId: 'ab-wave-dalembert',
|
|
232
|
+
kind: 'numeric',
|
|
233
|
+
spec: {
|
|
234
|
+
id: 'WS2',
|
|
235
|
+
evaluate: (resolution) => dalembertResidual(resolution, WS2_FIXTURE),
|
|
236
|
+
target: 0,
|
|
237
|
+
coarseResolution: 4,
|
|
238
|
+
fineResolution: 8,
|
|
239
|
+
tolerance: 2e-3,
|
|
240
|
+
},
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
// Hyperedge: linearized Euler closed by the adiabatic EOS reproduces the
|
|
244
|
+
// sound model with c_s² = γp₀/ρ₀.
|
|
245
|
+
recordId: 'ab-sound-speed',
|
|
246
|
+
kind: 'numeric',
|
|
247
|
+
spec: {
|
|
248
|
+
id: 'WS3',
|
|
249
|
+
evaluate: (cells) => acousticLeapfrogQuarter(cells, WS3_FIXTURE),
|
|
250
|
+
target: Math.cos(2 * Math.PI * Math.sqrt((WS3_FIXTURE.gamma * WS3_FIXTURE.p0) / WS3_FIXTURE.rho0) * WS3_FIXTURE.tEnd),
|
|
251
|
+
coarseResolution: 64,
|
|
252
|
+
fineResolution: 128,
|
|
253
|
+
tolerance: 2e-4,
|
|
254
|
+
},
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
// Approximation: the Klein–Gordon phase velocity tends to c as k grows.
|
|
258
|
+
recordId: 'ab-klein-gordon-wave',
|
|
259
|
+
kind: 'numeric',
|
|
260
|
+
spec: {
|
|
261
|
+
id: 'WS4',
|
|
262
|
+
evaluate: (resolution) => kleinGordonPhaseVelocity(resolution, WS4_FIXTURE.omega0, WS4_FIXTURE.c, WS4_FIXTURE.k0),
|
|
263
|
+
target: WS4_FIXTURE.c,
|
|
264
|
+
coarseResolution: 1,
|
|
265
|
+
fineResolution: 2,
|
|
266
|
+
tolerance: 2e-3,
|
|
267
|
+
},
|
|
268
|
+
},
|
|
269
|
+
// ── Sprint 4 closure ─────────────────────────────────────────────────────
|
|
270
|
+
{
|
|
271
|
+
// Coarse-graining: Langevin second moments at t = resolution · τ_p, over 2Dt.
|
|
272
|
+
recordId: 'ab-langevin-diffusion',
|
|
273
|
+
kind: 'numeric',
|
|
274
|
+
spec: {
|
|
275
|
+
id: 'WD4',
|
|
276
|
+
evaluate: (resolution) => langevinMsdRatio(resolution, WD4_FIXTURE),
|
|
277
|
+
target: 1,
|
|
278
|
+
coarseResolution: 10,
|
|
279
|
+
fineResolution: 100,
|
|
280
|
+
tolerance: 0.02,
|
|
281
|
+
},
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
// Hyperedge: γ = 6πηa pushed into Einstein's D = k_BT/γ.
|
|
285
|
+
recordId: 'ab-stokes-einstein',
|
|
286
|
+
kind: 'symbolic',
|
|
287
|
+
spec: {
|
|
288
|
+
id: 'WD5s',
|
|
289
|
+
lhs: applyDictionary(op('/', kT, gammaSym), { gamma: op('*', n(6), pi, eta, a) }),
|
|
290
|
+
rhs: op('/', kT, op('*', n(6), pi, eta, a)),
|
|
291
|
+
},
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
// Singular limit τ → 0: the telegraph slow rate over Dq² tends to 1.
|
|
295
|
+
recordId: 'ab-telegraph-diffusion',
|
|
296
|
+
kind: 'numeric',
|
|
297
|
+
spec: {
|
|
298
|
+
id: 'WD6',
|
|
299
|
+
evaluate: (resolution) => telegraphSlowRateRatio(WD6_FIXTURE.tau0 / resolution, WD6_FIXTURE.D, WD6_FIXTURE.q),
|
|
300
|
+
target: 1,
|
|
301
|
+
coarseResolution: 2,
|
|
302
|
+
fineResolution: 4,
|
|
303
|
+
tolerance: 0.03,
|
|
304
|
+
},
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
// ε → ∞: the telegraph oscillation frequency over c q tends to 1.
|
|
308
|
+
recordId: 'ab-telegraph-wave',
|
|
309
|
+
kind: 'numeric',
|
|
310
|
+
spec: {
|
|
311
|
+
id: 'WD7',
|
|
312
|
+
evaluate: (resolution) => telegraphWaveFrequencyRatio(WD7_FIXTURE.eps0 * resolution, WD7_FIXTURE.D, WD7_FIXTURE.q),
|
|
313
|
+
target: 1,
|
|
314
|
+
coarseResolution: 1,
|
|
315
|
+
fineResolution: 2,
|
|
316
|
+
tolerance: 3e-3,
|
|
317
|
+
},
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
// Steady state: the heat solution's deviation from the Laplace profile → 0.
|
|
321
|
+
recordId: 'ab-heat-laplace',
|
|
322
|
+
kind: 'numeric',
|
|
323
|
+
spec: {
|
|
324
|
+
id: 'WD8',
|
|
325
|
+
evaluate: (resolution) => heatSteadyDeviation(resolution, WD8_FIXTURE),
|
|
326
|
+
target: 0,
|
|
327
|
+
coarseResolution: 2,
|
|
328
|
+
fineResolution: 4,
|
|
329
|
+
tolerance: 0.025,
|
|
330
|
+
},
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
// Non-relativistic limit: kinetic-frequency error → 0 as x = ck/ω₀ halves.
|
|
334
|
+
recordId: 'ab-kg-schrodinger',
|
|
335
|
+
kind: 'numeric',
|
|
336
|
+
spec: {
|
|
337
|
+
id: 'WS5',
|
|
338
|
+
evaluate: (resolution) => kgNonrelativisticError(WS5_FIXTURE.x0 / resolution),
|
|
339
|
+
target: 0,
|
|
340
|
+
coarseResolution: 1,
|
|
341
|
+
fineResolution: 2,
|
|
342
|
+
tolerance: 1e-3,
|
|
343
|
+
},
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
// Uniform-mode restriction: the full KG PDE, uniform data, vs cos(ω₀t).
|
|
347
|
+
recordId: 'ab-kg-oscillator',
|
|
348
|
+
kind: 'numeric',
|
|
349
|
+
spec: {
|
|
350
|
+
id: 'WS6',
|
|
351
|
+
evaluate: (steps) => kgUniformModeValue(steps, WS6_FIXTURE.c, WS6_FIXTURE.omega0, WS6_FIXTURE.tEnd),
|
|
352
|
+
target: Math.cos(WS6_FIXTURE.omega0 * WS6_FIXTURE.tEnd),
|
|
353
|
+
coarseResolution: 50,
|
|
354
|
+
fineResolution: 100,
|
|
355
|
+
tolerance: 3e-4,
|
|
356
|
+
},
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
// Flexible-string limit: stiff-string phase velocity → √(F/μ) as k shrinks.
|
|
360
|
+
recordId: 'ab-stiff-string',
|
|
361
|
+
kind: 'numeric',
|
|
362
|
+
spec: {
|
|
363
|
+
id: 'WS7',
|
|
364
|
+
evaluate: (resolution) => stiffStringPhaseVelocity(resolution, WS7_FIXTURE.F, WS7_FIXTURE.mu, WS7_FIXTURE.EI, WS7_FIXTURE.k0),
|
|
365
|
+
target: Math.sqrt(WS7_FIXTURE.F / WS7_FIXTURE.mu),
|
|
366
|
+
coarseResolution: 1,
|
|
367
|
+
fineResolution: 2,
|
|
368
|
+
tolerance: 0.15,
|
|
369
|
+
},
|
|
370
|
+
},
|
|
371
|
+
];
|
|
372
|
+
//# sourceMappingURL=witness-specs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"witness-specs.js","sourceRoot":"","sources":["../../src/atlas/witness-specs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EACL,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,eAAe,GAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,EAC3B,eAAe,EACf,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAOjC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAuB7B,MAAM,EAAE,GAAG,CAAC,CAA8B,EAAE,GAAG,IAAgB,EAAY,EAAE,CAAC,CAAC;IAC7E,IAAI,EAAE,IAAI;IACV,EAAE,EAAE,CAAC;IACL,IAAI;CACL,CAAC,CAAC;AACH,MAAM,CAAC,GAAG,CAAC,KAAa,EAAY,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC;AAEzE;;;;;GAKG;AACH,SAAS,eAAe,CAAC,IAAc,EAAE,UAA8C;IACrF,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,mBAAmB,CAAC,CAAC;QAC/E,CAAC;QACD,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;IACf,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACzB,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AACpC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC5B,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAC/B,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAChC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAE/B,kGAAkG;AAClG,MAAM,iBAAiB,GAAuC;IAC5D,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC,EAAE,CAAC;CACL,CAAC;AAEF,8EAA8E;AAE9E,uEAAuE;AACvE,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAW,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,GAAG;IACT,SAAS,EAAE,CAAC;CACb,CAAC;AAEF,sFAAsF;AACtF,MAAM,CAAC,MAAM,WAAW,GAAgB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;AAE/F,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;AACjD,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAChC,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACpC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAChC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAEzC,8EAA8E;AAE9E,oEAAoE;AACpE,MAAM,CAAC,MAAM,WAAW,GAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAE7E,iFAAiF;AACjF,MAAM,CAAC,MAAM,WAAW,GAAqB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;AAEjF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,WAAW,GAAoB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAEzF,kGAAkG;AAClG,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAW,CAAC;AAEhE,8EAA8E;AAE9E,gEAAgE;AAChE,MAAM,CAAC,MAAM,WAAW,GAAoB,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;AAE1E,mGAAmG;AACnG,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAW,CAAC;AAE9D,8DAA8D;AAC9D,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAW,CAAC;AAE7D,sGAAsG;AACtG,MAAM,CAAC,MAAM,WAAW,GAAuB;IAC7C,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,EAAE,EAAE,GAAG;IACP,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,wEAAwE;AACxE,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,EAAE,EAAE,GAAG,EAAW,CAAC;AAEhD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAW,CAAC;AAEjE,0GAA0G;AAC1G,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAW,CAAC;AAE3E,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACvC,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAClC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC3B,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAiC;IAC5D;QACE,8EAA8E;QAC9E,QAAQ,EAAE,cAAc;QACxB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK;YACT,GAAG,EAAE,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAE,EAAE,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAE,EAAE,CAAC;YAC/F,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SAClC;KACF;IACD;QACE,6EAA6E;QAC7E,2EAA2E;QAC3E,oDAAoD;QACpD,QAAQ,EAAE,eAAe;QACzB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK;YACT,GAAG,EAAE,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC;YACvF,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC7D;KACF;IACD;QACE,qEAAqE;QACrE,oEAAoE;QACpE,QAAQ,EAAE,mBAAmB;QAC7B,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;YAClF,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;YACxD,gBAAgB,EAAE,GAAG;YACrB,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,IAAI;SAChB;KACF;IACD;QACE,4EAA4E;QAC5E,oCAAoC;QACpC,QAAQ,EAAE,mBAAmB;QAC7B,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC;YACvD,MAAM,EAAE,cAAc,CACpB,CAAC,EACD,WAAW,CAAC,IAAI,EAChB,WAAW,CAAC,KAAK,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,EACtD,WAAW,CAAC,EAAE,CACf;YACD,gBAAgB,EAAE,EAAE;YACpB,cAAc,EAAE,GAAG;YACnB,SAAS,EAAE,IAAI;SAChB;KACF;IACD;QACE,0EAA0E;QAC1E,2DAA2D;QAC3D,QAAQ,EAAE,mBAAmB;QAC7B,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE;YACJ,EAAE,EAAE,MAAM;YACV,GAAG,EAAE,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE;gBAChF,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;aAC3B,CAAC;YACF,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAClC;KACF;IACD;QACE,oEAAoE;QACpE,qEAAqE;QACrE,QAAQ,EAAE,0BAA0B;QACpC,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,WAAW,EAAE,qBAAqB,CAAC;YAC1F,MAAM,EAAE,CAAC;YACT,gBAAgB,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC;YACjB,SAAS,EAAE,IAAI;SAChB;KACF;IACD;QACE,sEAAsE;QACtE,4BAA4B;QAC5B,QAAQ,EAAE,gBAAgB;QAC1B,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,EAAE,WAAW,CAAC;YAC/D,MAAM,EACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC;YACxF,gBAAgB,EAAE,EAAE;YACpB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB;KACF;IACD;QACE,2EAA2E;QAC3E,QAAQ,EAAE,mBAAmB;QAC7B,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC;YACpE,MAAM,EAAE,CAAC;YACT,gBAAgB,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC;YACjB,SAAS,EAAE,IAAI;SAChB;KACF;IACD;QACE,yEAAyE;QACzE,kCAAkC;QAClC,QAAQ,EAAE,gBAAgB;QAC1B,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,KAAK,EAAE,WAAW,CAAC;YAChE,MAAM,EAAE,IAAI,CAAC,GAAG,CACd,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CACpG;YACD,gBAAgB,EAAE,EAAE;YACpB,cAAc,EAAE,GAAG;YACnB,SAAS,EAAE,IAAI;SAChB;KACF;IACD;QACE,wEAAwE;QACxE,QAAQ,EAAE,sBAAsB;QAChC,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CACvB,wBAAwB,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;YACzF,MAAM,EAAE,WAAW,CAAC,CAAC;YACrB,gBAAgB,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC;YACjB,SAAS,EAAE,IAAI;SAChB;KACF;IACD,4EAA4E;IAC5E;QACE,8EAA8E;QAC9E,QAAQ,EAAE,uBAAuB;QACjC,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC;YACnE,MAAM,EAAE,CAAC;YACT,gBAAgB,EAAE,EAAE;YACpB,cAAc,EAAE,GAAG;YACnB,SAAS,EAAE,IAAI;SAChB;KACF;IACD;QACE,yDAAyD;QACzD,QAAQ,EAAE,oBAAoB;QAC9B,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE;YACJ,EAAE,EAAE,MAAM;YACV,GAAG,EAAE,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;YACjF,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;SAC5C;KACF;IACD;QACE,qEAAqE;QACrE,QAAQ,EAAE,wBAAwB;QAClC,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CACvB,sBAAsB,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;YACrF,MAAM,EAAE,CAAC;YACT,gBAAgB,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC;YACjB,SAAS,EAAE,IAAI;SAChB;KACF;IACD;QACE,kEAAkE;QAClE,QAAQ,EAAE,mBAAmB;QAC7B,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CACvB,2BAA2B,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;YAC1F,MAAM,EAAE,CAAC;YACT,gBAAgB,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC;YACjB,SAAS,EAAE,IAAI;SAChB;KACF;IACD;QACE,4EAA4E;QAC5E,QAAQ,EAAE,iBAAiB;QAC3B,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC;YACtE,MAAM,EAAE,CAAC;YACT,gBAAgB,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC;YACjB,SAAS,EAAE,KAAK;SACjB;KACF;IACD;QACE,2EAA2E;QAC3E,QAAQ,EAAE,mBAAmB;QAC7B,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,sBAAsB,CAAC,WAAW,CAAC,EAAE,GAAG,UAAU,CAAC;YAC7E,MAAM,EAAE,CAAC;YACT,gBAAgB,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC;YACjB,SAAS,EAAE,IAAI;SAChB;KACF;IACD;QACE,wEAAwE;QACxE,QAAQ,EAAE,kBAAkB;QAC5B,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,kBAAkB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC;YAChF,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC;YACvD,gBAAgB,EAAE,EAAE;YACpB,cAAc,EAAE,GAAG;YACnB,SAAS,EAAE,IAAI;SAChB;KACF;IACD;QACE,4EAA4E;QAC5E,QAAQ,EAAE,iBAAiB;QAC3B,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CACvB,wBAAwB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC;YACrG,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC;YACjD,gBAAgB,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC;YACjB,SAAS,EAAE,IAAI;SAChB;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Phase 4, S4.2 — the symbolic witness runner.
|
|
3
|
+
*
|
|
4
|
+
* Design note: `docs/planning/Atlas-Phase-4-Design.md` §2.
|
|
5
|
+
*
|
|
6
|
+
* A symbolic witness claims `lhs = rhs`. The runner forms the DIFFERENCE and
|
|
7
|
+
* asks the optional CAS peer to simplify it: a difference that collapses to a
|
|
8
|
+
* literal zero is `'checked'`; one that collapses to a non-zero literal is
|
|
9
|
+
* `'refuted'`; anything else is `'unresolved'` with the reason it could not
|
|
10
|
+
* decide.
|
|
11
|
+
*
|
|
12
|
+
* ## The simplifier is INJECTED, and no test touches the registry
|
|
13
|
+
*
|
|
14
|
+
* `src/numerical/formula-registry.ts` caches its selection in module scope and
|
|
15
|
+
* exposes no reset hook, so a test that registered a stub would leak it into
|
|
16
|
+
* every later test in the same worker. {@link runSymbolicWitness} therefore
|
|
17
|
+
* takes the simplifier as a PARAMETER, defaulting to `simplifyExpr`. Tests
|
|
18
|
+
* pass a stub for the present path and `null` for the absent path; the
|
|
19
|
+
* registry is never written. One test exercises the real peer under the
|
|
20
|
+
* existing skip-when-absent pattern.
|
|
21
|
+
*
|
|
22
|
+
* `null` means "the peer is absent" and is a first-class argument value, not a
|
|
23
|
+
* forgotten one. `simplifyExpr` itself CANNOT tell absence from "nothing to
|
|
24
|
+
* simplify" — both return `simplified: false` — so when the argument is
|
|
25
|
+
* OMITTED the runner asks `isSimplifierAvailable()` first and maps absence to
|
|
26
|
+
* `null`. Without that step the default path would report a missing peer as
|
|
27
|
+
* `'not-simplified'`, the wrong reason on the one path most callers take.
|
|
28
|
+
*
|
|
29
|
+
* Deviation from the plan's wording, recorded in the design note §2.1: the
|
|
30
|
+
* plan names `getFormulaParser()` as the default. A parser cannot decide
|
|
31
|
+
* `lhs − rhs = 0`; the capability needed is SIMPLIFICATION, which lives in
|
|
32
|
+
* `expr-simplify.ts` (a different peer, `@danielsimonjr/mathts-functions`).
|
|
33
|
+
*
|
|
34
|
+
* @module atlas/witness-symbolic
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
37
|
+
import type { ExprNode } from '../dimensional/ast-types.js';
|
|
38
|
+
import type { WitnessRunResult } from './witness-result.js';
|
|
39
|
+
/**
|
|
40
|
+
* The simplification capability this runner needs, as a function rather than
|
|
41
|
+
* the whole module — so a stub is five lines and cannot accidentally depend on
|
|
42
|
+
* anything else `expr-simplify.ts` exports.
|
|
43
|
+
*
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
export type SymbolicSimplifier = (expr: ExprNode) => Promise<{
|
|
47
|
+
readonly expr: ExprNode;
|
|
48
|
+
readonly simplified: boolean;
|
|
49
|
+
}>;
|
|
50
|
+
/** What a symbolic witness asserts. @internal */
|
|
51
|
+
export interface SymbolicWitnessSpec {
|
|
52
|
+
/** The `Witness.id` (`'W7b'`). */
|
|
53
|
+
readonly id: string;
|
|
54
|
+
readonly lhs: ExprNode;
|
|
55
|
+
readonly rhs: ExprNode;
|
|
56
|
+
/**
|
|
57
|
+
* Wall-clock budget in milliseconds. Default 5000.
|
|
58
|
+
*
|
|
59
|
+
* ⚠ **This bounds how long the RUNNER WAITS, not how long the CAS works.**
|
|
60
|
+
* The peer's `simplify` is synchronous inside its promise, so nothing here
|
|
61
|
+
* can interrupt it; a timeout reports that no answer arrived in time and the
|
|
62
|
+
* underlying work may still be running. Saying otherwise would be the
|
|
63
|
+
* "a running process is not a working one" error in reverse.
|
|
64
|
+
*/
|
|
65
|
+
readonly budgetMs?: number;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Run one symbolic witness.
|
|
69
|
+
*
|
|
70
|
+
* @param spec - the claim, as two ASTs whose difference should vanish.
|
|
71
|
+
* @param simplifier - the CAS capability, or `null` when the optional peer is
|
|
72
|
+
* absent. When omitted, resolves to `simplifyExpr` if the peer is available and
|
|
73
|
+
* to `null` otherwise. Pass `null` EXPLICITLY to exercise the absent path.
|
|
74
|
+
* @returns a result; **never throws**, because a thrown error forces callers
|
|
75
|
+
* into a `catch` that cannot distinguish "did not run" from "failed".
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
export declare function runSymbolicWitness(spec: SymbolicWitnessSpec, simplifier?: SymbolicSimplifier | null): Promise<WitnessRunResult>;
|
|
79
|
+
//# sourceMappingURL=witness-symbolic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"witness-symbolic.d.ts","sourceRoot":"","sources":["../../src/atlas/witness-symbolic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,IAAI,EAAE,QAAQ,KACX,OAAO,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAExE,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IAClC,kCAAkC;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAeD;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,mBAAmB,EACzB,UAAU,CAAC,EAAE,kBAAkB,GAAG,IAAI,GACrC,OAAO,CAAC,gBAAgB,CAAC,CAoF3B"}
|