VeriT proofs: parsing and abstract syntax tree.
*)
signature VERIT_STRATEGIES = sig (*Strategy related*) val veriT_strategy : string Config.T val veriT_current_strategy : Context.generic -> stringlist val all_veriT_stgies: Context.generic -> stringlist;
val select_veriT_stgy: string -> Context.generic -> Context.generic; val valid_veriT_stgy: string -> Context.generic -> bool; val verit_add_stgy: string * stringlist -> Context.generic -> Context.generic val verit_rm_stgy: string -> Context.generic -> Context.generic
(*Global tactic*) val verit_tac: Proof.context -> thm list -> int -> tactic val verit_tac_stgy: string -> Proof.context -> thm list -> int -> tactic end;
val veriT_strategy_default_name = "default"; (*FUDGE*) val veriT_strategy_del_insts_name = "del_insts"; (*FUDGE*) val veriT_strategy_rm_insts_name = "ccfv_SIG"; (*FUDGE*) val veriT_strategy_ccfv_insts_name = "ccfv_threshold"; (*FUDGE*) val veriT_strategy_best_name = "best"; (*FUDGE*)
structure Data = Generic_Data
( type T = verit_strategy val empty = empty_data val merge = merge_data
)
fun veriT_current_strategy ctxt = let val {default_strategy,strategies} = (Data.get ctxt) in
AList.lookup (op=) strategies default_strategy
|> the end
val veriT_strategy = Attrib.setup_config_string \<^binding>\<open>smt_verit_strategy\<close> (K veriT_strategy_best_name);
fun valid_veriT_stgy stgy context = let val {strategies,...} = Data.get context in
AList.defined (op =) strategies stgy end
fun select_veriT_stgy stgy context = let val {strategies,...} = Data.get context val upd = Data.map (K (mk_verit_strategy stgy strategies)) in ifnot (AList.defined (op =) strategies stgy) then
error ("Trying to select unknown veriT strategy: " ^ quote stgy) else upd context end
fun verit_add_stgy stgy context = let val {default_strategy,strategies} = Data.get context in
Data.map
(K (mk_verit_strategy default_strategy (AList.update (op =) stgy strategies)))
context end
fun verit_rm_stgy stgy context = let val {default_strategy,strategies} = Data.get context in
Data.map
(K (mk_verit_strategy default_strategy (AList.delete (op =) stgy strategies)))
context end
fun all_veriT_stgies context = let val {strategies,...} = Data.get context in map fst strategies end
val select_verit = SMT_Config.select_solver "verit" fun verit_tac ctxt = SMT_Solver.smt_tac (Config.put SMT_Config.native_bv false ((Context.proof_map select_verit ctxt))) fun verit_tac_stgy stgy ctxt = verit_tac (Context.proof_of (select_veriT_stgy stgy (Context.Proof ctxt)))
end;
Messung V0.5
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.