Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implemented the Symengine backend, added new benchmark script #46

Merged
merged 214 commits into from
Dec 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
214 commits
Select commit Hold shift + click to select a range
70874a4
evt init
Nov 8, 2023
bb4dbfb
output
Nov 8, 2023
9677922
added synthesis (wip)
Nov 9, 2023
ce809b1
refactor and added examples
Nov 9, 2023
9b28642
added example
Nov 9, 2023
4046f34
minor
Nov 14, 2023
6ac86a3
added spuriosity heurstics for univariate cases.
Nov 16, 2023
8a2f353
added benchmark examples
Nov 21, 2023
c9546f6
added correct poetry target for project
Nov 21, 2023
ce2bdb9
updated imports and prepared for strategy support
Nov 21, 2023
251be73
added strategy support and additional invariant synthesis options fro…
Nov 21, 2023
8b7b074
refactored instruction handlers to solve cyclic import via dependency…
Nov 22, 2023
7c7773f
added support for showing spurious invariants.
Nov 22, 2023
d399bc5
changed examples and added style support for cleaning the current lin…
Nov 22, 2023
f77d18b
changed positivity heuristic for sums of rational functions
Nov 22, 2023
b61b002
updated the invariant synthesis so the while handler can reuse the code.
Nov 22, 2023
3805f12
changed logging style.
Nov 23, 2023
2644735
inserted the possibility to change the solvers.
Nov 23, 2023
25a5a8e
changed style of factory classes as enums.
Nov 23, 2023
c9b7710
changed tests structure
Nov 24, 2023
bae0383
engineering of project structure
Nov 24, 2023
e1e5012
script output improved.
Nov 24, 2023
83880a2
minor updates
Nov 27, 2023
489b3ff
hashable states
Nov 29, 2023
ced5d9b
added test case for iteration of multivariate fps in ginac.
Nov 30, 2023
afa13bf
added nicer output for invariant synthesis in cli.
Nov 30, 2023
06fe2d2
added additional output.
Nov 30, 2023
148a832
z3 should be ablte to deal with synthesis problem right now.
Nov 30, 2023
922a1f6
only equality works here. Was a theoretical issue.
Nov 30, 2023
3585911
added an example that terminates only when x is even. (initiated with…
Dec 1, 2023
f5b850a
new example and minor bug fix
Dec 1, 2023
a6fc36c
added cli for showing strategies
Dec 1, 2023
0345f3d
implemented additional positivity heuristics and strategies
Dec 1, 2023
acb6fab
code refactoring
Dec 1, 2023
c75097d
minor fix
Dec 1, 2023
90f9caa
minor
Dec 1, 2023
5648d4e
added generalized modulo example (currently not solvable by our solvers)
Dec 5, 2023
6150de8
added new rejection heuristic and added docstrings.
Dec 7, 2023
8b489e8
changed logging output
Dec 11, 2023
963a929
implemented hadamard product in sympy
Dec 14, 2023
8bbc899
minor
Dec 15, 2023
6a6248b
implementation of symengine backend started.
May 7, 2024
94c7c72
refactoring
dominikgeissler Aug 12, 2024
8e5110f
main -> symengine
dominikgeissler Aug 13, 2024
e7f814d
distributions for symengine
dominikgeissler Aug 13, 2024
9ba78f1
Implementation of first methods in symengine.py, moved duplicate code…
dominikgeissler Sep 26, 2024
9171149
Implemented methods for symengine
dominikgeissler Sep 28, 2024
01265cd
Added Symengine to test_distribution_transformer and config
dominikgeissler Sep 28, 2024
58f7896
Added last method to symengine_distribution
dominikgeissler Sep 30, 2024
a80407d
implemented tests for symengine
dominikgeissler Oct 1, 2024
d66b374
fixed some tests, implemented methods for __le__ and coefficient_sum
dominikgeissler Oct 4, 2024
d3b9c6f
fixed differentiation, added errors from test as comments to correspo…
dominikgeissler Oct 5, 2024
7292e36
Fixed set_parameters, arithmetic operations
dominikgeissler Oct 5, 2024
8a34756
Refactored some tests, fixed some errors
dominikgeissler Oct 7, 2024
0dc1bc0
Removed unnecessary conversion, added FIXME comment
dominikgeissler Oct 7, 2024
728e4a4
Fixed approximate test + method
dominikgeissler Oct 7, 2024
3172434
'fixed' marginal
dominikgeissler Oct 8, 2024
a460727
Symengine tests all pass
dominikgeissler Oct 14, 2024
8928086
TODOs and comments
dominikgeissler Oct 14, 2024
059fcaf
Replaced limit call in constant_filter by safe_subs and fixed errors …
dominikgeissler Oct 16, 2024
10917ea
added symengine to config
dominikgeissler Oct 16, 2024
314039f
resolved some todos
dominikgeissler Oct 22, 2024
69b50e5
resolved some todos
dominikgeissler Oct 22, 2024
1c88466
more tests, some fixes
dominikgeissler Oct 29, 2024
d68276a
removed commented out code
dominikgeissler Oct 29, 2024
a92c0a1
Small fix for symbols
dominikgeissler Oct 29, 2024
420305d
Added parsing for probably binop expressions
dominikgeissler Oct 29, 2024
e9d8f76
Refactored set_parameters, added tests for setter
dominikgeissler Oct 30, 2024
5651f49
Added benchmark script (and corresp. files to .gitignore), added note…
dominikgeissler Oct 30, 2024
0c6fb5a
remove whitespace
dominikgeissler Oct 30, 2024
01a03c0
Merge branch 'main' into symengine
dominikgeissler Oct 30, 2024
6966678
replaced pygin method with sympy
dominikgeissler Oct 31, 2024
4e2da8c
fixed error for finite le(q)
dominikgeissler Oct 31, 2024
be2f918
added comment, made passage more readable
dominikgeissler Oct 31, 2024
617ecf2
fixed guards
dominikgeissler Oct 31, 2024
aa9fcbe
added support for multiple choice for engines to be tested
dominikgeissler Oct 31, 2024
fbee6bc
Fixed typo and numbering
dominikgeissler Nov 5, 2024
07a03de
fixed variable / parameter clash, improved logging for benchmark script
dominikgeissler Nov 8, 2024
ce8c339
Bugfixes, changed some pgfexamples to fractions rather than floating …
dominikgeissler Nov 13, 2024
406bc09
removed duplicated testfiles, added engine counter to script
dominikgeissler Nov 21, 2024
7ec143e
removed duplicated testfiles, added engine counter to script
dominikgeissler Nov 21, 2024
b8c20ef
sympy as default
dominikgeissler Nov 28, 2024
b6b163c
fixed hadamard bug
Nov 29, 2024
c17c181
edited benchmark file
Nov 29, 2024
01b1ac7
minor
Nov 29, 2024
6f9237a
added fdr example
Nov 29, 2024
5b64ea2
added logging info
Nov 29, 2024
5b93fd7
changed entrypoint for poetry
Dec 2, 2024
2aea535
Added missing tests, small fix for monus
dominikgeissler Dec 2, 2024
a0a20bf
removed faulty pgcl
dominikgeissler Dec 2, 2024
ed5a17f
added polynomial heuristic and deleted old instruction handler
Dec 2, 2024
7668023
Merge branch 'symengine' of https://github.com/LKlinke/Prodigy into s…
Dec 2, 2024
571349f
lint
dominikgeissler Dec 2, 2024
8a28792
this file should be gone
Dec 2, 2024
f11569f
added ignore for imports of 3rd party libraries where we do not have …
Dec 2, 2024
6217585
added typehints
Dec 2, 2024
12c58fe
removed instructionhandler
dominikgeissler Dec 2, 2024
a4c8ab6
Lint
dominikgeissler Dec 2, 2024
f136f79
lint
dominikgeissler Dec 2, 2024
9fbd22f
minor
Dec 2, 2024
a2e0c42
Merge branch 'symengine' of https://github.com/LKlinke/Prodigy into s…
Dec 2, 2024
daac238
added file
Dec 2, 2024
7c0f2da
removed comment
dominikgeissler Dec 2, 2024
a9c8c40
removed lint errors
dominikgeissler Dec 2, 2024
3ac6621
removed f-string
dominikgeissler Dec 2, 2024
8e49e94
fixed linting
dominikgeissler Dec 3, 2024
55299b9
pylint ignores protected-access
dominikgeissler Dec 4, 2024
bd1f2e4
some mypy stuff
dominikgeissler Dec 4, 2024
b7b62cc
minor fix
Dec 5, 2024
f587669
type hints
dominikgeissler Dec 9, 2024
f4f8b40
mypy
dominikgeissler Dec 9, 2024
8d05f71
linter
dominikgeissler Dec 9, 2024
462dd1a
typing!
dominikgeissler Dec 9, 2024
162a2a3
commented out test
dominikgeissler Dec 9, 2024
5b2c8a2
Update main.yml
LKlinke Dec 9, 2024
fde31bb
fixed doctest
dominikgeissler Dec 9, 2024
9a6f868
bump to py3.11, removed doc creation (for now)
dominikgeissler Dec 10, 2024
d0c9114
restored deleted pgfexamples
dominikgeissler Dec 10, 2024
adbeb79
Delete pgfexamples/ISSAC/caesar.pgcl
LKlinke Dec 10, 2024
522a78b
Delete pgfexamples/ISSAC/evidence1.pgcl
LKlinke Dec 10, 2024
2fe2f91
Delete pgfexamples/ISSAC/evidence2.pgcl
LKlinke Dec 10, 2024
1fcb109
Delete pgfexamples/ISSAC/function.pgcl
LKlinke Dec 10, 2024
c2c066b
Delete pgfexamples/ISSAC/grass.pgcl
LKlinke Dec 10, 2024
6161ad7
Delete pgfexamples/ISSAC/trivial_iid_invariant.pgcl
LKlinke Dec 10, 2024
1f6fff0
removed files
dominikgeissler Dec 10, 2024
3ff22c6
Fixes doc building + correct github url
dominikgeissler Jul 4, 2024
fffa49b
added dependencies to fix the errors when running 'web-service'
dominikgeissler Jul 4, 2024
5794e6f
added corresponding links
dominikgeissler Jul 4, 2024
e7cc284
lint fixes
dominikgeissler Jul 4, 2024
c544843
Plotting works
dominikgeissler Jul 22, 2024
10c953e
Fixed error with axes
dominikgeissler Jul 22, 2024
008930d
added comment to new import
dominikgeissler Jul 22, 2024
f250fc3
fixed mypy
dominikgeissler Aug 12, 2024
13637d4
fixed mypy
dominikgeissler Aug 12, 2024
19eaf06
distributions for symengine
dominikgeissler Aug 13, 2024
8da8370
Implementation of first methods in symengine.py, moved duplicate code…
dominikgeissler Sep 26, 2024
761893f
Implemented methods for symengine
dominikgeissler Sep 28, 2024
404ed68
Added Symengine to test_distribution_transformer and config
dominikgeissler Sep 28, 2024
f723d87
Added last method to symengine_distribution
dominikgeissler Sep 30, 2024
8c15026
implemented tests for symengine
dominikgeissler Oct 1, 2024
28828f4
fixed some tests, implemented methods for __le__ and coefficient_sum
dominikgeissler Oct 4, 2024
8d5140a
fixed differentiation, added errors from test as comments to correspo…
dominikgeissler Oct 5, 2024
f69787d
Fixed set_parameters, arithmetic operations
dominikgeissler Oct 5, 2024
1d853fd
Refactored some tests, fixed some errors
dominikgeissler Oct 7, 2024
25bac6c
Removed unnecessary conversion, added FIXME comment
dominikgeissler Oct 7, 2024
ca30178
Fixed approximate test + method
dominikgeissler Oct 7, 2024
91842df
'fixed' marginal
dominikgeissler Oct 8, 2024
a143ca3
Symengine tests all pass
dominikgeissler Oct 14, 2024
073a2f9
TODOs and comments
dominikgeissler Oct 14, 2024
3a8afd3
Replaced limit call in constant_filter by safe_subs and fixed errors …
dominikgeissler Oct 16, 2024
fee31ba
added symengine to config
dominikgeissler Oct 16, 2024
5b0c312
resolved some todos
dominikgeissler Oct 22, 2024
bee04ee
resolved some todos
dominikgeissler Oct 22, 2024
a8a2d09
more tests, some fixes
dominikgeissler Oct 29, 2024
5387c7b
removed commented out code
dominikgeissler Oct 29, 2024
90401f1
Small fix for symbols
dominikgeissler Oct 29, 2024
443c79b
Added parsing for probably binop expressions
dominikgeissler Oct 29, 2024
3a6a2ad
Refactored set_parameters, added tests for setter
dominikgeissler Oct 30, 2024
0c458fe
Added benchmark script (and corresp. files to .gitignore), added note…
dominikgeissler Oct 30, 2024
07498d5
remove whitespace
dominikgeissler Oct 30, 2024
1299a45
Example: even die roll with conditioning
darionhaase Oct 21, 2024
b1e13a2
replaced pygin method with sympy
dominikgeissler Oct 31, 2024
f2f39cb
fixed error for finite le(q)
dominikgeissler Oct 31, 2024
c6a8157
added comment, made passage more readable
dominikgeissler Oct 31, 2024
4ec3fed
fixed guards
dominikgeissler Oct 31, 2024
c6cd905
added support for multiple choice for engines to be tested
dominikgeissler Oct 31, 2024
0b0ea73
Fixed typo and numbering
dominikgeissler Nov 5, 2024
45dd050
fixed variable / parameter clash, improved logging for benchmark script
dominikgeissler Nov 8, 2024
b3bfe83
Bugfixes, changed some pgfexamples to fractions rather than floating …
dominikgeissler Nov 13, 2024
0f2b243
removed duplicated testfiles, added engine counter to script
dominikgeissler Nov 21, 2024
85d51b5
removed duplicated testfiles, added engine counter to script
dominikgeissler Nov 21, 2024
041af83
sympy as default
dominikgeissler Nov 28, 2024
ae3d970
fixed hadamard bug
Nov 29, 2024
33d0b0d
edited benchmark file
Nov 29, 2024
66a49fe
minor
Nov 29, 2024
e357c1f
added fdr example
Nov 29, 2024
23a817c
added logging info
Nov 29, 2024
e0b2c71
added polynomial heuristic and deleted old instruction handler
Dec 2, 2024
dc32db4
Added missing tests, small fix for monus
dominikgeissler Dec 2, 2024
79a710c
removed faulty pgcl
dominikgeissler Dec 2, 2024
286d01e
lint
dominikgeissler Dec 2, 2024
a3955b7
this file should be gone
Dec 2, 2024
5ae8d6a
added ignore for imports of 3rd party libraries where we do not have …
Dec 2, 2024
f8363ae
added typehints
Dec 2, 2024
45e7f7d
minor
Dec 2, 2024
c61bc72
removed instructionhandler
dominikgeissler Dec 2, 2024
1089bbf
Lint
dominikgeissler Dec 2, 2024
a1b9a14
lint
dominikgeissler Dec 2, 2024
3bd736e
added file
Dec 2, 2024
de0e053
removed comment
dominikgeissler Dec 2, 2024
516bc07
removed lint errors
dominikgeissler Dec 2, 2024
4501391
removed f-string
dominikgeissler Dec 2, 2024
0e77b69
fixed linting
dominikgeissler Dec 3, 2024
267d471
pylint ignores protected-access
dominikgeissler Dec 4, 2024
72a41bc
some mypy stuff
dominikgeissler Dec 4, 2024
72d3e61
minor fix
Dec 5, 2024
5412e64
type hints
dominikgeissler Dec 9, 2024
1ca2d56
mypy
dominikgeissler Dec 9, 2024
f610ca9
linter
dominikgeissler Dec 9, 2024
70a3519
typing!
dominikgeissler Dec 9, 2024
e84142d
commented out test
dominikgeissler Dec 9, 2024
01cf3f4
Update main.yml
LKlinke Dec 9, 2024
8727c27
fixed doctest
dominikgeissler Dec 9, 2024
2c07e5d
bump to py3.11, removed doc creation (for now)
dominikgeissler Dec 10, 2024
acab531
restored deleted pgfexamples
dominikgeissler Dec 10, 2024
7a8a02e
Delete pgfexamples/ISSAC/caesar.pgcl
LKlinke Dec 10, 2024
545f499
Delete pgfexamples/ISSAC/evidence1.pgcl
LKlinke Dec 10, 2024
b483482
Delete pgfexamples/ISSAC/evidence2.pgcl
LKlinke Dec 10, 2024
3529a66
Delete pgfexamples/ISSAC/function.pgcl
LKlinke Dec 10, 2024
a4917d0
Delete pgfexamples/ISSAC/grass.pgcl
LKlinke Dec 10, 2024
3223833
Delete pgfexamples/ISSAC/trivial_iid_invariant.pgcl
LKlinke Dec 10, 2024
84c700d
removed files
dominikgeissler Dec 10, 2024
c20a121
Merge branch 'symengine' of https://github.com/LKlinke/Prodigy into s…
Dec 10, 2024
f2c4906
fixed rebase issue
Dec 10, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-python@v3
with:
python-version: 3.9
python-version: 3.11
- name: Set up Poetry cache for Python dependencies
uses: actions/cache@v3
if: startsWith(runner.os, 'Linux')
Expand Down Expand Up @@ -47,11 +47,11 @@ jobs:
run: make mypy
- name: Run unit tests
run: make ARGS="--exitfirst" test
- name: Build docs
run: make docs
- name: Deploy docs
if: github.ref == 'refs/heads/master'
uses: JamesIves/[email protected]
with:
branch: gh-pages
folder: docs/build/html
# - name: Build docs
# run: make docs
# - name: Deploy docs
# if: github.ref == 'refs/heads/master'
# uses: JamesIves/[email protected]
# with:
# branch: gh-pages
# folder: docs/build/html
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -137,3 +137,9 @@ dmypy.json

# Poetry
poetry.lock

# Benchmark script
*.csv
*.txt
*.md
!README.md
LKlinke marked this conversation as resolved.
Show resolved Hide resolved
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,17 @@ If you run into trouble during installation, this subsection might be of help. I
- `CMake`
- `pkg-config`
- `build-essential` (includes `make`, `g++`, `gcc`, and more)
- `python3-dev` (called `python3-devel` on some other package managers such as `yam`)
- `python3-dev` (called `python3-devel` on some other package managers such as `yam`)

## Basic Usage
### CLI

5. In the project directory, type ``poetry shell``. This activates the freshly installed virtual environment.
6. Now, you can use prodigy by executing the script via `python prodigy/cli.py ...`. For more information, see the help message or have a look into the documentation.
1. In the project directory, type ``poetry shell``. This activates the freshly installed virtual environment.
2. Now, you can use prodigy by executing the script via `python prodigy/cli.py ...`. For more information, see the help message or have a look into the documentation.


### Webservice
5. Activate the cvirtual environment by ``poetry shell``.
6. Type ``web-service``.
7. Open a browser and locate `localhost:8080`.
1. Activate the virtual environment by ``poetry shell``.
2. Type ``web-service``.
3. Open a browser and locate `localhost:8080`.

Loading
Loading