File: bug_9971.v

package info (click to toggle)
coq 8.20.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 44,116 kB
  • sloc: ml: 234,160; sh: 4,301; python: 3,270; ansic: 2,644; makefile: 882; lisp: 172; javascript: 63; xml: 24; sed: 2
file content (27 lines) | stat: -rw-r--r-- 1,006 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
(* Test that it raises a normal error and not an anomaly *)
Set Primitive Projections.
Record prod A B := pair { fst : A ; snd : B }.
Arguments fst {A B} _.
Arguments snd {A B} _.
Arguments pair {A B} _ _.
Record piis := { dep_types : Type; indep_args : dep_types -> Type }.
Import EqNotations.
Goal forall (id : Set) (V : id) (piiio : id -> piis)
            (Z : {ridc : id & prod (dep_types (piiio ridc)) True})
            (P : dep_types (piiio V) -> Type) (W : {x : dep_types (piiio V) & P x}),
    let ida := fun (x : id) (y : dep_types (piiio x)) => indep_args (piiio x) y in
    prod True (ida V (projT1 W)) ->
    Z = existT _ V (pair (projT1 W) I) ->
    ida (projT1 Z) (fst (projT2 Z)).
  intros.
  refine  (rew <- [fun k' => ida (projT1 k') (fst (projT2 k'))]
               H in
              let v := I in
              _);
    refine (snd X).
  Undo.
Fail refine (rew <- [fun k' => ida (projT1 k') (fst (projT2 k'))]
              H in
             let v := I in
             snd X).
Abort.