definition o_basic_pair_of_basic_pair: basic_pair → Obasic_pair.
intro b;
constructor 1;
- [ apply (map_objs2 ?? SUBSETS' (concr b));
- | apply (map_objs2 ?? SUBSETS' (form b));
- | apply (map_arrows2 ?? SUBSETS' (concr b) (form b) (rel b)); ]
+ [ apply (map_objs2 ?? POW (concr b));
+ | apply (map_objs2 ?? POW (form b));
+ | apply (map_arrows2 ?? POW (concr b) (form b) (rel b)); ]
qed.
definition o_relation_pair_of_relation_pair:
Orelation_pair (o_basic_pair_of_basic_pair BP1) (o_basic_pair_of_basic_pair BP2).
intros;
constructor 1;
- [ apply (map_arrows2 ?? SUBSETS' (concr BP1) (concr BP2) (r \sub \c));
- | apply (map_arrows2 ?? SUBSETS' (form BP1) (form BP2) (r \sub \f));
- | apply (.= (respects_comp2 ?? SUBSETS' (concr BP1) (concr BP2) (form BP2) r\sub\c (⊩\sub BP2) )^-1);
- cut (⊩ \sub BP2∘r \sub \c = r\sub\f ∘ ⊩ \sub BP1) as H;
+ [ apply (map_arrows2 ?? POW (concr BP1) (concr BP2) (r \sub \c));
+ | apply (map_arrows2 ?? POW (form BP1) (form BP2) (r \sub \f));
+ | apply (.= (respects_comp2 ?? POW (concr BP1) (concr BP2) (form BP2) r\sub\c (⊩\sub BP2) )^-1);
+ cut ( ⊩ \sub BP2 ∘ r \sub \c =_12 r\sub\f ∘ ⊩ \sub BP1) as H;
[ apply (.= †H);
- apply (respects_comp2 ?? SUBSETS' (concr BP1) (form BP1) (form BP2) (⊩\sub BP1) r\sub\f);
+ apply (respects_comp2 ?? POW (concr BP1) (form BP1) (form BP2) (⊩\sub BP1) r\sub\f);
| apply commute;]]
qed.
| change in match or_f_star_ with (λq,w,x.fun12 ?? (or_f_star q w) x);]
simplify;
apply (prop12);
- apply (.= (respects_comp2 ?? SUBSETS' (concr S) (concr T) (form T) (a\sub\c) (⊩\sub T))^-1);
+ apply (.= (respects_comp2 ?? POW (concr S) (concr T) (form T) (a\sub\c) (⊩\sub T))^-1);
apply sym2;
- apply (.= (respects_comp2 ?? SUBSETS' (concr S) (concr T) (form T) (b\sub\c) (⊩\sub T))^-1);
+ apply (.= (respects_comp2 ?? POW (concr S) (concr T) (form T) (b\sub\c) (⊩\sub T))^-1);
apply sym2;
apply prop12;
apply Eab;
simplify;
apply prop12;
apply prop22;[2,4,6,8: apply rule #;]
- apply (respects_id2 ?? SUBSETS' (concr o));
+ apply (respects_id2 ?? POW (concr o));
| simplify; intros; whd; split;
[ change in match or_f_minus_star_ with (λq,w,x.fun12 ?? (or_f_minus_star q w) x);
| change in match or_f_minus_ with (λq,w,x.fun12 ?? (or_f_minus q w) x);
simplify;
apply prop12;
apply prop22;[2,4,6,8: apply rule #;]
- apply (respects_comp2 ?? SUBSETS' (concr o1) (concr o2) (concr o3) f1\sub\c f2\sub\c);]
+ apply (respects_comp2 ?? POW (concr o1) (concr o2) (concr o3) f1\sub\c f2\sub\c);]
qed.
theorem BP_to_OBP_faithful:
∀S,T.∀f,g:arrows2 (category2_of_category1 BP) S T.
map_arrows2 ?? BP_to_OBP ?? f = map_arrows2 ?? BP_to_OBP ?? g → f=g.
intros; change with ( (⊩) ∘ f \sub \c = (⊩) ∘ g \sub \c);
- apply (SUBSETS_faithful);
- apply (.= respects_comp2 ?? SUBSETS' (concr S) (concr T) (form T) f \sub \c (⊩ \sub T));
+ apply (POW_faithful);
+ apply (.= respects_comp2 ?? POW (concr S) (concr T) (form T) f \sub \c (⊩ \sub T));
apply sym2;
- apply (.= respects_comp2 ?? SUBSETS' (concr S) (concr T) (form T) g \sub \c (⊩ \sub T));
+ apply (.= respects_comp2 ?? POW (concr S) (concr T) (form T) g \sub \c (⊩ \sub T));
apply sym2;
apply e;
qed.
theorem BP_to_OBP_full: ∀S,T.∀f. exT22 ? (λg. map_arrows2 ?? BP_to_OBP S T g = f).
intros;
- cases (SUBSETS_full (concr S) (concr T) (Oconcr_rel ?? f)) (gc Hgc);
- cases (SUBSETS_full (form S) (form T) (Oform_rel ?? f)) (gf Hgf);
+ cases (POW_full (concr S) (concr T) (Oconcr_rel ?? f)) (gc Hgc);
+ cases (POW_full (form S) (form T) (Oform_rel ?? f)) (gf Hgf);
exists[
constructor 1; [apply gc|apply gf]
- apply (SUBSETS_faithful);
- apply (let xxxx ≝SUBSETS' in .= respects_comp2 ?? SUBSETS' (concr S) (concr T) (form T) gc (rel T));
+ apply (POW_faithful);
+ apply (let xxxx ≝POW in .= respects_comp2 ?? POW (concr S) (concr T) (form T) gc (rel T));
apply rule (.= Hgc‡#);
apply (.= Ocommute ?? f);
apply (.= #‡Hgf^-1);
- apply (let xxxx ≝SUBSETS' in (respects_comp2 ?? SUBSETS' (concr S) (form S) (form T) (rel S) gf)^-1)]
+ apply (let xxxx ≝POW in (respects_comp2 ?? POW (concr S) (form S) (form T) (rel S) gf)^-1)]
split;
[ change in match or_f_minus_star_ with (λq,w,x.fun12 ?? (or_f_minus_star q w) x);
| change in match or_f_minus_ with (λq,w,x.fun12 ?? (or_f_minus q w) x);