% In this example, all of changable operations are
% changed to other symbols.  (Not all of them are
% used in the formulas below.)

% Note that multi-character special symbols must be quoted.

redeclare(true,                       TRUE    ).
redeclare(false,                      FALSE   ).
redeclare(negation,                   ~       ).
redeclare(disjunction,                OR      ).
redeclare(conjunction,                AND     ).
redeclare(implication,                IMPLIES ).
redeclare(backward_implication,       "<--"   ).
redeclare(equivalence,                IFF     ).
redeclare(universal_quantification,   ALL     ).
redeclare(existential_quantification, EXISTS  ).
redeclare(equality,                   "=="    ).
redeclare(negated_equality,           "=/="   ).
redeclare(attribute,                   @      ).

formulas(assumptions).

  (x * y) * z == z * (y * z)  @  label(associativity).

  EXISTS e ((ALL x (e * x == x)) AND
            (ALL x EXISTS y (y * x == e))) @ label(left_identity_inverse).

end_of_list.

formulas(goals).

  x * y == x * z IMPLIES y == z  @ label(right_cancellation).

end_of_list.


