+ apply (.= #‡e);
+ apply refl1]
+qed.
+
+definition BPextS: ∀o: BP. Ω^(form o) ⇒_1 Ω^(concr o).
+ intros; constructor 1;
+ [ apply (minus_image ?? (rel o));
+ | intros; apply (#‡e); ]
+qed.
+
+definition fintersects: ∀o: BP. (form o) × (form o) ⇒_1 Ω^(form o).
+ intros (o); constructor 1;
+ [ apply (λa,b: form o.{c | BPext o c ⊆ BPext o a ∩ BPext o b });
+ intros; simplify; apply (.= (†e)‡#); apply refl1
+ | intros; split; simplify; intros;
+ [ apply (. #‡((†e^-1)‡(†e1^-1))); assumption
+ | apply (. #‡((†e)‡(†e1))); assumption]]
+qed.
+
+interpretation "fintersects" 'fintersects U V = (fun21 ??? (fintersects ?) U V).
+
+definition fintersectsS:
+ ∀o:BP. Ω^(form o) × Ω^(form o) ⇒_1 Ω^(form o).
+ intros (o); constructor 1;
+ [ apply (λo: basic_pair.λa,b: Ω^(form o).{c | BPext o c ⊆ BPextS o a ∩ BPextS o b });
+ intros; simplify; apply (.= (†e)‡#); apply refl1
+ | intros; split; simplify; intros;
+ [ apply (. #‡((†e^-1)‡(†e1^-1))); assumption
+ | apply (. #‡((†e)‡(†e1))); assumption]]
+qed.
+
+interpretation "fintersectsS" 'fintersects U V = (fun21 ??? (fintersectsS ?) U V).
+
+definition relS: ∀o: BP. (concr o) × Ω^(form o) ⇒_1 CPROP.
+ intros (o); constructor 1;
+ [ apply (λx:concr o.λS: Ω^(form o).∃y:form o.y ∈ S ∧ x ⊩⎽o y);
+ | intros; split; intros; cases e2; exists [1,3: apply w]
+ [ apply (. (#‡e1^-1)‡(e^-1‡#)); assumption
+ | apply (. (#‡e1)‡(e‡#)); assumption]]
+qed.
+
+interpretation "basic pair relation for subsets" 'Vdash2 x y c = (fun21 (concr ?) ?? (relS c) x y).
+interpretation "basic pair relation for subsets (non applied)" 'Vdash c = (fun21 ??? (relS c)).
+*)