lift_definition p1 :: ctr_loc is0by auto
lift_definition p2 :: ctr_loc is1by auto
lift_definition p3 :: ctr_loc is2by auto
lift_definition x :: label is0by auto
lift_definition y :: label is1by auto
lift_definition q1 :: state is0by auto
lift_definition q2 :: state is1by auto
lift_definition qf :: state is2by auto
definition final_ctr_loc where"final_ctr_loc = {}" definition final_ctr_loc_st where"final_ctr_loc_st = {q2}" definition initial_ctr_loc where"initial_ctr_loc = {}" definition initial_ctr_loc_st where"initial_ctr_loc_st = {qf}" (* Query specific part END *)
instantiation ctr_loc :: finite begin instanceby (standard, rule finite_surj[of "{0 ..< ctr_locN}" _ Abs_ctr_loc])
(simp, metis Rep_ctr_loc Rep_ctr_loc_inverse imageI subsetI) end instantiation label :: finite begin instanceby (standard, rule finite_surj[of "{0 ..< labelN}" _ Abs_label])
(simp, metis Rep_label Rep_label_inverse imageI subsetI) end instantiation state :: finite begin instanceby (standard, rule finite_surj[of "{0 ..< stateN}" _ Abs_state])
(simp, metis Rep_state Rep_state_inverse imageI subsetI) end
lift_definition (code_dt) ctr_loc_list :: "ctr_loc list"is"[0 ..< ctr_locN]"by (auto simp: list.pred_set) instantiation ctr_loc :: enum begin definition"enum_ctr_loc = ctr_loc_list" definition"enum_all_ctr_loc P = list_all P ctr_loc_list" definition"enum_ex_ctr_loc P = list_ex P ctr_loc_list" instanceby (standard, auto simp: enum_ctr_loc_def enum_all_ctr_loc_def enum_ex_ctr_loc_def
ctr_loc_list_def image_iff distinct_map inj_on_def Abs_ctr_loc_inject
list.pred_map list.pred_set list_ex_iff) (metis Abs_ctr_loc_cases)+ end
instantiation ctr_loc :: linorder begin
lift_definition less_ctr_loc :: "ctr_loc ==> ctr_loc ==> bool"is"(<)" .
lift_definition less_eq_ctr_loc :: "ctr_loc ==> ctr_loc ==> bool"is"(≤)" . instanceby (standard; transfer) auto end
instantiation ctr_loc :: equal begin
lift_definition equal_ctr_loc :: "ctr_loc ==> ctr_loc ==> bool"is"(=)" . instanceby (standard; transfer) auto end
lift_definition (code_dt) label_list :: "label list"is"[0 ..< labelN]"by (auto simp: list.pred_set) instantiation label :: enum begin definition"enum_label = label_list" definition"enum_all_label P = list_all P label_list" definition"enum_ex_label P = list_ex P label_list" instanceby (standard, auto simp: enum_label_def enum_all_label_def enum_ex_label_def
label_list_def image_iff distinct_map inj_on_def Abs_label_inject
list.pred_map list.pred_set list_ex_iff) (metis Abs_label_cases)+ end
instantiation label :: linorder begin
lift_definition less_label :: "label ==> label ==> bool"is"(<)" .
lift_definition less_eq_label :: "label ==> label ==> bool"is"(≤)" . instanceby (standard; transfer) auto end
instantiation label :: equal begin
lift_definition equal_label :: "label ==> label ==> bool"is"(=)" . instanceby (standard; transfer) auto end
instantiation state :: equal begin
lift_definition equal_state :: "state ==> state ==> bool"is"(=)" . instanceby (standard; transfer) auto end
(* The check function agrees with the encoded answer (Some True)
and therefore the proof succeeds as expected. *) lemma "check pds_rules initial_automaton initial_ctr_loc initial_ctr_loc_st final_automaton final_ctr_loc final_ctr_loc_st = Some True" by eval
end
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.