reserve i,j,k,l for Nat,
  x,x1,x2,y1,y2 for set;
reserve P,p,x,y,x1,x2 for set,
  m1,m2,m3,m4,m for marking of P,
  i,j,j1,j2,k,k1,k2,l,l1 for Nat;
reserve t,t1,t2 for transition of P;
reserve N for Petri_net of P;
reserve e, e1,e2 for Element of N;
reserve C,C1,C2,C3,fs,fs1,fs2 for firing-sequence of N;
reserve R, R1, R2, R3, P1, P2 for process of N;

theorem Th30:
  R before (R1 \/ R2) = (R before R1) \/ (R before R2)
proof
  thus R before (R1 \/ R2) c= (R before R1) \/ (R before R2)
  proof
    let x be object;
    assume x in R before (R1 \/ R2);
    then consider fs, fs1 such that
A1: x = fs^fs1 and
A2: fs in R and
A3: fs1 in R1 \/ R2;
    fs1 in R1 or fs1 in R2 by A3,XBOOLE_0:def 3;
    then x in {a^a1 where a,a1 is firing-sequence of N: a in R & a1 in R1} or
    x in {b^b2 where b,b2 is firing-sequence of N: b in R & b2 in R2} by A1,A2;
    hence thesis by XBOOLE_0:def 3;
  end;
  let x be object;
  assume
A4: x in (R before R1) \/ (R before R2);
  per cases by A4,XBOOLE_0:def 3;
  suppose x in R before R1;
    then consider fs, fs1 such that
A5: x = fs^fs1 and
A6: fs in R and
A7: fs1 in R1;
    fs1 in R1 \/ R2 by A7,XBOOLE_0:def 3;
    hence thesis by A5,A6;
  end;
  suppose x in R before R2;
    then consider fs, fs2 such that
A8: x = fs^fs2 and
A9: fs in R and
A10: fs2 in R2;
    fs2 in R1 \/ R2 by A10,XBOOLE_0:def 3;
    hence thesis by A8,A9;
  end;
end;
