Lemma topologydirprod_neighborhood : ∏ (x : U × V) (P : U × V → hProp), topologydirprod x P → ∃ Q : U × V → hProp, topologydirprod x Q × (∏ y : U × V, Q y → topologydirprod y P). Proof. intros xy P. apply hinhfun. intros A'. exists (λ z, pr1 A' (pr1 z) ∧ pr1 (pr2 A') (pr2 z)). split. - apply hinhpr. exists (pr1 A'), (pr1 (pr2 A')). split. + exact (pr1 (pr2 (pr2 A'))). + split. * exact (pr1 (pr2 (pr2 (pr2 A')))). * intros x' y' Ax' Ay'. now split. - intros z Az. apply hinhpr. exists (pr1 A'), (pr1 (pr2 A')). repeat split. + exact (pr1 Az). + exact (pr2 (pr1 (pr2 (pr2 A')))). + exact (pr2 Az). + exact (pr2 (pr1 (pr2 (pr2 (pr2 A'))))). + exact (pr2 (pr2 (pr2 (pr2 A')))). 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 _ _).