# Properties¶

The header `<kitty/properties.hpp>` implements functions compute function properties.

Function
Description

`chow_parameters(tt)`

Returns the Chow parameter of a function The Chow parameters is a set of values

`foreach_runlength(tt, fn)`

Generate runlength encoding of a function This function iterates through the bits of a function and calls a function for each runlength and value. For example, if this function is called for the AND function 1000, it will call

`is_canalizing(tt)`

Checks whether a function is canalizing.

`is_horn(tt)`

Checks whether a function is Horn A function is Horn, if it can be represented using Horn clauses.

`is_krom(tt)`

Checks whether a function is Krom A function is Krom, if it can be represented using Krom clauses.

`is_monotone(tt)`

Checks whether a function is monotone A function is monotone if f(x) ≤ f(y) whenever x ⊆ y.

`is_normal(tt)`

Checks if a function is normal A function is normal iff f(0, …, 0) = 0.

`is_selfdual(tt)`

Checks whether a function is selfdual A function is selfdual if !f(x, y, …, z) = f(!x, !y, …, !z)

`is_symmetric_in(tt, var_index1, var_index2)`

Checks whether a function is symmetric in a pair of variables A function is symmetric in two variables, if it is invariant to swapping them.

`is_trivial(tt)`

Checks if a function is trivial A function is trival if it is equal to (or the complement of) a variable or constant zero.

`runlength_pattern(tt)`

Returns the runlength encoding pattern of a function This function does only count the lengths, e.g., for 1000 it will return

`polynomial_degree(tt)`

Compute polynomial degree The polyomial degree is the number of variables in the largest monomial in the functoons ANF (PPRM).

`relative_distinguishing_power(tt, target_tt)`

Returns the relative distinguishing power of a function wrt. to a target function Quantifies the number of distinguishing bit pairs in the target function that can be distinguished by another function.

`is_covered_with_divisors(target, divisors)`

Return true iff each distinguishing bit pair of the target function is also distinguishable by the divisor functions.