(* Title: HOL/HOLCF/IOA/TL.thy Author: Olaf Müller
*)
section \<open>A General Temporal Logic\<close>
theory TL imports Pred Sequence begin
default_sort type
type_synonym'a temporal = "'a Seq predicate"
definition validT :: "'a Seq predicate \ bool" (\\<^bold>\ _\ [9] 8) where"(\<^bold>\ P) \ (\s. s \ UU \ s \ nil \ (s \ P))"
definition unlift :: "'a lift \ 'a" where"unlift x = (case x of Def y \ y)"
definition Init :: "'a predicate \ 'a temporal" (\\_\\ [0] 1000) where"Init P s = P (unlift (HD \ s))" \<comment> \<open>this means that for \<open>nil\<close> and \<open>UU\<close> the effect is unpredictable\<close>
definitionNext :: "'a temporal \ 'a temporal" (\(\indent=1 notation=\prefix Next\\\_)\ [80] 80) where"(\P) s \ (if TL \ s = UU \ TL \ s = nil then P s else P (TL \ s))"
definition suffix :: "'a Seq \ 'a Seq \ bool" where"suffix s2 s \ (\s1. Finite s1 \ s = s1 @@ s2)"
lemma STL1a: "\<^bold>\ P \ \<^bold>\ (\P)" by (simp add: validT_def satisfies_def Box_def tsuffix_def)
lemma STL1b: "\ P \ \<^bold>\ (Init P)" by (simp add: valid_def validT_def satisfies_def Init_def)
lemma STL1: assumes"\ P" shows "\<^bold>\ (\(Init P))" proof - from assms have"\<^bold>\ (Init P)" by (rule STL1b) thenshow ?thesis by (rule STL1a) qed
(*Note that unlift and HD is not at all used!*) lemma STL4: "\ (P \<^bold>\ Q) \ \<^bold>\ (\(Init P) \<^bold>\ \(Init Q))" by (simp add: valid_def validT_def satisfies_def IMPLIES_def Box_def Init_def)
subsection \<open>LTL Axioms by Manna/Pnueli\<close>
lemma tsuffix_TL [rule_format]: "s \ UU \ s \ nil \ tsuffix s2 (TL \ s) \ tsuffix s2 s" apply (unfold tsuffix_def suffix_def) apply auto apply (Seq_case_simp s) apply (rule_tac x = "a \ s1" in exI) apply auto done
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 ist noch experimentell.