private Pentagons <Variable, Expression> FactoryOfPentagons( IIntervalAbstraction <Variable, Expression> left, WeakUpperBounds <Variable, Expression> right) { Contract.Requires(left != null); Contract.Requires(right != null); Contract.Ensures(Contract.Result <Pentagons <Variable, Expression> >() != null); return(new Pentagons <Variable, Expression>(left, right, this.expManager)); }
/// <summary> /// Please note that the decoder MUST be already be set for the <code>left</code> and <code>right</code> abstract domains /// </summary> public Pentagons( IIntervalAbstraction <Variable, Expression> left, WeakUpperBounds <Variable, Expression> right, ExpressionManagerWithEncoder <Variable, Expression> expManager) : base(left, right) { Contract.Requires(left != null); Contract.Requires(right != null); Contract.Requires(expManager != null); this.expManager = expManager; }
IIntervalAbstraction <Variable, Expression> IIntervalAbstraction <Variable, Expression> .Widening(IIntervalAbstraction <Variable, Expression> other) { var result = this.Widening(other) as IIntervalAbstraction <Variable, Expression>; Contract.Assume(result != null); return(result); }
bool IIntervalAbstraction <Variable, Expression> .LessEqual(IIntervalAbstraction <Variable, Expression> other) { return(this.LessEqual(other)); }
Reduce(IIntervalAbstraction <Variable, Expression> left, WeakUpperBounds <Variable, Expression> right) { return(this.Factory(left, right)); }