2013-03-26 4 views
1

Эта проблема прослушивает меня слишком много раз. Есть ли способ распечатать подпись каждого элемента типа модуля в Coq.Поиск типов сигнатур типа модуля/модуля, на месте

Например:

Print Orders.OrderedType. 

Module Type Orders.OrderedType = Sig 
           Parameter t 
           Parameter eq 
           Parameter eq_equiv 
           Parameter lt 
           Parameter lt_strorder 
           Parameter lt_compat 
           Parameter compare 
           Parameter compare_spec 
           Parameter eq_dec 
          End 

Print Module Type Orders.OrderedType. 

Module Type Orders.OrderedType = Sig 
           Parameter t 
           Parameter eq 
           Parameter eq_equiv 
           Parameter lt 
           Parameter lt_strorder 
           Parameter lt_compat 
           Parameter compare 
           Parameter compare_spec 
           Parameter eq_dec 
          End 

About Orders.OrderedType. 

Module Type Coq.Structures.Orders.OrderedType 

Все они бесполезны, потому что они не напоминают мне о типе каждого элемента ...

И я не могу даже использовать сообщения об ошибках, чтобы напомнить мне, так как они так глупы, как:

Error: Signature components for label eq do not match. 

Sure сообщение об ошибке, не говори мне ожидаемый тип ...

Я не» t знать, было ли это исправлено в 8.4, но мне действительно хотелось бы не искать, где это было определено, чтобы напомнить, как оно было определено. Что-то подобное существует? :(


Особенно, выяснив определения просто чеканка вдоль смехотворно длинной цепи комбинаций модулей ... Серьезно:

Module Type OrderedType <: DecidableType := DecStrOrder <+ HasEqDec. 

Да спасибо ...

Module Type DecStrOrder := StrOrder <+ HasCompare. 

Продолжайте ...

Module Type StrOrder := EqualityType <+ HasLt <+ IsStrOrder. 

...

Module Type EqualityType := Eq <+ IsEq. 

Конечно ...

Module Type Eq := Typ <+ HasEq. 

Ok ...

Module Type Typ. 
    Parameter Inline(10) t : Type. 
End Typ. 

Наконец, я знаю тип t! \ o/

ответ

0

В качестве частичного ответа это, похоже, было исправлено в багажнике в течение последнего месяца. Ср

http://www.lix.polytechnique.fr/coq/bugs/show_bug.cgi?id=1572

и

http://www.lix.polytechnique.fr/coq/bugs/show_bug.cgi?id=2466

+0

Я следую за второе звено вашего ответа и тест с кодом имеет ошибку. Они сказали, что код зафиксирован в багажнике. Но я не знаю, где это точно? и каков правильный код для этого кода? У меня такая же проблема с моим кодом, поэтому я хотел бы узнать больше. Спасибо. – Quyen

+0

Это конкретная фиксация исправления: https://gforge.inria.fr/scm/viewvc.php?view = rev & root = coq & revision = 13626 (довольно неприятно, что они тоже не упоминают об этом в bugtracker ...) – Ptival

Смежные вопросы