Düzenleme: Bu şimdi SymPy'de
$ isympy
In [1]: A = MatrixSymbol('A', n, n)
In [2]: B = MatrixSymbol('B', n, n)
In [3]: context = Q.symmetric(A) & Q.positive_definite(A) & Q.orthogonal(B)
In [4]: ask(Q.symmetric(B*A*B.T) & Q.positive_definite(B*A*B.T), context)
Out[4]: True
Diğer işleri gösteren eski cevap
Yani bir süre bu konuya baktıktan sonra bulduğum şey bu.
Özel soruma şu anki cevabı "Hayır, bu soruyu cevaplayabilecek mevcut bir sistem yok." Ancak yakın gibi görünen birkaç şey var.
İlk olarak, Matt Knepley ve Lagerbaer , Diego Fabregat ve Paolo Bientinesi'nin çalışmalarına dikkat çekti . Bu çalışma, bu sorunun hem potansiyel önemini hem de uygulanabilirliğini göstermektedir. Güzel bir okuma. Ne yazık ki, sisteminin tam olarak nasıl çalıştığından veya neler yapabileceğinden tam olarak emin değilim (eğer bu konudaki diğer kamu materyallerini bilen varsa bana bildiriniz).
İkincisi, Mathematica için yazılmış ve simetrileri idare eden xAct adında bir tensör cebir kütüphanesi var . Bazı şeyleri çok iyi yapıyor ama özel doğrusal cebir vakasına göre tasarlanmadı.
Üçüncüsü, bu kurallar resmen bir otomatik teorem kanıtlama yardımcısı olan Coq için (birkaç tanesini bulmak için coq linear / matrix cebirini aramak ) olan birkaç kitaplıkta yazılmıştır . Bu ne yazık ki insan etkileşimi gerektiriyor gibi görünen güçlü bir sistem.
Bazı teoremlerle konuştuktan sonra , insanları bu tür şeyler için mantık programlamasına (örneğin, Proger, Lagerbaer'ın önerdiği gibi) bakmayı öneriyorlar. Bildiğim kadarıyla bu henüz yapılmadı - gelecekte onunla oynayabilirim.
Güncelleme: Maude sistemini kullanarak bunu uyguladım . Kodum github'da barındırılıyor