I denna artikel tar vi upp frågan om hur man verifierar programegenskaper i moderna funktionella logikspråk, där det är tillåtet att ha icke-deterministiska funktioner med call-time semantik. Det största problemet att möta är att för en sådan typ av program ekvationell resonemang inte är giltigt. Vi utvecklar några logiska konceptuella verktyg som ger sunda resonemangsmekanismer för dessa program, särskilt för att bevisa egenskaper som gäller i den ursprungliga modellen av ett program. Vi visar hur CRWL, en välkänd logisk ram för funktionell logik programmering, enkelt kan kartläggas i logisk programmering, och vi använder denna kartläggning som utgångspunkt för vårt arbete. Vi undersöker sedan hur man kan bevisa egenskaper hos den resulterande logiska programmeringsöversättningen med hjälp av olika befintliga interaktiva bevisassistenter, och efteråt ger vi några förslag som försöker övervinna begränsningarna i tillvägagångssättet, särskilt med avseende på dess teoretiska styrka.
Användningen av bevisassistenter för att verifiera funktionella logiska program har banats väg i REF, där val av call-time semantik har formaliserats med olika bevisverktyg.
A logic programming approach to the verification of functional-logic programs
{'venue': "PPDP '04", 'journal': None, 'mag_field_of_study': ['Computer Science']}