(*<*) theory Examples imports SubstMethods fuzzyrule.fuzzyrule begin (*>*)
subsection‹Examples from thesis›
text‹
x = false in
y = 0b11 in
z = 42 in
w = (true,(z,y)) in () ›
method fresh_mth_aux uses add = (
(match conclusion in"atom z ♯ GNil"for z ==>‹ simp add: fresh_GNil[of "atom z"] add›)
| (match conclusion in"atom z ♯ DNil"for z ==>‹ simp add: fresh_DNil[of "atom z" ] add›)
| (match conclusion in"atom z ♯ Nil"for z ==>‹ simp add: fresh_Nil[of "atom z" ] add›)
| (match conclusion in"atom z ♯ {||}"for z ==>‹ simp add: fresh_empty_fset[of "atom z" ] add›)
| (match conclusion in"atom (z::x) ♯ ((x::x,b::b,c::c)#\<Gamma>G)"for z x b c G ==>‹simp add: fresh_GCons[of "atom z" "(x,b,c)" G] add›)
| (match conclusion in"atom z ♯ (b::b)"for z b ==>‹ simp add: b.fresh[of "atom z" ] add›)
| (match conclusion in"atom z ♯ (c::c)"for z c ==>‹ simp add: c.fresh[of "atom z" ] add›)
| (match conclusion in"atom z ♯ (i::int)"for z i ==>‹ simp add: pure_fresh add›) (* tbc delta and types
| (auto simp add: add x_fresh_b pure_fresh) (* Cases where there is no subst and so can most likely get what we want from induction premises *)*)
)
lemma assumes" atom z ♯ x" shows"[] ; [] ; {||} ; GNil ; []\<Delta> ⊨wf LET x = [ [ L_false ]v ]e IN LET z = [ [ L_num 42]v ]e IN [[ L_unit ]v]s : B_unit"
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.