GOOGLE ADS

Freitag, 15. April 2022

Wie deklariere ich eine natürliche Zahlvariable in z3py?

Ich möchte in meinen Einschränkungen über natürliche Zahlen nachdenken.

Ich weiß, dass ich etwas tun kann wie:

x = Int('x')und fügen Sie dann eine Einschränkung hinzu, die x >= 0. Aber gibt es eine bessere Möglichkeit, dies zu tun, damit ich nicht jedes Mal eine zusätzliche Einschränkung hinzufügen muss, wenn ich eine Variable deklariere?


Lösung des Problems

Leider gibt es keinen "guten" Weg, um Naturtöne zu modellieren. Am besten fügen Sie >= 0Einschränkungen nach Bedarf hinzu. Beachten Sie, dass Sie dies nach jeder mathematischen Operation tun müssen, insbesondere nach der Subtraktion.

Wenn Maschinenarithmetik akzeptabel ist (dh Modulo 2^nfür einige n; typischerweise n=32oder n=64), dann reichen Bitvektoren weit aus. Beachten Sie, dass in SMTLib Bitvektoren ohne Vorzeichen sind, nur die Operationen. So können Sie davonkommen, ohne ständig zusätzliche Einschränkungen des Formulars auferlegen zu müssen >= 0. Siehe Gibt es einen UnsignedIntSort in Z3? für eine Diskussion.

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...