include "basic_pairs.ma".
-(* full_subset e' una coercion che non mette piu' *)
+(* carr1 e' necessario perche' ci sega via la coercion per gli oggetti di REL!
+ (confondendola con la coercion per gli oggetti di SET *)
record concrete_space : Type1 ≝
{ bp:> BP;
- converges: ∀a: concr bp.∀U,V: form bp. a ⊩ U → a ⊩ V → a ⊩ (U ↓ V);
- all_covered: ∀x: concr bp. x ⊩ full_subset (form bp)
+ converges: ∀a: carr1 (concr bp).∀U,V: carr1 (form bp). a ⊩ U → a ⊩ V → a ⊩ (U ↓ V);
+ all_covered: ∀x: carr1 (concr bp). x ⊩ form bp
}.
-definition bp': concrete_space → basic_pair ≝ λc.bp c.
-coercion bp'.
-
-definition bp'': concrete_space → objs1 BP ≝ λc.bp c.
-coercion bp''.
-
record convergent_relation_pair (CS1,CS2: concrete_space) : Type1 ≝
{ rp:> arrows1 ? CS1 CS2;
respects_converges:
minus_image ?? rp\sub\c (BPextS CS2 (full_subset (form CS2))) = BPextS CS1 (full_subset (form CS1))
}.
(*
-definition rp' : ∀CS1,CS2. convergent_relation_pair CS1 CS2 → relation_pair CS1 CS2 ≝
- λCS1,CS2,c. rp CS1 CS2 c.
-
-coercion rp'.
-
definition convergent_relation_space_setoid: concrete_space → concrete_space → setoid1.
intros;
constructor 1;
| intros 3; apply trans1]]
qed.
-definition rp'': ∀CS1,CS2.convergent_relation_space_setoid CS1 CS2 → arrows1 BP CS1 CS2 ≝
- λCS1,CS2,c.rp ?? c.
-
-coercion rp''.
-
definition convergent_relation_space_composition:
∀o1,o2,o3: concrete_space.
binary_morphism1