в моей программе есть предикат sorted
.
forall i,j :: 0<=i<j<a.Length ==> a[i]<a[j]
Я думаю, что просто проверка <
, а не <=
позволяет избежать дублирования в массиве, но в любом случае я хочу иметь предикат, который позволяет избежать дублирования. Я использовал отсортированный предикат, но проверял не равенство
forall i,j :: 0<=i<j<a.Length ==> a[i]!=a[j]
есть ли лучший способ сделать это с помощью других ключевых слов in
или exist
или match
, может быть, если это не устарело?