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_2/static/frees_lreq.ma".
16 include "basic_2/static/lfeq.ma".
18 (* EQUIVALENCE FOR LOCAL ENVIRONMENTS ON REFERRED ENTRIES *******************)
20 (* Inversion lemmas with ranged equivalence for local environments **********)
22 lemma lfeq_inv_lreq: ∀L1,L2,T. L1 ≡[T] L2 → ∃∃f. L1 ⊢ 𝐅*⦃T⦄ ≡ f & L1 ≡[f] L2.
23 #L1 #L2 #T * /2 width=3 by ex2_intro/
26 (* Properties with ranged equivalence for local environments ****************)
28 lemma lreq_lfeq: ∀f,L1,L2,T. L1 ⊢ 𝐅*⦃T⦄ ≡ f → L1 ≡[f] L2 → L1 ≡[T] L2.
29 /2 width=3 by ex2_intro/ qed.
31 (* Advanced properties ******************************************************)
33 lemma lfeq_sym: ∀T. symmetric … (lfeq T).
34 #T #L1 #L2 #H elim (lfeq_inv_lreq … H) -H
35 /3 width=3 by lreq_lfeq, frees_lreq_conf, lreq_sym/