2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Пруфчекинг
Сообщение15.07.2024, 19:39 
Заслуженный участник


31/12/15
930
На меня сошло вдохновение и я формализовал свои доказательства в Coq. Общее впечатление -- это как вышивать крестиком, стоя на голове. В своё время делал общие обзоры на мехмате МГУ, вот здесь видео (Zoom во время карантина) и некоторые тексты по Coq и Metamath
https://cloud.mail.ru/public/H97n/Lt8W6MoqU
https://cloud.mail.ru/public/u4GW/oiuEMf2y9
По Metamath, возможно, не всё будет понятно (я перед этим делал живой доклад), там приложена книжка Мартин-Лёфа, прочитайте там про системы Поста, после этого Metamath легко будет понять (детали объясню). Среди популярных пруфчекеров Coq, Isabelle, Lean похожи друг на друга, а Metamath резко отличается. Coq, Isabelle, Lean дают некоторую сильную теорию (вроде ZF, но более удобную для практической записи доказательств) и предлагают всё записывать в ней. Формально записанные доказательства похожи на программы на функциональных языках (вроде Haskell). Также там берётся за основу принцип Пуанкаре "не надо доказывать то, что можно проверить вычислением". Если мы хотим в Coq доказать $2\times 2=4$, достаточно написать слово reflexivity. Потому что Coq, прежде чем доказывать равенство, вычисляет обе его части до упора и получает $4=4$. Помните школьные упражнения "раскрыть скобки, упростить и сократить"? Вот Coq постоянно это делает, а пользователь должен находить, что мешает и делать сам, где Coq не может (понять сообщения Coq об ошибках -- то ещё искусство). Metamath устроен совсем по-другому, он даёт минимум (чуть улучшенные производящие системы Поста), там можно с нуля выписывать любые аксиомы и доказывать $2\times 2=4$ шаг за шагом из аксиом Пеано. Многим это нравится, на сайте Metamath выложено огромное количество формализованных теорем. Но при попытке самостоятельно формализовать подстановку и кванторные правила Norman Megill (создатель Metamath) впал в отчаянье и взял за основу нестандартную аксиоматику, придуманную стариком Тайтельбаумом, известным под псевдонимом "Тарский". Она проще для формализации, чем обычная, но работать в ней -- цирк, сравнимый с Coq. Итого, удобного пруфчекера пока нет, все пруфчекеры сложны.

 Профиль  
                  
 
 Re: Пруфчекинг
Сообщение15.07.2024, 20:30 


18/09/21
1727
Тема интересная.
Прежде чем создавать систему, нужно знать требования (requirements) к ней.

Если получится как-то здесь описать, что из себя представляет "удобный" пруфчекер (список его "удобных" характеристик), то было бы интересно посмотреть.
(Видимо тут важен не сам пруфчекер - это довольно примитивный алгоритм - а способ записи доказательства для него.)

 Профиль  
                  
 
 Re: Пруфчекинг
Сообщение17.07.2024, 23:41 


01/09/14
442
george66
А вот это доказательство насколько сложно ввести и проверить через Coq?
Цитата:
1. Несчетность множества точек отрезка $[ 0,1 ]$
Множество $A$ называется несчетным, если оно неэквивалентно множеству натуральных чисел.

Теорема Кантора ... : Множество точек отрезка $[0,1]$ несчетно.

↓Предположим, что множество точек $[0,1]$ счетно: $x_1, x_2, \; \ldots, \;  x_n, \; \ldots \; .$ Разделим отрезок $[0,1]$ на $3$ равные части: $[0, \frac {1}{3}]; [\frac {1}{3}; \frac {2}{3}]; [\frac {2}{3}; 1]$, и выберем тот из отрезков, который не содержит $x_1$ ни внутри, ни на границе. Обозначим его через $\Delta_1$, т.е. $x_1$ не принадлежит $\Delta_1$. $\Delta_1$ также поделим на $3$ равные части и выберем ту часть, которая не содержит $x_2$ ни внутри, ни на границе. Обозначим эту часть $\Delta_2$, т.е. $x_2$ не принадлежит $\Delta_ 2$, и $\Delta_2\subset \Delta _1$. Продолжая эту процедуру, мы получим последовательность вложенных друг в друга отрезков $\Delta_1\supset \Delta_2\supset \ldots\supset \Delta_{n-1}\supset \Delta_n\supset \ldots \; .$ Причем длины этих отрезков стремятся к нулю и $\forall n \; x_n\notin \Delta_n$. В силу принципа вложенных отрезков существует точка $c\in \Delta_n$ для $\forall n$, причем $c\ne x_n \; \forall n$. А следовательно, точка $c$ в исходном списке точек отрезка отсутствует, т.е. точка $c$ оказалась незанумерованной. Это противоречие доказывает теорему. ↑

 Профиль  
                  
 
 Re: Пруфчекинг
Сообщение18.07.2024, 01:52 
Заслуженный участник


31/12/05
1513
talash в сообщении #1646603 писал(а):
А вот это доказательство насколько сложно ввести и проверить через Coq?

В поставку Coq входит что-то очень похожее: https://github.com/coq/coq/blob/master/ ... ountable.v

 Профиль  
                  
 
 Re: Пруфчекинг
Сообщение18.07.2024, 20:51 


01/09/14
442
Я сам в данный момент Coq не осилю. Мне интересно можно ли аналогично доказать через Coq, что бесконечное множество точек
$x_1=0.9, x_2=0.99, x_3=0.999, ...$ не содержит точку $1$.
Такой примерно план. Поделим отрезок $[0, 1]$ на $11$ равных частей и выберем самую правую часть $[\frac{10}{11}, 1]$, он не будет включать в себя $x_1$ потому что $0.9 < \frac{10}{11}$, затем снова поделим на $11$ равных частей и выберем самую правую часть и этот отрезок не будет включать $x_2$ и т.д. По лемме о вложенных отрезках наши отрезки содержат общую точку и это точка $1$, а наше бесконечное множество точек её не содержит. Доказано.

 Профиль  
                  
 
 Re: Пруфчекинг
Сообщение18.07.2024, 21:49 


22/10/20
1142
george66, а с какой целью Вы делали формализацию? Убедиться в истинности, лучше изучить Coq или что-то другое?

 Профиль  
                  
 
 Re: Пруфчекинг
Сообщение19.07.2024, 02:10 
Заслуженный участник


31/12/15
930
talash в сообщении #1646708 писал(а):
Я сам в данный момент Coq не осилю. Мне интересно можно ли аналогично доказать через Coq, что бесконечное множество точек
$x_1=0.9, x_2=0.99, x_3=0.999, ...$ не содержит точку $1$.
Такой примерно план. Поделим отрезок $[0, 1]$ на $11$ равных частей и выберем самую правую часть $[\frac{10}{11}, 1]$, он не будет включать в себя $x_1$ потому что $0.9 < \frac{10}{11}$, затем снова поделим на $11$ равных частей и выберем самую правую часть и этот отрезок не будет включать $x_2$ и т.д. По лемме о вложенных отрезках наши отрезки содержат общую точку и это точка $1$, а наше бесконечное множество точек её не содержит. Доказано.

Каждое следующее число получается из предыдущего добавлением 9/10 остатка до единицы. Простой индукцией доказываем, что все они меньше единицы. Если числа считать рациональными, проблем, наверное, никаких. Как говорить в Coq о действительных числах, я не знаю (теория типов Coq достаточно сильная, но интуиционистская логика Coq может создать проблемы).

-- 19.07.2024, 02:12 --

EminentVictorians в сообщении #1646725 писал(а):
george66, а с какой целью Вы делали формализацию? Убедиться в истинности, лучше изучить Coq или что-то другое?

С целью убедить других, что я что-то доказал. Доказательство, как оно есть, никто не понимает и нигде не печатают.

 Профиль  
                  
 
 Re: Пруфчекинг
Сообщение19.07.2024, 02:38 
Заслуженный участник


31/12/05
1513
george66 в сообщении #1646752 писал(а):
Как говорить в Coq о действительных числах, я не знаю (теория типов Coq достаточно сильная, но интуиционистская логика Coq может создать проблемы).
Например, вот так :)
https://github.com/coq/coq/blob/master/ ... able.v#L26
Цитата:
(* Here we use axiom total_order_T, which is not constructive *)

 Профиль  
                  
 
 Re: Пруфчекинг
Сообщение19.07.2024, 10:36 


01/09/14
442
george66 в сообщении #1646752 писал(а):
Каждое следующее число получается из предыдущего добавлением 9/10 остатка до единицы. Простой индукцией доказываем, что все они меньше единицы.

Далее утверждаем, что поскольку наше множество бесконечное, то туда входит число $0.(9)$, но не входит $1$, как мы доказали ранее. Отсюда следует, что $0.(9) \neq 1$.
Я думаю, что если Coq подтвердит канторовское доказательство, то и это должен подтвердить.

 Профиль  
                  
 
 Re: Пруфчекинг
Сообщение19.07.2024, 11:07 


22/10/20
1142
george66 в сообщении #1646752 писал(а):
Доказательство, как оно есть, никто не понимает и нигде не печатают.
Если не секрет, в чем заключается само утверждение?

 Профиль  
                  
 
 Re: Пруфчекинг
Сообщение19.07.2024, 11:08 
Заслуженный участник
Аватара пользователя


16/07/14
8828
Цюрих
talash в сообщении #1646774 писал(а):
Далее утверждаем, что поскольку наше множество бесконечное, то туда входит число $0.(9)$
Что, простите?

 Профиль  
                  
 
 Re: Пруфчекинг
Сообщение19.07.2024, 13:34 
Админ форума


02/02/19
2206
 ! 
talash в сообщении #1646774 писал(а):
Далее утверждаем, что поскольку наше множество бесконечное, то туда входит число $0.(9)$, но не входит $1$, как мы доказали ранее. Отсюда следует, что $0.(9) \neq 1$.
Я думаю, что если Coq подтвердит канторовское доказательство, то и это должен подтвердить.
Вам неоднократно пытались объяснить, почему $0.(9) = 1$. Недельный бан за агрессивное невежество и захват темы. Если будете продолжать повторять на форуме эту чушь, баны будут следовать по нарастающей.

 Профиль  
                  
 
 Re: Пруфчекинг
Сообщение19.07.2024, 18:27 
Заслуженный участник
Аватара пользователя


28/09/06
10654
talash в сообщении #1646708 писал(а):
Мне интересно можно ли аналогично доказать через Coq, что бесконечное множество точек
$x_1=0.9, x_2=0.99, x_3=0.999, ...$ не содержит точку $1$.

Бесконечное множество элементов последовательности $x_n=\frac{1}{10^n}$ не содержит $0$, тем не менее, предел этой последовательности равен $0$. Наверное, это никак невозможно понять без программирования доказательства на Coq? Кстати, доказательства обоих утверждений не потребуют определения действительных чисел.

 Профиль  
                  
 
 Re: Пруфчекинг
Сообщение20.07.2024, 03:08 
Заслуженный участник


31/12/15
930
И если напишу свой пруфчекер, назову его "Прион" (чтоб мозги сворачивались).

 Профиль  
                  
 
 Re: Пруфчекинг
Сообщение20.07.2024, 12:16 
Заслуженный участник
Аватара пользователя


28/09/06
10654
Точно, а потом запрограммировать на нём доказательство теоремы Гудстейна в арифметике Пеано второго порядка. Чтобы понять, как работают подстановки формул вместо предикатных переменных, без чего это доказательство невозможно. И тогда мозги свернутся так, что уж не развернуть. :wink:

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: george66


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group