(* Too weak check on the correctness of return clause was leading to an anomaly *)
Inductive Vector A: nat -> Type :=
nil: Vector A O
| cons: forall n, A -> Vector A n -> Vector A (S n).
(* This could be made working with a better inference of inner return predicatesfromthereturnpredicateatthehigherlevelofthe nestedmatching.Currently,weonlycheckthatitdoesnotraisean
anomaly, but eventually, the "Fail" could be removed. *)
Fail Definition hd_fst A x n (v: A * Vector A (S n)) := match v as v0 returnmatch v0 with
(l, r) => match r in Vector _ n returnmatch n with0 => Type | S _ => Typeendwith
nil _ => A
| cons _ _ _ _ => A end endwith
(_, nil _) => x
| (_, cons _ n hd tl) => hd end.
(* This is another example of failure but involving beta-reduction and notiota-reduction.Thus,forthisone,Idon'tseehowitcouldbe
solved by small inversion, whatever smart is small inversion. *)
Inductive A : (Type->Type) -> Type := J : A (fun x => x).
Fail Checkfun x : nat * A (fun x => x) => match x returnmatch x with
(y,z) => match z in A f return f Typewith J => bool end endwith
(y,J) => true end.
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.18 Sekunden
(vorverarbeitet am 2026-09-29)
¤
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.