Path Isomorphism

Comparing two Zeros

Article

Maxim SokhatskyDATE: 10 OCT 2017

Background

I've just got a cubicaltype
checker from Mortberg et all,
and the first thing I wanted to try was to connect
two different values of two different types. As you may know,
the core thing of Type Theory is equality or isomorphism
or equivalence (which is the same thing but in different
universes: 0, 1, 2, ...). Although cubical is U : U,
this task is possible here.

In MLTT, propositional equality reflects in some sense
definitional which is usually built into typechecker.
Everything that involves comparing of normalized terms
stems from definitional equality.

The groupoid model gives us ∞-dimentional equality and also
denies the uniqueness of identity proofs. That means we can build
paths between objects in many distinguishable ways and the space of
terms is ∞-groupoid:

∞-Groupoid

To model other types of equalities, we need to design
their properties. The desired property, in general,
is to compare incomparable things (heterogenous equality):
namely two different points of two different types.
The cubical built-in PathP type is exactly such equality.
It connects different points of space with the function defined
on interval $I=[0,1]$ that is smooth between values at interval edges.

Path between Elements

So let us be clear, we want to compare two points of A and B
types which both live on U. On the high level, we will use
Path U A B. which is homogenous on U. At the low level we
will use heterogenous PathP (Path U A B) a b: