Symbolische Manipulation über nicht-numerische Typen

8

Ich bin an einer Python-Bibliothek interessiert, die symbolische Manipulation erlaubt, wo die Symbole und Unbekannte eines beliebigen Typs sein können.

Dies ist der Code, den ich schreiben möchte:

%Vor%

Oder eine grobe Annäherung an das. Es muss nicht einmal so clever sein, ich wäre glücklich genug, viele zusätzliche Introspektionsmethoden aufrufen zu müssen, um etwas wie das oben genannte zu erhalten (zum Beispiel, selbst wenn die logische Tautologie nicht direkt vereinfacht wird)

>

Mein erster Instinkt war, sympy zu betrachten, aber es scheint, dass die Bibliothek die starke Annahme macht, dass symbolische Variablen Zahlen sein müssen; und ich möchte zumindest Sequenzen und Sets bearbeiten:

%Vor%

Gibt es eine Möglichkeit zu verstehen, nicht-numerische Variablen zu verstehen, oder eine andere Bibliothek, die ähnliche Dinge tun kann?

    
SingleNegationElimination 26.09.2011, 00:28
quelle

3 Antworten

1

Es ist nicht sicher, wie gut es zu den Anwendungen passt, die Sie im Sinn haben, aber das nltk (Natural Language Toolkit) enthält Module für die symbolische Manipulation, einschließlich Logik erster Ordnung, typisiertem Lambda-Kalkül und einem Theorembeweiser. Werfen Sie einen Blick auf dieses Howto .

    
alexis 26.03.2012 16:24
quelle
0

Könnten Sie einfach alles in ein Sympy-Symbol einordnen? Zum Beispiel in deinem letzten Ausdruck: sympy.Eq (sympy.Symbol ("foo"), sympy.Symbol ("bar")). Oder meinst du eigentlich, du willst logische Aussagen über Mengenverhältnisse schreiben?

    
jjh 26.09.2011 06:53
quelle
0

Die Boolesche Logik ist in SymPy, obwohl sie nicht so einfach ausgedrückt werden kann. Es ist definitiv dort aber.

%Vor%

Ich kenne nicht viele Methoden, um diese Ausdrücke zu vereinfachen. Dies ist eine Sache, die leicht zu tun wäre, wenn Interesse besteht.

    
MRocklin 29.02.2012 14:21
quelle

Tags und Links