]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/static_2/relocation/lifts_bind.ma
update in ground_2, static_2, basic_2
[helm.git] / matita / matita / contribs / lambdadelta / static_2 / relocation / lifts_bind.ma
index ec97e7a1beb07707c24f83f0fda6c63b336374eb..925baceae8a68d329f2c9a5cf83d199800056a3b 100644 (file)
@@ -20,26 +20,30 @@ include "static_2/relocation/lifts.ma".
 definition liftsb: rtmap → relation bind ≝
            λf. ext2 (lifts f).
 
-interpretation "uniform relocation (binder for local environments)"
-   'RLiftStar i I1 I2 = (liftsb (uni i) I1 I2).
-
 interpretation "generic relocation (binder for local environments)"
    'RLiftStar f I1 I2 = (liftsb f I1 I2).
 
+interpretation "uniform relocation (binder for local environments)"
+   'RLift i I1 I2 = (liftsb (uni i) I1 I2).
+
 (* Basic_inversion lemmas **************************************************)
 
-lemma liftsb_inv_unit_sn: ∀f,I,Z2. ⇧*[f] BUnit I ≘ Z2 → Z2 = BUnit I.
+lemma liftsb_inv_unit_sn (f):
+      ∀I,Z2. ⇧*[f] BUnit I ≘ Z2 → Z2 = BUnit I.
 /2 width=2 by ext2_inv_unit_sn/ qed-.
 
-lemma liftsb_inv_pair_sn: ∀f:rtmap. ∀Z2,I,V1. ⇧*[f] BPair I V1 ≘ Z2 →
-                          ∃∃V2. ⇧*[f] V1 ≘ V2 & Z2 = BPair I V2.
+lemma liftsb_inv_pair_sn (f):
+      ∀Z2,I,V1. ⇧*[f] BPair I V1 ≘ Z2 →
+      ∃∃V2. ⇧*[f] V1 ≘ V2 & Z2 = BPair I V2.
 /2 width=1 by ext2_inv_pair_sn/ qed-.
 
-lemma liftsb_inv_unit_dx: ∀f,I,Z1. ⇧*[f] Z1 ≘ BUnit I → Z1 = BUnit I.
+lemma liftsb_inv_unit_dx (f):
+      ∀I,Z1. ⇧*[f] Z1 ≘ BUnit I → Z1 = BUnit I.
 /2 width=2 by ext2_inv_unit_dx/ qed-.
 
-lemma liftsb_inv_pair_dx: ∀f:rtmap. ∀Z1,I,V2. ⇧*[f] Z1 ≘ BPair I V2 →
-                          ∃∃V1. ⇧*[f] V1 ≘ V2 & Z1 = BPair I V1.
+lemma liftsb_inv_pair_dx (f):
+      ∀Z1,I,V2. ⇧*[f] Z1 ≘ BPair I V2 →
+      ∃∃V1. ⇧*[f] V1 ≘ V2 & Z1 = BPair I V1.
 /2 width=1 by ext2_inv_pair_dx/ qed-.
 
 (* Basic properties *********************************************************)
@@ -48,7 +52,7 @@ lemma liftsb_eq_repl_back: ∀I1,I2. eq_repl_back … (λf. ⇧*[f] I1 ≘ I2).
 #I1 #I2 #f1 * -I1 -I2 /3 width=3 by lifts_eq_repl_back, ext2_pair/
 qed-.
 
-lemma liftsb_refl: ∀f. 𝐈❪f❫ → reflexive … (liftsb f).
+lemma liftsb_refl (f):  𝐈❪f❫ → reflexive … (liftsb f).
 /3 width=1 by lifts_refl, ext2_refl/ qed.
 
 lemma liftsb_total: ∀I1,f. ∃I2. ⇧*[f] I1 ≘ I2.
@@ -56,9 +60,9 @@ lemma liftsb_total: ∀I1,f. ∃I2. ⇧*[f] I1 ≘ I2.
 /3 width=2 by ext2_unit, ext2_pair, ex_intro/
 qed-.
 
-lemma liftsb_split_trans: ∀f,I1,I2. ⇧*[f] I1 ≘ I2 →
-                          ∀f1,f2. f2 ⊚ f1 ≘ f →
-                          ∃∃I. ⇧*[f1] I1 ≘ I & ⇧*[f2] I ≘ I2.
+lemma liftsb_split_trans (f):
+      ∀I1,I2. ⇧*[f] I1 ≘ I2 → ∀f1,f2. f2 ⊚ f1 ≘ f →
+      ∃∃I. ⇧*[f1] I1 ≘ I & ⇧*[f2] I ≘ I2.
 #f #I1 #I2 * -I1 -I2 /2 width=3 by ext2_unit, ex2_intro/
 #I #V1 #V2 #HV12 #f1 #f2 #Hf elim (lifts_split_trans … HV12 … Hf) -f
 /3 width=3 by ext2_pair, ex2_intro/
@@ -66,6 +70,7 @@ qed-.
 
 (* Basic forward lemmas *****************************************************)
 
-lemma liftsb_fwd_isid: ∀f,I1,I2. ⇧*[f] I1 ≘ I2 → 𝐈❪f❫ → I1 = I2.
+lemma liftsb_fwd_isid (f):
+      ∀I1,I2. ⇧*[f] I1 ≘ I2 → 𝐈❪f❫ → I1 = I2.
 #f #I1 #I2 * -I1 -I2 /3 width=3 by lifts_fwd_isid, eq_f2/
 qed-.