14.2Kétváltozós eset

Legyenek , , , és tetszőleges típusok. Legyen továbbá és , valamint , , és függvények.

Tekintsük az alábbi specifikációval adott feladatot:

 

Legyenek az és függvényeket kiszámító elemenként előállító programok az alábbiak: ____________________________________________________________ __________________________________________________ ____________ __________________________________________________

és tegyük fel, hogy az előállított és sorozatok rendezettek.

Legyen mint korábban, továbbá tegyük fel, hogy egy olyan kétváltozós egyértékű elemenként feldolgozható függvény, amely minden olyan halmazpárhoz, amelynek tagjai legfeljebb egy elemet tartalmaznak, pontosan egy elemű halmazt rendel hozzá.

Ekkor a függvénykompozíció helyettesítési értékének kiszámítására vonatkozó programozási tétel alapján a feladat megoldható a fenti két elemenként előállító, a kétváltozós egyértékű elemenként feldolgozó és az -at kiszámító elemenként felhasználó program szekvenciájaként. Vajon ebben az esetben is összeinvertálhatóak a fenti programok?

A válasz természetesen: igen, de a megoldás itt nem olyan egyszerű, mint az egyváltozós esetben volt. A probléma a szekvenciális file-oknál felmerülttel analóg: az elemet előállító program ( ill. ) az egyes elemeket ugyanúgy szolgáltatja mintha file-ból olvasnánk őket: csak akkor nézhetjük meg a következő elemet ha legeneráltatjuk. Ez sugallja azt a megoldást, hogy az és sorozatokat tekintsük az elemenként feldolgozásban absztrakt file-oknak. Az elemenként felhasználó program beinvertálása nem okoz gondot, ugyanúgy történik mint az egyváltozós esetben.

ahol az absztrakt műveletek megvalósításai: