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

Quelle  Env-HOLCF.thy

  Sprache: Isabelle
 

theory "Env-HOLCF"
  imports Env "HOLCF-Utils"
begin

subsubsection Continuity and pcpo-valued functions

lemma  override_on_belowI:
  assumes " a. a S ==> y a z a"
  and " a. a S ==> x a z a"
  shows  "x ++ y z"
  using assms 
  apply -
  apply (rule fun_belowI)
  apply (case_tac "xa S")
  apply auto
  done

lemma override_on_cont1: "cont (λ x. x ++ m)"
  by (rule cont2cont_lambda) (auto simp add: override_on_def)

lemma override_on_cont2: "cont (λ x. m ++ x)"
  by (rule cont2cont_lambda) (auto simp add: override_on_def)

lemma override_on_cont2cont[simp, cont2cont]:
  assumes "cont f"
  assumes "cont g"
  shows "cont (λ x. f x ++ g x)"
by (rule cont_apply[OF assms(1) override_on_cont1 cont_compose[OF override_on_cont2 assms(2)]])

lemma override_on_mono:
  assumes "x1 (x2 :: 'a::type ==> 'b::cpo)"
  assumes "y1 y2"
  shows "x1 ++ y1 x2 ++ y2"
by (rule below_trans[OF cont2monofunE[OF override_on_cont1 assms(1)] cont2monofunE[OF override_on_cont2 assms(2)]])

lemma fun_upd_below_env_deleteI:
  assumes "env_delete x ρ env_delete x ρ'" 
  assumes "y ρ' x"
  shows  "ρ(x := y) ρ'"
  using assms
  apply (auto intro!: fun_upd_belowI   simp add: env_delete_def)
  by (metis fun_belowD fun_upd_other)

lemma fun_upd_belowI2:
  assumes " z . z x ==> ρ z ρ' z" 
  assumes "ρ x y"
  shows   ρ'(x := y)"
  apply (rule fun_belowI)
  using assms by auto

lemma env_restr_belowI:
  assumes  " x. x S ==> (m1 f|` S) x (m2 f|` S) x"
  shows "m1 f|` S m2 f|` S"
  apply (rule fun_belowI)
  by (metis assms below_bottom_iff lookup_env_restr_not_there)

lemma env_restr_belowI2:
  assumes  " x. x S ==> m1 x m2 x"
  shows "m1 f|` S m2"
  by (rule fun_belowI)
     (simp add: assms env_restr_def)


lemma env_restr_below_itself:
  shows "m f|` S m"
  apply (rule fun_belowI)
  apply (case_tac "x S")
  apply auto
  done  

lemma env_restr_cont:  "cont (env_restr S)"
  apply (rule cont2cont_lambda)
  apply (case_tac "y S")
  apply auto
  done

lemma env_restr_belowD:
  assumes "m1 f|` S m2 f|` S"
  assumes "x S"
  shows "m1 x m2 x"
  using fun_belowD[OF assms(1), where x = x] assms(2by simp

lemma env_restr_eqD:
  assumes "m1 f|` S = m2 f|` S"
  assumes "x S"
  shows "m1 x = m2 x"
  by (metis assms(1) assms(2) lookup_env_restr)

lemma env_restr_below_subset:
  assumes "S S'"
  and "m1 f|` S' m2 f|` S'"
  shows "m1 f|` S m2 f|` S"
using assms
by (auto intro!: env_restr_belowI dest: env_restr_belowD)



lemma  override_on_below_restrI:
  assumes " x f|` (-S) z f|` (-S)"
  and "y f|` S z f|` S"
  shows  "x ++ y z"
using assms
by (auto intro: override_on_belowI dest:env_restr_belowD)

lemma  fmap_below_add_restrI:
  assumes "x f|` (-S) y f|` (-S)"
  and     "x f|` S z f|` S"
  shows  "x y ++ z"
using assms
by (auto intro!: fun_belowI dest:env_restr_belowD simp add: lookup_override_on_eq)

lemmas env_restr_cont2cont[simp,cont2cont] = cont_compose[OF env_restr_cont]

lemma env_delete_cont:  "cont (env_delete x)"
  apply (rule cont2cont_lambda)
  apply (case_tac "y = x")
  apply auto
  done
lemmas env_delete_cont2cont[simp,cont2cont] = cont_compose[OF env_delete_cont]


end

Messung V0.5 in Prozent
C=93 H=99 G=95

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