-definition d_liftable2_sn: predicate (lenv → relation term) ≝
- λR. ∀K,T1,T2. R K T1 T2 → ∀b,f,L. ⬇*[b, f] L ≡ K →
- ∀U1. ⬆*[f] T1 ≡ U1 →
- ∃∃U2. ⬆*[f] T2 ≡ U2 & R L U1 U2.
-
-definition d_deliftable2_sn: predicate (lenv → relation term) ≝
- λR. ∀L,U1,U2. R L U1 U2 → ∀b,f,K. ⬇*[b, f] L ≡ K →
- ∀T1. ⬆*[f] T1 ≡ U1 →
- ∃∃T2. ⬆*[f] T2 ≡ U2 & R K T1 T2.
-
-definition d_liftable2_bi: predicate (lenv → relation term) ≝
- λR. ∀K,T1,T2. R K T1 T2 → ∀b,f,L. ⬇*[b, f] L ≡ K →
- ∀U1. ⬆*[f] T1 ≡ U1 →
- ∀U2. ⬆*[f] T2 ≡ U2 → R L U1 U2.
-
-definition d_deliftable2_bi: predicate (lenv → relation term) ≝
- λR. ∀L,U1,U2. R L U1 U2 → ∀b,f,K. ⬇*[b, f] L ≡ K →
- ∀T1. ⬆*[f] T1 ≡ U1 →
- ∀T2. ⬆*[f] T2 ≡ U2 → R K T1 T2.
+definition d_deliftable1_isuni: predicate (relation2 lenv term) ≝
+ λR. ∀L,U. R L U → ∀b,f,K. ⬇*[b, f] L ≡ K → 𝐔⦃f⦄ →
+ ∀T. ⬆*[f] T ≡ U → R K T.
+
+definition d_liftable2_sn: ∀C:Type[0]. ∀S:rtmap → relation C.
+ predicate (lenv → relation C) ≝
+ λC,S,R. ∀K,T1,T2. R K T1 T2 → ∀b,f,L. ⬇*[b, f] L ≡ K →
+ ∀U1. S f T1 U1 →
+ ∃∃U2. S f T2 U2 & R L U1 U2.
+
+definition d_deliftable2_sn: ∀C:Type[0]. ∀S:rtmap → relation C.
+ predicate (lenv → relation C) ≝
+ λC,S,R. ∀L,U1,U2. R L U1 U2 → ∀b,f,K. ⬇*[b, f] L ≡ K →
+ ∀T1. S f T1 U1 →
+ ∃∃T2. S f T2 U2 & R K T1 T2.
+
+definition d_liftable2_bi: ∀C:Type[0]. ∀S:rtmap → relation C.
+ predicate (lenv → relation C) ≝
+ λC,S,R. ∀K,T1,T2. R K T1 T2 → ∀b,f,L. ⬇*[b, f] L ≡ K →
+ ∀U1. S f T1 U1 →
+ ∀U2. S f T2 U2 → R L U1 U2.
+
+definition d_deliftable2_bi: ∀C:Type[0]. ∀S:rtmap → relation C.
+ predicate (lenv → relation C) ≝
+ λC,S,R. ∀L,U1,U2. R L U1 U2 → ∀b,f,K. ⬇*[b, f] L ≡ K →
+ ∀T1. S f T1 U1 →
+ ∀T2. S f T2 U2 → R K T1 T2.