src/HOL/GroupTheory/FactGroup.thy
author berghofe
Mon, 10 Dec 2001 15:24:22 +0100
changeset 12441 c586d08520ad
parent 11448 aa519e0cc050
child 12459 6978ab7cac64
permissions -rw-r--r--
Added examples for code generator.

(*  Title:      HOL/GroupTheory/FactGroup
    ID:         $Id$
    Author:     Florian Kammueller, with new proofs by L C Paulson
    Copyright   1998-2001  University of Cambridge

Factorization of a group
*)

FactGroup = Coset +

constdefs
  FactGroup :: "(['a grouptype, 'a set] => ('a set) grouptype)"

   "FactGroup ==
     lam G: Group. lam H: {H. H <| G}.
      (| carrier = set_r_cos G H,
	 bin_op = (lam X: set_r_cos G H. lam Y: set_r_cos G H. set_prod G X Y),
	 inverse = (lam X: set_r_cos G H. set_inv G X), 
	 unit = H |)"

syntax
  "@Fact" :: "['a grouptype, 'a set] => ('a set) grouptype"
              ("_ Mod _" [60,61]60)

translations
  "G Mod H" == "FactGroup G H"

locale factgroup = coset +
fixes 
  F :: "('a set) grouptype"
  H :: "('a set)"
assumes
  H_normal "H <| G"
defines
  F_def "F == FactGroup G H"

end