Quot/quotient_typ.ML
changeset 762 baac4639ecef
parent 760 c1989de100b4
child 766 df053507edba
equal deleted inserted replaced
761:e2ac18492c68 762:baac4639ecef
     1 signature QUOTIENT =
     1 signature QUOTIENT_TYPE =
     2 sig
     2 sig
     3   exception LIFT_MATCH of string
     3   exception LIFT_MATCH of string
     4 
     4 
     5   val quotient_type: ((binding * mixfix) * (typ * term)) list -> Proof.context -> Proof.state
     5   val quotient_type: ((binding * mixfix) * (typ * term)) list -> Proof.context -> Proof.state
     6   val quotient_type_cmd: (((bstring * mixfix) * string) * string) list -> Proof.context -> Proof.state
     6   val quotient_type_cmd: (((bstring * mixfix) * string) * string) list -> Proof.context -> Proof.state
     7 
     7 
     8 end;
     8 end;
     9 
     9 
    10 structure Quotient: QUOTIENT =
    10 structure Quotient_Type: QUOTIENT_TYPE =
    11 struct
    11 struct
       
    12 
       
    13 open Quotient_Info;
    12 
    14 
    13 exception LIFT_MATCH of string
    15 exception LIFT_MATCH of string
    14 
    16 
    15 (* wrappers for define, note, Attrib.internal and theorem_i *)
    17 (* wrappers for define, note, Attrib.internal and theorem_i *)
    16 fun define (name, mx, rhs) lthy =
    18 fun define (name, mx, rhs) lthy =
   221       "quotient type definitions (requires equivalence proofs)"
   223       "quotient type definitions (requires equivalence proofs)"
   222          OuterKeyword.thy_goal (quotspec_parser >> quotient_type_cmd)
   224          OuterKeyword.thy_goal (quotspec_parser >> quotient_type_cmd)
   223 
   225 
   224 end; (* structure *)
   226 end; (* structure *)
   225 
   227 
   226 open Quotient
   228