First Homomorphism Theorem
(* The first homomorphism theorem. See Meinke, Tucker Theorem 3.4.18. *)
(* Venanzio Capretta, January 1999 *)
(* Coq version 6.2.3 *)
Require Export Homomorphisms.
Require Export Kernels.
Implicit Arguments On.
Section First_Homomorphism_Theorem.
Variable sigma : Signature.
Variable A, B : (Algebra sigma).
Variable phi : (Epimorphism A B).
Local n := (sorts_num sigma).
Local m := (fun_num sigma).
Local As := (sorts A).
Local Bs := (sorts B).
Local A_quot := (ker_quot phi).
Local nat_hom := (natural phi).
Local quots := (sorts A_quot).
Local psi : (s:(Finite n))(quots s) -> (Bs s) := [s](phi s).
Remark psi_well_defined :
(s:(Finite n))(fun_well_defined (psi 1!s)).
Local psi_setoid : (s:(Finite n))(S_Fun (quots s) (Bs s)) :=
[s](setoid_function (psi_well_defined 1!s)).
(* psi commutes with the functions of the algebra. *)
Lemma
psi_is_homomorphism : (Is_homomorphism 2!A_quot 3!B psi_setoid).
Local psi_homo : (Homomorphism A_quot B) :=
(homomorphism psi_is_homomorphism).
Remark psi_injective :
(s:(Finite n))(injective (psi_homo s)).
Remark psi_surjective :
(s:(Finite n))(surjective (psi_homo s)).
Remark psi_bijective :
(s:(Finite n))(bijective (psi_homo s)).
Remark psi_is_iso : (is_isomorphism psi_homo).
Definition
ker_quot_iso : (Isomorphism A_quot B) :=
(isomorphism psi_is_iso).
Theorem
first_homomorphism_theorem :
(s:(Finite n))(x:(As s))
((phi s) x) [=] ((ker_quot_iso s) ((nat_hom s) x)).
End First_Homomorphism_Theorem.
Implicit Arguments Off.
25/02/99, 14:36