(Edited several times from earlier partial answer, which gave $f(5) \ge 11$.)

We have exact results $f(5) = 11$ and $f(6)=16$, and bounds $16 \le f(7) \le 25$.

## 1. Proving $f(5)=11$

A short proof shows that $f(5) \ge 10$. To be 5-universal (*i.e.* contain isomorphic copies of all partial orders of 5 elements), our poset must contain a 5-chain. Also it must contain two incomparable 2-chains, only one of which could overlap the 5-chain. Also it must contain 5 incomparable elements (only two of which could be in the previous chains). So at least 5+2+1+1+1 = 10 elements. I believe this is essentially the kind of lower-bound argument that was mentioned in the earlier question. This "multiple chains" argument says nothing about branching structures in the 5-posets, so perhaps one could consider them and work out an improved lower bound.

A really brute-force SageMath code (see below) tries all 10-posets (about 2.6 million) in about 15 hours, and finds no 5-universal posets, so this proves $f(5) \ge 11$.

Although the code is pretty slow, luckily with 11-posets it finds a solution in just 22 hours, having tried 1.0% of all approx. 47 million 11-posets. The 11-poset with cover relation
[[0, 1], [0, 2], [1, 4], [1, 9], [2, 5], [2, 7], [2, 8],
[3, 4], [3, 5], [3, 6], [4, 7], [4, 8], [5, 10], [7, 10],
[8, 10], [9, 10]]
is 5-universal so we have $f(5) \le 11$.

```
# Find a u-poset that contains all n-posets as induced subposets.
def find_universal_poset(n,u):
PP = list(Posets(n))
for U in Posets(u):
ok = True
for P in PP:
if not U.has_isomorphic_subposet(P):
ok = False
break
if ok:
return U
return None
```

## 2. Proving $f(6)=16$

For $f(6)$ the SageMath code is too slow. We can do faster brute-force in two phases: (1) list the candidate posets using "posets.c" by Brinkmann & McKay, available in an old SageMath enhancement request, and (2) check them for 6-universality by C code corresponding to the SageMath code listed above.

The multiple-chains argument gives easily $f(6) \ge 14$, because a 6-universal poset must contain a 6-chain, two mutually incomparable 3-chains, three such 2-chains, and six incomparable elements; these can overlap but at least 6+3+2+1+1+1=14 elements are required.

I have ruled out $f(6)=14$ by exhaustive search over all $1.34 \times 10^{12}$ 14-posets (about 16 cpu-days of computation), and ruled out $f(6)=15$ similarly (about 1200 cpu-days). The result rests on heavy computation, so it would be nice to have a more succint lower bound proof, perhaps from a more elaborate version of the multiple-chains argument.

Exhaustive search over all 16-posets would take about 500 cpu-years, but some solutions were found after just 190 cpu-hours, that is, having done about 1/20000 of the search space. (There must be quite a lot of 6-universal 16-posets out there, to explain this luck.) One of the solutions has cover relation
[[2, 0], [2, 1], [3, 0], [3, 1], [4, 0], [4, 1], [5, 0], [5, 1], [6, 0], [7, 0], [8, 2], [8, 3], [8, 4], [8, 6], [8, 7], [9, 6], [9, 7], [10, 6], [11, 9], [11, 10], [12, 2], [12, 3], [12, 10], [13, 9], [13, 12], [14, 5], [14, 7], [14, 12], [15, 11], [15, 13], [15, 14]].
So we have $f(6) = 16$.

Another computational approach for upper bounds is to start from a known 6-universal poset, such as the Boolean lattice $B_6$ (= power set with inclusion relation), and *remove elements one by one*, if possible without breaking the universality. The idea of removing some unneeded elements is already implicit in the old question. This is potentially much faster than brute-force for finding positive examples -- if they exist! Not knowing any better, I removed elements in random order until impossible, and restarted 100 times. Already here I got **one 17-poset** and seventeen 18-posets. This 6-universal 17-poset has cover relation
[[0, 11], [0, 13], [0, 15], [1, 2], [1, 3], [1, 5], [2, 8], [2, 11], [3, 11], [3, 12], [4, 5], [4, 10], [5, 6], [5, 7], [6, 9], [6, 11], [6, 14], [7, 8], [7, 12], [8, 9], [8, 13], [9, 16], [10, 11], [10, 12], [10, 15], [11, 16], [12, 13], [12, 14], [13, 16], [14, 16], [15, 16]].

```
def is_universal_poset(n, U):
return all(U.has_isomorphic_subposet(P) for P in Posets(n))
def reduce_universal(n, P):
print(P)
if not is_universal_poset(n, P):
return None # Already nonuniversal
R = list(Permutations(P).random_element())
for r in R:
Pr = P.subposet(set(P).difference(set([r])))
if is_universal_poset(n, Pr):
return reduce_universal(n, Pr) # Try removing more
return P # Could not remove any element
```

## 3. Bounds for $f(7)$

Brute-force is pretty much out of question (AFAIK nobody has listed all nonisomorphic 17-posets). For some loose bounds:

The multiple-chains argument gives $f(7) \ge 16$, because you need one 7-chain, two 3-chains, three 2-chains and seven incomparable elements, 7+3+2+1+1+1+1=16.

Removing random elements from $B_7$, we find easily (in less than ten random restarts) an example of a 7-universal 25-poset, with cover relation
[[0, 7], [0, 8], [0, 14], [1, 2], [1, 5], [2,
6], [2, 11], [3, 4], [3, 5], [3, 8], [3, 14], [4, 7], [4, 18], [5, 6],
[5, 7], [5, 12], [6, 9], [6, 13], [6, 19], [7, 22], [7, 23], [8, 9],
[9, 15], [9, 23], [10, 11], [10, 12], [10, 14], [11, 13], [11, 15],
[11, 20], [12, 13], [12, 15], [12, 16], [12, 20], [13, 21], [14, 15],
[14, 16], [15, 22], [16, 24], [17, 18], [18, 19], [19, 20], [19, 23],
[20, 21], [20, 22], [21, 24], [22, 24], [23, 24]].
So we have $f(7) \le 25$. This might be improved by trying more random restarts, perhaps with faster C code. I'm not planning to do that now, but it should be straightforward.

10more comments