Тип має логарифм за основою з точно , коли . Тобто, можна розглядати як контейнер елементів в позиціях , заданих . На насправді, це питання з проханням до того , що потужність ми повинні підняти , щоб отримати .X P C ≅ P → X C X P P X CCXPC≅P→XCXPPXC
Є сенс працювати з де - функтор, щоразу, коли існує логарифм, тобто . Зауважте, що якщо , ми, звичайно, маємо F \: 1 \ cong 1 , тому контейнер не повідомляє нам нічого цікавого, крім його елементів: контейнери з вибором фігур роблять не мають логарифмів.F l o glogFFFlogX(FX)FFX≅logF→XF1≅1
Знайомі закони логарифмів мають сенс, коли ви думаєте з точки зору наборів позицій
log(K1)logIlog(F×G)log(F⋅G)====01logF+logGlogF×logGno positions in empty containercontainer for one, one positionpair of containers, choice of positionscontainer of containers, pair of positions
Ми також отримуємо де під палітуркою. Тобто шлях до кожного елемента в деяких кодатах визначається індуктивно, повторюючи логарифм. Наприклад,Z = l o glogX(νY.T)=μZ.logXTZ=logXY
logStream=logX(νY.X×Y)=μZ.1+Z=Nat
Враховуючи, що похідна вказує нам тип у контекстах з одним отвором, а логарифм повідомляє нам позиції, ми повинні очікувати зв'язку, і справді
F1≅1⇒logF≅∂F1
Там, де немає вибору форми, положення є таким самим, як контекст з одним отвором з стираними елементами. Більш загально, завжди представляє вибір форми разом з положенням елемента в межах цієї форми.F∂F1F
Боюся, що про коріння я маю менше сказати, але можна почати з подібного визначення і слідувати за носом. Щоб дізнатися більше про використання логарифмів типів, перегляньте "Пам'ять функції політипічно!" Ральфа Гінзе. Маю бігти...