include "o-algebra.ma".
include "o-saturations.ma".
-record basic_topology: Type ≝
+record basic_topology: Type2 ≝
{ carrbt:> OA;
A: carrbt ⇒ carrbt;
J: carrbt ⇒ carrbt;
qed.
coercion hint.
-record continuous_relation (S,T: basic_topology) : Type ≝
+record continuous_relation (S,T: basic_topology) : Type2 ≝
{ cont_rel:> arrows2 OA S T;
(* reduces uses eq1, saturated uses eq!!! *)
reduced: ∀U. U = J ? U → cont_rel U = J ? (cont_rel U);
| apply refl1]]
qed.
-lemma hintx: ∀S,T. (S ⇒ T) → unary_morphism1 S T.
- intros; apply t;
-qed.
-coercion hintx.
-
definition BTop: category2.
constructor 1;
[ apply basic_topology
change in e1 with (b⎻* ∘ A o2 = b'⎻* ∘ A o2);
apply (.= e‡#);
intro x;
- change with (eq1 o3 (b⎻* (a'⎻* (A o1 x))) (b'⎻*(a'⎻* (A o1 x))));
- lapply (saturated o1 o2 a' (A o1 x):?) as X;
- [ apply ((saturation_idempotent ?? (A_is_saturation o1) x)^-1) ]
- change in X with (eq1 ? (a'⎻* (A o1 x)) (A o2 (a'⎻* (A o1 x))));
+ change with (b⎻* (a'⎻* (A o1 x)) = b'⎻*(a'⎻* (A o1 x)));
alias symbol "trans" = "trans1".
alias symbol "prop1" = "prop11".
- apply (.= †X);
- whd in e1;
- lapply (e1 (a'⎻* (A o1 x))) as X1;
- change in X1 with (eq1 (oa_P (carrbt o3)) (b⎻* (A o2 (a'⎻* (A o1 x)))) (b'⎻* (A o2 (a' \sup ⎻* (A o1 x)))));
- apply (.= X1);
alias symbol "invert" = "setoid1 symmetry".
- apply (†(X\sup -1));]
+ lapply (.= †(saturated o1 o2 a' (A o1 x) : ?));
+ [3: apply (b⎻* ); | 5: apply Hletin; |1,2: skip;
+ |apply ((saturation_idempotent ?? (A_is_saturation o1) x)^-1); ]
+ change in e1 with (∀x.b⎻* (A o2 x) = b'⎻* (A o2 x));
+ apply (.= (e1 (a'⎻* (A o1 x))));
+ alias symbol "invert" = "setoid1 symmetry".
+ lapply (†((saturated ?? a' (A o1 x) : ?) ^ -1));
+ [2: apply (b'⎻* ); |4: apply Hletin; | skip;
+ |apply ((saturation_idempotent ?? (A_is_saturation o1) x)^-1);]]
| intros; simplify;
change with (((a34⎻* ∘ a23⎻* ) ∘ a12⎻* ) ∘ A o1 = ((a34⎻* ∘ (a23⎻* ∘ a12⎻* )) ∘ A o1));
- apply rule (#‡ASSOC1\sup -1);
+ apply rule (#‡ASSOC ^ -1);
| intros; simplify;
change with ((a⎻* ∘ (id2 ? o1)⎻* ) ∘ A o1 = a⎻* ∘ A o1);
apply (#‡(id_neutral_right2 : ?));
apply (#‡(id_neutral_left2 : ?));]
qed.
+definition btop_carr: BTop → Type1 ≝ λo:BTop. carr1 (oa_P (carrbt o)).
+coercion btop_carr.
+
(*
(*CSC: unused! *)
(* this proof is more logic-oriented than set/lattice oriented *)
[2,4: intros; apply saturation_monotone; try (apply A_is_saturation); apply Hcut;]
apply Hcut2; assumption.
qed.
-*)
\ No newline at end of file
+*)