// Original CPU teaching model; not a device simulator or benchmark.
#include <iostream>
#include <stdexcept>

void require(bool ok) { if (!ok) throw std::runtime_error("model check failed"); }

int main() {
 enum class State {created,loaded,running,finished};
 State state=State::created;
 require(state!=State::loaded);
 const bool early_run=state==State::loaded;
 state=State::loaded; require(state==State::loaded);state=State::running;
 int result=4+5; require(state==State::running);state=State::finished;
 require(!early_run && state==State::finished && result==9);
 std::cout<<"early_run=blocked result="<<result<<'\n';
}

