如何在Isabelle/HOL中定义语法注释
我试图定义有效的四倍⊨ {P} Isabelle/HOL中霍尔逻辑的c×c'{Q},其中c和c'是命令,P和Q是断言。断言定义为:如何在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
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)集请编辑您的问题以包含该信息:)完成,我添加了错误消息;)这也已发布到邮件列表中: