include "NTrack/defs.ma".
(*
theorem ntrack_inv_lref: \forall Q,S,i. NTrack Q (lref i) S \to
\exists P. Insert S i P Q.
include "NTrack/defs.ma".
(*
theorem ntrack_inv_lref: \forall Q,S,i. NTrack Q (lref i) S \to
\exists P. Insert S i P Q.
qed.
theorem ntrack_inv_parx: \forall P,S,h. NTrack P (parx h) S \to
S = pair (posr h) (posr h).
qed.
theorem ntrack_inv_parx: \forall P,S,h. NTrack P (parx h) S \to
S = pair (posr h) (posr h).
qed.
theorem ntrack_inv_impw: \forall P,p,S. NTrack P (impw p) S \to
\exists B,a,b.
S = pair (impl a b) B \land
NTrack P p (pair lleaf B).
qed.
theorem ntrack_inv_impw: \forall P,p,S. NTrack P (impw p) S \to
\exists B,a,b.
S = pair (impl a b) B \land
NTrack P p (pair lleaf B).
qed.
theorem ntrack_inv_impr: \forall P,p,S. NTrack P (impr p) S \to
\exists a,b:Formula.
S = pair lleaf (impl a b) \land
NTrack P p (pair a b).
qed.
theorem ntrack_inv_impr: \forall P,p,S. NTrack P (impr p) S \to
\exists a,b:Formula.
S = pair lleaf (impl a b) \land
NTrack P p (pair a b).
qed.
theorem ntrack_inv_impi: \forall P,p,q,r,S. NTrack P (impi p q r) S \to
qed.
theorem ntrack_inv_impi: \forall P,p,q,r,S. NTrack P (impi p q r) S \to
qed.
theorem ntrack_inv_scut: \forall P,q,r,S. NTrack P (scut q r) S \to False.
qed.
theorem ntrack_inv_scut: \forall P,q,r,S. NTrack P (scut q r) S \to False.
qed.
theorem ntrack_inv_lleaf_impl:
\forall Q,p,a,b. NTrack Q p (pair lleaf (impl a b)) \to
(\exists P,i. p = lref i \land Insert (pair lleaf (impl a b)) i P Q) \lor
(\exists r. p = impr r \land NTrack Q r (pair a b)).
qed.
theorem ntrack_inv_lleaf_impl:
\forall Q,p,a,b. NTrack Q p (pair lleaf (impl a b)) \to
(\exists P,i. p = lref i \land Insert (pair lleaf (impl a b)) i P Q) \lor
(\exists r. p = impr r \land NTrack Q r (pair a b)).