Files
git.stella-ops.org/docs/features/checked/vexlens/deterministic-vex-resolver-with-lattice-merge.md
2026-02-14 09:11:48 +02:00

33 lines
2.6 KiB
Markdown

# Deterministic VEX Resolver with Lattice Merge
## Module
VexLens
## Status
IMPLEMENTED
## Description
Full VEX consensus engine with lattice merge semantics, trust weight computation, and conflict resolution. Supports deterministic, commutative, idempotent, and associative merge operations.
## Implementation Details
- **Consensus engine**: `src/VexLens/StellaOps.VexLens/Consensus/VexConsensusEngine.cs`, `IVexConsensusEngine.cs` -- lattice merge with deterministic, commutative, idempotent, and associative merge operations
- **Core consensus engine**: `src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/VexConsensusEngine.cs`, `IVexConsensusEngine.cs` -- core consensus logic
- **Normalizers**: `src/VexLens/StellaOps.VexLens/Normalization/CsafVexNormalizer.cs`, `CycloneDxVexNormalizer.cs`, `OpenVexNormalizer.cs`, `IVexNormalizer.cs` -- normalize CSAF, CycloneDX, and OpenVEX into unified VEX model
- **Core normalizer**: `src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/VexLensNormalizer.cs`, `IVexLensNormalizer.cs`
- **Product mapping**: `src/VexLens/StellaOps.VexLens/Mapping/ProductMapper.cs`, `ProductIdentityMatcher.cs`, `CpeParser.cs`, `PurlParser.cs` -- product identity resolution for merge
- **Propagation engine**: `src/VexLens/StellaOps.VexLens/Propagation/PropagationRuleEngine.cs`, `IPropagationRuleEngine.cs` -- VEX statement propagation rules
- **Condition evaluator**: `src/VexLens/StellaOps.VexLens/Conditions/ConditionEvaluator.cs`, `IConditionEvaluator.cs` -- conditional merge evaluation
- **Proof builder**: `src/VexLens/StellaOps.VexLens/Proof/VexProofBuilder.cs`, `VexProof.cs`, `VexProofSerializer.cs` -- deterministic proof generation for merge decisions
- **Normalized models**: `src/VexLens/StellaOps.VexLens/Models/NormalizedVexModels.cs` -- unified VEX document model
- **Tests**: `src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/E2E/VexLensPipelineDeterminismTests.cs`, `Proof/VexProofShuffleDeterminismTests.cs`, `Propagation/PropagationRuleEngineTests.cs`, `Regression/VexLensRegressionTests.cs`
- **Golden corpus**: `src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/` -- deterministic corpus tests
- **Source**: Feature matrix scan
## E2E Test Plan
- [ ] Verify lattice merge produces deterministic results regardless of input order
- [ ] Test commutativity: merge(A,B) equals merge(B,A)
- [ ] Test idempotency: merge(A,A) equals A
- [ ] Test associativity: merge(merge(A,B),C) equals merge(A,merge(B,C))
- [ ] Verify conflict resolution produces consistent outcomes
- [ ] Run golden corpus determinism tests