1
HOLCF의 Porder.thy에서 poset의 인스턴스를 list 데이터 유형으로 만들고 싶습니다. 다음과 같이 나의 시도는 다음과 같습니다Isabelle/HOLCF에서 부분 순서를 부여
theory Scratch
imports Porder Representable
begin
datatype 'a myList =
Nil |
Cons 'a "'a myList"
instantiation myList :: (below) below
begin
definition below_list_def:
"(x ⊑ y) = (case x of Nil ⇒ True |
Cons a xs ⇒ (case y of Nil ⇒ False |
Cons b ys ⇒ a ⊑ b ∧ xs ⊑ ys))"
instance ..
end
나는 "정의는"내가 사용하고있는 재귀 적 정의를 지원하지 않습니다 실현, 나는 "재미"또는 "fixrec"같은 것을 사용한다. 그러나이 컨텍스트에서 이러한 명령을 사용하는 방법을 모르겠습니다. po의 인스턴스를 만들기 위해 온라인에서 찾은 모든 예는 비 재귀 적 데이터 유형을 사용합니다. 재귀 적 데이터 유형을 아래와 po의 인스턴스로 만드는 가장 좋은 방법은 무엇입니까?