src/HOL/Tools/SMT/z3_interface.ML
changeset 38795 848be46708dc
parent 38786 e46e7a9cb622
child 38864 4abe644fcea5
equal deleted inserted replaced
38794:2d638e963357 38795:848be46708dc
   214 fun mk_builtin_fun ctxt sym cts =
   214 fun mk_builtin_fun ctxt sym cts =
   215   (case (sym, cts) of
   215   (case (sym, cts) of
   216     (Sym ("true", _), []) => SOME mk_true
   216     (Sym ("true", _), []) => SOME mk_true
   217   | (Sym ("false", _), []) => SOME mk_false
   217   | (Sym ("false", _), []) => SOME mk_false
   218   | (Sym ("not", _), [ct]) => SOME (mk_not ct)
   218   | (Sym ("not", _), [ct]) => SOME (mk_not ct)
   219   | (Sym ("and", _), _) => SOME (mk_nary @{cterm "op &"} mk_true cts)
   219   | (Sym ("and", _), _) => SOME (mk_nary @{cterm HOL.conj} mk_true cts)
   220   | (Sym ("or", _), _) => SOME (mk_nary @{cterm "op |"} mk_false cts)
   220   | (Sym ("or", _), _) => SOME (mk_nary @{cterm HOL.disj} mk_false cts)
   221   | (Sym ("implies", _), [ct, cu]) => SOME (mk_implies ct cu)
   221   | (Sym ("implies", _), [ct, cu]) => SOME (mk_implies ct cu)
   222   | (Sym ("iff", _), [ct, cu]) => SOME (mk_iff ct cu)
   222   | (Sym ("iff", _), [ct, cu]) => SOME (mk_iff ct cu)
   223   | (Sym ("~", _), [ct, cu]) => SOME (mk_iff ct cu)
   223   | (Sym ("~", _), [ct, cu]) => SOME (mk_iff ct cu)
   224   | (Sym ("xor", _), [ct, cu]) => SOME (mk_not (mk_iff ct cu))
   224   | (Sym ("xor", _), [ct, cu]) => SOME (mk_not (mk_iff ct cu))
   225   | (Sym ("ite", _), [ct1, ct2, ct3]) => SOME (mk_if ct1 ct2 ct3)
   225   | (Sym ("ite", _), [ct1, ct2, ct3]) => SOME (mk_if ct1 ct2 ct3)