Як "тактика" працює у помічників?
Я підозрюю, що ця відповідь буде дещо бурхливою.
По-перше, недостатньо запитати "як працює тактика у помічників доказування", оскільки вони працюють по-різному у різних помічників. Сьогодні використовуються два основні класи помічників: ті, що походять від оригінального LCF, як Ізабел, HOL і HOL світло, і допоміжні докази, що базуються на теорії типу, як Coq і Matita. У цих двох різних класах помічника доказування тактика працює різними способами, відображенням того, що відбувається під капелюшком, наприклад, Ізабел, зовсім інше, ніж те, що відбувається під капелюшком, наприклад, Матіта.
Запитайте себе: що відбувається, коли ми намагаємося довести судження Р в Матіті? Ми вводимо метавирізний X з типом P. Потім ми граємо в гру, так би мовити, де вдосконалюємо X, додаючи все більшу структуру неповному терміну, поки не отримаємо повний лямбда-термін (тобто не містить більше метазмінних). Після того, як ми маємо повний лямбда-термін, ми вводимо перевірку щодо Р, переконуючись, що він населяє потрібний тип. Тоді ми бачимо, що в Кок і Матіта тактика - це лише функція від неповних термінів доказування до неповних термінів доказування, що, сподіваємось, додає трохи структури терміну після застосування (це спостереження мотивувало досить небагато недавньої роботи, наприклад, Джойгова , Pientka та ін.).
Наприклад, тактика Матіта "вступ" вводить лямбда-абстракцію над існуючим терміном, "випадки" вводить словосполучення в термін, а "застосувати" вводить додаток одного терміна до іншого. Ці основні тактики можна скласти разом, використовуючи функції вищого порядку, щоб створити більш складні. Основна ідея завжди однакова: тактика завжди спрямована на те, щоб додати трохи структури в неповний термін підтвердження.
Зауважте, що реалізатори прагнуть повернути термін, який повторно перевіряється після кожного застосування тактики. Строго кажучи, для них немає ніякої вимоги, оскільки для помічників доказів, заснованих на теорії типів, важливо лише те, що, коли користувач приходить до Qed доказів, ми володіємо терміном доказування, який населяє пропозицію P. Як ми Прийшов до цього термін доказування значною мірою не має значення. Однак і Coq, і Matita прагнуть повернути користувачеві (можливо, неповний) термін підтвердження, який перевіряється після кожного застосування тактики. І все-таки цей інваріант може (і часто є) невдалим, особливо що стосується двох синтаксичних перевірок, які повинні виконувати асистенти на основі CIC.
Зокрема, ми можемо виконувати те, що видається вагомим доказом, застосовуючи ряд тактик, поки не залишиться відкритих цілей. Тоді ми приходимо до Qed на передбачуване підтвердження, лише щоб виявити, що перевірка припинення Матіти, або її сувора перевірка позитивності, скаржиться, оскільки термін доказування, що був сформований тактикою, визнав недійсним один із цих синтаксичних перевірок (тобто метазмінну позицію аргументу на рекурсивний виклик був створений терміном, який не є синтаксично меншим, ніж початковий аргумент). Це відображення, що теорія типів CIC у певному сенсі недостатньо сильна і не відображає синтаксичні вимоги щодо позитивності чи розміру у своїх типах (спостереження, що мотивує типи розмірів Абеля, та деяка нещодавня робота над типами позитивності ).
З іншого боку, помічники у стилі LCF досить різні. Тут ядро складається з модуля (зазвичай реалізованого у варіанті ML), що містить абстрактний тип "thm" та функцій, що реалізують правила виводу логіки асистента доказування, відображення "thm" на "thm" тощо. вперед. Ми покладаємось на дисципліну введення тексту ML, щоб переконатися, що єдиний спосіб побудови значення типу "thm" - це за допомогою цих правил виводу (основні тактики). Ядро Ізабель знаходиться тут .
Потім докази складаються з ряду застосувань цих основних тактик (або більш складних, більших тактик, які знову складаються шляхом з’єднання разом більш простої тактики з використанням функцій вищого порядку --- в Ізабеллі, функції вищого порядку, що називаються тактичними, можуть бачити тут ). На відміну від помічників доказів, заснованих на теорії типів, немає необхідності у помічнику стилю LCF зберігати чіткого свідчення доказів, що лежить навколо. Правильність доказування гарантується конструкцією, і наша довіра до дисципліни машинопису (багато помічників, наприклад, Ізабел, все ж створюють умови для їх підтвердження).