public Map<String, List<TrigerState[]>> generateYFunctions(){
        Map<String, List<TrigerState[]>> tmp_functions = new HashMap<>();
        
        for (Map.Entry<String, List<boolean[]>> entry : y_functions.entrySet()) {
            String string = entry.getKey();
            List<boolean[]> list = entry.getValue();

            for (int i = 0; i < list.size(); i++) {
                TrigerState new_state[] = new TrigerState[list.get(i).length];
                for (int j = 0; j < list.get(i).length; j++) {
                    new_state[j] = list.get(i)[j]?TrigerState.ONE:TrigerState.ZERO;
                }
                if(!tmp_functions.containsKey(string)){
                    tmp_functions.put(string, new ArrayList<TrigerState[]>());
                }
                if(!tmp_functions.get(string).contains(new_state)){
                    tmp_functions.get(string).add(new_state);
                }
            }
            
        }
       
        
        return tmp_functions;
    }