1
이자벨의 목록 이론 filter
에 대한 구문 번역을 설정 한 :이사벨 구문 번역 : Force eta-expansion?
syntax
-- {* Special syntax for filter *}
"_filter" :: "[pttrn, 'a list, bool] => 'a list" ("(1[_<-_./ _])")
translations
"[x<-xs . P]"== "CONST filter (%x. P) xs"
을 실제로 term "filter (λ x. ¬(P x)) l"
멋지게
"[x←l . ¬ P x]" :: "int list"
를 인쇄하지만 표현은 간단 경우, 예를 들어, ilter (λ x. P x) l
, ETA 수축이 일어날 것으로 보인다 나는
"filter P l" :: "int list"
내가 어떻게 든 여기뿐만 아니라 좋은 구문 (즉 [x←l . P x]
)를 강제 할 수 표시 얻을?
예를 들어, 에 적응하기 쉽습니다. 이제는 그것을 이해하고 내가 만드는 구문에 적용해야합니다 :-). 이것이 HOL/List.thy라고 입력하는 것이 가치 있다고 생각하십니까? 출력이보다 일관되고 예측 가능해질 것으로 보인다. –
이것을'HOL'에 넣을 지,'~~/src/HOL/Library/OptionalSugar'에 넣어야할지 모르겠습니다. 필자는 개인적으로'[x ← l] 대신'filter P xs'를 읽는 것을 선호합니다. P x]'. 안타깝게도 여러 Isabelle 도구는 이러한 기능을 확장합니다 (예 :'유도 '및'simp'에'filter'에 대한 합동 규칙 사용). 그러므로 '목록'이론에 그것을 추가하는 것은 공개적으로 논의되어야한다. –