]> matita.cs.unibo.it Git - helm.git/blob - matitaB/matita/contribs/LOGIC/NTrack/props.ma
milestone update in ground
[helm.git] / matitaB / matita / contribs / LOGIC / NTrack / props.ma
1 (**************************************************************************)
2 (*       ___                                                              *)
3 (*      ||M||                                                             *)
4 (*      ||A||       A project by Andrea Asperti                           *)
5 (*      ||T||                                                             *)
6 (*      ||I||       Developers:                                           *)
7 (*      ||T||         The HELM team.                                      *)
8 (*      ||A||         http://helm.cs.unibo.it                             *)
9 (*      \   /                                                             *)
10 (*       \ /        This file is distributed under the terms of the       *)
11 (*        v         GNU General Public License Version 2                  *)
12 (*                                                                        *)
13 (**************************************************************************)
14
15
16
17 include "Insert/props.ma".
18 include "Track/defs.ma".
19 include "NTrack/inv.ma".
20 (*
21 theorem ntrack_weak: \forall R,p,P,Q,S,i. 
22                      NTrack P p S \to Insert R i P Q \to 
23                      \exists q. NTrack Q q S.
24  intros 2; elim p; clear p;
25  [ lapply linear ntrack_inv_lref to H as H0; decompose;
26    lapply linear insert_trans to H, H1; decompose; autobatch
27  | lapply linear ntrack_inv_parx to H; destruct; autobatch
28  | lapply linear ntrack_inv_impw to H1; decompose; destruct;
29    lapply linear H to H4, H2; decompose; autobatch
30  | lapply linear ntrack_inv_impr to H1; decompose; destruct;
31    lapply linear H to H4, H2; decompose; autobatch
32  | lapply linear ntrack_inv_impi to H3; decompose; destruct;
33    lapply insert_conf to H4, H6; clear H6; decompose;
34    lapply H to H9, H4; clear H H9; lapply linear H1 to H8, H4;
35    lapply linear H2 to H7, H6; decompose; autobatch width = 4
36  | lapply linear ntrack_inv_scut to H2; decompose
37  ]
38 qed.
39
40 theorem ntrack_comp: \forall R,q,p,P,Q,S,i. 
41                      NTrack P p R \to NTrack Q q S \to Insert R i P Q \to
42                      \exists r. NTrack P r S.
43  intros 2; elim q; clear q;
44  [ lapply linear ntrack_inv_lref to H1 as H0; decompose;
45    lapply linear insert_conf_rev_full to H1,H2; decompose; destruct; autobatch
46  | lapply linear ntrack_inv_parx to H1; destruct; autobatch
47  | lapply linear ntrack_inv_impw to H2; decompose; destruct;
48    lapply linear H to H1, H5, H3; decompose; autobatch
49  | lapply linear ntrack_inv_impr to H2; decompose; destruct;
50    lapply linear H to H1, H5, H3; decompose; autobatch
51  | lapply linear ntrack_inv_impi to H4; decompose; destruct;
52    lapply insert_trans to H5, H7; clear H7; decompose;
53    lapply ntrack_weak to H3, H6; decompose;
54    lapply H to H3, H10, H5; clear H H10; lapply linear H1 to H3, H9, H5;
55    lapply linear H2 to H4, H8, H7; decompose; autobatch width = 4
56  | lapply linear ntrack_inv_scut to H3; decompose
57  ].
58 qed.
59
60 theorem ntrack_track: \forall R,p,P. NTrack P p R \to Track P p R.
61  intros; elim H names 0; clear H P p R; intros; autobatch width = 4.
62 qed.
63 *)