summaryrefslogtreecommitdiff
path: root/src/theory/inference_id.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/theory/inference_id.h')
-rw-r--r--src/theory/inference_id.h35
1 files changed, 34 insertions, 1 deletions
diff --git a/src/theory/inference_id.h b/src/theory/inference_id.h
index f28faa037..a48a8c366 100644
--- a/src/theory/inference_id.h
+++ b/src/theory/inference_id.h
@@ -404,7 +404,40 @@ enum class InferenceId
STRINGS_PREFIX_CONFLICT,
//-------------------------------------- end prefix conflict
- UNKNOWN,
+ // Clause from the uf symmetry breaker
+ UF_BREAK_SYMMETRY,
+ UF_CARD_CLIQUE,
+ UF_CARD_COMBINED,
+ UF_CARD_ENFORCE_NEGATIVE,
+ UF_CARD_EQUIV,
+ UF_CARD_MONOTONE_COMBINED,
+ UF_CARD_SIMPLE_CONFLICT,
+ UF_CARD_SPLIT,
+ //-------------------------------------- begin HO extension to UF
+ // Encodes an n-ary application as a chain of binary HO_APPLY applications
+ // (= (f t1 ... tn) (@ (@ ... (@ f t1) ...) tn))
+ UF_HO_APP_ENCODE,
+ UF_HO_APP_CONV_SKOLEM,
+ // Adds an extensionality lemma to witness that disequal functions have
+ // different applications
+ // (not (= (f sk1 .. skn) (g sk1 .. skn))
+ UF_HO_EXTENSIONALITY,
+ //-------------------------------------- begin model-construction specific part
+ // These rules are necessary to ensure that we build models properly. For more
+ // details see Section 3.3 of Barbosa et al. CADE'19.
+ //
+ // Enforces that a regular APPLY_UF term in the model is equal to its HO_APPLY
+ // equivalent by adding the equality as a lemma
+ // (= (f t1 ... tn) (@ (@ ... (@ f t1) ...) tn))
+ UF_HO_MODEL_APP_ENCODE,
+ // Adds an extensionality lemma to witness that disequal functions have
+ // different applications
+ // (not (= (f sk1 .. skn) (g sk1 .. skn))
+ UF_HO_MODEL_EXTENSIONALITY,
+ //-------------------------------------- end model-construction specific part
+ //-------------------------------------- end HO extension to UF
+
+ UNKNOWN
};
/**
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback