Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Isabelle/Doc/Tutorial/CTL/   (Beweissystem Isabelle Version 2025-1©)  Datei vom 16.11.2025 mit Größe 7 kB image not shown  

Quelle  CTLind.thy

  Sprache: Isabelle
 

(*<*)theory CTLind imports CTL begin(*>*)

subsectionCTL Revisited

text\label{sec:CTL-revisited}
 index{CTL|(}%
  purpose of this section is twofold: to demonstrate
  of the induction principles and heuristics discussed above and to
  how inductive definitions can simplify proofs.
  \S\ref{sec:CTL} we gave a fairly involved proof of the correctness of a
  checker for CTL\@. In particular the proof of the
 {thm[source]infinity_lemma} on the way to @{thm[source]AF_lemma2} is not as
  as one might expect, due to the SOME operator
 . Below we give a simpler proof of @{thm[source]AF_lemma2}
  on an auxiliary inductive definition.

  us call a (finite or infinite) path \emph{termA-avoiding} if it does
  touch any node in the set termA. Then @{thm[source]AF_lemma2} says
  if no infinite path from some state terms is termA-avoiding,
  props lfp(af A). We prove this by inductively defining the set
 termAvoid s A of states reachable from terms by a finite termA-avoiding path:
  Second proof of opposite direction, directly by well-founded induction
  on the initial segment of M that avoids A.
 


inductive_set
  Avoid :: "state ==> state set ==> state set"
  for s :: state and A :: "state set"
where
    "s Avoid s A"
  | "[ t Avoid s A; t A; (t,u) M ] ==> u Avoid s A"

text
  is easy to see that for any infinite termA-avoiding path termf
  propf(0::nat) Avoid s A there is an infinite termA-avoiding path
  with terms because (by definition of constAvoid) there is a
  termA-avoiding path from terms to termf(0::nat).
  proof is by induction on propf(0::nat) Avoid s A. However,
  requires the following
 , as explained in \S\ref{sec:ind-var-in-prems} above;
  rule_format directive undoes the reformulation after the proof.
 


lemma ex_infinite_path[rule_format]:
  "t Avoid s A ==>
   fPaths t. (i. f i A) (pPaths s. i. p i A)"
apply(erule Avoid.induct)
 apply(blast)
apply(clarify)
apply(drule_tac x = "λi. case i of 0 ==> t | Suc i ==> f i" in bspec)
apply(simp_all add: Paths_def split: nat.split)
done

text\noindent
  base case (propt = s) is trivial and proved by blast.
  the induction step, we have an infinite termA-avoiding path termf
  from termu, a successor of termt. Now we simply instantiate
  fPaths t in the induction hypothesis by the path starting with
 termt and continuing with termf. That is what the above $\lambda$-term
 . Simplification shows that this is a path starting with termt
  that the instantiated induction hypothesis implies the conclusion.

  we come to the key lemma. Assuming that no infinite termA-avoiding
  starts from terms, we want to show props lfp(af A). For the
  proof this must be generalized to the statement that every point termt
 `between'' terms and termA, in other words all of termAvoid s A,
  contained in termlfp(af A):
 


lemma Avoid_in_lfp[rule_format(no_asm)]:
  "pPaths s. i. p i A ==> t Avoid s A t lfp(af A)"

txt\noindent
  proof is by induction on the ``distance'' between termt and termA. Remember that proplfp(af A) = A M-1 `` lfp(af A).
  termt is already in termA, then propt lfp(af A) is
 . If termt is not in termA but all successors are in
 termlfp(af A) (induction hypothesis), then propt lfp(af A) is
  trivial.

  formal counterpart of this proof sketch is a well-founded induction
 ~termM restricted to termAvoid s A - A, roughly speaking:
 {term[display]"{(y,x). (x,y) M x Avoid s A x A}"}
  we shall see presently, the absence of infinite termA-avoiding paths
  from terms implies well-foundedness of this relation. For the
  we assume this and proceed with the induction:
 


apply(subgoal_tac "wf{(y,x). (x,y) M x Avoid s A x A}")
 apply(erule_tac a = t in wf_induct)
 apply(clarsimp)
(*<*)apply(rename_tac t)(*>*)

txt\noindent
 {subgoals[display,indent=0,margin=65]}
  the induction hypothesis states that if propt A
  all successors of termt that are in termAvoid s A are in
 termlfp (af A). Unfolding termlfp in the conclusion of the first
  once, we have to prove that termt is in termA or all successors
  termt are in termlfp (af A). But if termt is not in termA,
  second
 constAvoid-rule implies that all successors of termt are in
 termAvoid s A, because we also assume propt Avoid s A.
 , by the induction hypothesis, all successors of termt are indeed in
 termlfp(af A). Mechanically:
 


 apply(subst lfp_unfold[OF mono_af])
 apply(simp (no_asm) add: af_def)
 apply(blast intro: Avoid.intros)

txt
  proved the main goal, we return to the proof obligation that the
  used above is indeed well-founded. This is proved by contradiction: if
  relation is not well-founded then there exists an infinite termA-avoiding path all in termAvoid s A, by theorem
 {thm[source]wf_iff_no_infinite_down_chain}:
 {thm[display]wf_iff_no_infinite_down_chain[no_vars]}
  lemma @{thm[source]ex_infinite_path} the existence of an infinite
 termA-avoiding path starting in terms follows, contradiction.
 


apply(erule contrapos_pp)
apply(simp add: wf_iff_no_infinite_down_chain)
apply(erule exE)
apply(rule ex_infinite_path)
apply(auto simp add: Paths_def)
done

text
  (no_asm) modifier of the rule_format directive in the
  of the lemma means
  the assumption is left unchanged; otherwise the p
  be turned
  a p, which would complicate matters below. As it is,
 {thm[source]Avoid_in_lfp} is now
 {thm[display]Avoid_in_lfp[no_vars]}
  main theorem is simply the corollary where propt = s,
  the assumption propt Avoid s A is trivially true
  the first constAvoid-rule. Isabelle confirms this:%
 index{CTL|)}


theorem AF_lemma2:  "{s. p Paths s. i. p i A} lfp(af A)"
by(auto elim: Avoid_in_lfp intro: Avoid.intros)


(*<*)end(*>*)

Messung V0.5 in Prozent
C=-20 H=100 G=72

¤ Dauer der Verarbeitung: 0.9 Sekunden  (vorverarbeitet am  2026-06-09) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.