如何在Isabelle/HOL中定义语法注释

如何在Isabelle/HOL中定义语法注释,isabelle,Isabelle,我试图定义有效的四倍⊨ {P} Isabelle/HOL中霍尔逻辑的c×c'{Q},其中c和c'是命令,P和Q是断言。断言定义为: type_synonym assn = "state × state ⇒ bool" 我已将有效的四倍定义如下: definition rel_hoare_valid :: "assn ⇒ com × com ⇒ assn ⇒ bool" ("⊨ {(1_)}/ (_)/ {(1_)}" 50) where "⊨ {P}c×c'{Q} = ..." Type

我试图定义有效的四倍⊨ {P} Isabelle/HOL中霍尔逻辑的c×c'{Q},其中c和c'是命令,P和Q是断言。断言定义为:

type_synonym assn = "state × state ⇒ bool"
我已将有效的四倍定义如下:

definition 
rel_hoare_valid :: "assn ⇒ com × com ⇒ assn ⇒ bool" ("⊨ {(1_)}/ (_)/ {(1_)}" 50) 
where "⊨ {P}c×c'{Q} = ..."
Type unification failed: Clash of types "_ set" and "_ × _"

Type error in application: incompatible operand type

Operator:  rel_hoare_valid P :: com × com ⇒ ((char list ⇒ int) × (char 
list ⇒ int) ⇒ bool) ⇒ bool
Operand:   c × c' :: (??'a × ??'b) set
。。。包含与此无关的其余代码

我知道语法注释部分

("⊨ {(1_)}/ (_)/ {(1_)}" 50) 
是不对的,但我不知道如何修复它

错误消息如下所示:

definition 
rel_hoare_valid :: "assn ⇒ com × com ⇒ assn ⇒ bool" ("⊨ {(1_)}/ (_)/ {(1_)}" 50) 
where "⊨ {P}c×c'{Q} = ..."
Type unification failed: Clash of types "_ set" and "_ × _"

Type error in application: incompatible operand type

Operator:  rel_hoare_valid P :: com × com ⇒ ((char list ⇒ int) × (char 
list ⇒ int) ⇒ bool) ⇒ bool
Operand:   c × c' :: (??'a × ??'b) set

您收到的错误是什么使您说它不正确?类型统一失败:应用程序中的类型“\uSet”和“\u×”冲突类型错误:不兼容的操作数类型运算符:rel\u hoare\u valid P::com×com⇒ ((字符列表)⇒ int)×(字符列表⇒ int)⇒ (布尔)⇒ bool操作数:c×c':(?'a×?'b)集请编辑您的问题以包含该信息:)完成,我添加了错误消息;)这也已发布到邮件列表中: