src/HOL/Tools/inductive_set.ML
changeset 32705 04ce6bb14d85
parent 32683 7c1fe854ca6a
child 33037 b22e44496dc2
equal deleted inserted replaced
32682:304a47739407 32705:04ce6bb14d85
    72       fun close p t f =
    72       fun close p t f =
    73         let val vs = Term.add_vars t []
    73         let val vs = Term.add_vars t []
    74         in Drule.instantiate' [] (rev (map (SOME o cterm_of thy o Var) vs))
    74         in Drule.instantiate' [] (rev (map (SOME o cterm_of thy o Var) vs))
    75           (p (fold (Logic.all o Var) vs t) f)
    75           (p (fold (Logic.all o Var) vs t) f)
    76         end;
    76         end;
    77       fun mkop "op &" T x = SOME (Const (@{const_name Set.inter}, T --> T --> T), x)
    77       fun mkop "op &" T x = SOME (Const (@{const_name Lattices.inf}, T --> T --> T), x)
    78         | mkop "op |" T x = SOME (Const (@{const_name Set.union}, T --> T --> T), x)
    78         | mkop "op |" T x = SOME (Const (@{const_name Lattices.sup}, T --> T --> T), x)
    79         | mkop _ _ _ = NONE;
    79         | mkop _ _ _ = NONE;
    80       fun mk_collect p T t =
    80       fun mk_collect p T t =
    81         let val U = HOLogic.dest_setT T
    81         let val U = HOLogic.dest_setT T
    82         in HOLogic.Collect_const U $
    82         in HOLogic.Collect_const U $
    83           HOLogic.mk_psplits (HOLogic.flat_tuple_paths p) U HOLogic.boolT t
    83           HOLogic.mk_psplits (HOLogic.flat_tuple_paths p) U HOLogic.boolT t