Here a few minimalistic coding rules for the cprover source tree:

a) 2 spaces indent, no tabs
b) no "using namespace std;"
c) Avoid new/delete, use containers instead.
d) Avoid unnecessary #includes, especially in header files
e) No lines wider than 80 chars
f) Put matching { } into the same column
g) If a method is bigger than a page, break it into parts
h) Avoid destructive updates if possible. The irept has
   constant time copy.

Architecture-specific code:

a) Avoid if possible.
b) Use __LINUX__, __MACH__, and _WIN32 to distinguish the architectures.
c) Don't include architecture-specific header files without #ifdef ...
