src/HOL/Quot/HQUOT.thy
author wenzelm
Tue, 27 May 1997 15:45:07 +0200
changeset 3362 0b268cff9344
parent 2905 9a4f353107da
child 3842 b55686a7b22c
permissions -rw-r--r--
NJ 1.09.2x as factory default!

(*  Title:      HOL/Quot/HQUOT.thy
    ID:         $Id$
    Author:     Oscar Slotosch
    Copyright   1997 Technische Universitaet Muenchen

quotient constructor for higher order quotients

*)

HQUOT = PER +      

typedef 'a quot = "{s::'a::per set. ? r.!y.y:s=y===r}" (quotNE)

(* constants for equivalence classes *)
consts
        peclass         :: "'a::per => 'a quot"
        any_in          :: "'a::per quot => 'a"

syntax          "@ecl"  :: "'a::per => 'a quot" ("<[ _ ]>")

translations    "<[x]>" == "peclass x"

defs
        peclass_def     "<[x]> == Abs_quot {y.y===x}"
        any_in_def      "any_in f == @x.<[x]>=f"
end