src/HOL/Tools/Datatype/datatype.ML
changeset 45740 132a3e1c0fe5
parent 45738 0430f9123e43
child 45742 debb68e8d23f
equal deleted inserted replaced
45739:b545ea8bc731 45740:132a3e1c0fe5
   476 
   476 
   477     fun mk_iso_t (((set_name, iso_name), i), T) =
   477     fun mk_iso_t (((set_name, iso_name), i), T) =
   478       let val isoT = T --> Univ_elT in
   478       let val isoT = T --> Univ_elT in
   479         HOLogic.imp $
   479         HOLogic.imp $
   480           (Const (set_name, UnivT') $ Datatype_Aux.mk_Free "x" Univ_elT i) $
   480           (Const (set_name, UnivT') $ Datatype_Aux.mk_Free "x" Univ_elT i) $
   481             (if i < length newTs then HOLogic.true_const
   481             (if i < length newTs then @{term True}
   482              else HOLogic.mk_mem (Datatype_Aux.mk_Free "x" Univ_elT i,
   482              else HOLogic.mk_mem (Datatype_Aux.mk_Free "x" Univ_elT i,
   483                Const (@{const_name image}, isoT --> HOLogic.mk_setT T --> UnivT) $
   483                Const (@{const_name image}, isoT --> HOLogic.mk_setT T --> UnivT) $
   484                  Const (iso_name, isoT) $ Const (@{const_abbrev UNIV}, HOLogic.mk_setT T)))
   484                  Const (iso_name, isoT) $ Const (@{const_abbrev UNIV}, HOLogic.mk_setT T)))
   485       end;
   485       end;
   486 
   486