Comment utiliser la syntaxe «LA» dans Isabelle / HOL?
J'essaie d'apprendre à utiliser la THE
syntaxe d'Isabelle / HOL (2020). Dans le tutoriel main.pdf, il y a:
The basic logic: x = y, True, False, ¬ P, P ∧ Q, P ∨ Q, P −→ Q, ∀ x. P,
∃ x. P, ∃!x. P, THE x. P.
Je peux comprendre ce que signifient les autres, mais pas le dernier "LE x. P". Ma meilleure estimation est "le x (peut-être unique) qui satisfait la propriété P". J'ai donc essayé d'énoncer un lemme de jouet comme suit:
lemma "0 = THE x::nat. (x ≥ 0 ∧ x ≤ 0)"
, ce qui signifie que le x qui est à la fois ge et le 0 est 0.
Mais j'obtiens une erreur dans Isabelle / jEdit avec un surlignage sur le mot "LE".
J'ai essayé de chercher avec les mots-clés Isabelle et "LE", mais évidemment le mot "LE" est ignoré par les moteurs de recherche. D'où la question ici.
Quelqu'un peut-il aider à expliquer la signification et l'utilisation de la syntaxe «LA», avec un peu de chance avec l'exemple ici?
Réponses
Vous avez besoin de plus de parenthèses.
lemma "0 = (THE x::nat. (x ≥ 0 ∧ x ≤ 0))"
(*the proof*)
using theI[of ‹λx::nat. (x ≥ 0 ∧ x ≤ 0)› 0]
by auto
SOME (resp. THE) est (une variante de) l'opérateur epsilon de Hilbert qui renvoie un (l ') élément qui respecte une certaine propriété. S'il n'y en a aucun (aucun ou plus d'un), un élément sous-spécifié est renvoyé.
CERTAINS et THE ne sont pas exécutables. Ils sont rarement utiles pour les débutants.