Inductive paths {A : Type} (a : A) : A -> Type :=
idpath : paths a a.
Notation"x = y :> A" := (@paths A x y) : type_scope. Notation"x = y" := (x = y :>_) : type_scope.
Module success. Axiom bar : nat -> Type -> Type.
Definition foo (n : nat) (A : Type) : Type := match n with
| O => A
| S n' => forall x y : A, bar n' (x = y) end.
Definition foo_succ n A : foo (S n) A. Admitted.
Goalforall n (X Y : Type) (y : X) (x : X), bar n (x = y). intros. apply (foo_succ _ _). Defined. End success.
Module failure. Fixpoint bar (n : nat) (A : Type) : Type := match n with
| O => A
| S n' => forall x y : A, bar n' (x = y) end.
Definition foo_succ n A : bar (S n) A. Admitted.
Goalforall n (X Y : Type) (y : X) (x : X), bar n (x = y). intros. apply foo_succ. (* Toplevel input, characters 22-34: Error: In environment n : nat X : Type Y : Type y : X x : X Unable to unify "forall x0 y0 : ?16, (fix bar (n : nat) (A : Type) {struct n} : Type := match n with | 0 => A | S n' => forall x y : A, bar n' (x = y) end) ?15 (x0 = y0)" with "(fix bar (n : nat) (A : Type) {struct n} : Type := match n with | 0 => A | S n' => forall x y : A, bar n' (x = y) end) n (x = y)".
*) Defined. End failure.
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.