mirror of
https://github.com/Z3Prover/z3
synced 2025-04-28 19:35:50 +00:00
cave in to supporting proofs (partially) in simplifiers, updated doc
This commit is contained in:
parent
aaabbfb594
commit
80033e8744
36 changed files with 157 additions and 108 deletions
|
@ -13,7 +13,33 @@ Author:
|
|||
|
||||
Nicolas Braud-Santoni (t-nibrau) 2017-08-10
|
||||
|
||||
Notes:
|
||||
|
||||
Tactic Documentation:
|
||||
|
||||
## Tactic injectivity
|
||||
|
||||
### Short Description:
|
||||
|
||||
- Discover axioms of the form `forall x. (= (g (f x)) x`
|
||||
Mark `f` as injective
|
||||
|
||||
- Rewrite (sub)terms of the form `(= (f x) (f y))` to `(= x y)` whenever `f` is injective.
|
||||
|
||||
### Example
|
||||
|
||||
```z3
|
||||
(declare-fun f (Int) Int)
|
||||
(declare-fun g (Int) Int)
|
||||
(declare-const x Int)
|
||||
(declare-const y Int)
|
||||
(assert (forall ((x Int)) (= (g (f x)) x)))
|
||||
(assert (not (= (f x) (f (f y)))))
|
||||
(apply injectivity)
|
||||
```
|
||||
|
||||
### Notes
|
||||
|
||||
* does not support cores nor proofs
|
||||
|
||||
--*/
|
||||
#pragma once
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue