Class: Axiom::Optimizer::Algebra::Restriction::Contradiction
- Inherits:
-
Axiom::Optimizer::Algebra::Restriction
- Object
- Axiom::Optimizer
- Relation::Operation::Unary
- Axiom::Optimizer::Algebra::Restriction
- Axiom::Optimizer::Algebra::Restriction::Contradiction
- Defined in:
- lib/axiom/optimizer/algebra/restriction.rb
Overview
Optimize when the predicate is a contradiction
Constant Summary
Constants inherited from Axiom::Optimizer
Instance Attribute Summary
Attributes inherited from Axiom::Optimizer::Algebra::Restriction
Attributes inherited from Relation::Operation::Unary
Attributes included from Function::Unary
Attributes inherited from Axiom::Optimizer
Instance Method Summary collapse
-
#optimizable? ⇒ Boolean
private
Test if the predicate is a contradiction.
-
#optimize ⇒ Relation
private
A Restriction with a contradiction matches nothing.
Methods inherited from Axiom::Optimizer::Algebra::Restriction
Methods inherited from Relation::Operation::Unary
Methods included from Function::Unary
Methods inherited from Axiom::Optimizer
Constructor Details
This class inherits a constructor from Axiom::Optimizer::Algebra::Restriction
Instance Method Details
#optimizable? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Test if the predicate is a contradiction
91 92 93 94 |
# File 'lib/axiom/optimizer/algebra/restriction.rb', line 91 def optimizable? predicate.equal?(Axiom::Function::Proposition::Contradiction.instance) || constant_false_predicate? end |
#optimize ⇒ Relation
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
A Restriction with a contradiction matches nothing
101 102 103 |
# File 'lib/axiom/optimizer/algebra/restriction.rb', line 101 def optimize Axiom::Relation::Empty.new(operation.header) end |