Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  utp_dynlog.thy

  Sprache: Isabelle
 

section  Dynamic Logic

theory utp_dynlog
  imports utp_sequent utp_wp
begin

subsection  Definitions

named_theorems dynlog_simp and dynlog_intro

definition dBox :: "'s hrel ==> 's upred ==> 's upred" ([_]_ [0,999999)
where [upred_defs]: "dBox A Φ = A wp Φ"

definition dDia :: "'s hrel ==> 's upred ==> 's upred" (<_>_ [0,999999)
where [upred_defs]: "dDia A Φ = (¬ [A] (¬ Φ))"

subsection  Box Laws

lemma dBox_false [dynlog_simp]: "[false]Φ = true"
  by (rel_auto)

lemma dBox_skip [dynlog_simp]: "[II]Φ = Φ"
  by (rel_auto)

lemma dBox_assigns [dynlog_simp]: "[σa]Φ = (σ Φ)"
  by (simp add: dBox_def wp_assigns_r)

lemma dBox_choice [dynlog_simp]: "[P Q]Φ = ([P]Φ [Q]Φ)"
  by (rel_auto)

lemma dBox_seq: "[P ;; Q]Φ = [P][Q]Φ"
  by (simp add: dBox_def wp_seq_r)

lemma dBox_star_unfold: "[P\<star>]Φ = (Φ [P][P\<star>]Φ)"
  by (metis dBox_choice dBox_seq dBox_skip ustar_unfoldl)

lemma dBox_star_induct: "`(Φ [P\<star>]==> [P]Φ)) ==> [P\<star>]Φ`"
  by (rel_simp, metis (mono_tags, lifting) mem_Collect_eq rtrancl_induct)

lemma dBox_test: "[?[p]]Φ = (p ==> Φ)"
  by (rel_auto)

subsection  Diamond Laws

lemma dDia_false [dynlog_simp]: "<false>Φ = false"
  by (simp add: dBox_false dDia_def)

lemma dDia_skip [dynlog_simp]: "<II>Φ = Φ"
  by (simp add: dBox_skip dDia_def)

lemma dDia_assigns [dynlog_simp]: "<σa>Φ = (σ Φ)"
  by (simp add: dBox_assigns dDia_def subst_not)

lemma dDia_choice: "<P Q>Φ = (<P>Φ <Q>Φ)"
  by (simp add: dBox_def dDia_def wp_choice)

lemma dDia_seq: "<P ;; Q>Φ = <P><Q>Φ"
  by (simp add: dBox_def dDia_def wp_seq_r)

lemma dDia_test: "<?[p]>Φ = (p Φ)"
  by (rel_auto)

subsection  Sequent Laws

lemma sBoxSeq [dynlog_simp]: ⊨!!! [P ;; Q]Φ Γ ⊨!!! [P][Q]Φ"
  by (simp add: dBox_def wp_seq_r)

lemma sBoxTest [dynlog_intro]: ⊨!!! (b ==> Ψ) ==> Γ ⊨!!! [?[b]]Ψ"
  by (rel_auto)

lemma sBoxAssignFwd [dynlog_simp]: "[ vwb_lens x; x v; x Γ ] ==>⊨!!! [x := v]Φ) = ((&x =u v Γ) ⊨!!! Φ)"
  by (rel_auto, metis vwb_lens_wb wb_lens.get_put)

lemma sBoxIndStar: "⊨!!!==> [P]Φ]u ==> Φ ⊨!!! [P\<star>]Φ"
  by (rel_simp, metis (mono_tags, lifting) mem_Collect_eq rtrancl_induct)

lemma hoare_as_dynlog: "{p}Q{r}u = (p ⊨!!! [Q]r)"
  by (rel_auto)

end

Messung V0.5 in Prozent
C=92 H=98 G=94

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet am  2026-06-10) ¤

*© 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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge