apply (.= (orelation_of_relation_preserves_equality ???? (commute ?? r)));
apply (orelation_of_relation_preserves_composition ?? (form BP2) (rel BP1) ?); ]
qed.
+
+(*
+definition BP_to_OBP: carr3 (arrows3 CAT2 (category2_of_category1 cic:/matita/formal_topology/basic_pairs/BP.con) BP).
+ constructor 1;
+ [ apply o_basic_pair_of_basic_pair;
+ | intros; constructor 1;
+ [ apply (o_relation_pair_of_relation_pair S T);
+ | intros; split; unfold o_relation_pair_of_relation_pair; simplify;
+ unfold o_basic_pair_of_basic_pair; simplify; ]
+ | simplify; intros; whd; split; unfold o_relation_pair_of_relation_pair; simplify;
+ unfold o_basic_pair_of_basic_pair;
+simplify in ⊢ (? ? ? (? % ? ?) ?);
+simplify in ⊢ (? ? ? (? ? % ?) ?);
+simplify in ⊢ (? ? ? ? (? % ? ?));
+simplify in ⊢ (? ? ? ? (? ? % ?));
+ | simplify; intros; whd; split;unfold o_relation_pair_of_relation_pair; simplify;
+ unfold o_basic_pair_of_basic_pair;simplify;
+*)
\ No newline at end of file
map_arrows2: ∀S,T. unary_morphism2 (arrows2 ? S T) (arrows2 ? (map_objs2 S) (map_objs2 T));
respects_id2: ∀o:C1. map_arrows2 ?? (id2 ? o) = id2 ? (map_objs2 o);
respects_comp2:
- ∀o1,o2,o3,o4.∀f1:arrows2 ? o1 o2.∀f2:arrows2 ? o2 o3.∀f3:arrows2 ? o3 o4.
- map_arrows2 ?? (f3 ∘ f2 ∘ f1) =
- map_arrows2 ?? f3 ∘ map_arrows2 ?? f2 ∘ map_arrows2 ?? f1}.
+ ∀o1,o2,o3.∀f1:arrows2 ? o1 o2.∀f2:arrows2 ? o2 o3.
+ map_arrows2 ?? (f2 ∘ f1) = map_arrows2 ?? f2 ∘ map_arrows2 ?? f1}.
definition functor2_setoid: category2 → category2 → setoid3.
intros (C1 C2);
[ apply (orelation_of_relation S T);
| intros; apply (orelation_of_relation_preserves_equality S T a a' e); ]
| apply orelation_of_relation_preserves_identity;
- | simplify; intros;
- apply (.= (orelation_of_relation_preserves_composition o1 o2 o4 f1 (f3∘f2)));
- apply (#‡(orelation_of_relation_preserves_composition o2 o3 o4 f2 f3)); ]
+ | apply orelation_of_relation_preserves_composition; ]
qed.
theorem SUBSETS_faithful: