Open jonsterling opened 3 years ago
Clarification question: does tp\{0=1}
contain the empty type? If so, what should be the p
in the second requirement. If not, which part of the definition of tp \ phi
rules it out? I feel I must have been confused by something.
There is a typo in the spec! The point p should be under phi.
Then the empty type is 0=1-connected: the p is the unique map from 0=1 to the empty type.
I think this is actually not too far beyond what I know how to do. Semantically
tp \ phi
is the collection of typesA
equipped with a unique elementa : {phi} A
.Implementation-wise, it is not a good idea to be able to state that
A has a unique element under phi
for a given typeA
; as an assumption this probably implies some implementation taboo, perhaps as strong as equality reflection.But it is ok to speak of the collection of types that have a unique
phi
-element, and provide syntax for projecting this element fromA : tp \ phi
, and provide syntax for constructing an element(A, a) : tp \ phi
from a typeA
and its unique phi-pointa
.Define a judgment
tp \ phi
; there is no need to restrict where this judgment can occur in thecooltt
LF presentation --- it can be assumed freely.Add a coercion
tp \ phi ---> tp
, together with a partial pointp : phi -> A
for eachA : tp \ phi
, such that under every element ofA
is equal top
underphi
.Add a weak closed modality
Cl[phi] : tp ---> tp \ phi
. This has the same introduction rules as the mathematical closed modality forphi
, but we will give a dependent induction principle without an eta law in order to facilitate implementation.