En logique, le théorème de Herbrand établit un lien entre calcul des prédicats et calcul des propositions. Alors qu'il est possible de déterminer de manière certaine si une proposition du calcul des propositions est démontrable ou pas, la question équivalente pour une formule du calcul des prédicats est plus délicate. Le théorème de Herbrand répond partiellement à cette question, bien qu'on sache depuis les travaux de Gödel, Tarski, Church, Turing et autres, qu'il n'existe pas d'algorithme permettant de décider si une formule générale du calcul des prédicats est prouvable ou non.
Une formule du calcul des prédicats est prénexe si tous les quantificateurs qu'elle contient se trouvent au début de la formule. Toute formule est équivalente à une formule prénexe. Par exemple, la formule
Une formule prénexe est universelle si elle ne possède que des quantificateurs universels (i.e. de symbole :
Le domaine de Herbrand du modèle est défini au moins par un élément constant (afin d'être non vide) et est constitué de tous les termes que l'on peut former à partir des constantes et des fonctions utilisées dans les formules considérées. On définit un modèle de Herbrand en attribuant la valeur vraie à certains prédicats définis sur ces termes.
Exemple 1 : On considère la formule
Exemple 2 : On considère la formule
Exemple 3 : On considère la formule
Exemple 4 : On considère la formule
La formule prénexe F équivalente à
dont la forme skolémisée est :
La formation des formules Q1 en prenant pour (y,t) le couple (a,a) puis Q2 en prenant (y,t) = (f(a),a) conduit à
Exemple 5 : On considère la formule
dont la forme skolémisée est :
Elle est satisfiable en donnant la valeur vrai à tout P(u,f(u)) et faux à tout P(g(u,v),v), où u et v décrivent le domaine de Herbrand {a,f(a),g(a,a),f(f(a)),f(g(a,a)),g(a,f(a)),...}, et en donnant une valeur arbitraire aux autres prédicats. Cependant, le calcul successif des formules correspondantes Q1, Q2, ... ne se termine pas. F est satisfiable et donc G n'est pas un théorème, mais la démarche précédente ne permet pas de le montrer par un calcul en un nombre fini d'étapes.