Theory Formula
theory Formula
imports
Event_Data
Regex
"MFOTL_Monitor.Interval"
"MFOTL_Monitor.Trace"
"MFOTL_Monitor.Abstract_Monitor"
"HOL-Library.Mapping"
Containers.Set_Impl
begin
section ‹Metric first-order dynamic logic›
derive (eq) ceq enat
instantiation enat :: ccompare begin
definition ccompare_enat :: "enat comparator option" where
"ccompare_enat = Some (λx y. if x = y then order.Eq else if x < y then order.Lt else order.Gt)"
instance by intro_classes
(auto simp: ccompare_enat_def split: if_splits intro!: comparator.intro)
end
context begin
subsection ‹Formulas and satisfiability›
qualified type_synonym name = String.literal
qualified type_synonym event = "(name × event_data list)"
qualified type_synonym database = "(name, event_data list set list) mapping"
qualified type_synonym prefix = "(name × event_data list) prefix"
qualified type_synonym trace = "(name × event_data list) trace"
qualified type_synonym env = "event_data list"
subsubsection ‹Syntax›
qualified