• Aucun résultat trouvé

Cohérences fonctorialisées

2 Théorie des types pour les ω-catégories faibles

4.2 Cohérences fonctorialisées

Nous allons maintenant définir une opération de fonctorialisation pour les cohérences, qui va permettre de générer de nouvelles cohérences à partir de cohérences d’opérations déjà connues. Nous ne définissons cette transformation que pour les cohérences d’opérations, dont les ar- guments sont en dimension maximale. Nous discuterons de ces restrictions à la fin de cette section.

Termes et types fonctorialisables. Définissons la fonctorialisation des termes comme la fonction (partiellement définie) telle que

Funx(y) =



f si x = y

y sinon Funx(cohΓ,B) =cohFunx(Γ),cohΓ,B(ι)−→

BcohΓ[x0 /x],B(ι) la dernière égalité n’étant définie que dans le cas où cohΓ,B est une cohérence d’opération, et x

une variable de dimension maximale dans Γ : on dit alors que le terme est fonctorialisable par rapport à x.

Fonctorialisation des cohérences d’opérations. Supposons fixée une certaine cohérence dérivée par la règle(op), où l’on suppose tout d’abord pour simplifier que la substitution δ est

l’identité et l’on note B = t → u :

Γ`ps Γ` A ∂−(Γ)` t : A ∂+(Γ)` u : A

` cohΓ,B: B

(op)

Pour x une variable de dimension maximale de Γ, on peut alors facilement vérifier toutes les prémisses de la règle d’introduction des cohérences d’opération suivante, qui correspond à une version « fonctorialisée » de celle ci-dessus :

Funx(Γ)`ps Funx(Γ)` B Γ` cohΓ,B: B Γ[x0/x]` cohΓ[x0/x],B: B

∆` Funx(coh)Γ,B:cohΓ,B(ι)−→

B cohΓ[x0/x],B( ι )

(op)

En effet, la variable x étant de dimension maximale dans le contexte Γ, elle n’apparaît ni dans ∂−(Γ), ni dans ∂+(Γ). Comme par ailleurs les jugements ∂(Γ)` t : A et ∂+(Γ)` u : A sont

Suspension et Fonctorialité dans CaTT T. Benjamin et S. Mimram

dérivables, il en découle que ni A, ni t, ni u, ne contiennent la variable x, et donc B non plus. Ceci justifie la dérivabilité du jugement Γ[x0/x]` coh

Γ[x0/x],B: B.

Traitons maintenant le cas général de la dérivation d’une cohérence avec une substitution non triviale ∆ ` δ : Γ dans les prémisses de la règle(op). Choisissons x une variable de dimension

maximale de Γ, et notons v le terme associé à x dans σ. La substitution σ étant dérivable, le jugement ∆ ` v : C est dérivable pour un certain type C. Supposons que l’on ait également un jugement ∆ ` v0 : C ainsi qu’un terme ∆ ` w : v → v0. À partir de σ, on peut définir deux

substitutions

` σ0 : Γ[x0/x] ∆` τ : Funx(Γ)

où σ0est définie comme σ excepté qu’elle n’est pas définie sur x et associe v0à x0, et τ est définie

comme σ sur les variables de Γ, et à x0 (resp. f) associe v0 (resp. w). Avec ces constructions, on

peut alors finalement montrer que la règle(op)est compatible avec la fonctorialisation.

Théorème 6. Pour toute cohérence obtenue par la règle (op), avec les notations précédentes,

le jugement

` Funx(cohΓ,B) (τ ) :cohΓ,B(σ)−−−→

B[σ] cohΓ[x0/x],B(σ 0)

est dérivable.

Il sera utile de généraliser ce théorème, pour pouvoir l’appliquer dans tous les cas de coupure : Corollaire 7. Pour tout terme t fonctorialisable par rapport à une variable x et tout jugement Γ` t : A dérivable, il existe un type B tel que le jugement Γ ` Funx(t) : B soit dérivable

Vers une fonctorialisation générale. Dans le cas d’une cohérence obtenue avec la règle

(eq), on serait tenté de reproduire la même construction. Expliquons pourquoi on peut espérer

une telle construction mais que celle-ci sera sensiblement plus compliquée à définir que la précédente. Considérons par exemple la cohérence d’identité pour les objets, que l’on note ici id, dans le contexte Γ = (x : ?) :

coh id (x:*) : x->x

On peut alors calculer Funx(Γ) = (x : ?, x0 : ?, f : x→ x0), et la cohérence identité pour la

nouvelle variable x0et l’on cherche alors à définir un terme de type id x → id x0que l’on pourrait

représenter graphiquement par

x x

x0 x0

id x

id x0

Une telle 2-cellule ne peut bien sûr exister car nos deux 1-cellules n’ont pas même source et même but. On peut espérer résoudre ce problème en remarquant que l’on a une 1-cellule canonique entre x et x0 dans Fun

x(Γ) : la cellule f qui a été ajoutée lors de la fonctorialisation. En se

servant de cette 1-cellule, on peut compléter le diagramme ci-dessus en

x x

x0 x0 id x

f f

id x0

La description d’un tel diagramme peut se faire dans notre théorie à l’aide de la cohérence de composition, et l’on pourrait ainsi espérer automatiquement générer la cohérence

Suspension et Fonctorialité dans CaTT T. Benjamin et S. Mimram

coh id’ (x:*) (y:*) (f:x->y) : comp (id x) f -> comp f (id y)

Cependant, cela nécessite que nous utilisions la cohérence comp qui, rappelons-le, n’est pas défi- nie de façon primitive. De plus, lorsque les cohérences d’égalités sur lesquelles on travaille sont plus complexes, il n’est pas aisé de trouver les morphismes verticaux permettant de compléter le diagramme comme ci-dessus. Nous laissons la définition d’un tel algorithme pour des travaux futurs. Les calculs effectués à la main jusqu’à présent semblent suggérer qu’il serait plus naturel, pour exprimer cet algorithme, de développer une version « cubique » de la théorie des types, c’est-à-dire fondée sur la notion de cube au lieu de celle de globe. La situation est similaire pour la fonctorialisation par rapport à une variable qui n’est pas de dimension maximale.

4.3 Application

Implémentation. On formalise l’utilisation de la transformation de fonctorialisation par une nouvelle modification de la règle(cut):

Γ` t : A` σ : Funx(Γ)

` Funx(t) [σ] : B

(cutx)

Il sera utile de remarquer que cette règle n’a de sens que lorsque le terme t est fonctorialisable par rapport à x. Lors de l’application de cette règle, l’utilisateur doit spécifier la variable x à l’aide du positionnement des crochets. Par exemple, en définissant

coh comp (x:*) (y:*) (f:x->y) (z:*) (g:y->z) : x->z

et en écrivant ensuite comp [a] h, le système va automatiquement interpréter qu’il devra fonc- torialiser par rapport au premier argument, ici f. Par ailleurs, notre système permettant de faire non-seulement de la vérification de typage, mais aussi de l’inférence de types, le Théorème 7 suffit à vérifier la validité de cette construction.

En pratique, l’implémentation permet de fonctorialiser par rapport à plusieurs variables simultanément (les définitions suivent exactement le même principe que pour un seul argument), et de combiner dans une même étape les coupures avec fonctorialisation et suspension.

Utilisation. Reprenons quelques exemples de Section 2.4, en utilisant la transformation de fonctorialisation. On peut ainsi redéfinir la composition horizontale des 2-cellules, ainsi que le moustachement à droite à partir de la composition de 1-cellules par

coh comp (x:*) (y:*) (f:x->y) (z:*) (g:y->z) : x -> z let hcomp (x:*) (y:*) (f:x->y) (f’:x->y) (a:f->f’)

(z:*) (g:y->z) (g’:y->z) (b:g->g’) = comp [a] [b]

let rwhisk (x:*) (y:*) (f:x->y) (f’:x->y) (a:f->f’) (z:*) (g:y->z) = comp [a] g

En pratique, on ne définira pas hcomp et rwhisk, mais on utilisera plutôt directement comp avec des arguments entre crochets aux endroits qui le nécessitent. Ceci permet de diminuer substantiellement la taille du fichier de preuve et d’en améliorer la lisibilité.

Suspension et Fonctorialité dans CaTT T. Benjamin et S. Mimram

5 Conclusion

Efficacité en pratique. Pour quantifier l’utilité de nos transformations, nous avons déve- loppé en exemple une définition minimale du tressage et de son inverse dans les catégories doublement monoïdales, avec et sans utiliser ces transformations1. Sans transformation, le fi-

chier total consiste en 531 lignes de code, pour 93 définitions. Avec la suspension, il se ramène à 476 lignes, (gain de 10%), et 85 définitions. Par ailleurs 58 des précédentes définitions (62%) ont pu être simplifiées. Avec en plus la fonctorialisation, la longueur du fichier est réduite à 422 lignes (gain de 11%), et le nombre de définitions à 76. Notons de plus que l’ajout de ces trans- formations permet de généraliser beaucoup de définitions ad-hoc, c’est pourquoi on s’attend à un gain relatif bien plus importants lors de la formalisation d’exemples en dimensions variées. Vers d’autres transformations. Après avoir défini deux transformations qui se sont avérées utiles, il est naturel de se demander s’il y en aurait d’autres. Une bonne approche cette question est de comprendre finement la structure des contextes de compositions. En particuliers, ceux-ci sont semblables aux mots de Dyck, et la suspension et la fonctorialité s’interprètent dans cette structure. Adopter directement ce point de vue peut guider la recherche.

Syllepses. Les développements présentés ici ont été menés en parallèle d’une utilisation de CaTT dans le but de montrer l’existence d’une syllepse pour les ω-catégories triplement mo- noïdales [1], qui est l’un des problème ouverts sur lesquels l’apport de cet outil est attendu. Cela a permis par la pratique de mieux comprendre quelles transformations de la théorie au- raient un impact important sur l’utilisation. Réciproquement, l’implémentation de ces nouvelles transformations a permis de simplifier et de prolonger le développement de cette démonstration.

Références

[1] Thibaut Benjamin. Towards a fully formalized definition of syllepsis in weak higher categories. In Proceedings of HDRA workshop, 2018.

[2] Thibaut Benjamin, Eric Finster, and Samuel Mimram. The CaTT proof assistant, 2018. https: //github.com/ThiBen/catt.

[3] Eric Finster and Samuel Mimram. A Type-Theoretical Definition of Weak ω-Categories. In 2017 32nd Annual ACM/IEEE Symposium on Logic in Computer Science (LICS), pages 1–12, 2017. [4] Alexander Grothendieck. Pursuing stacks. Unpublished manuscript, 1983.

[5] Georges Maltsiniotis. Grothendieck ∞-groupoids, and still another definition of ∞-categories. Pre- print arXiv:1009.2331, 2010.

1. https://github.com/ThiBen/catt/tree/master/examples/eckmann-hilton-versions 60