I just ran into what looks like a simple bug. The following code causes Cadabra (and Python) to crash.
foo = Ex(0)
bah = Ex(0)
foobah := @(foo) - @(bah).
The error reported by Cadabra was
Assertion failed: (tr.numberofchildren(it)>0), function cleanup_sub,
file /Users/leo/Cadabra/v2.0/core/PreClean.cc, line 141.
This only occurs when using
Ex(0) for both
bah. Very interesting.