print("_______________________________________________")
print("incremental  places: " + str(res.n_places))
print("incremental trans: " + str(len(res.transitions)))

print("_______________________________________________")
print("conjunction places: " + str(res2.n_places))
print("conjunction trans: " + str(len(res2.transitions)))

res.remove_dead_trans_tina()
res2.remove_dead_trans_tina()

if True:
    plant_sup_trans_map=pac.build_plant_sup_trans_map(pn, res2)
    mod_places_mapping=pac.build_modified_places_mapping(pn, res2, plant_sup_trans_map)
    input_place_combs=pac.InputPlaceCombs(mod_places_mapping)
    for (trans, places_list, ks_list) in zip(pn.transitions, input_place_combs.place_ids, input_place_combs.all_ks):
        if trans.event in uc_events:
            for (place_ids, k_tuples) in zip(places_list, ks_list):
                for k_tuple in k_tuples:
                    pcm=pac.PartialCoveringMarking(trans, res2.n_places, place_ids, k_tuple)
                    (new_pn, reach_marking) = pac.build_pn_from_partial_cover_marking(pcm, res2)
                    print("CHECKING")
                    new_pn.check_reachability(reach_marking)
                    
            



print(res.n_places)
print(len(res.transitions))
#formulas_list=formulas_list[1:]+[formulas_list[0]]
n_specs=1
for (formula, spgec_def) in zip(formulas_list, spgecs_list):
    ltl_dfa=LtlDfa(formula)
    res=alg_pn_compositions.alg_pn_ltl_dfa_composition(res,ltl_dfa,spgec_def,n_specs)
    #print(res.n_places)
    #print(len(res.transitions))
    res.remove_dead_trans_lola()
    #print(res.n_places)
    #print(len(res.transitions))
    n_specs+=1
    
trans_map=pn_admis_check.build_plant_sup_trans_map(pn, res)
mod_places=pn_admis_check.build_modified_places_mapping(pn, res, trans_map)
mod_places_obj=pn_admis_check.InputPlaceCombs(mod_places)

#for i in range(0, len(pn.transitions)):
    #trans=pn.transitions[i]
    #if trans.event in pn.uc_events:
        #place_ids=mod_places_obj.place_ids[i]
        #all_ks=mod_places_obj.all_ks[i]
        #for (mod_places, ks) in zip(place_ids, all_ks):
            #for k_tuple in ks:
                #partial_cover_marking=pn_admis_check.PartialCoverMarking(trans, res.n_places,  mod_places, k_tuple)
                #(new_sup, marking)=pn_admis_check.build_pn_from_partial_cover_marking(partial_cover_marking, res)
                #new_sup.check_reachability(marking)
                ##new_sup.remove_dead_trans_tina()

##new_sup.random_run(0)