https://github.com/hiwane/ganrac
Go language version QE tool for Real Algebraic Constraints
https://github.com/hiwane/ganrac
computer-algebra-system golang real-quantifier-elimination
Last synced: 5 months ago
JSON representation
Go language version QE tool for Real Algebraic Constraints
- Host: GitHub
- URL: https://github.com/hiwane/ganrac
- Owner: hiwane
- License: mit
- Created: 2021-03-18T07:35:09.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2025-04-27T14:51:34.000Z (about 1 year ago)
- Last Synced: 2025-04-27T15:40:12.739Z (about 1 year ago)
- Topics: computer-algebra-system, golang, real-quantifier-elimination
- Language: Go
- Homepage:
- Size: 774 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
 
GaNRAC
======
## Getting started
### Requirements
- [ox-asir](http://www.math.sci.kobe-u.ac.jp/OpenXM/),
- [SageMath](https://www.sagemath.org/) or
- [SymPy](https://www.sympy.org/)
#### install ox-asir
CentOS
```sh
# yum install libX11-devel libXt-devel libXaw-devel
> curl -O "http://www.math.sci.kobe-u.ac.jp/pub/OpenXM/Head/openxm-head.tar.gz"
> tar xf openxm-head.tar.gz
> (cd OpenXM/src; make install)
> (cd OpenXM/rc; make install)
> while :; do ox -ox ox_asir -control 1234 -data 4321; done
```
Ubuntu
```sh
# apt install build-essential m4 bison
# apt install libx11-dev libxt-dev libxaw7-dev
> curl -O "http://www.math.sci.kobe-u.ac.jp/pub/OpenXM/Head/openxm-head.tar.gz"
> tar xf openxm-head.tar.gz
> (cd OpenXM/src; make install)
> (cd OpenXM/rc; make install)
> while :; do ox -ox ox_asir -control 1234 -data 4321; done
```
## Installation
### downloading the binary
See https://github.com/hiwane/ganrac/releases
### compiling from source code
Required: go (1.18 or newer)
ox-asir version
```sh
> go install github.com/hiwane/ganrac/cmd/ganrac-ox@latest
> # go get github.com/hiwane/ganrac/cmd/ganrac-ox
```
SageMath version
```sh
> go install github.com/hiwane/ganrac/cmd/ganrac-sage@latest
> # go get github.com/hiwane/ganrac/cmd/ganrac-sage
```
## Demo

### real Quantifier Elimination
See [qe.md](doc/qe.md) for details.

```
F = ex([x], a*x^2+b*x+c==0);
qe(F);
G = example("quad");
H = time(qe(G[0]));
qe(all([x,y,z], equiv(G[1], H)));
```
### real QE by Cylindrical Algebraic Decomposition
See [cad.md](doc/cad.md) for details.

```
vars(c,b,a,x);
F = ex([x], a*x^2+b*x+c <= 0);
F;
C = cadinit(F);
cadproj(C);
print(C, "proj");
print(C, "proj", 3, 0);
cadlift(C);
print(C, "sig");
print(C, "sig", 0);
print(C, "cell", 0, 1);
cadsfc(C);
print(C, "stat");
```