15 #ifndef ILANG_VTARGET_OUT_GRAIN_INV_PARSE_H__
16 #define ILANG_VTARGET_OUT_GRAIN_INV_PARSE_H__
19 #ifdef INVSYN_INTERFACE
21 #include <ilang/smt-inout/chc_inv_in.h>
27 class GrainInvariantParser :
public SmtlibInvariantParser {
36 GrainInvariantParser(YosysSmtParser* yosys_smt_info,
37 const std::string& dut_instance_name,
38 bool discourage_outside_var =
true,
39 bool outside_var_to_freevar =
true);
41 GrainInvariantParser(
const GrainInvariantParser&) =
delete;
43 GrainInvariantParser& operator=(
const GrainInvariantParser&) =
delete;
46 virtual ~GrainInvariantParser();
50 bool convert_out_var_to_free_var;
55 bool virtual ParseInvResultFromFile(
const std::string& fname)
override;
61 virtual var_type* make_sort(
const std::string& name,
62 const std::vector<int>&)
override;
64 void declare_function(
const std::string& name, var_type* sort)
override;
72 virtual SmtTermInfoVlgPtr push_quantifier_scope()
override;
74 virtual SmtTermInfoVlgPtr pop_quantifier_scope()
override;
77 virtual void declare_quantified_variable(
const std::string& name,
78 var_type* sort)
override;
81 virtual SmtTermInfoVlgPtr
82 mk_function(
const std::string& name, var_type* sort,
83 const std::vector<int>& idx,
84 const std::vector<SmtTermInfoVlgPtr>& args)
override;
91 virtual SmtTermInfoVlgPtr
92 search_quantified_var_stack(
const std::string& name)
override;
95 virtual void define_function(
const std::string& func_name,
96 const std::vector<SmtTermInfoVlgPtr>& args,
98 SmtTermInfoVlgPtr func_body)
override;
105 #endif // INVSYN_INTERFACE
107 #endif // ILANG_VTARGET_OUT_GRAIN_INV_PARSE_H__