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,365 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Phase 3 — the poster's sixteen entries, its five hidden supporting
|
|
3
|
+
* nodes, and the three conservation statements its edges conclude in.
|
|
4
|
+
*
|
|
5
|
+
* ## The one rule this module exists to obey
|
|
6
|
+
*
|
|
7
|
+
* **Blueprint v2's Appendix A is NOT in this repo.** `ROADMAP.md` Phase 3
|
|
8
|
+
* states the fifteen typed edge lines and the five hidden nodes in full, and
|
|
9
|
+
* it references the sixteen entries BY NUMBER in identifying context — but no
|
|
10
|
+
* file here maps number → name. Design note
|
|
11
|
+
* `docs/planning/Atlas-Phase-3-Design.md` §5 is explicit about what follows:
|
|
12
|
+
* *"Transcribe or derive each entry from a stated source; never invent one to
|
|
13
|
+
* fill a gap."*
|
|
14
|
+
*
|
|
15
|
+
* So every entry below carries an {@link Identification}, and it is a FIELD
|
|
16
|
+
* rather than a comment because a comment cannot be tested. Three values:
|
|
17
|
+
*
|
|
18
|
+
* - `'derived'` — the edge lines pin it. `10 → 9` restriction with *"separate
|
|
19
|
+
* frame content in 9"*, `11 → momentum conservation … converse fails … fails
|
|
20
|
+
* naively when fields carry momentum`: those three lines are Newton's
|
|
21
|
+
* second, first and third laws and nothing else.
|
|
22
|
+
* - `'partial'` — the lines pin a FAMILY but not the member. Entry 7 is a
|
|
23
|
+
* Maxwell equation (the line distinguishes it from *"the full Maxwell
|
|
24
|
+
* system"*, which is a hidden node — `never from 7 alone`), but which of the
|
|
25
|
+
* four it is, is not recoverable. Entry 5 is read here as `E = mc²`; see
|
|
26
|
+
* {@link POSTER_5_IDENTIFICATION_NOTE}.
|
|
27
|
+
* - `'unidentified'` — entries 3 and 14, which `ROADMAP.md` names exactly
|
|
28
|
+
* once, in `3, 14 → * association only`. Nothing there identifies them. They
|
|
29
|
+
* are recorded as placeholders WITH THEIR NUMBERS and no physics, because a
|
|
30
|
+
* plausible guess would be uncheckable, and an honest gap beats it.
|
|
31
|
+
*
|
|
32
|
+
* **The edges do not depend on any of this.** Every record in
|
|
33
|
+
* `./derivations.ts` and `./associations.ts` references entries by NUMBER, so
|
|
34
|
+
* a mis-identified NAME cannot corrupt an edge type. That separation is
|
|
35
|
+
* deliberate: the numbers come from a stated source, the names are an
|
|
36
|
+
* inference over it, and only one of them is load-bearing.
|
|
37
|
+
*
|
|
38
|
+
* ## `ast?` is absent everywhere here, on purpose
|
|
39
|
+
*
|
|
40
|
+
* `statement.ts` §1 already argues it: the hidden nodes are valuable because
|
|
41
|
+
* they are NAMED and LINKED, not evaluable, and requiring an `ast` would force
|
|
42
|
+
* a fabricated encoding. The same holds for the sixteen — this module records
|
|
43
|
+
* poster claims, not evaluable equations — so every statement here carries an
|
|
44
|
+
* honest `sourceExpression` and no `ast`, and {@link buildPosterRegistry}
|
|
45
|
+
* refuses one that carries an `ast` it cannot have earned.
|
|
46
|
+
*
|
|
47
|
+
* Pure: no I/O. Imports `../statement.js` and `../model.js` types only, so
|
|
48
|
+
* this module is a leaf under `src/atlas/` and closes no cycle.
|
|
49
|
+
*
|
|
50
|
+
* @module atlas/poster/statements
|
|
51
|
+
*/
|
|
52
|
+
/**
|
|
53
|
+
* The `ModelId` every poster statement carries.
|
|
54
|
+
*
|
|
55
|
+
* Phase 3 records a `Model` for the nine oscillator models and for nothing
|
|
56
|
+
* else. A poster entry has no state space, dynamics or parameter list in this
|
|
57
|
+
* repo, so every per-entry model id available here would be invented — and an
|
|
58
|
+
* invented `'model-newtonian-mechanics'` would read, to the next sprint,
|
|
59
|
+
* exactly like a model someone recorded.
|
|
60
|
+
*
|
|
61
|
+
* One shared sentinel instead, which says what is true: no model is recorded.
|
|
62
|
+
* `tests/atlas/poster-statements.test.ts` pins that no poster statement claims
|
|
63
|
+
* an oscillator model id.
|
|
64
|
+
*
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
export const POSTER_MODEL_UNRECORDED = 'model-poster-unrecorded';
|
|
68
|
+
/** What `3, 14 → *` puts in `sourceExpression`. Never a guess. @internal */
|
|
69
|
+
export const UNIDENTIFIED = 'UNIDENTIFIED';
|
|
70
|
+
/**
|
|
71
|
+
* Why entry 5 is `'partial'` and not `'derived'`.
|
|
72
|
+
*
|
|
73
|
+
* Two edge lines constrain it and they pull in different directions.
|
|
74
|
+
* `16 → 5, 10` is an approximation in `v/c` *"needing `E = γmc²`, `p = γmv`,
|
|
75
|
+
* `F = dp/dt`"*, which reads as `E = mc²` reached from `E = γmc²`.
|
|
76
|
+
* `5, 16 → 8 constrain but do not determine` is, in the usual telling, the
|
|
77
|
+
* Newtonian-limit-plus-special-relativity constraint on the field equations,
|
|
78
|
+
* which would make 5 Newton's law of universal gravitation.
|
|
79
|
+
*
|
|
80
|
+
* It cannot be both, and `8 → 12` — approximation then *"restriction to a
|
|
81
|
+
* point source"* — already lands on universal gravitation at 12. Two entries
|
|
82
|
+
* cannot be the same law, so 5 is read as `E = mc²` here. The reading is
|
|
83
|
+
* RECORDED rather than asserted: the entry stays `'partial'`, and no edge
|
|
84
|
+
* depends on it, because every edge references 5 by number.
|
|
85
|
+
*
|
|
86
|
+
* @internal
|
|
87
|
+
*/
|
|
88
|
+
export const POSTER_5_IDENTIFICATION_NOTE = "entry 5 is read as E = mc² because 8 → 12 already lands on universal gravitation at 12, " +
|
|
89
|
+
"so the alternative reading of '5, 16 → 8' (the Newtonian limit) would duplicate entry 12; " +
|
|
90
|
+
'no edge in this module depends on the reading — all fifteen reference entries by number';
|
|
91
|
+
/** Terse `Context` builder. `assumptions` is required; `excludes` defaults to none. */
|
|
92
|
+
function ctx(assumptions, over = {}) {
|
|
93
|
+
return { excludes: [], ...over, assumptions };
|
|
94
|
+
}
|
|
95
|
+
function entry(number, id, sourceExpression, display, context, identification = 'derived', note) {
|
|
96
|
+
return {
|
|
97
|
+
number,
|
|
98
|
+
identification,
|
|
99
|
+
...(note !== undefined ? { note } : {}),
|
|
100
|
+
statement: {
|
|
101
|
+
id,
|
|
102
|
+
context,
|
|
103
|
+
model: POSTER_MODEL_UNRECORDED,
|
|
104
|
+
sourceExpression,
|
|
105
|
+
display,
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* The sixteen poster entries, in poster order.
|
|
111
|
+
*
|
|
112
|
+
* Every `context.assumptions` is non-empty. Where `ROADMAP.md` states the
|
|
113
|
+
* qualification, it is used verbatim in substance: entry 11's *"fields carry
|
|
114
|
+
* no momentum"* (and the matching `excludes`, which is the one genuinely
|
|
115
|
+
* reachable context refusal in this data — see `./derivations.ts`), entry
|
|
116
|
+
* 13's `σ > 0`. Where it does not, the assumption is the standard statement
|
|
117
|
+
* of the entry's own validity and nothing more; none of them adds a claim.
|
|
118
|
+
*
|
|
119
|
+
* @internal
|
|
120
|
+
*/
|
|
121
|
+
export const POSTER_ENTRIES = [
|
|
122
|
+
entry(1, 'poster-1', 'dU = δQ − δW', 'First law of thermodynamics', ctx(['closed system', 'heat and work are defined for the process'], {
|
|
123
|
+
conventions: { heatWorkSign: 'Q-W' },
|
|
124
|
+
quantityTypes: ['energy'],
|
|
125
|
+
})),
|
|
126
|
+
entry(2, 'poster-2', 'S = k_B ln W', 'Boltzmann entropy', ctx(['isolated system', 'accessible microstates are equiprobable'], {
|
|
127
|
+
quantityTypes: ['entropy'],
|
|
128
|
+
})),
|
|
129
|
+
entry(3, 'poster-3', UNIDENTIFIED, 'Poster entry 3 (unidentified)', ctx(['unidentified: no source in this repo names this entry']), 'unidentified', "ROADMAP.md Phase 3 names entry 3 exactly once, in '3, 14 → * association only', " +
|
|
130
|
+
'which identifies nothing about it; Blueprint v2 Appendix A is not in this repo'),
|
|
131
|
+
entry(4, 'poster-4', 'σ_x σ_p ≥ ħ/2', 'Heisenberg uncertainty relation', ctx([
|
|
132
|
+
'canonical commutator [x, p] = iħ',
|
|
133
|
+
'the state lies in the domain of both operators',
|
|
134
|
+
])),
|
|
135
|
+
entry(5, 'poster-5', 'E = mc²', 'Mass–energy equivalence', ctx(['rest frame of the body', 'isolated body'], { quantityTypes: ['energy', 'mass'] }), 'partial', POSTER_5_IDENTIFICATION_NOTE),
|
|
136
|
+
entry(6, 'poster-6', 'iħ ∂_t ψ = Ĥ ψ', 'Schrödinger equation', ctx(['non-relativistic', 'self-adjoint Hamiltonian', 'fixed Hilbert space'])),
|
|
137
|
+
entry(7, 'poster-7', `${UNIDENTIFIED} (one equation of the Maxwell set)`, 'A Maxwell equation (which one is unidentified)', ctx(['macroscopic electromagnetic fields', 'the stated unit system']), 'partial', "the '7 ↔ 16' line says the derivation route runs from 'the full Maxwell system' and " +
|
|
138
|
+
"'never from 7 alone', so entry 7 is ONE equation of the set; which of the four is not " +
|
|
139
|
+
'recoverable from any source in this repo. The full system is statement-maxwell-system.'),
|
|
140
|
+
entry(8, 'poster-8', 'G_μν + Λ g_μν = (8πG/c⁴) T_μν', 'Einstein field equations', ctx([
|
|
141
|
+
'pseudo-Riemannian spacetime',
|
|
142
|
+
'the stress-energy tensor is covariantly conserved',
|
|
143
|
+
], { conventions: { metricSignature: '-+++' } })),
|
|
144
|
+
entry(9, 'poster-9', 'net F = 0 ⇒ v constant', "Newton's first law", ctx(['an inertial frame', 'no net force'])),
|
|
145
|
+
entry(10, 'poster-10', 'F = m a', "Newton's second law", ctx(['an inertial frame', 'constant mass', 'v ≪ c'])),
|
|
146
|
+
entry(11, 'poster-11', 'F_12 = −F_21', "Newton's third law", ctx(['isolated particle system', 'fields carry no momentum'], {
|
|
147
|
+
// The one exclusion this data states, and ROADMAP.md states it:
|
|
148
|
+
// entry 11 "fails naively when fields carry momentum". The
|
|
149
|
+
// field-inclusive momentum statement ASSUMES the excluded string, so
|
|
150
|
+
// pooling the two is refused rather than silently merged.
|
|
151
|
+
excludes: ['fields carry momentum'],
|
|
152
|
+
})),
|
|
153
|
+
entry(12, 'poster-12', 'F = G m₁ m₂ / r²', 'Newtonian universal gravitation', ctx(['weak field', 'slow motion', 'point masses'])),
|
|
154
|
+
entry(13, 'poster-13', 'p(x) = (1/(σ√(2π))) exp(−(x−μ)²/(2σ²))', 'Normal (Gaussian) distribution', ctx(['σ > 0'])),
|
|
155
|
+
entry(14, 'poster-14', UNIDENTIFIED, 'Poster entry 14 (unidentified)', ctx(['unidentified: no source in this repo names this entry']), 'unidentified', "ROADMAP.md Phase 3 names entry 14 exactly once, in '3, 14 → * association only', " +
|
|
156
|
+
'which identifies nothing about it; Blueprint v2 Appendix A is not in this repo'),
|
|
157
|
+
entry(15, 'poster-15', 'ψ = c₁ψ₁ + c₂ψ₂ is a state whenever ψ₁, ψ₂ are', 'Superposition principle', ctx(['linear evolution equation', 'Hilbert-space kinematics'])),
|
|
158
|
+
entry(16, 'poster-16', "t' = γ(t − vx/c²), x' = γ(x − vt)", 'Lorentz transformation (special relativity)', ctx(['inertial frames', 'the speed of light is frame-independent', 'flat spacetime'], {
|
|
159
|
+
conventions: { metricSignature: '-+++' },
|
|
160
|
+
})),
|
|
161
|
+
];
|
|
162
|
+
/**
|
|
163
|
+
* The five hidden supporting nodes, named by `ROADMAP.md` Phase 3 and by no
|
|
164
|
+
* other source.
|
|
165
|
+
*
|
|
166
|
+
* They are the deliverable precisely as named — `docs/planning/Atlas-Phase-3-Design.md`
|
|
167
|
+
* §8 puts *"evaluating hidden supporting nodes"* explicitly out of scope — so
|
|
168
|
+
* each carries a prose `sourceExpression` and no `ast`.
|
|
169
|
+
*
|
|
170
|
+
* `statement-lorentz-group` is what the `7 ↔ 16` line calls *"spacetime
|
|
171
|
+
* structure"* in the hyperedge `{full Maxwell system, spacetime structure} →
|
|
172
|
+
* 16`. That identification is an inference: `ROADMAP.md` names exactly five
|
|
173
|
+
* hidden nodes and the Lorentz group is the only one of the five that can
|
|
174
|
+
* BE spacetime structure. It is recorded here rather than silently assumed,
|
|
175
|
+
* and `./derivations.ts` repeats it in the hyperedge's side conditions.
|
|
176
|
+
*
|
|
177
|
+
* @internal
|
|
178
|
+
*/
|
|
179
|
+
export const HIDDEN_NODES = [
|
|
180
|
+
{
|
|
181
|
+
id: 'statement-action-principle',
|
|
182
|
+
context: {
|
|
183
|
+
assumptions: ['a stated action functional', 'variations vanish on the boundary'],
|
|
184
|
+
excludes: [],
|
|
185
|
+
},
|
|
186
|
+
model: POSTER_MODEL_UNRECORDED,
|
|
187
|
+
sourceExpression: 'δS = 0',
|
|
188
|
+
display: 'Action principle (stationary action)',
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
id: 'statement-noether',
|
|
192
|
+
context: {
|
|
193
|
+
assumptions: [
|
|
194
|
+
'a continuous symmetry of a stated action',
|
|
195
|
+
'the action principle holds',
|
|
196
|
+
],
|
|
197
|
+
excludes: [],
|
|
198
|
+
},
|
|
199
|
+
model: POSTER_MODEL_UNRECORDED,
|
|
200
|
+
sourceExpression: 'a continuous symmetry of the action yields a conserved current',
|
|
201
|
+
display: "Noether's theorem",
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
id: 'statement-maxwell-system',
|
|
205
|
+
context: {
|
|
206
|
+
assumptions: ['all four equations taken together', 'the stated unit system'],
|
|
207
|
+
excludes: [],
|
|
208
|
+
},
|
|
209
|
+
model: POSTER_MODEL_UNRECORDED,
|
|
210
|
+
sourceExpression: 'the four Maxwell equations as one system',
|
|
211
|
+
display: 'The full Maxwell system',
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
id: 'statement-lorentz-group',
|
|
215
|
+
context: {
|
|
216
|
+
assumptions: ['flat spacetime', 'the speed of light is frame-independent'],
|
|
217
|
+
excludes: [],
|
|
218
|
+
},
|
|
219
|
+
model: POSTER_MODEL_UNRECORDED,
|
|
220
|
+
sourceExpression: 'the group of transformations preserving the Minkowski interval (the spacetime structure)',
|
|
221
|
+
display: 'The Lorentz group',
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
id: 'statement-central-limit-theorem',
|
|
225
|
+
context: {
|
|
226
|
+
assumptions: [
|
|
227
|
+
'independent, identically distributed summands',
|
|
228
|
+
'finite variance',
|
|
229
|
+
],
|
|
230
|
+
excludes: [],
|
|
231
|
+
},
|
|
232
|
+
model: POSTER_MODEL_UNRECORDED,
|
|
233
|
+
sourceExpression: 'the normalized sum of i.i.d. finite-variance terms converges in distribution to a normal law',
|
|
234
|
+
display: 'Central limit theorem',
|
|
235
|
+
},
|
|
236
|
+
];
|
|
237
|
+
/**
|
|
238
|
+
* The statements the poster's edges CONCLUDE in that are neither a numbered
|
|
239
|
+
* entry nor a hidden node.
|
|
240
|
+
*
|
|
241
|
+
* All three are named by `ROADMAP.md` Phase 3: *"`11 → momentum
|
|
242
|
+
* conservation`"*, *"the field-inclusive version"*, *"`1 ↔ energy
|
|
243
|
+
* conservation`"*. Nothing here is added beyond those names.
|
|
244
|
+
*
|
|
245
|
+
* The two momentum statements are SEPARATE records because the line says the
|
|
246
|
+
* particle version *"fails naively when fields carry momentum"*. One record
|
|
247
|
+
* carrying both readings would erase exactly the distinction the line draws,
|
|
248
|
+
* and it is the distinction that makes entry 11's `excludes` bite.
|
|
249
|
+
*
|
|
250
|
+
* @internal
|
|
251
|
+
*/
|
|
252
|
+
export const SUPPORTING_STATEMENTS = [
|
|
253
|
+
{
|
|
254
|
+
id: 'statement-momentum-conservation',
|
|
255
|
+
context: {
|
|
256
|
+
assumptions: ['isolated particle system', 'fields carry no momentum'],
|
|
257
|
+
excludes: ['fields carry momentum'],
|
|
258
|
+
},
|
|
259
|
+
model: POSTER_MODEL_UNRECORDED,
|
|
260
|
+
sourceExpression: 'Σ p_i is constant for an isolated particle system',
|
|
261
|
+
display: 'Momentum conservation (particles)',
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
id: 'statement-momentum-conservation-fields',
|
|
265
|
+
context: {
|
|
266
|
+
assumptions: [
|
|
267
|
+
'fields carry momentum',
|
|
268
|
+
'spatial translation symmetry of a stated action',
|
|
269
|
+
'stated boundary conditions',
|
|
270
|
+
],
|
|
271
|
+
excludes: [],
|
|
272
|
+
},
|
|
273
|
+
model: POSTER_MODEL_UNRECORDED,
|
|
274
|
+
sourceExpression: 'the total momentum of matter AND fields is constant',
|
|
275
|
+
display: 'Momentum conservation (field-inclusive)',
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
id: 'statement-energy-conservation',
|
|
279
|
+
context: {
|
|
280
|
+
assumptions: ['an autonomous model (no explicit time dependence)'],
|
|
281
|
+
excludes: [],
|
|
282
|
+
},
|
|
283
|
+
model: POSTER_MODEL_UNRECORDED,
|
|
284
|
+
sourceExpression: 'the conserved current of time-translation symmetry is constant',
|
|
285
|
+
display: 'Energy conservation',
|
|
286
|
+
},
|
|
287
|
+
];
|
|
288
|
+
/** Every statement this poster index defines, in a stable order. @internal */
|
|
289
|
+
export const POSTER_ALL_STATEMENTS = [
|
|
290
|
+
...POSTER_ENTRIES.map((e) => e.statement),
|
|
291
|
+
...HIDDEN_NODES,
|
|
292
|
+
...SUPPORTING_STATEMENTS,
|
|
293
|
+
];
|
|
294
|
+
/** Thrown by {@link buildPosterRegistry}. @internal */
|
|
295
|
+
export class PosterStatementError extends Error {
|
|
296
|
+
constructor(message) {
|
|
297
|
+
super(message);
|
|
298
|
+
this.name = 'PosterStatementError';
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* The registry `makeDerivation` and `statementContextUnion` resolve against,
|
|
303
|
+
* built through four checks.
|
|
304
|
+
*
|
|
305
|
+
* The checks run HERE, at construction, rather than only in a test, because
|
|
306
|
+
* `./derivations.ts` builds its records against this registry at module load:
|
|
307
|
+
* a defect that reaches the registry reaches every derivation before any test
|
|
308
|
+
* has a chance to look.
|
|
309
|
+
*
|
|
310
|
+
* 1. **No duplicate id.** A later duplicate would silently replace an earlier
|
|
311
|
+
* statement in the map, and the derivation that consumed it would carry the
|
|
312
|
+
* wrong context with no symptom.
|
|
313
|
+
* 2. **Non-empty `assumptions`.** The S3.3 requirement, and the reason a
|
|
314
|
+
* context can refuse at all: an empty one pools with anything.
|
|
315
|
+
* 3. **No `ast`.** Nothing in this module is evaluable (see the module note);
|
|
316
|
+
* an `ast` here could only have been fabricated.
|
|
317
|
+
* 4. **A non-`'derived'` entry states its `note`.** An unidentified entry
|
|
318
|
+
* without its reason is indistinguishable from an oversight.
|
|
319
|
+
*
|
|
320
|
+
* The two arguments exist so a TEST can drive these four checks with a
|
|
321
|
+
* defective index through THIS code path rather than a copy of it. A test that
|
|
322
|
+
* reimplements a guard in order to break it proves only that the copy works,
|
|
323
|
+
* which is the vacuous-pass shape the design note names; the copy and the
|
|
324
|
+
* original then drift with nothing reporting it.
|
|
325
|
+
*
|
|
326
|
+
* @throws PosterStatementError on any of the four.
|
|
327
|
+
* @internal
|
|
328
|
+
*/
|
|
329
|
+
export function buildPosterRegistry(statements = POSTER_ALL_STATEMENTS, entries = POSTER_ENTRIES) {
|
|
330
|
+
const map = new Map();
|
|
331
|
+
for (const s of statements) {
|
|
332
|
+
if (map.has(s.id)) {
|
|
333
|
+
throw new PosterStatementError(`duplicate statement id '${s.id}'; the later record would silently replace the earlier`);
|
|
334
|
+
}
|
|
335
|
+
if (s.context.assumptions.length === 0) {
|
|
336
|
+
throw new PosterStatementError(`statement '${s.id}' states no assumptions; every poster statement must state at least one`);
|
|
337
|
+
}
|
|
338
|
+
if (s.ast !== undefined) {
|
|
339
|
+
throw new PosterStatementError(`statement '${s.id}' carries an ast; poster statements are named and linked, never evaluated`);
|
|
340
|
+
}
|
|
341
|
+
map.set(s.id, s);
|
|
342
|
+
}
|
|
343
|
+
for (const e of entries) {
|
|
344
|
+
if (e.identification !== 'derived' && (e.note === undefined || e.note === '')) {
|
|
345
|
+
throw new PosterStatementError(`entry ${e.number} is '${e.identification}' but states no note; ` +
|
|
346
|
+
'an unpinned entry must say what is unresolved');
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
return map;
|
|
350
|
+
}
|
|
351
|
+
/** The built registry. @internal */
|
|
352
|
+
export const POSTER_REGISTRY = buildPosterRegistry();
|
|
353
|
+
/** The entry with this number. @throws RangeError when there is none. @internal */
|
|
354
|
+
export function posterEntry(number) {
|
|
355
|
+
const found = POSTER_ENTRIES.find((e) => e.number === number);
|
|
356
|
+
if (found === undefined) {
|
|
357
|
+
throw new RangeError(`posterEntry: no entry ${number}; the poster has 1–16`);
|
|
358
|
+
}
|
|
359
|
+
return found;
|
|
360
|
+
}
|
|
361
|
+
/** The statement id of entry `number` — `posterId(9) === 'poster-9'`. @internal */
|
|
362
|
+
export function posterId(number) {
|
|
363
|
+
return posterEntry(number).statement.id;
|
|
364
|
+
}
|
|
365
|
+
//# sourceMappingURL=statements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statements.js","sourceRoot":"","sources":["../../../src/atlas/poster/statements.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The PUBLIC atlas surface — reached as the `atlas` namespace of the package
|
|
3
|
+
* root (`import { atlas } from 'universal-physics-tensor'`).
|
|
4
|
+
*
|
|
5
|
+
* This file is the SINGLE list of what is public. Nothing else states the set
|
|
6
|
+
* or its size: the tests derive both from the re-exports below. Decision and
|
|
7
|
+
* criteria: `docs/planning/Atlas-API-Review.md` (Tier 1 — contracts unchanged
|
|
8
|
+
* across Sprints 4–6, independently tested, no repository coupling, and CLOSED
|
|
9
|
+
* under type references: no public type may name a non-public one).
|
|
10
|
+
*
|
|
11
|
+
* The full `@internal` surface stays on the `universal-physics-tensor/atlas`
|
|
12
|
+
* subpath. Every symbol below is tagged `@public` where it is declared;
|
|
13
|
+
* `tests/api/namespace-facade-invariant.test.ts` fails otherwise.
|
|
14
|
+
*
|
|
15
|
+
* @module atlas/public
|
|
16
|
+
*/
|
|
17
|
+
export type { ApproximationBound, AtlasRejection, Counterexample, EvidenceTag, LimitCharacter, Regime, RegimeInequality, RelationType, Witness, } from './types.js';
|
|
18
|
+
export { MissingHorizonError, MissingLipschitzError } from './types.js';
|
|
19
|
+
export type { AtlasModel } from './model.js';
|
|
20
|
+
export { regimeHolds } from './regime.js';
|
|
21
|
+
export type { RegimeCheck } from './regime.js';
|
|
22
|
+
export { composeBoundPath, composeBounds, IDENTITY_BOUND } from './error-algebra.js';
|
|
23
|
+
export type { BoundPair, ComposedPath } from './error-algebra.js';
|
|
24
|
+
export { composeRelation, COMPOSITION_TABLE, NO_COMPOSITE_CLAIM } from './composition-table.js';
|
|
25
|
+
export type { CompositionResult, NoCompositeClaim } from './composition-table.js';
|
|
26
|
+
//# sourceMappingURL=public.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/atlas/public.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,WAAW,EACX,cAAc,EACd,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACrF,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAChG,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The PUBLIC atlas surface — reached as the `atlas` namespace of the package
|
|
3
|
+
* root (`import { atlas } from 'universal-physics-tensor'`).
|
|
4
|
+
*
|
|
5
|
+
* This file is the SINGLE list of what is public. Nothing else states the set
|
|
6
|
+
* or its size: the tests derive both from the re-exports below. Decision and
|
|
7
|
+
* criteria: `docs/planning/Atlas-API-Review.md` (Tier 1 — contracts unchanged
|
|
8
|
+
* across Sprints 4–6, independently tested, no repository coupling, and CLOSED
|
|
9
|
+
* under type references: no public type may name a non-public one).
|
|
10
|
+
*
|
|
11
|
+
* The full `@internal` surface stays on the `universal-physics-tensor/atlas`
|
|
12
|
+
* subpath. Every symbol below is tagged `@public` where it is declared;
|
|
13
|
+
* `tests/api/namespace-facade-invariant.test.ts` fails otherwise.
|
|
14
|
+
*
|
|
15
|
+
* @module atlas/public
|
|
16
|
+
*/
|
|
17
|
+
export { MissingHorizonError, MissingLipschitzError } from './types.js';
|
|
18
|
+
export { regimeHolds } from './regime.js';
|
|
19
|
+
export { composeBoundPath, composeBounds, IDENTITY_BOUND } from './error-algebra.js';
|
|
20
|
+
export { composeRelation, COMPOSITION_TABLE, NO_COMPOSITE_CLAIM } from './composition-table.js';
|
|
21
|
+
//# sourceMappingURL=public.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/atlas/public.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAaH,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Regime derivation — π-groups as the coordinates a regime is written in.
|
|
3
|
+
*
|
|
4
|
+
* Dimensionless inputs are passed INTO `buckinghamPi` as zero-dimension
|
|
5
|
+
* variables and come back as their own trivial groups, keyed by their own
|
|
6
|
+
* names in `PiGroup.formula`. Nothing is synthesized here. (Measured in
|
|
7
|
+
* design note §10 Q1 by executing `buckinghamPi`; the implementation plan's
|
|
8
|
+
* "plus one trivial group per dimensionless input" would double-add.)
|
|
9
|
+
*
|
|
10
|
+
* @module atlas/regime
|
|
11
|
+
*/
|
|
12
|
+
import type { DimensionalVariable, PiGroup } from '../dimensional/buckingham.js';
|
|
13
|
+
import type { AtlasBridge, Regime, RegimeInequality } from './types.js';
|
|
14
|
+
/**
|
|
15
|
+
* Derive the regime coordinates of a family, keyed by `PiGroup.formula`.
|
|
16
|
+
*
|
|
17
|
+
* A dimensionally-independent set has no groups and yields an empty record.
|
|
18
|
+
*
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
21
|
+
export declare function deriveRegimeGroups(family: string, parameters: readonly DimensionalVariable[], dimensionlessInputs: readonly string[]): Record<string, PiGroup>;
|
|
22
|
+
/**
|
|
23
|
+
* Result of {@link regimeHolds} — TRI-STATE, not a boolean.
|
|
24
|
+
*
|
|
25
|
+
* Design note §1, Adam A2 RED #2. The first draft of this rule returned a
|
|
26
|
+
* boolean and folded "could not check" into one of the two answers. Both
|
|
27
|
+
* foldings are wrong in a way that is invisible at the call site:
|
|
28
|
+
*
|
|
29
|
+
* - Folding absence into `true` is a SILENT PASS. A caller who supplies
|
|
30
|
+
* `{ Ma: 0.1 }` and never computes `Re` gets a confident "the regime
|
|
31
|
+
* holds" while `Re = 50` grossly violates it. The omission of the very
|
|
32
|
+
* data that would reveal the violation is what produces the pass.
|
|
33
|
+
* - Folding absence into `false` reports a VIOLATION that was never
|
|
34
|
+
* observed, which is a different false claim and destroys the caller's
|
|
35
|
+
* ability to tell "I measured this and it failed" from "I never measured
|
|
36
|
+
* this". Only the first licenses saying the regime is violated.
|
|
37
|
+
*
|
|
38
|
+
* So `ok` carries three answers and the two failure sets are kept apart.
|
|
39
|
+
*
|
|
40
|
+
* @public
|
|
41
|
+
*/
|
|
42
|
+
export interface RegimeCheck {
|
|
43
|
+
/**
|
|
44
|
+
* `true` — every inequality was CHECKED and satisfied.
|
|
45
|
+
* `false` — at least one was checked and VIOLATED.
|
|
46
|
+
* `'unknown'` — nothing was violated, but at least one could NOT be checked.
|
|
47
|
+
*
|
|
48
|
+
* `'unknown'` is a failure to confirm validity, NEVER validity. A caller
|
|
49
|
+
* asking "may I use this model here?" must test `=== true`; `!== false` is
|
|
50
|
+
* the silent pass this type exists to prevent.
|
|
51
|
+
*/
|
|
52
|
+
readonly ok: boolean | 'unknown';
|
|
53
|
+
/** CHECKED and violated — carried whole so the caller can name them. */
|
|
54
|
+
readonly violated: readonly RegimeInequality[];
|
|
55
|
+
/** NOT checked: the π-group value was absent or non-finite. */
|
|
56
|
+
readonly unchecked: readonly RegimeInequality[];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Check a regime against measured group values.
|
|
60
|
+
*
|
|
61
|
+
* A group with no supplied value, or a non-finite one, is UNCHECKED — not
|
|
62
|
+
* violated and not satisfied. See {@link RegimeCheck} for why the distinction
|
|
63
|
+
* is load-bearing. A regime with no inequalities returns `true`: there was
|
|
64
|
+
* nothing to check and nothing went unchecked, so the claim "every inequality
|
|
65
|
+
* was checked and satisfied" is vacuously true rather than unknown.
|
|
66
|
+
*
|
|
67
|
+
* A violation outranks an absence: once one inequality is CHECKED and fails,
|
|
68
|
+
* the regime does not hold, whatever the unmeasured coordinates would say.
|
|
69
|
+
*
|
|
70
|
+
* @public
|
|
71
|
+
*/
|
|
72
|
+
export declare function regimeHolds(regime: Regime, groupValues: Readonly<Record<string, number>>): RegimeCheck;
|
|
73
|
+
/**
|
|
74
|
+
* Merge two regimes into the regime that holds where BOTH hold.
|
|
75
|
+
*
|
|
76
|
+
* The conjunction is the whole operation: an inequality from either side is an
|
|
77
|
+
* inequality of the intersection, so the list is concatenated rather than
|
|
78
|
+
* reduced. No attempt is made to simplify `x < 1` and `x < 2` into one
|
|
79
|
+
* inequality — the redundant one is still true, and a simplifier that dropped
|
|
80
|
+
* the wrong one would be a silent change of claim.
|
|
81
|
+
*
|
|
82
|
+
* `groupDefinitions` are merged and CHECKED, not overwritten. Two regimes that
|
|
83
|
+
* key the same `PiGroup.formula` to different exponent vectors are not
|
|
84
|
+
* traceable to one dimension matrix, and quietly keeping one would hand the
|
|
85
|
+
* caller a regime whose group definitions no longer describe its inequalities.
|
|
86
|
+
*
|
|
87
|
+
* @throws Error if the families differ, or if a shared group name carries
|
|
88
|
+
* conflicting definitions.
|
|
89
|
+
* @internal
|
|
90
|
+
*/
|
|
91
|
+
export declare function intersectRegimes(a: Regime, b: Regime): Regime;
|
|
92
|
+
/** How two regimes sit relative to each other. @internal */
|
|
93
|
+
export type RegimeOverlap = 'disjoint' | 'overlap' | 'nested';
|
|
94
|
+
/**
|
|
95
|
+
* Classify two regimes on the group names they SHARE.
|
|
96
|
+
*
|
|
97
|
+
* Shared names only, and that restriction is the whole subtlety. A group one
|
|
98
|
+
* regime constrains and the other says nothing about cannot separate them:
|
|
99
|
+
* silence is not a constraint, so treating the unconstrained side as empty
|
|
100
|
+
* would report `'disjoint'` for two regimes that genuinely overlap. The answer
|
|
101
|
+
* is therefore about the shared coordinates, and says nothing about the
|
|
102
|
+
* private ones.
|
|
103
|
+
*
|
|
104
|
+
* - `'disjoint'` — some shared group has intervals that cannot both hold.
|
|
105
|
+
* - `'nested'` — the shared box of one regime contains the other (equal boxes,
|
|
106
|
+
* and the no-shared-group case, are nested: each contains the other).
|
|
107
|
+
* - `'overlap'` — they meet, and neither contains the other.
|
|
108
|
+
*
|
|
109
|
+
* @internal
|
|
110
|
+
*/
|
|
111
|
+
export declare function regimeOverlap(a: Regime, b: Regime): RegimeOverlap;
|
|
112
|
+
/** One grid cell of a sampled group box, and the regimes that cover it. @internal */
|
|
113
|
+
export interface RegionSample {
|
|
114
|
+
/** The π-group value at this cell, keyed by `PiGroup.formula`. */
|
|
115
|
+
readonly point: Readonly<Record<string, number>>;
|
|
116
|
+
/** Ids of the records whose regime returned `true` here. */
|
|
117
|
+
readonly coveredBy: readonly string[];
|
|
118
|
+
}
|
|
119
|
+
/** A record carrying a regime — `AtlasModel` and `AtlasBridge` both fit. @internal */
|
|
120
|
+
export interface RegimeBearing {
|
|
121
|
+
readonly id: string;
|
|
122
|
+
readonly regime: Regime;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Grid-sample a group box and list the cells no regime covers.
|
|
126
|
+
*
|
|
127
|
+
* `samples` IS the box: one explicit axis of values per π-group name. The box
|
|
128
|
+
* is not derived from the bounds the regimes themselves carry, and that is
|
|
129
|
+
* deliberate — a synthesized box would report coverage against an extent this
|
|
130
|
+
* library invented, so "uncovered" would measure the guess rather than the
|
|
131
|
+
* atlas. The caller states where it wants to know about.
|
|
132
|
+
*
|
|
133
|
+
* COVERED means some regime returned `true`. An `'unknown'` is NOT coverage,
|
|
134
|
+
* by the same rule that makes {@link regimeHolds} tri-state: a regime whose
|
|
135
|
+
* groups the sample axes never mention has not been shown to apply anywhere.
|
|
136
|
+
*
|
|
137
|
+
* Records of another family are skipped, so a mixed list is safe to pass.
|
|
138
|
+
*
|
|
139
|
+
* @internal
|
|
140
|
+
*/
|
|
141
|
+
export declare function uncoveredRegions(family: string, models: readonly RegimeBearing[], samples: Readonly<Record<string, readonly number[]>>): readonly RegionSample[];
|
|
142
|
+
/**
|
|
143
|
+
* Admit a bridge, refusing an approximation whose horizon is missing.
|
|
144
|
+
*
|
|
145
|
+
* The gate is at ADMISSION, matching the existing throw in `makeApproximation`,
|
|
146
|
+
* and for the same reason: a validator that runs "later" can be skipped, and an
|
|
147
|
+
* unhorizoned bound that reached the atlas would be a bound claiming to hold
|
|
148
|
+
* everywhere. The move-the-gate-to-use argument of design note §2 applies to
|
|
149
|
+
* `uniformity` — a field whose absence is a legitimate NOT-YET-ANALYSED state
|
|
150
|
+
* — and NOT to `horizon`, which `ApproximationBound` already mandates.
|
|
151
|
+
*
|
|
152
|
+
* Any relation may carry a `bound`; every bound present is checked, so a
|
|
153
|
+
* `coarse-graining` cannot smuggle in an unhorizoned one.
|
|
154
|
+
*
|
|
155
|
+
* @returns the bridge, unchanged, so this can wrap a record at its definition.
|
|
156
|
+
* The same argument applies to `deltaAt`, the machine form of `delta`, and is
|
|
157
|
+
* why it is checked here beside the horizon. `delta` alone is a single number
|
|
158
|
+
* for a whole domain: an implementer whose bound depends on a parameter can
|
|
159
|
+
* only freeze it at one point, and a frozen point reads exactly like a
|
|
160
|
+
* supremum. Requiring the machine form makes the dependence SAYABLE, so the
|
|
161
|
+
* scalar can be held to its stated meaning. It is required only of an
|
|
162
|
+
* `approximation`, matching `bound` itself; a `coarse-graining` may still
|
|
163
|
+
* carry a constant bound with no `deltaAt`.
|
|
164
|
+
*
|
|
165
|
+
* @throws MissingHorizonError if an `approximation` has no bound, or if a
|
|
166
|
+
* present bound has an empty `horizon` or no `horizonHolds`.
|
|
167
|
+
* @throws MissingDeltaAtError if an `approximation` bound has no `deltaAt`.
|
|
168
|
+
* @internal
|
|
169
|
+
*/
|
|
170
|
+
export declare function admitApproximation<T extends AtlasBridge>(bridge: T): T;
|
|
171
|
+
//# sourceMappingURL=regime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regime.d.ts","sourceRoot":"","sources":["../../src/atlas/regime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAGjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAExE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,SAAS,mBAAmB,EAAE,EAC1C,mBAAmB,EAAE,SAAS,MAAM,EAAE,GACrC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBzB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC/C,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACjD;AAeD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC5C,WAAW,CAab;AAID;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAsB7D;AAsFD,4DAA4D;AAC5D,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE9D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,CAWjE;AAED,qFAAqF;AACrF,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED,sFAAsF;AACtF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,GACnD,SAAS,YAAY,EAAE,CAUzB;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CA2BtE"}
|