Тип имеет логарифм по основанию из точно , когда . То есть, можно рассматривать как контейнер элементов в позициях , заданных . На самом деле, это вопрос с просьбой к тому , что мощность мы должны поднять , чтобы получить .X P C ≅ P → X C X P P X CСИкспС≅п→ XСИксппИксС
Имеет смысл работать с где - функтор, всякий раз, когда существует логарифм, что означает . Обратите внимание, что если , то у нас, конечно, есть , поэтому контейнер не говорит нам ничего интересного, кроме его элементов: контейнеры с выбором форм делают не имеют логарифмов.ф л о гл о гFFFл о гИкс( FИкс)FFИкс≅л о гF→ XF1 ≅1
Знакомые законы логарифмов имеют смысл, когда вы думаете с точки зрения наборов позиций
л о г( К1 )л о гял о г( F× G )л о г( F⋅ г )знак равнознак равнознак равнознак равно01л о гF+ Л о ггл о гF× л о ггнет позиций в пустом контейнереконтейнер на одну, одну позициюпара контейнеров, выбор позицийконтейнер контейнеров, пара позиций
Мы также где под связывателем. То есть путь к каждому элементу в некоторых кодатах определяется индуктивно путем итерации логарифма. Например,Z = л о гл о гИкс( νY, T) = μ Z, л о гИксTZ= Л о гИксY
л о гSт т е т = л о гИкс( νY, Икс× Y) = μ Z, 1 + Z=Nat
Учитывая, что производная сообщает нам тип в контекстах с одним отверстием, а логарифм сообщает нам позиции, мы должны ожидать соединение, и действительно
F1 ≅1⇒л о гF≅∂F1
Там, где нет выбора формы, позиция - это то же самое, что и контекст с одним отверстием, когда элементы стираются. В более общем смысле всегда представляет выбор формы вместе с позицией элемента в этой форме.∂F1F
Я боюсь, что могу сказать меньше о корнях, но можно начать с аналогичного определения и следовать своему носу. Для более широкого использования логарифмов типов, проверьте «Памятные функции, политипически!» Ральфа Хинце. Надо бежать...