Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Isabelle/Archive-of-Formal-Proofs/thys/UTP/utp/   (Sammlung formaler Beweise Version 2026-5©)  Datei vom 29.4.2026 mit Größe 2 kB image not shown  

Quelle  utp_meta_subst.thy

  Sprache: Isabelle
 

section  Meta-level Substitution

theory utp_meta_subst
imports utp_subst utp_tactics
begin

text  Meta substitution substitutes a HOL variable in a UTP expression for another UTP expression.
 It is analogous to UTP substitution, but acts on functions.

  
lift_definition msubst :: "('b ==> ('a, 'α) uexpr) ==> ('b, 'α) uexpr ==> ('a, 'α) uexpr"
is "λ F v b. F (v b) b" .
  
update_uexpr_rep_eq_thms ―  Reread @{text rep_eq} theorems.
    
syntax
  "_msubst"   :: "logic ==> pttrn ==> logic ==> logic" ((_[__]) [990,0,0991)

syntax_consts
  "_msubst" == msubst

translations
  "_msubst P x v" == "CONST msubst (λ x. P) v"
     
lemma msubst_lit [usubst]: "«x¬[xv] = v"
  by (pred_auto)

lemma msubst_const [usubst]: "P[xv] = P"
  by (pred_auto) 

lemma msubst_pair [usubst]: "(P x y)[(x, y) (e, f)u] = (P x y)[x e][y f]"
  by (rel_auto)

lemma msubst_lit_2_1 [usubst]: "«x¬[(x,y)(u,v)u] = u"
  by (pred_auto)

lemma msubst_lit_2_2 [usubst]: "«y¬[(x,y)(u,v)u] = v"
  by (pred_auto)

lemma msubst_lit' [usubst]: "«y¬[xv] = «y¬"
  by (pred_auto)

lemma msubst_lit'_2 [usubst]: "«z¬[(x,y)v] = «z¬"
  by (pred_auto)
 
lemma msubst_uop [usubst]: "(uop f (v x))[xu] = uop f ((v x)[xu])"
  by (rel_auto)

lemma msubst_uop_2 [usubst]: "(uop f (v x y))[(x,y)u] = uop f ((v x y)[(x,y)u])"
  by (pred_simp, pred_simp)
 
lemma msubst_bop [usubst]: "(bop f (v x) (w x))[xu] = bop f ((v x)[xu]) ((w x)[xu])"
  by (rel_auto)

lemma msubst_bop_2 [usubst]: "(bop f (v x y) (w x y))[(x,y)u] = bop f ((v x y)[(x,y)u]) ((w x y)[(x,y)u])"
  by (pred_simp, pred_simp)

lemma msubst_var [usubst]:
  "(utp_expr.var x)[yu] = utp_expr.var x"
  by (pred_simp)

lemma msubst_var_2 [usubst]:
  "(utp_expr.var x)[(y,z)u] = utp_expr.var x"
  by (pred_simp)+
        
lemma msubst_unrest [unrest]: "[ v. x P(v); x k ] ==> x P(v)[vk]"
  by (pred_auto)
  
end

Messung V0.5 in Prozent
C=92 H=93 G=92

¤ Dauer der Verarbeitung: 0.1 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.