If c is a dodecahedron, then a is a cube
Dodec(c) → Cube(a)
Large(a) ↔ Cube(a)
a is large if and only if it is a cube / or / a is large if and only if a is a cube
If a and b are dodecahedrons, then a is to the right of b
(Cube(a) ∧ Cube(b)) → RightOf(a, b)
RightOf(c,d) ↔ (RightOf(b,c) ∨ LeftOf(b,e))
c is to the right of d if and only if b is to the right of c or left of e
d is a cube if and only if c is either small or large
Cube(d) ↔ (Small(c) ∨ Large(c))
Dodec(a) → (Larger(b,d) ∧ Larger(b,e))
If a is a dodecahedron, then b is larger than both d and e
If b and c are large cubes, then either a is to the left of e or f is a dodecahedron.
(Cube(b) ∧ Large(b) ∧ Cube(c) ∧ Large(c)) → (LeftOf(a,e) ∨ Dodec(f))
¬Tet(a) → ¬FrontOf(a,d)
If a is not a tetrahedron, then it is not in front of d.