File: bug_4622.v

package info (click to toggle)
coq-doc 8.20.0-2
  • links: PTS, VCS
  • area: non-free
  • in suites: forky, sid, trixie
  • size: 46,708 kB
  • sloc: ml: 234,429; sh: 4,686; python: 3,359; ansic: 2,644; makefile: 842; lisp: 172; javascript: 87; xml: 24; sed: 2
file content (24 lines) | stat: -rw-r--r-- 633 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Set Primitive Projections.

Record foo : Type := bar { x : unit }.

Goal forall t u, bar t = bar u -> t = u.
Proof.
  intros.
  injection H.
  trivial.
Qed.
(* Was: Error: Pattern-matching expression on an object of inductive type foo has invalid information. *)

(** Dependent pattern-matching is ok on this one as it has eta *)
Definition baz (x : foo) :=
  match x as x' return x' = x' with
  | bar u => eq_refl
  end.

Inductive foo' : Type := bar' {x' : unit; y: foo'}.
(** Dependent pattern-matching is not ok on this one *)
Fail Definition baz' (x : foo') :=
  match x as x' return x' = x' with
  | bar' u y => eq_refl
  end.