welchbj / tt Goto Github PK
View Code? Open in Web Editor NEWa Pythonic toolkit for working with Boolean expressions
Home Page: https://tt.brianwel.ch
License: MIT License
a Pythonic toolkit for working with Boolean expressions
Home Page: https://tt.brianwel.ch
License: MIT License
I am using this tool to automate APIs. For that, we are defining some rules using boolean expressions. For example, say these are the rules :
A iff (B or C)
B impl not C
D impl E,
F iff (G or H)
Now I am putting each symbol as constrain as 1, and trying to find a solution that satisfies all the rules. For that I am creating a final rule by joining them with 'and'.
Let's say I put A = 1, so I want a solution that has minimal 1's.
Example
A=1,B=1,C=0,D=0,E=0,F=0,G=0,H=0
But from your module I am getting this solution after using sat_one()
method:
A=1,B=1,C=0,D=0,E=1,F=0,G=0,H=0
How to find the optimal one? Also, I have large number of operands so looping through each solution is not possible. Please help me on this topic.
Couldn't find in the docs if there is a way to convert between TT and BE ?
Another questions :
I have to switch between the two, because PyEDA does not seem to have .evaluate() method.
I tried to build the C-extensions (OS: Windows with MSVC v140 – VS 2015 C++-Buildtools (v14.00), Python: 3.7.6). However running python setup.py build
fails with
> python setup.py build
running build
running build_py
running build_ext
building 'tt._clibs.picosat' extension
creating build\temp.win-amd64-3.7
creating build\temp.win-amd64-3.7\Release
creating build\temp.win-amd64-3.7\Release\Users
creating build\temp.win-amd64-3.7\Release\Users\Florian
creating build\temp.win-amd64-3.7\Release\Users\Florian\gitlab
creating build\temp.win-amd64-3.7\Release\Users\Florian\gitlab\tt
creating build\temp.win-amd64-3.7\Release\Users\Florian\gitlab\tt\tt
creating build\temp.win-amd64-3.7\Release\Users\Florian\gitlab\tt\tt\_clibs
creating build\temp.win-amd64-3.7\Release\Users\Florian\gitlab\tt\tt\_clibs\picosat
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DNDEBUG -DNGETRUSAGE -Dinline=__inline -IC:\Users\Florian\gitlab\tt\tt\_clibs\picosat -IC:\Python37\include -IC:\Python37\include "-IC:\Program Files (x86)
\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" /TcC:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c /Fobuild\temp.win-amd64-3
.7\Release\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.obj
picosat.c
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(860): warning C4244: "=": Konvertierung von "unsigned __int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(1177): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(1227): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(1438): warning C4334: "<<": Das Ergebnis der 32-Bit-Verschiebung wurde implizit in 64 Bits konvertiert. (War eine 64-Bit-Verschiebung vorgesehen?)
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(1557): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(1558): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(1562): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(1610): warning C4244: "=": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(1670): warning C4244: "return": Konvertierung von "__int64" in "int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(1693): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(1746): warning C4244: "return": Konvertierung von "__int64" in "int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(1825): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(1845): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(1854): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2258): warning C4146: Einem vorzeichenlosen Typ wurde ein unärer Minus-Operator zugewiesen. Das Ergebnis ist weiterhin vorzeichenlos.
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2278): warning C4267: "=": Konvertierung von "size_t" nach "int", Datenverlust möglich
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2275): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\stdio.h(1769): note: Siehe Deklaration von "sprintf"
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2303): warning C4244: "=": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2344): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2357): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2368): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2370): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2398): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2405): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2594): warning C4244: "Initialisierung": Konvertierung von "__int64" in "int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2594): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2634): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2721): warning C4244: "=": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2785): warning C4244: "=": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2805): warning C4244: "=": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2803): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2926): warning C4244: "=": Konvertierung von "__int64" in "long", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(2941): warning C4244: "=": Konvertierung von "__int64" in "long", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(3275): warning C4267: "=": Konvertierung von "size_t" nach "int", Datenverlust möglich
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(3291): warning C4244: "=": Konvertierung von "double" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(3293): warning C4146: Einem vorzeichenlosen Typ wurde ein unärer Minus-Operator zugewiesen. Das Ergebnis ist weiterhin vorzeichenlos.
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(3297): warning C4244: "=": Konvertierung von "double" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(3310): warning C4244: "=": Konvertierung von "double" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(3314): warning C4244: "=": Konvertierung von "double" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(3320): warning C4244: "=": Konvertierung von "double" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(3273): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\stdio.h(1769): note: Siehe Deklaration von "sprintf"
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(3285): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\stdio.h(1769): note: Siehe Deklaration von "sprintf"
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(3511): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(3659): warning C4244: "=": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(3671): warning C4244: "=": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(4726): warning C4244: "=": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(5124): warning C4244: "=": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(5173): warning C4244: "=": Konvertierung von "__int64" in "int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(5328): warning C4244: "=": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(5081): warning C4244: "Initialisierung": Konvertierung von "__int64" in "int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(5081): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(5083): warning C4244: "Initialisierung": Konvertierung von "__int64" in "int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(5083): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(5326): warning C4244: "Initialisierung": Konvertierung von "__int64" in "int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(5326): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(5445): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(5584): warning C4244: "=": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(5540): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(5585): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(5661): warning C4244: "=": Konvertierung von "unsigned __int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(6574): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(6718): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(6754): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(6872): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(6956): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(7373): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(7378): warning C4244: "Initialisierung": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(7395): warning C4244: "Initialisierung": Konvertierung von "__int64" in "int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(7664): warning C4244: "=": Konvertierung von "__int64" in "int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(7725): warning C4244: "=": Konvertierung von "__int64" in "int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(7765): warning C4244: "=": Konvertierung von "__int64" in "int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(8199): warning C4244: "+=": Konvertierung von "__int64" in "unsigned int", möglicher Datenverlust
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(8216): warning C4146: Einem vorzeichenlosen Typ wurde ein unärer Minus-Operator zugewiesen. Das Ergebnis ist weiterhin vorzeichenlos.
C:\Users\Florian\gitlab\tt\tt\_clibs\picosat\picosat.c(8248): warning C4146: Einem vorzeichenlosen Typ wurde ein unärer Minus-Operator zugewiesen. Das Ergebnis ist weiterhin vorzeichenlos.
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DNDEBUG -DNGETRUSAGE -Dinline=__inline -IC:\Users\Florian\gitlab\tt\tt\_clibs\picosat -IC:\Python37\include -IC:\Python37\include "-IC:\Program Files (x86)
\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" /TcC:\Users\Florian\gitlab\tt\tt\_clibs\picosatmodule.c /Fobuild\temp.win-amd64-3.7
\Release\Users\Florian\gitlab\tt\tt\_clibs\picosatmodule.obj
picosatmodule.c
c:\python37\include\pyconfig.h(203): fatal error C1083: Datei (Include) kann nicht geöffnet werden: "basetsd.h": No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2
Any suggestions how to fix this?
I could not find relevant methods in the docs. Just to clarify, this library does not have built in functions for boolean expression simplification / optimization with techniques like common term extraction? What would be the design or technical reason?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.