Skip to content

Estate 4: IBM DBB MortgageApplication -- EPSNBRVL and EPSCMORT proven; group USING items across CALL, nested COPY, CBL from column 1 - #4216

Merged
squid-protocol merged 9 commits into
mainfrom
feat/estate4-mortgage
Oct 3, 2026
Merged

squid-protocol merged 9 commits into
mainfrom
feat/estate4-mortgage

Conversation

@squid-protocol

@squid-protocol squid-protocol commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

Licence. IBM/dbb is Apache-2.0 (root LICENSE, checked at ce2c1be5). The committed material is the MortgageApplication COBOL, copybooks and BMS (in the excerpt, as file-level "(C) 2020 IBM" notices), plus fixtures derived from them. Each fixture directory carries a byte-identical copy of the Apache-2.0 LICENSE and a NOTICE attributing IBM, as the CardDemo, CBSA and GenApp fixtures do. Flagged per the third-party material policy: zBuilder/MortgageApplication/dbb-app.yaml carries its own "Licensed materials - Property of IBM, 5655-AC5" header. It is not committed anywhere (not in the excerpt, cases or snapshots); scans only read it in the local clone.

Ground truth

squid-protocol and others added 6 commits October 3, 2026 04:12
…sed), completeness pin, ledger triage

- corpora.json: dbb-mortgage-application (IBM/dbb @ ce2c1be5, Apache-2.0), excerpt with LICENSE
- answer key: 5 programs, census-signed by a blind second model (45/45 agree); EPSCSMRD
  (nine sibling programs in one source) excluded until the key models them (#4206)
- completeness pin and ledger: 10 entries to the deliberate #2806 cause, engine defects #4204, #4205

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZE6us7fUL6Hynk59rWLvZ
… the translator, harness and IR fixes they needed

Translator (det):
- compiler-option cards read by the engine's own card reader (a card may start in any column: '   CBL NUMPROC(MIG)')
- 'ID DIVISION.' read as IDENTIFICATION DIVISION
- a CALL entry and a CALL site carry a group USING item as its contract DTO (the COMMAREA codec), BY REFERENCE;
  CobolRef imported only where a CALL passes text
IR: a COPY after a copied elementary root inside its copybook expands as its siblings (EPSMTCOM -> the full DTO)
Forge: a CICS estate always gets the CICS exception types
Harness:
- call cases with group USING items (DTO JSON in/out, field-by-field values), arguments as field values (hex MOVEs)
- copybooks staged under their member names; the period IBM assumes after a PROGRAM-ID name
- generated BMS symbolic maps for screens (@bms/); X10: COMMAREA fields copied from an absent COMMAREA, masked and counted
Cases: mortgage-nbrvl (15 calls, 22/22 branches), mortgage-cmort (6 scenarios, Db2 + BMS), mortgage-mpmt
(KNOWN_UNPROVEN: NUMPROC(MIG), C5). Register: C5 += NUMPROC(MIG), X10.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZE6us7fUL6Hynk59rWLvZ
…rvey, cases, what it took

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZE6us7fUL6Hynk59rWLvZ
…1 branches)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZE6us7fUL6Hynk59rWLvZ
@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

…ion snapshots, typed det codec attributes

- field_testing.json: dbb-mortgage-application as public round 7; D-entries for #4204 and #4205; report regenerated
- refraction snapshots (excerpt and full) for the new corpus only; the six existing snapshots are unchanged
- gen.py: dto_codecs / dto_codecs_factory typed (mypy-audit)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZE6us7fUL6Hynk59rWLvZ
@squid-protocol

Copy link
Copy Markdown
Owner Author

Full det sweep on this branch, after merging main with #4200 SQL faults and #4202 (proof_sweep.py --det-only --jobs 4): det 51/54 proven, sweep: as expected. The 3 not proven are the KNOWN_UNPROVEN cases: carddemo-cardupdate (#4085), carddemo-intcalc-generated (D1) and mortgage-mpmt (NUMPROC(MIG), C5). With SQL faults on, mortgage-cmort gains its automatic SQL-fault task: 7 scenarios, 12/21 branches.

The CI fixes are in 234f9f6:

  • the field-testing round for the new corpus;
  • refraction snapshots, excerpt and full, for the new corpus only (the six existing snapshots are unchanged);
  • typed codec attributes for mypy.

squid-protocol and others added 2 commits October 3, 2026 06:56
… CICS test catches CicsAbendException only when the estate has it

test_a_cics_program_without_handlers_needs_no_exception_classes pins the generator's rule: no exception package
when no service throws or handles one. The equivalence test now imports and catches CicsAbendException only when
the generated project has it (IBM DBB MortgageApplication's has not); mortgage-cmort still proves (7 scenarios).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZE6us7fUL6Hynk59rWLvZ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant