Похоже, что вы получили код из Руководства QuickChick от Foundation Software . Многие (если не все) нотации, используемые в этом руководстве, можно найти в Справочном руководстве QuickChick . Там мы обнаруживаем, что "==>"
определяется как нотация.
Module QcNotation.
Export QcDefaultNotation.
Notation "x ==> y" :=
(implication x y) (at level 55, right associativity)
: Checker_scope.
End QcNotation.
implication
- это универсальный параметр "true is implication", используемый QuickChick.
Parameter implication :
∀ {prop : Type} `{Checkable prop} (b : bool) (p : prop), Checker.
Всякий раз, когдапервый аргумент верен, QuickChick проверяет, что второй аргумент оценивает (в любом контексте, в котором вы используете QuickChick) как истинный.
Так что для вашего конкретного фрагмента кода, "==>"
используется, чтобы сказать, чтомы хотим проверить, что всякий раз, когда сортируется l
, сортируется insert x l
.