+bool ModelAction::is_lock() const
+{
+ return type == ATOMIC_LOCK;
+}
+
+bool ModelAction::is_unlock() const
+{
+ return type == ATOMIC_UNLOCK;
+}
+
+bool ModelAction::is_trylock() const
+{
+ return type == ATOMIC_TRYLOCK;
+}
+
+bool ModelAction::is_success_lock() const
+{
+ return type == ATOMIC_LOCK || (type == ATOMIC_TRYLOCK && value == VALUE_TRYSUCCESS);
+}
+
+bool ModelAction::is_failed_trylock() const
+{
+ return (type == ATOMIC_TRYLOCK && value == VALUE_TRYFAILED);
+}
+
+bool ModelAction::is_read() const
+{
+ return type == ATOMIC_READ || type == ATOMIC_RMWR || type == ATOMIC_RMW;
+}
+
+bool ModelAction::is_write() const
+{
+ return type == ATOMIC_WRITE || type == ATOMIC_RMW || type == ATOMIC_INIT;
+}
+
+bool ModelAction::is_rmwr() const
+{
+ return type == ATOMIC_RMWR;
+}
+
+bool ModelAction::is_rmw() const
+{
+ return type == ATOMIC_RMW;
+}
+
+bool ModelAction::is_rmwc() const
+{
+ return type == ATOMIC_RMWC;
+}
+
+bool ModelAction::is_fence() const
+{
+ return type == ATOMIC_FENCE;
+}
+
+bool ModelAction::is_initialization() const
+{
+ return type == ATOMIC_INIT;
+}
+
+bool ModelAction::is_acquire() const