Imagine there is a party with an infinite number of mathematicians at it, and I walk up to my friend with the following instructions:
"every 1 minute, find 1 person at the party who has not been told this message yet, and repeat this message to them"
It's clear that after $N$ minutes, provided these instructions are followed exactly, there will be $2^N$ people who have heard this message.
I will now describe an algorithm which can solve the boolean satisfiability in N variables in N minutes.
1 - find 2 people at the party, hand one of them a paper that says "True" and another a paper which says "False" and has a boolean expression on it
2 - tell them these instructions "in 1 minute, find 2 people at the party who have not been told this message yet, and repeat this message to them, give 1 of these people your paper but add True to the list, find a new piece of paper and copy over the list + expression from the paper I gave you, but add False to the list"
3 - after N minutes, whoever has a piece of paper in their hands has to compute the solution of the boolean expression (we are assuming since all the people at the party are mathematicians, they can all check this in less than 30 seconds) and if its solvable they have to shout out "ITS SOLVABLE EVERYONE"
Then given any boolean expression involving N variables, I can use this algorithm to solve the boolean satisfiability problem in N minutes and 30 seconds, giving an algorithmic efficiency of $O(N)$
QUESTION: Would it be wrong to claim the efficiency of this algorithm is in fact $O(N)$ and not $O(2^N)$?
(Note: I am experimenting with new ways to do exposition of algorithms for a pure math audience, this is my new word problem idea. Is this silly mathematicians at a party thing a good start for me to improve my exposition of algorithms and how they relate to pure mathematics and the theory of computation?)