namespace http://mathhub.info/MitM/core/topology 
import base http://mathhub.info/MitM/Foundation 
import sets http://mathhub.info/MitM/core/typedsets 

theory neighborhoodSystem : base:?Logic =
    include sets:?filter 

    universe : type  # X 
    nhsys : X ⟶ powerset (set X)  # N 
    axiom_filter : ⊦ ∀ [x] isFilter (N x) // maybe better use a predicate subtype for N? ❙
    axiom_nhsys1 :  ⊦ ∀ [x] ∀ [U] U ∈ (N x) ⇒ x ∈ U 
    axiom_nhsys2 : ⊦ ∀ [x] ∀ [U] U ∈ (N x) ⇒ ∃ [V] (N x) ∧ ∀ [y] y ∈ V ⇒ U ∈ (N y) 
    isOpen : (set X) ⟶ bool  = [S]  ∀ [x] x ∈ S ⇒ ∃ [U] U ∈ (N x) ∧ U ⊑ S


// view topologyFromNHsystem: ?topology_theory -> ?neighborhoodSystem =
//   universe := universe ❙
//   topology := isOpen ❙