summaryrefslogtreecommitdiff
path: root/src/proof
diff options
context:
space:
mode:
Diffstat (limited to 'src/proof')
-rw-r--r--src/proof/proof_rule.cpp1
-rw-r--r--src/proof/proof_rule.h9
2 files changed, 10 insertions, 0 deletions
diff --git a/src/proof/proof_rule.cpp b/src/proof/proof_rule.cpp
index 3991305ca..7e1cdf8d3 100644
--- a/src/proof/proof_rule.cpp
+++ b/src/proof/proof_rule.cpp
@@ -120,6 +120,7 @@ const char* toString(PfRule id)
case PfRule::ARRAYS_READ_OVER_WRITE_1: return "ARRAYS_READ_OVER_WRITE_1";
case PfRule::ARRAYS_EXT: return "ARRAYS_EXT";
case PfRule::ARRAYS_TRUST: return "ARRAYS_TRUST";
+ case PfRule::ARRAYS_EQ_RANGE_EXPAND: return "ARRAYS_EQ_RANGE_EXPAND";
//================================================= Bit-Vector rules
case PfRule::BV_BITBLAST: return "BV_BITBLAST";
case PfRule::BV_BITBLAST_STEP: return "BV_BITBLAST_STEP";
diff --git a/src/proof/proof_rule.h b/src/proof/proof_rule.h
index 173e4df9a..78e773bdc 100644
--- a/src/proof/proof_rule.h
+++ b/src/proof/proof_rule.h
@@ -713,6 +713,15 @@ enum class PfRule : uint32_t
// Conclusion: (not (= (select a k) (select b k)))
// where k is arrays::SkolemCache::getExtIndexSkolem((not (= a b))).
ARRAYS_EXT,
+ // ======== EQ_RANGE expansion
+ // Children: none
+ // Arguments: ((eqrange a b i j))
+ // ----------------------------------------
+ // Conclusion: (=
+ // (eqrange a b i j)
+ // (forall ((x T))
+ // (=> (and (<= i x) (<= x j)) (= (select a x) (select b x)))))
+ ARRAYS_EQ_RANGE_EXPAND,
// ======== Array Trust
// Children: (P1 ... Pn)
// Arguments: (F)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback