代码之家  ›  专栏  ›  技术社区  ›  Cactus

区间可拓性?

  •  3
  • Cactus  · 技术社区  · 6 年前

    I asked the following question on the CS SE

    例如,在霍特书中引理6.4.1的证明中,一个函数 函数上的归纳定义仅适用于路径 loop refl ,然后是 回流 f f loop f refl :

    loop = refl base . [...] 具有 x : A p : x = x ,有一个函数 f : S1 → A 定义为 f(base) :≡ x f(loop) := p ,我们有

    p = f(loop) = f(refl base) = refl x.
    

    但在立体环境中,事情并不是那么明确。 f(loop) 是 只是打字不好 f(loop i) i : I . 但是 以上证明成为事实

    p = <i> f (loop i) = <i> f (refl base i) = refl x
    

    但这难道不需要某种形式的“间隔扩展性”吗 中间步骤?中间步骤的正当性到底是什么 ∀ i → f (loop i) = f (refl base i) <i> f (loop i) = <i> f (refl base i) ?

    p 的定义 F 这很简单:

      hyp : loop ≡ refl {x = base}
    
      p : x ≡ x
    
      f : S¹ → A
      f base = x
      f (loop i) = p i
    

    我们可以证明 那个 f (loop i) ≡ f (refl i)

      proofAt_ : ∀ i → f (loop i) ≡ f base
      proofAt i = cong (λ p → f (p i)) hyp
    

    (要了解原因,请参阅以下更详细的内容:

      proofAt_ : ∀ i → f (loop i) ≡ f base
      proofAt i = begin
        f (loop i)             ≡⟨ cong (λ p → f (p i)) hyp ⟩
        f (refl {x = base} i)  ≡⟨⟩
        f base                 ∎
    

    )

      proof : p ≡ refl
      proof = begin
        (λ i → p i)             ≡⟨⟩
        (λ i → f (loop i))      ≡⟨ (λ i → proofAt i) ⟩
        (λ i → f base)          ≡⟨⟩
        (λ i → refl {x = x} i)  ∎
    

    _342 解决 f (loop i) ≡ f base 因为它包含变量 i 元变量或在元变量中不相关但在

    当检查表达式 proofAt i 有类型 _A_342

    试图将其转换为 proofAt_ 也会失败,但原因不同(我认为,一般来说,路径没有eta转换):

      proof : p ≡ refl
      proof = begin
        (λ i → p i) ≡⟨⟩
        (λ i → f (loop i)) ≡⟨ proofAt_ ⟩
        (λ i → f base) ≡⟨⟩
        (λ i → refl {x = x} i) ∎
    

    ((i : I) → f (loop i) ≡ f base) !=&书信电报; _344 ≡ _y_345 ;Agda.Primitive.Setω

    那么,上述HoTT证明的正确CTT音译是什么?

    2 回复  |  直到 6 年前
        1
  •  3
  •   Cactus    6 年前

    路径确实有eta规则

    https://github.com/Saizan/cubical-demo/blob/master/examples/Cubical/Examples/AIM_Demo/DemoPath.agda#L59

    但是,类型路径与间隔“I”中的函数类型不同,因此有时需要lambda抽象来在这两种类型之间进行转换(Lambda和application在这两种类型之间是临时重载的)。

    f loop ap f loop 哪里 ap = cong 从立体图书馆。

    proofAt_ 正确的答案是: i 尺寸 proof cong f loop refl {x = f base} 作为 证明_

    proof : p ≡ refl
    proof = begin
      (λ i → p i)             ≡⟨⟩
      (λ i → f (loop i))      ≡⟨ (λ i j → proofAt j i) ⟩
      (λ i → f base)          ≡⟨⟩
      (λ i → refl {x = x} i)  ∎
    
        2
  •  3
  •   András Kovács    6 年前

    proof : p ≡ refl
    proof i j = f (hyp i j)
    

    proof = cong (cong f) hyp hyp 是二维的,并且 f 作用于0维元素,所以