Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coq 使用等式的路径诱导_Coq_Homotopy Type Theory - Fatal编程技术网

Coq 使用等式的路径诱导

Coq 使用等式的路径诱导,coq,homotopy-type-theory,Coq,Homotopy Type Theory,根据(第49页),这是平等的完全归纳原则: Definition path_induction (A : Type) (C : forall x y : A, (x = y) -> Type) (c : forall x : A, C x x eq_refl) (x y : A) (prEq : x = y) : C x y prEq := match prEq with | eq_refl => c x end. 我对HoTT了解不多,但我确

根据(第49页),这是平等的完全归纳原则:

Definition path_induction (A : Type) (C : forall x y : A, (x = y) -> Type)
           (c : forall x : A, C x x eq_refl) (x y : A) (prEq : x = y)
  : C x y prEq :=
  match prEq with
  | eq_refl => c x
  end.
我对HoTT了解不多,但我确实看到路径归纳比等式更强:

Lemma path_ind_stronger : forall (A : Type) (x y : A) (P : A -> Type)
                            (prX : P x) (prEq : x = y),
    eq_rect x P prX y prEq =
    path_induction A (fun x y pr => P x -> P y) (fun x pr => pr) x y prEq prX.
Proof.
  intros. destruct prEq. reflexivity.
Qed.
相反,我未能从
eq\u rect
构建
path\u归纳
。可能吗?如果不是,那么什么是平等的正确归纳原则?我认为这些原则是机械地从
归纳的
类型定义中派生出来的

编辑

由于下面的答案,关于平等的完全归纳原则可以由

Scheme eq_rect_full := Induction for eq Sort Prop.
然后我们得到相反的结果

Lemma eq_rect_full_works : forall (A : Type) (C : forall x y : A, (x = y) -> Prop)
                             (c : forall x : A, C x x eq_refl) (x y : A)
                             (prEq : x = y),
    path_induction A C c x y prEq
    = eq_rect_full A x (fun y => C x y) (c x) y prEq.
Proof.
  intros. destruct prEq. reflexivity.
Qed.

我想你指的是这样一个事实,
path\u inclution
的结果类型提到了正在被破坏的路径,而
eq\u rect
的结果类型没有提到。这种省略是归纳命题的默认情况(与
类型
相反),因为额外的参数通常不用于与证明无关的开发。然而,您可以指示Coq使用
Scheme
命令生成更完整的归纳原则:。(默认情况下,
最小值
变量用于命题。)