src/HOL/Tools/datatype_rep_proofs.ML
changeset 30307 6c74ef5a349f
parent 30280 eb98b49ef835
parent 30305 720226bedc4d
child 30345 76fd85bbf139
equal deleted inserted replaced
30294:d6bffd97d8d5 30307:6c74ef5a349f
   459       in HOLogic.imp $ 
   459       in HOLogic.imp $ 
   460         (Const (set_name, UnivT') $ mk_Free "x" Univ_elT i) $
   460         (Const (set_name, UnivT') $ mk_Free "x" Univ_elT i) $
   461           (if i < length newTs then Const ("True", HOLogic.boolT)
   461           (if i < length newTs then Const ("True", HOLogic.boolT)
   462            else HOLogic.mk_mem (mk_Free "x" Univ_elT i,
   462            else HOLogic.mk_mem (mk_Free "x" Univ_elT i,
   463              Const ("image", [isoT, HOLogic.mk_setT T] ---> UnivT) $
   463              Const ("image", [isoT, HOLogic.mk_setT T] ---> UnivT) $
   464                Const (iso_name, isoT) $ Const ("UNIV", HOLogic.mk_setT T)))
   464                Const (iso_name, isoT) $ Const (@{const_name UNIV}, HOLogic.mk_setT T)))
   465       end;
   465       end;
   466 
   466 
   467     val iso_t = HOLogic.mk_Trueprop (mk_conj (map mk_iso_t
   467     val iso_t = HOLogic.mk_Trueprop (mk_conj (map mk_iso_t
   468       (rep_set_names ~~ all_rep_names ~~ (0 upto (length descr' - 1)) ~~ recTs)));
   468       (rep_set_names ~~ all_rep_names ~~ (0 upto (length descr' - 1)) ~~ recTs)));
   469 
   469