Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thery/poltac
Tactic for polynomial manipulations
https://github.com/thery/poltac
coq inequalities polynomial tactics
Last synced: 2 months ago
JSON representation
Tactic for polynomial manipulations
- Host: GitHub
- URL: https://github.com/thery/poltac
- Owner: thery
- Created: 2017-03-15T08:55:55.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2024-02-06T16:27:32.000Z (11 months ago)
- Last Synced: 2024-10-11T21:51:32.385Z (3 months ago)
- Topics: coq, inequalities, polynomial, tactics
- Language: Coq
- Size: 127 KB
- Stars: 10
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Poltac
[![Docker CI][docker-action-shield]][docker-action-link]
[docker-action-shield]: https://github.com/thery/poltac/actions/workflows/docker-action.yml/badge.svg?branch=master
[docker-action-link]: https://github.com/thery/poltac/actions/workflows/docker-action.ymlA set of tactics to deal with inequalities in Coq over N, Z and R:
- `pols`: simplification
- `polf`: factorization
- `polr`: replacementinspired from
To build:
```shell
make all
```To use it:
```coq
Require Import PolTac.
```## Examples
See `Nex.v`, `Zex.v` and `Rex.v`.
### Demo: a running example (`polr_test2` in `Rex.v`)
```coq
1 subgoal
x : R
y : R
z : R
t : R
u : R
H : t < 0
H1 : y = u
H2 : x + z < y
______________________________________(1/1)
2 * y * t < x * t + t * u + z * t
```We use `polf` to remove `t` from the left and the right side of the inequality since `t` is negative it changes the direction of the inequality.
```coq
polf.1 subgoal
....
H1 : y = u
....
______________________________________(1/1)
x + u + z < 2 * y
```We use `polr` to replace `u` by `y` in the goal.
```coq
polr H1; auto with real.1 subgoal
....
H2 : x + z < y
....
______________________________________(1/1)
x + y + z < 2 * y
```We use `polr` to bound `x + y + z` using `H2`.
```coq
polr H2.2 subgoals
...
______________________________________(1/2)
x + y + z < y + y...
______________________________________(2/2)
y + y <= 2 * y
```We use pols to simply by y on both sides.
```coq
pols.2 subgoals
...
______________________________________(1/2)
x + z < y...
______________________________________(2/2)
y + y <= 2 * y
```
```This exactly `H2`.
```coq
exact H2.1 subgoal
...
______________________________________(1/1)
y + y <= 2 * y
```We use pols to simply by y on both sides.
```coq
1 subgoal
...
______________________________________(1/1)
0 <= 0
```----
[email protected]## Meta
- Author(s):
- Laurent Théry
- License: [MIT License](LICENSE)
- Compatible Coq versions: 8.19 or later
- Additional dependencies: none
- Coq namespace: `PolTac`
- Related publication(s): none## Building and installation instructions
To build and install manually, do:
``` shell
git clone https://github.com/thery/poltac.git
cd poltac
make # or make -j
make install
```