public final synchronized void sysend() {
    boolean sysbegin = false;
    boolean sysend = false;
    boolean open = false;
    boolean write = false;
    boolean close = false;
    sysend = true;

    beta[0] = open || !close && beta[0];
    beta[1] = sysbegin || !open && beta[1];
    alpha[0] = alpha[0] || sysend && !beta[1] && beta[0];
    condition = !alpha[0];
    MOP_violation = !condition;
    Person[] persons = null;
    persons = (Person[]) stack.peek();
    stack.pop(1);
  }
  public final synchronized void sysbegin() {
    boolean sysbegin = false;
    boolean sysend = false;
    boolean open = false;
    boolean write = false;
    boolean close = false;
    sysbegin = true;

    Person[] persons = new Person[2];
    stack.push(persons);
    boolean[] temp_beta = new boolean[2];
    for (int i = 0; i < 2; i++) {
      temp_beta[i] = beta[i];
    }
    beta = temp_beta;
    beta[0] = open || !close && beta[0];
    beta[1] = sysbegin || !open && beta[1];
    alpha[0] = alpha[0] || sysend && !beta[1] && beta[0];
    condition = !alpha[0];
    MOP_violation = !condition;
  }