universal-physics-tensor 1.0.4 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -8
- package/dist/atlas/chain-pipeline.d.ts +37 -0
- package/dist/atlas/chain-pipeline.d.ts.map +1 -1
- package/dist/atlas/chain-pipeline.js +95 -79
- package/dist/atlas/chain-pipeline.js.map +1 -1
- package/dist/atlas/proof-target.d.ts +28 -2
- package/dist/atlas/proof-target.d.ts.map +1 -1
- package/dist/atlas/proof-target.js +25 -16
- package/dist/atlas/proof-target.js.map +1 -1
- package/dist/cli/commands/_atlas-route.d.ts +1 -1
- package/dist/cli/commands/atlas.d.ts.map +1 -1
- package/dist/cli/commands/atlas.js +1 -2
- package/dist/cli/commands/atlas.js.map +1 -1
- package/dist/cli/commands/eval.d.ts.map +1 -1
- package/dist/cli/commands/eval.js +7 -10
- package/dist/cli/commands/eval.js.map +1 -1
- package/dist/cli/commands/evaluate.d.ts +7 -3
- package/dist/cli/commands/evaluate.d.ts.map +1 -1
- package/dist/cli/commands/evaluate.js +53 -32
- package/dist/cli/commands/evaluate.js.map +1 -1
- package/dist/cli/commands/map.d.ts +1 -1
- package/dist/cli/commands/map.d.ts.map +1 -1
- package/dist/cli/commands/map.js.map +1 -1
- package/dist/cli/commands/metric.d.ts.map +1 -1
- package/dist/cli/commands/metric.js +10 -11
- package/dist/cli/commands/metric.js.map +1 -1
- package/dist/cli/commands/path.d.ts +2 -2
- package/dist/cli/commands/path.d.ts.map +1 -1
- package/dist/cli/commands/path.js +10 -11
- package/dist/cli/commands/path.js.map +1 -1
- package/dist/cli/commands/recover.d.ts.map +1 -1
- package/dist/cli/commands/recover.js +1 -2
- package/dist/cli/commands/recover.js.map +1 -1
- package/dist/cli/commands/regime.d.ts +2 -2
- package/dist/cli/commands/regime.d.ts.map +1 -1
- package/dist/cli/commands/regime.js +3 -4
- package/dist/cli/commands/regime.js.map +1 -1
- package/dist/cli/eval-numbers.d.ts +2 -2
- package/dist/cli/eval-numbers.js +2 -2
- package/dist/cli/version.d.ts +6 -2
- package/dist/cli/version.d.ts.map +1 -1
- package/dist/cli/version.js +11 -3
- package/dist/cli/version.js.map +1 -1
- package/dist/cli-api.d.ts +50 -0
- package/dist/cli-api.d.ts.map +1 -1
- package/dist/cli-api.js +42 -0
- package/dist/cli-api.js.map +1 -1
- package/dist/composition/chain-result.d.ts +55 -0
- package/dist/composition/chain-result.d.ts.map +1 -0
- package/dist/composition/chain-result.js +57 -0
- package/dist/composition/chain-result.js.map +1 -0
- package/dist/composition/compose-symbolic.d.ts.map +1 -1
- package/dist/composition/compose-symbolic.js +4 -39
- package/dist/composition/compose-symbolic.js.map +1 -1
- package/dist/composition/compose.d.ts.map +1 -1
- package/dist/composition/compose.js +11 -4
- package/dist/composition/compose.js.map +1 -1
- package/dist/composition/enumerate.d.ts +46 -5
- package/dist/composition/enumerate.d.ts.map +1 -1
- package/dist/composition/enumerate.js +37 -8
- package/dist/composition/enumerate.js.map +1 -1
- package/dist/composition/expr-simplify.d.ts.map +1 -1
- package/dist/composition/expr-simplify.js +3 -11
- package/dist/composition/expr-simplify.js.map +1 -1
- package/dist/composition/mathts-scalar-symbols.d.ts +48 -0
- package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -0
- package/dist/composition/mathts-scalar-symbols.js +150 -0
- package/dist/composition/mathts-scalar-symbols.js.map +1 -0
- package/dist/composition/probe/study.js +1 -1
- package/dist/composition/probe/study.js.map +1 -1
- package/dist/composition/uncertainty.d.ts +2 -2
- package/dist/composition/uncertainty.d.ts.map +1 -1
- package/dist/composition/uncertainty.js +14 -13
- package/dist/composition/uncertainty.js.map +1 -1
- package/dist/diff/bridge-gradient.d.ts +5 -8
- package/dist/diff/bridge-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-gradient.js +5 -8
- package/dist/diff/bridge-gradient.js.map +1 -1
- package/dist/dimensional/buckingham.d.ts.map +1 -1
- package/dist/dimensional/buckingham.js +19 -91
- package/dist/dimensional/buckingham.js.map +1 -1
- package/dist/dimensional/units.d.ts +13 -0
- package/dist/dimensional/units.d.ts.map +1 -1
- package/dist/dimensional/units.js +78 -1
- package/dist/dimensional/units.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/numerical/binding-value.d.ts +3 -3
- package/dist/numerical/binding-value.d.ts.map +1 -1
- package/dist/numerical/binding-value.js +60 -31
- package/dist/numerical/binding-value.js.map +1 -1
- package/dist/numerical/einstein-equation.js +3 -3
- package/dist/numerical/einstein-equation.js.map +1 -1
- package/dist/numerical/engine-registry.d.ts +12 -27
- package/dist/numerical/engine-registry.d.ts.map +1 -1
- package/dist/numerical/engine-registry.js +10 -65
- package/dist/numerical/engine-registry.js.map +1 -1
- package/dist/numerical/errors.d.ts +1 -2
- package/dist/numerical/errors.d.ts.map +1 -1
- package/dist/numerical/errors.js +1 -2
- package/dist/numerical/errors.js.map +1 -1
- package/dist/numerical/formula-contract.d.ts +60 -0
- package/dist/numerical/formula-contract.d.ts.map +1 -0
- package/dist/numerical/formula-contract.js +107 -0
- package/dist/numerical/formula-contract.js.map +1 -0
- package/dist/numerical/formula-dimension.d.ts +33 -10
- package/dist/numerical/formula-dimension.d.ts.map +1 -1
- package/dist/numerical/formula-dimension.js +48 -35
- package/dist/numerical/formula-dimension.js.map +1 -1
- package/dist/numerical/formula-mathts.d.ts +15 -17
- package/dist/numerical/formula-mathts.d.ts.map +1 -1
- package/dist/numerical/formula-mathts.js +34 -36
- package/dist/numerical/formula-mathts.js.map +1 -1
- package/dist/numerical/formula-registry.d.ts +11 -19
- package/dist/numerical/formula-registry.d.ts.map +1 -1
- package/dist/numerical/formula-registry.js +16 -79
- package/dist/numerical/formula-registry.js.map +1 -1
- package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
- package/dist/numerical/geodesic-integrator.js +19 -31
- package/dist/numerical/geodesic-integrator.js.map +1 -1
- package/dist/numerical/gl4-integrator.d.ts +12 -51
- package/dist/numerical/gl4-integrator.d.ts.map +1 -1
- package/dist/numerical/gl4-integrator.js +103 -565
- package/dist/numerical/gl4-integrator.js.map +1 -1
- package/dist/numerical/index.d.ts +0 -2
- package/dist/numerical/index.d.ts.map +1 -1
- package/dist/numerical/index.js +0 -2
- package/dist/numerical/index.js.map +1 -1
- package/dist/numerical/kretschmann.d.ts +2 -2
- package/dist/numerical/kretschmann.js +2 -2
- package/dist/numerical/mathts-engine.d.ts +7 -8
- package/dist/numerical/mathts-engine.d.ts.map +1 -1
- package/dist/numerical/mathts-engine.js +19 -27
- package/dist/numerical/mathts-engine.js.map +1 -1
- package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
- package/dist/numerical/null-ray-integrator.js +11 -28
- package/dist/numerical/null-ray-integrator.js.map +1 -1
- package/dist/numerical/quadrature.d.ts +2 -17
- package/dist/numerical/quadrature.d.ts.map +1 -1
- package/dist/numerical/quadrature.js +9 -20
- package/dist/numerical/quadrature.js.map +1 -1
- package/dist/numerical/strides.d.ts +1 -2
- package/dist/numerical/strides.d.ts.map +1 -1
- package/dist/numerical/strides.js +1 -2
- package/dist/numerical/strides.js.map +1 -1
- package/dist/numerical/tensor-engine.d.ts +2 -3
- package/dist/numerical/tensor-engine.d.ts.map +1 -1
- package/dist/numerical/tensor-engine.js +1 -2
- package/dist/numerical/tensor-engine.js.map +1 -1
- package/dist/relations/category.d.ts +8 -2
- package/dist/relations/category.d.ts.map +1 -1
- package/dist/relations/category.js +10 -2
- package/dist/relations/category.js.map +1 -1
- package/dist/relations/regime-vocabularies.d.ts +40 -0
- package/dist/relations/regime-vocabularies.d.ts.map +1 -0
- package/dist/relations/regime-vocabularies.js +19 -0
- package/dist/relations/regime-vocabularies.js.map +1 -0
- package/package.json +12 -46
- package/dist/numerical/float64-engine.d.ts +0 -55
- package/dist/numerical/float64-engine.d.ts.map +0 -1
- package/dist/numerical/float64-engine.js +0 -675
- package/dist/numerical/float64-engine.js.map +0 -1
- package/dist/numerical/formula.d.ts +0 -106
- package/dist/numerical/formula.d.ts.map +0 -1
- package/dist/numerical/formula.js +0 -348
- package/dist/numerical/formula.js.map +0 -1
package/README.md
CHANGED
|
@@ -54,13 +54,11 @@ pins `bun@1.4.2`). Node does not install it: `corepack prepare bun@1.4.2 --activ
|
|
|
54
54
|
`bun install` and `bun run build`. On a machine that has Node and not Bun, the clone path is
|
|
55
55
|
`npm install`, `npm run build`, then `node bin/upt.mjs <command>`.
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
`
|
|
61
|
-
|
|
62
|
-
bare semver line. `@danielsimonjr/mathts-functions` and `@viz-js/viz` (`upt map --format=svg`) are
|
|
63
|
-
optional peers. The package keeps zero hard dependencies.
|
|
57
|
+
The library requires the published `@danielsimonjr/mathts-*` packages. There is no
|
|
58
|
+
second parser. MathTS accepts `factorial`, `erf`, `gamma()`, and juxtaposition such as `2pi`.
|
|
59
|
+
A bare `e` is the elementary charge, `E` is energy, and Euler's number is only `exp(x)`, for
|
|
60
|
+
example `exp(1)`. The name `euler` is refused. `upt eval --debug` names the parser. `upt version`
|
|
61
|
+
stays a bare semver line. `@viz-js/viz` (`upt map --format=svg`) stays an optional peer.
|
|
64
62
|
|
|
65
63
|
## First five minutes
|
|
66
64
|
|
|
@@ -373,7 +371,7 @@ The current machine-checked state is:
|
|
|
373
371
|
| Empirical spine | **19 committed confrontations**, exposed through `upt confront` with rigor/caveat metadata |
|
|
374
372
|
| Composition layer | **46 bridge edges** plus the canonical L-layer graph; dimensional, symbolic, discovery, consequence, and visualization tooling |
|
|
375
373
|
| Canonical reference layer | **109 canonical equations** used as the non-speculative answer-key layer for bridge recovery/linkage |
|
|
376
|
-
| Architecture | Generated dependency graph reports **0 circular dependencies**. The unused-analysis report lists **1** file and **
|
|
374
|
+
| Architecture | Generated dependency graph reports **0 circular dependencies**. The unused-analysis report lists **1** file and **78** exports with no importer. Both reports are regenerated by `bun run docs:deps`, and the `docs-fresh` job fails when they are stale |
|
|
377
375
|
| Quality gates | Build, strict source+test TypeScript checks, full Vitest suite, active-plan audit, package-content smoke test, and nightly long-horizon GL4/Shapiro accuracy tests |
|
|
378
376
|
| Formal references | **10** atlas bridges derive `formally-proved` from a reviewed `lean4-physjs` reference. **16** catalog equations carry a counted reference and do not light that tag. **14** state the catalogued equation, so the kind is `bridge` while the covers line still begins with `derivation-step`; passing one to `deriveEvidence` lights `formally-proved`, and the catalog path still omits it. **3** carry a cross-check and **2** carry a property, and `be-28` is a property whose covers line begins with `derivation-step`. Nested statements are not second references. The pin and the split are [`NOTES.md`](https://github.com/danielsimonjr/universal-physics-tensor/blob/master/NOTES.md) |
|
|
379
377
|
<!-- /readme-status:table -->
|
|
@@ -13,7 +13,11 @@
|
|
|
13
13
|
*
|
|
14
14
|
* @module atlas/chain-pipeline
|
|
15
15
|
*/
|
|
16
|
+
import type { ExprNode } from '../dimensional/validator.js';
|
|
17
|
+
import type { Dimension } from '../dimensional/types.js';
|
|
16
18
|
import type { BridgeEdge } from '../composition/edge.js';
|
|
19
|
+
import type { CompositionResult } from '../relations/composition-table.js';
|
|
20
|
+
import { type ChainRecord } from '../composition/chain-result.js';
|
|
17
21
|
import { type ChainRegimeMismatch } from '../composition/chain-regime.js';
|
|
18
22
|
/** A chain whose normal form matches a catalog equation. Nothing was written. @internal */
|
|
19
23
|
export interface ChainConfirmationRecord {
|
|
@@ -37,6 +41,39 @@ export interface ChainStubRecord {
|
|
|
37
41
|
}
|
|
38
42
|
/** One ordered survivor, or a recorded regime rejection. @internal */
|
|
39
43
|
export type ChainPipelineResult = ChainConfirmationRecord | ChainRestatementRecord | ChainStubRecord | ChainRegimeMismatch;
|
|
44
|
+
/**
|
|
45
|
+
* Dimensioned leaves of the composed formula, excluding the target name.
|
|
46
|
+
* The names are the MathTS symbol filter. A dimensionless constant is not
|
|
47
|
+
* a governing symbol. The elementary charge is, because its dimension is
|
|
48
|
+
* charge.
|
|
49
|
+
*
|
|
50
|
+
* @internal
|
|
51
|
+
*/
|
|
52
|
+
export declare function governingOf(expr: ExprNode, targetName: string): {
|
|
53
|
+
name: string;
|
|
54
|
+
dim: Dimension;
|
|
55
|
+
}[];
|
|
56
|
+
/**
|
|
57
|
+
* The category claim recorded for two quantity edges.
|
|
58
|
+
*
|
|
59
|
+
* A quantity edge stores a quantity name, not a category object id.
|
|
60
|
+
* This step does not invent that id, so the recorded result is unset
|
|
61
|
+
* even when both edges store a relation. The pair is not dropped.
|
|
62
|
+
*
|
|
63
|
+
* @internal
|
|
64
|
+
*/
|
|
65
|
+
export declare function categoryCompositionForChain(first: BridgeEdge, second: BridgeEdge): CompositionResult | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* The orchestrator view of one {@link ChainRecord}.
|
|
68
|
+
*
|
|
69
|
+
* A confirmation and a restatement ignore `mismatch`. A provisional
|
|
70
|
+
* record with a mismatch is that rejection. Any other provisional record
|
|
71
|
+
* is a stub whose id and theorem come from the same record the order key
|
|
72
|
+
* reads.
|
|
73
|
+
*
|
|
74
|
+
* @internal
|
|
75
|
+
*/
|
|
76
|
+
export declare function renderChainRecord(record: ChainRecord, seedTheorems?: readonly string[]): ChainPipelineResult;
|
|
40
77
|
/**
|
|
41
78
|
* Run the pipeline on `edges`.
|
|
42
79
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-pipeline.d.ts","sourceRoot":"","sources":["../../src/atlas/chain-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"chain-pipeline.d.ts","sourceRoot":"","sources":["../../src/atlas/chain-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAI3E,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAsB,KAAK,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAK9F,2FAA2F;AAC3F,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,6FAA6F;AAC7F,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,sEAAsE;AACtE,MAAM,MAAM,mBAAmB,GAC3B,uBAAuB,GACvB,sBAAsB,GACtB,eAAe,GACf,mBAAmB,CAAC;AAYxB;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,SAAS,CAAA;CAAE,EAAE,CASlG;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,UAAU,GACjB,iBAAiB,GAAG,SAAS,CAI/B;AAyCD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,YAAY,GAAE,SAAS,MAAM,EAAO,GACnC,mBAAmB,CAyBrB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,mBAAmB,EAAE,CAwC7F"}
|
|
@@ -19,10 +19,12 @@ import { CONSTANTS } from '../dimensional/symbolic-constants.js';
|
|
|
19
19
|
import { enumerateCompositions } from '../composition/enumerate.js';
|
|
20
20
|
import { buckinghamFilter } from '../composition/buckingham-filter.js';
|
|
21
21
|
import { matchChain } from '../composition/chain-match.js';
|
|
22
|
-
import { compareChainEdgeIds
|
|
23
|
-
import {
|
|
22
|
+
import { compareChainEdgeIds } from '../composition/chain-candidate.js';
|
|
23
|
+
import { chainOrderKey, orderChainRecords, } from '../composition/chain-result.js';
|
|
24
|
+
import { joinRegimeMismatch } from '../composition/chain-regime.js';
|
|
24
25
|
import { bridgeSeedKeys, physjsTheorem } from './physjs-ref.js';
|
|
25
26
|
import { emitProofTarget } from './proof-target.js';
|
|
27
|
+
import { scalarSymbolsFromMathTs } from '../composition/mathts-scalar-symbols.js';
|
|
26
28
|
function isNumericName(name) {
|
|
27
29
|
return /^\d+(\.\d+)?$/.test(name);
|
|
28
30
|
}
|
|
@@ -32,110 +34,113 @@ function isDimensionlessConstant(name) {
|
|
|
32
34
|
const registered = CONSTANTS[name];
|
|
33
35
|
return registered !== undefined && equals(registered.dim, DIMENSIONLESS);
|
|
34
36
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
case 'integral':
|
|
45
|
-
collectSymbols(expr.over, out);
|
|
46
|
-
collectSymbols(expr.integrand, out);
|
|
47
|
-
return;
|
|
48
|
-
case 'derivative':
|
|
49
|
-
collectSymbols(expr.of, out);
|
|
50
|
-
collectSymbols(expr.wrt, out);
|
|
51
|
-
return;
|
|
52
|
-
case 'transcendental':
|
|
53
|
-
case 'abs':
|
|
54
|
-
case 'dirac-delta':
|
|
55
|
-
collectSymbols(expr.arg, out);
|
|
56
|
-
return;
|
|
57
|
-
default:
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
/** Dimensioned leaves of the composed formula, excluding the target name. */
|
|
62
|
-
function governingOf(expr, targetName) {
|
|
63
|
-
const dims = new Map();
|
|
64
|
-
collectSymbols(expr, dims);
|
|
37
|
+
/**
|
|
38
|
+
* Dimensioned leaves of the composed formula, excluding the target name.
|
|
39
|
+
* The names are the MathTS symbol filter. A dimensionless constant is not
|
|
40
|
+
* a governing symbol. The elementary charge is, because its dimension is
|
|
41
|
+
* charge.
|
|
42
|
+
*
|
|
43
|
+
* @internal
|
|
44
|
+
*/
|
|
45
|
+
export function governingOf(expr, targetName) {
|
|
65
46
|
const vars = [];
|
|
66
|
-
for (const
|
|
67
|
-
if (name === targetName)
|
|
47
|
+
for (const leaf of scalarSymbolsFromMathTs(expr)) {
|
|
48
|
+
if (leaf.name === targetName)
|
|
68
49
|
continue;
|
|
69
|
-
if (isNumericName(name) || isDimensionlessConstant(name))
|
|
50
|
+
if (isNumericName(leaf.name) || isDimensionlessConstant(leaf.name))
|
|
70
51
|
continue;
|
|
71
|
-
vars.push(
|
|
52
|
+
vars.push(leaf);
|
|
72
53
|
}
|
|
73
54
|
vars.sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0));
|
|
74
55
|
return vars;
|
|
75
56
|
}
|
|
76
|
-
|
|
77
|
-
|
|
57
|
+
/**
|
|
58
|
+
* The category claim recorded for two quantity edges.
|
|
59
|
+
*
|
|
60
|
+
* A quantity edge stores a quantity name, not a category object id.
|
|
61
|
+
* This step does not invent that id, so the recorded result is unset
|
|
62
|
+
* even when both edges store a relation. The pair is not dropped.
|
|
63
|
+
*
|
|
64
|
+
* @internal
|
|
65
|
+
*/
|
|
66
|
+
export function categoryCompositionForChain(first, second) {
|
|
67
|
+
const relationsAreStored = first.relation !== undefined && second.relation !== undefined;
|
|
68
|
+
if (!relationsAreStored)
|
|
69
|
+
return undefined;
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
function theoremsFor(edgeIds) {
|
|
73
|
+
return edgeIds.map((id) => {
|
|
74
|
+
const name = physjsTheorem(id);
|
|
75
|
+
if (name === undefined) {
|
|
76
|
+
throw new Error(`chain pipeline: manifest copy has no theorem for seed '${id}'`);
|
|
77
|
+
}
|
|
78
|
+
return name;
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function proofCandidate(record) {
|
|
82
|
+
const kind = chainOrderKey(record);
|
|
83
|
+
const theorem = record.theorem ?? undefined;
|
|
78
84
|
const carried = theorem === undefined ? {} : { theorem };
|
|
79
|
-
if (classification.kind === 'confirmation') {
|
|
85
|
+
if (record.classification.kind === 'confirmation') {
|
|
80
86
|
return {
|
|
81
|
-
kind
|
|
82
|
-
edgeIds:
|
|
83
|
-
catalogId: classification.catalogId,
|
|
87
|
+
kind,
|
|
88
|
+
edgeIds: record.edgeIds,
|
|
89
|
+
catalogId: record.classification.catalogId,
|
|
84
90
|
...carried,
|
|
85
91
|
};
|
|
86
92
|
}
|
|
87
|
-
if (classification.kind === 'restatement') {
|
|
93
|
+
if (record.classification.kind === 'restatement') {
|
|
88
94
|
return {
|
|
89
|
-
kind
|
|
90
|
-
edgeIds:
|
|
91
|
-
canonicalId: classification.canonicalId,
|
|
92
|
-
restatesBridge: classification.restatesBridge,
|
|
95
|
+
kind,
|
|
96
|
+
edgeIds: record.edgeIds,
|
|
97
|
+
canonicalId: record.classification.canonicalId,
|
|
98
|
+
restatesBridge: record.classification.restatesBridge,
|
|
93
99
|
...carried,
|
|
94
100
|
};
|
|
95
101
|
}
|
|
96
|
-
const kind = filter.theorem === 'PhysJS.Dimensional.monomial_form'
|
|
97
|
-
? 'unique-monomial'
|
|
98
|
-
: 'unfixed-shape';
|
|
99
102
|
return {
|
|
100
103
|
kind,
|
|
101
|
-
edgeIds:
|
|
102
|
-
id: classification.id,
|
|
104
|
+
edgeIds: record.edgeIds,
|
|
105
|
+
id: record.classification.id,
|
|
103
106
|
...carried,
|
|
104
107
|
};
|
|
105
108
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
109
|
+
/**
|
|
110
|
+
* The orchestrator view of one {@link ChainRecord}.
|
|
111
|
+
*
|
|
112
|
+
* A confirmation and a restatement ignore `mismatch`. A provisional
|
|
113
|
+
* record with a mismatch is that rejection. Any other provisional record
|
|
114
|
+
* is a stub whose id and theorem come from the same record the order key
|
|
115
|
+
* reads.
|
|
116
|
+
*
|
|
117
|
+
* @internal
|
|
118
|
+
*/
|
|
119
|
+
export function renderChainRecord(record, seedTheorems = []) {
|
|
120
|
+
if (record.classification.kind === 'confirmation') {
|
|
117
121
|
return {
|
|
118
122
|
kind: 'confirmation',
|
|
119
|
-
catalogId:
|
|
120
|
-
edgeIds:
|
|
123
|
+
catalogId: record.classification.catalogId,
|
|
124
|
+
edgeIds: record.edgeIds,
|
|
121
125
|
};
|
|
122
126
|
}
|
|
123
|
-
if (
|
|
124
|
-
candidate.canonicalId !== undefined &&
|
|
125
|
-
candidate.restatesBridge !== undefined) {
|
|
127
|
+
if (record.classification.kind === 'restatement') {
|
|
126
128
|
return {
|
|
127
129
|
kind: 'restatement',
|
|
128
|
-
canonicalId:
|
|
129
|
-
restatesBridge:
|
|
130
|
-
edgeIds:
|
|
130
|
+
canonicalId: record.classification.canonicalId,
|
|
131
|
+
restatesBridge: record.classification.restatesBridge,
|
|
132
|
+
edgeIds: record.edgeIds,
|
|
131
133
|
};
|
|
132
134
|
}
|
|
133
|
-
|
|
135
|
+
if (record.mismatch !== undefined)
|
|
136
|
+
return record.mismatch;
|
|
137
|
+
const candidate = proofCandidate(record);
|
|
138
|
+
const id = candidate.id ?? `chain-${record.edgeIds.join('-')}`;
|
|
134
139
|
return {
|
|
135
140
|
kind: 'stub',
|
|
136
141
|
id,
|
|
137
|
-
edgeIds:
|
|
138
|
-
text: emitProofTarget({ ...candidate, id },
|
|
142
|
+
edgeIds: record.edgeIds,
|
|
143
|
+
text: emitProofTarget({ ...candidate, id }, seedTheorems),
|
|
139
144
|
};
|
|
140
145
|
}
|
|
141
146
|
/**
|
|
@@ -152,25 +157,36 @@ function emit(candidate) {
|
|
|
152
157
|
export function runChainPipeline(edges) {
|
|
153
158
|
const seedIds = new Set(bridgeSeedKeys());
|
|
154
159
|
const report = enumerateCompositions(edges, { seedIds });
|
|
155
|
-
const
|
|
160
|
+
const records = [];
|
|
156
161
|
const rejections = [];
|
|
157
162
|
for (const target of report.proofTargets) {
|
|
158
163
|
const filtered = buckinghamFilter({ name: target.second.target.name, dim: target.second.target.dim }, governingOf(target.expr, target.second.target.name));
|
|
159
164
|
if (filtered === undefined)
|
|
160
165
|
continue;
|
|
161
166
|
const classification = matchChain(target.expr, [target.first.id, target.second.id]);
|
|
167
|
+
const edgeIds = [target.first.id, target.second.id];
|
|
168
|
+
const record = {
|
|
169
|
+
edgeIds,
|
|
170
|
+
classification,
|
|
171
|
+
theorem: filtered.theorem,
|
|
172
|
+
mismatch: undefined,
|
|
173
|
+
categoryComposition: categoryCompositionForChain(target.first, target.second),
|
|
174
|
+
};
|
|
162
175
|
if (classification.kind === 'confirmation' || classification.kind === 'restatement') {
|
|
163
|
-
|
|
176
|
+
records.push(record);
|
|
164
177
|
continue;
|
|
165
178
|
}
|
|
166
179
|
const mismatch = joinRegimeMismatch(target.first, target.second);
|
|
167
180
|
if (mismatch !== undefined) {
|
|
168
|
-
rejections.push(mismatch);
|
|
181
|
+
rejections.push({ ...record, mismatch });
|
|
169
182
|
continue;
|
|
170
183
|
}
|
|
171
|
-
|
|
184
|
+
records.push(record);
|
|
172
185
|
}
|
|
173
186
|
const orderedRejections = [...rejections].sort((a, b) => compareChainEdgeIds(a.edgeIds, b.edgeIds));
|
|
174
|
-
return [
|
|
187
|
+
return [
|
|
188
|
+
...orderChainRecords(records).map((record) => renderChainRecord(record, theoremsFor(record.edgeIds))),
|
|
189
|
+
...orderedRejections.map((record) => renderChainRecord(record)),
|
|
190
|
+
];
|
|
175
191
|
}
|
|
176
192
|
//# sourceMappingURL=chain-pipeline.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-pipeline.js","sourceRoot":"","sources":["../../src/atlas/chain-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"chain-pipeline.js","sourceRoot":"","sources":["../../src/atlas/chain-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,11 +20,37 @@ export declare const PROOF_TARGET_DRAFT_BEGIN = "PROOF-TARGET-DRAFT-BEGIN";
|
|
|
20
20
|
/** Marker after the draft object. @internal */
|
|
21
21
|
export declare const PROOF_TARGET_DRAFT_END = "PROOF-TARGET-DRAFT-END";
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* The draft the comment block renders.
|
|
24
|
+
*
|
|
25
|
+
* The fields are the ones the comment's JSON already carries.
|
|
26
|
+
* `leanProof` stays `absent`. This value is not a manifest entry.
|
|
27
|
+
*
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
export interface ProofTargetDraft {
|
|
31
|
+
readonly key: string;
|
|
32
|
+
readonly bridgeId: string;
|
|
33
|
+
readonly theorem: string;
|
|
34
|
+
readonly covers: string;
|
|
35
|
+
readonly coverage: string;
|
|
36
|
+
readonly leanProof: 'absent';
|
|
37
|
+
readonly axioms: readonly string[];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The draft `emitProofTarget` renders into the comment block.
|
|
24
41
|
*
|
|
25
42
|
* `seedTheorems` is one PhysJS theorem name per seed step, in chain order.
|
|
26
43
|
* A name that disagrees with the compiled manifest copy is refused.
|
|
27
|
-
* The
|
|
44
|
+
* The object is not written anywhere.
|
|
45
|
+
*
|
|
46
|
+
* @internal
|
|
47
|
+
*/
|
|
48
|
+
export declare function proofTargetDraft(candidate: ChainCandidate, seedTheorems: readonly string[]): ProofTargetDraft;
|
|
49
|
+
/**
|
|
50
|
+
* Lean 4 statement skeleton and the theorem chain it would compose.
|
|
51
|
+
*
|
|
52
|
+
* The comment lines and the JSON between the markers are
|
|
53
|
+
* {@link proofTargetDraft}. The returned text is not written anywhere.
|
|
28
54
|
*
|
|
29
55
|
* @internal
|
|
30
56
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proof-target.d.ts","sourceRoot":"","sources":["../../src/atlas/proof-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGxE,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAEnE,+CAA+C;AAC/C,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AA0F/D;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,cAAc,EACzB,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,MAAM,
|
|
1
|
+
{"version":3,"file":"proof-target.d.ts","sourceRoot":"","sources":["../../src/atlas/proof-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGxE,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAEnE,+CAA+C;AAC/C,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AA0F/D;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,cAAc,EACzB,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,gBAAgB,CAYlB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,cAAc,EACzB,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,MAAM,CA6BR"}
|
|
@@ -91,20 +91,38 @@ function assertTheorems(candidate, seedTheorems) {
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
/**
|
|
94
|
-
*
|
|
94
|
+
* The draft `emitProofTarget` renders into the comment block.
|
|
95
95
|
*
|
|
96
96
|
* `seedTheorems` is one PhysJS theorem name per seed step, in chain order.
|
|
97
97
|
* A name that disagrees with the compiled manifest copy is refused.
|
|
98
|
-
* The
|
|
98
|
+
* The object is not written anywhere.
|
|
99
99
|
*
|
|
100
100
|
* @internal
|
|
101
101
|
*/
|
|
102
|
-
export function
|
|
102
|
+
export function proofTargetDraft(candidate, seedTheorems) {
|
|
103
103
|
assertTheorems(candidate, seedTheorems);
|
|
104
104
|
const key = targetKey(candidate);
|
|
105
|
-
|
|
105
|
+
return {
|
|
106
|
+
key,
|
|
107
|
+
bridgeId: key,
|
|
108
|
+
theorem: leanIdent(key),
|
|
109
|
+
covers: coversLine(candidate),
|
|
110
|
+
coverage: 'statement skeleton only',
|
|
111
|
+
leanProof: 'absent',
|
|
112
|
+
axioms: [],
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Lean 4 statement skeleton and the theorem chain it would compose.
|
|
117
|
+
*
|
|
118
|
+
* The comment lines and the JSON between the markers are
|
|
119
|
+
* {@link proofTargetDraft}. The returned text is not written anywhere.
|
|
120
|
+
*
|
|
121
|
+
* @internal
|
|
122
|
+
*/
|
|
123
|
+
export function emitProofTarget(candidate, seedTheorems) {
|
|
124
|
+
const draft = proofTargetDraft(candidate, seedTheorems);
|
|
106
125
|
const theorem = dimensionalTheorem(candidate);
|
|
107
|
-
const statement = leanIdent(key);
|
|
108
126
|
const lines = [
|
|
109
127
|
'-- PROOF TARGET',
|
|
110
128
|
'-- statement skeleton only',
|
|
@@ -120,20 +138,11 @@ export function emitProofTarget(candidate, seedTheorems) {
|
|
|
120
138
|
for (const name of seedTheorems) {
|
|
121
139
|
lines.push(`-- theorem: ${name}`);
|
|
122
140
|
}
|
|
123
|
-
lines.push('', `-- covers: ${covers}`, '');
|
|
141
|
+
lines.push('', `-- covers: ${draft.covers}`, '');
|
|
124
142
|
if (theorem !== undefined) {
|
|
125
143
|
lines.push('-- Dim : Fin 7 → ℚ', '-- base order: L, M, T, I, Theta, N, J', '');
|
|
126
144
|
}
|
|
127
|
-
lines.push(`-- target id: ${key}`, `-- statement: ${
|
|
128
|
-
const draft = {
|
|
129
|
-
key,
|
|
130
|
-
bridgeId: key,
|
|
131
|
-
theorem: statement,
|
|
132
|
-
covers,
|
|
133
|
-
coverage: 'statement skeleton only',
|
|
134
|
-
leanProof: 'absent',
|
|
135
|
-
axioms: [],
|
|
136
|
-
};
|
|
145
|
+
lines.push(`-- target id: ${draft.key}`, `-- statement: ${draft.theorem} : Prop`, '');
|
|
137
146
|
lines.push(PROOF_TARGET_DRAFT_BEGIN, JSON.stringify(draft, null, 2), PROOF_TARGET_DRAFT_END, '');
|
|
138
147
|
return lines.join('\n');
|
|
139
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proof-target.js","sourceRoot":"","sources":["../../src/atlas/proof-target.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"proof-target.js","sourceRoot":"","sources":["../../src/atlas/proof-target.ts"],"names":[],"mappings":"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"}
|
|
@@ -80,7 +80,7 @@ export declare function claimReport(claim: RouteClaim): import("../../cli-api.js
|
|
|
80
80
|
kind: 'bound';
|
|
81
81
|
bound: import("../../atlas/error-algebra.js").BoundPair;
|
|
82
82
|
terminal: boolean;
|
|
83
|
-
relation: import("../../
|
|
83
|
+
relation: import("../../cli-api.js").RelationType;
|
|
84
84
|
norm: string | null;
|
|
85
85
|
transports: {
|
|
86
86
|
index: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atlas.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/atlas.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAmB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"atlas.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/atlas.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAmB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAC;AAyB/E,0DAA0D;AAC1D,UAAU,UAAU;IAClB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,GAAG;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAIA;AAgfD,eAAO,MAAM,OAAO,EAAE,OASrB,CAAC"}
|
|
@@ -2,7 +2,6 @@ import { registerCommand } from '../command.js';
|
|
|
2
2
|
import { commandHelp, JSON_FLAG } from '../flag-help.js';
|
|
3
3
|
import { CliError, EXIT_CHECK_FAILED } from '../errors.js';
|
|
4
4
|
import { emitJson } from '../output.js';
|
|
5
|
-
import { catalogFormalRef } from '../../atlas/catalog-formal-ref.js';
|
|
6
5
|
import { atlasEvidenceText, buildAtlasEvidenceView, loadStoredResults, runResults } from './_atlas-map.js';
|
|
7
6
|
const FLAGS = [
|
|
8
7
|
{
|
|
@@ -91,7 +90,7 @@ function catalogEquationNumber(raw) {
|
|
|
91
90
|
* `formally-proved` tag.
|
|
92
91
|
*/
|
|
93
92
|
function emitCatalogFormalRef(entry, wantJson, ctx) {
|
|
94
|
-
const ref = catalogFormalRef(entry.id);
|
|
93
|
+
const ref = ctx.api.catalogFormalRef(entry.id);
|
|
95
94
|
if (ref === undefined) {
|
|
96
95
|
throw new CliError(`upt atlas: be-${entry.id} is a catalog equation and has no formalRef (\`upt atlas\` lists atlas bridges)`);
|
|
97
96
|
}
|