I am trying to write "No one person is a ruler" in 1st order logic. So far my thinking is as follows: "No one person is a ruler" is equivalent to "No one is a ruler or exactly one person is a ruler"
"No one is a ruler: $$ \forall p.[Person(p) \Rightarrow \neg Ruler(p)] $$
In an empty universe this statement is vacuously true.
"exactly one person is a ruler"
$$ \exists p.[Person(p) \wedge Ruler(p) \ \wedge $$ $$ \forall q.[Person(q) \wedge p \neq q \Rightarrow \neg Ruler(q)]] $$
In an empty universe Person(p) and Ruler(p) are false which makes the first half of the statement false. The implication half is vacuously true. Thus I get that in an empty universe, "exactly one person is a ruler" is false.
Overall, since i had broken the initial statement into two, bringing them back together I have True or False which makes the overall statement "No one person is a ruler" true in an empty universe. Is my reasoning correct?
Finally, is my solution to "No one person is a ruler" correct? $$ \forall p.[Person(p) \Rightarrow \neg Ruler(p)] \vee$$ $$ \exists p.[Person(p) \wedge Ruler(p) \ \wedge $$ $$ \forall q.[Person(q) \wedge p \neq q \Rightarrow \neg Ruler(q)]] $$
Standard first-order-logic can't have empty universes by definition. What it can have is an empty set of persons.
Since "(exactly) one" means "at least one and no more than one", "no one" should turn out true if either 1) there is no element satisfying the description or 2) more than one. So in a universe with no persons, the sentence should come out as true.
Your reasoning about the truth conditions of $∃p.[Person(p)∧Ruler(p) ∧ ∀q.[Person(q)∧p≠q⇒¬Ruler(q)]]$ in this case is correct; the formula evaluates to false.
I'm not sure how you arrive at $∀p.[Person(p)⇒¬Ruler(p)]$ though. Since your existential formula reads "One person is a ruler", all you need to do is negate this statement: $$\neg ∃p.[Person(p)∧Ruler(p) ∧ ∀q.[Person(q)∧p≠q⇒¬Ruler(q)]]$$ Since the existential statement was false, the negated statement will turn out as true in a model where the set of persons is empty, as desired.