generalize-counter-interval ( interval initial-interval class -- interval' )


Vocabulary
compiler.tree.propagation.recursive

Inputs
intervalan object
initial-intervalan object
classan object


Outputs
interval'an object


Definition


:: generalize-counter-interval
( interval initial-interval class -- interval' )
interval class counter-class :> class {
{
[ interval initial-interval interval-subset? ]
[ initial-interval ]
}
{ [ interval empty-interval? ] [ initial-interval ] }
{
[ interval initial-interval interval>= t eq? ]
[
class max-value [a,a] initial-interval
interval-union
]
}
{
[ interval initial-interval interval<= t eq? ]
[
class min-value [a,a] initial-interval
interval-union
]
}
[ class class-interval ]
} cond ;