예제 #1
0
        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));
        }
예제 #2
0
        /// <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));
 }
예제 #5
0
 Reduce(IIntervalAbstraction <Variable, Expression> left, WeakUpperBounds <Variable, Expression> right)
 {
     return(this.Factory(left, right));
 }