src/HOL/Tools/refute.ML
changeset 30307 6c74ef5a349f
parent 30275 381ce8d88cb8
parent 30305 720226bedc4d
child 30312 0e0cb7ac0281
equal deleted inserted replaced
30294:d6bffd97d8d5 30307:6c74ef5a349f
  2092           val pairss = map (map HOLogic.mk_prod) functions
  2092           val pairss = map (map HOLogic.mk_prod) functions
  2093           (* Term.typ *)
  2093           (* Term.typ *)
  2094           val HOLogic_prodT = HOLogic.mk_prodT (T1, T2)
  2094           val HOLogic_prodT = HOLogic.mk_prodT (T1, T2)
  2095           val HOLogic_setT  = HOLogic.mk_setT HOLogic_prodT
  2095           val HOLogic_setT  = HOLogic.mk_setT HOLogic_prodT
  2096           (* Term.term *)
  2096           (* Term.term *)
  2097           val HOLogic_empty_set = Const (@{const_name "{}"}, HOLogic_setT)
  2097           val HOLogic_empty_set = Const (@{const_name Set.empty}, HOLogic_setT)
  2098           val HOLogic_insert    =
  2098           val HOLogic_insert    =
  2099             Const (@{const_name insert}, HOLogic_prodT --> HOLogic_setT --> HOLogic_setT)
  2099             Const (@{const_name insert}, HOLogic_prodT --> HOLogic_setT --> HOLogic_setT)
  2100         in
  2100         in
  2101           (* functions as graphs, i.e. as a (HOL) set of pairs "(x, y)" *)
  2101           (* functions as graphs, i.e. as a (HOL) set of pairs "(x, y)" *)
  2102           map (List.foldr (fn (pair, acc) => HOLogic_insert $ pair $ acc)
  2102           map (List.foldr (fn (pair, acc) => HOLogic_insert $ pair $ acc)
  3157           (constants ~~ results)
  3157           (constants ~~ results)
  3158         (* Term.typ *)
  3158         (* Term.typ *)
  3159         val HOLogic_prodT = HOLogic.mk_prodT (T1, T2)
  3159         val HOLogic_prodT = HOLogic.mk_prodT (T1, T2)
  3160         val HOLogic_setT  = HOLogic.mk_setT HOLogic_prodT
  3160         val HOLogic_setT  = HOLogic.mk_setT HOLogic_prodT
  3161         (* Term.term *)
  3161         (* Term.term *)
  3162         val HOLogic_empty_set = Const (@{const_name "{}"}, HOLogic_setT)
  3162         val HOLogic_empty_set = Const (@{const_name Set.empty}, HOLogic_setT)
  3163         val HOLogic_insert    =
  3163         val HOLogic_insert    =
  3164           Const (@{const_name insert}, HOLogic_prodT --> HOLogic_setT --> HOLogic_setT)
  3164           Const (@{const_name insert}, HOLogic_prodT --> HOLogic_setT --> HOLogic_setT)
  3165       in
  3165       in
  3166         SOME (List.foldr (fn (pair, acc) => HOLogic_insert $ pair $ acc)
  3166         SOME (List.foldr (fn (pair, acc) => HOLogic_insert $ pair $ acc)
  3167           HOLogic_empty_set pairs)
  3167           HOLogic_empty_set pairs)