summaryrefslogtreecommitdiff
path: root/hurkens.ka
blob: ba9602ad309da965a5f5bd31e7c2dab68ca375ef (plain)
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
28
29
30
31
32
33
34
35
36
37
38
39
bot : ⋆ ⇒ ([A : ⋆] → A)

not [A : ⋆] : ⋆ ⇒ (A → bot)

P [A : ⋆] : ⋆ ⇒ (A → ⋆)

U : ⋆ ⇒ ([X : ⋆] → (P (P X) → X) → P (P X))

tau [t : P (P U)] : U ⇒ (
  λ X f p ⇒ t (λ x ⇒ p (f (x X f)))
)

sigma [s : U] : P (P U) ⇒ (s U tau)

Delta : P U ⇒ (
  λ y ⇒ not ([p : P U] → sigma y p → p (tau (sigma y)))
)

Omega : U ⇒ (
  tau (λ p ⇒ [x : U] → sigma x p → p x)
)

D : ⋆ ⇒ (
  [p : P U] → sigma Omega p → p (tau (sigma Omega))
)

lem1 [p : P U] [H1 : [x : U] → sigma x p → p x] : p Omega ⇒ (
  H1 Omega (λ x ⇒ H1 (tau (sigma x)))
)

lem2 : not D ⇒ (
  lem1 Delta (λ x H2 H3 ⇒ H3 Delta H2 (λ p ⇒ H3 (λ y ⇒ p (tau (sigma y)))))
)

lem3 : D ⇒ (
  λ p ⇒ lem1 (λ y ⇒ p (tau (sigma y)))
)

loop  : bot ⇒ (lem2 lem3)