reserve N for PT_net_Str, PTN for Petri_net, i for Nat;
reserve fs for FinSequence of places_and_trans_of PTN;
 reserve Dftn for With_directed_path Petri_net;
 reserve dct for directed_path_like FinSequence of places_and_trans_of Dftn;
reserve Dftn for With_directed_path Petri Petri_net,
  dct for directed_path_like FinSequence of places_and_trans_of Dftn;
reserve M0 for marking of PTN,
       t for transition of PTN,
       Q,Q1 for FinSequence of the carrier' of PTN;

theorem
  t is_firable_at M0 iff <*t*> is_firable_at M0
  proof
    hereby
      set M = <*Firing(<*t*>/.1, M0)*>;
A1:   M/.1 = Firing(<*t*>/.1, M0) by FINSEQ_4:16;
A2:   now
A3:     len <*t*> = 0 + 1 by FINSEQ_1:39;
        let i;
        assume i < len <*t*> & i > 0;
        hence <*t*>/.(i+1) is_firable_at M/.i &
        M/.(i+1) = Firing(<*t*>/.(i+1), M/.i) by A3,NAT_1:13;
      end;
      assume t is_firable_at M0; then
A4:   <*t*>/.1 is_firable_at M0 by FINSEQ_4:16;
      len <*t*> = 1 by FINSEQ_1:39
      .= len M by FINSEQ_1:39;
      hence <*t*> is_firable_at M0 by A4,A1,A2;
    end;
    assume <*t*> is_firable_at M0;
    hence t is_firable_at M0 by FINSEQ_4:16;
  end;
