Lemma neighborhood_and : ∏ (x : T) (A B : T → hProp), neighborhood x A → neighborhood x B → neighborhood x (λ y, A y ∧ B y). Proof. intros x A B. apply hinhfun2. intros Oa Ob. exists ((λ x, pr1 Oa x ∧ pr1 Ob x) ,, isOpen_and _ _ (pr2 (pr1 Oa)) (pr2 (pr1 Ob))). simpl. split. - split. + apply (pr1 (pr2 Oa)). + apply (pr1 (pr2 Ob)). - intros y Hy. split. + apply (pr2 (pr2 Oa)). apply (pr1 Hy). + apply (pr2 (pr2 Ob)). apply (pr2 Hy). 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 _ _).