proposal sampler
Project description
proposalsampler
Experimental project. For given proposal or equation it generate its implementation (context or sample space $\Omega$ or model (like model for theory in logic therms))
at which this proposal (or equation) is true.
For example below, given the sent "abelian(G) \and subgroup(H, G,) => abelian(H)", the program will generate some groups (described with they generators (like in GAP)) for G, H, at which this proposal is true (i.e. $\Omega = {{H_{i}, G_{i}} | where i \leq n}$ where $n$ is count of samples to be generated).
Only part of that "arguments" of the proposal can be given ($\Theta$) such that only remained part ($\Psi$) ought to be generated (so $\Omega = \Theta + \Psi$).
The main idea is that such samples can give you better understanding of a proposal itself, especially if such proposal have been taken from some abstract math theory.
sampling proposals:
from tokentranslator.db_models.model_main import TokenizerDB
from tokentranslator.env.clause.clause_main import Clause
model = TokenizerDB()
# switch to clauses db:
model.change_dialect_db("cs")
clause = Clause("abelian(G) \\and subgroup(H, G,) => abelian(H)", db=model)
clause.parser.parse()
# now import and use sampling:
from proposalsampler.sampling.slambda.tests_slambda_main import test_ventries
from proposalsampler.sampling.slambda import slambda_main as sm
# for this example test_ventries[3] is init data for proposal clause:
test_ventries[3] =
{'G': ('(1,4)(2,3)', '(1,3)(2,4)'),
"['s', 1, 0, 0]": True,
"['s', 1, 1, 0]": True,
'idd': "['s']",
'successors_count': 0}
# so group G is given but group H is not, and must be found
# during sampling:
sampler = sm.Sampler(clause.net_out, test_ventries[3])
sampler.run()
# if successors found, they entries would look like:
{'G': ('(1,4)(2,3)', '(1,3)(2,4)'), 'H': ('(1,3)(2,4)', '(1,4)(2,3)')", ['s', 1, 1, 0]": True, "['s', 1, 0, 0]": True, 'idd': "['s', 4, 3, 0]", 'successors_count': 0, 'checked_nodes': ["['s']", "['s', 1]", "['s', 1, 1, 0]", "['s', 1, 0, 0]", "['s', 0, 0]"], 'failure_statuses': {}, 'parent_idd': "['s', 4, 3]", "['s']": True, "['s', 0, 0]": True, "['s', 1]": True}
# so group H found and in this case H = Group('(1,3)(2,4)', '(1,4)(2,3)') (= G but proposal is still holding)
# if no results were generated, try run again.
sampling equations:
>>> e = Equation("f(a*x+b*y)=a*f(x)+b*f(y)")
>>> e.parser.parse()
>>> e.sampling.sympy.sampling_vars()
>>> # or e.sampling.sympy.sampling_subs()
>>> e.sampling.sympy.show_rand()
>>> # or "".join(e.eq_tree.flatten('rand_sympy'))
sin(0.243*0.570+0.369*0.078)=0.243*sin(0.570)+0.369*sin(0.078)
Requirements
pip install -r requirements.txt
Installation and running
pip install proposalsampler
GUI:
There is also a GUI for this project at
https://github.com/tokentranslator-group/tokentranslator-gui
Tests:
see tests/test_list.txt
References:
Sampling:
Probabilistic Models of Cognition: https://probmods.org/
(eng: George Pólya: Mathematics and Plausible Reasoning, Princeton University Press 1954, 2 volumes (Vol. 1: Induction and Analogy in Mathematics, Vol. 2: Patterns of Plausible Inference)
(ru: Джордж Пойа: Математика и правдоподобные рассуждения)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file proposalsampler-0.0.2.tar.gz
.
File metadata
- Download URL: proposalsampler-0.0.2.tar.gz
- Upload date:
- Size: 30.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.25.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.48.2 importlib-metadata/3.10.1 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
d121eed50229ef95324f8dbc6008c764b67fdff825339bf6d07adffffefc06a8
|
|
MD5 |
c894b3f2554656dabcb948b285451a82
|
|
BLAKE2b-256 |
a2f41134d3ca80c2cd6992400b81811677699a0d98aca7a344b1c77337bd1e68
|
File details
Details for the file proposalsampler-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: proposalsampler-0.0.2-py3-none-any.whl
- Upload date:
- Size: 36.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.25.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.48.2 importlib-metadata/3.10.1 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
d4932e096476b7fecf15c34bf0d1c5794e7f2663ec662385635d3d620333e912
|
|
MD5 |
597ddad34493ebb118bdf720c5953a06
|
|
BLAKE2b-256 |
8d68f58f127c719609224ad9d3f0b175d205a5a7347a88e154ecbee0fadb1eb4
|