src/HOL/GroupTheory/Homomorphism.thy
author paulson
Mon, 23 Jul 2001 17:47:49 +0200
changeset 11448 aa519e0cc050
permissions -rw-r--r--
Final version of Florian Kammueller's examples
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11448
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
     1
(*  Title:      HOL/GroupTheory/Homomorphism
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
     2
    ID:         $Id$
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
     3
    Author:     Florian Kammueller, with new proofs by L C Paulson
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
     4
    Copyright   1998-2001  University of Cambridge
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
     5
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
     6
Homomorphisms of groups, rings, and automorphisms.
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
     7
Sigma version with Locales
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
     8
*)
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
     9
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    10
Homomorphism = Ring + Bij +
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    11
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    12
consts
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    13
  Hom :: "('a grouptype * 'b grouptype * ('a => 'b)) set"
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    14
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    15
defs
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    16
  Hom_def "Hom == \\<Sigma>G \\<in> Group. \\<Sigma>H \\<in> Group. {Phi. Phi \\<in> (G.<cr>) \\<rightarrow> (H.<cr>) & 
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    17
                  (\\<forall>x \\<in> (G.<cr>) . \\<forall>y \\<in> (G.<cr>) . (Phi((G.<f>) x y) = (H.<f>) (Phi x)(Phi y)))}"
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    18
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    19
consts
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    20
  RingHom :: "(('a ringtype) * ('b ringtype) * ('a => 'b))set"
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    21
defs
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    22
  RingHom_def "RingHom == \\<Sigma>R1 \\<in> Ring. \\<Sigma>R2 \\<in> Ring. {Phi. Phi \\<in> (R1.<cr>) \\<rightarrow> (R2.<cr>) &
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    23
                   (\\<forall>x \\<in> (R1.<cr>). \\<forall>y \\<in> (R1.<cr>). (Phi((R1.<f>) x y) = (R2.<f>) (Phi x) (Phi y))) &
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    24
                   (\\<forall>x \\<in> (R1.<cr>). \\<forall>y \\<in> (R1.<cr>). (Phi((R1.<m>) x y) = (R2.<m>) (Phi x) (Phi y)))}"
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    25
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    26
consts
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    27
  GroupAuto :: "('a grouptype * ('a => 'a)) set"
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    28
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    29
defs
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    30
  GroupAuto_def "GroupAuto == \\<Sigma>G \\<in> Group. {Phi. (G,G,Phi)\\<in>Hom  &
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    31
                    inj_on Phi (G.<cr>) & Phi ` (G.<cr>) = (G.<cr>)}"
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    32
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    33
consts
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    34
  RingAuto :: "(('a ringtype) * ('a => 'a))set"
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    35
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    36
defs
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    37
  RingAuto_def "RingAuto == \\<Sigma>R \\<in> Ring. {Phi. (R,R,Phi)\\<in>RingHom &
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    38
                    inj_on Phi (R.<cr>) & Phi ` (R.<cr>) = (R.<cr>)}"
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    39
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    40
end