src/HOL/GroupTheory/FactGroup.thy
author paulson
Tue, 13 Aug 2002 17:42:34 +0200
changeset 13496 6f0c57def6d5
parent 12459 6978ab7cac64
permissions -rw-r--r--
In ZF/Constructible, moved many results from Satisfies_absolute, etc., to the new theory Internalize.thy
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/FactGroup
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
Factorization of a group
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
     7
*)
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
FactGroup = Coset +
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    10
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    11
constdefs
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    12
  FactGroup :: "(['a grouptype, 'a set] => ('a set) grouptype)"
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    13
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    14
   "FactGroup ==
12459
6978ab7cac64 bounded abstraction now uses syntax "%" / "\<lambda>" instead of "lam";
wenzelm
parents: 11448
diff changeset
    15
     %G: Group. %H: {H. H <| G}.
11448
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    16
      (| carrier = set_r_cos G H,
12459
6978ab7cac64 bounded abstraction now uses syntax "%" / "\<lambda>" instead of "lam";
wenzelm
parents: 11448
diff changeset
    17
	 bin_op = (%X: set_r_cos G H. %Y: set_r_cos G H. set_prod G X Y),
6978ab7cac64 bounded abstraction now uses syntax "%" / "\<lambda>" instead of "lam";
wenzelm
parents: 11448
diff changeset
    18
	 inverse = (%X: set_r_cos G H. set_inv G X), 
11448
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    19
	 unit = H |)"
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    20
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    21
syntax
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    22
  "@Fact" :: "['a grouptype, 'a set] => ('a set) grouptype"
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    23
              ("_ Mod _" [60,61]60)
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    24
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    25
translations
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    26
  "G Mod H" == "FactGroup G H"
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    27
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    28
locale factgroup = coset +
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    29
fixes 
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    30
  F :: "('a set) grouptype"
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    31
  H :: "('a set)"
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    32
assumes
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    33
  H_normal "H <| G"
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    34
defines
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    35
  F_def "F == FactGroup G H"
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    36
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    37
end
aa519e0cc050 Final version of Florian Kammueller's examples
paulson
parents:
diff changeset
    38