Skip to content

What is the relationship between extension types, cubical subtypes, and cofibration splits in cooltt? #333

Answered by cangiuli
mmcqd asked this question in Q&A
Discussion options

You must be logged in to vote

Great question, and I don't think the answer is written down anywhere...

As you noticed, terms of extension type are defined to be functions out of (n copies of) the interval into a cubical subtype. However, cubical subtypes are generally not Kan (in particular, do not in general support coercion), whereas our formation rule for extension types picks out the ones that are Kan. In cooltt, types are not assumed to be Kan in general; only types with codes in the Kan universe are Kan.

Here's my go-to example of why cubical subtypes can't always be Kan:

i => {coe {j => sub bool {j=0 \/ j=1} [j=0 => true | j=1 => false]} 0 i true}

The above (illegal) coercion produces a path from true to false.…

Replies: 1 comment 3 replies

Comment options

You must be logged in to vote
3 replies
@mmcqd
Comment options

mmcqd Mar 22, 2022
Collaborator Author

@cangiuli
Comment options

@mmcqd
Comment options

mmcqd Mar 22, 2022
Collaborator Author

Answer selected by mmcqd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants