ДляДолжен ли я использовать универсальную количественную оценку в формулировке леммы?
datatype natural = Zero | Succ natural
primrec add :: "natural ⇒ natural ⇒ natural"
where
"add Zero m = m"
| "add (Succ n) m = Succ (add n m)"
доказывает
lemma add_succ_right: "⋀ m n. add m (Succ n) = Succ (add m n)"
Для того математического, важно иметь универсальные квантификации. Однако, для использования этого факта в Simplifier, то лучше сделать это без:
lemma add_succ_right_rewrite: "add m (Succ n) = Succ (add m n)"
Что общая мудрость об этих вариантах, один я предпочитаю в каких обстоятельствах?
«Свободные переменные в заявлениях о леммах автоматически определяются количественно» - с использованием схемных переменных в доказанном утверждении? – Gergely
Да, бесплатные переменные и автоматически превращаются в схематические переменные, когда они покидают область, в которой они исправлены (либо явно с помощью «исправлений», либо неявно как часть команды «lemma»). –