Spaces:
Running
Running
| // SPDX-License-Identifier: Apache-2.0 | |
| // © 2026 Lutar, Stephen P. — SZL Holdings | |
| // ORCID: 0009-0001-0110-4173 | |
| // | |
| // Layer 6 — a11oy policy gate for LambdaUniquenessConjecture (TH_L1) | |
| // | |
| // DOCTRINE v11 LOCKED — Invariant #2: | |
| // Λ = Conjecture 1 (NEVER a theorem). This gate validates scoring consistency | |
| // under the CONJECTURE that Λ_k as weighted geometric mean with Egyptian | |
| // unit-fraction weights is unique given the four axioms. The uniqueness is | |
| // NOT formally proved — it is Conjecture 1 per SZL Doctrine v11 (LOCKED). | |
| // | |
| // Lean file: Lutar/Uniqueness.lean | |
| // Lean commit SHA: 1dca00032dfc9aa8559cc6c2e4b63192fcf52371 | |
| // Lean status: conjecture-open (NOT a theorem — LOCKED by Doctrine v11) | |
| // | |
| // References: | |
| // Zenodo: https://doi.org/10.5281/zenodo.20053148 | |
| export interface LambdaUniquenessConjectureGateConfig { | |
| /** Egyptian unit-fraction weights (must sum to 1). Default: equal weights 1/9. */ | |
| weights?: number[]; | |
| /** Tolerance for uniqueness check. Default: 1e-10. */ | |
| tolerance?: number; | |
| } | |
| export interface LambdaUniquenessConjectureGateOpts { | |
| axisScores: number[]; | |
| submittedScore: number; | |
| } | |
| export interface LambdaUniquenessConjectureDecision { | |
| allow: boolean; | |
| rationale: string; | |
| formula: string; | |
| leanConjecture: string; | |
| leanFile: string; | |
| leanCommitSha: string; | |
| leanStatus: string; | |
| canonicalScore: number; | |
| submittedScore: number; | |
| delta: number; | |
| conjectureHolds: boolean; | |
| lambdaScore: number; | |
| isConjecture: true; | |
| proven: false; | |
| lambdaStatement: string; | |
| } | |
| // DOCTRINE v11: Λ is Conjecture 1, NEVER a theorem | |
| const LEAN_CONJECTURE = "lambdaUniquenessConjecture"; | |
| const LEAN_FILE = "Lutar/Uniqueness.lean"; | |
| const LEAN_COMMIT = "1dca00032dfc9aa8559cc6c2e4b63192fcf52371"; | |
| const LEAN_STATUS = "conjecture-open (NOT a theorem — LOCKED by Doctrine v11)"; | |
| const LAMBDA_STMT = "Conjecture 1 (NOT a theorem — LOCKED by Doctrine v11)"; | |
| const DEFAULT_TOL = 1e-10; | |
| // ── Inline formula ──────────────────────────────────────────────────────────── | |
| // TH_L1 (CONJECTURE): Λ_k = ∏_i(x_i^w_i) for Egyptian unit-fraction weights w_i | |
| // NOTE: Uniqueness is CONJECTURED, not proved. Doctrine v11 Invariant #2: LOCKED. | |
| function _weightedGeometricMean(scores: number[], weights: number[]): number { | |
| let result = 1; | |
| for (let i = 0; i < scores.length; i++) { | |
| result *= Math.pow(Math.max(scores[i], 1e-12), weights[i]); | |
| } | |
| return result; | |
| } | |
| export function lambdaUniquenessConjectureGate( | |
| config: LambdaUniquenessConjectureGateConfig = {} | |
| ): (opts: LambdaUniquenessConjectureGateOpts) => LambdaUniquenessConjectureDecision { | |
| const tolerance = config.tolerance ?? DEFAULT_TOL; | |
| return function gate(opts: LambdaUniquenessConjectureGateOpts): LambdaUniquenessConjectureDecision { | |
| const { axisScores, submittedScore } = opts; | |
| if (!Array.isArray(axisScores) || axisScores.length === 0) { | |
| throw new Error(`LambdaUniquenessConjectureGate: axisScores must be non-empty`); | |
| } | |
| if (!Number.isFinite(submittedScore)) throw new Error(`LambdaUniquenessConjectureGate: submittedScore must be finite`); | |
| const n = axisScores.length; | |
| const weights = config.weights ?? Array(n).fill(1 / n); | |
| if (weights.length !== n) throw new Error(`LambdaUniquenessConjectureGate: weights length must match axisScores`); | |
| const canonicalScore = _weightedGeometricMean(axisScores, weights); | |
| const delta = Math.abs(submittedScore - canonicalScore); | |
| const conjectureHolds = delta <= tolerance; | |
| const allow = conjectureHolds; | |
| const lambdaScore = canonicalScore; | |
| // DOCTRINE: Always emit lambda_statement clarifying conjecture status | |
| const rationale = allow | |
| ? `LambdaUniquenessConjecture (TH_L1 CONJECTURE): submitted=${submittedScore.toFixed(6)} ≈ canonical=${canonicalScore.toFixed(6)} (Δ=${delta.toExponential(3)}). Scoring consistent with conjecture. Passes. NOTE: ${LAMBDA_STMT}` | |
| : `LambdaUniquenessConjecture (TH_L1 CONJECTURE): submitted=${submittedScore.toFixed(6)} ≠ canonical=${canonicalScore.toFixed(6)} (Δ=${delta.toExponential(3)} > tol=${tolerance.toExponential(3)}). Non-canonical scorer. Denied. NOTE: ${LAMBDA_STMT}`; | |
| return { | |
| allow, | |
| rationale, | |
| formula: "LambdaUniquenessConjecture", | |
| leanConjecture: LEAN_CONJECTURE, | |
| leanFile: LEAN_FILE, | |
| leanCommitSha: LEAN_COMMIT, | |
| leanStatus: LEAN_STATUS, | |
| canonicalScore, | |
| submittedScore, | |
| delta, | |
| conjectureHolds, | |
| lambdaScore, | |
| isConjecture: true, | |
| proven: false, | |
| lambdaStatement: LAMBDA_STMT, | |
| }; | |
| }; | |
| } | |
| // Backward-compat alias with doctrine warning | |
| /** @deprecated Use lambdaUniquenessConjectureGate — renamed per Doctrine v11 Invariant #2 */ | |
| export const lambdaUniquenessGate = lambdaUniquenessConjectureGate; | |