What is the definition of a group entirely in first-order predicate logic? I've seen the definition of a group in many different books given as follows:
A group is a nonempty set $G$ and a binary operation $*$, denoted by $(G,*)$ that satisfies the following properties:


*

*For every $a$, $b$, and $c$ in $G$, $(a*b)*c=a*(b*c)$;

*There exists $e$ in $G$ such that for every $a$ in $G$, $a*e=a$;

*For every $a$ in $G$, there exists $b$ in $G$ such that $a*b=e$.


I would just like to clean this up and put it in predicate logic properly.  I have not seen this done in any book.  When I try to do this myself, I feel like I'm opening Pandora's box!  Here is how I have reasoned about this important definition:
Let $G$ be any nonempty set and form the set containing $G$ as the only element, $\{G\}$.  Now let $*$ be set of all functions from $G\times G$ to $G$, so $*=\{\text{all functions } G\times G\rightarrow G\}$.  Next, we take the Cartesian product of $\{G\} \times * = \{ (G,*_1), (G,*_2), (G,*_3),\dots\}$.  So, basically we have set of ordered pairs where each ordered pair consists of a set and a function.  It seems that we are interested in whether or not each ordered pair satisfies the above properties.  Actually, it seems that for a particular ordered pair $(G, *_n)$ to be a group, it would only be dependent upon how the function is defined.  Depending on the cardinality of $G$, there are many functions from $G\times G\rightarrow G$, and we know that not all of these would be groups, nevertheless, it seems that $(G,*)$ is group if $*$ satisfies the above properties.
So, I've tried to formulate the law of associativity using only ordered pairs.  Here is what I have come up with:
For every $a$, $b$, $c$, $x$, $y$, $z$ in $G$ ($*$ is associative iff [$((a,b),x)$ in $*$ and $((x,c),y)$ in $*$ iff
$((b,c),z)$ in $*$ and $((a,z),y)$ in $*$])
I know this looks ugly, but since $*$ is really just a set of ordered pairs where the first coordinate is also an ordered pair, I tried to translate
For every $a$, $b$, $c$ in $G$, $(a*b)*c=a*(b*c)$ strictly into a statement with ordered pairs.
Anyway, I'm not sure about this formulation.  For example, when we want to test if a relation $R$, on $S\times S$ is symmetric, we say for every $a$, $b$ in $S$, $R$ is symmetric iff $(a,b)$ in $R$ implies $(b,a)$ in R.  The difference is technically $*$ is a relation on $(G\times G)\times G$ and to test for associativity I said for every $a$, $b$, $c$, $x$, $y$, $z$ in $G$.  Can I do this since for symmetry, $R$ was a relation on $S\times S$  where the two sets are equal.  On $(G\times G)\times G$ the two sets are not equal, so I don't know if this is correct.
Besides the issue with associativity, I'm not sure how to formulate the last two rules of groups in predicate logic and also I think we should include something about closure, perhaps.
I just want to have one long statement in predicate logic that correctly gives the definition of a group incorporating everything in the English version given above.
Any help would be appreciated.  Thanks.
 A: The first order theory of group is described as follows: 
The language of group theory is $\mathfrak{L} = \{\cdot, e\}$, where $\cdot$ is a binary function symbol and $e$ is a constant symbol. 
The first-order theory $T$ of group theory consist of the following axioms : 
1) $(\forall x)(e \cdot x = x \cdot e = x)$
2) $(\forall x)(\forall y)(\forall z)(x \cdot (y \cdot z) = (x \cdot y) \cdot z)$
3) $(\forall x)(\exists y)(x \cdot y = e)$
A structure in the language $\mathfrak{L}$ is a tuple $(G, \cdot^G, e^G)$ where $G$ is a set, $\cdot^G$ is a function $G \times G \rightarrow G$ and $e^G \in G$. A structure in the language $\mathfrak{L}$ is a model of $T$, the Theory of Group Theory, if and only if $G$ satisfies all the axioms of $T$. A $\mathfrak{L}$-structure $(G, \cdot^G, e^G)$ that is a model of $T$ is called a group. 
A: I think that associativity can be formulated simply using "set-theoretic" notions thusly:
$Let\space f \in \ast \space and \space G \space be \space a \space set.$
$(G, f)\space is \space associative \space\space iff \space\space \forall a,b,c \in G; f(G \times G) - \{f(a,(b,c))\} = f(G \times G) - \{f((a,b),c)\} % $
$Where \space f(x,y) \space is \space  equivalent \space to \space an \space ordered \space pair \space  ((x,y),z) \in f.$ 
Which is equivalent to:
$Let \space f \in \ast \space and \space G \space be \space a \space set.$
$f\space is \space associative \space\space iff \space\space \forall a,b,c \in G; f(a,(b,c)) = f((a,b),c) % $
Or
$\forall a,b,c \in G; \space if \space \exists d,e \in G\space s.t. \space ((a,(b,c)),d) \in f \space and \space ((a,(b,c)),e) \in f \space then \space d = e. $
Your formulation strikes me as wrong because you specify that $\ast$ is a set of functions, i.e. its elements are sets of ordered pairs. Then you say $((a,b),x)\space in \ast$. But $((a,b),x)$ isn't in $\ast$, since that would imply that $\ast$ is a set of ordered pairs. I can't see how a set of ordered pairs (the elements of $\ast$) can be morphed into an ordered pair.
The other axioms can be formulated just as easily.
Forgive me if I'm saying something totally naive, or if I have miscontrued somehow what you want.
