annotate VL.agda @ 415:3dda56a5befd

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 30 Jul 2020 17:22:34 +0900
parents aa306f5dab9b
children 44a484f17f26
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
414
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 open import Level
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 open import Ordinals
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 module VL {n : Level } (O : Ordinals {n}) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 open import zf
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 open import logic
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 import OD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 open import Relation.Nullary
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 open import Relation.Binary
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 open import Data.Empty
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 open import Relation.Binary
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 open import Relation.Binary.Core
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 open import Relation.Binary.PropositionalEquality
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 open import Data.Nat renaming ( zero to Zero ; suc to Suc ; ℕ to Nat ; _⊔_ to _n⊔_ )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 import BAlgbra
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 open BAlgbra O
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 open inOrdinal O
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 open OD O
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 open OD.OD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 open ODAxiom odAxiom
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 -- import ODC
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 open _∧_
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 open _∨_
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 open Bool
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 open HOD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 -- The cumulative hierarchy
415
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
28 -- V 0 := ∅
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
29 -- V α + 1 := P ( V α )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
30 -- V α := ⋃ { V β | β < α }
414
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 V : ( β : Ordinal ) → HOD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 V β = TransFinite1 Vβ₁ β where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 Vβ₁ : (x : Ordinal ) → ( ( y : Ordinal) → y o< x → HOD ) → HOD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 Vβ₁ x Vβ₀ with trio< x o∅
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 Vβ₁ x Vβ₀ | tri< a ¬b ¬c = ⊥-elim ( ¬x<0 a)
415
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
37 Vβ₁ x Vβ₀ | tri≈ ¬a refl ¬c = Ord o∅
414
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 Vβ₁ x Vβ₀ | tri> ¬a ¬b c with Oprev-p x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 Vβ₁ x Vβ₀ | tri> ¬a ¬b c | yes p = Power ( Vβ₀ (Oprev.oprev p ) (subst (λ k → _ o< k) (Oprev.oprev=x p) <-osuc ))
415
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
40 Vβ₁ x Vβ₀ | tri> ¬a ¬b c | no ¬p =
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
41 record { od = record { def = λ y → (y o< x ) ∧ ((lt : y o< x ) → odef (Vβ₀ y lt) x ) } ; odmax = x; <odmax = λ {x} lt → proj1 lt }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
42
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
43 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
44 -- Definition for Power Set
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
45 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
46 record Definitions : Set (suc n) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
47 field
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
48 Definition : HOD → HOD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
49
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
50 open Definitions
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
51
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
52 Df : Definitions → (x : HOD) → HOD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
53 Df D x = Power x ∩ Definition D x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
54
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
55 -- The constructible Sets
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
56 -- L 0 := ∅
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
57 -- L α + 1 := Df (L α) -- Definable Power Set
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
58 -- V α := ⋃ { L β | β < α }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
59
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
60 L : ( β : Ordinal ) → Definitions → HOD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
61 L β D = TransFinite1 Lβ₁ β where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
62 Lβ₁ : (x : Ordinal ) → ( ( y : Ordinal) → y o< x → HOD ) → HOD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
63 Lβ₁ x Lβ₀ with trio< x o∅
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
64 Lβ₁ x Lβ₀ | tri< a ¬b ¬c = ⊥-elim ( ¬x<0 a)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
65 Lβ₁ x Lβ₀ | tri≈ ¬a refl ¬c = Ord o∅
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
66 Lβ₁ x Lβ₀ | tri> ¬a ¬b c with Oprev-p x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
67 Lβ₁ x Lβ₀ | tri> ¬a ¬b c | yes p = Df D ( Lβ₀ (Oprev.oprev p ) (subst (λ k → _ o< k) (Oprev.oprev=x p) <-osuc ))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
68 Lβ₁ x Lβ₀ | tri> ¬a ¬b c | no ¬p =
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
69 record { od = record { def = λ y → (y o< x ) ∧ ((lt : y o< x ) → odef (Lβ₀ y lt) x ) } ; odmax = x; <odmax = λ {x} lt → proj1 lt }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
70
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
71 V=L0 : Set (suc n)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 414
diff changeset
72 V=L0 = (x : Ordinal) → V x ≡ L x record { Definition = λ y → y }