-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathsetup.py
62 lines (56 loc) · 2.79 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
"""Prove-It: general theorem prover in python"""
from setuptools import setup, find_packages
from nbstripout.install import install_nbstripout
import sys
with open("packages/proveit/_version.py") as f:
code = compile(f.read(), "packages/proveit/_version.py", 'exec')
exec(code)
classifiers = """\
Development Status :: 4 - Beta
Intended Audience :: Science/Research
License :: Other/Proprietary License
Programming Language :: Python
Topic :: Scientific/Engineering :: Mathematics
Operating System :: Microsoft :: Windows
Operating System :: MacOS :: MacOS X
Operating System :: Unix
"""
description_txt = """\
Prove-It uses a powerful yet simple approach to theorem-proving.
It is not designed with automation as the primary goal. The primary goal is
flexibility in order to be able to follow, ideally, any valid and complete
(indivisible) chain of reasoning. To that end, users can write additional
Python scripts to make their own mathematical operations and LaTeX formatting
rules. Axioms are statements that are taken to be true without proof. They
can be added by the user at will in order to define their new mathematical
objects and operations. Users can also add theorems that are to be proven.
Theorems may be proven in any order. Theorem proofs are constructed in
Jupyter notebooks (interactive Python sessions in a web browser). These
notebooks render LaTeX-formatted mathematical expressions inline. Proofs
are constructed by invoking axioms and other theorems and employing
fundamental derivation steps (modus ponens, hypothetical reasoning,
instantiation, generalization, or axiom elimination). Axioms and theorems
may be invoked indirectly via convenience methods or automation (methods
that are automatically invoked when attempting to prove something or
side-effects when something is proven). Theorem proofs and their axiom/
theorem dependencies are stored a kind of database (filesystem based). This
database is used to prevent circular logic.
"""
dist = setup(name='Prove-It',
version=__version__,
description='General theorem prover in python.',
long_description=description_txt,
author='Wayne Witzel, Kenneth Ruddinger, Mohan Sarover, Robert Carr',
author_email='[email protected]',
packages=['proveit'],
package_data={},
# when 'export' is implemented for the certification database, put
# the exported data here
package_dir={'': 'packages'},
requires=[],
platforms=["any"],
classifiers=[_f for _f in classifiers.split("\n") if _f],
)
if "develop" in sys.argv:
print("\n_configuring git locally to filter jupyter notebook 'output' so only 'input' changes will be tracked.")
install_nbstripout(['git', 'config'])