Понимание `k: Nat ** 5 * k = n` Подпись

Следующая функция компилирует:

onlyModByFive : (n : Nat) -> (k : Nat ** 5 * k = n) -> Nat
onlyModByFive n k = 100

Но что делаетk представлять с егоNat ** 5 * k = n синтаксис?

Кроме того, как я могу это назвать? Вот что я пробовал, но я не понимаю вывод.

*Test> onlyModByFive 5 5
When checking an application of function Main.onlyModByFive:
        (k : Nat ** plus k (plus k (plus k (plus k (plus k 0)))) = 5) is not a
        numeric type

источник ответа -https://groups.google.com/d/msg/idris-lang/ZPi9wCd95FY/eo3tRijGAAAJ

Ответы на вопрос(1)

Ваш ответ на вопрос