# 4.2.1.8. Reflection operations¶

These functions return information about declared or inferred variable bounds and domains.

In this section: annotate, dom, dom_array, dom_array_occurring, dom_bounds_array, dom_size, fix, has_ann, has_bounds, has_ub_set, is_fixed, is_same, lb, lb_array, ub, ub_array.

## dom_bounds_array¶

 function set of int: dom_bounds_array(array [$T] of var int: x) function set of int: dom_bounds_array(array [$T] of var opt int: x)  Return approximation of union of all domains of the elements in array x

## dom_size¶

 function int: dom_size(var int: x)  Return cardinality of the domain of x

## fix¶

 1. function $T: fix(var$T: x) 2. function opt $T: fix(var opt$T: x) 3. function array [$U] of$T: fix(array [$U] of var$T: x) 4. function array [$U] of opt$T: fix(array [$U] of var opt$T: x)  1, 2. Check if the value of x is fixed at this point in evaluation. If it is fixed, return its value, otherwise abort. 3, 4. Check if the value of every element of the array x is fixed at this point in evaluation. If all are fixed, return an array of their values, otherwise abort.

## is_same¶

 test is_same(any $T: x, any$U: y)  Test if x and y are the same variable

## lb¶

 1. function int: lb(var int: x) 2. function int: lb(var opt int: x) 3. function float: lb(var float: x) 4. function float: lb(var opt float: x) 5. function set of int: lb(var set of int: x) 6. function array [$U] of int: lb(array [$U] of var int: x) 7. function array [$U] of float: lb(array [$U] of var float: x) 8. function array [$U] of set of int: lb(array [$U] of var set of int: x)  1-5. Return lower bound of x 6-8. Return array of lower bounds of the elements in array x