Simplify how user-provided quantifier attributes are handled (#6963)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Fri, 20 Aug 2021 21:08:52 +0000 (16:08 -0500)
committerGitHub <noreply@github.com>
Fri, 20 Aug 2021 21:08:52 +0000 (21:08 +0000)
commit4b184f5382921b35be5972de77ef5700fdbf505d
treee474087f7601a5a795341ed546f5bf342111015a
parentf214151669a5a0ec97df4cc21b66fdaa198001e1
Simplify how user-provided quantifier attributes are handled (#6963)

This makes INST_ATTRIBUTE (optionally) take multiple children, giving a way for the user to set attributes on quantified formulas, which does not require a new API command.

This is a special case of term annotations that occur as the body of a quantified formula.

If we need to extend our API to support further user-provided attributes, we should use a similar approach, e.g. a new kind ANNOTATE.
19 files changed:
src/api/cpp/cvc5_kind.h
src/parser/smt2/Smt2.g
src/smt/command.cpp
src/smt/command.h
src/smt/quant_elim_solver.cpp
src/smt/smt_engine.cpp
src/smt/smt_engine.h
src/theory/engine_output_channel.cpp
src/theory/engine_output_channel.h
src/theory/quantifiers/kinds
src/theory/quantifiers/quantifiers_attributes.cpp
src/theory/quantifiers/quantifiers_attributes.h
src/theory/quantifiers/theory_quantifiers.cpp
src/theory/quantifiers/theory_quantifiers.h
src/theory/quantifiers/theory_quantifiers_type_rules.cpp
src/theory/theory.h
src/theory/theory_engine.cpp
src/theory/theory_engine.h
test/unit/test_smt.h