Nominal/nominal_dt_quot.ML
branchNominal2-Isabelle2013
changeset 3211 41e205fcb21e
parent 3209 2fb0bc0dcbf1
equal deleted inserted replaced
3209:2fb0bc0dcbf1 3211:41e205fcb21e
    56 
    56 
    57 (* defines the quotient types *)
    57 (* defines the quotient types *)
    58 fun define_qtypes qtys_descr alpha_tys alpha_trms alpha_equivp_thms lthy =
    58 fun define_qtypes qtys_descr alpha_tys alpha_trms alpha_equivp_thms lthy =
    59   let
    59   let
    60     val qty_args1 = map2 (fn ty => fn trm => (ty, trm, false)) alpha_tys alpha_trms
    60     val qty_args1 = map2 (fn ty => fn trm => (ty, trm, false)) alpha_tys alpha_trms
    61     val qty_args2 = (map2 (fn descr => fn args1 => (descr, args1, (NONE, false, NONE))) qtys_descr qty_args1)
    61     val qty_args2 = map2 (fn descr => fn args1 => (descr, args1, (NONE, false))) qtys_descr qty_args1
    62     val qty_args3 = qty_args2 ~~ alpha_equivp_thms
    62     val qty_args3 = qty_args2 ~~ alpha_equivp_thms
    63   in
    63   in
    64     fold_map Quotient_Type.add_quotient_type qty_args3 lthy
    64     fold_map Quotient_Type.add_quotient_type qty_args3 lthy
    65   end 
    65   end 
    66 
    66