A fighter is "anyone who punches somebody else".. How can I define a figher in first order logic?
Consider that I have the property predicates Fighter(x)(is a fighther), Punches(x,y) (x punches y).
I was thinking something like below:
all x exists y (Punches(x, y) -> Fighter(x)).
But I'm not sure if it fully captures what is written in the statement.
As a general piece of advice, there are a handful of good questions to ask yourself when translating a sentence into first-order logic.
I'll let $P(x, y)$ mean $x$ punches $y$ and let $F(x)$ mean $x$ is a fighter.
What you wrote, $ \forall x \forall y \mathop. P(x, y) \to F(x) $ is not quite right.
In prose, it is for all entities $x$ and $y$, if $x$ punches $y$, then $x$ is a fighter.
The quantifiers are correct, but this sentence would say that a person who punches only themself is a fighter.
We can remove this possibility by saying the following, which are equivalent.
$$ \forall x \forall y \mathop. (x \neq y \land P(x, y)) \to F(x) $$
$$ \forall x \mathop. (\exists y \mathop. P(x, y) \land x \neq y) \to F(x) $$
These both say anyone who punches someone who isn't themself is a fighter.
However, we are trying to represent a definition of a fighter. This means that fighters are precisely the entities that punch things that aren't themselves.
$$ \forall x \mathop. (\exists y \mathop. P(x, y) \land x \neq y) \leftrightarrow F(x) $$
This sentence, strictly speaking, is not a definition. A definition is a metalinguistic thing that can't really be captured in first-order logic. However, this sentence is true in precisely the cases where the fighter predicate acts like it was defined this way (from the perspective of its truth conditions).