lemma kD_quality_increases [elim]: assumes"i∈kD(rt ξ)" and"quality_increases ξ ξ'" shows"i∈kD(rt ξ')" using assms by auto
lemma kD_nsqn_quality_increases [elim]: assumes"i∈kD(rt ξ)" and"quality_increases ξ ξ'" shows"i∈kD(rt ξ') ∧ nsqn (rt ξ) i ≤ nsqn (rt ξ') i" proof - from assms have"i∈kD(rt ξ')" .. moreoverwith assms have"rt ξ ⊑ rt ξ'"by auto ultimatelyhave"nsqn (rt ξ) i ≤ nsqn (rt ξ') i" using‹i∈kD(rt ξ)›by - (erule(2) rt_fresher_imp_nsqn_le) with‹i∈kD(rt ξ')›show ?thesis .. qed
lemma nsqn_quality_increases [elim]: assumes"i∈kD(rt ξ)" and"quality_increases ξ ξ'" shows"nsqn (rt ξ) i ≤ nsqn (rt ξ') i" using assms by (rule kD_nsqn_quality_increases [THEN conjunct2])
lemma kD_nsqn_quality_increases_trans [elim]: assumes"i∈kD(rt ξ)" and"s ≤ nsqn (rt ξ) i" and"quality_increases ξ ξ'" shows"i∈kD(rt ξ') ∧ s ≤ nsqn (rt ξ') i" proof from‹i∈kD(rt ξ)›and‹quality_increases ξ ξ'›show"i∈kD(rt ξ')" .. next from‹i∈kD(rt ξ)›and‹quality_increases ξ ξ'›have"nsqn (rt ξ) i ≤ nsqn (rt ξ') i" .. with‹s ≤ nsqn (rt ξ) i›show"s ≤ nsqn (rt ξ') i"by (rule le_trans) qed
lemma nsqn_quality_increases_nsqn_lt_lt [elim]: assumes"i∈kD(rt ξ)" and"quality_increases ξ ξ'" and"s < nsqn (rt ξ) i" shows"s < nsqn (rt ξ') i" proof - from assms(1-2) have"nsqn (rt ξ) i ≤ nsqn (rt ξ') i" .. with‹s < nsqn (rt ξ) i›show"s < nsqn (rt ξ') i"by simp qed
lemma nsqn_quality_increases_dhops [elim]: assumes"i∈kD(rt ξ)" and"quality_increases ξ ξ'" and"nsqn (rt ξ) i = nsqn (rt ξ') i" shows"the (dhops (rt ξ) i) ≥ the (dhops (rt ξ') i)" using assms unfolding quality_increases_def by (clarsimp) (drule(1) bspec, clarsimp simp: rt_fresher_def2)
lemma nsqn_quality_increases_nsqn_eq_le [elim]: assumes"i∈kD(rt ξ)" and"quality_increases ξ ξ'" and"s = nsqn (rt ξ) i" shows"s < nsqn (rt ξ') i ∨ (s = nsqn (rt ξ') i ∧ the (dhops (rt ξ) i) ≥ the (dhops (rt ξ') i))" using assms by (metis nat_less_le nsqn_quality_increases nsqn_quality_increases_dhops)
lemma quality_increases_rreq_rrep_props [elim]: fixes sn ip hops sip assumes qinc: "quality_increases (σ sip) (σ' sip)" and"1 ≤ sn" and *: "ip∈kD(rt (σ sip)) ∧ sn ≤ nsqn (rt (σ sip)) ip ∧ (nsqn (rt (σ sip)) ip = sn ⟶ (the (dhops (rt (σ sip)) ip) ≤ hops ∨ the (flag (rt (σ sip)) ip) = inv))" shows"ip∈kD(rt (σ' sip)) ∧ sn ≤ nsqn (rt (σ' sip)) ip ∧ (nsqn (rt (σ' sip)) ip = sn ⟶ (the (dhops (rt (σ' sip)) ip) ≤ hops ∨ the (flag (rt (σ' sip)) ip) = inv))"
(is"_ ∧ ?nsqnafter") proof - from * obtain"ip∈kD(rt (σ sip))"and"sn ≤ nsqn (rt (σ sip)) ip"by auto
from‹quality_increases (σ sip) (σ' sip)› have"sqn (rt (σ sip)) ip ≤ sqn (rt (σ' sip)) ip" .. from‹quality_increases (σ sip) (σ' sip)›and‹ip∈kD (rt (σ sip))› have"ip∈kD (rt (σ' sip))" ..
from‹sn ≤ nsqn (rt (σ sip)) ip›have ?nsqnafter proof assume"sn < nsqn (rt (σ sip)) ip" alsofrom‹ip∈kD(rt (σ sip))›and‹quality_increases (σ sip) (σ' sip)› have"... ≤ nsqn (rt (σ' sip)) ip" .. finallyhave"sn < nsqn (rt (σ' sip)) ip" . thus ?thesis by simp next assume"sn = nsqn (rt (σ sip)) ip" with‹ip∈kD(rt (σ sip))›and‹quality_increases (σ sip) (σ' sip)› have"sn < nsqn (rt (σ' sip)) ip ∨ (sn = nsqn (rt (σ' sip)) ip ∧ the (dhops (rt (σ' sip)) ip) ≤ the (dhops (rt (σ sip)) ip))" .. hence"sn < nsqn (rt (σ' sip)) ip ∨ (nsqn (rt (σ' sip)) ip = sn ∧ (the (dhops (rt (σ' sip)) ip) ≤ hops ∨ the (flag (rt (σ' sip)) ip) = inv))" proof assume"sn < nsqn (rt (σ' sip)) ip"thus ?thesis .. next assume"sn = nsqn (rt (σ' sip)) ip ∧ the (dhops (rt (σ sip)) ip) ≥ the (dhops (rt (σ' sip)) ip)" hence"sn = nsqn (rt (σ' sip)) ip" and"the (dhops (rt (σ' sip)) ip) ≤ the (dhops (rt (σ sip)) ip)"by auto
from * and‹sn = nsqn (rt (σ sip)) ip›have"the (dhops (rt (σ sip)) ip) ≤ hops ∨ the (flag (rt (σ sip)) ip) = inv" by simp thus ?thesis proof assume"the (dhops (rt (σ sip)) ip) ≤ hops" with‹the (dhops (rt (σ' sip)) ip) ≤ the (dhops (rt (σ sip)) ip)› have"the (dhops (rt (σ' sip)) ip) ≤ hops"by simp with‹sn = nsqn (rt (σ' sip)) ip›show ?thesis by simp next assume"the (flag (rt (σ sip)) ip) = inv" with‹ip∈kD(rt (σ sip))›have"nsqn (rt (σ sip)) ip = sqn (rt (σ sip)) ip - 1" ..
with‹sn ≥ 1›and‹sn = nsqn (rt (σ sip)) ip› have"sqn (rt (σ sip)) ip > 1"by simp
from‹ip∈kD(rt (σ' sip))›show ?thesis proof (rule vD_or_iD) assume"ip∈iD(rt (σ' sip))" hence"the (flag (rt (σ' sip)) ip) = inv" .. with‹sn = nsqn (rt (σ' sip)) ip›show ?thesis by simp next (* the tricky case: sn = nsqn (rt (\<sigma>' sip)) ip \<and>ip\<in>iD(rt(\<sigma>sip))
\<and> ip\<in>vD(rt (\<sigma>' sip)) *) assume"ip∈vD(rt (σ' sip))" hence"nsqn (rt (σ' sip)) ip = sqn (rt (σ' sip)) ip" .. with‹sqn (rt (σ sip)) ip ≤ sqn (rt (σ' sip)) ip› have"nsqn (rt (σ' sip)) ip ≥ sqn (rt (σ sip)) ip"by simp
with‹sqn (rt (σ sip)) ip > 1› have"nsqn (rt (σ' sip)) ip > sqn (rt (σ sip)) ip - 1"by simp with‹nsqn (rt (σ sip)) ip = sqn (rt (σ sip)) ip - 1› have"nsqn (rt (σ' sip)) ip > nsqn (rt (σ sip)) ip"by simp with‹sn = nsqn (rt (σ sip)) ip›have"nsqn (rt (σ' sip)) ip > sn" by simp thus ?thesis .. qed qed qed thus ?thesis by (metis (mono_tags) le_cases not_le) qed with‹ip∈kD (rt (σ' sip))›show"ip∈kD (rt (σ' sip)) ∧ ?nsqnafter" .. qed
lemma quality_increases_rreq_rrep_props': fixes sn ip hops sip assumes"∀j. quality_increases (σ j) (σ' j)" and"1 ≤ sn" and *: "ip∈kD(rt (σ sip)) ∧ sn ≤ nsqn (rt (σ sip)) ip ∧ (nsqn (rt (σ sip)) ip = sn ⟶ (the (dhops (rt (σ sip)) ip) ≤ hops ∨ the (flag (rt (σ sip)) ip) = inv))" shows"ip∈kD(rt (σ' sip)) ∧ sn ≤ nsqn (rt (σ' sip)) ip ∧ (nsqn (rt (σ' sip)) ip = sn ⟶ (the (dhops (rt (σ' sip)) ip) ≤ hops ∨ the (flag (rt (σ' sip)) ip) = inv))" proof - from assms(1) have"quality_increases (σ sip) (σ' sip)" .. thus ?thesis using assms(2-3) by (rule quality_increases_rreq_rrep_props) qed
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.