Estoy leyendo el libro de HoTT y tengo una pregunta (probablemente muy ingenua) sobre las cosas en el capítulo uno.
El capítulo presenta el tipo de función y luego lo generaliza haciendo que dependa de y eso se llama el tipo de función dependiente .
Continuando, el capítulo presenta el tipo de producto y luego lo generaliza haciendo que dependa de B: A \ to \ mathcal {U}, \ qquad g: \ sum_ {x: A} B (x) y eso se llama el tipo de par dependiente .
Definitivamente puedo ver un patrón aquí.
Continuando, el capítulo luego presenta el coproducto tipo
¿Hay alguna restricción fundamental sobre eso o simplemente es irrelevante para el tema del libro? En cualquier caso, ¿alguien puede ayudarme con la intuición de por qué funcionan y los tipos de productos? ¿Qué hace que esos dos sean tan especiales que se generalicen a tipos dependientes y luego se usen para construir todo lo demás?
Hablaré sobre esto más ingeniería de software.
¿Estás hablando de un tipo de coproducto cuyos últimos constructores pueden referirse a los anteriores (que se parece bastante a un producto cuyos últimos campos pueden referirse a los anteriores)? Esto es posible en Agda después de la introducción de HIT (en la versión 2.6.0):
Siguiendo este documento , si su verificador de tipo verifica las definiciones definidas usando la sintaxis presentada en la figura "(26)", creo que es bastante simple admitir "coproductos dependientes".
fuente