File: bug_3566.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 (24 lines) | stat: -rw-r--r-- 1,170 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Unset Strict Universe Declaration.
Notation idmap := (fun x => x).
Inductive paths {A : Type} (a : A) : A -> Type := idpath : paths a a.
Arguments idpath {A a} , [A] a.
Notation "x = y :> A" := (@paths A x y) : type_scope.
Notation "x = y" := (x = y :>_) : type_scope.
Delimit Scope path_scope with path.
Definition concat {A : Type} {x y z : A} (p : x = y) (q : y = z) : x = z := match p, q with idpath, idpath => idpath end.
Definition inverse {A : Type} {x y : A} (p : x = y) : y = x := match p with idpath => idpath end.
Notation "p @ q" := (concat p q) (at level 20) : path_scope.
Notation "p ^" := (inverse p) (at level 3, format "p '^'") : path_scope.
Class IsEquiv {A B : Type} (f : A -> B) := {}.
Axiom path_universe : forall {A B : Type} (f : A -> B) {feq : IsEquiv f}, (A = B).

Definition Lift : Type@{i} -> Type@{j}
  := Eval hnf in let lt := Type@{i} : Type@{j} in fun T => T.

Definition lift {T} : T -> Lift T := fun x => x.

Goal forall x y : Type, x = y.
  intros.
  pose proof ((fun H0 : idmap _ => (@path_universe _ _ (@lift x) (H0 x) @
                                                   (@path_universe _ _ (@lift x) (H0 x))^)))%path as H''.
Abort.