subsection"A small step semantics on annotated commands"
theory Collecting1 imports Collecting begin
text‹The idea: the state is propagated through the annotated command as an annotation 🍋‹{s}›, all other annotations are 🍋‹{}›. It is easy to show that this semantics approximates the collecting semantics.›
lemma step_preserves_le: "[ step S cs = cs; S' ⊆ S; cs' ≤ cs ]==> step S' cs' ≤ cs" by (metis mono2_step)
lemma steps_empty_preserves_le: assumes"step S cs = cs" shows"cs' ≤ cs ==> (step {} ^^ n) cs' ≤ cs" proof(induction n arbitrary: cs') case 0 thus ?caseby simp next case (Suc n) thus ?case using Suc.IH[OF step_preserves_le[OF assms empty_subsetI Suc.prems]] by(simp add:funpow_swap1) qed
definition steps :: "state ==> com ==> nat ==> state set acom"where "steps s c n = ((step {})^^n) (step {s} (annotate (λp. {}) c))"
lemma steps_approx_fix_step: assumes"step S cs = cs"and"s ∈ S" shows"steps s (strip cs) n ≤ cs"
proof- let ?bot = "annotate (λp. {}) (strip cs)" have"?bot ≤ cs"by(induction cs) auto from step_preserves_le[OF assms(1)_ this, of "{s}"] ‹s ∈ S› have 1: "step {s} ?bot ≤ cs"by simp from steps_empty_preserves_le[OF assms(1) 1] show ?thesis by(simp add: steps_def) qed
theorem steps_approx_CS: "steps s c n ≤ CS c" by (metis CS_unfold UNIV_I steps_approx_fix_step strip_CS)
end
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-04-26)
¤
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.