@proposit/proposit-core 0.11.2 → 0.12.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 +117 -57
- package/dist/cli/commands/arguments.d.ts.map +1 -1
- package/dist/cli/commands/arguments.js +13 -16
- package/dist/cli/commands/arguments.js.map +1 -1
- package/dist/cli/commands/axioms.d.ts +3 -0
- package/dist/cli/commands/axioms.d.ts.map +1 -0
- package/dist/cli/commands/axioms.js +91 -0
- package/dist/cli/commands/axioms.js.map +1 -0
- package/dist/cli/commands/citations.d.ts.map +1 -1
- package/dist/cli/commands/citations.js +27 -25
- package/dist/cli/commands/citations.js.map +1 -1
- package/dist/cli/commands/claims.d.ts.map +1 -1
- package/dist/cli/commands/claims.js +35 -5
- package/dist/cli/commands/claims.js.map +1 -1
- package/dist/cli/commands/parse.d.ts.map +1 -1
- package/dist/cli/commands/parse.js +3 -4
- package/dist/cli/commands/parse.js.map +1 -1
- package/dist/cli/commands/premises.d.ts.map +1 -1
- package/dist/cli/commands/premises.js +8 -7
- package/dist/cli/commands/premises.js.map +1 -1
- package/dist/cli/commands/render.d.ts.map +1 -1
- package/dist/cli/commands/render.js +43 -18
- package/dist/cli/commands/render.js.map +1 -1
- package/dist/cli/engine.d.ts.map +1 -1
- package/dist/cli/engine.js +11 -4
- package/dist/cli/engine.js.map +1 -1
- package/dist/cli/import.d.ts.map +1 -1
- package/dist/cli/import.js +27 -3
- package/dist/cli/import.js.map +1 -1
- package/dist/cli/router.d.ts.map +1 -1
- package/dist/cli/router.js +1 -0
- package/dist/cli/router.js.map +1 -1
- package/dist/cli/schemata.d.ts +30 -0
- package/dist/cli/schemata.d.ts.map +1 -1
- package/dist/cli/schemata.js +37 -0
- package/dist/cli/schemata.js.map +1 -1
- package/dist/cli/storage/libraries.d.ts +7 -2
- package/dist/cli/storage/libraries.d.ts.map +1 -1
- package/dist/cli/storage/libraries.js +25 -6
- package/dist/cli/storage/libraries.js.map +1 -1
- package/dist/cli/storage/migrate-v0.10.js +3 -3
- package/dist/cli/storage/migrate-v0.10.js.map +1 -1
- package/dist/cli/storage/migrate-v0.12.d.ts +24 -0
- package/dist/cli/storage/migrate-v0.12.d.ts.map +1 -0
- package/dist/cli/storage/migrate-v0.12.js +141 -0
- package/dist/cli/storage/migrate-v0.12.js.map +1 -0
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/extensions/basics/schemata.d.ts +1 -1
- package/dist/extensions/ieee/citation-claim.d.ts +1 -1
- package/dist/lib/consts.d.ts.map +1 -1
- package/dist/lib/consts.js +13 -4
- package/dist/lib/consts.js.map +1 -1
- package/dist/lib/core/argument-engine.d.ts +20 -7
- package/dist/lib/core/argument-engine.d.ts.map +1 -1
- package/dist/lib/core/argument-engine.js +79 -10
- package/dist/lib/core/argument-engine.js.map +1 -1
- package/dist/lib/core/argument-library.d.ts +11 -13
- package/dist/lib/core/argument-library.d.ts.map +1 -1
- package/dist/lib/core/argument-library.js +7 -23
- package/dist/lib/core/argument-library.js.map +1 -1
- package/dist/lib/core/claim-axiom-library.d.ts +38 -0
- package/dist/lib/core/claim-axiom-library.d.ts.map +1 -0
- package/dist/lib/core/claim-axiom-library.js +236 -0
- package/dist/lib/core/claim-axiom-library.js.map +1 -0
- package/dist/lib/core/claim-citation-library.d.ts +11 -12
- package/dist/lib/core/claim-citation-library.d.ts.map +1 -1
- package/dist/lib/core/claim-citation-library.js +111 -107
- package/dist/lib/core/claim-citation-library.js.map +1 -1
- package/dist/lib/core/claim-library.d.ts +1 -1
- package/dist/lib/core/evaluation/argument-evaluation.d.ts +13 -0
- package/dist/lib/core/evaluation/argument-evaluation.d.ts.map +1 -1
- package/dist/lib/core/evaluation/argument-evaluation.js +25 -1
- package/dist/lib/core/evaluation/argument-evaluation.js.map +1 -1
- package/dist/lib/core/fork.d.ts +4 -6
- package/dist/lib/core/fork.d.ts.map +1 -1
- package/dist/lib/core/fork.js +3 -8
- package/dist/lib/core/fork.js.map +1 -1
- package/dist/lib/core/interfaces/index.d.ts +1 -1
- package/dist/lib/core/interfaces/index.d.ts.map +1 -1
- package/dist/lib/core/interfaces/library.interfaces.d.ts +65 -60
- package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -1
- package/dist/lib/core/managed-derivation-premise-engine.d.ts +31 -18
- package/dist/lib/core/managed-derivation-premise-engine.d.ts.map +1 -1
- package/dist/lib/core/managed-derivation-premise-engine.js +57 -34
- package/dist/lib/core/managed-derivation-premise-engine.js.map +1 -1
- package/dist/lib/core/proposit-core.d.ts +19 -14
- package/dist/lib/core/proposit-core.d.ts.map +1 -1
- package/dist/lib/core/proposit-core.js +95 -39
- package/dist/lib/core/proposit-core.js.map +1 -1
- package/dist/lib/index.d.ts +2 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +2 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/parsing/argument-parser.d.ts +2 -2
- package/dist/lib/parsing/argument-parser.d.ts.map +1 -1
- package/dist/lib/parsing/argument-parser.js +6 -6
- package/dist/lib/parsing/argument-parser.js.map +1 -1
- package/dist/lib/parsing/prompt-builder.d.ts.map +1 -1
- package/dist/lib/parsing/prompt-builder.js +7 -5
- package/dist/lib/parsing/prompt-builder.js.map +1 -1
- package/dist/lib/parsing/schemata.d.ts +4 -4
- package/dist/lib/parsing/schemata.d.ts.map +1 -1
- package/dist/lib/parsing/schemata.js +1 -0
- package/dist/lib/parsing/schemata.js.map +1 -1
- package/dist/lib/schemata/claim-axiom.d.ts +11 -0
- package/dist/lib/schemata/claim-axiom.d.ts.map +1 -0
- package/dist/lib/schemata/claim-axiom.js +9 -0
- package/dist/lib/schemata/claim-axiom.js.map +1 -0
- package/dist/lib/schemata/claim-citation.d.ts +4 -4
- package/dist/lib/schemata/claim-citation.d.ts.map +1 -1
- package/dist/lib/schemata/claim-citation.js +3 -19
- package/dist/lib/schemata/claim-citation.js.map +1 -1
- package/dist/lib/schemata/claim-connection.d.ts +11 -0
- package/dist/lib/schemata/claim-connection.d.ts.map +1 -0
- package/dist/lib/schemata/claim-connection.js +25 -0
- package/dist/lib/schemata/claim-connection.js.map +1 -0
- package/dist/lib/schemata/claim.d.ts +1 -1
- package/dist/lib/schemata/claim.d.ts.map +1 -1
- package/dist/lib/schemata/claim.js +6 -2
- package/dist/lib/schemata/claim.js.map +1 -1
- package/dist/lib/schemata/import.d.ts +2 -2
- package/dist/lib/schemata/import.d.ts.map +1 -1
- package/dist/lib/schemata/import.js +5 -1
- package/dist/lib/schemata/import.js.map +1 -1
- package/dist/lib/schemata/index.d.ts +2 -0
- package/dist/lib/schemata/index.d.ts.map +1 -1
- package/dist/lib/schemata/index.js +2 -0
- package/dist/lib/schemata/index.js.map +1 -1
- package/dist/lib/types/checksum.d.ts +3 -1
- package/dist/lib/types/checksum.d.ts.map +1 -1
- package/dist/lib/types/evaluation.d.ts +12 -0
- package/dist/lib/types/evaluation.d.ts.map +1 -1
- package/dist/lib/types/validation.d.ts +13 -4
- package/dist/lib/types/validation.d.ts.map +1 -1
- package/dist/lib/types/validation.js +15 -3
- package/dist/lib/types/validation.js.map +1 -1
- package/dist/lib/utils/lookup.d.ts +10 -4
- package/dist/lib/utils/lookup.d.ts.map +1 -1
- package/dist/lib/utils/lookup.js +13 -7
- package/dist/lib/utils/lookup.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/core/fork.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { TCoreArgument, TCorePremise, TCorePropositionalExpression, TCorePropositionalVariable } from "../schemata/index.js";
|
|
2
2
|
import type { TCoreClaim } from "../schemata/claim.js";
|
|
3
|
-
import type {
|
|
4
|
-
import type { TClaimLookup, TClaimCitationLookup } from "./interfaces/library.interfaces.js";
|
|
3
|
+
import type { TClaimLookup } from "./interfaces/library.interfaces.js";
|
|
5
4
|
import type { TForkArgumentOptions, TForkRemapTable } from "../types/fork.js";
|
|
6
5
|
import { ArgumentEngine } from "./argument-engine.js";
|
|
7
6
|
/**
|
|
@@ -15,15 +14,14 @@ import { ArgumentEngine } from "./argument-engine.js";
|
|
|
15
14
|
*
|
|
16
15
|
* @param engine - The source engine to fork.
|
|
17
16
|
* @param newArgumentId - The ID for the forked argument.
|
|
18
|
-
* @param libraries - Claim
|
|
17
|
+
* @param libraries - Claim library for the new engine.
|
|
19
18
|
* @param options - Optional ID generator, checksum/position/grammar config overrides.
|
|
20
19
|
* @returns The forked engine and a remap table mapping original to new entity IDs.
|
|
21
20
|
*/
|
|
22
|
-
export declare function forkArgumentEngine<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable, TClaim extends TCoreClaim = TCoreClaim
|
|
21
|
+
export declare function forkArgumentEngine<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable, TClaim extends TCoreClaim = TCoreClaim>(engine: ArgumentEngine<TArg, TPremise, TExpr, TVar, TClaim>, newArgumentId: string, libraries: {
|
|
23
22
|
claimLibrary: TClaimLookup<TClaim>;
|
|
24
|
-
claimCitationLibrary: TClaimCitationLookup<TCitation>;
|
|
25
23
|
}, options?: TForkArgumentOptions): {
|
|
26
|
-
engine: ArgumentEngine<TArg, TPremise, TExpr, TVar>;
|
|
24
|
+
engine: ArgumentEngine<TArg, TPremise, TExpr, TVar, TClaim>;
|
|
27
25
|
remapTable: TForkRemapTable;
|
|
28
26
|
};
|
|
29
27
|
//# sourceMappingURL=fork.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../../src/lib/core/fork.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,aAAa,EACb,YAAY,EACZ,4BAA4B,EAC5B,0BAA0B,EAE7B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../../src/lib/core/fork.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,aAAa,EACb,YAAY,EACZ,4BAA4B,EAC5B,0BAA0B,EAE7B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAIrD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAC9B,IAAI,SAAS,aAAa,GAAG,aAAa,EAC1C,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,KAAK,SAAS,4BAA4B,GAAG,4BAA4B,EACzE,IAAI,SAAS,0BAA0B,GAAG,0BAA0B,EACpE,MAAM,SAAS,UAAU,GAAG,UAAU,EAEtC,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,EAC3D,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE;IACP,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;CACrC,EACD,OAAO,CAAC,EAAE,oBAAoB,GAC/B;IACC,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAC3D,UAAU,EAAE,eAAe,CAAA;CAC9B,CA+IA"}
|
package/dist/lib/core/fork.js
CHANGED
|
@@ -13,13 +13,11 @@ import { isPremiseBound } from "../schemata/propositional.js";
|
|
|
13
13
|
*
|
|
14
14
|
* @param engine - The source engine to fork.
|
|
15
15
|
* @param newArgumentId - The ID for the forked argument.
|
|
16
|
-
* @param libraries - Claim
|
|
16
|
+
* @param libraries - Claim library for the new engine.
|
|
17
17
|
* @param options - Optional ID generator, checksum/position/grammar config overrides.
|
|
18
18
|
* @returns The forked engine and a remap table mapping original to new entity IDs.
|
|
19
19
|
*/
|
|
20
|
-
export function forkArgumentEngine(
|
|
21
|
-
// TODO Phase 7: drop TSource/TAssoc generics from ArgumentEngine.
|
|
22
|
-
engine, newArgumentId, libraries, options) {
|
|
20
|
+
export function forkArgumentEngine(engine, newArgumentId, libraries, options) {
|
|
23
21
|
const generateId = options?.generateId ?? defaultGenerateId;
|
|
24
22
|
// Snapshot includes config from the source engine
|
|
25
23
|
const snap = engine.snapshot();
|
|
@@ -121,10 +119,7 @@ engine, newArgumentId, libraries, options) {
|
|
|
121
119
|
}
|
|
122
120
|
const grammarConfig = options?.grammarConfig ?? snap.config?.grammarConfig;
|
|
123
121
|
// Construct new engine
|
|
124
|
-
|
|
125
|
-
// (snapshot, claimLibrary, claimCitationLibrary, ...) once its generics
|
|
126
|
-
// are reduced to drop TSource/TAssoc.
|
|
127
|
-
const forkedEngine = ArgumentEngine.fromSnapshot(snap, libraries.claimLibrary, libraries.claimCitationLibrary, grammarConfig, "ignore", generateId);
|
|
122
|
+
const forkedEngine = ArgumentEngine.fromSnapshot(snap, libraries.claimLibrary, grammarConfig, "ignore", generateId);
|
|
128
123
|
return { engine: forkedEngine, remapTable };
|
|
129
124
|
}
|
|
130
125
|
//# sourceMappingURL=fork.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fork.js","sourceRoot":"","sources":["../../../src/lib/core/fork.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"fork.js","sourceRoot":"","sources":["../../../src/lib/core/fork.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { TDisplayable, THierarchicalChecksummable, } from "./shared.interfaces.js";
|
|
2
2
|
export type { TPremiseCrud, TVariableManagement, TArgumentExpressionQueries, TArgumentRoleState, TArgumentEvaluation, TArgumentLifecycle, TArgumentIdentity, } from "./argument-engine.interfaces.js";
|
|
3
3
|
export type { TFormulaTreeVisitor, TFormulaTreeWalking, TExpressionMutations, TExpressionQueries, TVariableReferences, TPremiseClassification, TPremiseEvaluation, TPremiseLifecycle, TPremiseIdentity, } from "./premise-engine.interfaces.js";
|
|
4
|
-
export type { TClaimLookup, TClaimLibraryManagement, TClaimLibrarySnapshot,
|
|
4
|
+
export type { TClaimLookup, TClaimLibraryManagement, TClaimLibrarySnapshot, TClaimConnectionLookup, TClaimConnectionLibraryManagement, TClaimConnectionLibrarySnapshot, TForkLibrarySnapshot, TArgumentLibrarySnapshot, TPropositCoreSnapshot, TPropositCoreConfig, } from "./library.interfaces.js";
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,YAAY,EACZ,0BAA0B,GAC7B,MAAM,wBAAwB,CAAA;AAE/B,YAAY,EACR,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,GACpB,MAAM,iCAAiC,CAAA;AAExC,YAAY,EACR,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GACnB,MAAM,gCAAgC,CAAA;AAEvC,YAAY,EACR,YAAY,EACZ,uBAAuB,EACvB,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,YAAY,EACZ,0BAA0B,GAC7B,MAAM,wBAAwB,CAAA;AAE/B,YAAY,EACR,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,GACpB,MAAM,iCAAiC,CAAA;AAExC,YAAY,EACR,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GACnB,MAAM,gCAAgC,CAAA;AAEvC,YAAY,EACR,YAAY,EACZ,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,iCAAiC,EACjC,+BAA+B,EAC/B,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,GACtB,MAAM,yBAAyB,CAAA"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { TCoreClaim } from "../../schemata/claim.js";
|
|
2
2
|
import type { TCoreClaimCitation } from "../../schemata/claim-citation.js";
|
|
3
|
+
import type { TCoreClaimConnection } from "../../schemata/claim-connection.js";
|
|
4
|
+
import type { TCoreClaimAxiom } from "../../schemata/claim-axiom.js";
|
|
3
5
|
import type { TCoreArgumentForkRecord, TCorePremiseForkRecord, TCoreExpressionForkRecord, TCoreVariableForkRecord, TCoreClaimForkRecord } from "../../schemata/fork.js";
|
|
4
6
|
import type { TInvariantValidationResult } from "../../types/validation.js";
|
|
5
7
|
import type { TCoreArgument, TCorePremise, TCorePropositionalExpression, TCorePropositionalVariable } from "../../schemata/index.js";
|
|
@@ -115,86 +117,94 @@ export interface TClaimLibraryManagement<TClaim extends TCoreClaim = TCoreClaim>
|
|
|
115
117
|
validate(): TInvariantValidationResult;
|
|
116
118
|
}
|
|
117
119
|
/**
|
|
118
|
-
* Narrow read-only interface for claim-
|
|
119
|
-
* Implemented by `ClaimCitationLibrary`.
|
|
120
|
+
* Narrow read-only interface for claim-connection lookups.
|
|
121
|
+
* Implemented by `ClaimCitationLibrary` and `ClaimAxiomLibrary`.
|
|
122
|
+
*
|
|
123
|
+
* A claim connection is a directional support edge between two claims. The
|
|
124
|
+
* supported endpoint lives at `claimId`; the endpoint that supplies the
|
|
125
|
+
* support lives at `supportingClaimId`. Specializations (citation vs. axiom)
|
|
126
|
+
* differ in which library they live in and what type the supporting-side
|
|
127
|
+
* claim must have.
|
|
120
128
|
*/
|
|
121
|
-
export interface
|
|
129
|
+
export interface TClaimConnectionLookup<TConn extends TCoreClaimConnection = TCoreClaimConnection> {
|
|
122
130
|
/**
|
|
123
|
-
* Returns all
|
|
131
|
+
* Returns all connections where the given claim is the supported
|
|
132
|
+
* endpoint (i.e. the `claimId` side of the edge).
|
|
124
133
|
*
|
|
125
|
-
* @param
|
|
126
|
-
* @returns An array of matching
|
|
134
|
+
* @param claimId - The supported claim ID to filter by.
|
|
135
|
+
* @returns An array of matching connections.
|
|
127
136
|
*/
|
|
128
|
-
|
|
137
|
+
getConnectionsForClaim(claimId: string): TConn[];
|
|
129
138
|
/**
|
|
130
|
-
* Returns
|
|
139
|
+
* Returns a connection by ID, or `undefined` if not found.
|
|
131
140
|
*
|
|
132
|
-
* @param
|
|
133
|
-
* @returns
|
|
141
|
+
* @param id - The connection ID.
|
|
142
|
+
* @returns The connection entity, or `undefined`.
|
|
134
143
|
*/
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Returns a citation by ID, or `undefined` if not found.
|
|
138
|
-
*
|
|
139
|
-
* @param id - The citation ID.
|
|
140
|
-
* @returns The citation entity, or `undefined`.
|
|
141
|
-
*/
|
|
142
|
-
get(id: string): TCitation | undefined;
|
|
144
|
+
get(id: string): TConn | undefined;
|
|
143
145
|
}
|
|
144
146
|
/**
|
|
145
|
-
* Full management interface for a claim-
|
|
146
|
-
* `
|
|
147
|
-
*
|
|
147
|
+
* Full management interface for a claim-connection library. Extends
|
|
148
|
+
* `TClaimConnectionLookup` with mutation, query, and snapshot methods.
|
|
149
|
+
* Connections are create-or-delete only — no update path.
|
|
148
150
|
*/
|
|
149
|
-
export interface
|
|
151
|
+
export interface TClaimConnectionLibraryManagement<TConn extends TCoreClaimConnection = TCoreClaimConnection> extends TClaimConnectionLookup<TConn> {
|
|
150
152
|
/**
|
|
151
|
-
* Creates a claim
|
|
152
|
-
* claims exist in the claim library
|
|
153
|
-
*
|
|
154
|
-
*
|
|
153
|
+
* Creates a claim connection. Implementations validate that both the
|
|
154
|
+
* supported and supporting claims exist in the underlying claim library
|
|
155
|
+
* and that the supporting-side claim has the type required by this
|
|
156
|
+
* specialization (e.g. `'citation'` for `ClaimCitationLibrary`,
|
|
157
|
+
* `'axiomatic'` for `ClaimAxiomLibrary`). Citation libraries also
|
|
158
|
+
* reject any edge that would introduce a cycle in the global
|
|
159
|
+
* claim-citation graph.
|
|
155
160
|
*
|
|
156
|
-
* @param
|
|
157
|
-
* @returns The created
|
|
158
|
-
* @throws If a
|
|
159
|
-
* @throws If
|
|
160
|
-
* @throws If the
|
|
161
|
-
*
|
|
161
|
+
* @param connection - The connection data without the `checksum` field.
|
|
162
|
+
* @returns The created connection with `checksum` populated.
|
|
163
|
+
* @throws If a connection with the same ID already exists.
|
|
164
|
+
* @throws If either referenced claim does not exist in the claim library.
|
|
165
|
+
* @throws If the supporting-side claim has the wrong `type` for this
|
|
166
|
+
* specialization.
|
|
167
|
+
* @throws If the connection would create a cycle (citation library only).
|
|
162
168
|
*/
|
|
163
|
-
add(
|
|
169
|
+
add(connection: Omit<TConn, "checksum">): TConn;
|
|
164
170
|
/**
|
|
165
|
-
* Removes a claim
|
|
171
|
+
* Removes a claim connection by ID.
|
|
166
172
|
*
|
|
167
|
-
* @param id - The
|
|
168
|
-
* @returns The removed
|
|
169
|
-
* @throws If the
|
|
173
|
+
* @param id - The connection ID to remove.
|
|
174
|
+
* @returns The removed connection entity.
|
|
175
|
+
* @throws If the connection does not exist.
|
|
170
176
|
*/
|
|
171
|
-
remove(id: string):
|
|
177
|
+
remove(id: string): TConn;
|
|
172
178
|
/**
|
|
173
|
-
* Returns all
|
|
179
|
+
* Returns all connections in the library.
|
|
174
180
|
*
|
|
175
|
-
* @returns An array of all
|
|
181
|
+
* @returns An array of all connection entities.
|
|
176
182
|
*/
|
|
177
|
-
getAll():
|
|
183
|
+
getAll(): TConn[];
|
|
178
184
|
/**
|
|
179
|
-
* Returns all
|
|
185
|
+
* Returns all connections matching the predicate.
|
|
180
186
|
*
|
|
181
|
-
* @param predicate - A filter function applied to each
|
|
182
|
-
* @returns An array of matching
|
|
187
|
+
* @param predicate - A filter function applied to each connection.
|
|
188
|
+
* @returns An array of matching connections.
|
|
183
189
|
*/
|
|
184
|
-
filter(predicate: (c:
|
|
190
|
+
filter(predicate: (c: TConn) => boolean): TConn[];
|
|
185
191
|
/**
|
|
186
|
-
* Returns a serializable snapshot of all
|
|
192
|
+
* Returns a serializable snapshot of all connections in the library.
|
|
187
193
|
*
|
|
188
|
-
* @returns The claim-
|
|
194
|
+
* @returns The claim-connection library snapshot.
|
|
189
195
|
*/
|
|
190
|
-
snapshot():
|
|
196
|
+
snapshot(): TClaimConnectionLibrarySnapshot<TConn>;
|
|
191
197
|
/**
|
|
192
|
-
* Run invariant validation on the claim-
|
|
198
|
+
* Run invariant validation on the claim-connection library.
|
|
193
199
|
*
|
|
194
200
|
* @returns The invariant validation result.
|
|
195
201
|
*/
|
|
196
202
|
validate(): TInvariantValidationResult;
|
|
197
203
|
}
|
|
204
|
+
export type TClaimConnectionLibrarySnapshot<TConn extends TCoreClaimConnection = TCoreClaimConnection> = {
|
|
205
|
+
/** All claim-connection entities in the library. */
|
|
206
|
+
connections: TConn[];
|
|
207
|
+
};
|
|
198
208
|
/**
|
|
199
209
|
* Serializable snapshot of a `ClaimLibrary`. Contains all claim entities
|
|
200
210
|
* across all IDs and versions.
|
|
@@ -203,14 +213,6 @@ export type TClaimLibrarySnapshot<TClaim extends TCoreClaim = TCoreClaim> = {
|
|
|
203
213
|
/** All claim entities in the library. */
|
|
204
214
|
claims: TClaim[];
|
|
205
215
|
};
|
|
206
|
-
/**
|
|
207
|
-
* Serializable snapshot of a `ClaimCitationLibrary`. Contains all citation
|
|
208
|
-
* entities.
|
|
209
|
-
*/
|
|
210
|
-
export type TClaimCitationLibrarySnapshot<TCitation extends TCoreClaimCitation = TCoreClaimCitation> = {
|
|
211
|
-
/** All claim citation entities in the library. */
|
|
212
|
-
claimCitations: TCitation[];
|
|
213
|
-
};
|
|
214
216
|
/**
|
|
215
217
|
* Serializable snapshot of a `ForkLibrary`. Contains arrays of fork records
|
|
216
218
|
* for each entity type.
|
|
@@ -237,15 +239,18 @@ export type TArgumentLibrarySnapshot<TArg extends TCoreArgument = TCoreArgument,
|
|
|
237
239
|
};
|
|
238
240
|
/**
|
|
239
241
|
* Serializable snapshot of a `PropositCore` instance. Contains snapshots of
|
|
240
|
-
* all managed libraries: arguments, claims, claim citations, and fork
|
|
242
|
+
* all managed libraries: arguments, claims, claim citations, axioms, and fork
|
|
243
|
+
* records.
|
|
241
244
|
*/
|
|
242
|
-
export type TPropositCoreSnapshot<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable, TClaim extends TCoreClaim = TCoreClaim, TCitation extends TCoreClaimCitation = TCoreClaimCitation, TArgFork extends TCoreArgumentForkRecord = TCoreArgumentForkRecord, TPremiseFork extends TCorePremiseForkRecord = TCorePremiseForkRecord, TExprFork extends TCoreExpressionForkRecord = TCoreExpressionForkRecord, TVarFork extends TCoreVariableForkRecord = TCoreVariableForkRecord, TClaimFork extends TCoreClaimForkRecord = TCoreClaimForkRecord> = {
|
|
245
|
+
export type TPropositCoreSnapshot<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable, TClaim extends TCoreClaim = TCoreClaim, TCitation extends TCoreClaimCitation = TCoreClaimCitation, TAxiom extends TCoreClaimAxiom = TCoreClaimAxiom, TArgFork extends TCoreArgumentForkRecord = TCoreArgumentForkRecord, TPremiseFork extends TCorePremiseForkRecord = TCorePremiseForkRecord, TExprFork extends TCoreExpressionForkRecord = TCoreExpressionForkRecord, TVarFork extends TCoreVariableForkRecord = TCoreVariableForkRecord, TClaimFork extends TCoreClaimForkRecord = TCoreClaimForkRecord> = {
|
|
243
246
|
/** Snapshot of all argument engines. */
|
|
244
247
|
arguments: TArgumentLibrarySnapshot<TArg, TPremise, TExpr, TVar>;
|
|
245
248
|
/** Snapshot of the claim library. */
|
|
246
249
|
claims: TClaimLibrarySnapshot<TClaim>;
|
|
247
250
|
/** Snapshot of the claim-citation library. */
|
|
248
|
-
|
|
251
|
+
citations: TClaimConnectionLibrarySnapshot<TCitation>;
|
|
252
|
+
/** Snapshot of the claim-axiom library. */
|
|
253
|
+
axioms: TClaimConnectionLibrarySnapshot<TAxiom>;
|
|
249
254
|
/** Snapshot of the fork library. */
|
|
250
255
|
forks: TForkLibrarySnapshot<TArgFork, TPremiseFork, TExprFork, TVarFork, TClaimFork>;
|
|
251
256
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/library.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AAC1E,OAAO,KAAK,EACR,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACvB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AAC3E,OAAO,KAAK,EACR,aAAa,EACb,YAAY,EACZ,4BAA4B,EAC5B,0BAA0B,EAC7B,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D;;;;GAIG;AACH,MAAM,WAAW,YAAY,CAAC,MAAM,SAAS,UAAU,GAAG,UAAU;IAChE;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAEpD;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAC7C;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB,CACpC,MAAM,SAAS,UAAU,GAAG,UAAU,CACxC,SAAQ,YAAY,CAAC,MAAM,CAAC;IAC1B;;;;;;;;;;OAUG;IACH,MAAM,CACF,KAAK,EACC,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC,GAC/C,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC,GAAG;QACtD,EAAE,CAAC,EAAE,MAAM,CAAA;KACd,CAAC,GACT,MAAM,CAAA;IAET;;;;;;;;;;OAUG;IACH,MAAM,CACF,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,GACzE,MAAM,CAAA;IAET;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAEvD;;;;;OAKG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAE1C;;;;OAIG;IACH,MAAM,IAAI,MAAM,EAAE,CAAA;IAElB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAEjC;;;;OAIG;IACH,QAAQ,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAEzC;;;;OAIG;IACH,QAAQ,IAAI,0BAA0B,CAAA;CACzC;AAED
|
|
1
|
+
{"version":3,"file":"library.interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/library.interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { PremiseEngine, type TPremiseEngineSnapshot } from "./premise-engine.js"
|
|
|
3
3
|
import { VariableManager } from "./variable-manager.js";
|
|
4
4
|
import { type TLogicEngineOptions } from "./argument-engine.js";
|
|
5
5
|
/**
|
|
6
|
-
* Minimal structural interface needed by `
|
|
6
|
+
* Minimal structural interface needed by `populateFromSupports`. Using a
|
|
7
7
|
* structural type rather than the concrete `ArgumentEngine<…>` class prevents
|
|
8
8
|
* generic-parameter variance errors when the caller uses default type params.
|
|
9
9
|
*/
|
|
@@ -14,6 +14,7 @@ import { type TGrammarConfig } from "../types/grammar.js";
|
|
|
14
14
|
import type { TExpressionInput, TExpressionWithoutPosition, TExpressionUpdate } from "./expression-manager.js";
|
|
15
15
|
import type { TCoreMutationResult } from "../types/mutation.js";
|
|
16
16
|
import type { ClaimCitationLibrary } from "./claim-citation-library.js";
|
|
17
|
+
import type { ClaimAxiomLibrary } from "./claim-axiom-library.js";
|
|
17
18
|
/**
|
|
18
19
|
* A managed engine for derivation premises that enforces structural rules
|
|
19
20
|
* from the v0.11.0 spec on construction and on snapshot restoration.
|
|
@@ -40,7 +41,7 @@ import type { ClaimCitationLibrary } from "./claim-citation-library.js";
|
|
|
40
41
|
export declare class ManagedDerivationPremiseEngine<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable> extends PremiseEngine<TArg, TPremise, TExpr, TVar> {
|
|
41
42
|
/**
|
|
42
43
|
* Captured from `config.generateId` (or the default UUID generator) for
|
|
43
|
-
* use in `
|
|
44
|
+
* use in `populateFromSupports`, which needs to mint new expression IDs.
|
|
44
45
|
* Stored separately because `PremiseEngine`'s generateId is private.
|
|
45
46
|
* Not `readonly` because `fromSnapshot` re-injects it after the prototype
|
|
46
47
|
* upgrade.
|
|
@@ -85,20 +86,21 @@ export declare class ManagedDerivationPremiseEngine<TArg extends TCoreArgument =
|
|
|
85
86
|
normalizeExpressions(): TCoreMutationResult<void, TExpr, TVar, TPremise, TArg>;
|
|
86
87
|
loadExpressions(expressions: TExpressionInput<TExpr>[]): void;
|
|
87
88
|
/**
|
|
88
|
-
* One-shot
|
|
89
|
-
*
|
|
89
|
+
* One-shot helper that builds the antecedent of this derivation premise
|
|
90
|
+
* from the current global support (citations + axiom invocations) of the
|
|
91
|
+
* derived claim.
|
|
90
92
|
*
|
|
91
|
-
* Behavior by
|
|
93
|
+
* Behavior by total support count `n = citations + axioms`:
|
|
92
94
|
* - n = 0: no change. Premise stays in its current form (typically
|
|
93
95
|
* naked-Q, indicating "no support given").
|
|
94
|
-
* - n = 1:
|
|
95
|
-
* - n ≥ 2:
|
|
96
|
-
*
|
|
97
|
-
* buffer between IMPLIES and OR is auto-inserted by
|
|
98
|
-
* standard grammar
|
|
96
|
+
* - n = 1: `IMPLIES(VarExpr(S1), Q)`.
|
|
97
|
+
* - n ≥ 2: `IMPLIES(formula(OR(VarExpr(S1), …, VarExpr(Sn))), Q)`.
|
|
98
|
+
* Citations come first, axioms second; source order preserved within
|
|
99
|
+
* each. The formula buffer between IMPLIES and OR is auto-inserted by
|
|
100
|
+
* the engine's standard grammar.
|
|
99
101
|
*
|
|
100
|
-
* Materializes a claim-bound variable for each
|
|
101
|
-
* `argumentEngine.ensureClaimBoundVariable(
|
|
102
|
+
* Materializes a claim-bound variable for each supporting claim via
|
|
103
|
+
* `argumentEngine.ensureClaimBoundVariable(supportingClaimId)`.
|
|
102
104
|
*
|
|
103
105
|
* **Tree construction approach:** Mutations are performed via `super.*`
|
|
104
106
|
* calls, bypassing this class's overrides (which call `assertWellFormed()`
|
|
@@ -108,14 +110,25 @@ export declare class ManagedDerivationPremiseEngine<TArg extends TCoreArgument =
|
|
|
108
110
|
* IMPLIES and OR for n ≥ 2 automatically. `assertWellFormed()` is called
|
|
109
111
|
* at the end to validate the final state.
|
|
110
112
|
*
|
|
111
|
-
* @throws InvariantViolationError(DERIVATION_ANTECEDENT_NON_EMPTY) when
|
|
112
|
-
*
|
|
113
|
-
* root is `implies`/`iff` with a position-0 child). The caller
|
|
114
|
-
* decides whether to delete and re-create the premise.
|
|
113
|
+
* @throws InvariantViolationError(DERIVATION_ANTECEDENT_NON_EMPTY) when
|
|
114
|
+
* the antecedent slot is already filled.
|
|
115
115
|
*
|
|
116
|
-
* @since 0.
|
|
116
|
+
* @since 0.12.0
|
|
117
117
|
*/
|
|
118
|
-
|
|
118
|
+
populateFromSupports(citationLib: ClaimCitationLibrary, axiomLib: ClaimAxiomLibrary, argumentEngine: TVariableMaterializer): void;
|
|
119
|
+
/**
|
|
120
|
+
* Build the antecedent expression tree from a list of already-materialized
|
|
121
|
+
* supporting variables. Shared between populate helpers.
|
|
122
|
+
*
|
|
123
|
+
* - n=0 → no-op (caller decides whether to leave the naked-Q form intact).
|
|
124
|
+
* - n=1 → IMPLIES(VarExpr(S1), Q) using wrapExpression with rightNodeId=Q.
|
|
125
|
+
* - n≥2 → IMPLIES(formula(OR(S1, ..., Sn)), Q) via wrapExpression + appendExpression.
|
|
126
|
+
*
|
|
127
|
+
* Uses `super.*` mutation calls to bypass this class's overrides during
|
|
128
|
+
* multi-step construction. Caller is responsible for the final
|
|
129
|
+
* `assertWellFormed()`.
|
|
130
|
+
*/
|
|
131
|
+
private buildAntecedentFromSupportingVariables;
|
|
119
132
|
/**
|
|
120
133
|
* Returns the ID of the consequent expression, or `undefined` if the tree
|
|
121
134
|
* has no root yet.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-derivation-premise-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/core/managed-derivation-premise-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,aAAa,EAElB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EAC3B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,aAAa,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAEH,KAAK,mBAAmB,EAC3B,MAAM,sBAAsB,CAAA;AAE7B;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAChC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,CAAA;CACjE,CAAA;AACD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAUzD,OAAO,KAAK,EACR,gBAAgB,EAChB,0BAA0B,EAC1B,iBAAiB,EACpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"managed-derivation-premise-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/core/managed-derivation-premise-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ import { validateDerivationStructure } from "../utils/derivation-validation.js";
|
|
|
32
32
|
export class ManagedDerivationPremiseEngine extends PremiseEngine {
|
|
33
33
|
/**
|
|
34
34
|
* Captured from `config.generateId` (or the default UUID generator) for
|
|
35
|
-
* use in `
|
|
35
|
+
* use in `populateFromSupports`, which needs to mint new expression IDs.
|
|
36
36
|
* Stored separately because `PremiseEngine`'s generateId is private.
|
|
37
37
|
* Not `readonly` because `fromSnapshot` re-injects it after the prototype
|
|
38
38
|
* upgrade.
|
|
@@ -78,7 +78,7 @@ export class ManagedDerivationPremiseEngine extends PremiseEngine {
|
|
|
78
78
|
Object.setPrototypeOf(pe, ManagedDerivationPremiseEngine.prototype);
|
|
79
79
|
const engine = pe;
|
|
80
80
|
// Inject the generateId captured from config (or the default) so that
|
|
81
|
-
//
|
|
81
|
+
// populateFromSupports can mint new expression IDs.
|
|
82
82
|
engine.generateIdFn = generateId ?? defaultGenerateId;
|
|
83
83
|
// Validate the full tree — expressions are fully loaded at this point.
|
|
84
84
|
// (Type was already checked at the top before delegating to the parent.)
|
|
@@ -207,20 +207,21 @@ export class ManagedDerivationPremiseEngine extends PremiseEngine {
|
|
|
207
207
|
// Public one-shot helpers
|
|
208
208
|
// -------------------------------------------------------------------------
|
|
209
209
|
/**
|
|
210
|
-
* One-shot
|
|
211
|
-
*
|
|
210
|
+
* One-shot helper that builds the antecedent of this derivation premise
|
|
211
|
+
* from the current global support (citations + axiom invocations) of the
|
|
212
|
+
* derived claim.
|
|
212
213
|
*
|
|
213
|
-
* Behavior by
|
|
214
|
+
* Behavior by total support count `n = citations + axioms`:
|
|
214
215
|
* - n = 0: no change. Premise stays in its current form (typically
|
|
215
216
|
* naked-Q, indicating "no support given").
|
|
216
|
-
* - n = 1:
|
|
217
|
-
* - n ≥ 2:
|
|
218
|
-
*
|
|
219
|
-
* buffer between IMPLIES and OR is auto-inserted by
|
|
220
|
-
* standard grammar
|
|
217
|
+
* - n = 1: `IMPLIES(VarExpr(S1), Q)`.
|
|
218
|
+
* - n ≥ 2: `IMPLIES(formula(OR(VarExpr(S1), …, VarExpr(Sn))), Q)`.
|
|
219
|
+
* Citations come first, axioms second; source order preserved within
|
|
220
|
+
* each. The formula buffer between IMPLIES and OR is auto-inserted by
|
|
221
|
+
* the engine's standard grammar.
|
|
221
222
|
*
|
|
222
|
-
* Materializes a claim-bound variable for each
|
|
223
|
-
* `argumentEngine.ensureClaimBoundVariable(
|
|
223
|
+
* Materializes a claim-bound variable for each supporting claim via
|
|
224
|
+
* `argumentEngine.ensureClaimBoundVariable(supportingClaimId)`.
|
|
224
225
|
*
|
|
225
226
|
* **Tree construction approach:** Mutations are performed via `super.*`
|
|
226
227
|
* calls, bypassing this class's overrides (which call `assertWellFormed()`
|
|
@@ -230,14 +231,12 @@ export class ManagedDerivationPremiseEngine extends PremiseEngine {
|
|
|
230
231
|
* IMPLIES and OR for n ≥ 2 automatically. `assertWellFormed()` is called
|
|
231
232
|
* at the end to validate the final state.
|
|
232
233
|
*
|
|
233
|
-
* @throws InvariantViolationError(DERIVATION_ANTECEDENT_NON_EMPTY) when
|
|
234
|
-
*
|
|
235
|
-
* root is `implies`/`iff` with a position-0 child). The caller
|
|
236
|
-
* decides whether to delete and re-create the premise.
|
|
234
|
+
* @throws InvariantViolationError(DERIVATION_ANTECEDENT_NON_EMPTY) when
|
|
235
|
+
* the antecedent slot is already filled.
|
|
237
236
|
*
|
|
238
|
-
* @since 0.
|
|
237
|
+
* @since 0.12.0
|
|
239
238
|
*/
|
|
240
|
-
|
|
239
|
+
populateFromSupports(citationLib, axiomLib, argumentEngine) {
|
|
241
240
|
const premise = this.premise;
|
|
242
241
|
const derivedClaimId = premise.derivedClaimId;
|
|
243
242
|
// 1. Reject if antecedent is already non-empty.
|
|
@@ -265,31 +264,57 @@ export class ManagedDerivationPremiseEngine extends PremiseEngine {
|
|
|
265
264
|
}
|
|
266
265
|
}
|
|
267
266
|
}
|
|
268
|
-
// 2.
|
|
269
|
-
|
|
270
|
-
|
|
267
|
+
// 2. Collect supporting connections from both libraries (citations
|
|
268
|
+
// first, axioms second; source order preserved within each).
|
|
269
|
+
const citationConnections = citationLib.getConnectionsForClaim(derivedClaimId);
|
|
270
|
+
const axiomConnections = axiomLib.getConnectionsForClaim(derivedClaimId);
|
|
271
|
+
const totalCount = citationConnections.length + axiomConnections.length;
|
|
272
|
+
if (totalCount === 0)
|
|
271
273
|
return;
|
|
272
|
-
// 3. Materialize
|
|
274
|
+
// 3. Materialize claim-bound variables for each support.
|
|
273
275
|
// ensureClaimBoundVariable adds the variable to the live argumentEngine,
|
|
274
276
|
// but the managed engine has its own VariableManager snapshot that was
|
|
275
277
|
// taken before these new variables were created. Register each newly
|
|
276
278
|
// returned variable into this engine's VariableManager so that the
|
|
277
279
|
// variable expressions we construct below pass assertVariableExpressionValid.
|
|
278
|
-
const
|
|
279
|
-
for (const
|
|
280
|
+
const supportingVariables = [];
|
|
281
|
+
for (const conn of citationConnections) {
|
|
282
|
+
supportingVariables.push(argumentEngine.ensureClaimBoundVariable(conn.supportingClaimId));
|
|
283
|
+
}
|
|
284
|
+
for (const conn of axiomConnections) {
|
|
285
|
+
supportingVariables.push(argumentEngine.ensureClaimBoundVariable(conn.supportingClaimId));
|
|
286
|
+
}
|
|
287
|
+
for (const sv of supportingVariables) {
|
|
280
288
|
if (!this.variables.hasVariable(sv.id)) {
|
|
281
289
|
this.variables.addVariable(sv);
|
|
282
290
|
}
|
|
283
291
|
}
|
|
284
|
-
// 4. Build the antecedent expression tree.
|
|
285
|
-
|
|
286
|
-
//
|
|
292
|
+
// 4. Build the antecedent expression tree.
|
|
293
|
+
this.buildAntecedentFromSupportingVariables(supportingVariables);
|
|
294
|
+
// 5. Validate the final tree is well-formed.
|
|
295
|
+
this.assertWellFormed();
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Build the antecedent expression tree from a list of already-materialized
|
|
299
|
+
* supporting variables. Shared between populate helpers.
|
|
300
|
+
*
|
|
301
|
+
* - n=0 → no-op (caller decides whether to leave the naked-Q form intact).
|
|
302
|
+
* - n=1 → IMPLIES(VarExpr(S1), Q) using wrapExpression with rightNodeId=Q.
|
|
303
|
+
* - n≥2 → IMPLIES(formula(OR(S1, ..., Sn)), Q) via wrapExpression + appendExpression.
|
|
304
|
+
*
|
|
305
|
+
* Uses `super.*` mutation calls to bypass this class's overrides during
|
|
306
|
+
* multi-step construction. Caller is responsible for the final
|
|
307
|
+
* `assertWellFormed()`.
|
|
308
|
+
*/
|
|
309
|
+
buildAntecedentFromSupportingVariables(supportingVars) {
|
|
310
|
+
if (supportingVars.length === 0)
|
|
311
|
+
return;
|
|
287
312
|
const argId = this.premise.argumentId;
|
|
288
313
|
const argVersion = this.premise.argumentVersion;
|
|
289
314
|
const premiseId = this.premise.id;
|
|
290
315
|
// qRootExprId is the ID of the current naked-Q root variable expression.
|
|
291
316
|
const qRootExprId = this.rootExpressionId;
|
|
292
|
-
if (
|
|
317
|
+
if (supportingVars.length === 1) {
|
|
293
318
|
// n = 1: wrap naked-Q with IMPLIES using rightNodeId so that Q lands
|
|
294
319
|
// at the midpoint (consequent) position and S1 lands at initial.
|
|
295
320
|
const impliesId = this.generateIdFn();
|
|
@@ -310,7 +335,7 @@ export class ManagedDerivationPremiseEngine extends PremiseEngine {
|
|
|
310
335
|
premiseId,
|
|
311
336
|
parentId: null, // wrapExpression sets the parentId internally
|
|
312
337
|
type: "variable",
|
|
313
|
-
variableId:
|
|
338
|
+
variableId: supportingVars[0].id,
|
|
314
339
|
};
|
|
315
340
|
// rightNodeId=qRootExprId: existing node (Q) → midpoint (consequent),
|
|
316
341
|
// newSibling (S1) → initial (antecedent).
|
|
@@ -321,7 +346,7 @@ export class ManagedDerivationPremiseEngine extends PremiseEngine {
|
|
|
321
346
|
// throughout — the engine's wrapInsertFormula rule auto-inserts a
|
|
322
347
|
// formula buffer between IMPLIES and OR. The OR keeps its original
|
|
323
348
|
// ID, so subsequent appendExpression(orId, ...) calls still attach
|
|
324
|
-
// the
|
|
349
|
+
// the supporting variables to the same OR node.
|
|
325
350
|
const impliesId = this.generateIdFn();
|
|
326
351
|
const orId = this.generateIdFn();
|
|
327
352
|
const impliesOp = {
|
|
@@ -344,8 +369,8 @@ export class ManagedDerivationPremiseEngine extends PremiseEngine {
|
|
|
344
369
|
};
|
|
345
370
|
// rightNodeId=qRootExprId: Q → midpoint (consequent), OR → initial (antecedent).
|
|
346
371
|
super.wrapExpression(impliesOp, orOp, undefined, qRootExprId);
|
|
347
|
-
// Append each
|
|
348
|
-
for (const sourceVar of
|
|
372
|
+
// Append each supporting variable expression as a child of OR.
|
|
373
|
+
for (const sourceVar of supportingVars) {
|
|
349
374
|
const srcExprId = this.generateIdFn();
|
|
350
375
|
const srcVarExpr = {
|
|
351
376
|
id: srcExprId,
|
|
@@ -359,8 +384,6 @@ export class ManagedDerivationPremiseEngine extends PremiseEngine {
|
|
|
359
384
|
super.appendExpression(orId, srcVarExpr);
|
|
360
385
|
}
|
|
361
386
|
}
|
|
362
|
-
// 5. Validate the final tree is well-formed.
|
|
363
|
-
this.assertWellFormed();
|
|
364
387
|
}
|
|
365
388
|
// -------------------------------------------------------------------------
|
|
366
389
|
// Private helpers
|