fun seq_tr' s = let fun seq_itr' (Bound 0) = Syntax.const \<^syntax_const>\_SeqEmp\
| seq_itr' (Const (\<^const_syntax>\SeqO'\, _) $ f $ s) = Syntax.const \<^syntax_const>\<open>_SeqApp\<close> $
(Syntax.const \<^syntax_const>\<open>_SeqO\<close> $ f) $ seqcont_tr' s
| seq_itr' (i $ s) = Syntax.const \<^syntax_const>\<open>_SeqApp\<close> $
(Syntax.const \<^syntax_const>\<open>_SeqId\<close> $ i) $ seqcont_tr' s in case s of
Abs (_, _, t) => seq_itr' t
| _ => s $ Bound 0 end;
fun single_tr c [s1, s2] = Syntax.const c $ seq_tr s1 $ singlobj_tr s2;
fun two_seq_tr c [s1, s2] = Syntax.const c $ seq_tr s1 $ seq_tr s2;
fun three_seq_tr c [s1, s2, s3] = Syntax.const c $ seq_tr s1 $ seq_tr s2 $ seq_tr s3;
fun four_seq_tr c [s1, s2, s3, s4] = Syntax.const c $ seq_tr s1 $ seq_tr s2 $ seq_tr s3 $ seq_tr s4;
fun singlobj_tr' (Const (\<^const_syntax>\SeqO'\,_) $ fm) = fm
| singlobj_tr' id = Syntax.const \<^syntax_const>\_SeqId\ $ id;
fun single_tr' c [s1, s2] = Syntax.const c $ seq_tr' s1 $ seq_tr' s2;
fun two_seq_tr' c [s1, s2] = Syntax.const c $ seq_tr' s1 $ seq_tr' s2;
fun three_seq_tr' c [s1, s2, s3] = Syntax.const c $ seq_tr' s1 $ seq_tr' s2 $ seq_tr' s3;
fun four_seq_tr' c [s1, s2, s3, s4] = Syntax.const c $ seq_tr' s1 $ seq_tr' s2 $ seq_tr' s3 $ seq_tr' s4;
(** for the <<...>> notation **)
fun side_tr [s1] = seq_tr s1; \<close>
parse_translation\<open>[(\<^syntax_const>\<open>_Side\<close>, K side_tr)]\<close>
subsection \<open>Proof tools\<close>
ML_file \<open>prover.ML\<close>
end
¤ Dauer der Verarbeitung: 0.12 Sekunden
(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.