deniok: (Default)
2013-01-04 12:11 am
deniok: (lambda cube)
2011-07-01 12:40 am

Logical Verification

Очень хорошие лекционные заметки Femke van Raamsdonk'а из Vrije Universiteit Amsterdam. Курс похож на тот, что я читал в CS Club'е при ПОМИ, но с несколько большим уклоном в логику и примерами с использованием Coq.
Рекомендую своим студентам как полезное дополнительное чтение и удобное введение в Coq.
deniok: (lambda cube)
2010-01-09 10:11 pm
Entry tags:

Книжка про COQ

Сегодняшние вести с LtU: Certified Programming With Dependent Types
Книжка про COQ, судя по оглавлению весьма полезная. Не пропустите, кто интересуется заявленными темами.
deniok: (lambda cube)
2009-06-19 09:00 pm
Entry tags:

По направлению к COQ'у

Simon Peyton Jones, Chung-Chieh Shan и Oleg Kiselyov обещают статью "Fun with type functions", а пока выложили слайды. После впечатляющих примеров на Хаскелле с использованием индексированных семейств типов и функций над типами, радует замечание на последнем слайде:
At some point it may be best to say “enough fooling around: just use Coq”. But we aren’t there yet.
Хорошее, годное замечание.
deniok: (typed lambda)
2008-09-30 10:50 pm

Мучаю коковские тактики

У него там неонка дджин внутри. Тактика tauto доказывает пропозициональные тавтологии, монтируя лямбда-терм подходящего типа

Coq < Variables A B C : Prop.
A is assumed
B is assumed
C is assumed

Coq < Lemma he_he : (B -> C) -> (A -> B) -> A -> C.
1 subgoal

  A : Prop
  B : Prop
  C : Prop
  ============================
   (B -> C) -> (A -> B) -> A -> C

he_he < tauto.
Proof completed.

he_he < Qed.
 tauto.
he_he is defined

Coq < Print he_he.
he_he =
fun (H : B -> C) (H0 : A -> B) (H1 : A) =>
let H2 := H0 H1 in let H3 := H H2 in H3
     : (B -> C) -> (A -> B) -> A -> C
Здесь fun вместо лямбды и типизация связанных в лямбда-терме переменных явная, чёрчевская.

Но можно и примитивными тактиками intros; apply H; apply H0; assumption:Read more... )Всякому видно, что при ручной работе и терм-композитор выходит кратким и выразительным, не то что эти вложенные let'ы ;-)
deniok: (Default)
2008-05-14 04:19 pm
Entry tags:

Знакомство с Coq

Скачал и поставил COQ. Это, если кто не знает, СУФД - система управления формальными доказательствами :-) Так у них на сайте написано
Coq is a formal proof management system: a proof done with Coq is mechanically checked by the machine.




Читаю крэш-курс Coq in a Hurry.