Module docstring
{"# Proper maps between topological spaces
This file develops the basic theory of proper maps between topological spaces. A map f : X → Y
between two topological spaces is said to be proper if it is continuous and satisfies
the following equivalent conditions:
1. f is closed and has compact fibers.
2. f is universally closed, in the sense that for any topological space Z, the map
  Prod.map f id : X × Z → Y × Z is closed.
3. For any ℱ : Filter X, all cluster points of map f ℱ are images by f of some cluster point
  of ℱ.
We take 3 as the definition in IsProperMap, and we show the equivalence with 1, 2, and some
other variations.
Main statements
isProperMap_iff_ultrafilter: characterization of proper maps in terms of limits of ultrafilters instead of cluster points of filters.IsProperMap.pi_map: any product of proper maps is proper.isProperMap_iff_isClosedMap_and_compact_fibers: a map is proper if and only if it is continuous, closed, and has compact fibers
Implementation notes
In algebraic geometry, it is common to also ask that proper maps are separated, in the sense of
Stacks: definition OCY1. We don't follow this
convention because it is unclear whether it would give the right notion in all cases, and in
particular for the theory of proper group actions. That means that our terminology does NOT
align with that of Stacks: Characterizing proper maps,
instead our definition of IsProperMap coincides with what they call \"Bourbaki-proper\".
Regarding the proofs, we don't really follow Bourbaki and go for more filter-heavy proofs,
as usual. In particular, their arguments rely heavily on restriction of closed maps (see
IsClosedMap.restrictPreimage), which makes them somehow annoying to formalize in type theory.
In contrast, the filter-based proofs work really well thanks to the existing API.
In fact, the filter proofs work so well that I thought this would be a great pedagogical resource about how we use filters. For that reason, all interesting proofs in this file are commented, so don't hesitate to have a look!
TODO
- prove the equivalence with condition 3 of Stacks: Theorem 005R. Note that they mean something different by \"universally closed\".
 
References
- [N. Bourbaki, General Topology][bourbaki1966]
 - Stacks: Characterizing proper maps "}