agdacubical-type-theory

Pushing a path along a pair of paths originating from its endpoints


Suppose I have, using the cubical-demo library, the following things in scope:

i : I

p0 : x ≡ y
p1 : x' ≡ y' 

q0 : x ≡ x'    
q1 : y ≡ y'

How do I then construct

q' : p0 i ≡ p1 i

?


Solution

  • Another one I've come up with is I think closer to the spirit of the original problem instead of going around:

    slidingLid : ∀ (p₀ : a ≡ b) (p₁ : c ≡ d) (q : a ≡ c) → ∀ i → p₀ i ≡ p₁ i
    slidingLid p₀ p₁ q i j = comp (λ _ → A)
      (λ{ k (i = i0) → q j
        ; k (j = i0) → p₀ (i ∧ k)
        ; k (j = i1) → p₁ (i ∧ k)
        })
      (inc (q j))
    

    This one has the very nice property that it degenerates to q at i = i0 definitionally:

    slidingLid₀ : ∀ p₀ p₁ q → slidingLid p₀ p₁ q i0 ≡ q
    slidingLid₀ p₀ p₁ q = refl