(def-theorem left-group-equation 
    "forall(a,b:gg, 
          forsome(x:gg, x mul a = b and forall(y:gg, y mul a = b implies x = y)))"
    (theory groups)
    (usages transportable-macete)
    (proof
      (
        direct-inference
        (instantiate-existential ("b mul inv(a)"))
        simplify
        (force-substitution "b" "y_$0 mul a" (0))
        (weaken (0))
        simplify
        )))


(def-theorem right-group-equation 
    left-group-equation
    (theory groups)
    (usages transportable-macete)
    (translation mul-reverse)
    (proof existing-theorem))


(def-theorem left-mul-macete 
    action-macete
    (theory groups)
    (usages transportable-macete)
    (translation act->left-mul)
    (proof existing-theorem))


(def-theorem right-mul-macete 
    action-macete
    (theory groups)
    (usages transportable-macete)
    (translation act->right-mul)
    (proof existing-theorem))