src/HOL/SMT/Tools/smt_translate.ML
changeset 34033 687140d426e9
parent 34010 ac78f5cdc430
child 35408 b48ab741683b
equal deleted inserted replaced
34025:7996b488a9b5 34033:687140d426e9
   282   val formula_marker = SConst (@{const_name formula}, Term.dummyT)
   282   val formula_marker = SConst (@{const_name formula}, Term.dummyT)
   283   fun mark f true t = f true t #>> app term_marker o single
   283   fun mark f true t = f true t #>> app term_marker o single
   284     | mark f false t = f false t #>> app formula_marker o single
   284     | mark f false t = f false t #>> app formula_marker o single
   285   fun mark' f false t = f true t #>> app term_marker o single
   285   fun mark' f false t = f true t #>> app term_marker o single
   286     | mark' f true t = f true t
   286     | mark' f true t = f true t
   287   val mark_term = app term_marker o single
   287   fun mark_term (t : (sym, typ) sterm) = app term_marker [t]
   288   fun lift_term_marker c ts =
   288   fun lift_term_marker c ts =
   289     let val rem = (fn SApp (SConst (@{const_name term}, _), [t]) => t | t => t)
   289     let val rem = (fn SApp (SConst (@{const_name term}, _), [t]) => t | t => t)
   290     in mark_term (SApp (c, map rem ts)) end
   290     in mark_term (SApp (c, map rem ts)) end
   291   fun is_term (SApp (SConst (@{const_name term}, _), _)) = true
   291   fun is_term (SApp (SConst (@{const_name term}, _), _)) = true
   292     | is_term _ = false
   292     | is_term _ = false