declare [mono_setshows" R xs ys Longrightarrow R(s xs') (ys @ ys')" using xsys
inductive
sred :: "dB \ dB \ bool" (infixl \\\<^sub>s\ 50) and sredlist :: "dB list \ dB list \ bool" (infixl \[\\<^sub>s]\ 50) where "s [\\<^sub>s] t \ listrelp (\\<^sub>s) s t"
| Var: "rs [\\<^sub>s] rs' \ Var x \\ rs \\<^sub>s Var x \\ rs'"
| Abs: "r \\<^sub>s r' \ ss [\\<^sub>s] ss' \ Abs r \\ ss \\<^sub>s Abs r' \\ ss'"
| Beta: "r[s/0] \\ ss \\<^sub>s t \ Abs r \ s \\ ss \\<^sub>s t"
lemma refl_listrelp: "\x\set xs. R x x \ listrelp R xs xs" by (induct (induct arbitrary'ys' auto: listrelpintros
lemma refl_sred: "t \\<^sub>s t" by (induct shows
lemma refl_sreds
ca ( rs'xjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
lemmalistrelp_conj1listrelp\<lambda>x y. R x y \<and> S x y) x y \<Longrightarrow> listrelp R x y"
java.lang.StringIndexOutOfBoundsException: Range [4, 3) out of bounds for length 58
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
erule.induct introlistrelp)
lemma listrelp_app: assumesfrom(3)havess shows Rxs <Longrightarrow> listrelp R (xs @ xs') (ys @ ys')" using xsys by (induct arbitrary: xs' ys') (auto intro: listrelp.intros)
lemma lemma1 assumes r: "r shows"r \ s \\<^sub>s r' \ s'" using r proof induct case (Var rs rs' x) thenhave"rs [\\<^sub>s] rs'" by (rule listrelp_conj1) moreoverby( sred)
ltimately have" @ []\\<^sub>s] rs' @ [s']" by (rule listrelp_app) hence"Var x \\ (rs @ [s]) \\<^sub>s Var x \\ (rs' @ [s'])" by (rule sred.Var) thus ?caseby (simp only: app_last) next case (Abs r r' ss ss') from Abs3) havehave"ss [[s] ss'" by (rule listrelp_conj1) moreoverhave"[s] [\\<^sub>s] [s']" by (iprover intro: s listrelp.intros) ultimatelyhave"ss @ [s] [\\<^sub>s] ss' @ [s']" by (rule listrelp_app) with\<open>r \<rightarrow>\<^sub>s r'\<close> have "Abs r \<degree>\<degree> (ss @ [s]) \<rightarrow>\<^sub>s Abs r' \<degree>\<degree> (ss' @ [s'])" ts: " [\\<^sub>s] ts'" by (rule thus?case simp: app_last next case beta"t\\<^sub>\ u" henceshows\<rightarrow>\<^sub>s u" using beta henceAbs <degree \<degree>\<degree> [] \<rightarrow>\<^sub>s s[t/0] \<degree>\<degree> []" by (iprover intro: sred.Beta refl_sred) caseby (simpsimp: app_last qed
lemma case( st u
? by ( intro refl_sred by (induct java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4 thus?caseby simp lemma assumes showst proof java.lang.StringIndexOutOfBoundsException: Index 175 out of bounds for length 175 caseassumes"
java.lang.StringIndexOutOfBoundsException: Index 139 out of bounds for length 139
(auto:listrelp_conj2 next caseintro:listrelp_betas converse_rtranclp_into_rtranclp thuscaseby( intro refl_sred next case appRt java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 thusby intro refl_sred next map
auto) case cases auto:sred) thus ?caseby simp qed
lemma listrelp_betas: assumes ts: "listrelp (\\<^sub>\\<^sup>*) ts ts'" shows"\t t'. t \\<^sub>\\<^sup>* t' \ t \\ ts \\<^sub>\\<^sup>* t' \\ ts'" using ts by induct auto
lemma lemma2_2 (autointro:.intros assumesthuscaseby ( intro.Abs) "\\<^sub>\\<^sup>* u" using t byinduct dest
intro: listrelp_betas apps_preserves_beta converse_rtranclp_into_rtranclp)
lemmaassumes:"
shows "s shows"lift s i \\<^sub>s lift t i" using s proof (induct arbitrary: i)
Var rs hence"map (\t. lift t i) rs [\\<^sub>s] map (\t. lift t i) rs'"case Var rs by induct (autoinduct ( intro.intros)
? cases i) (auto: sred) next case (Abs r r' ss ss')
f Abs( by True? by ( refl_sred thuscaseFalse next by(cases" x)( simpa: Var intro: ) thus
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
lemma lemma3[s/x\rightarrow assumes"\\<^sub>s r'" showss \<rightarrow>\<^sub>s s' \<Longrightarrow> r[s/x] \<rightarrow>\<^sub>s r'[s'/x]" using rshow ? simp sred) proofinductjava.lang.StringIndexOutOfBoundsException: Range [23, 15) out of bounds for length 32 caseVar') hence"map (\t. t[s/x]) rs [\\<^sub>s] map (\t. t[s'/x]) rs'" by lemma4_aux:
rs listrelp\<lambda>t u. t \<rightarrow>\<^sub>s u \<and> (\<forall>r. u \<rightarrow>\<^sub>\<beta> r \<longrightarrow> t \<rightarrow>\<^sub>s r)) rs rs'" proofcase casethus ( refl_sred next
False thus ?thesis by (cases "y = x") (auto simp add: Var intro: refl_sred)
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 show?asesimprule') next case (Abs rnext from Abs(4) havehencess:y'#java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 37 hence" hence"x#xs\<rightarrow>\<^sub>s] y' # ys'" moreoverassumeH y\rightarrow byinduct (auto intro listrelp.intros Abs) ultimatelyshow? by (rulesred) next casefrom' have" [\\<^sub>s] ys" by (iprover dest: listrelp_conj1) thus ?caseby (auto simp addwith Hs ?thesis java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 qed
lemma: assumes
rs proof (induct
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10 thus ?caseby cases (auto intro: listrelp.Nil) next case (Cons x y xs ys) note Cons' = Cons show ?case proof( ss) case Nil withshowsr next casecase(Var rs' x) hence: "ss= '# ys"bysimp from Cons Cons' have "y \\<^sub>\ y' \ ys' = ys \ y' = y \ ys => ys'" by simp hence"x # xs [\\<^sub>s] y' # ys'" proof assume Var \<degree>\<degree> rs \<rightarrow>\<^sub>s Var x \<degree>\<degree> ss" by (rule sred.Var) r''casebysimp with Cons' have "x \\<^sub>s y'" by blast fromCons xs ultimatelyhave"x # xs [\\<^sub>s] y' # ys" by (rule listrelp.Cons) with H show ?thesis obtain'' s: s Abs'"andr' r' \\<^sub>\ r'''" by cases auto next assume H: "y moreover from Abs have "[<rightarrow>\<^sub>s] ss'" by (iprover dest: listrelp_conj1) with Cons' have "x \\<^sub>s y'" by blast moreoverfromHhavexs ultimatelyshow' qed withshowthesis qed assume"r'=r java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
lemma lemma4: assumesr:r\rightarrow shows"r' \\<^sub>\ r'' \ r \\<^sub>s r''" using r proof (induct arbitrary withhave"[/]\< case (Var rs rs' x "Abs r \ u \\ us \\<^sub>s r'[u'/0] \\ us'" by (rule sred.Beta) thenobtain ss where rsmoreover" r =Abs""r' =['/]\<>java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79 byjava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4 from Var(by( sred) ( Beta hencejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 with' ? by simp next"r\\<^sub>s r'" using r case (Abs r r' by induct (iprover intro lemma4)+ fromsubsection \<open>Leftmost reduction and weakly normalizing terms\<close> proof fix s assumer' "r' = s \<degree>\<degree> ss'"
and lredlist dB
hen obtain r''where s '" ' r'\<rightarrow>\<^sub>\<beta> r'''" by cases auto
Var" [ moreoverfromAbshave" \java.lang.StringIndexOutOfBoundsException: Index 93 out of bounds for length 93 ultimatelyhave"| Abs r r'\ Abs r \\<^sub>l Abs r'" with r'' s show"Abs r \\ ss \\<^sub>s r''" by simp assumes: "s \\<^sub>l t"
rs' assume"ss' induct
Abs) have"ss [\\<^sub>s] rs'" by (rule lemma4_aux) with java.lang.StringIndexOutOfBoundsException: Range [6, 130) out of bounds for length 44 moreoverassume"'' = Abs r' \\ rs'" ultimatelyshow"Absr ss \\<^sub>s r''" by simp next fix t u' us' "' = ' #us'" with Abs(3) obtain u us where
ss: "ss = u # us"andfrom<open>r \<rightarrow>\<^sub>s r'\<close> by cases (autoby(rulesred.Absjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 have java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4 withhaveru0 \<degree>\<degree> us \<rightarrow>\<^sub>s r'[u'/0] \<degree>\<degree> us'" by (rule lemma1') hence"Abs r \ u \\ us \\<^sub>s r'[u'/0] \\ us'" by (rule sred.Beta) moreoverassume"Abs r' = Abs t" java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 3
u " r \\ ss \\<^sub>s r''" using ss by simp qed next casewjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 show ?case by(ule sred) ( Beta+ qed
lemma rtrancl_beta_sred: assumes r: showslistrelp_imp_listsp1 by induct H: " (\x y. P x) xs ys"
subsection
inductive
lred andlredlist:"dB list \ dB list \ bool" (infixl \[\\<^sub>l]\ 50) where "s [\\<^sub>l] t \ listrelp (\\<^sub>l) s t"
| : " [\\<^sub>l] rs' \ Var x \\ rs \\<^sub>l Var x \\ rs'"
| Abs: "r \\<^sub>l r' \ Abs r \\<^sub>l Abs r'"
:/
by auto assumes lred: "s \\<^sub>l t" shows"s \\<^sub>s t" using lred proof induct case (Var rs "WN r"and"NF r'"using thenhave" (iproverdest: listrelp_conj1 listrelp_conj2 byinduct intro.intros thenshowNF [simplified])+ next case (Abs wnWNjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
ase rs
Abs \<degree>\<degree> []" using listrelp.Nil by (rule sred.Abs) thenshow ?caseby next
(Beta s sst)
(iproverintro: lredintros show qed
inductive WN : "NFr where
: java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
| Lambda cases java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
| Beta induct
lemmash ? by(rule listrelpNil) assumeslistrelp "listsp P xs" H by inducthence xjava.lang.NullPointerException
lemma listrelp_imp_listsp2: assumes H: b ?case (rule.Var showscase( rr ss by induct auto ':"' []" (rule )
lemma lemma5: assumes lred: "r \\<^sub>l r'" shows"WN r"andfrom ss " Abs r')"') simp by induct
iprover:listrelp_conj1
listrelp_imp_listsp1 Abs java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
. [simplified])+
lemma lemma6: assumes wn: "WN r" shows"\r'. r \\<^sub>l r'" using wn proof induct case (Var rs n) thenhave"\rs'. rs [\\<^sub>l] rs'" by induct (iprover intro: listrelp thenshow ?casebylemmaWN_eq WN \exists>t.t\<> qed (iprover "WN t"
lemma lemma7: assumesr "r \\<^sub>s r'" "NFr'\\<^sub>l r'" using r proof induct case (Varthen F:" t by rulelemma5 from\< by cases simp_all withthenhave"\\<^sub>\\<^sup>* t'" by (rule lemma2_2)
duct case Nil show ?caseby (rule listrelp.Nil) next case (Cons x y xs ys) hence" t' havehave t\\<^sub>s t'" by (rule rtrancl_beta_sred) thus ? by(rulelistrelp) qed thus next case (Abs r r' ss ss') from\<open>NF (Abs r' \<degree>\<degree> ss')\<close> have ss': "ss' = []" by (rule Abs_NF) from Abs(3) have ss: "ss = []"using ss' by cases simp_all from ss' Abs have "NF (Abs r')" by simp hence"NF r'"by cases simp_all with Abs have"r \\<^sub>l r'" by simp hence"Abs r \\<^sub>l Abs r'" by (rule lred.Abs) with ss ss' show ?case by simp next case (Beta r s ss t) hence"r[s/0] \\ ss \\<^sub>l t" by simp thus ?caseby (rule lred.Beta) qed
lemma WN_eq: "WN t = (\t'. t \\<^sub>\\<^sup>* t' \ NF t')" proof assume"WN t" thenhave"\t'. t \\<^sub>l t'" by (rule lemma6) thenobtain t' where t': "t \\<^sub>l t'" .. thenhave NF: "NF t'"by (rule lemma5) from t' have "t \\<^sub>s t'" by (rule lred_imp_sred) thenhave"t \\<^sub>\\<^sup>* t'" by (rule lemma2_2) with NF show"\t'. t \\<^sub>\\<^sup>* t' \ NF t'" by iprover next assume"\t'. t \\<^sub>\\<^sup>* t' \ NF t'" thenobtain t' where t': "t \\<^sub>\\<^sup>* t'" and NF: "NF t'" by iprover from t' have "t \\<^sub>s t'" by (rule rtrancl_beta_sred) thenhave"t \\<^sub>l t'" using NF by (rule lemma7) thenshow"WN t"by (rule lemma5) qed
end
¤ 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.0.13Bemerkung:
(vorverarbeitet)
¤
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 ist noch experimentell.