function fm_of_nat :: ‹nat → fm›where ‹fm_of_nat 0 = \⊥›
| ‹fm_of_nat (Suc n) = (case sum_decode n of
Inl n → let (P, ts) = prod_decode n in \‡P (map tm_of_nat (list_decode ts))
| Inr n → (case prod_decode n of
(Suc p, q) → fm_of_nat p \⟶ fm_of_nat q
| (0, p) →\∀(fm_of_nat p)))› by pat_completeness auto terminationby (relation ‹measure id›) simp_all
lemma fm_nat: ‹fm_of_nat (nat_of_fm p) = p› using tm_nat by (induct p) (simp_all add: map_idI)
lemma surj_fm_of_nat: ‹surj fm_of_nat› unfolding surj_def using fm_nat by metis
subsection‹Rules›
text‹Pick a large number to help encode the Idle rule, so that we never hit it in practice.›
definition idle_nat :: nat where ‹idle_nat ≡ 4294967295›
fun rule_of_nat :: ‹nat → rule›where ‹rule_of_nat n = (case sum_decode n of
Inl n → (case prod_decode n of
(0, 0) → FlsL
| (0, Suc 0) → FlsR
| (0, n2) → if n2 = idle_nat then Idle else
let (p, q) = prod_decode n2 in ImpR (fm_of_nat p) (fm_of_nat q)
| (Suc n, Suc ts) → Axiom n (map tm_of_nat (list_decode ts))
| (Suc p, 0) → UniR (fm_of_nat p))
| Inr n → (let (n1, n2) = prod_decode n in
case sum_decode n1 of
Inl n1 → (case sum_decode n2 of
Inl q → ImpL (fm_of_nat n1) (fm_of_nat q)
| Inr p → UniL (tm_of_nat n1) (fm_of_nat p))
| Inr p → ImpR (fm_of_nat p) (fm_of_nat n2)))›
lemma rule_nat: ‹rule_of_nat (nat_of_rule r) = r› using tm_nat fm_nat by (cases r) (simp_all add: map_idI idle_nat_def)
lemma surj_rule_of_nat: ‹surj rule_of_nat› unfolding surj_def using rule_nat by metis
end
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.10Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-07-02)
¤
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.