mirror of
https://github.com/Z3Prover/z3
synced 2025-08-21 02:30:23 +00:00
elaborate on smt/drat format outline, expose euf mode as config
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
4d41db3028
commit
ed7d969366
11 changed files with 90 additions and 21 deletions
|
@ -15,6 +15,29 @@ Author:
|
|||
|
||||
Notes:
|
||||
|
||||
For DIMACS input it produces DRAT proofs.
|
||||
|
||||
For SMT extensions are as follows:
|
||||
|
||||
Input assertion (trusted modulo internalizer):
|
||||
c a <literal>* 0
|
||||
|
||||
Bridge from ast-node to boolean variable:
|
||||
c b <bool-var-id> := <ast-node-id> 0
|
||||
|
||||
Definition of an ast node:
|
||||
c n <ast-node-id> := <name> <ast-node-id>* 0
|
||||
|
||||
Theory lemma
|
||||
c <theory-id> <literal>* 0
|
||||
|
||||
Available theories are:
|
||||
- euf The theory lemma should be a consequence of congruence closure.
|
||||
- ba TBD (need to also log cardinality and pb constraints)
|
||||
|
||||
Life times of theory lemmas is TBD. When they are used for conflict resolution
|
||||
they are only used for the next lemma.
|
||||
|
||||
--*/
|
||||
#pragma once
|
||||
|
||||
|
@ -91,6 +114,9 @@ namespace sat {
|
|||
void def_add_arg(unsigned arg);
|
||||
void def_end();
|
||||
|
||||
// ad-hoc logging until a format is developed
|
||||
void log_adhoc(std::function<void(std::ostream&)>& fn);
|
||||
|
||||
bool is_cleaned(clause& c) const;
|
||||
void del(literal l);
|
||||
void del(literal l1, literal l2);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue