归纳类型的构造函数何时穷尽?

时间:2018-09-12 19:05:01

标签: coq

对于像自然数nat这样的简单归纳类型,很容易证明两个构造函数(零和后继)给出了所有可能的自然数,

Lemma nat_destruct (n : nat) : n = O \/ exists m : nat, n = S m.
Proof.
  destruct n. left. reflexivity. right. exists n. reflexivity.
Qed.

但是,我听说对于等式证明并不是那么简单。只有一个相等的构造函数eq_refl,但是Coq无法证明

eq_destruct : forall (A : Type) (x : A) (prEq : x = x), prEq = eq_refl

究竟是什么阻碍了这一证明?可能的第一个问题是,平等不仅是类型,而且是类型族eq : forall A : Type, A -> A -> Prop。是否有一个更简单的类型家族,其中不可能提供这样的证明?用1或2个参数而不是3个参数?

0 个答案:

没有答案