12 #ifndef CPROVER_GOTO_SYMEX_MEMORY_MODEL_SC_H
13 #define CPROVER_GOTO_SYMEX_MEMORY_MODEL_SC_H
Base class for all expressions.
std::map< unsigned, event_listt > per_thread_mapt
memory_model_sct(const namespacet &_ns)
virtual void operator()(symex_target_equationt &equation, message_handlert &)
void build_per_thread_map(const symex_target_equationt &equation, per_thread_mapt &dest) const
void from_read(symex_target_equationt &equation)
virtual bool program_order_is_relaxed(partial_order_concurrencyt::event_it e1, partial_order_concurrencyt::event_it e2) const
void program_order(symex_target_equationt &equation)
void thread_spawn(symex_target_equationt &equation, const per_thread_mapt &per_thread_map)
void write_serialization_external(symex_target_equationt &equation)
virtual exprt before(event_it e1, event_it e2)
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
eventst::const_iterator event_it
Inheriting the interface of symex_targett this class represents the SSA form of the input program as ...
Memory models for partial order concurrency.