fixrec smap :: "('a → 'b) → 'a seq → 'b seq" where
smap_nil: "smap ⋅ f ⋅ nil = nil"
| smap_cons: "x ≠ UU ==> smap ⋅ f ⋅ (x ## xs) = (f ⋅ x) ## smap ⋅ f ⋅ xs"
lemma smap_UU [simp]: "smap ⋅ f ⋅ UU = UU" by fixrec_simp
subsubsection ‹‹sfilter›\›
fixrec sfilter :: "('a → tr) → 'a seq → 'a seq" where
sfilter_nil: "sfilter ⋅ P ⋅ nil = nil"
| sfilter_cons: "x ≠ UU ==> sfilter ⋅ P ⋅ (x ## xs) = (If P ⋅ x then x ## (sfilter ⋅ P ⋅ xs) else sfilter ⋅ P ⋅ xs)"
lemma sfilter_UU [simp]: "sfilter ⋅ P ⋅ UU = UU" by fixrec_simp
subsubsection ‹‹sforall2›\›
fixrec sforall2 :: "('a → tr) → 'a seq → tr" where
sforall2_nil: "sforall2 ⋅ P ⋅ nil = TT"
| sforall2_cons: "x ≠ UU ==> sforall2 ⋅ P ⋅ (x ## xs) = ((P ⋅ x) andalso sforall2 ⋅ P ⋅ xs)"
lemma sforall2_UU [simp]: "sforall2 ⋅ P ⋅ UU = UU" by fixrec_simp
definition"sforall P t ⟷ sforall2 ⋅ P ⋅ t ≠ FF"
subsubsection ‹‹stakewhile›\›
fixrec stakewhile :: "('a → tr) → 'a seq → 'a seq" where
stakewhile_nil: "stakewhile ⋅ P ⋅ nil = nil"
| stakewhile_cons: "x ≠ UU ==> stakewhile ⋅ P ⋅ (x ## xs) = (If P ⋅ x then x ## (stakewhile ⋅ P ⋅ xs) else nil)"
lemma stakewhile_UU [simp]: "stakewhile ⋅ P ⋅ UU = UU" by fixrec_simp
subsubsection ‹‹sdropwhile›\›
fixrec sdropwhile :: "('a → tr) → 'a seq → 'a seq" where
sdropwhile_nil: "sdropwhile ⋅ P ⋅ nil = nil"
| sdropwhile_cons: "x ≠ UU ==> sdropwhile ⋅ P ⋅ (x ## xs) = (If P ⋅ x then sdropwhile ⋅ P ⋅ xs else x ## xs)"
lemma sdropwhile_UU [simp]: "sdropwhile ⋅ P ⋅ UU = UU" by fixrec_simp
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.