Back to Archive
MIGRATIONProduct

COBOL Migration Through Bounded Lift-and-Review

Why legacy modernization benefits from lifting review-critical logic into a bounded blueprint before transpilation or replacement.

2026-03-21T00:00:00.000Z
Editorial cover for COBOL Migration Through Bounded Lift-and-Review

220 Billion Lines. Running Right Now. No One Left to Fix Them.

There are 220 billion lines of COBOL running in production right now. Not in museums. Not in textbooks. In the systems that process 95% of ATM transactions, 80% of in-person financial transactions, and the majority of government operations worldwide. Every time you swipe a card, withdraw cash, file a tax return, or receive a government payment, COBOL is executing somewhere in the chain.

The financial industry spends $3 billion per year maintaining this code. Not improving it — maintaining it. Keeping it alive. Patching it when something breaks. Paying contractors who specialize in a language that universities stopped teaching decades ago. Three billion dollars a year just to keep the lights on.

The average COBOL programmer is over 55 years old. The workforce that understands this code is not growing — it is retiring. Every year, institutional knowledge walks out the door and does not come back. The people who wrote these systems in the 1970s and 1980s are gone or going. Their code remains — undocumented, mission-critical, and increasingly unmaintainable.

This is not a technology problem. It is a civilizational risk. The financial infrastructure of the global economy depends on code that fewer and fewer humans can read, understand, or safely modify. The clock is ticking.

Why Every Migration Attempt Has Failed

The obvious solution is to rewrite it. Banks have tried. Governments have tried. The results are catastrophic — every single time.

In 2018, TSB Bank attempted to migrate its core banking systems. The result: 1.9 million customers locked out of their accounts. Fraudulent transactions going undetected. Total cost exceeding $330 million. The CEO resigned. The bank's reputation never fully recovered. And the migration was not even complete.

COBOL-to-Java transpilers exist. They produce code that technically compiles — and is utterly unreadable. A 200-line COBOL paragraph becomes 800 lines of Java that no human would ever write. Syntax is preserved. Meaning is lost. Business logic gets buried under layers of mechanical translation. The resulting codebase is harder to maintain than the original COBOL. You have traded one problem for a worse one.

Manual rewrites take years. A medium-sized bank's core system might be 10 million lines of COBOL. At best, a team of 50 engineers can rewrite and validate 100,000 lines per year. That is a 100-year project. And every line rewritten is a line that might introduce a bug in a system that handles real money. Real people's money.

The fundamental problem: testing equivalence between the old system and the new system is nearly outside the declared model. COBOL systems have accumulated decades of edge cases, implicit behaviors, and undocumented business rules. You cannot write tests for rules nobody remembers exist. One wrong number in a financial system is not a bug report — it is a regulatory violation, a lawsuit, or a bank run. This is why the 60% failure rate exists.

The PCD Approach: Extract, Verify, Emit

PCD takes a fundamentally different approach. Instead of translating COBOL line by line, it extracts the computational essence — the mathematical logic that the code actually performs — and represents it as a mathematically certified circuit. Not a translation. An extraction.

COBOL →
brikc lift → PCD Blueprint →
brikc build → Rust / JS / Python / Go / C Step 1: LIFT Extract computational logic from COBOL source Step 2: VERIFY Certify the PCD blueprint (Φc = 1) Step 3: EMIT Compile to any modern language

Step 1: LIFT — Read the COBOL, Extract the Math The COBOL frontend reads PROCEDURE DIVISION paragraphs, COMPUTE statements, IF/EVALUATE blocks, and PERFORM loops. It does not translate syntax — it identifies the underlying computation. A COMPUTE statement that calculates compound interest becomes a composition of arithmetic monomers. An EVALUATE block that routes transactions becomes a conditional composition. A PERFORM VARYING loop becomes a sequential fold. The logic is preserved. The COBOL syntax is discarded.

Here is the surprising part: COBOL's rigid structure is actually an advantage. Unlike dynamically typed languages where behavior depends on runtime state, COBOL's DATA DIVISION declares every variable, its type, and its size upfront. PROCEDURE DIVISION paragraphs are essentially named functions with explicit inputs and outputs. This maps naturally to PCD's circuit model. COBOL was accidentally designed for this.

Step 2: VERIFY — Prove the Circuit Is Correct

The lifted PCD blueprint is run through the Thermodynamic Coherence Engine. When Phi C = 1, the circuit is closed — every input produces a deterministic output, every path terminates, every domain constraint is satisfied. This is not a test suite that might miss edge cases. It is a mathematical proof that the extracted logic is internally consistent. 207 proof files back this guarantee.

The verification also establishes behavioral equivalence: the PCD circuit computes the same function as the original COBOL code. If the COBOL computes PRINCIPAL * RATE / 100, the PCD circuit computes the same arithmetic — same operation, mathematically certified. Not similar. Identical.

Step 3: EMIT — Compile to Any of 14 Target Languages

Once verified, the PCD blueprint compiles to any of 14 target languages. Rust for performance-critical systems. JavaScript for web interfaces. Python for data pipelines. Go for microservices. C for embedded systems. Swift, TypeScript, C++, PHP, Java, WASM, BIR, or native x86-64. The emitted code includes auto-generated tests that validate behavioral equivalence with the original computation. One blueprint, any destination.

A Real Example — Watch It Work

This is a real COBOL routine — a simplified interest calculation that runs in thousands of banking systems worldwide:

PROCEDURE DIVISION. COMPUTE INTEREST = PRINCIPAL * RATE / 100. IF INTEREST > MAX-INTEREST MOVE MAX-INTEREST TO INTEREST END-IF. COMPUTE TOTAL = PRINCIPAL + INTEREST.

The Lifter reads this and produces a PCD blueprint:

// PCD Blueprint: interest_calc
// Domains: principal [0, 1000000], rate [0, 30], max_interest [0, 100000]
// Computes: interest capped at max, added to principal
// Verified: Φc = 1

The PCD circuit does exactly what the COBOL does — but now with explicit domain constraints, mathematical certification, and a liftability score of 0.95+. The TCE certifies Phi C = 1: the circuit is closed, deterministic, and correct. For the first time, you can see what the COBOL actually computes.

From this single PCD blueprint, you can emit:

brikc build interest_calc.pcd -t rust
# High-performance Rust
brikc build interest_calc.pcd -t js
# Browser / Node.js
brikc build interest_calc.pcd -t python
# Data pipeline integration
brikc build interest_calc.pcd -t go
# Microservice deployment
brikc build interest_calc.pcd -t c
# Embedded / legacy integration

All five outputs are provably equivalent. They compute the same function. The math guarantees it. No other migration tool can make this claim.

Why This Changes Everything

The key insight is that PCD migration is incremental. You do not need a big-bang rewrite. You do not need to shut down the mainframe. You do not need a 100-year project. You lift one COBOL paragraph at a time, verify it, emit it, and deploy it alongside the existing system.

Migration Strategy: Incremental Lift
───────────────────────────────────────── Week 1 Lift INTEREST-CALC paragraph → Φc = 1 ✓ Week 2 Lift ACCOUNT-BALANCE paragraph → Φc = 1 ✓ Week 3 Lift TRANSACTION-VALIDATE paragraph → Φc = 1 ✓ Week 4 Lift FEE-COMPUTATION paragraph → Φc = 1 ✓ ... Week N All critical paths lifted and verified
───────────────────────────────────────── Original COBOL keeps running throughout. Swap modules when ready. Roll back if needed. The PCD blueprint is the source of truth.Each lifted
function is independently verified. Each can be tested against the original COBOL output. If something goes wrong — and in banking, you plan for things going wrong — the PCD blueprint is the source of truth. Re-emit to a different language. Adjust domain
constraints. Roll back to the COBOL. The blueprint captures the logic permanently. It is your insurance policy.

This eliminates the existential risk that has killed every major COBOL migration attempt. No single cutover date. No "go live" moment where everything might break. A gradual, verified, mathematically proven transition from COBOL to whatever comes next. This is how you migrate 220 billion lines without losing a single transaction.

The Business Case

The COBOL Migration Problem — By the Numbers ───────────────────────────────────────────────── Industry COBOL maintenance spend: $3 billion / year Average migration project duration: 3 – 5 years Migration project failure rate: 60% TSB Bank migration loss (2018): $330 million Commonwealth Bank migration (2012): $750 million over 5 years The PCD Alternative ───────────────────────────────────────────────── Lift-verify-emit cycle per module: Days to weeks Mathematical equivalence proof: Automatic (Φc = 1) Rollback capability: Instant (PCD is source of truth) Target language flexibility: Any (Rust, JS, Python, Go, C) New talent pool: Millions of modern developers

The ROI is straightforward. Reduce $3 billion in annual maintenance costs. Access a talent pool of millions of modern developers instead of a shrinking pool of COBOL specialists. Eliminate the 60% failure rate of traditional migration projects. And do it incrementally, without betting the bank — literally — on a single cutover. The math alone justifies the investment.

For a single institution, the calculus is even clearer. A major bank spending $50 million per year on COBOL maintenance can begin lifting critical modules immediately. Each module lifted is a module that can be maintained by any developer who knows Rust, JavaScript, or Python — millions of developers instead of hundreds. The PCD blueprint serves as permanent documentation — something the original COBOL never had.

Getting Started

Then do the next module.

The Stakes Are Real

The COBOL problem is not going away. Every year, more COBOL programmers retire. Every year, the risk increases. Every year, the cost of doing nothing grows. The question is not whether these systems will be migrated — it is whether they will be migrated safely or catastrophically. TSB chose catastrophically. You do not have to.

PCD does not ask you to rewrite 220 billion lines. It asks you to lift them — one function at a time, one circuit at a time, one proof at a time. The computational logic is preserved. The mathematical equivalence is guaranteed. The new code runs in any of 14 languages that the next generation of engineers can actually read, understand, and maintain.

The math does the heavy lifting. You just point it at your code. Start today.

More reading

Continue the archive

Full archive
Technical BRIK64 diagram showing an AI coding prompt transformed into a reviewable blueprint, human review checkpoint, and target outputs.
AI safetyUncategorized

Reviewable AI Coding Pipelines: From Prompt to Blueprint

AI-generated code workflows become more reviewable when teams separate the prompt, generated code, structural blueprint, human review, and target compilation.

Open article
BRIK64 editorial image showing AI-generated software becoming inspectable, certified, and compiled across targets.
AI-generated softwareUncategorized

Making AI-Generated Software Reviewable

AI-generated software can move quickly, but it still needs structure, traceability, and review boundaries. BRIK64 helps teams preserve the blueprint behind generated code.

Open article
Editorial cover for AI Governance Workflows Need Reviewable Technical Evidence
AI SAFETYAI Safety

AI Governance Workflows Need Reviewable Technical Evidence

How bounded software evidence can help teams carry AI governance reviews into compliance workflows without implying full legal coverage.

Open article
Editorial cover for Compiler Evidence: Targets, Proof Files, and Test Scope
ENGINEERINGEngineering

Compiler Evidence: Targets, Proof Files, and Test Scope

A summary of the public numbers that can be stated responsibly and the limits of what those numbers prove.

Open article
Editorial cover for Safety-Critical Software Needs a Readable Assurance Path
PRODUCTProduct

Safety-Critical Software Needs a Readable Assurance Path

How bounded software evidence can support engineering review in high-consequence domains without replacing the broader safety program.

Open article
Editorial cover for Bounded Contract Logic Before Deployment
PRODUCTProduct

Bounded Contract Logic Before Deployment

Why smart contract workflows benefit from explicit state boundaries, value constraints, and reviewable rule sets before deployment.

Open article
Editorial cover for What the Proof Material Means for Users
VISIONFoundations

What the Proof Material Means for Users

A practical note on the proof files behind the compiler and what remains invisible to a normal authoring workflow.

Open article
Editorial cover for Why a New Format Instead of Another General-Purpose Language
VISIONFoundations

Why a New Format Instead of Another General-Purpose Language

Why BRIK64 introduces PCD as a bounded computational format rather than extending a conventional language with another annotation layer.

Open article
Editorial cover for Adversarial Testing Against the Compiler Chain
ENGINEERINGEngineering

Adversarial Testing Against the Compiler Chain

How the team tries to break the compiler and what those tests can and cannot prove about the formal system.

Open article
Editorial cover for Translation Validation Across Two Targets
RESEARCHResearch

Translation Validation Across Two Targets

A look at cross-target output comparison, what it can support, and what still depends on the bounded intermediate form.

Open article
Editorial cover for Why Tests Passing Is Not the Same as Closure
VERIFICATIONEngineering

Why Tests Passing Is Not the Same as Closure

A look at sampled testing versus bounded verification, with examples of logic that passed tests but still required stronger structural checks.

Open article
Editorial cover for One Blueprint Across Multiple Targets
PRODUCTProduct

One Blueprint Across Multiple Targets

How the transpilation chain uses PCD as a bounded intermediate form, what 10 source languages and 14 targets mean in practice, and where the equivalence claim stops.

Open article
Editorial cover for What AI Intuition Still Cannot Verify
AI SAFETYAI Safety

What AI Intuition Still Cannot Verify

Why intuition without an external proof path remains a risk, and where BRIK64 fits in that boundary.

Open article
Editorial cover for API and MCP Access Around the Registry
PLATFORMProduct

API and MCP Access Around the Registry

How discover-and-execute workflows expose registry and platform operations to humans and agents without enlarging the proof claim.

Open article
Editorial cover for Blueprints Before Refactors
REVOLUTIONProduct

Blueprints Before Refactors

How extracting bounded computation from an existing codebase can make rewrites and target changes easier to review.

Open article
Editorial cover for A Bounded JavaScript-to-Rust Workflow
TUTORIALGetting Started

A Bounded JavaScript-to-Rust Workflow

Lift the logic, review the bounded blueprint, then emit a target language while keeping the claim attached to the intermediate circuit.

Open article
Editorial cover for Lifting Existing Code into a Reviewable Blueprint
TOOLINGProduct

Lifting Existing Code into a Reviewable Blueprint

What the Lifter preserves, where liftability evidence exists in the repo, and how bounded blueprints help before migration.

Open article
Editorial cover for Why AI-Generated Code Needs Blueprints and External Checks
PRODUCTAI Safety

Why AI-Generated Code Needs Blueprints and External Checks

Generated code and generated tests can fail together. This note explains why BRIK64 keeps verification outside the model loop.

Open article
Editorial cover for Which Parts of a Codebase Are Ready for Stronger Review?
PRODUCTProduct

Which Parts of a Codebase Are Ready for Stronger Review?

Use lifting and bounded analysis to identify review-critical functions before migration or certification work.

Open article
Editorial cover for Laszlo B. Kish and the Information-Theory Thread
RESEARCHResearch

Laszlo B. Kish and the Information-Theory Thread

A research profile on the ideas that influenced the information-theoretic framing behind Digital Circuitality.

Open article
Editorial cover for Informational Entropy Is Not Thermal Entropy
RESEARCHResearch

Informational Entropy Is Not Thermal Entropy

Why the distinction matters for the foundations story and how it sharpens the claim boundary around Digital Circuitality.

Open article
Editorial cover for From Preferences to Enforced Action Boundaries
AI SAFETYAI Safety

From Preferences to Enforced Action Boundaries

Why robotics and agent systems need explicit action gates, bounded state, and reviewable fallback paths.

Open article
Editorial cover for First PCD Circuit: A Minimal Walkthrough
TUTORIALGetting Started

First PCD Circuit: A Minimal Walkthrough

Install the CLI, write a small circuit, and inspect the bounded output path. A practical introduction to the format and the compile step.

Open article
Editorial cover for EVA Algebra: Sequence, Parallel, Conditional
DEEP DIVETheory

EVA Algebra: Sequence, Parallel, Conditional

How three composition operators carry sequencing, fan-out, and branching through the circuit model, and what that means for compiler readability and closure.

Open article
Editorial cover for Working with the SDKs Without Leaving the Bounded Model
SDKSGetting Started

Working with the SDKs Without Leaving the Bounded Model

How the Rust, JavaScript, and Python SDKs expose BRIK64 patterns while keeping the formal core distinct from host-language code.

Open article
Editorial cover for Why Software Verification Still Looks Different from Hardware
RESEARCHResearch

Why Software Verification Still Looks Different from Hardware

A comparison between sampled software testing and the compositional review posture hardware teams expect.

Open article
Editorial cover for 128 Operations and the Boundary Between Core and Bridges
ENGINEERINGEngineering

128 Operations and the Boundary Between Core and Bridges

A tour of the reviewed core, the contract-bounded extensions, and what that split means for technical scope.

Open article
Editorial cover for PCD for AI Agents: A Small Format with an External Proof Loop
AI AGENTSAI

PCD for AI Agents: A Small Format with an External Proof Loop

How a finite grammar helps agents author bounded logic while the compiler and policy checks stay outside the model.

Open article
Editorial cover for Precision as a Declared Domain
ENGINEERINGEngineering

Precision as a Declared Domain

Why bounded numeric domains matter for floating behavior, decimal handling, and reviewable arithmetic.

Open article
Editorial cover for BPU: Policy Enforcement as a Hardware Roadmap
HARDWAREHardware

BPU: Policy Enforcement as a Hardware Roadmap

Why software-only guardrails share execution context with the model they constrain, and how the BPU roadmap moves policy enforcement toward FPGA and silicon.

Open article
Editorial cover for Policy Circuits for AI Safety Workflows
AI SAFETYAI Safety

Policy Circuits for AI Safety Workflows

How external policy circuits can gate generated code and agent actions without claiming to solve general alignment.

Open article
Editorial cover for What Digital Circuitality Tries to Formalize
VISIONFoundations

What Digital Circuitality Tries to Formalize

A bounded programming model built from reviewed operations, explicit composition, and closure checks.

Open article