src/HOL/Tools/SMT/smt_builtin.ML
changeset 41336 0ea5b9c7d233
parent 41328 6792a5c92a58
child 41354 0abe5db19f3a
equal deleted inserted replaced
41335:66edbd0f7a2e 41336:0ea5b9c7d233
    39   val dest_builtin_conn: Proof.context -> string * typ -> term list ->
    39   val dest_builtin_conn: Proof.context -> string * typ -> term list ->
    40     bfunr option
    40     bfunr option
    41   val dest_builtin: Proof.context -> string * typ -> term list -> bfunr option
    41   val dest_builtin: Proof.context -> string * typ -> term list -> bfunr option
    42   val is_builtin_fun: Proof.context -> string * typ -> term list -> bool
    42   val is_builtin_fun: Proof.context -> string * typ -> term list -> bool
    43   val is_builtin_fun_ext: Proof.context -> string * typ -> term list -> bool
    43   val is_builtin_fun_ext: Proof.context -> string * typ -> term list -> bool
    44   val is_builtin_ext: Proof.context -> string * typ -> term list -> bool
       
    45 end
    44 end
    46 
    45 
    47 structure SMT_Builtin: SMT_BUILTIN =
    46 structure SMT_Builtin: SMT_BUILTIN =
    48 struct
    47 struct
    49 
    48 
   217   (case lookup_builtin_fun ctxt c of
   216   (case lookup_builtin_fun ctxt c of
   218     SOME (_, Int f) => is_some (f ctxt T ts)
   217     SOME (_, Int f) => is_some (f ctxt T ts)
   219   | SOME (_, Ext f) => f ctxt T ts
   218   | SOME (_, Ext f) => f ctxt T ts
   220   | NONE => false)
   219   | NONE => false)
   221 
   220 
   222 fun is_builtin_ext ctxt c ts =
       
   223   is_builtin_num_ext ctxt (Term.list_comb (Const c, ts)) orelse 
       
   224   is_builtin_fun_ext ctxt c ts
       
   225 
       
   226 end
   221 end