I en värld där tillförlitliga programvarusystem är problematiska bör formella metoder och formella bevis kunna hjälpa till. Kontroller av bevis kan spela en viktig roll för att skapa förtroende, eftersom sådana kontroller kan vara mindre och lättare att kontrollera än t.ex. hela teoremprovare eller modellkontroller. Beviskontroll har spelat en viktig roll i programmeringsspråkens historia och, enligt min mening, i dess framtid. I allmänhet är bevischeckare beroende av programmeringsspråk som också måste lita på. I många moderna beviskontroller och teorem visar, att programmeringsspråket är ett funktionellt programmeringsspråk, ofta en variant av ML. Faktum är att delar av ML (t.ex. stark maskinskrivning, abstrakta datatyper och programmering i högre ordning) utformades för att göra ML till ett pålitligt metaspråk för att hitta och kontrollera bevis i LCF [2]. Även om det finns en betydande överlappning i grunden för logisk programmering och kontroll av bevis (både gagnas av enande, bakåtsträvande sökning, effektiva termstrukturer osv.), har disciplinen för logisk programmering i själva verket spelat en mindre roll i historien om kontroll av bevis, särskilt, och teorem som bevisar, i allmänhet. Jag vill hävda att logikprogrammering kan spela en viktig roll i framtiden för beviskontroll, särskilt när logikprogrammering omfattar mer logiska principer än vad som finns i första ordningens Hornklausuler. Jag kommer att undersöka resultaten av ett mångårigt projekt där vi håller på att utveckla ett grundläggande intygsramverk [1, 3, 4] som möjliggör en formell definition av ett brett spektrum av bevisbevis i både klassiska och intuitionistiska första ordningens logiker. Sådana formella definitioner kan sedan kontrolleras av enkla beviskontroller skrivna på t.ex. λProlog programmeringsspråk [5].
λProlog REF tillhandahåller ett allmänt ramverk för beviskontroll som möjliggör icke-determinism, vilket möjliggör flexibla kombinationer av bevissökning och beviskontroll.