# 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).

absolute_disinguishing_power(tt)

Returns the absolute distinguishing power of a function The absolute distinguishing power of a function f is the number of distinguishing pair {i,j} of bits, where f(i) != f(j).

relative_distinguishing_power(tt, target_tt)

None