1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 include "basic_2A/substitution/gget.ma".
17 (* GLOBAL ENVIRONMENT READING ***********************************************)
19 (* Main properties **********************************************************)
21 theorem gget_mono: ∀G,G1,m. ⬇[m] G ≡ G1 → ∀G2. ⬇[m] G ≡ G2 → G1 = G2.
22 #G #G1 #m #H elim H -G -G1
24 >(gget_inv_gt … H Hm) -H -Hm //
26 >(gget_inv_eq … H Hm) -H -Hm //
27 | #I #G #G1 #V #Hm #_ #IHG1 #G2 #H
28 lapply (gget_inv_lt … H Hm) -H -Hm /2 width=1 by/
32 lemma gget_dec: ∀G1,G2,m. Decidable (⬇[m] G1 ≡ G2).
34 elim (gget_total m G1) #G #HG1
35 elim (eq_genv_dec G G2) #HG2
36 [ destruct /2 width=1 by or_introl/
38 lapply (gget_mono … HG1 … HG12) -HG1 -HG12 /2 width=1 by/