src/HOL/Tools/SMT/smt_config.ML
changeset 46949 94aa7b81bcf6
parent 46736 4dc7ddb47350
child 46961 5c6955f487e5
equal deleted inserted replaced
46948:aae5566d6756 46949:94aa7b81bcf6
    84     error ("Solver already registered: " ^ quote name)
    84     error ("Solver already registered: " ^ quote name)
    85   else
    85   else
    86     context
    86     context
    87     |> Solvers.map (apfst (Symtab.update (name, (info, []))))
    87     |> Solvers.map (apfst (Symtab.update (name, (info, []))))
    88     |> Context.map_theory (Attrib.setup (Binding.name (name ^ "_options"))
    88     |> Context.map_theory (Attrib.setup (Binding.name (name ^ "_options"))
    89         (Scan.lift (Parse.$$$ "=" |-- Args.name) >>
    89         (Scan.lift (@{keyword "="} |-- Args.name) >>
    90           (Thm.declaration_attribute o K o set_solver_options o pair name))
    90           (Thm.declaration_attribute o K o set_solver_options o pair name))
    91         ("Additional command line options for SMT solver " ^ quote name))
    91         ("Additional command line options for SMT solver " ^ quote name))
    92 
    92 
    93 fun all_solvers_of ctxt = Symtab.keys (fst (Solvers.get (Context.Proof ctxt)))
    93 fun all_solvers_of ctxt = Symtab.keys (fst (Solvers.get (Context.Proof ctxt)))
    94 
    94 
   140           opts @ options ctxt
   140           opts @ options ctxt
   141   in solver_info_of (K []) all_options ctxt end
   141   in solver_info_of (K []) all_options ctxt end
   142 
   142 
   143 val setup_solver =
   143 val setup_solver =
   144   Attrib.setup @{binding smt_solver}
   144   Attrib.setup @{binding smt_solver}
   145     (Scan.lift (Parse.$$$ "=" |-- Args.name) >>
   145     (Scan.lift (@{keyword "="} |-- Args.name) >>
   146       (Thm.declaration_attribute o K o select_solver))
   146       (Thm.declaration_attribute o K o select_solver))
   147     "SMT solver configuration"
   147     "SMT solver configuration"
   148 
   148 
   149 
   149 
   150 (* options *)
   150 (* options *)
   205 
   205 
   206 val certificates_of = Certificates.get o Context.Proof
   206 val certificates_of = Certificates.get o Context.Proof
   207 
   207 
   208 val setup_certificates =
   208 val setup_certificates =
   209   Attrib.setup @{binding smt_certificates}
   209   Attrib.setup @{binding smt_certificates}
   210     (Scan.lift (Parse.$$$ "=" |-- Args.name) >>
   210     (Scan.lift (@{keyword "="} |-- Args.name) >>
   211       (Thm.declaration_attribute o K o select_certificates))
   211       (Thm.declaration_attribute o K o select_certificates))
   212     "SMT certificates configuration"
   212     "SMT certificates configuration"
   213 
   213 
   214 
   214 
   215 (* setup *)
   215 (* setup *)