9 - Prover9

9 болып табылады автоматтандырылған теоремалық провер үшін бірінші ретті және теңдеу логикасы әзірлеген Уильям МакКун.

Сипаттама

Prover9 - бұл ізбасар Отер теоремасының дәлелі дамыған Уильям МакКун.[1]:1 Prover9 салыстырмалы түрде оқылатын дәлелдемелер шығарумен және күшті кеңестер стратегиясымен ерекшеленеді.[1]:11

Prover9 әдейі жұптастырылған Mace4, ол ақырғы модельдер мен қарсы мысалдарды іздейді. Екеуі бір уақытта бір кірістен іске қосылуы мүмкін,[2] Prover9 көмегімен дәлел табуға тырысады, ал Mace4 (жоққа шығаратын) қарсы мысал табуға тырысады. Prover9, Mace4 және басқа көптеген құралдар іске асыруды жеңілдету үшін LADR деп аталатын кітапханаға негізделген. Нәтижелік дәлелдемелерді Ivy, a дәлелдеу пайдалану арқылы бөлек расталған құрал ACL2.

2006 жылдың шілдесінде LADR / Prover9 / Mace4 енгізу тілі үлкен өзгеріс енгізді (бұл оны Otter-ден ажыратады). «Сөйлемдер» мен «формулалар» арасындағы негізгі айырмашылық мүлдем жойылды; «формулалар» енді болуы мүмкін еркін айнымалылар; және «сөйлемдер» қазір «формулалардың» ішкі жиыны болып табылады. Prover9 / Mace4 сонымен қатар дәлелдеу үшін автоматты түрде жоққа шығарылатын формуланың «мақсат» түрін қолдайды. Prover9 әдепкі бойынша автоматты түрде дәлелдеме жасауға тырысады; керісінше, Otter автоматты режимі нақты орнатылуы керек.

Prover9 2009 жылға дейін әр айда немесе әр айда жаңа шығарылымдармен белсенді әзірленуде ақысыз бағдарламалық жасақтама, демек, ашық бастапқы бағдарламалық жасақтама; ол астында шығарылады GPL 2 немесе одан кейінгі нұсқа.

Мысалдар

Сократ

Дәстүрлі «барлық адамдар өлімші», «Сократ - адам», дәлелдеңіз «Сократ - өлімші» Провер9-де:

формулалар (болжамдар). адам (х) -> өлім (х). x man (socrates) .end_of_list еркін айнымалысы бар% ашық формула.
формулалар (мақсаттар). өлім (Socrates). тізімнің_еңдеуі.

Бұл автоматты түрде сөйлем формасына айналады (Prover9 да қабылдайды):

формулалар (сос). -ман (х) | өлім (х). адам (сократ). -мортал (Socrates) .end_of_list.

2-нің квадрат түбірі қисынсыз

Дәлелі квадрат түбірі 2 ақылға қонымсыз болып табылады:[3]

формулалар (болжамдар). 1 * x = x. % сәйкестік x * y = y * x. % коммутативтілігі x * (y * z) = (x * y) * z. % ассоциативтілік (x * y = x * z) -> y = z. % жою (0 рұқсат етілмейді, сондықтан x! = 0). %% Енді бөлімдерді анықтайық (х, у): х у бөледі. % Мысал: бөлгіштер (2,6) ақиқат b / c 2 * 3 = 6. % бөледі (х, у) <-> (бар z x * z = y). бөледі (2, x * x) -> бөледі (2, x). % Егер 2 х * х-ті бөлсе, х-ті бөледі. a * a = 2 * (b * b). % a / b = sqrt (2), сондықтан a ^ 2 = 2 * b ^ 2. (x! = 1) -> - (бөледі (x, a) & бөледі (x, b)). % a / b ең төменгі мәнде 2! = 1.% Түпнұсқа автор осыны ұмытып кете жаздады.

Әдебиеттер тізімі

  1. ^ а б Филлипс, Дж. Д .; Становский, Дэвид. «Цикл теориясында дәлелденетін автоматтандырылған теорема» (PDF). Чарльз университеті. Мұрағатталды (PDF) түпнұсқадан 28 наурыз 2018 ж. Алынған 15 қараша 2018.
  2. ^ Бергаммер, Рудольф; Struth, Georg (21 маусым 2010). «Автоматтандырылған бағдарламаны құру және тексеру туралы» (PDF). Болдукта, Клод; Дешарнайлар, Жюль; Ктари, Бечир (ред.) Бағдарлама құрастыру математикасы, еңбектер жинағы. 10 Халықаралық конференция, MPC 2010. Квебек қаласы. дои:10.1007/978-3-642-13321-3. ISBN  978-3-642-13320-6. Мұрағатталды (PDF) түпнұсқадан 2018 жылғы 19 қарашада. Алынған 19 қараша 2018.
  3. ^ Уилер, Дэвид А. «sqrt2.in». Дэвид А. Уилердің жеке басты беті. Алынған 14 наурыз 2016.

Сыртқы сілтемелер