Regular type的導數是它的one-hole context [ag-93PB]

Details [local-0]

The Derivative of a Regular Type is its Type of One-Hole Contexts筆記

核心觀察:對一個regular type(多項式 functor)微分 ∂\partial 得到的型別恰好就是它的「一個洞的context」,把類型視為limit與colimit構成的多項式,求導規則跟微積分一樣。這裡只用單變數functor:唯一的變數 var 表示 x

data Poly : 𝓤₀ ̇ where
  𝟘ᵖ  : Poly
  𝟙ᵖ  : Poly
  var : Poly
  _⊕_ : Poly → Poly → Poly
  _⊗_ : Poly → Poly → Poly

infixr 40 _⊕_
infixr 50 _⊗_

Definition Poly的解釋 [local-1]

Definition 對型別微分 [local-2]

Example btree′=2×btree\text{btree}' = 2 \times \text{btree} [local-3]

我們先看案例 btree X=1+X2\text{btree}\ X = 1 + X^2

  B : Poly
  B = 𝟙ᵖ ⊕ (var ⊗ var)

  _ : ∂ B = 𝟘ᵖ ⊕ ((𝟙ᵖ ⊗ var) ⊕ (var ⊗ 𝟙ᵖ))
  _ = refl

  ∂B-≃ : {X : 𝓤₀ ̇ } → ⟦ ∂ B ⟧ X ≃ (X + X)
  ∂B-≃ = qinveq to (from , from-to , to-from)
    where
    to : {X : 𝓤₀ ̇ } → ⟦ ∂ B ⟧ X → X + X
    to (inl ())
    to (inr (inl (⋆ , x))) = inl x
    to (inr (inr (x , ⋆))) = inr x

    from : {X : 𝓤₀ ̇ } → X + X → ⟦ ∂ B ⟧ X
    from (inl x) = inr (inl (⋆ , x))
    from (inr x) = inr (inr (x , ⋆))

    from-to : {X : 𝓤₀ ̇ } → (c : ⟦ ∂ B ⟧ X) → from (to c) = c
    from-to (inl ())
    from-to (inr (inl (⋆ , x))) = refl
    from-to (inr (inr (x , ⋆))) = refl

    to-from : {X : 𝓤₀ ̇ } → (v : X + X) → to (from v) = v
    to-from (inl x) = refl
    to-from (inr x) = refl

  ∂B-= : is-univalent 𝓤₀ → (X : 𝓤₀ ̇ ) → ⟦ ∂ B ⟧ X = (X + X)
  ∂B-= ua X = eqtoid ua _ _ ∂B-≃

Definition Plugging in [local-4]