1

Here is my simple locale definition in Isabelle:

locale sig =
  fixes le:: "'a ⇒ 'a ⇒ bool" (infixl "≤" 50)
  assumes refl: "x ≤ x"

Now, I get an error message:

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

Do I have a conflict with a builtin less-or-equal operator?

How can I fix this?

Gergely
  • 6,879
  • 6
  • 25
  • 35

1 Answers1

3

The operator is defined in the ord typeclass, so you could just extend this class:

class sig = ord +
  assumes refl: "x ≤ x"

Other alternatives:

Peter Zeller
  • 2,245
  • 19
  • 23