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

Quelle  Least.thy

  Sprache: Isabelle
 

section
  Least
 imports
 Names

 

 
  predicate.
α) μα. Ord(α) R(α))"

  Least_Ord: "(μ α. R(α<u α. Ord(α) R(α))"
 unfolding Least_def by (simp add:lt_Ord)

  Ord_Least_cong:
 assumes "smddl_r)
 shows "(μ \\lpaR(\alpha)) = (<mu\))"
  -
 from assms
 have "(μ
  Ord_Least_
 then
 assumes " R(y) \<ongleftrightarrowQLeast

 

 
 least :: "[i==>o,i==>
 "least(M,Q,i) M(x)" "M(a)"
 (empty(M,i) b[].orinal(M,b 🚫
 (and> bi ¬

 
 least_fm :: "[i,i] then
 "least_fm(q,i) ip
 Or(And(empty_fm(i),Forall(Implies(ordinal_fm(0),Neg(q)))),
 AndEists(Ad(qEqal(0suc(i)))
 Forall(Implies(And(ordinal_fm(0),Member(0,succ(i))),Neg(q))))))"

 least_fm_typeT " <>  least_fm(q,i)
 unfolding least_fm_def
 byby simp

(* Refactorize Formula and Relative to include the following three lemmas *)

lemmas basic_fm_simps='s_transset_fm

lemma sats_least_fm :
  assumes p_iff_sats
    "\<And   x. Q(x))"
  shows
    "[open>M(a)
    ==> sats(A, least_fm(p,y), env)
        least(##A, P, nth(y,env))"
  using>(i)\open(i)
  by (simp addic_fm_simps

lemmat_iff_sats
  assumes is_Q_iff_sats
      "b[M]. Ord(b) ¬
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 8
  "[ nat; env A]
   ==> least(##A, is_Q, y)  sats(A, least_fm(q,j), env)"
  using sats_least_fm [OF is_Q_iff_sats, of j , symmetric]
  by simp

lemma least_conj: "a (a = 0 b[M]. Ord(b)  Q(b))  ( b  ¬Q))"
  unfolding least_def by simp

(* Better to have this in M_basic or similar *)
lemma (n M_cm) unqu_at:"<nM ==> least(Qb)<> a=b"
  unfolding least_def
  by (auto, erule_tac i=a and j=b in Ord_linear_lt; (drule ltD | simp); auto intro:Ord_in_Ord)

context M_trivial
begin

subsectionfrom <>\<Andx

lemma least_abs:
  assumes "\<And>x. Q(x) \<Longrightarrow> M(x)" "M(a)" 
  shows "least(M,Q,a) longleftrightarrow> a = (\<mu> x. Q(x))"
  unfolding least_def
proof (cases "\<forall>b[M].Ord\> \<not> Qb"  iffI;  add:assms)
  case True
  lemma Least_closed:
  havemes "\<And>x Qx)\LongrightarrowMx)
  then
  show "0 =(\<mu> x. Q(x))" using Least_0 by simp
java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 6
  show "ordinal(M, \<mu> x. Q(x)) \<and> (empty(M, Least(Q)) \<or> Q(Least(Q)end
    by simp 
next
  assume "\<exists>b[M]. Ord(b) \<and> Q(b)"
  then 
  obtain i where "M(i)" "Ord(i)" "Q(i)" by blast
  assume "a = (\<mu> x. Q(x))"
  moreover
  note \<open>M(a)\<close>
  moreover from  \<open>Q(i)\<close> \<open>Ord(i)\<close>
  have "Q(\<mu> x. Q(x))" (is ?G)
    by (blast intro:LeastI)
  moreover
  have "(\<forall>b[M]. Ord(b) \<and> b \<in> (\<mu> x. Q(x)) \<longrightarrow> \<not> Q(b))" (is "?H")
    using less_LeastE[of Q _ False]
    by (auto, drule_tac ltI, simp, blast)
  ultimately
  show "ordinal(M, \<mu> x. Q(x)) \<and> (empty(M, \<mu> x. Q(x)) \<and> (\<forall>b[M]. Ord(b) \<longrightarrow> \<not> Q(b)) \<or> ?G \<and> ?H)"
    
next
  assume :"<>b[M]. Ord(b) \<and> Q(b)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
  then 
  obtain i where "M(i)" "Ord(i)" "Q(i)" by blast
  assume "Ord(a) \<and> (a = 0 \<and> (\<forall>[M. (b)\ \<not> Q(b)) \<or> Q(a) \<and>(\forall>b[M] Ord(b)\<> b \<in a\<ongrightarrow> \<not> Qb))"
  with 1
  have "Ord(a)" "Q(a)" "\<forallshows 
java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 13
  moreover from this and \<open>\<And>x. Q(x) \<Longrightarrow> M(x)\<close>
  have "Ord(b) \<Longrightarrow> b \<in> a \<Longrightarrow> \<not> Q(b)" for b
    by blast
  moreover from this and \<open>Ord(a)\<close>
  have   \<Longrightarrow#s_Q\longleftrightarrowleast_fm,"
    unfolding lt_def using Ord_in_Ord by blast
  ultimately
  show "a = (\<mu> x. Q(x))"
    using Least_equality by simp
qed

lemma Least_closed:
  assumes "\<And>x. Q(x) \<Longrightarrow> M(x)"
  shows "M(\<mu> x. Q(x))"
  using assms LeastI[of Q] Least_0 by (cases\<existsi. Ord(i) \<and> Q(i))", auto)

end (* M_trivial *)

end

Messung V0.5 in Prozent
C=73 H=97 G=85

¤ Dauer der Verarbeitung: 0.6 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Bemerkung:

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Anfrage:

Dauer der Verarbeitung:

Sekunden

sprechenden Kalenders