Un type a un logarithme pour baser de exactement quandX P C ≅ P → XCXPC≅P→ X . Autrement dit, peut être considérée comme un conteneur de X éléments dans des positions données par P . En effet, il est une question de demander à ce que la puissance P , nous devons élever X pour obtenir C .CXPPXC
Il est logique de travailler avec où F est un foncteur, chaque fois que le logarithme existe, ce qui signifie l o glogFF . Notez que si FlogX(FX) , alors nous avons certainement FFX≅logF→X , donc le conteneur ne nous dit rien d'autre d'intéressant que ses éléments: les conteneurs avec un choix de formes n'ont pas de logarithmes.F1≅1
Les lois familières des logarithmes ont un sens lorsque vous pensez en termes d'ensembles de positions
l o g( K1 )l o gjel o g( F× G )l o g( F⋅ G )====01l o gF+ l o ggl o gF× l o ggaucune position dans un conteneur videconteneur pour une, une positionpaire de conteneurs, choix de positionsconteneur de conteneurs, paire de positions
On gagne aussi du où Z = l o gl o gX( νOui. T) = μ Z. l o gXT sous le classeur. C'est-à-dire que lecheminvers chaque élément dans certaines codées est défini de manière inductive en itérant le logarithme. Par exemple,Z= l o gXOui
l o gSt r e a m = l o gX( νOui. X× Y) = μ Z. 1 + Z= Nun t
Étant donné que la dérivée nous indique le type dans des contextes à un trou et que le logarithme nous indique les positions, nous devrions nous attendre à une connexion, et en effet
F1 ≅1⇒l o gF≅∂F1
Lorsqu'il n'y a pas de choix de forme, une position est identique à un contexte à un trou avec les éléments effacés. Plus généralement, représente toujours le choix d'uneforme F avec la position d'un élément dans cette forme.∂F1F
J'ai peur d'avoir moins à dire sur les racines, mais on pourrait partir d'une définition similaire et suivre son nez. Pour plus d'utilisations des logarithmes de types, consultez "Fonctions mémo, polytypiquement!" De Ralf Hinze. Je dois y aller...