Paljud võrrandid esitavad neis esinevate suuruste vahelise sõltuvuse, kuid ei kujul, kus mingi üks neist suurustest on avaldatud ülejäänud suuruste funktsioonina; selline on näiteks täisnurkse kolmnurga kaatedite A,B ja hüpotenuusi C vaheline seos C2 = A2 + B2. Selliseid võrrandeid nimetatakse ilmutamata võrranditeks. Et näiteks eeltoodud võrrandit kasutada näiteks hüpotenuusi arvutamiseks kaatetite järgi, tuleb see võrrand hüpotenuusi suhtes ilmutada, s.t. viia kujule C = v(A2 + B2) . Tavaliselt ei hakka keegi ühe ilmutamata võrrandi asemel esitama kolme ilmutamata võrrandit - seos esitatakse ilmutamata kujul ja alles siis, kui on teada, millised suurused on antud ja millised tuleb arvutada, teisendatakse ilmutamata seos avutamiseks sobivale ilmutatud kujule.
Ka Prologi saab õpetada ilmutamata võrrandeid kasutama. Siin tekib siiski probleem Prologi sisseegitatud matemaatiliste avaldiste arvutamise algoritmiga, mis käitatakse operaatoriga X is Avaldis, kus X peab olema väärtustamata muutuja ja Avaldis peab olema arvutatav, s.t. ei tohi sisaldada (väärtustamata) muutujaid. Viimase tingimuse rikkumisel ei ole tulemuseks operaatori X is Avaldis ebaõnnestumine (fail), vaid kogu programmi peatumine veateatega.
Ilmutamata võrrandite poolte (avaldised) arvutamiseks on palju mugavam selline avaldise arvutamise operaator, mis muutujaid sisaldava avaldise puhul ei "lenda õhku", vaid lihtsalt ebaõnnestub ja programm saab tööd jätkata. Järgnevas kirjeldatud predikaat eval(Avaldis,X) arvutab avaldise Avaldis väärtuse (kui see on arvutatav) ja omistab tulemuse muutujale X; kui Avaldis ei ole arvutatav (sisaldab väärtustamata muutujaid), siis eval ebaõnnestub. Järgnevas kirjeldatud eval oskab arvutada vaid nelja aritmeetilist tehet (+, -, *, /) ja ruutjuurt sqrt sisaldavaid avaldisi, kuid seda on lihtne täiendada nii et see sobiks ka trigonomeetrilisi funktsioone, astmeid, logaritme jne sisaldavate avaldiste arvutamiseks.
X = 7
- töötab!.
Predikaadi eval abil saab koostada ilmutamata võrrandeid lahendava predikaadi rel(Võrrand). Kui ilmutamata võrrandis Võrrand on vaid üks väärtustamata muutuja (kõigil ülejäänud muutujatel on väärtus), leiab rel selle muutuja väärtuse. Siin kirjeldatud lihtne rel versioon nõuab, et otsitav muutuja võib esineda võrrandis vaid ühes kohas (näiteks 2*X + 1 = 7 - X ei ei ole lubatud); erandina võib muutuja esineda kaks korda ruutavaldises X*X.
rel(A + B = C):-
eval(A,AbiX),!,
rel(B = C - AbiX).
rel(A * B = C):-
rel(X1*X2=A):-
var(X1),var(X2),not(X1==X2),!,fail.
Testime: