private void button2_Click(object sender, EventArgs e)
        {
            Deskryptor desk = new Deskryptor();
            Dictionary <string, int> slownik      = new Dictionary <string, int>();
            List <Regula3>           reguly       = new List <Regula3>();
            List <Deskryptor>        pDeskryptory = new List <Deskryptor>();

            string[][] test;
            foreach (var decyzje in fUnkialnosc(fKolumna(systemDecyzyjny, ostatni)))
            {
                List <int> maska1 = new List <int>();
                List <int> maska2 = new List <int>();
                foreach (var m in maska(konceptFinall(decyzje)))
                {
                    maska1.Add(m);
                }

                string[][] tb;
                do
                {
                    pDeskryptory.Clear();
                    if (maska1.Count() != konceptFinall(decyzje).Count())
                    {
                        tb   = konceptBezPok(konceptFinall(decyzje), maska1);
                        desk = fMaxCalosc(konceptBezPok(konceptFinall(decyzje), maska1), pDeskryptory);
                    }
                    else
                    {
                        desk = fMaxCalosc(konceptFinall(decyzje), pDeskryptory);
                    }
                    Regula3 r = new Regula3(decyzje, desk);


                    do
                    {
                        if (!r.czyRegulaSprzeczna(systemDecyzyjny))
                        {
                            pDeskryptory.Add(desk);
                            desk = fMaxCalosc(konceptPoPokryciu(konceptFinall(decyzje), maska2), pDeskryptory);
                            r    = dodajDeskryptor(r, desk);
                            maska2.Clear();
                            foreach (var m in maska(konceptFinall(decyzje)))
                            {
                                maska2.Add(m);
                            }
                            maska2 = r.generujPokjrycie(konceptFinall(decyzje), maska2);
                            if (r.czyRegulaSprzeczna(systemDecyzyjny))
                            {
                                r.SupportReguly(systemDecyzyjny);
                                reguly.Add(r);
                                maska1 = r.generujPokjrycie(konceptFinall(decyzje), maska1);
                            }
                        }
                        else
                        {
                            r.SupportReguly(systemDecyzyjny);
                            reguly.Add(r);
                            maska1 = r.generujPokjrycie(konceptFinall(decyzje), maska1);
                        }
                    } while (!r.czyRegulaSprzeczna(systemDecyzyjny));
                } while (maska1.Count() != 0);
            }
            foreach (var reg in reguly)
            {
                wynik.Text += reg.ToString();
            }
        }
 public Regula3 dodajDeskryptor(Regula3 regula, Deskryptor desk)
 {
     regula.deskryptor.Add(desk);
     return(regula);
 }