A boolean function class that represents a General Linear Equivalence Class

The boolean_function_general_linear_class module defines the BooleanFunctionGeneralLinearClass class, which is a subclass of BooleanFunctionImproved that represents a general linear equivalence class of boolean functions.

AUTHORS:

  • Paul Leopardi (2023-02-05): initial version

EXAMPLES:

sage: from boolean_cayley_graphs.boolean_function_general_linear_class import (
....:     BooleanFunctionGeneralLinearClass)
sage: bf = BooleanFunctionGeneralLinearClass([0,0,0,1])
sage: type(bf)
<class 'boolean_cayley_graphs.boolean_function_general_linear_class.BooleanFunctionGeneralLinearClass'>
sage: bf.truth_table(format='int')
(0, 0, 0, 1)
class boolean_cayley_graphs.boolean_function_general_linear_class.BooleanFunctionGeneralLinearClass[source]

Bases: boolean_cayley_graphs.boolean_function_improved.BooleanFunctionImproved, boolean_cayley_graphs.saveable.Saveable

A subclass of BooleanFunctionImproved that represents a general linear equivalence class of boolean functions.

The class inherits from BooleanFunctionImproved and is initialized in the same way. The class inherits from Saveable to obtain load_mangled and save_mangled methods.

EXAMPLES:

sage: from boolean_cayley_graphs.boolean_function_general_linear_class import (
....:     BooleanFunctionGeneralLinearClass)
sage: bf1 = BooleanFunctionGeneralLinearClass([0,1,0,0])
sage: type(bf1)
<class 'boolean_cayley_graphs.boolean_function_general_linear_class.BooleanFunctionGeneralLinearClass'>
sage: bf1.algebraic_normal_form()
x0*x1 + x0
sage: bf1.truth_table()
(False, True, False, False)

TESTS:

sage: from boolean_cayley_graphs.boolean_function_general_linear_class import (
....:     BooleanFunctionGeneralLinearClass)
sage: bf = BooleanFunctionGeneralLinearClass([0,1,0,0])
sage: print(bf)
Boolean function with 2 variables

sage: from boolean_cayley_graphs.boolean_function_general_linear_class import (
....:     BooleanFunctionGeneralLinearClass)
sage: bf = BooleanFunctionGeneralLinearClass([0,1,0,0])
sage: latex(bf)
\text{\texttt{Boolean{ }function{ }with{ }2{ }variables}}
classmethod from_csv(csv_file_name)[source]

Constructor from a csv file.

The csv file is assumed to be produced by the method save_as_csv().

INPUT:

  • cls – the class object.

  • csv_file_name – string: the name of the csv file to read from.

EXAMPLES:

sage: import csv
sage: import os
sage: from boolean_cayley_graphs.boolean_function_general_linear_class import (
....:     BooleanFunctionGeneralLinearClass)
sage: bf2 = BooleanFunctionGeneralLinearClass([1,0,1,1])
sage: bf2_csv_name = tmp_filename(ext='.csv')
sage: bf2.save_as_csv(bf2_csv_name)
sage: bf2_test = BooleanFunctionGeneralLinearClass.from_csv(bf2_csv_name)
sage: bf2 == bf2_test
True
sage: os.remove(bf2_csv_name)
sage: bf3 = BooleanFunctionGeneralLinearClass([0,1,0,0]*2)
sage: bf3_csv_name = tmp_filename(ext='.csv')
sage: bf3.save_as_csv(bf3_csv_name)
sage: bf3_test = BooleanFunctionGeneralLinearClass.from_csv(bf3_csv_name)
sage: bf3 == bf3_test
True
classmethod from_tt_buffer(dim, tt_buffer)[source]

Constructor from the buffer tt_buffer.

The buffer tt_buffer is assumed to be the result of method tt_buffer(), which returns a result of type buffer representing a truth table in hex.

INPUT:

  • cls – the class object.

  • dim – integer: the dimension of the Boolean function.

  • tt_buffer – buffer: the result of the method tt_buffer() for the Boolean function.

EXAMPLES:

sage: from boolean_cayley_graphs.boolean_function_general_linear_class import (
....:     BooleanFunctionGeneralLinearClass)
sage: bf2 = BooleanFunctionGeneralLinearClass([0,1,0,0])
sage: bf2_tt_buffer = bf2.tt_buffer()
sage: bf2_test = BooleanFunctionGeneralLinearClass.from_tt_buffer(2, bf2_tt_buffer)
sage: bf2_test.algebraic_normal_form()
x0*x1 + x0
sage: bf2 == bf2_test
True
sage: bf3 = BooleanFunctionGeneralLinearClass([0,1,0,0]*2)
sage: bf3.nvariables()
3
sage: bf3_tt_buffer = bf3.tt_buffer()
sage: bf3_test = BooleanFunctionGeneralLinearClass.from_tt_buffer(3, bf3_tt_buffer)
sage: bf3 == bf3_test
True
classmethod from_tt_hex(dim, tt_hex)[source]

Constructor from the dimension dim, and the string tt_hex.

The string tt_hex is assumed to be the result of method tt_hex(), which returns a string representing a truth table in hex.

INPUT:

  • cls – the class object.

  • dim – integer: the dimension of the Boolean function.

  • tt_hex – string: the result of the method tt_hex() for the Boolean function.

EXAMPLES:

sage: from boolean_cayley_graphs.boolean_function_general_linear_class import (
....:     BooleanFunctionGeneralLinearClass)
sage: bf2 = BooleanFunctionGeneralLinearClass([0,1,0,0])
sage: bf2_tt_hex = bf2.tt_hex()
sage: bf2_test = BooleanFunctionGeneralLinearClass.from_tt_hex(2, bf2_tt_hex)
sage: bf2_test.algebraic_normal_form()
x0*x1 + x0
sage: bf2 == bf2_test
True

TESTS:

sage: from boolean_cayley_graphs.boolean_function_general_linear_class import (
....:     BooleanFunctionGeneralLinearClass)
sage: bf1 = BooleanFunctionGeneralLinearClass([0,1])
sage: bf1_tt_hex = bf1.tt_hex()
sage: bf1_test = BooleanFunctionGeneralLinearClass.from_tt_hex(1, bf1_tt_hex)
sage: bf1_test.algebraic_normal_form()
x
sage: bf1 == bf1_test
True
sage: bf3 = BooleanFunctionGeneralLinearClass([0,1,0,0]*2)
sage: bf3.nvariables()
3
sage: bf3_tt_hex = bf3.tt_hex()
sage: bf3_test = BooleanFunctionGeneralLinearClass.from_tt_hex(3, bf3_tt_hex)
sage: bf3 == bf3_test
True