9 #include "dreal/contractor/contractor.h" 10 #include "dreal/contractor/contractor_status.h" 11 #include "dreal/solver/config.h" 18 class ContractorInteger;
20 class ContractorIbexFwdbwd;
21 class ContractorIbexPolytope;
22 class ContractorFixpoint;
23 class ContractorWorklistFixpoint;
25 template <
typename ContextType>
26 class ContractorForall;
53 Contractor::Kind
kind()
const;
56 const DynamicBitset&
input()
const;
74 virtual std::ostream&
display(std::ostream& os)
const = 0;
77 const Contractor::Kind kind_;
80 bool include_forall_{
false};
86 DynamicBitset::size_type ComputeInputSize(
87 const std::vector<Contractor>& contractors);
89 std::ostream& operator<<(std::ostream& os,
const ContractorCell& c);
119 template <
typename ContextType>
120 std::shared_ptr<ContractorForall<ContextType>>
to_forall(
virtual std::ostream & display(std::ostream &os) const =0
Outputs this contractor to os.
const Config & config() const
Returns config.
Definition: contractor_cell.cc:33
Abstract base class of contractors.
Definition: contractor_cell.h:29
shared_ptr< ContractorId > to_id(const Contractor &contractor)
Converts contractor to ContractorId.
Definition: contractor_cell.cc:55
shared_ptr< ContractorInteger > to_integer(const Contractor &contractor)
Converts contractor to ContractorInteger.
Definition: contractor_cell.cc:59
shared_ptr< ContractorIbexFwdbwd > to_ibex_fwdbwd(const Contractor &contractor)
Converts contractor to ContractorIbexFwdbwd.
Definition: contractor_cell.cc:67
Sum type of symbolic::Expression and symbolic::Formula.
Definition: api.cc:9
void operator=(const ContractorCell &)=delete
Deleted copy assign operator.
shared_ptr< ContractorJoin > to_join(const Contractor &contractor)
Converts contractor to ContractorJoin.
Definition: contractor_cell.cc:85
virtual ~ContractorCell()=default
Default destructor.
std::shared_ptr< ContractorForall< ContextType > > to_forall(const Contractor &contractor)
Converts contractor to ContractorForall.
Definition: contractor_forall.h:331
ContractorCell()=delete
Deleted default constructor.
const DynamicBitset & input() const
Returns its input.
Definition: contractor_cell.cc:29
bool include_forall() const
Returns true if this contractor includes a forall contractor.
Definition: contractor_cell.cc:35
Contractor::Kind kind() const
Returns its kind.
Definition: contractor_cell.cc:27
void set_include_forall()
Sets include_forall true.
Definition: contractor_cell.cc:37
shared_ptr< ContractorSeq > to_seq(const Contractor &contractor)
Converts contractor to ContractorSeq.
Definition: contractor_cell.cc:63
shared_ptr< ContractorFixpoint > to_fixpoint(const Contractor &contractor)
Converts contractor to ContractorFixpoint.
Definition: contractor_cell.cc:76
shared_ptr< ContractorIbexPolytope > to_ibex_polytope(const Contractor &contractor)
Converts contractor to ContractorIbexPolytop.
Definition: contractor_cell.cc:71
virtual void Prune(ContractorStatus *cs) const =0
Performs pruning on cs.
shared_ptr< ContractorWorklistFixpoint > to_worklist_fixpoint(const Contractor &contractor)
Converts contractor to ContractorWorklistFixpoint.
Definition: contractor_cell.cc:80
Contractor status.
Definition: contractor_status.h:13
Definition: contractor.h:30
DynamicBitset & mutable_input()
Returns its input.
Definition: contractor_cell.cc:31