According to [this source](https://math.mit.edu/%7Epoonen/papers/sampler.pdf) (p. 10), determining whether a simplicial complex is a simplicial sphere (the *sphere recognition problem*) is undecidable.


According to [this source](https://www2.mathematik.tu-darmstadt.de/%7Epfetsch/apropo/steinitz_problem.html), determining whether a lattice is the face lattice of a polytope (the *Steinitz problem*) is NP hard.


Given that the boundary of a simplicial polytope (encoded in the face lattice) is a simplicial sphere, which of the following is true:


1. the second source is technically correct, but massively understating.
2. the second source is actually assuming that the input lattice is already known to correspond to a simplicial sphere (as suggested by the phrasing of [this question](https://mathoverflow.net/questions/50100/whats-the-best-way-to-test-if-a-sphere-is-a-polytope-algorithms-for-the-simpl))
3. sphere recognition is semi-decidable, i.e. the algorithm for detecting polytopal lattices can be used to correctly identify non-spherical complexes, but might fail on spherical ones.
4. something special in the structure of polytopes makes it algorithmically possible to reject non-polytopal complexes that are still spheres (perhaps realizability of oriented matroids?)


Last option is that I am just misunderstanding something.



Determining whether a lattice is the face lattice of a polytope - NP hard or undecidable?
There's no contradiction:


1. I don't know the correct complexity, but I recall hearing several times that it is at least as hard as NP.
2. It is not difficult to show (using Tarski's algorithm, as indicated in the comments) that recognition of polytopal face lattices is decidable. Given a face lattice, you need to check whether each vertex can be assigned a real coordinate vector such that the appropriate subsets of the vertex sets are precisely those that support faces of the convex hull. This is easy to state in the language of ordered fields. You don't need to assume that the lattice is the face lattice of a sphere for this algorithm to work.
3. Sphere recognition is semi-decidable in the sense that there is a recognition algorithm that takes a simplicial complex, always halts if it is a sphere triangulation, and always returns the correct answer if it halts. It need not halt if the input is not a triangulated sphere.
This is because a simplicial complex is a triangulated sphere iff both the complex itself and each of the vertex links are simply connected homology spheres.
4. This is correct, see part 2.


