These can be exhaustively enumerated using alg. To enumerate the number of non-isomorphic rings of orders $1,2,\ldots,8$, we enter:
./alg theories/ring.th --size 1-8 --count
which outputs:
# Theory ring
Constant 0.
Unary ~.
Binary + *.
Axiom plus_commutative: x + y = y + x.
Axiom plus_associative: (x + y) + z = x + (y + z).
Axiom zero_neutral_left: 0 + x = x.
Axiom zero_neutral_right: x + 0 = x.
Axiom negative_inverse: x + ~ x = 0.
Axiom negative_inverse: ~ x + x = 0.
Axiom zero_inverse: ~ 0 = 0.
Axiom inverse_involution: ~ (~ x) = x.
Axiom mult_associative: (x * y) * z = x * (y * z).
Axiom distrutivity_right: (x + y) * z = x * z + y * z.
Axiom distributivity_left: x * (y + z) = x * y + x * z.
size | count
-----|------
1 | 1
2 | 2
3 | 2
4 | 11
5 | 2
6 | 4
7 | 2
8 | 52
Check the numbers [2, 2, 11, 2, 4, 2, 52](http://oeis.org/search?q=2,2,11,2,4,2,52) on-line at oeis.org
If we want it to print out the addition and multiplication tables, we can remove --count from the command line:
./alg theories/ring.th --size 4
If we want to work with unital rings, we can use:
./alg theories/unital_ring.th --size 1-8 --count
which gives:
# Theory unital_ring
Theory unital_ring.
Constant 0 1.
Unary ~.
Binary + *.
Axiom plus_commutative: x + y = y + x.
Axiom plus_associative: (x + y) + z = x + (y + z).
Axiom zero_neutral_left: 0 + x = x.
Axiom negative_inverse: x + ~ x = 0.
Axiom mult_associative: (x * y) * z = x * (y * z).
Axiom one_unit_left: 1 * x = x.
Axiom one_unit_right: x * 1 = x.
Axiom distrutivity_right: (x + y) * z = x * z + y * z.
Axiom distributivity_left: x * (y + z) = x * y + x * z.
# Consequences of axioms that make alg run faster:
Axiom zero_neutral_right: x + 0 = x.
Axiom negative_inverse: ~ x + x = 0.
Axiom zero_inverse: ~ 0 = 0.
Axiom inverse_involution: ~ (~ x) = x.
Axiom mult_zero_left: 0 * x = 0.
Axiom mult_zero_right: x * 0 = 0.
size | count
-----|------
1 | 0
2 | 1
3 | 1
4 | 4
5 | 1
6 | 1
7 | 1
8 | 11
Check the numbers [1, 1, 4, 1, 1, 1, 11](http://oeis.org/search?q=1,1,4,1,1,1,11) on-line at oeis.org