inductive red_term :: "[trm, trm] ==> bool" (infixl‹<----›50) and red_cmd :: "[cmd, cmd] ==> bool" (infixl‹C<----›50) where
beta [intro]: "(λ T : t)🍋r <---- t[r/0]T" |
struct [intro]: "(μ (T1→T2) : c)🍋s <---- μ T2 : (c[0 = 0 (♢\<bullet> (liftM_trm s 0))]C)"| rename [intro]: "[ 0 ∉ (fmv_trm t 0) ]==> (μ T : (<0> t)) <---- dropM_trm t 0" |
mueta [intro]: "<i> (μ T : c) C<---- (dropM_cmd (c[0 = i ♢]C) i)" |
lambda [intro]: "[ s <---- t ]==> (λ T : s) <---- (λ T : t)" |
appL [intro]: "[ s <---- u ]==> (s🍋t) <---- (u🍋t)" |
appR [intro]: "[ t <---- u ]==> (s🍋t) <---- (s🍋u)" |
mu [intro]: "[ c C<---- d ]==> (μ T : c) <---- (μ T : d)" |
cmd [intro]: "[ t <---- s ]==> (<i> t) C<---- (<i> s)"
inductive_cases redE [elim]: "`i <---- s" "(λ T : t) <---- s" "s🍋t <---- u" "(μ T : c) <---- t" "<i> t C<---- c"
text‹Reflexive transitive closure›
inductive beta_rtc_term :: "[trm, trm] ==> bool" (infixl‹<----*›50) where
refl_term [iff]: "s <----* s" |
step_term: "[s <---- t; t <----* u]==> s <----* u"
lemma step_term2: "[s <----* t; t <---- u]==> s <----* u" by (induct rule: beta_rtc_term.induct) (auto intro: step_term)
inductive beta_rtc_command :: "[cmd, cmd] ==> bool" (infixl‹C<----*›50) where
refl_command [iff]: "c C<----* c" |
step_command: "c C<---- d ==> d C<----* e ==> c C<----* e"
text‹The beta reduction relation is included in the reflexive transitive closure.› lemma rtc_term_incl [intro]: "s <---- t ==> s <----* t" by (meson beta_rtc_term.simps)
lemma [intro]: "c C<---- d ==> c C<----* d" by(auto intro: step_command)
text‹Proof that the reflexive transitive closure as defined above is transitive.›
lemma rtc_term_trans [intro]: "s <----* t ==> t <----* u ==> s <----* u" by(induction rule: beta_rtc_term.induct) (auto simp add: step_term)
lemma rtc_command_trans[intro]: "c C<----* d ==> d C<----* e ==> c C<----* e" by(induction rule: beta_rtc_command.induct) (auto simp add: step_command)
text‹Congruence rules for the reflexive transitive closure.›
lemma rtc_lambda: "s <----* t ==> (λ T : s) <----* (λ T : t)" apply(induction rule: beta_rtc_term.induct) by force (meson red_term_red_cmd.lambda step_term)
lemma rtc_appL: "s <----* u ==> (s🍋t) <----* (u🍋t)" apply(induction rule: beta_rtc_term.induct) by force (meson appL step_term)
end
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-10)
¤
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.