Lemma topologydirprod_and : ∏ x : U × V, isfilter_and (topologydirprod x). Proof. intros z A B. apply hinhfun2. intros A' B'. exists (λ x, pr1 A' x ∧ pr1 B' x), (λ y, pr1 (pr2 A') y ∧ pr1 (pr2 B') y). repeat split. - apply (pr1 (pr1 (pr2 (pr2 A')))). - apply (pr1 (pr1 (pr2 (pr2 B')))). - apply isOpen_and. + apply (pr2 (pr1 (pr2 (pr2 A')))). + apply (pr2 (pr1 (pr2 (pr2 B')))). - apply (pr1 (pr1 (pr2 (pr2 (pr2 A'))))). - apply (pr1 (pr1 (pr2 (pr2 (pr2 B'))))). - apply isOpen_and. + apply (pr2 (pr1 (pr2 (pr2 (pr2 A'))))). + apply (pr2 (pr1 (pr2 (pr2 (pr2 B'))))). - apply (pr2 (pr2 (pr2 (pr2 A')))). + apply (pr1 X). + apply (pr1 X0). - apply (pr2 (pr2 (pr2 (pr2 B')))). + apply (pr2 X). + apply (pr2 X0). Qed.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.Algebra.Groups. Require Import UniMath.Algebra.DivisionRig. Require Import UniMath.Algebra.ConstructiveStructures. Section TopologyFromNeighborhood. End TopologyFromNeighborhood. Definition TopologyFromNeighborhood {X : hSet} Lemma TopologyFromNeighborhood_correct {X : hSet} N x P <-> neighborhood (T := TopologyFromNeighborhood N H) x P. simple refine (TopologyFromNeighborhood _ _). apply TopologyFromNeighborhood_correct. simple refine (TopologyFromNeighborhood _ _). apply TopologyFromNeighborhood_correct. simple refine (TopologyFromNeighborhood _ _).