ここのコードを使用して Maxima で Dirac Bra-Ket 表記を使用しようとしていますhttp://raoul.koalatux.ch/sites/ladderoperator/ladder_operator.html
declare(bra, nonscalar);
declare(ket, nonscalar);
dotscrules:true;
matchdeclare(m,lambda([t],featurep(t,integer)));
matchdeclare(n,lambda([t],featurep(t,integer)));
tellsimp(bra(m).ket(n), kron_delta(m,n));
ほとんどの式で機能します:
bra(0) . ket(0);
ket(1) . bra(0) . ket(0);
bra(1) . ket(1) . bra(0) . ket(0);
すべて正しく単純化しますが、
bra(1) . ket(1) . bra(0);
bra(0) への単純化に失敗します。Maxima にこのケースを単純化させるにはどうすればよいでしょうか?