File: uip_loop.v

package info (click to toggle)
coq 8.20.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, 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-- 564 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
Set Definitional UIP.

Inductive seq {A} (a:A) : A -> SProp :=
  srefl : seq a a.
Arguments srefl {_ _}.

(* Axiom implied by propext (so consistent) *)
Axiom all_eq : forall (P Q:Prop), P -> Q -> seq P Q.

Definition transport (P Q:Prop) (x:P) (y:Q) : Q
  := match all_eq P Q x y with srefl => x end.

Definition top : Prop := forall P : Prop, P -> P.

Definition c : top :=
  fun P p =>
    transport
      (top -> top)
      P
      (fun x : top => x (top -> top) (fun x => x) x)
      p.

Fail Timeout 1 Eval lazy in c (top -> top) (fun x => x) c.
(* loops *)