Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Improved bookkeeping on UF appearances of boolean terms (#189)
* Do not mark PTRefs as declared to EnodeStore if not actually declaerd * Keep count on Boolean terms appearing in the UF terms * Cleaning commented prints * Added regression tests * Implemented correct handling of conflicts when egraph reasoning results in p and (not p) being in the same eq class. * Do not distinguish between UF appearances of negated and pure literals * Made uf appearance tracking into ternary: unseen, removed, or appearing Co-authored-by: Martin Blicha <blichm@usi.ch>
- Loading branch information
Showing
19 changed files
with
299 additions
and
94 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
(set-logic QF_UF) | ||
(declare-fun uf7 (Bool Bool Bool Bool Bool Bool Bool) Bool) | ||
(declare-fun v0 () Bool) | ||
(declare-fun v2 () Bool) | ||
(declare-fun v7 () Bool) | ||
(declare-fun v11 () Bool) | ||
(declare-fun v13 () Bool) | ||
(declare-fun v16 () Bool) | ||
(declare-fun v17 () Bool) | ||
(declare-fun v19 () Bool) | ||
(assert (uf7 v2 v19 (= v11 (not v17)) v13 (=> v16 v0) v7 v17)) | ||
(check-sat) | ||
(assert v16) | ||
(check-sat) |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
sat | ||
sat |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
(set-logic QF_UF) | ||
(declare-fun uf3 (Bool Bool Bool) Bool) | ||
(declare-fun v0 () Bool) | ||
(declare-fun v1 () Bool) | ||
(declare-fun v2 () Bool) | ||
(declare-fun v3 () Bool) | ||
(declare-fun v4 () Bool) | ||
(declare-fun v5 () Bool) | ||
(push 1) | ||
(declare-fun v6 () Bool) | ||
(declare-fun v7 () Bool) | ||
(push 1) | ||
(declare-fun v8 () Bool) | ||
(assert v0) | ||
(push 1) | ||
(declare-sort S0 0) | ||
(declare-fun v9 () Bool) | ||
(declare-fun v10 () Bool) | ||
(declare-fun v11 () Bool) | ||
(assert v6) | ||
(assert (distinct v10 (not v3))) | ||
(assert (uf3 v8 (not v3) (distinct v10 (not v3)))) | ||
(declare-fun S0-0 () S0) | ||
(push 1) | ||
(push 1) | ||
(assert (not v7)) | ||
(check-sat) | ||
(declare-sort S1 0) | ||
(declare-fun v12 () Bool) | ||
(assert (=> v1 v7)) | ||
(assert (uf3 v11 v2 v10)) | ||
(assert (not (not v3))) | ||
(check-sat) |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
sat | ||
sat |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
(set-logic QF_UF) | ||
(declare-fun uf3 (Bool) Bool) | ||
(declare-fun uf7 (Bool Bool Bool Bool) Bool) | ||
(declare-fun v0 () Bool) | ||
(declare-fun v1 () Bool) | ||
(declare-fun v2 () Bool) | ||
(declare-fun v3 () Bool) | ||
(declare-fun v4 () Bool) | ||
(declare-fun v5 () Bool) | ||
(declare-fun v6 () Bool) | ||
(declare-fun v7 () Bool) | ||
(assert (= v6 v1)) | ||
(push 1) | ||
(assert | ||
(uf7 true | ||
(uf7 v3 v5 v4 v5) | ||
(or v3 (= (not v5) (uf3 v7))) | ||
(= (not v5) (uf3 v7)) | ||
) | ||
) | ||
(check-sat) | ||
(pop 1) | ||
(check-sat) |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
sat | ||
sat |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
(set-logic QF_UF) | ||
(declare-fun uf4 (Bool Bool Bool Bool) Bool) | ||
(declare-fun uf7 (Bool Bool Bool Bool Bool Bool Bool) Bool) | ||
(declare-fun v3 () Bool) | ||
(declare-fun v8 () Bool) | ||
(declare-fun v11 () Bool) | ||
(declare-fun v17 () Bool) | ||
(check-sat) | ||
(check-sat) | ||
(assert (uf7 (=> v3 v11) true true true true v8 true)) | ||
(push 1) | ||
(declare-sort S2 0) | ||
(declare-sort S3 0) | ||
(assert (= v3 v17)) | ||
(declare-sort S4 0) | ||
(push 1) | ||
(assert false) | ||
(check-sat) | ||
(pop 1) | ||
(check-sat) | ||
(check-sat) | ||
(pop 1) | ||
(push 1) | ||
(declare-sort S2 0) | ||
(assert (uf4 (= (=> v3 v11) (not v8)) true true true)) | ||
(check-sat) | ||
(declare-sort S2 0) | ||
(declare-sort S3 0) | ||
(declare-sort S4 0) | ||
(declare-sort S2 0) | ||
(check-sat) | ||
(pop 1) | ||
(assert (=> v3 v11)) | ||
(check-sat) |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
sat | ||
sat | ||
unsat | ||
sat | ||
sat | ||
(error "sort S2 already declared") | ||
|
||
sat | ||
(error "sort S2 already declared") | ||
|
||
(error "sort S3 already declared") | ||
|
||
(error "sort S4 already declared") | ||
|
||
(error "sort S2 already declared") | ||
|
||
sat | ||
sat |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.