Я хотел бы иметь стандартную запись, такую как «x ∈ {x}» в Coq.
Но есть проблемы:
1) Фигурные скобки имеют особое значение в Coq, поэтому происходит следующее:
Notation " x ∈ y " :=(tin x y) (at level 50).
Notation " { x } ":=(Sing x).
Check fun x => (x ∈ { x }).
(*error: Unknown interpretation for notation "_ ∈ { _ }". *)
Как правильно определить это обозначение?
2) Если первая проблема не может быть решена, есть другая. (Здесь я решил использовать дополнительный символ «` »в обозначениях.)
Notation " { x }` ":=(Sing x).
Check fun x => (x ∈ { x }`).
(* fun x : Ens => x ∈ {x }` *)
Теперь я должен
a) либо добавьте пробел после первой фигурной скобки, либо
b) удалить непреднамеренный пробел после последней буквы x.
Как я могу сделать эти действия?