Wellbore Genius
Help

Metamorphic verification agent

shipped
N/A
Research
id: metamorphic-verification

Research-grade — validation in progress.

Today

Seeded metamorphic-relation fuzzer over the solver envelope: `src/lib/verification/metamorphicRunner.ts` (mulberry32 PRNG — every run is reproducible from `{ relationId, seed, cases }`), relation authoring + invariants (`relationAuthoring.ts`, `relationInvariants.ts`, `seedRelations.ts`), solver adapters (`solverAdapters.ts`), and report/diff surfaces (`metamorphicReport.ts`, `verificationReportDiff.ts`). Relations encode physics that must hold under input transforms (monotonicity, scaling, symmetry, superposition) rather than a single golden number, so a violation names the relation, the seed, and the offending case. Live surface `/metamorphic-verify` runs the suite, shows per-relation pass/violation counts, and exports the report.

Roadmap

Relation library covers the analytical and DDM screening tiers; coverage of the coupled T-M-H and 3-phase black-oil paths is partial. CI GATE SHIPPED — `scripts/metamorphicRelationGate.ts` + the `Metamorphic Relation Gate` workflow run every ACCEPTED relation at 256 cases/relation on a pinned seed (20260817) on every PR and fail the merge on any violation, with a JSON/text report uploaded as an artifact. Wide fuzzing immediately paid for itself: `mudwindow-floor-below-tensile-ceiling` was demoted to `proposed` (diagnostic, not gated) after 96-case fuzzing produced legitimate high-anisotropy deviated counter-examples where the tensile breakdown pressure genuinely falls below pore pressure. Next ship: auto-generate relations from dimensional analysis (`dimensionalCheck.ts`) so new solver outputs get candidate relations without hand-authoring.

Shipping history

No phase markers extracted from this row's prose yet.

Validation
Failure modes
  • No published error band yet — use with engineering judgment.
Last reviewed 2026-06-01