La question:
Supposons que j'ai une spécification d'un problème composé d'axiomes et d'un but (c'est-à-dire que le problème de preuve associé est de savoir si le but est satisfaisable étant donné tous les axiomes). Supposons également que le problème ne contienne aucune incohérence / contradiction entre les axiomes. Existe-t-il un moyen de déterminer à l'avance (c'est-à-dire sans avoir d'abord construit une preuve complète) que la preuve du problème nécessitera un "raisonnement d'ordre supérieur"?
Par «raisonnement d'ordre supérieur», j'entends appliquer des étapes de preuve qui nécessitent que la logique d'ordre supérieur soit écrite. Un exemple typique de «raisonnement d'ordre supérieur» serait l'induction: L'écriture d'un schéma d'induction nécessite en principe l'utilisation d'une logique d'ordre supérieur.
Exemple:
On peut spécifier le problème de preuve "L'addition sur deux nombres naturels est-elle commutative?" en utilisant la logique du premier ordre (c.-à-d. définir le nombre naturel via les constructeurs zéro / succ avec les axiomes standard, ainsi que les axiomes qui définissent récursivement une fonction «plus») La preuve de ce problème nécessite une induction sur la structure du premier ou du deuxième argument de "plus" (selon la définition exacte de "plus"). Aurais-je pu le savoir avant d'essayer de le prouver, par exemple en analysant la nature du problème d'entrée ...? (Bien sûr, ce n'est qu'un exemple simple à des fins d'illustration - en réalité, cela serait intéressant pour des problèmes de preuve plus difficiles que la commutativité de plus.)
Un peu plus de contexte:
Dans mes recherches, j'essaie fréquemment d'appliquer des prouveurs de théorèmes de premier ordre automatisés comme Vampire, eprover, etc. pour résoudre des problèmes de preuve (ou des parties de problèmes de preuve), dont certains peuvent nécessiter un raisonnement d'ordre supérieur. Souvent, les prouveurs ont besoin d'un certain temps pour produire une preuve (à condition qu'il y ait une preuve qui ne nécessite que des techniques de raisonnement de premier ordre). Bien sûr, essayer d'appliquer un prouveur de théorèmes de premier ordre à un problème qui nécessite un raisonnement d'ordre supérieur entraîne généralement un délai d'attente.
Par conséquent, je me suis demandé s'il existe des méthodes / techniques qui peuvent me dire à l'avance si un problème de preuve nécessitera des techniques de raisonnement d'ordre supérieur (ce qui signifie "ne perdez pas de temps à le remettre à un prouveur de théorèmes de premier ordre"). ) ou non, au moins peut-être pour des problèmes d'entrée particuliers.
J'ai cherché dans la littérature une réponse à ma question et j'ai demandé à certains collègues chercheurs du domaine du théorème de le prouver - mais jusqu'à présent, je n'ai reçu aucune bonne réponse. Je m'attendais à ce qu'il y ait des recherches sur ce sujet de la part de personnes qui essaient de combiner la démonstration interactive de théorèmes et la démonstration automatisée de théorèmes (communauté Coq? Communauté Isabelle (Sledgehammer)?) - mais jusqu'à présent, je n'ai rien trouvé.
Je suppose qu'en général, le problème que j'ai décrit ici est indécidable (n'est-ce pas?). Mais peut-être y a-t-il de bonnes réponses pour des versions raffinées du problème ...?