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,268 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Routes through an atlas family, and the error bound a route carries.
|
|
3
|
+
*
|
|
4
|
+
* Two functions, and the second is the one that can do damage:
|
|
5
|
+
*
|
|
6
|
+
* - {@link findPath} is pure graph search. It answers "is there a chain of
|
|
7
|
+
* bridges from A to B", and nothing more. A path existing says NOTHING about
|
|
8
|
+
* whether that path supports a claim.
|
|
9
|
+
* - {@link boundPath} answers "what error bound does this chain carry", and its
|
|
10
|
+
* default answer is NO BOUND. `docs/planning/Atlas-Phase-2-Design.md` §3:
|
|
11
|
+
*
|
|
12
|
+
* > A path containing any edge whose relation composes to
|
|
13
|
+
* > `'no-composite-claim'` has NO bound. It must return an explicit no-claim,
|
|
14
|
+
* > never a number. A composed number over an undefined composite would be
|
|
15
|
+
* > the most dangerous output this library could produce: precise-looking and
|
|
16
|
+
* > unfounded.
|
|
17
|
+
*
|
|
18
|
+
* So {@link boundPath} returns a DISCRIMINATED UNION, not a number. A caller
|
|
19
|
+
* cannot read `.bound` off a no-claim, because a no-claim has no `.bound` — the
|
|
20
|
+
* refusal is enforced by the type rather than by a documented convention.
|
|
21
|
+
*
|
|
22
|
+
* ## Norms — why an exact edge does not compose for free
|
|
23
|
+
*
|
|
24
|
+
* `./error-algebra.ts` states the rule this module obeys, and it is narrower
|
|
25
|
+
* than it first reads:
|
|
26
|
+
*
|
|
27
|
+
* > An exact equivalence contributes `IDENTITY_BOUND` **in the norms these
|
|
28
|
+
* > Phase 0 bridges state** — not in every norm.
|
|
29
|
+
*
|
|
30
|
+
* An `exact-equivalence` bridge carries no `bound`, hence states no `norm`. It
|
|
31
|
+
* therefore contributes `IDENTITY_BOUND` in NO norm, and a path that mixes it
|
|
32
|
+
* with a normed bound cannot claim the composite holds in that norm. That is a
|
|
33
|
+
* `'norm-not-stated'` no-claim. The composed NUMBER would be unchanged —
|
|
34
|
+
* composing with the identity is arithmetically a no-op — which is exactly what
|
|
35
|
+
* makes the error invisible without this gate: the danger is not a wrong
|
|
36
|
+
* magnitude, it is a right magnitude attached to the wrong norm.
|
|
37
|
+
*
|
|
38
|
+
* ⚠ **Correction to the S2.2 brief.** The brief states that no field records a
|
|
39
|
+
* norm and that Phase 2 must add `norm?` to `ApproximationBound`. That is
|
|
40
|
+
* out of date: `ApproximationBound.norm` already exists as a MANDATORY
|
|
41
|
+
* `string` (Phase 0, `./types.ts`). No type change was needed, and this module
|
|
42
|
+
* reads the field that is already there.
|
|
43
|
+
*
|
|
44
|
+
* **Uniformity is gated here, at use.** `ApproximationBound.uniformity` may
|
|
45
|
+
* be `null` (or empty — the same state) so a real bound can be recorded
|
|
46
|
+
* before anyone has analysed what the error is uniform in. Composing such a
|
|
47
|
+
* bound would attach a number to an unanalysed claim, so {@link boundPath}
|
|
48
|
+
* returns `'uniformity-unanalysed'` and does not compute one.
|
|
49
|
+
* `propagateUncertainty` does not read the field and does not fold `delta`
|
|
50
|
+
* into `sigma`: it stays a statistical-sigma function.
|
|
51
|
+
*
|
|
52
|
+
* Pure: no I/O, no registry reads.
|
|
53
|
+
*
|
|
54
|
+
* @module atlas/path-bound
|
|
55
|
+
*/
|
|
56
|
+
import { composeBoundPath, IDENTITY_BOUND } from './error-algebra.js';
|
|
57
|
+
import { composeRelation, NO_COMPOSITE_CLAIM } from './composition-table.js';
|
|
58
|
+
import { ATLAS_FAMILIES } from './families.js';
|
|
59
|
+
/**
|
|
60
|
+
* Families {@link findPath} can search: every registered family. This was the
|
|
61
|
+
* oscillator family alone, which made the diffusion and wave families
|
|
62
|
+
* unsearchable once they existed. A route stays INSIDE one family: a bridge
|
|
63
|
+
* that ends in another family's model is not followed across (stated, not
|
|
64
|
+
* hidden — cross-family routes are out of this function's scope).
|
|
65
|
+
*
|
|
66
|
+
* @internal
|
|
67
|
+
*/
|
|
68
|
+
const FAMILIES = Object.fromEntries(ATLAS_FAMILIES.map((f) => [f.family, f]));
|
|
69
|
+
/** Expand a family's bridges into directed edges. Single-premise chains only. */
|
|
70
|
+
function directedEdges(family) {
|
|
71
|
+
const edges = [];
|
|
72
|
+
for (const bridge of family.bridges) {
|
|
73
|
+
// Sprint 2 scope: a multi-premise bridge is a JOIN, not a link in a chain,
|
|
74
|
+
// and is skipped rather than silently reduced to its first premise.
|
|
75
|
+
if (bridge.premises.length !== 1)
|
|
76
|
+
continue;
|
|
77
|
+
const from = bridge.premises[0];
|
|
78
|
+
edges.push({ from, to: bridge.conclusion, bridge });
|
|
79
|
+
if (bridge.relation === 'exact-equivalence') {
|
|
80
|
+
edges.push({ from: bridge.conclusion, to: from, bridge });
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return edges;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Shortest chain of bridges from `from` to `to`, or `null` if none exists.
|
|
87
|
+
*
|
|
88
|
+
* Breadth-first, so the result is a shortest path by edge count. Ties are
|
|
89
|
+
* broken by `family.bridges` order, which is the design note's order and is
|
|
90
|
+
* therefore stable across runs.
|
|
91
|
+
*
|
|
92
|
+
* A returned path is a ROUTE, not a warrant: ask {@link boundPath} what the
|
|
93
|
+
* route supports.
|
|
94
|
+
*
|
|
95
|
+
* @throws RangeError if `family` is not a known family, or an endpoint is not
|
|
96
|
+
* one of its models. An unknown endpoint returning `null` would be
|
|
97
|
+
* indistinguishable from a genuinely disconnected pair.
|
|
98
|
+
* @internal
|
|
99
|
+
*/
|
|
100
|
+
export function findPath(family, from, to) {
|
|
101
|
+
const fam = FAMILIES[family];
|
|
102
|
+
if (fam === undefined) {
|
|
103
|
+
throw new RangeError(`findPath: unknown family '${family}'`);
|
|
104
|
+
}
|
|
105
|
+
const models = new Set(fam.models.map((m) => m.id));
|
|
106
|
+
for (const endpoint of [from, to]) {
|
|
107
|
+
if (!models.has(endpoint)) {
|
|
108
|
+
throw new RangeError(`findPath: '${endpoint}' is not a model of family '${family}'`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (from === to)
|
|
112
|
+
return [];
|
|
113
|
+
const outgoing = new Map();
|
|
114
|
+
for (const edge of directedEdges(fam)) {
|
|
115
|
+
const bucket = outgoing.get(edge.from);
|
|
116
|
+
if (bucket === undefined)
|
|
117
|
+
outgoing.set(edge.from, [edge]);
|
|
118
|
+
else
|
|
119
|
+
bucket.push(edge);
|
|
120
|
+
}
|
|
121
|
+
const cameBy = new Map();
|
|
122
|
+
const seen = new Set([from]);
|
|
123
|
+
const queue = [from];
|
|
124
|
+
while (queue.length > 0) {
|
|
125
|
+
const node = queue.shift();
|
|
126
|
+
for (const edge of outgoing.get(node) ?? []) {
|
|
127
|
+
if (seen.has(edge.to))
|
|
128
|
+
continue;
|
|
129
|
+
seen.add(edge.to);
|
|
130
|
+
cameBy.set(edge.to, edge);
|
|
131
|
+
if (edge.to === to) {
|
|
132
|
+
const path = [];
|
|
133
|
+
for (let at = to; at !== from;) {
|
|
134
|
+
const step = cameBy.get(at);
|
|
135
|
+
path.unshift(step.bridge);
|
|
136
|
+
at = step.from;
|
|
137
|
+
}
|
|
138
|
+
return path;
|
|
139
|
+
}
|
|
140
|
+
queue.push(edge.to);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* The error bound a chain of bridges carries — or an explicit no-claim.
|
|
147
|
+
*
|
|
148
|
+
* Four gates, in this order. Each one is a reason to refuse, and the FIRST
|
|
149
|
+
* reason found is the one reported; none of them is skippable by a caller.
|
|
150
|
+
*
|
|
151
|
+
* 1. **Relation.** `composeRelation` is folded along the path. The moment the
|
|
152
|
+
* running composite is `'no-composite-claim'`, the path has no bound. This
|
|
153
|
+
* is design note §3 constraint 1 and it is checked before any arithmetic,
|
|
154
|
+
* so no number is ever computed for a path that cannot carry one.
|
|
155
|
+
* 2. **Uniformity.** Any bound whose `uniformity` is `null` or empty is not
|
|
156
|
+
* yet analysed. The path returns `'uniformity-unanalysed'` and no Lipschitz
|
|
157
|
+
* arithmetic runs. An edge with no `bound` — an exact equivalence, or an
|
|
158
|
+
* unbounded coarse-graining — does not fail this gate.
|
|
159
|
+
* 3. **Lipschitz.** `composeBoundPath` folds the per-edge pairs. A `null` — an
|
|
160
|
+
* edge that is neither bounded nor exact — is tolerated only as the LAST
|
|
161
|
+
* entry, where it terminates the claim (`terminal: true`); anywhere else it
|
|
162
|
+
* throws `MissingLipschitzError` rather than inventing a constant.
|
|
163
|
+
* 4. **Norm.** Every stated norm on the path must be the SAME norm, and no
|
|
164
|
+
* unnormed exact map may carry a normed claim. An `exact-equivalence`
|
|
165
|
+
* states no norm (it has no `bound`), so a path mixing one with a normed
|
|
166
|
+
* bound is `'norm-not-stated'` — see the module note.
|
|
167
|
+
*
|
|
168
|
+
* @throws RangeError on an empty path. Returning `IDENTITY_BOUND` for "no
|
|
169
|
+
* edges" would be a bound asserted about nothing.
|
|
170
|
+
* @throws MissingLipschitzError via {@link composeBoundPath}; see gate 3.
|
|
171
|
+
* @internal
|
|
172
|
+
*/
|
|
173
|
+
export function boundPath(bridges) {
|
|
174
|
+
if (bridges.length === 0) {
|
|
175
|
+
throw new RangeError('boundPath: an empty path composes nothing; there is no bound to state');
|
|
176
|
+
}
|
|
177
|
+
// ── Gate 1: the relation must compose all the way along ───────────────────
|
|
178
|
+
let relation = bridges[0].relation;
|
|
179
|
+
for (let i = 1; i < bridges.length; i++) {
|
|
180
|
+
const next = bridges[i];
|
|
181
|
+
// The loop RETURNS on the first silent cell, so `relation` is always a
|
|
182
|
+
// real `RelationType` here — no re-check is needed, and TypeScript proves
|
|
183
|
+
// it (a guard here is flagged as having no overlap).
|
|
184
|
+
relation = composeRelation(relation, next.relation);
|
|
185
|
+
if (relation === NO_COMPOSITE_CLAIM) {
|
|
186
|
+
return {
|
|
187
|
+
kind: 'no-claim',
|
|
188
|
+
reason: NO_COMPOSITE_CLAIM,
|
|
189
|
+
detail: `'${bridges[i - 1].id}' (${bridges[i - 1].relation}) then '${next.id}' ` +
|
|
190
|
+
`(${next.relation}) composes to no relation, so the path carries no bound`,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// ── Gate 2: an unanalysed uniformity yields no number ─────────────────────
|
|
195
|
+
// Before any Lipschitz arithmetic. `null` and `[]` are the same state: an
|
|
196
|
+
// empty list is a universal over nothing, and counting it as analysed is
|
|
197
|
+
// the convention-checked empty-object defect. An edge with no bound states
|
|
198
|
+
// no error, so it does not fail this gate.
|
|
199
|
+
for (const bridge of bridges) {
|
|
200
|
+
if (bridge.bound === undefined)
|
|
201
|
+
continue;
|
|
202
|
+
const uniformity = bridge.bound.uniformity;
|
|
203
|
+
if (uniformity === null || uniformity.length === 0) {
|
|
204
|
+
const how = uniformity === null ? 'null' : 'empty';
|
|
205
|
+
return {
|
|
206
|
+
kind: 'no-claim',
|
|
207
|
+
reason: 'uniformity-unanalysed',
|
|
208
|
+
detail: `'${bridge.id}' has uniformity ${how} (not yet analysed), so the path carries no numeric bound`,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
// ── Collect the per-edge pairs the remaining gates read ───────────────────
|
|
213
|
+
// What each edge contributes. The split that matters: an `exact-equivalence`
|
|
214
|
+
// with no `bound` is EXACT — it contributes `IDENTITY_BOUND`, not an unknown
|
|
215
|
+
// constant. Any OTHER relation with no bound has an unknown Lipschitz
|
|
216
|
+
// constant, and `null` is what says so. Conflating the two would either
|
|
217
|
+
// invent a constant for a lossy map or throw on an exact one.
|
|
218
|
+
const pairs = [];
|
|
219
|
+
const norms = new Set();
|
|
220
|
+
const unnormedIdentities = [];
|
|
221
|
+
for (const bridge of bridges) {
|
|
222
|
+
if (bridge.bound !== undefined) {
|
|
223
|
+
pairs.push({ K: bridge.bound.K, delta: bridge.bound.delta });
|
|
224
|
+
norms.add(bridge.bound.norm);
|
|
225
|
+
}
|
|
226
|
+
else if (bridge.relation === 'exact-equivalence') {
|
|
227
|
+
pairs.push(IDENTITY_BOUND);
|
|
228
|
+
unnormedIdentities.push(bridge.id);
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
pairs.push(null);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
// ── Gate 3: an unknown Lipschitz constant, anywhere but last, is fatal ────
|
|
235
|
+
// Delegated to `composeBoundPath`, which throws `MissingLipschitzError`
|
|
236
|
+
// rather than inventing a constant. Run BEFORE the norm gate: an unbounded
|
|
237
|
+
// composite is a harder failure than an unstatable norm, and reporting the
|
|
238
|
+
// softer one would mask it.
|
|
239
|
+
const composed = composeBoundPath(pairs);
|
|
240
|
+
// ── Gate 4: one norm, and no unnormed map carrying a normed claim ─────────
|
|
241
|
+
if (norms.size > 1) {
|
|
242
|
+
return {
|
|
243
|
+
kind: 'no-claim',
|
|
244
|
+
reason: 'norm-mismatch',
|
|
245
|
+
detail: `the path states ${norms.size} different norms (${[...norms].map((n) => `'${n}'`).join(', ')}); ` +
|
|
246
|
+
'bounds in different norms do not compose',
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
if (unnormedIdentities.length > 0 && norms.size > 0) {
|
|
250
|
+
return {
|
|
251
|
+
kind: 'no-claim',
|
|
252
|
+
reason: 'norm-not-stated',
|
|
253
|
+
detail: `${unnormedIdentities.map((id) => `'${id}'`).join(', ')} state no norm, so they ` +
|
|
254
|
+
`contribute IDENTITY_BOUND in no norm; the composite cannot be claimed in ` +
|
|
255
|
+
`'${[...norms][0]}'`,
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
return {
|
|
259
|
+
kind: 'bound',
|
|
260
|
+
bound: composed.bound,
|
|
261
|
+
terminal: composed.terminal,
|
|
262
|
+
relation,
|
|
263
|
+
norm: [...norms][0] ?? null,
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
/** Re-exported so a caller need not reach into the algebra module. @internal */
|
|
267
|
+
export { IDENTITY_BOUND };
|
|
268
|
+
//# sourceMappingURL=path-bound.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-bound.js","sourceRoot":"","sources":["../../src/atlas/path-bound.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Phase 3 — the poster's two association-only lines.
|
|
3
|
+
*
|
|
4
|
+
* An `Association` (`../association.ts`) records that two things SHARE
|
|
5
|
+
* something and asserts **no relation**, **no composite claim**, and **no
|
|
6
|
+
* graph edge**. `ROADMAP.md` Phase 3 puts exactly two of its fifteen lines in
|
|
7
|
+
* that category, and both are here:
|
|
8
|
+
*
|
|
9
|
+
* - **`7 ↔ 16` — the historical link ONLY.** `kind: 'historical-influence'`,
|
|
10
|
+
* which is the value that says "influence, not derivation". The derivation
|
|
11
|
+
* route to 16 exists and is recorded as a hyperedge from the FULL Maxwell
|
|
12
|
+
* system in `./derivations.ts`; this record exists so the resemblance
|
|
13
|
+
* between one Maxwell equation and special relativity stops being
|
|
14
|
+
* re-surfaced as if it were that route.
|
|
15
|
+
* - **`3, 14 → *` — association only.** The line states no target, so the
|
|
16
|
+
* target is recorded as {@link UNSPECIFIED_TARGET} rather than guessed. Two
|
|
17
|
+
* records, one per entry: the line says each of 3 and 14 is association-only,
|
|
18
|
+
* NOT that 3 and 14 are associated with each other — pairing them would be a
|
|
19
|
+
* claim no source makes.
|
|
20
|
+
*
|
|
21
|
+
* `kind` is assigned the way `../association.ts` insists: mechanically, from
|
|
22
|
+
* what the line says, never as a fresh per-pair physics judgement.
|
|
23
|
+
* `ASSOCIATIONS` in that module is seeded from the `'decoy'` adjudications and
|
|
24
|
+
* is pinned by test against the live ledger, so these records live here rather
|
|
25
|
+
* than being appended to it.
|
|
26
|
+
*
|
|
27
|
+
* @module atlas/poster/associations
|
|
28
|
+
*/
|
|
29
|
+
import type { Association } from '../association.js';
|
|
30
|
+
import type { StatementId } from '../statement.js';
|
|
31
|
+
/**
|
|
32
|
+
* The second member of a `3, 14 → *` association: the line's `*`, which names
|
|
33
|
+
* no target.
|
|
34
|
+
*
|
|
35
|
+
* A sentinel rather than a real id, because inventing a target would invent
|
|
36
|
+
* the association. Any consumer that draws these edges must treat it as "no
|
|
37
|
+
* target recorded" and not resolve it.
|
|
38
|
+
*
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
export declare const UNSPECIFIED_TARGET = "*";
|
|
42
|
+
/**
|
|
43
|
+
* The poster's association records.
|
|
44
|
+
*
|
|
45
|
+
* `citation` is `ROADMAP.md` with its Phase 3 section, because that is the
|
|
46
|
+
* source these came from — `../association.ts` requires the note's origin, and
|
|
47
|
+
* the adjudication ledger is not it.
|
|
48
|
+
*
|
|
49
|
+
* @internal
|
|
50
|
+
*/
|
|
51
|
+
export declare const POSTER_ASSOCIATIONS: readonly Association[];
|
|
52
|
+
/**
|
|
53
|
+
* Statement pairs that may NEVER appear as a derivation, in either direction.
|
|
54
|
+
*
|
|
55
|
+
* Derived from the records above rather than restated, so the guard and the
|
|
56
|
+
* data cannot drift apart: adding an association adds the prohibition.
|
|
57
|
+
* Pairs whose second member is {@link UNSPECIFIED_TARGET} are excluded —
|
|
58
|
+
* there is no second statement to forbid an edge to, and a sentinel in a
|
|
59
|
+
* pair-matcher would silently match nothing while looking like a guard.
|
|
60
|
+
*
|
|
61
|
+
* Consumed by `validatePosterRelations` in `./derivations.ts`.
|
|
62
|
+
*
|
|
63
|
+
* @internal
|
|
64
|
+
*/
|
|
65
|
+
export declare const ASSOCIATION_ONLY_PAIRS: readonly (readonly [StatementId, StatementId])[];
|
|
66
|
+
//# sourceMappingURL=associations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"associations.d.ts","sourceRoot":"","sources":["../../../src/atlas/poster/associations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,WAAW,EA6BrD,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAGhF,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Phase 3 — the poster's two association-only lines.
|
|
3
|
+
*
|
|
4
|
+
* An `Association` (`../association.ts`) records that two things SHARE
|
|
5
|
+
* something and asserts **no relation**, **no composite claim**, and **no
|
|
6
|
+
* graph edge**. `ROADMAP.md` Phase 3 puts exactly two of its fifteen lines in
|
|
7
|
+
* that category, and both are here:
|
|
8
|
+
*
|
|
9
|
+
* - **`7 ↔ 16` — the historical link ONLY.** `kind: 'historical-influence'`,
|
|
10
|
+
* which is the value that says "influence, not derivation". The derivation
|
|
11
|
+
* route to 16 exists and is recorded as a hyperedge from the FULL Maxwell
|
|
12
|
+
* system in `./derivations.ts`; this record exists so the resemblance
|
|
13
|
+
* between one Maxwell equation and special relativity stops being
|
|
14
|
+
* re-surfaced as if it were that route.
|
|
15
|
+
* - **`3, 14 → *` — association only.** The line states no target, so the
|
|
16
|
+
* target is recorded as {@link UNSPECIFIED_TARGET} rather than guessed. Two
|
|
17
|
+
* records, one per entry: the line says each of 3 and 14 is association-only,
|
|
18
|
+
* NOT that 3 and 14 are associated with each other — pairing them would be a
|
|
19
|
+
* claim no source makes.
|
|
20
|
+
*
|
|
21
|
+
* `kind` is assigned the way `../association.ts` insists: mechanically, from
|
|
22
|
+
* what the line says, never as a fresh per-pair physics judgement.
|
|
23
|
+
* `ASSOCIATIONS` in that module is seeded from the `'decoy'` adjudications and
|
|
24
|
+
* is pinned by test against the live ledger, so these records live here rather
|
|
25
|
+
* than being appended to it.
|
|
26
|
+
*
|
|
27
|
+
* @module atlas/poster/associations
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* The second member of a `3, 14 → *` association: the line's `*`, which names
|
|
31
|
+
* no target.
|
|
32
|
+
*
|
|
33
|
+
* A sentinel rather than a real id, because inventing a target would invent
|
|
34
|
+
* the association. Any consumer that draws these edges must treat it as "no
|
|
35
|
+
* target recorded" and not resolve it.
|
|
36
|
+
*
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
39
|
+
export const UNSPECIFIED_TARGET = '*';
|
|
40
|
+
/**
|
|
41
|
+
* The poster's association records.
|
|
42
|
+
*
|
|
43
|
+
* `citation` is `ROADMAP.md` with its Phase 3 section, because that is the
|
|
44
|
+
* source these came from — `../association.ts` requires the note's origin, and
|
|
45
|
+
* the adjudication ledger is not it.
|
|
46
|
+
*
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
export const POSTER_ASSOCIATIONS = [
|
|
50
|
+
{
|
|
51
|
+
id: 'a-7-16-historical',
|
|
52
|
+
kind: 'historical-influence',
|
|
53
|
+
between: ['poster-7', 'poster-16'],
|
|
54
|
+
note: 'Historical link only. Entry 7 influenced special relativity historically; it does ' +
|
|
55
|
+
'NOT derive it. The derivation route is the hyperedge {full Maxwell system, spacetime ' +
|
|
56
|
+
'structure} → 16, never from 7 alone.',
|
|
57
|
+
citation: 'ROADMAP.md § Phase 3 — Hyperedges, models, and the poster as a typed index',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
id: 'a-3-association-only',
|
|
61
|
+
kind: 'shared-structure',
|
|
62
|
+
between: ['poster-3', UNSPECIFIED_TARGET],
|
|
63
|
+
note: 'Association only. ROADMAP.md Phase 3 states "3, 14 → * association only" and names ' +
|
|
64
|
+
'no target; the target is recorded as unspecified rather than guessed.',
|
|
65
|
+
citation: 'ROADMAP.md § Phase 3 — Hyperedges, models, and the poster as a typed index',
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
id: 'a-14-association-only',
|
|
69
|
+
kind: 'shared-structure',
|
|
70
|
+
between: ['poster-14', UNSPECIFIED_TARGET],
|
|
71
|
+
note: 'Association only. ROADMAP.md Phase 3 states "3, 14 → * association only" and names ' +
|
|
72
|
+
'no target; the target is recorded as unspecified rather than guessed.',
|
|
73
|
+
citation: 'ROADMAP.md § Phase 3 — Hyperedges, models, and the poster as a typed index',
|
|
74
|
+
},
|
|
75
|
+
];
|
|
76
|
+
/**
|
|
77
|
+
* Statement pairs that may NEVER appear as a derivation, in either direction.
|
|
78
|
+
*
|
|
79
|
+
* Derived from the records above rather than restated, so the guard and the
|
|
80
|
+
* data cannot drift apart: adding an association adds the prohibition.
|
|
81
|
+
* Pairs whose second member is {@link UNSPECIFIED_TARGET} are excluded —
|
|
82
|
+
* there is no second statement to forbid an edge to, and a sentinel in a
|
|
83
|
+
* pair-matcher would silently match nothing while looking like a guard.
|
|
84
|
+
*
|
|
85
|
+
* Consumed by `validatePosterRelations` in `./derivations.ts`.
|
|
86
|
+
*
|
|
87
|
+
* @internal
|
|
88
|
+
*/
|
|
89
|
+
export const ASSOCIATION_ONLY_PAIRS = POSTER_ASSOCIATIONS.filter((a) => a.between[1] !== UNSPECIFIED_TARGET).map((a) => [a.between[0], a.between[1]]);
|
|
90
|
+
//# sourceMappingURL=associations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"associations.js","sourceRoot":"","sources":["../../../src/atlas/poster/associations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAKH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAEtC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACzD;QACE,EAAE,EAAE,mBAAmB;QACvB,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;QAClC,IAAI,EACF,oFAAoF;YACpF,uFAAuF;YACvF,sCAAsC;QACxC,QAAQ,EAAE,4EAA4E;KACvF;IACD;QACE,EAAE,EAAE,sBAAsB;QAC1B,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC;QACzC,IAAI,EACF,qFAAqF;YACrF,uEAAuE;QACzE,QAAQ,EAAE,4EAA4E;KACvF;IACD;QACE,EAAE,EAAE,uBAAuB;QAC3B,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,CAAC,WAAW,EAAE,kBAAkB,CAAC;QAC1C,IAAI,EACF,qFAAqF;YACrF,uEAAuE;QACzE,QAAQ,EAAE,4EAA4E;KACvF;CACF,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,sBAAsB,GACjC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,GAAG,CACxE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAU,CAC7C,CAAC"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Phase 3 — the poster's typed edges.
|
|
3
|
+
*
|
|
4
|
+
* `ROADMAP.md` Phase 3 states FIFTEEN bridge lines. This module records all
|
|
5
|
+
* fifteen, each in the container its type demands, and {@link POSTER_LINES} is
|
|
6
|
+
* the table that makes "all fifteen, correctly typed" a checkable claim rather
|
|
7
|
+
* than a reading of the source.
|
|
8
|
+
*
|
|
9
|
+
* ## Three containers, because the lines are three different acts
|
|
10
|
+
*
|
|
11
|
+
* - **{@link POSTER_DERIVATIONS}** — a `Derivation` asserts `premises ⊢
|
|
12
|
+
* conclusion`. Most lines are this.
|
|
13
|
+
* - **`./associations.ts`** — `7 ↔ 16` is an **association for the historical
|
|
14
|
+
* link only**, and `3, 14 → *` is association only. An `Association` makes
|
|
15
|
+
* no composite claim and is not a graph edge (`../association.ts`), which is
|
|
16
|
+
* exactly the content of those two lines.
|
|
17
|
+
* - **{@link POSTER_CONSTRAINTS}** — `5, 16 → 8` *"constrain but do not
|
|
18
|
+
* determine"*. Neither of the other two containers can say that. A
|
|
19
|
+
* `Derivation` would assert that 5 and 16 YIELD 8, which is the claim the
|
|
20
|
+
* line explicitly denies; an `Association` would say only that the three
|
|
21
|
+
* resemble each other, which drops the constraint. **This third container is
|
|
22
|
+
* a correction to the S3.3 brief**, which allows only derivations and
|
|
23
|
+
* associations; recording `5, 16 → 8` as a derivation would have been the
|
|
24
|
+
* overclaim the sprint exists to prevent. The variational route the line
|
|
25
|
+
* names — Einstein–Hilbert — IS a derivation, and it is recorded as one.
|
|
26
|
+
*
|
|
27
|
+
* ## One derivation has no premises, and that is the honest form
|
|
28
|
+
*
|
|
29
|
+
* `d-4-commutator` records the line *"`4` derivation from the commutator and
|
|
30
|
+
* Cauchy–Schwarz, no time-dependent equation needed"*. Its two inputs are not
|
|
31
|
+
* poster entries, and they are not among the five hidden nodes `ROADMAP.md`
|
|
32
|
+
* names. Inventing `statement-canonical-commutator` to fill the premise slot
|
|
33
|
+
* would be the invention §5 of the design note forbids, so the inputs are
|
|
34
|
+
* recorded as `sideConditions` and the premise set is empty. The empty set
|
|
35
|
+
* does not assert that entry 4 follows from nothing — `sideConditions` carries
|
|
36
|
+
* what it follows from — and {@link validatePosterRelations} pins that this is
|
|
37
|
+
* the ONLY empty-premise record, so a second one cannot appear unnoticed.
|
|
38
|
+
*
|
|
39
|
+
* ## Witnesses
|
|
40
|
+
*
|
|
41
|
+
* `Derivation` has no `witnesses` field (`../derivation.ts` is Wave 1's and is
|
|
42
|
+
* not mine to widen), so {@link POSTER_WITNESSES} is a side table keyed by
|
|
43
|
+
* derivation id. The two Sprint 0 witnesses land where `ROADMAP.md` puts them:
|
|
44
|
+
* W4 (chirped Gaussian) on `13 ↔ 4`, W5 (Wick rotation) on `6 ↔ 13`.
|
|
45
|
+
*
|
|
46
|
+
* @module atlas/poster/derivations
|
|
47
|
+
*/
|
|
48
|
+
import type { Derivation, DerivationId } from '../derivation.js';
|
|
49
|
+
import type { StatementId } from '../statement.js';
|
|
50
|
+
import type { Witness } from '../types.js';
|
|
51
|
+
/**
|
|
52
|
+
* `5, 16 → 8`: premises that CONSTRAIN a target without determining it.
|
|
53
|
+
*
|
|
54
|
+
* It has no `relation`, no `conclusion` and no context union, because it
|
|
55
|
+
* concludes nothing. `alternativeRoute` names what does determine the target,
|
|
56
|
+
* so the record cannot be read as "and nothing else does".
|
|
57
|
+
*
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
60
|
+
export interface PosterConstraint {
|
|
61
|
+
readonly id: string;
|
|
62
|
+
readonly premises: readonly StatementId[];
|
|
63
|
+
/** What the premises constrain. NOT a conclusion. */
|
|
64
|
+
readonly constrains: StatementId;
|
|
65
|
+
/** Why the premises fall short of determining it. */
|
|
66
|
+
readonly note: string;
|
|
67
|
+
/** The derivation id that DOES reach the target, when one is recorded. */
|
|
68
|
+
readonly alternativeRoute?: DerivationId;
|
|
69
|
+
}
|
|
70
|
+
/** Where a poster line is recorded. @internal */
|
|
71
|
+
export type LineContainer = 'derivation' | 'association' | 'constraint';
|
|
72
|
+
/**
|
|
73
|
+
* One of the fifteen `ROADMAP.md` Phase 3 bridge lines, and the records that
|
|
74
|
+
* carry it.
|
|
75
|
+
*
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
export interface PosterLine {
|
|
79
|
+
/** `'L1'` … `'L15'`, in the order `ROADMAP.md` lists them. */
|
|
80
|
+
readonly id: string;
|
|
81
|
+
/** The line as `ROADMAP.md` writes it, in substance. */
|
|
82
|
+
readonly line: string;
|
|
83
|
+
/** Every container this line lands in. */
|
|
84
|
+
readonly containers: readonly LineContainer[];
|
|
85
|
+
/** Ids of the records, across those containers. */
|
|
86
|
+
readonly records: readonly string[];
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* The poster's derivation hyperedges.
|
|
90
|
+
*
|
|
91
|
+
* Each `relation` is the type `ROADMAP.md` names for its line, and each
|
|
92
|
+
* `sideConditions` list carries that line's qualifications — including the
|
|
93
|
+
* ones that say what the edge does NOT give, because a qualification dropped
|
|
94
|
+
* here is a claim widened silently.
|
|
95
|
+
*
|
|
96
|
+
* @internal
|
|
97
|
+
*/
|
|
98
|
+
export declare const POSTER_DERIVATIONS: readonly Derivation[];
|
|
99
|
+
/**
|
|
100
|
+
* `5, 16 → 8` — the one line that asserts a constraint and denies a
|
|
101
|
+
* derivation. See the module note for why it gets its own container.
|
|
102
|
+
*
|
|
103
|
+
* @internal
|
|
104
|
+
*/
|
|
105
|
+
export declare const POSTER_CONSTRAINTS: readonly PosterConstraint[];
|
|
106
|
+
/**
|
|
107
|
+
* The Sprint 0 witnesses, attached where `ROADMAP.md` Phase 3 puts them.
|
|
108
|
+
*
|
|
109
|
+
* A side table rather than a field, because `Derivation` is Wave 1's record
|
|
110
|
+
* and widening it is not this brief's scope.
|
|
111
|
+
*
|
|
112
|
+
* @internal
|
|
113
|
+
*/
|
|
114
|
+
export declare const POSTER_WITNESSES: Readonly<Record<DerivationId, readonly Witness[]>>;
|
|
115
|
+
/**
|
|
116
|
+
* The fifteen lines, and where each one is recorded.
|
|
117
|
+
*
|
|
118
|
+
* The table is the deliverable "all fifteen, correctly typed" in checkable
|
|
119
|
+
* form: {@link validatePosterRelations} resolves every `records` id in every
|
|
120
|
+
* `containers` entry, so a line that lost its record, or a record that moved
|
|
121
|
+
* to the wrong container, is a failure rather than a reading.
|
|
122
|
+
*
|
|
123
|
+
* @internal
|
|
124
|
+
*/
|
|
125
|
+
export declare const POSTER_LINES: readonly PosterLine[];
|
|
126
|
+
/** One defect {@link validatePosterRelations} found. @internal */
|
|
127
|
+
export interface PosterProblem {
|
|
128
|
+
readonly kind: 'unknown-statement' | 'no-context-union' | 'association-typed-as-derivation' | 'missing-record' | 'wrong-container' | 'unexpected-empty-premises';
|
|
129
|
+
readonly detail: string;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Every defect this index can have that a type cannot catch.
|
|
133
|
+
*
|
|
134
|
+
* Six checks, and the third is the one the S3.3 brief singles out:
|
|
135
|
+
*
|
|
136
|
+
* 1. **Unknown statement.** Every premise and conclusion resolves in
|
|
137
|
+
* `POSTER_REGISTRY`.
|
|
138
|
+
* 2. **No context union.** A derivation whose premises do not pool states no
|
|
139
|
+
* claim; `makeDerivation` records that rather than throwing, so a record
|
|
140
|
+
* carrying a refusal would otherwise sit in the list looking like an edge.
|
|
141
|
+
* 3. **An association typed as a derivation.** `7 ↔ 16` and `3, 14 → *` are
|
|
142
|
+
* associations. If a derivation ever links either pair — in either
|
|
143
|
+
* direction — the distinction has been lost, and it is the distinction
|
|
144
|
+
* that carries the physics: the route to 16 runs from the full Maxwell
|
|
145
|
+
* system, *never from 7 alone*.
|
|
146
|
+
* 4. **Missing record / 5. wrong container.** Every id in
|
|
147
|
+
* {@link POSTER_LINES} exists, in one of the containers its line declares.
|
|
148
|
+
* 6. **Unexpected empty premises.** Exactly one record may have none.
|
|
149
|
+
*
|
|
150
|
+
* Returns problems rather than throwing, so a caller sees ALL of them at once
|
|
151
|
+
* — a thrown first defect hides the rest, and this list is checked as a whole.
|
|
152
|
+
*
|
|
153
|
+
* @internal
|
|
154
|
+
*/
|
|
155
|
+
export declare function validatePosterRelations(): readonly PosterProblem[];
|
|
156
|
+
//# sourceMappingURL=derivations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derivations.d.ts","sourceRoot":"","sources":["../../../src/atlas/poster/derivations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAI3C;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,qDAAqD;IACrD,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC;CAC1C;AAED,iDAAiD;AACjD,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,aAAa,GAAG,YAAY,CAAC;AAExE;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;IAC9C,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAWD;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,UAAU,EAyKnD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAUzD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,OAAO,EAAE,CAAC,CAY/E,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAqG7C,CAAC;AAEF,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EACT,mBAAmB,GACnB,kBAAkB,GAClB,iCAAiC,GACjC,gBAAgB,GAChB,iBAAiB,GACjB,2BAA2B,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAYD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,uBAAuB,IAAI,SAAS,aAAa,EAAE,CAqElE"}
|