Comment utiliser la syntaxe «LA» dans Isabelle / HOL?

Jan 12 2021

J'essaie d'apprendre à utiliser la THEsyntaxe 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

3 MathiasFleury Jan 12 2021 at 13:09

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.