notation > "hvbox({ ident i | term 19 p })" with precedence 90
for @{ 'subset (\lambda ${ident i}. $p)}.
+notation < "hvbox({ ident i ∈ s | term 19 p })" with precedence 90
+for @{ 'comprehension $s (\lambda ${ident i} : $nonexistent . $p)}.
+
+notation > "hvbox({ ident i ∈ s | term 19 p })" with precedence 90
+for @{ 'comprehension $s (\lambda ${ident i}. $p)}.
+
notation "hvbox(a break ∈ b)" non associative with precedence 45
for @{ 'mem $a $b }.
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+include "formal_topology/basic_pairs.ma".
+
+interpretation "REL carrier" 'card c = (carrier c).
+
+definition comprehension: ∀b:REL. (b → CProp) → Ω \sup |b| ≝
+ λb:REL.λP.{x | ∃p: x ∈ b. P (mk_ssigma ?? x p)}.
+
+interpretation "subset comprehension" 'comprehension s p =
+ (comprehension s p).
+
+definition ext: ∀o: basic_pair. (form o) → Ω \sup |(concr o)| ≝
+ λo,f.{x ∈ (concr o) | x ♮(rel o) f}.
+
+definition downarrow ≝
+ λo: basic_pair.λa,b: form o.
+ {c | ext ? c ⊆ ext ? a ∩ ext ? b }.
\ No newline at end of file
[ rewrite > H | rewrite < H2 ]
assumption
|*: exists; try assumption; split; first [ reflexivity | assumption ]]]
-qed.
\ No newline at end of file
+qed.
+
+definition elements: objs REL → Type ≝
+ λb:ΣA.Ω\sup A.ssigma (s_witness ?? b) (s_proof ?? b).
+
+coercion elements.
+
+definition carrier: objs REL → Type ≝
+ λb:ΣA.Ω\sup A.s_witness ?? b.
+
+interpretation "REL carrier" 'card c = (carrier c).
+
+definition subset: ∀b:objs REL. Ω \sup (carrier b) ≝
+ λb:ΣA.Ω\sup A.s_proof ?? b.
+
+coercion subset.