include "o-algebra.ma".
include "o-saturations.ma".
-record basic_topology: Type ≝
+record basic_topology: Type2 ≝
{ carrbt:> OA;
A: carrbt ⇒ carrbt;
J: carrbt ⇒ carrbt;
- A_is_saturation: is_saturation ? A;
- J_is_reduction: is_reduction ? J;
+ A_is_saturation: is_o_saturation ? A;
+ J_is_reduction: is_o_reduction ? J;
compatibility: ∀U,V. (A U >< J V) = (U >< J V)
}.
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);
qed.
*)
-axiom daemon: False.
definition continuous_relation_comp:
∀o1,o2,o3.
continuous_relation_setoid o1 o2 →
| 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 with (b⎻* (a'⎻* (A o1 x)) = b'⎻*(a'⎻* (A o1 x)));
alias symbol "trans" = "trans1".
alias symbol "prop1" = "prop11".
- apply (.= †(saturated o1 o2 a' (A o1 x) : ?));
- [ apply ((saturation_idempotent ?? (A_is_saturation o1) x)^-1); ]
+ alias symbol "invert" = "setoid1 symmetry".
+ lapply (.= †(saturated o1 o2 a' (A o1 x) : ?));
+ [3: apply (b⎻* ); | 5: apply Hletin; |1,2: skip;
+ |apply ((o_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".
- apply (†((saturated ?? a' (A o1 x) : ?) ^ -1));
- apply ((saturation_idempotent ?? (A_is_saturation o1) x)^-1);]
+ lapply (†((saturated ?? a' (A o1 x) : ?) ^ -1));
+ [2: apply (b'⎻* ); |4: apply Hletin; | skip;
+ |apply ((o_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
+*)