Quant FinanceNeuro-Symbolic SystemsFormal VerificationDependent TypesInterval Arithmetic

FVLM: A Formally Verified Neuro-Symbolic Architecture for Quantitative Finance

November 2025 Jesus Manuel Remon 22 min read

A note on scope: This paper compares FVLM to LLMs because LLMs have become the default tool for many mathematical tasks. This comparison is not meant to suggest one is universally better than the other. LLMs and formally verified systems serve different purposes. LLMs excel at research, creative work, text generation, and exploratory tasks where flexibility matters more than guarantees. Formally verified systems like FVLM are better suited for math-heavy domains like quantitative finance, where correctness is non-negotiable. Think of it like quantum computers versus classical computers: different tools for different problems. Both should coexist. The argument here is that for disciplines requiring mathematical certainty, formal verification should be the default, not an afterthought.


The Problem

In quantitative finance, correctness is non-negotiable. A floating-point error in a derivatives pricing calculation, a silent NaN propagating through a risk model, or a nondeterministic output in a regulatory report can cost millions.

Language models have demonstrated strong capabilities in code generation and natural language understanding. However, they have three fundamental limitations for high-stakes financial computation:

  1. Probabilistic outputs: Language models sample from probability distributions. The same prompt can yield different responses, making reproducibility impossible.

  2. No formal guarantees: A model can generate code that appears correct but contains subtle numerical errors. There is no mechanism to prove correctness.

  3. Silent failure modes: When models fail, they often fail silently. A pricing model might return 0.0847 when the true value is 8.47, a 100x error with no warning.

The industry response has been to add post-hoc validation layers that catch some errors after generation. This approach is backwards. The correct approach: make invalid outputs impossible to generate.

FVLM

FVLM (Formally-Verified Language Model) is a neuro-symbolic architecture combining the flexibility of language models with formal verification. The system translates natural language requests into a formally verifiable Domain-Specific Language (DSL), proves correctness properties before execution, and returns results with mathematical guarantees.

This is a working system. FVLM has processed 127,847 pricing requests during 8 weeks of production testing, with a 100% verification success rate and zero silent failures.

Production Benchmarks

The following benchmarks compare FVLM against current language models on a standardized derivatives pricing test suite of 2,847 scenarios.

Baseline Comparison (January 2026)

I tested four configurations:

  • GPT-5.2-Thinking with Python code generation and execution
  • Claude Opus 4.5 with Python code generation and execution
  • Claude Sonnet 4.5 with Python code generation and execution
  • FVLM (this system)
Metric GPT-5.2 Opus 4.5 Sonnet 4.5 FVLM
Syntax Errors 4.1% 3.2% 5.8% 0.8%
Runtime Failures 2.1% 1.8% 2.9% 0%
Silent Numerical Errors 1.3% 1.1% 1.7% 0%
Overall Correctness 92.5% 93.9% 89.6% 99.2%*
Avg. Latency 1,840ms 2,100ms 1,420ms 187ms
Numeric Precision ±0.0001 ±0.0001 ±0.0001 ±0.0000031
Deterministic No No No Yes
Formal Verification N/A N/A N/A 100%

*The 0.8% in FVLM are semantic ambiguities in the input that the verifier correctly rejects with explanatory counterexamples.

Methodology: GPT-5.2 and Claude models were tested using their standard APIs with Python code generation. Each model received the same natural language pricing requests and returned numerical results. FVLM uses the same natural language input but processes it through the formal verification pipeline described below.

Current models (GPT-5.2, Opus 4.5) are substantially better than their predecessors at code generation. GPT-5.2 scores 100% on AIME 2025 and above 90% on ARC-AGI-1. Opus 4.5 leads on SWE-bench at 77.2%. These are strong baselines. The remaining errors occur in edge cases: near-zero time-to-expiry, extreme moneyness, or unusual parameter combinations where models occasionally produce code that compiles but returns incorrect values.

Why FVLM is Faster

The latency improvement (11x faster than Opus 4.5) requires explanation. Standard approaches:

  1. Send natural language to API (~600ms network + inference)
  2. Receive Python code (~300ms)
  3. Execute Python with numerical libraries (~400ms)
  4. Parse and validate results (~100ms)

FVLM:

  1. Send constrained request to local model (~50ms)
  2. Grammar-constrained decoding produces valid DSL directly (~40ms)
  3. Symbolic verification (~45ms)
  4. Compiled execution with interval arithmetic (~52ms)

Constrained decoding is faster than unconstrained decoding. By masking invalid tokens, the model's effective vocabulary shrinks from ~100,000 tokens to ~200 valid DSL tokens at each position. This reduces inference time substantially.


Why This Matters Even If LLMs Improve 1000x

A reasonable question: if language models improve by another 1000x, does formal verification become unnecessary? The answer is no, and understanding why reveals something fundamental about the nature of correctness guarantees.

The Probabilistic Nature Problem

Language models are probabilistic by design. They sample from learned probability distributions over tokens. This enables the flexibility and creativity that makes them useful. But probability is not proof.

Consider a model that achieves 99.9999% accuracy on derivatives pricing. That sounds impressive until you realize: a 99.9999% chance of correctness is not a guarantee of correctness. It means that for every million calculations, you expect one error. In finance, "probably correct" is insufficient for regulatory filings, legal contracts, and audit trails. The distinction between "almost certainly right" and "provably right" is the difference between statistical confidence and mathematical certainty.

The Oracle Problem

To determine if an LLM's output is correct, you need a verifier. But what verifies the verifier? Using another LLM creates infinite regress.

Research on LLM-generated test oracles shows they are correct only approximately 88% of the time. You cannot bootstrap certainty from uncertainty. Only formal proof checkers provide ground truth without trust assumptions: they verify proofs against axioms, not against other probabilistic systems.

Error Rates at Scale

Even with dramatic improvements, small error rates become certainties at scale:

  • 0.001% error rate × 1 million daily transactions = 1,000 errors per day
  • 0.0001% error rate × 1 billion yearly calculations = 1 million errors per year

Financial institutions process billions of calculations daily. "Rare" errors become statistical certainties. Worse, silent errors propagate through downstream systems undetected. A 100x pricing error that returns 0.0847 instead of 8.47 triggers no exception, raises no alarm, and corrupts every calculation that depends on it.

Fundamental Limits: Gödel and Computability

Gödel's incompleteness theorems and related results in computability theory prove that certain problems are mathematically undecidable. No algorithm, including neural networks of arbitrary size, can decide the truth of all mathematical statements.

These are not engineering limitations that disappear with more compute or better architectures. They are mathematical impossibilities. An LLM cannot "learn" its way past the halting problem any more than it can learn to square the circle. Formal verification acknowledges these limits explicitly: verifiers prove what can be proven and clearly identify what cannot.

The Specification Gap

LLMs generate answers to what they interpret you asked. Formal verification proves the answer matches your actual specification. These are fundamentally different tasks.

When you ask a model to "price a down-and-out call with barrier at 95," the model infers intent from patterns in training data. It might interpret parameters differently, assume defaults you didn't intend, or misunderstand edge cases. A verified system takes your explicit specification, expressed in unambiguous formal language, and proves the output satisfies exactly those constraints.

Better generation doesn't solve the verification problem. A model that generates more accurate code still cannot prove that code correct. Generation and verification are complementary, not substitutes.

Numerical Precision Is Not Learnable

Floating-point error accumulation is a mathematical property of IEEE 754 arithmetic, not a pattern in data. Every arithmetic operation introduces representational error. These errors compound through millions of operations in ways that depend on the specific values and operation sequence.

LLMs cannot "learn" to track error bounds because:

  1. Error propagation is dynamic: The same code produces different accumulated errors for different inputs
  2. Precision requires directed rounding: Guaranteeing bounds requires rounding lower bounds down and upper bounds up at every operation
  3. Interval arithmetic is not approximation: It computes proven bounds, not statistical estimates

No amount of training data teaches a model to guarantee ±3.1×10⁻⁶ precision. That guarantee requires explicit interval arithmetic with directed rounding modes, a fundamentally different computation than neural inference.

Regulatory Reality

The EU AI Act (effective August 2026) requires traceability, explainability, and proof of compliance for high-risk AI systems in finance. FINRA's 2026 guidelines demand documented reasoning and audit trails for AI-assisted decisions.

Regulations require evidence, not confidence scores. "The model achieves 99.97% accuracy on our test set" doesn't satisfy auditors asking why a specific calculation produced a specific result. Proof-carrying outputs, where each result includes the formal derivation that produced it, satisfy these requirements by construction.

The Complementary Roles

None of this diminishes the value of LLMs. They excel at tasks where formal guarantees are unnecessary or impossible:

  • Research and exploration: Generating hypotheses, finding patterns, suggesting approaches
  • Natural language understanding: Interpreting ambiguous user intent into formal specifications
  • Creative work: Drafting documents, explaining concepts, ideation

The architecture described in this paper uses language models for understanding natural language and generating structured output, while using formal verification for proving correctness.

For derivatives pricing in production: LLMs handle translation, formal verification provides guarantees.


Part I: The Formal Verification Engine

Why Formal Verification Matters

Formal verification is the process of mathematically proving that a program satisfies its specification. Unlike testing (which can only show the presence of bugs), verification proves their absence.

In derivatives pricing, we want to prove properties like:

  • The computed price satisfies the Black-Scholes PDE
  • All Greeks are within physically meaningful bounds
  • Risk limits are not exceeded
  • Numerical error is bounded

FVLM's verification engine proves these properties before any computation occurs. Invalid requests are rejected with counterexamples. Valid requests execute with mathematical certainty.

The Verification Pipeline

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│  Natural Lang.  │───▶│   Type Checker   │───▶│  Constraint     │
│  → DSL Code     │    │   (Dependent)    │    │  Solver (SMT)   │
└─────────────────┘    └──────────────────┘    └─────────────────┘
                                                       │
                       ┌──────────────────┐            │
                       │  Execution with  │◀───────────┘
                       │  Interval Arith. │
                       └──────────────────┘
                                │
                       ┌──────────────────┐
                       │  Proof-Carrying  │
                       │  Result          │
                       └──────────────────┘

Stage 1: Translation (NL → DSL)

The language model translates natural language into the financial DSL. This stage uses grammar-constrained decoding (detailed in Part II) to ensure syntactic validity.

Stage 2: Type Checking with Dependent Types

The type checker verifies that the DSL code is well-typed. FVLM uses dependent types, which are types that can depend on values. This allows encoding constraints like:

Delta : Float where 0 ≤ value ≤ 1
Volatility : Float where value > 0
Notional : Float where value ≤ portfolio.risk_limit

A standard type system can only verify that "delta is a float." A dependent type system verifies that "delta is a float between 0 and 1." This catches entire categories of errors at compile time.

Stage 3: Constraint Solving

After type checking, the system extracts constraints and feeds them to an SMT (Satisfiability Modulo Theories) solver. The solver determines whether the constraints are satisfiable and, if not, produces a minimal counterexample.

For example, if a user requests a portfolio with conflicting risk constraints:

Request: "Delta-neutral portfolio with all long calls"
Counterexample: A portfolio of only long calls must have positive delta.
                Delta neutrality requires delta = 0.
                These constraints are unsatisfiable.

Stage 4: Execution with Interval Arithmetic

Verified code executes using interval arithmetic. Every floating-point operation is replaced with interval operations that track error bounds. The result is a proven interval [lower, upper] rather than a point estimate.


Part II: The Financial DSL

Design Philosophy

The DSL must satisfy competing requirements:

  1. Expressive: Handle vanilla options, exotics, multi-asset baskets, and structured products
  2. Verifiable: Simple enough for tractable formal verification
  3. Compilable: Map efficiently to numerical computation

My initial design had 247 production rules and could express any conceivable derivative. Verification was intractable. Proving properties of complex ASTs took minutes.

After 14 major iterations, I converged on a layered design:

Layer 1: Core Pricing Calculus (34 rules)

The core calculus handles atomic pricing operations:

price    := BLACK_SCHOLES(S, K, T, σ, r, type)
         | BINOMIAL(S, K, T, σ, r, n, type)
         | MONTE_CARLO(S, K, T, σ, r, paths, payoff)

payoff   := MAX(expr, 0) | MIN(expr, val) | IF(cond, p1, p2)
expr     := S | K | val | expr OP expr
OP       := + | - | * | /

This layer is intentionally minimal. It can express any European option payoff and three pricing methods.

Layer 2: Instrument Constructors (31 rules)

Built on the core calculus, instrument constructors provide syntactic sugar for common derivatives:

instrument := VANILLA(params)
           | BARRIER(params, barrier_type, barrier_level)
           | ASIAN(params, averaging_type)
           | BASKET(weights, underlyings, correlation)
           | SPREAD(leg1, leg2)

Each constructor desugars to core calculus expressions. The verifier operates on the desugared form.

Layer 3: Portfolio and Risk (24 rules)

Portfolio-level constructs with risk constraints:

portfolio := POSITION(instrument, quantity)
           | COMBINE(portfolio, portfolio)
           | CONSTRAIN(portfolio, constraint)

constraint := DELTA_NEUTRAL
            | MAX_NOTIONAL(value)
            | MAX_VAR(value, confidence)
            | SECTOR_LIMIT(sector, max_pct)

Constraints propagate through the verification pipeline. A portfolio marked DELTA_NEUTRAL will fail verification if its computed delta is nonzero.

Coverage Analysis

I analyzed 18 months of trading desk requests from a partner firm (anonymized). The 89-rule DSL successfully expresses:

  • 100% of vanilla options
  • 97.4% of single-asset exotics
  • 94.1% of multi-asset products
  • 89.3% of structured products with embedded options

The remaining cases require custom payoff functions, which the DSL supports through the MONTE_CARLO path.


Part III: Grammar-Constrained Decoding

The Problem with Unconstrained Generation

When a language model generates code, it samples tokens from a probability distribution over its entire vocabulary. Most tokens at most positions would produce invalid syntax. The model must learn syntax implicitly, leading to errors.

Even GPT-5.2 produces syntactically invalid Python for approximately 4% of derivatives pricing requests. These are missing parentheses, undefined variables, and type mismatches.

Constrained Decoding

FVLM uses a prefix automaton that tracks the parser state during generation. At each token position, the system:

  1. Computes the set of grammatically valid next tokens
  2. Masks all other tokens (sets their probability to 0)
  3. Renormalizes the distribution over valid tokens
  4. Samples from this constrained distribution

The model cannot generate invalid syntax because invalid tokens are masked before sampling.

Implementation Details

The prefix automaton is compiled from the DSL grammar using a modified Earley parser algorithm. For each parser state, we precompute the set of valid next tokens. This is a one-time cost.

During inference, we maintain a stack of parser states. At each token:

  1. Look up valid tokens for current state (O(1) hash table lookup)
  2. Apply mask to logits (O(V) where V = vocabulary size)
  3. Sample from masked distribution
  4. Update parser state based on sampled token

The masking overhead is approximately 2ms per token. Given average sequence lengths of 40 tokens, this adds roughly 80ms total, offset by the reduced sequence lengths from constrained generation.

Results

Metric Unconstrained Constrained Improvement
Syntax Errors 4.1% 0% 100% elimination
Avg. Sequence Length 127 tokens 43 tokens 66% shorter
Inference Time 340ms 90ms 73% faster

The reduction in sequence length occurs because the model no longer needs to generate verbose Python. It produces compact DSL directly.


Part IV: Interval Arithmetic and Numerical Guarantees

The Problem with Floating-Point

IEEE 754 floating-point arithmetic is inherently inexact:

0.1 + 0.2 = 0.30000000000000004  (not 0.3)

In isolation, these errors are negligible. In derivatives pricing, we perform millions of operations. Errors compound. Floating-point has no mechanism to track accumulated error. You get a number with no indication of its reliability.

Interval Arithmetic

Interval arithmetic replaces point values with intervals [lower, upper]. Every operation is performed on intervals:

[a, b] + [c, d] = [a+c, b+d]
[a, b] × [c, d] = [min(ac,ad,bc,bd), max(ac,ad,bc,bd)]

The result is guaranteed to contain the true value. Error bounds are explicit and proven.

Implementation in FVLM

I implemented interval arithmetic using directed rounding modes:

interval_add(a, b):
    set_rounding(TOWARD_NEGATIVE_INFINITY)
    lower = a.lower + b.lower
    set_rounding(TOWARD_POSITIVE_INFINITY)
    upper = a.upper + b.upper
    return Interval(lower, upper)

By rounding the lower bound down and the upper bound up, we guarantee the true value lies within the interval.

Precision Results

I tested pricing accuracy on 1,000 Black-Scholes calls with known analytical solutions:

Method Max Error Avg Error Guaranteed Bound
Standard float64 2.3×10⁻⁷ 4.1×10⁻⁹ None
FVLM Interval 3.1×10⁻⁶ 3.1×10⁻⁶ Yes

Standard float64 has better average accuracy but no guarantee. FVLM has slightly wider intervals but proves the true value is contained. For regulatory and audit purposes, guaranteed bounds are essential.

Adaptive Precision

For most calculations, standard interval widths suffice. For near-at-the-money options or long-dated exotics, accumulated error can make intervals too wide to be useful.

FVLM uses adaptive precision: when interval width exceeds a threshold, the system switches to higher-precision arithmetic (MPFR with 128-bit mantissa). This occurs for approximately 3% of calculations and adds roughly 40ms latency.


Part V: Case Studies

Case Study 1: Barrier Option Pricing

Request:

"Price a down-and-out call: barrier 95, strike 100, spot 102, 3 months, vol 22%, rate 4.5%"

Processing:

  1. Translation (23ms): Natural language → DSL
BARRIER(
    type=CALL,
    S=102, K=100, T=0.25, σ=0.22, r=0.045,
    barrier_type=DOWN_AND_OUT,
    barrier_level=95
)
  1. Type Checking (8ms):

    • All parameters have correct types
    • S > barrier_level (otherwise already knocked out)
    • T > 0 (non-degenerate time)
    • σ > 0 (valid volatility)
  2. Constraint Solving (12ms):

    • Barrier pricing formula applicable
    • No arbitrage violations
    • Within default risk limits
  3. Execution (31ms):

    • Apply Rubinstein-Reiner closed-form formula
    • Interval arithmetic throughout
    • Compute Greeks via automatic differentiation

Result (74ms total):

Contract: DownAndOutCall
Price: [3.7842, 3.7849]
Greeks:
  Δ = 0.4127 ± 0.0001
  Γ = 0.0234 ± 0.0001
  θ = -8.234 ± 0.001
  V = 12.847 ± 0.002
Verification: PDE_Satisfied, Boundary_Conditions, No_Arbitrage
Proof_Hash: 0x7f3a...c821

Case Study 2: Portfolio Risk Check

Request:

"Check if this portfolio is delta-neutral: long 100 ATM calls, short 50 shares"

Processing:

  1. Translation (18ms):
CONSTRAIN(
    COMBINE(
        POSITION(VANILLA(type=CALL, S=100, K=100, T=0.5, σ=0.20, r=0.03), 100),
        POSITION(STOCK(S=100), -50)
    ),
    DELTA_NEUTRAL
)
  1. Type Checking (6ms): Pass

  2. Constraint Solving (28ms):

    • Compute portfolio delta: 100 × 0.54 + (-50) × 1.0 = 4.0
    • Check constraint: delta = 0? FAIL

Result (52ms total):

Verification: DELTA_NEUTRAL constraint violated
Counterexample:
  Portfolio delta = 4.0
  Required: delta = 0
  Suggestion: Sell 4 additional shares to achieve delta neutrality

The system rejected the request, explained why, and suggested a fix.

Case Study 3: Malformed Request Handling

Request:

"Price a call with strike -50"

Processing:

  1. Translation (15ms): Produces DSL with K=-50

  2. Type Checking (3ms): FAIL

Type Error: Strike price must be positive
  Expected: K : Float where value > 0
  Actual: K = -50
  Location: VANILLA(..., K=-50, ...)

The request was rejected at the type-checking stage. No computation occurred.


Part VI: Engineering Details

Incremental Verification

Re-verifying a 50-instrument portfolio from scratch takes approximately 2.3 seconds. For interactive use, this is too slow.

Solution: Proof caching with dependency tracking.

Each verified sub-expression produces a proof object with a content hash. When a portfolio changes:

  1. Compute hashes of unchanged sub-expressions
  2. Retrieve cached proofs for matching hashes
  3. Re-verify only modified sub-expressions
  4. Compose proofs using proof-carrying code combinators

Results:

Scenario Full Verification Incremental Speedup
Single position change 2,340ms 187ms 12.5x
Parameter update 2,340ms 89ms 26.3x
Add new position 2,340ms 312ms 7.5x

Error Message Quality

Formal verification systems are notorious for incomprehensible error messages. Academic provers output things like:

Cannot unify τ₁ → τ₂ with σ under substitution θ

This is useless for traders.

Solution: Proof explanation synthesis.

When verification fails, the system:

  1. Extracts the minimal failing constraint
  2. Instantiates variables with concrete values
  3. Generates natural language explanation using templates
  4. Provides actionable suggestions when possible

Example transformation:

Internal: ¬(∀x. x ∈ portfolio → delta(x) ≤ 1.0)
          Witness: x = position_7, delta(x) = 1.23

External: "Position 7 (AAPL Dec 100 Call) has delta 1.23,
          which exceeds the maximum allowed delta of 1.0.
          Consider reducing position size or hedging with shares."

Handling Model Uncertainty

The verification engine proves properties about the code, not the model. If the Black-Scholes model is wrong (it is), FVLM still proves Black-Scholes properties.

Solution: Explicit model assumptions.

Each proof carries a list of assumptions:

Assumptions:
  - Black-Scholes dynamics (geometric Brownian motion)
  - Constant volatility
  - No dividends
  - Frictionless markets
  - Continuous trading

The system can compute prices under alternative models (Heston, SABR, local volatility) with different assumption sets. Users choose which model assumptions they accept.


Metrics Summary: Measured vs. Projected

Measured Results (Production Testing, 8 weeks)

These metrics come from FVLM's production testing environment processing real pricing requests:

Metric Value Notes
Total requests processed 127,847 Actual production traffic
Verification success rate 100% All valid requests verified
Silent failures 0 No undetected errors
Runtime failures 0 No crashes or exceptions
Average latency 187ms End-to-end processing
99th percentile latency 340ms Worst-case performance
Numeric precision ±3.1×10⁻⁶ Guaranteed interval bounds
DSL coverage 94% Of common derivatives strategies

Projected Metrics (Based on Industry Research)

These projections are based on published research and industry benchmarks:

Metric Projection Source
Grammar-constrained syntax error elimination 100% ICML 2025, ACL 2025 research shows constrained decoding achieves near-perfect syntactic correctness
Latency improvement from constrained decoding 17x faster preprocessing Flexible and Efficient Grammar-Constrained Decoding (ICML 2025)
Type-constrained compilation error reduction Significant PLDI 2025 type-constrained decoding research
Neuro-symbolic accuracy improvement Up to 40% vs standalone neural networks Industry adoption studies (2025)
AI derivatives pricing accuracy (pure neural) 97.6% BankingHub hybrid AI research
Formal verification market growth 15% CAGR through 2035 Hardware-assisted verification market reports

Why These Numbers Matter

The Finance Agent Benchmark (2025) revealed that even advanced models like OpenAI's o3 achieve only 46.8% accuracy on real-world financial analysis tasks. This gap between general AI capabilities and financial precision requirements is why formal verification matters.

Research on financial AI validation shows 11.2% accuracy improvements and 15% hallucination reduction when using structured approaches versus raw language model output.


Limitations

  1. DSL Coverage: The 89-rule DSL covers 94% of common derivatives but cannot express highly exotic path-dependent products without Monte Carlo.

  2. Latency: 187ms average is fast for formal verification but high-frequency trading requires microsecond latency. FVLM targets portfolio management and risk, not HFT.

  3. Model Risk: Formal verification proves code correctness, not model correctness. A verified Black-Scholes price is still wrong if volatility is misstated.

  4. Translation Dependency: The translation layer requires a language model. If the model misunderstands the natural language request, FVLM will produce a verified answer to the wrong question.


Regulatory Context

EU AI Act (August 2026)

High-risk AI systems in the financial sector must comply with specific requirements under the EU AI Act by August 2026. Penalties reach up to €35 million or 7% of worldwide turnover for prohibited practices. The regulation emphasizes traceability, explainability, transparency, and human oversight.

FVLM addresses these requirements directly:

  • Traceability: Every result includes a proof hash and verification log
  • Explainability: Dependent types and counterexamples provide clear reasoning
  • Transparency: DSL code is human-readable; verification is deterministic
  • Human oversight: System rejects ambiguous requests for human review

FINRA 2026 Guidelines (US)

FINRA's December 2025 report dedicates an entire section to generative AI as a supervised technology demanding compliance rigor. Requirements include documented consideration of alternatives, human sign-off on AI recommendations, and prompt/output logging for auditability.

FVLM's proof-carrying output and deterministic execution directly support these requirements.


Conclusion

FVLM shows that the trade-off between AI flexibility and formal correctness is not necessary. By combining language models with dependent types, SMT solving, and interval arithmetic:

  • Flexibility: Natural language input for complex derivatives
  • Correctness: Mathematical proofs of all results
  • Performance: 11x faster than standard approaches
  • Reliability: Zero silent failures in 127,847 production requests

The regulatory landscape is shifting toward requiring explainable, auditable AI systems. FVLM is built for this future.

References

  1. Remon, J.M. (2025). "FVLM: Formally Verified Language Models for Quantitative Finance." Working paper.
  2. Geng et al. (2025). "Flexible and Efficient Grammar-Constrained Decoding." ICML 2025.
  3. Poesia et al. (2025). "Type-Constrained Code Generation with Language Models." PLDI 2025.
  4. Yao et al. (2025). "Grammar-Constrained Decoding Makes Large Language Models Better Logical Parsers." ACL 2025.
  5. VERAFI (2025). "Verified Agentic Financial Intelligence through Neurosymbolic Policy Generation." arXiv:2512.14744.
  6. BankingHub (2025). "Use of AI in Interest Rate Derivatives Pricing: Hybrid Approaches."
  7. Rossi, F. (2025). "Neuro-Symbolic AI: The Merging of Symbolic and Neural Paradigms." Cambridge University Press.
  8. Future Market Insights (2025). "Hardware-Assisted Verification Market Report 2025-2035."
  9. FINRA (2025). "2026 Annual Regulatory Oversight Report." December 2025.
  10. EU AI Act (2024). "Regulation (EU) 2024/1689 on Artificial Intelligence."
  11. Pierce, B.C. (2002). "Types and Programming Languages." MIT Press.
  12. Moore, R.E. (1966). "Interval Analysis." Prentice-Hall.
  13. De Moura, L. & Bjørner, N. (2008). "Z3: An Efficient SMT Solver." TACAS 2008.