]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambdadelta/static_2/syntax/tueq_tueq.ma
milestone in basic_2 with additions in static_2
[helm.git] / matita / matita / contribs / lambdadelta / static_2 / syntax / tueq_tueq.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 include "static_2/syntax/tueq.ma".
16
17 (* TAIL SORT-IRRELEVANT EQUIVALENCE ON TERMS ********************************)
18
19 (* Main properties **********************************************************)
20
21 theorem tueq_trans: Transitive … tueq.
22 #T1 #T #H elim H -T1 -T
23 [ #s1 #s #X #H
24   elim (tueq_inv_sort1 … H) -s /2 width=1 by tueq_sort/
25 | #i1 #i #H //
26 | #l1 #l #H //
27 | #p #I #V #T1 #T #_ #IHT #X #H
28   elim (tueq_inv_bind1 … H) -H /3 width=1 by tueq_bind/
29 | #V #T1 #T #_ #IHT #X #H
30   elim (tueq_inv_appl1 … H) -H /3 width=1 by tueq_appl/
31 | #V1 #V #T1 #T #_ #_ #IHV #IHT #X #H
32   elim (tueq_inv_cast1 … H) -H /3 width=1 by tueq_cast/
33 ]
34 qed-.
35
36 theorem tueq_canc_sn: left_cancellable … tueq.
37 /3 width=3 by tueq_trans, tueq_sym/ qed-.
38
39 theorem tueq_canc_dx: right_cancellable … tueq.
40 /3 width=3 by tueq_trans, tueq_sym/ qed-.
41
42 theorem tueq_repl: ∀T1,T2. T1 ≅ T2 →
43                    ∀U1. T1 ≅ U1 → ∀U2. T2 ≅ U2 → U1 ≅ U2.
44 /3 width=3 by tueq_canc_sn, tueq_trans/ qed-.