(A → B) → (¬B → ¬A)


38

Eh bien, je pense qu’il est temps que nous posions une autre question de .

Cette fois, nous allons prouver la vérité logique bien connue

(AB)(¬B¬A)

Pour ce faire, nous utiliserons le troisième schéma d'iiukasiewicz , un ensemble incroyablement élégant de trois axiomes complets sur la logique propositionnelle .

Voici comment cela fonctionne:

Axiomes

Le système Łukasiewicz a trois axiomes. Elles sont:

ϕ(ψϕ)

(ϕ(ψχ))((ϕψ)(ϕχ))

(¬ϕ¬ψ)(ψϕ)

Les axiomes sont des vérités universelles , peu importe ce que nous choisissons pour ϕ , ψ et χ . À tout moment de la preuve, nous pouvons introduire l'un de ces axiomes. Lorsque nous introduisons un axiome remplacer chaque cas de ϕ , ψ et χ , avec une « expression complexe ». Une expression complexe est une expression faite à partir Atomes, (représenté par les lettres A - Z ), et les opérateurs implique ( ) et non ( ¬ ).

Par exemple, si je voulais introduire le premier axiome (LS1), je pourrais vous présenter

A(BA)

ou

(AA)(¬D(AA))

Dans le premier cas, ϕ était A et ψ était B , tandis que dans le second cas, les deux étaient des expressions plus impliquées. ϕ était (AA) et ψ était ¬D .

Les substitutions que vous choisissez d'utiliser dépendront de ce dont vous avez besoin dans la preuve pour le moment.

Modus Ponens

Maintenant que nous pouvons introduire des déclarations, nous devons les relier pour en faire de nouvelles. La manière dont cela est fait dans le schéma de l'Axiom (LS) de Łukasiewicz est avec Modus Ponens. Modus Ponens nous permet de prendre deux déclarations de la forme

φ

ϕψ

et instancier une nouvelle déclaration

ψ

Tout comme avec notre Axioms ϕ et ψ peut se substituer à toute déclaration arbitraire.

Les deux déclarations peuvent figurer n'importe où dans la preuve, elles ne doivent pas nécessairement être côte à côte ou faire l'objet d'une commande spéciale.

Tâche

Votre tâche sera de prouver le droit des contrapositifs . Ceci est la déclaration

(AB)(¬B¬A)

Maintenant, vous remarquerez peut-être que cela est assez familier, il s’agit d’une instanciation du revers de notre troisième axiome

(¬ϕ¬ψ)(ψϕ)

Cependant, ce n'est pas un exploit trivial.

Notation

Marquer ce défi est assez simple, chaque fois que vous instanciez un axiome compte comme un point et chaque utilisation de modus ponens compte comme un point. C'est essentiellement le nombre de lignes de votre preuve. L'objectif devrait être de minimiser votre score (le rendre aussi bas que possible).

Exemple de preuve

Ok permet maintenant d’utiliser ceci pour construire une petite preuve. Nous prouverons AA .

Parfois, il est préférable de revenir en arrière, car nous savons où nous voulons être et nous pouvons imaginer comment nous pourrions y arriver. Dans ce cas, puisque nous voulons terminer par AUNE et que ce n’est pas l’un de nos axiomes, nous savons que la dernière étape doit être le modus ponens. Ainsi, la fin de notre preuve ressemblera à

φ
φ → (A → A)
A → A       M.P.

Texas

ϕ est une expression dont nous ne connaissons pas encore la valeur. Nous allons maintenant nous concentrer sur ϕ(AA) . Ceci peut être introduit par modus ponens ou LS3. LS3 nous oblige à prouver (¬A¬A) ce qui semble aussi difficile que(AA) , nous allons donc utiliser le modus ponens. Alors maintenant, notre preuve ressemble à

φ
ψ
ψ → (φ → (A → A))
φ → (A → A)        M.P.
A → A              M.P.

Texas

Maintenant ψ(ϕ(AA)) ressemble beaucoup à notre deuxième axiome LS2, nous allons donc le remplir en tant que LS2

A → χ
A → (χ → A)
(A → (χ → A)) → ((A → χ) → (A → A)) L.S.2
(A → χ) → (A → A)                   M.P.
A → A                               M.P.

Texas

Maintenant, notre deuxième déclaration (A(χA)) peut être assez clairement construite à partir de LS1, nous allons donc la remplir en tant que telle.

A → χ
A → (χ → A)                         L.S.1
(A → (χ → A)) → ((A → χ) → (A → A)) L.S.2
(A → χ) → (A → A)                   M.P.
A → A                               M.P.

Texas

Maintenant, nous avons juste besoin de trouver un χ tel que nous puissions prouver Aχ . Cela peut très facilement être fait avec LS1, nous allons donc essayer

A → (ω → A)                                     L.S.1
A → ((ω → A) → A)                               L.S.1
(A → ((ω → A) → A)) → ((A → (ω → A)) → (A → A)) L.S.2
(A → (ω → A)) → (A → A)                         M.P.
A → A                                           M.P.

Texas

Maintenant , puisque tous nos pas notre justifiées , nous pouvons remplir ω , comme une déclaration que nous voulons et la preuve sera valable. Nous pourrions choisir A , mais je vais choisir B de sorte qu'il est clair qu'il n'a pas besoin d'être UNE .

A → (B → A)                                     L.S.1
A → ((B → A) → A)                               L.S.1
(A → ((B → A) → A)) → ((A → (B → A)) → (A → A)) L.S.2
(A → (B → A)) → (A → A)                         M.P.
A → A                                           M.P.

Texas

Essayez-le en ligne!

Et c'est une preuve.

Ressources

Programme de vérification

Voici un programme Prolog que vous pouvez utiliser pour vérifier que votre preuve est bien valide. Chaque marche doit être placée sur sa propre ligne. ->devrait être utilisé pour implique et- doit être utilisé pour ne pas, les atomes peuvent être représentés par n’importe quelle chaîne de caractères alphabétiques.

Métamath

Metamath utilise le système Łukasiewicz pour ses preuves en calcul propositionnel, vous pouvez donc vous en occuper un peu. Ils ont aussi une preuve du théorème que ce défi demande qui peut être trouvé ici . Il y a une explication ici sur la façon de lire les preuves.

L'incroyable machine à épreuves

@ Antony m'a fait connaître l'existence d'un outil appelé The Incredible Proof Machine, qui vous permet de construire des épreuves dans un certain nombre de systèmes en utilisant un joli système d'épreuves graphiques. Si vous faites défiler l'écran vers le bas, vous constaterez qu'ils prennent en charge le système Łukasiewicz. Donc, si vous êtes une personne plus visuelle, vous pouvez travailler sur votre preuve là-bas. Votre score sera le nombre de blocs utilisés moins 1.


8
Attends, laisse-moi aller chercher mon cahier de mathématiques discrètes ...
mbomb007

5
@ DigitalTrauma Je suis un étudiant de premier cycle et c'était un devoir que j'avais (moins la partie golf), il est donc fort possible que vous l'ayez étudiée. Je vous encourage à faire un essai même si vous manquez "d'expertise". Je pense que ce défi est accessible même pour les personnes dont la formation est principalement en programmation.
Wheat Wizard

1
@ mbomb007 Vous ne pouvez pas utiliser le théorème de déduction et, comme le système Łukasiewicz est complet, vous n'avez pas besoin de l'utiliser.
Wheat Wizard

1
Au moins, vous n'avez pas limité les axiomes à un seul schéma universel:((P → Q) → R) → ((R → P) → (S → P))
mbomb007

2
L'incroyable machine à éprouver est tout glisser-déposer et supporte celle de Łukasiewicz. Faites défiler presque jusqu'au fond et cherchez "Système Hilbert". Par exemple, voici la preuve @ user56656 que A → A
Antony

Réponses:


25

88 82 77 72 marches

Merci à H.PWiz pour de meilleures conversions de combinateur qui ont enregistré 10 étapes!

Explication

Vous connaissez peut-être la correspondance de Curry-Howard , dans laquelle les théorèmes correspondent à des types et les preuves correspondent à des programmes de ces types. Les deux premiers axiomes du système de Łukasiewicz sont en fait les combinateurs de K et de S , et il est bien connu que nous pouvons traduire les expressions de calcul lambda en expressions de combinatoire SK.

Écrivons donc quelques expressions correspondant à nos axiomes (la syntaxe Haskell est la suivante, ce qui est pratique car nous pouvons littéralement vérifier nos preuves à l’aide du compilateur Haskell):

data Not φ

k :: φ ->  -> φ)
k x _ = x

s ::  ->  -> χ)) -> ((φ -> ψ) ->  -> χ))
s x y z = x z (y z)

c :: (Not φ -> Not ψ) ->  -> φ)
c = error "non-computational axiom"

Ensuite, nous pouvons écrire une preuve de l’énoncé souhaité en tant que programme c(cette partie demande un peu d’astuce, mais c’est beaucoup plus facile de l’écrire qu’une preuve axiomatique à 72 lignes):

pf :: (a -> b) -> (Not b -> Not a)
pf x y = c (\z -> c (\_ -> y) (x (c (c (\_ -> z)) x))) k

et convertissez-le en une expression combinatoire SK:

pf' :: (a -> b) -> (Not b -> Not a)
pf' =
  s (k (s (k (s c (k k)))))
    (s (k (s (s (k s) (s (k k) (s (k c) k)))))
       (s (k k) (s (k (s s (s (s (k c) (s (k c) k))))) k)))

Les 17 k, 16 set 4c combinateurs ci-dessus correspondent aux 16 invocations LS1, 16 LS2 et 4 LS3 dans la preuve ci-dessous, et les 38 applications d'une fonction à une valeur supérieure correspondent aux 38 invocations MP ci-dessous.

Pourquoi seulement 16 invocations LS1? Il s'avère que l'un desk combinateurs ci-dessus a une variable de type libre et que son instanciation la transforme avec précaution en une copie d'un autre déjà dérivé.

La preuve

  1. (A → B) → (¬¬A → (A → B)) LS1
  2. ¬¬A → (¬¬ (A → B) → ¬¬A) LS1
  3. (¬¬ (A → B) → ¬¬A) → (¬A → ¬ (A → B)) LS3
  4. ((¬¬ (A → B) → ¬¬A) → (¬A → ¬ (A → B))) → (¬¬A → ((¬¬ (A → B) → ¬¬A) → (¬ A → ¬ (A → B)))) LS1
  5. ¬¬A → ((¬¬ (A → B) → ¬¬A) → (¬A → ¬ (A → B))) MP 4,3
  6. (¬¬A → ((¬¬ (A → B) → ¬¬A) → (¬A → ¬ (A → B)))) → ((¬¬A → (¬¬ (A → B) → ¬ ¬A)) → (¬¬A → (¬A → ¬ (A → B)))) LS2
  7. (¬¬A → (¬¬ (A → B) → ¬¬A)) → (¬¬A → (¬A → ¬ (A → B))) MP 6,5
  8. ¬¬A → (¬A → ¬ (A → B)) MP 7,2
  9. (¬A → ¬ (A → B)) → ((A → B) → A) LS3
  10. ((¬A → ¬ (A → B)) → ((A → B) → A)) → (¬¬A → ((¬A → ¬ (A → B)) → → ((A → B) → A ))) LS1
  11. ¬¬A → ((¬A → ¬ (A → B)) → ((A → B) → A)) MP 10,9
  12. (¬¬A → ((¬A → ¬ (A → B)) → ((A → B) → A))) → ((¬¬A → (¬A → ¬ (A → B))) → → ¬¬A → ((A → B) → A))) LS2
  13. (¬¬A → (¬A → ¬ (A → B))) → (¬¬A → ((A → B) → A)) MP 12,11
  14. ¬¬A → ((A → B) → A) MP 13,8
  15. (¬¬A → ((A → B) → A)) → ((¬¬A → (A → B)) → (¬¬A → A)) LS2
  16. (¬¬A → (A → B)) → (¬¬A → A) MP 15,14
  17. (¬¬A → (A → B)) → ((¬¬A → A) → (¬¬A → B)) LS2
  18. ((¬¬A → (A → B)) → ((¬¬A → A) → (¬¬A → B))) → (((¬¬A → (A → B)) → → (¬¬A → A)) → ((¬¬A → (A → B)) → (¬¬A → B))) LS2
  19. ((¬¬A → (A → B)) → (¬¬A → A)) → ((¬¬A → (A → B)) → (¬¬A → B)) MP 18,17
  20. (¬¬A → (A → B)) → (¬¬A → B) MP 19,16
  21. ((¬¬A → (A → B)) → (¬¬A → B)) → ((A → B) → ((¬¬A → (A → B)) → (¬¬A → B)) ) LS1
  22. (A → B) → ((¬¬A → (A → B)) → (¬¬A → B)) MP 21,20
  23. ((A → B) → (((¬¬A → (A → B)) → (¬¬A → B))) → (((A → B) → (¬¬A → (A → B))) → ((A → B) → (¬¬A → B))) LS2
  24. ((A → B) → (¬¬A → (A → B))) → ((A → B) → (¬¬A → B)) MP 23,22
  25. (A → B) → (¬¬A → B) MP 24,1
  26. (¬¬A → B) → (¬B → (¬¬A → B)) LS1
  27. ((¬¬A → B) → (¬B → (¬¬A → B))) → ((A → B) → ((¬¬A → B) → (¬B → (¬¬A → B) ))) LS1
  28. (A → B) → ((¬¬A → B) → (¬B → (¬¬A → B))) MP 27,26
  29. ((A → B) → ((¬¬A → B) → (¬B → (¬¬A → B)))) → (((A → B) → (¬¬A → B)) → (( A → B) → (¬B → (¬¬A → B)))) LS2
  30. ((A → B) → (¬¬A → B)) → ((A → B) → (¬B → (¬¬A → B))) MP 29,28
  31. (A → B) → (¬B → (¬¬A → B)) MP 30,25
  32. ¬B → (¬¬ (¬¬A → (¬¬ (A → B) → ¬¬A)) → ¬B) LS1
  33. (¬¬ (¬¬A → (¬¬ (A → B) → ¬¬A)) → ¬B) → (B → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A)) ) LS3
  34. ((¬¬ (¬¬A → (¬¬ (A → B) → ¬¬A)) → ¬B) → (B → ¬ (¬¬A → (¬¬ (A → B) → ¬A) ))) → → (¬B → ((¬¬ (A → B) → ¬¬A)) → ¬B) → (B → ¬ (¬¬A → (¬¬A → B) → ¬¬A)) → B) → ¬¬A))))) LS1
  35. ¬B → ((¬¬ (¬¬A → (¬¬ (A → B) → ¬¬A)) → ¬B) → (B → ¬ (¬¬A → (¬¬ (A → B) → ¬ ¬A)))) MP 34,33
  36. (¬B → ((¬¬ (A → (A → B) → ¬¬A)) → ¬B) → (B → ¬ (¬¬A → (¬¬ (A → B) →) → ¬¬A))))) → ((¬B → (¬¬ (A → B) → ¬¬A)) → ¬B)) → (¬B → (B → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A))))) LS2
  37. (¬B → (¬¬ (¬¬A → (¬¬ (A → B) → ¬¬A)) → ¬B)) → (¬B → (B → ¬ (¬¬A → (¬¬)) → B) → ¬¬A)))) MP 36,35
  38. ¬B → (B → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A))) MP 37,32
  39. (B → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A))) → (¬¬A → (B → ¬ (¬¬A) (¬¬ (A → B) → ¬¬ A)))) LS1
  40. ((B → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A))) → (¬¬A → (B → ¬ (¬¬A → (¬¬ (A → B) → →)) ¬A))))) → → (¬B → ((B → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A)))) → (¬¬A → (B → ¬ (¬¬ A → (¬¬ (A → B) → ¬¬A))))))) LS1
  41. ¬B → ((B → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A)))) → (¬¬A → (B → ¬ (A → B) ) → ¬¬A))))) MP 40,39
  42. (¬B → ((B → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A)))) → (¬¬A → (B → ¬ (¬¬A → B) → ¬¬A)))))) → → ((¬B → (B → ¬ (¬¬A → (¬¬ (A → B) → ¬A))))) → (¬B → (¬ ¬A → (B → ¬ (¬¬A → (¬¬ (A → B) → ¬A))))))) LS2
  43. (¬B → (B → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A)))) → (¬B → (¬¬A → (B → ¬ (A → B) ¬ (A → B) → ¬¬A))))) MP 42,41
  44. ¬B → (¬¬A → (B → ¬ (¬¬A → (¬¬ (A → B) → ¬A)))) MP 43,38
  45. (¬¬A → (B → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A))))) → ((¬¬A → B) → (¬¬A → ¬ (¬¬A) → (¬¬ (A → B) → ¬¬A)))) LS2
  46. ((¬¬A → (B → ¬ (¬¬A → (¬¬A → B) → ¬¬A))))) → ((¬¬A → B) → (¬¬A → ¬ (¬¬ A → (¬¬ (A → B) → ¬¬A)))) → → (¬B → (¬¬A → (B → ¬ (A → B) → ¬ A)))) → → ((¬¬A → B) → (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬A))))))) LS1
  47. ¬B → ((¬¬A → (B → ¬ (A → B) → ¬A)))) ((¬¬A → B) → (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A))))) MP 46,45
  48. (¬B → ((¬¬A → (B → ¬ (A → B) → ¬A)))) ((¬¬A → B) → (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A))))) → ((¬B → (¬¬A → (B → ¬A → (¬¬A)) B) → ¬¬A))))) → → (¬B → ((¬¬A → B) → (¬¬A → ¬ (¬¬A → (¬¬A) → ¬A)) )))) LS2
  49. (¬B → (¬¬A → (B → ¬ (A → B) → ¬A))))) (¬B → ((¬¬A → B) → ( ¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A))))) MP 48,47
  50. ¬B → ((¬¬A → B) → (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬A)))) MP 49,44
  51. (¬B → ((¬¬A → B) → (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A)))))) → ((¬B → (¬¬ A → B)) → (¬B → (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A))))) LS2
  52. (¬B → (¬¬A → B)) → (¬B → (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬A)))) MP 51,50
  53. ((¬B → (¬¬A → B)) → (¬B → (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A)))))) () → B) → ((¬B → (¬¬A → B)) → (¬B → (¬¬A → ¬ (¬¬A → (¬¬A → B) → ¬¬A))))) ) LS1
  54. (A → B) → ((¬B → (¬¬A → B)) → (¬B → (¬¬A → ¬ (¬¬A → (¬¬A → B) → ¬¬A))) )) MP 53,52
  55. ((A → B) → ((¬B → (¬¬A → B)) → (¬B → (¬¬A → ¬ (¬¬A → (¬¬A → B) → ¬¬A)) )))) → → (((A → B) → (¬B → (¬¬A → B))) → ((A → B) → (¬B → (¬¬A → ¬ (¬¬A → (→ ¬¬ (A → B) → ¬¬A)))))) LS2
  56. ((A → B) → (¬B → (¬¬A → B))) → ((A → B) → (¬B → (¬¬A → ¬ (A → B) ) → ¬¬A))))) MP 55,54
  57. (A → B) → (¬B → (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬A)))) MP 56,31
  58. (¬¬A → (¬¬ (A → B) → ¬¬A)) → ((¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A))) → (¬ ¬A → (¬¬ (A → B) → ¬¬A))) LS1
  59. (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A))) → (¬¬A → (¬¬ (A → B) → ¬¬A)) MP 58,2
  60. (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A))) → ((¬¬A → (¬¬ (A → B) → ¬¬A)) → ¬A ) LS3
  61. ((¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A))) → → ((¬¬A → (¬¬ (A → B) → ¬¬A)) → ¬ A)) → (((¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A)))) → → (¬¬A → (¬¬ (A → B) → ¬¬A) ))) → → ((¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬A))) → ¬A)) LS2
  62. ((¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A)))) → (¬¬A → (¬¬ (A → B) → ¬¬A))) → ( (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A))) → ¬A) MP 61,60
  63. (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A))) → A MP 62,59
  64. ((¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A))) → ¬A) → (¬B → (¬¬A → ¬ (¬¬A → (¬ ¬ (A → B) → ¬¬A))) → → ¬A)) LS1
  65. ¬B → ((¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬A)))) → ¬A) MP 64,63
  66. (¬B → ((¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A))) → → ¬A)) → ((¬B → (¬¬A → ¬ ¬A → (¬¬ (A → B) → ¬¬A)))) → (¬B → ¬A)) LS2
  67. (¬B → (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A)))) → → (¬B → ¬A) MP 66,65
  68. (((¬B → (¬¬A → ¬ (A → B) → ¬¬A))) → → (¬B → ¬A)) → ((A → B) → ( (¬B → (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A)))) → → (¬B → ¬A))) LS1
  69. (A → B) → ((¬B → (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A)))) → → (¬B → ¬A)) MP 68, 67
  70. ((A → B) → ((¬B → (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A)))) → → (¬B → ¬A)))) → (((A → B) → (¬B → (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A)))))) → ((A → B) → (¬ B → ¬A))) LS2
  71. ((A → B) → (¬B → (¬¬A → ¬ (¬¬A → (¬¬ (A → B) → ¬¬A)))))) → ((A → B) → (¬B → ¬A)) MP 70,69
  72. (A → B) → (¬B → ¬A) MP 71,57

Essayez-le en ligne!


1
Wow, c'est incroyable.
Zacharý

2
Je ne peux pas dire si c'est plus court par paliers et si je dois y aller maintenant. Mais j'ai eus(s(k s)(s(k(s(k c)))(s(k(s(s(k s)(s(k k)(s(k c)k)))))(s(k k)(s(k(s s(s(s(k c)(s(k c)k)))))k)))))k qui est semblable au vôtre mais avec une fin légèrement plus courte
H.PWiz

@ H.PWiz Neat, cela correspond en fait à un programme de preuve légèrement différent. Mis à jour.
Anders Kaseorg

1
Que diriez- s(k(s(k(s c(k s)))))(s(k(s(s(k s)(s(k k)(s(k c)k)))))(s(k k)(s(k(s s(s(s(k c)(s(k c)k)))))k)))vous
H.PWiz

@ H.PWiz C'est bon pour un autre −5 avec l'astuce variable de type libre.
Anders Kaseorg

24

91 étapes

Preuve complète:

1. (A → B) → (¬¬A → (A → B)) LS1
2. (¬¬A → (A → B)) → ((¬¬A → A) → (¬¬A → B)) LS2
3. ((¬¬A → (A → B)) → ((¬¬A → A) → (¬¬A → B))) → ((A → B) → ((¬¬A → (A → B)) → ((¬¬A → A) → (¬¬A → B)))) LS1
4. (A → B) → ((¬¬A → (A → B)) → ((¬¬A → A) → (¬¬A → B))) MP 3,2
5. ((A → B) → ((¬¬A → (A → B)) → ((¬¬A → A) → (¬¬A → B)))) → (((A → B) → (¬¬A → (A → B))) → ((A → B) → ((¬¬A → A) → (¬¬A → B)))) LS2
6. ((A → B) → (¬¬A → (A → B))) → ((A → B) → ((¬¬A → A) → (¬¬A → B))) MP 5,4
7. (A → B) → ((¬¬A → A) → (¬¬A → B)) MP 6,1
8. ¬A → (¬¬(B → (¬A → A)) → ¬A) LS1
9. (¬¬(B → (¬A → A)) → ¬A) → (A → ¬(B → (¬A → A))) LS3
10. ((¬¬(B → (¬A → A)) → ¬A) → (A → ¬(B → (¬A → A)))) → (¬A → ((¬¬(B → (¬A → A)) → ¬A) → (A → ¬(B → (¬A → A))))) LS1
11. ¬A → ((¬¬(B → (¬A → A)) → ¬A) → (A → ¬(B → (¬A → A)))) MP 10,9
12. (¬A → ((¬¬(B → (¬A → A)) → ¬A) → (A → ¬(B → (¬A → A))))) → ((¬A → (¬¬(B → (¬A → A)) → ¬A)) → (¬A → (A → ¬(B → (¬A → A))))) LS2
13. (¬A → (¬¬(B → (¬A → A)) → ¬A)) → (¬A → (A → ¬(B → (¬A → A)))) MP 12,11
14. ¬A → (A → ¬(B → (¬A → A))) MP 13,8
15. (¬A → (A → ¬(B → (¬A → A)))) → ((¬A → A) → (¬A → ¬(B → (¬A → A)))) LS2
16. (¬A → A) → (¬A → ¬(B → (¬A → A))) MP 15,14
17. (¬A → ¬(B → (¬A → A))) → ((B → (¬A → A)) → A) LS3
18. ((¬A → ¬(B → (¬A → A))) → ((B → (¬A → A)) → A)) → ((¬A → A) → ((¬A → ¬(B → (¬A → A))) → ((B → (¬A → A)) → A))) LS1
19. (¬A → A) → ((¬A → ¬(B → (¬A → A))) → ((B → (¬A → A)) → A)) MP 18,17
20. ((¬A → A) → ((¬A → ¬(B → (¬A → A))) → ((B → (¬A → A)) → A))) → (((¬A → A) → (¬A → ¬(B → (¬A → A)))) → ((¬A → A) → ((B → (¬A → A)) → A))) LS2
21. ((¬A → A) → (¬A → ¬(B → (¬A → A)))) → ((¬A → A) → ((B → (¬A → A)) → A)) MP 20,19
22. (¬A → A) → ((B → (¬A → A)) → A) MP 21,16
23. (¬A → A) → (B → (¬A → A)) LS1
24. ((¬A → A) → ((B → (¬A → A)) → A)) → (((¬A → A) → (B → (¬A → A))) → ((¬A → A) → A)) LS2
25. ((¬A → A) → (B → (¬A → A))) → ((¬A → A) → A) MP 24,22
26. (¬A → A) → A MP 25,23
27. ¬¬A → (¬A → ¬¬A) LS1
28. (¬A → ¬¬A) → (¬A → A) LS3
29. ((¬A → ¬¬A) → (¬A → A)) → (¬¬A → ((¬A → ¬¬A) → (¬A → A))) LS1
30. ¬¬A → ((¬A → ¬¬A) → (¬A → A)) MP 29,28
31. (¬¬A → ((¬A → ¬¬A) → (¬A → A))) → ((¬¬A → (¬A → ¬¬A)) → (¬¬A → (¬A → A))) LS2
32. (¬¬A → (¬A → ¬¬A)) → (¬¬A → (¬A → A)) MP 31,30
33. ¬¬A → (¬A → A) MP 32,27
34. ((¬A → A) → A) → (¬¬A → ((¬A → A) → A)) LS1
35. ¬¬A → ((¬A → A) → A) MP 34,26
36. (¬¬A → ((¬A → A) → A)) → ((¬¬A → (¬A → A)) → (¬¬A → A)) LS2
37. (¬¬A → (¬A → A)) → (¬¬A → A) MP 36,35
38. ¬¬A → A MP 37,33
39. (¬¬A → A) → ((A → B) → (¬¬A → A)) LS1
40. (A → B) → (¬¬A → A) MP 39,38
41. ((A → B) → ((¬¬A → A) → (¬¬A → B))) → (((A → B) → (¬¬A → A)) → ((A → B) → (¬¬A → B))) LS2
42. ((A → B) → (¬¬A → A)) → ((A → B) → (¬¬A → B)) MP 41,7
43. (A → B) → (¬¬A → B) MP 42,40
44. ¬¬B → (¬¬(B → (¬¬B → ¬B)) → ¬¬B) LS1
45. (¬¬(B → (¬¬B → ¬B)) → ¬¬B) → (¬B → ¬(B → (¬¬B → ¬B))) LS3
46. ((¬¬(B → (¬¬B → ¬B)) → ¬¬B) → (¬B → ¬(B → (¬¬B → ¬B)))) → (¬¬B → ((¬¬(B → (¬¬B → ¬B)) → ¬¬B) → (¬B → ¬(B → (¬¬B → ¬B))))) LS1
47. ¬¬B → ((¬¬(B → (¬¬B → ¬B)) → ¬¬B) → (¬B → ¬(B → (¬¬B → ¬B)))) MP 46,45
48. (¬¬B → ((¬¬(B → (¬¬B → ¬B)) → ¬¬B) → (¬B → ¬(B → (¬¬B → ¬B))))) → ((¬¬B → (¬¬(B → (¬¬B → ¬B)) → ¬¬B)) → (¬¬B → (¬B → ¬(B → (¬¬B → ¬B))))) LS2
49. (¬¬B → (¬¬(B → (¬¬B → ¬B)) → ¬¬B)) → (¬¬B → (¬B → ¬(B → (¬¬B → ¬B)))) MP 48,47
50. ¬¬B → (¬B → ¬(B → (¬¬B → ¬B))) MP 49,44
51. (¬¬B → (¬B → ¬(B → (¬¬B → ¬B)))) → ((¬¬B → ¬B) → (¬¬B → ¬(B → (¬¬B → ¬B)))) LS2
52. (¬¬B → ¬B) → (¬¬B → ¬(B → (¬¬B → ¬B))) MP 51,50
53. (¬¬B → ¬(B → (¬¬B → ¬B))) → ((B → (¬¬B → ¬B)) → ¬B) LS3
54. ((¬¬B → ¬(B → (¬¬B → ¬B))) → ((B → (¬¬B → ¬B)) → ¬B)) → ((¬¬B → ¬B) → ((¬¬B → ¬(B → (¬¬B → ¬B))) → ((B → (¬¬B → ¬B)) → ¬B))) LS1
55. (¬¬B → ¬B) → ((¬¬B → ¬(B → (¬¬B → ¬B))) → ((B → (¬¬B → ¬B)) → ¬B)) MP 54,53
56. ((¬¬B → ¬B) → ((¬¬B → ¬(B → (¬¬B → ¬B))) → ((B → (¬¬B → ¬B)) → ¬B))) → (((¬¬B → ¬B) → (¬¬B → ¬(B → (¬¬B → ¬B)))) → ((¬¬B → ¬B) → ((B → (¬¬B → ¬B)) → ¬B))) LS2
57. ((¬¬B → ¬B) → (¬¬B → ¬(B → (¬¬B → ¬B)))) → ((¬¬B → ¬B) → ((B → (¬¬B → ¬B)) → ¬B)) MP 56,55
58. (¬¬B → ¬B) → ((B → (¬¬B → ¬B)) → ¬B) MP 57,52
59. (¬¬B → ¬B) → (B → (¬¬B → ¬B)) LS1
60. ((¬¬B → ¬B) → ((B → (¬¬B → ¬B)) → ¬B)) → (((¬¬B → ¬B) → (B → (¬¬B → ¬B))) → ((¬¬B → ¬B) → ¬B)) LS2
61. ((¬¬B → ¬B) → (B → (¬¬B → ¬B))) → ((¬¬B → ¬B) → ¬B) MP 60,58
62. (¬¬B → ¬B) → ¬B MP 61,59
63. ¬¬¬B → (¬¬B → ¬¬¬B) LS1
64. (¬¬B → ¬¬¬B) → (¬¬B → ¬B) LS3
65. ((¬¬B → ¬¬¬B) → (¬¬B → ¬B)) → (¬¬¬B → ((¬¬B → ¬¬¬B) → (¬¬B → ¬B))) LS1
66. ¬¬¬B → ((¬¬B → ¬¬¬B) → (¬¬B → ¬B)) MP 65,64
67. (¬¬¬B → ((¬¬B → ¬¬¬B) → (¬¬B → ¬B))) → ((¬¬¬B → (¬¬B → ¬¬¬B)) → (¬¬¬B → (¬¬B → ¬B))) LS2
68. (¬¬¬B → (¬¬B → ¬¬¬B)) → (¬¬¬B → (¬¬B → ¬B)) MP 67,66
69. ¬¬¬B → (¬¬B → ¬B) MP 68,63
70. ((¬¬B → ¬B) → ¬B) → (¬¬¬B → ((¬¬B → ¬B) → ¬B)) LS1
71. ¬¬¬B → ((¬¬B → ¬B) → ¬B) MP 70,62
72. (¬¬¬B → ((¬¬B → ¬B) → ¬B)) → ((¬¬¬B → (¬¬B → ¬B)) → (¬¬¬B → ¬B)) LS2
73. (¬¬¬B → (¬¬B → ¬B)) → (¬¬¬B → ¬B) MP 72,71
74. ¬¬¬B → ¬B MP 73,69
75. (¬¬¬B → ¬B) → (B → ¬¬B) LS3
76. B → ¬¬B MP 75,74
77. (B → ¬¬B) → (¬¬A → (B → ¬¬B)) LS1
78. ¬¬A → (B → ¬¬B) MP 77,76
79. (¬¬A → (B → ¬¬B)) → ((¬¬A → B) → (¬¬A → ¬¬B)) LS2
80. (¬¬A → B) → (¬¬A → ¬¬B) MP 79,78
81. ((¬¬A → B) → (¬¬A → ¬¬B)) → ((A → B) → ((¬¬A → B) → (¬¬A → ¬¬B))) LS1
82. (A → B) → ((¬¬A → B) → (¬¬A → ¬¬B)) MP 81,80
83. ((A → B) → ((¬¬A → B) → (¬¬A → ¬¬B))) → (((A → B) → (¬¬A → B)) → ((A → B) → (¬¬A → ¬¬B))) LS2
84. ((A → B) → (¬¬A → B)) → ((A → B) → (¬¬A → ¬¬B)) MP 83,82
85. (A → B) → (¬¬A → ¬¬B) MP 84,43
86. (¬¬A → ¬¬B) → (¬B → ¬A) LS3
87. ((¬¬A → ¬¬B) → (¬B → ¬A)) → ((A → B) → ((¬¬A → ¬¬B) → (¬B → ¬A))) LS1
88. (A → B) → ((¬¬A → ¬¬B) → (¬B → ¬A)) MP 87,86
89. ((A → B) → ((¬¬A → ¬¬B) → (¬B → ¬A))) → (((A → B) → (¬¬A → ¬¬B)) → ((A → B) → (¬B → ¬A))) LS2
90. ((A → B) → (¬¬A → ¬¬B)) → ((A → B) → (¬B → ¬A)) MP 89,88
91. (A → B) → (¬B → ¬A) MP 90,85

Essayez-le en ligne!

Une version plus lisible par l'homme utilisant 5 lemmes:

Lemma 1: From A → B and B → C, instantiate A → C. (5 steps)

1. B → C                                         given
2. (B → C) → (A → (B → C))                       L.S.1
3. A → (B → C)                                   M.P. (1,2)
4. (A → (B → C)) → ((A → B) → (A → C))           L.S.2
5. (A → B) → (A → C)                             M.P. (3,4)
6. A → B                                         given
7. A → C                                         M.P. (6,5)

Lemma 2: ¬A → (A → B) (7 steps)

1. ¬A → (¬B → ¬A)                                L.S.1
2. (¬B → ¬A) → (A → B)                           L.S.3
3. ¬A → (A → B)                                  Lemma 1 (1,2)

Lemma 3: From A → (B → C) and A → B, instantiate A → C. (3 steps)

1. A → (B → C)                                   given
2. (A → (B → C)) → ((A → B) → (A → C))           L.S.2
3. (A → B) → (A → C)                             M.P. (1,2)
4. A → B                                         given
5. A → C                                         M.P. (4,3)

Lemma 4: ¬¬A → A (31 steps)

1. ¬A → (A → ¬(B → (¬A → A)))                    Lemma 2
2. (¬A → (A → ¬(B → (¬A → A)))) → 
   ((¬A → A) → (¬A → ¬(B → (¬A → A))))           L.S.2
3. (¬A → A) → (¬A → ¬(B → (¬A → A)))             M.P. (1,2)
4. (¬A → ¬(B → (¬A → A))) →((B → (¬A → A)) → A)  L.S.3
5. (¬A → A) → ((B → (¬A → A)) → A)               Lemma 1 (3,4)
6. (¬A → A) → (B → (¬A → A))                     L.S.1
7. (¬A → A) → A                                  Lemma 3 (5,6)
8. ¬¬A → (¬A → A)                                Lemma 2
9. ¬¬A → A                                       Lemma 1 (8,7)

Lemma 5: (A → B) → (¬¬A → B) (43 steps)

1. (A → B) → (¬¬A → (A → B))                     L.S.1
2. (¬¬A → (A → B)) → ((¬¬A → A) → (¬¬A → B))     L.S.2
3. (A → B) → ((¬¬A → A) → (¬¬A → B))             Lemma 1 (1,2)
4. ¬¬A → A                                       Lemma 4
5. (¬¬A → A) → ((A → B) → (¬¬A → A))             L.S.1
6. (A → B) → (¬¬A → A)                           M.P. (4,5)
7. (A → B) → (¬¬A → B)                           Lemma 3 (3,6)

Theorem: (A → B) → (¬B → ¬A)

1. (A → B) → (¬¬A → B)                           Lemma 5
2. ¬¬¬B → ¬B                                     Lemma 4
3. (¬¬¬B → ¬B) → (B → ¬¬B)                       L.S.3
4. B → ¬¬B                                       M.P. (2,3)
5. (B → ¬¬B) → (¬¬A → (B → ¬¬B))                 L.S.1
6. ¬¬A → (B → ¬¬B)                               M.P. (4,5)
7. (¬¬A → (B → ¬¬B)) → ((¬¬A → B) → (¬¬A → ¬¬B)) L.S.2
8. (¬¬A → B) → (¬¬A → ¬¬B)                       M.P. (6,7)
9. (A → B) → (¬¬A → ¬¬B)                         Lemma 1 (1,8)
10.(¬¬A → ¬¬B) → (¬B → ¬A)                       L.S.3
11.(A → B) → (¬B → ¬A)                           Lemma 1 (9,10)

Bienvenue sur le site et réponse impressionnante! Avez-vous vérifié votre réponse avec le script Prolog? Si oui, cela vous dérangerait-il d'inclure un lien vers cette vérification?
Caird coinheringaahing

@cairdcoinheringaahing J'ai ajouté un lien tio au script prolog à la réponse afin qu'il puisse être vérifié (cela fonctionne). Habituellement, je commenterais le lien, mais le lien est trop long pour tenir dans un commentaire.
Assistant de blé

C’est essentiellement la preuve que j’étais en train de faire, sauf que vous avez utilisé différents lemmas. J'ai utilisé le principe d'identité. En outre, je n'avais pas encore prouvé l'élimination de la double négation, car la preuve que je créais nécessitait la réalisation de la contradiction.
mbomb007

1
Seriez - vous capable de découper Lemme 5 et au lieu de prouver et d' utiliser la substitution Théorème pour obtenir de (¬¬A → ¬¬B) → (¬B → ¬A)à (A → B) → (¬B → ¬A)en moins d' étapes?
mbomb007

Je pense que la toute première étape est redondante? Je n'ai rien trouvé qui la référence, j'ai donc essayé de l'exécuter sur TIO sans cette ligne et je n'ai reçu aucun avertissement "Invalid step".
Antony

14

59 étapes

Norman Megill, auteur de Metamath, m'a parlé d'une preuve en 59 étapes, que je vais publier ici dans ce wiki de communauté. L'original se trouve dans le théorème 2.16 de cette page.

http://us.metamath.org/mmsolitaire/pmproofs.txt

Norm dit: Cette page présente de nombreux défis à relever!

Voici la preuve

((P -> Q) -> (~ Q -> ~ P)); ! *2.16
((P -> Q) -> (~ Q -> ~ P)); ! Result of proof
DD2D1DD2D13DD2D1DD22D2DD2D13DD2D1311D2D1D3DD2DD2D13DD2D1311
; ! 59 steps

La preuve est en notation polonaise. Elle commence donc par la conclusion et continue à l'envers jusqu'à ce que chaque terme soit satisfait par un axiome. La correspondance des caractères est la suivante: "1" correspond à l'axiome LS 1, "2" à l'axiome LS 2, "3" à l'axiome LS 3 et "D" à Modus Ponens.

Voici la preuve au format suggéré par @ WW

01 ax-1          $a |- ( ¬ ¬ ¬ B → ( ¬ B → ¬ ¬ ¬ B ) )
02 ax-1          $a |- ( ¬ ¬ ¬ B → ( ¬ ¬ ( ¬ B → ¬ ¬ ¬ B ) → ¬ ¬ ¬ B ) )
03 ax-3          $a |- ( ( ¬ ¬ ( ¬ B → ¬ ¬ ¬ B ) → ¬ ¬ ¬ B ) → ( ¬ ¬ B → ¬ ( ¬ B → ¬ ¬ ¬ B ) ) )
04 ax-1          $a |- ( ( ( ¬ ¬ ( ¬ B → ¬ ¬ ¬ B ) → ¬ ¬ ¬ B ) → ( ¬ ¬ B → ¬ ( ¬ B → ¬ ¬ ¬ B ) ) ) → ( ¬ ¬ ¬ B → ( ( ¬ ¬ ( ¬ B → ¬ ¬ ¬ B ) → ¬ ¬ ¬ B ) → ( ¬ ¬ B → ¬ ( ¬ B → ¬ ¬ ¬ B ) ) ) ) )
05 3,4 ax-mp     $a |- ( ¬ ¬ ¬ B → ( ( ¬ ¬ ( ¬ B → ¬ ¬ ¬ B ) → ¬ ¬ ¬ B ) → ( ¬ ¬ B → ¬ ( ¬ B → ¬ ¬ ¬ B ) ) ) )
06 ax-2          $a |- ( ( ¬ ¬ ¬ B → ( ( ¬ ¬ ( ¬ B → ¬ ¬ ¬ B ) → ¬ ¬ ¬ B ) → ( ¬ ¬ B → ¬ ( ¬ B → ¬ ¬ ¬ B ) ) ) ) → ( ( ¬ ¬ ¬ B → ( ¬ ¬ ( ¬ B → ¬ ¬ ¬ B ) → ¬ ¬ ¬ B ) ) → ( ¬ ¬ ¬ B → ( ¬ ¬ B → ¬ ( ¬ B → ¬ ¬ ¬ B ) ) ) ) )
07 5,6 ax-mp     $a |- ( ( ¬ ¬ ¬ B → ( ¬ ¬ ( ¬ B → ¬ ¬ ¬ B ) → ¬ ¬ ¬ B ) ) → ( ¬ ¬ ¬ B → ( ¬ ¬ B → ¬ ( ¬ B → ¬ ¬ ¬ B ) ) ) )
08 2,7 ax-mp     $a |- ( ¬ ¬ ¬ B → ( ¬ ¬ B → ¬ ( ¬ B → ¬ ¬ ¬ B ) ) )
09 ax-3          $a |- ( ( ¬ ¬ B → ¬ ( ¬ B → ¬ ¬ ¬ B ) ) → ( ( ¬ B → ¬ ¬ ¬ B ) → ¬ B ) )
10 ax-1          $a |- ( ( ( ¬ ¬ B → ¬ ( ¬ B → ¬ ¬ ¬ B ) ) → ( ( ¬ B → ¬ ¬ ¬ B ) → ¬ B ) ) → ( ¬ ¬ ¬ B → ( ( ¬ ¬ B → ¬ ( ¬ B → ¬ ¬ ¬ B ) ) → ( ( ¬ B → ¬ ¬ ¬ B ) → ¬ B ) ) ) )
11 9,10 ax-mp    $a |- ( ¬ ¬ ¬ B → ( ( ¬ ¬ B → ¬ ( ¬ B → ¬ ¬ ¬ B ) ) → ( ( ¬ B → ¬ ¬ ¬ B ) → ¬ B ) ) )
12 ax-2          $a |- ( ( ¬ ¬ ¬ B → ( ( ¬ ¬ B → ¬ ( ¬ B → ¬ ¬ ¬ B ) ) → ( ( ¬ B → ¬ ¬ ¬ B ) → ¬ B ) ) ) → ( ( ¬ ¬ ¬ B → ( ¬ ¬ B → ¬ ( ¬ B → ¬ ¬ ¬ B ) ) ) → ( ¬ ¬ ¬ B → ( ( ¬ B → ¬ ¬ ¬ B ) → ¬ B ) ) ) )
13 11,12 ax-mp   $a |- ( ( ¬ ¬ ¬ B → ( ¬ ¬ B → ¬ ( ¬ B → ¬ ¬ ¬ B ) ) ) → ( ¬ ¬ ¬ B → ( ( ¬ B → ¬ ¬ ¬ B ) → ¬ B ) ) )
14 8,13 ax-mp    $a |- ( ¬ ¬ ¬ B → ( ( ¬ B → ¬ ¬ ¬ B ) → ¬ B ) )
15 ax-2          $a |- ( ( ¬ ¬ ¬ B → ( ( ¬ B → ¬ ¬ ¬ B ) → ¬ B ) ) → ( ( ¬ ¬ ¬ B → ( ¬ B → ¬ ¬ ¬ B ) ) → ( ¬ ¬ ¬ B → ¬ B ) ) )
16 14,15 ax-mp   $a |- ( ( ¬ ¬ ¬ B → ( ¬ B → ¬ ¬ ¬ B ) ) → ( ¬ ¬ ¬ B → ¬ B ) )
17 1,16 ax-mp    $a |- ( ¬ ¬ ¬ B → ¬ B )
18 ax-3          $a |- ( ( ¬ ¬ ¬ B → ¬ B ) → ( B → ¬ ¬ B ) )
19 17,18 ax-mp   $a |- ( B → ¬ ¬ B )
20 ax-1          $a |- ( ( B → ¬ ¬ B ) → ( A → ( B → ¬ ¬ B ) ) )
21 19,20 ax-mp   $a |- ( A → ( B → ¬ ¬ B ) )
22 ax-2          $a |- ( ( A → ( B → ¬ ¬ B ) ) → ( ( A → B ) → ( A → ¬ ¬ B ) ) )
23 21,22 ax-mp   $a |- ( ( A → B ) → ( A → ¬ ¬ B ) )
24 ax-1          $a |- ( ( A → ¬ ¬ B ) → ( ¬ ¬ A → ( A → ¬ ¬ B ) ) )
25 ax-1          $a |- ( ¬ ¬ A → ( ¬ ¬ ( A → ¬ ¬ B ) → ¬ ¬ A ) )
26 ax-3          $a |- ( ( ¬ ¬ ( A → ¬ ¬ B ) → ¬ ¬ A ) → ( ¬ A → ¬ ( A → ¬ ¬ B ) ) )
27 ax-1          $a |- ( ( ( ¬ ¬ ( A → ¬ ¬ B ) → ¬ ¬ A ) → ( ¬ A → ¬ ( A → ¬ ¬ B ) ) ) → ( ¬ ¬ A → ( ( ¬ ¬ ( A → ¬ ¬ B ) → ¬ ¬ A ) → ( ¬ A → ¬ ( A → ¬ ¬ B ) ) ) ) )
28 26,27 ax-mp   $a |- ( ¬ ¬ A → ( ( ¬ ¬ ( A → ¬ ¬ B ) → ¬ ¬ A ) → ( ¬ A → ¬ ( A → ¬ ¬ B ) ) ) )
29 ax-2          $a |- ( ( ¬ ¬ A → ( ( ¬ ¬ ( A → ¬ ¬ B ) → ¬ ¬ A ) → ( ¬ A → ¬ ( A → ¬ ¬ B ) ) ) ) → ( ( ¬ ¬ A → ( ¬ ¬ ( A → ¬ ¬ B ) → ¬ ¬ A ) ) → ( ¬ ¬ A → ( ¬ A → ¬ ( A → ¬ ¬ B ) ) ) ) )
30 28,29 ax-mp   $a |- ( ( ¬ ¬ A → ( ¬ ¬ ( A → ¬ ¬ B ) → ¬ ¬ A ) ) → ( ¬ ¬ A → ( ¬ A → ¬ ( A → ¬ ¬ B ) ) ) )
31 25,30 ax-mp   $a |- ( ¬ ¬ A → ( ¬ A → ¬ ( A → ¬ ¬ B ) ) )
32 ax-3          $a |- ( ( ¬ A → ¬ ( A → ¬ ¬ B ) ) → ( ( A → ¬ ¬ B ) → A ) )
33 ax-1          $a |- ( ( ( ¬ A → ¬ ( A → ¬ ¬ B ) ) → ( ( A → ¬ ¬ B ) → A ) ) → ( ¬ ¬ A → ( ( ¬ A → ¬ ( A → ¬ ¬ B ) ) → ( ( A → ¬ ¬ B ) → A ) ) ) )
34 32,33 ax-mp   $a |- ( ¬ ¬ A → ( ( ¬ A → ¬ ( A → ¬ ¬ B ) ) → ( ( A → ¬ ¬ B ) → A ) ) )
35 ax-2          $a |- ( ( ¬ ¬ A → ( ( ¬ A → ¬ ( A → ¬ ¬ B ) ) → ( ( A → ¬ ¬ B ) → A ) ) ) → ( ( ¬ ¬ A → ( ¬ A → ¬ ( A → ¬ ¬ B ) ) ) → ( ¬ ¬ A → ( ( A → ¬ ¬ B ) → A ) ) ) )
36 34,35 ax-mp   $a |- ( ( ¬ ¬ A → ( ¬ A → ¬ ( A → ¬ ¬ B ) ) ) → ( ¬ ¬ A → ( ( A → ¬ ¬ B ) → A ) ) )
37 31,36 ax-mp   $a |- ( ¬ ¬ A → ( ( A → ¬ ¬ B ) → A ) )
38 ax-2          $a |- ( ( ¬ ¬ A → ( ( A → ¬ ¬ B ) → A ) ) → ( ( ¬ ¬ A → ( A → ¬ ¬ B ) ) → ( ¬ ¬ A → A ) ) )
39 37,38 ax-mp   $a |- ( ( ¬ ¬ A → ( A → ¬ ¬ B ) ) → ( ¬ ¬ A → A ) )
40 ax-2          $a |- ( ( ¬ ¬ A → ( A → ¬ ¬ B ) ) → ( ( ¬ ¬ A → A ) → ( ¬ ¬ A → ¬ ¬ B ) ) )
41 ax-2          $a |- ( ( ( ¬ ¬ A → ( A → ¬ ¬ B ) ) → ( ( ¬ ¬ A → A ) → ( ¬ ¬ A → ¬ ¬ B ) ) ) → ( ( ( ¬ ¬ A → ( A → ¬ ¬ B ) ) → ( ¬ ¬ A → A ) ) → ( ( ¬ ¬ A → ( A → ¬ ¬ B ) ) → ( ¬ ¬ A → ¬ ¬ B ) ) ) )
42 40,41 ax-mp   $a |- ( ( ( ¬ ¬ A → ( A → ¬ ¬ B ) ) → ( ¬ ¬ A → A ) ) → ( ( ¬ ¬ A → ( A → ¬ ¬ B ) ) → ( ¬ ¬ A → ¬ ¬ B ) ) )
43 39,42 ax-mp   $a |- ( ( ¬ ¬ A → ( A → ¬ ¬ B ) ) → ( ¬ ¬ A → ¬ ¬ B ) )
44 ax-1          $a |- ( ( ( ¬ ¬ A → ( A → ¬ ¬ B ) ) → ( ¬ ¬ A → ¬ ¬ B ) ) → ( ( A → ¬ ¬ B ) → ( ( ¬ ¬ A → ( A → ¬ ¬ B ) ) → ( ¬ ¬ A → ¬ ¬ B ) ) ) )
45 43,44 ax-mp   $a |- ( ( A → ¬ ¬ B ) → ( ( ¬ ¬ A → ( A → ¬ ¬ B ) ) → ( ¬ ¬ A → ¬ ¬ B ) ) )
46 ax-2          $a |- ( ( ( A → ¬ ¬ B ) → ( ( ¬ ¬ A → ( A → ¬ ¬ B ) ) → ( ¬ ¬ A → ¬ ¬ B ) ) ) → ( ( ( A → ¬ ¬ B ) → ( ¬ ¬ A → ( A → ¬ ¬ B ) ) ) → ( ( A → ¬ ¬ B ) → ( ¬ ¬ A → ¬ ¬ B ) ) ) )
47 45,46 ax-mp   $a |- ( ( ( A → ¬ ¬ B ) → ( ¬ ¬ A → ( A → ¬ ¬ B ) ) ) → ( ( A → ¬ ¬ B ) → ( ¬ ¬ A → ¬ ¬ B ) ) )
48 24,47 ax-mp   $a |- ( ( A → ¬ ¬ B ) → ( ¬ ¬ A → ¬ ¬ B ) )
49 ax-3          $a |- ( ( ¬ ¬ A → ¬ ¬ B ) → ( ¬ B → ¬ A ) )
50 ax-1          $a |- ( ( ( ¬ ¬ A → ¬ ¬ B ) → ( ¬ B → ¬ A ) ) → ( ( A → ¬ ¬ B ) → ( ( ¬ ¬ A → ¬ ¬ B ) → ( ¬ B → ¬ A ) ) ) )
51 49,50 ax-mp   $a |- ( ( A → ¬ ¬ B ) → ( ( ¬ ¬ A → ¬ ¬ B ) → ( ¬ B → ¬ A ) ) )
52 ax-2          $a |- ( ( ( A → ¬ ¬ B ) → ( ( ¬ ¬ A → ¬ ¬ B ) → ( ¬ B → ¬ A ) ) ) → ( ( ( A → ¬ ¬ B ) → ( ¬ ¬ A → ¬ ¬ B ) ) → ( ( A → ¬ ¬ B ) → ( ¬ B → ¬ A ) ) ) )
53 51,52 ax-mp   $a |- ( ( ( A → ¬ ¬ B ) → ( ¬ ¬ A → ¬ ¬ B ) ) → ( ( A → ¬ ¬ B ) → ( ¬ B → ¬ A ) ) )
54 48,53 ax-mp   $a |- ( ( A → ¬ ¬ B ) → ( ¬ B → ¬ A ) )
55 ax-1          $a |- ( ( ( A → ¬ ¬ B ) → ( ¬ B → ¬ A ) ) → ( ( A → B ) → ( ( A → ¬ ¬ B ) → ( ¬ B → ¬ A ) ) ) )
56 54,55 ax-mp   $a |- ( ( A → B ) → ( ( A → ¬ ¬ B ) → ( ¬ B → ¬ A ) ) )
57 ax-2          $a |- ( ( ( A → B ) → ( ( A → ¬ ¬ B ) → ( ¬ B → ¬ A ) ) ) → ( ( ( A → B ) → ( A → ¬ ¬ B ) ) → ( ( A → B ) → ( ¬ B → ¬ A ) ) ) )
58 56,57 ax-mp   $a |- ( ( ( A → B ) → ( A → ¬ ¬ B ) ) → ( ( A → B ) → ( ¬ B → ¬ A ) ) )
59 23,58 ax-mp   $a |- ( ( A → B ) → ( ¬ B → ¬ A ) )

Essayez-le en ligne!

La voici dans The Incredible Proof Machine entrez la description de l'image ici

png svg


Je ne me souviens pas d’avoir suggéré un tel format… L’expression sk correspondante est ce qu’elle vaut s(k(s(k c)(s(k(s s(s(s(k c)(s(k c)k)))))k)))(s(k(c(s(s(k c)(s(k c)k))k)))). Je n'ai cependant aucun moyen de reconvertir cela en lambdas
H.PWiz

@ H.PWiz C'est \x -> c (\y -> c (\z -> c (c (\_ -> z)) (\_ -> z)) (x (c (c (\_ -> y)) (\z -> c (\t -> c (c (\_ -> t)) (\_ -> t)) (x z))))). (Probablement pas ce que vous écririez si vous vous en approchiez de cette direction.)
Anders Kaseorg

@AndersKaseorg Oui, je viens de le découvrir et d'extraire les théorèmes utiles: ici
H.PWiz

@ H.PWiz, désolé, non, vous n'avez pas suggéré ce format. Je voulais dire que (dépouillé de la marge), il est compatible avec votre vérificateur Prolog.
Antony

1
Je suis désolé de vous avoir confondu avec OP, @ H.PWiz. J'ai bien peur que votre nom d'utilisateur ne ressemble à aucun
Antony
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.