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