Parsing 区域设置定义生成两个解析树

Parsing 区域设置定义生成两个解析树,parsing,isabelle,Parsing,Isabelle,以下是我在Isabelle中的简单语言环境定义: locale sig = fixes le:: "'a ⇒ 'a ⇒ bool" (infixl "≤" 50) assumes refl: "x ≤ x" 现在,我收到一条错误消息: Ambiguous input⌂ produces 2 parse trees: ("\<^const>HOL.Trueprop" ("\&

以下是我在Isabelle中的简单语言环境定义:

locale sig =
  fixes le:: "'a ⇒ 'a ⇒ bool" (infixl "≤" 50)
  assumes refl: "x ≤ x"
现在,我收到一条错误消息:

Ambiguous input⌂ produces 2 parse trees:
  ("\<^const>HOL.Trueprop"
    ("\<^const>Orderings.ord_class.less_eq" ("_position" x) ("_position" x)))
  ("\<^const>HOL.Trueprop" ("\<^fixed>le" ("_position" x) ("_position" x)))
Ambiguous input
2 terms are type correct:
  (x ≤ x)
  (x ≤ x)
Failed to parse prop
我是否与内置的less或equal运算符存在冲突

如何解决此问题?

≤ 运算符是在ord typeclass中定义的,因此您可以扩展该类:

class sig = ord +
  assumes refl: "x ≤ x"
其他备选方案:

不要导入ord的定义 隐藏没有符号顺序的现有符号。ord\u class.less\u eq\u0/≤ _ [51,51]50见 使用不同的名称或符号 ≤ 运算符是在ord typeclass中定义的,因此您可以扩展该类:

class sig = ord +
  assumes refl: "x ≤ x"
其他备选方案:

不要导入ord的定义 隐藏没有符号顺序的现有符号。ord\u class.less\u eq\u0/≤ _ [51,51]50见 使用不同的名称或符号