Coq 所有同态都是正确的吗?

Coq 所有同态都是正确的吗?,coq,Coq,两个群之间的同态是正确的吗?下面是我对群和同态的定义: Definition associative {ty : Type} (f : ty -> ty -> ty) (eq : ty -> ty -> Prop) := forall a b c, eq (f (f a b) c) (f a (f b c)). Definition identity {ty : Type} (f : ty -> ty -> ty) (eq : ty -> ty

两个群之间的同态是正确的吗?下面是我对群和同态的定义:

Definition associative {ty : Type} (f : ty -> ty -> ty) (eq : ty -> ty -> Prop) := 
  forall a b c, eq (f (f a b) c) (f a (f b c)).

Definition identity {ty : Type} (f : ty -> ty -> ty) (eq : ty -> ty -> Prop) (e : ty) :=
  forall a, eq (f a e) a /\ eq (f e a) a.

Definition op_inverse {ty : Type} (f : ty -> ty -> ty) (eq : ty -> ty -> Prop) (e a a' : ty) :=
  eq (f a a') e /\ eq (f a' a) e.

Definition op_invertible {ty : Type} (f : ty -> ty -> ty) (eq : ty -> ty -> Prop) (e : ty) :=
  forall a, exists a', op_inverse f eq e a a'.

Record Group : Type := Group'
  { ty :> Type
  ; op : ty -> ty -> ty
  ; eqr : ty -> ty -> Prop
  ; e : ty
  ; eq_rel :> Equivalence eqr
  ; prop_op :> Proper (eqr ==> eqr ==> eqr) op
  ; assoc_op : associative op eqr
  ; id_op : identity op eqr e
  ; inv_op : op_invertible op eqr e
  }.

Notation "A <.> B" := ((op _) A B) (at level 50).
Notation "A =.= B" := ((eqr _) A B) (at level 50).

Definition homomorphism {G H : Group} (f : G -> H) := 
  forall x y, f (x <.> y) =.= (f x <.> f y).
这一定是真的吗?这不是真的

H
成为一个非平凡群(例如,
Z/2Z
),定义
g
为总关系
eqr:=fun\uu=>True
g
因此与平凡群同构),并且
f:ty g->ty H
是身份函数
f
满足
同态
但它不合适

一般来说,为了反映普通的数学实践,在使用集合点时,正确性是一个基本事实,必须从第一性原理得到证明,而理论的其余部分则依赖于此。可以说,
homo\u is\u property
不是一个自然的问题,因为所有的定理和属性(比如
同态
)实际上应该首先由适当的函数来参数化

Lemma homo_is_proper : forall {G H : Group} (f : ty G -> ty H),
  homomorphism f -> Proper (eqr G ==> eqr H) f.