File: bug_20301.v

package info (click to toggle)
coq 9.1.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 35,964 kB
  • sloc: ml: 239,908; sh: 4,355; python: 2,985; ansic: 2,644; makefile: 874; lisp: 171; javascript: 63; xml: 24; sed: 2
file content (26 lines) | stat: -rw-r--r-- 703 bytes parent folder | download
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
Set Universe Polymorphism.

Axiom Ty : Set.
Axiom Exp : Ty -> Set.

Axiom halts@{u} : forall {τ : Ty} (_ : Exp τ), Type@{u}.

Axiom step_preserves_halting@{u|} :
  forall {τ : Ty} (e e' : Exp τ), (halts@{u} e) -> (halts@{u} e').

Axiom SN@{u} : forall {τ : Ty} (_ : Exp τ), Type@{u}.

Lemma foo@{u} : forall
  (τ1 τ2 : Ty)
  (e e' e'' : Exp τ2)
  (X : @halts@{u} τ2 e)
  (Y : forall (x : Exp τ1) (_ : @SN@{u} τ1 x), @SN@{u} τ2 e'')
  (IHτ : forall (_ : @SN@{u} τ2 e''), False),
  prod (forall (x : Exp τ1) (_ : @SN@{u} τ1 x), False) (@halts@{u} τ2 e').
Proof.
intros.
pose proof (step_preserves_halting e e') as H2.
split.
+ refine (fun x H => IHτ (Y x H)).
+ solve[firstorder].
Qed.