diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2017-10-10 21:07:14 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-10 21:07:14 -0500 |
commit | 5e2c7c3a25d334c0068b423225f8ff7793260069 (patch) | |
tree | 1ba631e008f7c482f8d0fdcac87b23090e6a2920 /src/theory | |
parent | dd979fcdb5a952462e4d6702999b5354de5a7be8 (diff) |
Ho node manager types (#1203)
* Remove restrictions about function types
* Introduce notion of first-class type, improve assertions, add comment on equality type rule.
* Update comment
Diffstat (limited to 'src/theory')
-rw-r--r-- | src/theory/builtin/theory_builtin_type_rules.h | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/theory/builtin/theory_builtin_type_rules.h b/src/theory/builtin/theory_builtin_type_rules.h index 370e5d348..777f6e57f 100644 --- a/src/theory/builtin/theory_builtin_type_rules.h +++ b/src/theory/builtin/theory_builtin_type_rules.h @@ -77,10 +77,7 @@ class EqualityTypeRule { if( check ) { TypeNode lhsType = n[0].getType(check); TypeNode rhsType = n[1].getType(check); - - // TODO : we may want to limit cases where we have equalities between terms of different types - // equalities between (Set Int) and (Set Real) already cause strange issues in theory solver for sets - // one possibility is to only allow this for Int/Real + if ( TypeNode::leastCommonTypeNode(lhsType, rhsType).isNull() ) { std::stringstream ss; ss << "Subexpressions must have a common base type:" << std::endl; @@ -90,6 +87,7 @@ class EqualityTypeRule { throw TypeCheckingExceptionPrivate(n, ss.str()); } + // TODO : check isFirstClass for these types? (github issue #1202) } return booleanType; } |