]> matita.cs.unibo.it Git - helm.git/blob - matita/contribs/LOGIC/Track/props.ma
fc57cf0062ae08cf0f9e1765d874a1c58d2e3340
[helm.git] / matita / contribs / LOGIC / Track / 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 set "baseuri" "cic:/matita/LOGIC/Track/props".
16
17 include "Insert/props.ma".
18 include "Track/inv.ma".
19
20 theorem track_weak: \forall R,p,P,Q,S,i. 
21                     Track P p S \to Insert R i P Q \to 
22                     \exists q. Track Q q S.
23  intros 2; elim p; clear p;
24  [ lapply linear track_inv_lref to H as H0; decompose;
25    lapply linear insert_trans to H, H1; decompose; autobatch
26  | lapply linear track_inv_parx to H; subst; autobatch
27  | lapply linear track_inv_impw to H1; decompose; subst;
28    lapply linear H to H4, H2; decompose; autobatch
29  | lapply linear track_inv_impr to H1; decompose; subst;
30    lapply linear H to H4, H2; decompose; autobatch
31  | lapply linear track_inv_impi to H3; decompose; subst;
32    lapply insert_conf to H4, H6; clear H6; decompose;
33    lapply H to H9, H4; clear H H9; lapply linear H1 to H8, H4;
34    lapply linear H2 to H7, H6; decompose; autobatch width = 4
35  | lapply linear track_inv_scut to H2; decompose
36  ]
37 qed.
38
39 theorem track_comp: \forall R,q,p,P,Q,S,i. 
40                     Track P p R \to Track Q q S \to Insert R i P Q \to
41                     \exists r. Track P r S.
42  intros 2; elim q; clear q;
43  [ lapply linear track_inv_lref to H1 as H0; decompose;
44    lapply linear insert_conf_rev_full to H1,H2; decompose; subst; autobatch
45  | lapply linear track_inv_parx to H1; subst; autobatch
46  | lapply linear track_inv_impw to H2; decompose; subst;
47    lapply linear H to H1, H5, H3; decompose; autobatch
48  | lapply linear track_inv_impr to H2; decompose; subst;
49    lapply linear H to H1, H5, H3; decompose; autobatch
50  | lapply linear track_inv_impi to H4; decompose; subst;
51    lapply insert_trans to H5, H7; clear H7; decompose;
52    lapply track_weak to H3, H6; decompose;
53    lapply H to H3, H10, H5; clear H H10; lapply linear H1 to H3, H9, H5;
54    lapply linear H2 to H4, H8, H7; decompose; autobatch width = 4
55  | lapply linear track_inv_scut to H3; decompose
56  ].
57 qed.