src/HOL/Tools/Predicate_Compile/predicate_compile_core.ML
changeset 46909 3c73a121a387
parent 46614 165886a4fe64
child 47248 afacccb4e2c7
equal deleted inserted replaced
46908:3553cb65c66c 46909:3c73a121a387
  1150             (list_comb (Const (name, T), args))))
  1150             (list_comb (Const (name, T), args))))
  1151         val lhs = Const (mode_cname, funT)
  1151         val lhs = Const (mode_cname, funT)
  1152         val def = Logic.mk_equals (lhs, predterm)
  1152         val def = Logic.mk_equals (lhs, predterm)
  1153         val ([definition], thy') = thy |>
  1153         val ([definition], thy') = thy |>
  1154           Sign.add_consts_i [(Binding.name mode_cbasename, funT, NoSyn)] |>
  1154           Sign.add_consts_i [(Binding.name mode_cbasename, funT, NoSyn)] |>
  1155           Global_Theory.add_defs false [((Binding.name (mode_cbasename ^ "_def"), def), [])]
  1155           Global_Theory.add_defs false [((Binding.name (Thm.def_name mode_cbasename), def), [])]
  1156         val ctxt' = Proof_Context.init_global thy'
  1156         val ctxt' = Proof_Context.init_global thy'
  1157         val rules as ((intro, elim), _) =
  1157         val rules as ((intro, elim), _) =
  1158           create_intro_elim_rule ctxt' mode definition mode_cname funT (Const (name, T))
  1158           create_intro_elim_rule ctxt' mode definition mode_cname funT (Const (name, T))
  1159         in thy'
  1159         in thy'
  1160           |> set_function_name Pred name mode mode_cname
  1160           |> set_function_name Pred name mode mode_cname