Forall and a terminology question

@brebs

My example used a list. But I don’t need a list (or numbers) per se.
Let me clarify further.

I asked

What terminology do we use to discuss L where
… it can be solved for any N
… it can be solved to satisfy all N simultaneously

Bold is to highlight the concept I’m interested in.

My other question was:

Given the above, (and the latter L = [A,B,C] )) what’s the idiomatic way to get L=[1,2,3] ?

My question (deliberately) was not “how do I get a list of numbers”.

I’m interested in the abstract notion of unifying a term to satisfy any valid constraint, vs all valid constraints simultaneously, with respect to some constraint.

I could have asked, given the above, AND the following:

name_key(surname).
name_key(forename).
name_key(middlename).

funny_word("Clown").
funny_word("Joker").

funny_name(FirstName, MiddleName, LastName, NameKey) :-
    (NameKey = surname, funny_word(LastName)); 
    (NameKey = forename, funny_word(FirstName));
    (NameKey = middlename, funny_word(MiddleName)).

What is the idiomatic “thing” that does:

solved_all(..., funny_name(FirstName, MiddleName, LastName, NameKey), ...)
solved_all(..., nth1(N,L,N), ...)

and gives me

FirstName="Clown" MiddleName="Clown" LastName="Clown"; 
FirstName="Clown" MiddleName="Clown" LastName="Joker"; 
... etc

and

[1,2,3].