如何证明coq中两个相同归纳式的不同构造器产生的项的不相等性?

如何证明coq中两个相同归纳式的不同构造器产生的项的不相等性?,coq,Coq,假设我有一个归纳法: Inductive DirectSum{L R: Type}: Type := | Left: L -> DirectSum L R | Right: R -> DirectSum L R . 我如何证明这一点 forall L R: Type, forall l: L, forall r: R, Left L <> Right R. forall L R:Type、forall L:L、forall R:R、Left L Right R。

假设我有一个归纳法:

Inductive DirectSum{L R: Type}: Type := 
| Left: L -> DirectSum L R
| Right: R -> DirectSum L R
.
我如何证明这一点

forall L R: Type, forall l: L, forall r: R, Left L <> Right R. 
forall L R:Type、forall L:L、forall R:R、Left L Right R。

?

简易策略足以解决这一问题:

Inductive DirectSum (L R: Type): Type :=
| Left: L -> DirectSum L R
| Right: R -> DirectSum L R
.
Arguments Left {_ _}.
Arguments Right {_ _}.

Goal forall L R: Type, forall l: L, forall r: R, Left l <> Right r.
easy.
Qed.
inclusive DirectSum(L-R:Type):类型:=
|左:L->DirectSum L R
|右:R->DirectSum L R
.
参数左{{{}。
参数右{{{}。
所有左后:类型、所有左后:L、所有右后:R、左后右的目标。
容易的
Qed。
从内部来看,这是因为模式匹配。我们可以编写一个函数,在
Left
上返回
True
,在
Right
上返回
False
。如果条件相等,我们将得到
True=False
,这就产生了矛盾