# File truthtable.rb, line 234 def formula input_names = all_names input_names_ary = sort_names(input_names.keys) tbl = {} @table.each {|inputs, output| inputs2 = [:x] * input_names.length inputs.each {|name, input| inputs2[input_names[name]] = input ? 1 : 0 } tbl[inputs2] = output ? 1 : 0 } qm = QM.qm(tbl) r = [] qm.each {|term| t = [] term.each_with_index {|v, i| if v == false t << ("!" + input_names_ary[i]) elsif v == true t << input_names_ary[i] end } r << t.join('&') } r.join(' | ') end