summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/kinds
blob: a8774440eb256b87de43c9de556e77a106a4eb79 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# kinds                                                               -*- sh -*-
#
# For documentation on this file format, please refer to
# src/theory/builtin/kinds.
#

theory THEORY_QUANTIFIERS ::CVC4::theory::quantifiers::TheoryQuantifiers "theory/quantifiers/theory_quantifiers.h"
typechecker "theory/quantifiers/theory_quantifiers_type_rules.h"

properties check propagate presolve getNextDecisionRequest

rewriter ::CVC4::theory::quantifiers::QuantifiersRewriter "theory/quantifiers/quantifiers_rewriter.h"

operator FORALL 2:3 "universally quantified formula; first parameter is an BOUND_VAR_LIST, second is quantifier body, and an optional third parameter is an INST_PATTERN_LIST"

operator EXISTS 2:3 "existentially quantified formula; first parameter is an BOUND_VAR_LIST, second is quantifier body, and an optional third parameter is an INST_PATTERN_LIST"

variable INST_CONSTANT "instantiation constant"

sort BOUND_VAR_LIST_TYPE \
    Cardinality::INTEGERS \
    not-well-founded \
    "the type of bound variable lists"

operator BOUND_VAR_LIST 1: "a list of bound variables (used to bind variables under a quantifier)"

sort INST_PATTERN_TYPE \
    Cardinality::INTEGERS \
    not-well-founded \
    "instantiation pattern type"

# Instantiation pattern, also called trigger.
# This node is used for specifying hints for quantifier instantiation.
# An instantiation pattern may have more than 1 child, in which case it specifies a multi-trigger.
operator INST_PATTERN 1: "instantiation pattern"
operator INST_NO_PATTERN 1 "instantiation no-pattern"
operator INST_ATTRIBUTE 1 "instantiation attribute"

sort INST_PATTERN_LIST_TYPE \
    Cardinality::INTEGERS \
    not-well-founded \
    "the type of instantiation pattern lists"

# a list of instantiation patterns
operator INST_PATTERN_LIST 1: "a list of instantiation patterns"

typerule FORALL ::CVC4::theory::quantifiers::QuantifierForallTypeRule 
typerule EXISTS ::CVC4::theory::quantifiers::QuantifierExistsTypeRule 
typerule BOUND_VAR_LIST ::CVC4::theory::quantifiers::QuantifierBoundVarListTypeRule 
typerule INST_PATTERN ::CVC4::theory::quantifiers::QuantifierInstPatternTypeRule 
typerule INST_NO_PATTERN ::CVC4::theory::quantifiers::QuantifierInstNoPatternTypeRule 
typerule INST_ATTRIBUTE ::CVC4::theory::quantifiers::QuantifierInstAttributeTypeRule 
typerule INST_PATTERN_LIST ::CVC4::theory::quantifiers::QuantifierInstPatternListTypeRule 

# for rewrite rules
# types...
sort RRHB_TYPE \
    Cardinality::INTEGERS \
    not-well-founded \
    "head and body of the rule type (for rewrite-rules theory)"

# operators...

# variables, guards, RR_REWRITE/REDUCTION_RULE/DEDUCTION_RULE
operator REWRITE_RULE 3 "general rewrite rule (for rewrite-rules theory)"
#HEAD/BODY/TRIGGER
operator RR_REWRITE 2:3 "actual rewrite rule (for rewrite-rules theory)"
operator RR_REDUCTION 2:3 "actual reduction rule (for rewrite-rules theory)"
operator RR_DEDUCTION 2:3 "actual deduction rule (for rewrite-rules theory)"

typerule REWRITE_RULE ::CVC4::theory::quantifiers::RewriteRuleTypeRule
typerule RR_REWRITE   ::CVC4::theory::quantifiers::RRRewriteTypeRule
typerule RR_REDUCTION ::CVC4::theory::quantifiers::RRRedDedTypeRule
typerule RR_DEDUCTION ::CVC4::theory::quantifiers::RRRedDedTypeRule

endtheory
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback