Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mattvonrocketstein/spock
Logical programming for Python
https://github.com/mattvonrocketstein/spock
Last synced: 26 days ago
JSON representation
Logical programming for Python
- Host: GitHub
- URL: https://github.com/mattvonrocketstein/spock
- Owner: mattvonrocketstein
- Created: 2012-03-28T15:19:28.000Z (almost 13 years ago)
- Default Branch: master
- Last Pushed: 2015-01-05T08:04:40.000Z (about 10 years ago)
- Last Synced: 2024-10-20T01:50:50.687Z (3 months ago)
- Language: Python
- Homepage:
- Size: 700 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
##What is this?
``Spock`` is a python library for logic. This is not intended to be a complete implementation and at this point it is certainly not written to be very fast. It's mainly an experiment and might be useful to someone as a reference.
The backend codes for first order logic are mostly stolen from Russel & Norvig's
"*AI: A Modern Approach*", and even the approach there is only intended to be illustrative rather than industrial strength. That code illustrates logic pretty well, but illustrates *logic in python* pretty poorly. ``Spock`` includes some improvements that make it more pythonic. I've also fixed what bugs I found, and implemented stuff that the margins were originally too narrow to contain (e.g. WalkSAT).The constraint solving code is also AI:MA code that has been rearranged and updated. I added utility classes for quickly drawing up and solving constraint problems, so it's easier to work with.
##Spock Features::
* First Order Logic [via AI:MA]
* Agent logic (obligations, decisions) [following Shoham '94]
* Temporal logic (very crude, very in*progress)
* Constraint solving##Wishlist::
* Paraconsistent Logic [maybe following LFI1: A 3-valued Logic for Formal Inconsistency]
##Examples
TODO maybe adapt from http://staff.washington.edu/jon/flip/www/witch.html ?##Installation
You'll need virtualenv and pip already installed, then run::
```shell
$ git clone http://github.com/mattvonrocketstein/spock.git
$ cd spock
$ virtualenv spock_test
$ source spock_test/bin/activate
$ python setup.py develop
```##Running tests
Type this::
```shell
$ cd spock
$ virtualenv spock_test
$ source spock_test/bin/activate
$ pip install pytest
$ pytest -v -t lib/spock/tests
```##Related Reading and Software
* Lattice logics for paraconsistency http://www.cs.sunysb.edu/~kifer/TechReports/rwi.pdf
* LFI1: http://www.deamo.prof.ufu.br/arquivos/FLAIRS05AmoS.pdf
* FLIP: a logic framework in python http://staff.washington.edu/jon/flip/
* logic.py: http://truxler.net/robgfx/images/logic/tech_report.pdf
* theorem prover example: http://www.blog.everythings-beta.com/?p=57
* python bindings for a STP (a fast constraint-solving library) http://security.dico.unimi.it/~roberto/pystp/
* HigherOrderLogic, a classic, and a good collection of related links http://www.cl.cam.ac.uk/research/hvg/HOL/history.html