Mercurial > hg > Members > kono > Proof > ZF-in-agda
comparison src/ODC.agda @ 431:a5f8084b8368
reorganiztion for apkg
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 21 Dec 2020 10:23:37 +0900 |
parents | |
children | 364d738f871d |
comparison
equal
deleted
inserted
replaced
430:28c7be8f252c | 431:a5f8084b8368 |
---|---|
1 {-# OPTIONS --allow-unsolved-metas #-} | |
2 open import Level | |
3 open import Ordinals | |
4 module ODC {n : Level } (O : Ordinals {n} ) where | |
5 | |
6 open import zf | |
7 open import Data.Nat renaming ( zero to Zero ; suc to Suc ; ℕ to Nat ; _⊔_ to _n⊔_ ) | |
8 open import Relation.Binary.PropositionalEquality | |
9 open import Data.Nat.Properties | |
10 open import Data.Empty | |
11 open import Relation.Nullary | |
12 open import Relation.Binary | |
13 open import Relation.Binary.Core | |
14 | |
15 import OrdUtil | |
16 open import logic | |
17 open import nat | |
18 import OD | |
19 import ODUtil | |
20 | |
21 open inOrdinal O | |
22 open OD O | |
23 open OD.OD | |
24 open OD._==_ | |
25 open ODAxiom odAxiom | |
26 open ODUtil O | |
27 | |
28 open Ordinals.Ordinals O | |
29 open Ordinals.IsOrdinals isOrdinal | |
30 open Ordinals.IsNext isNext | |
31 open OrdUtil O | |
32 | |
33 | |
34 open HOD | |
35 | |
36 open _∧_ | |
37 | |
38 postulate | |
39 -- mimimul and x∋minimal is an Axiom of choice | |
40 minimal : (x : HOD ) → ¬ (x =h= od∅ )→ HOD | |
41 -- this should be ¬ (x =h= od∅ )→ ∃ ox → x ∋ Ord ox ( minimum of x ) | |
42 x∋minimal : (x : HOD ) → ( ne : ¬ (x =h= od∅ ) ) → odef x ( & ( minimal x ne ) ) | |
43 -- minimality (may proved by ε-induction with LEM) | |
44 minimal-1 : (x : HOD ) → ( ne : ¬ (x =h= od∅ ) ) → (y : HOD ) → ¬ ( odef (minimal x ne) (& y)) ∧ (odef x (& y) ) | |
45 | |
46 | |
47 -- | |
48 -- Axiom of choice in intutionistic logic implies the exclude middle | |
49 -- https://plato.stanford.edu/entries/axiom-choice/#AxiChoLog | |
50 -- | |
51 | |
52 pred-od : ( p : Set n ) → HOD | |
53 pred-od p = record { od = record { def = λ x → (x ≡ o∅) ∧ p } ; | |
54 odmax = osuc o∅; <odmax = λ x → subst (λ k → k o< osuc o∅) (sym (proj1 x)) <-osuc } | |
55 | |
56 ppp : { p : Set n } { a : HOD } → pred-od p ∋ a → p | |
57 ppp {p} {a} d = proj2 d | |
58 | |
59 p∨¬p : ( p : Set n ) → p ∨ ( ¬ p ) -- assuming axiom of choice | |
60 p∨¬p p with is-o∅ ( & (pred-od p )) | |
61 p∨¬p p | yes eq = case2 (¬p eq) where | |
62 ps = pred-od p | |
63 eqo∅ : ps =h= od∅ → & ps ≡ o∅ | |
64 eqo∅ eq = subst (λ k → & ps ≡ k) ord-od∅ ( cong (λ k → & k ) (==→o≡ eq)) | |
65 lemma : ps =h= od∅ → p → ⊥ | |
66 lemma eq p0 = ¬x<0 {& ps} (eq→ eq record { proj1 = eqo∅ eq ; proj2 = p0 } ) | |
67 ¬p : (& ps ≡ o∅) → p → ⊥ | |
68 ¬p eq = lemma ( subst₂ (λ j k → j =h= k ) *iso o∅≡od∅ ( o≡→== eq )) | |
69 p∨¬p p | no ¬p = case1 (ppp {p} {minimal ps (λ eq → ¬p (eqo∅ eq))} lemma) where | |
70 ps = pred-od p | |
71 eqo∅ : ps =h= od∅ → & ps ≡ o∅ | |
72 eqo∅ eq = subst (λ k → & ps ≡ k) ord-od∅ ( cong (λ k → & k ) (==→o≡ eq)) | |
73 lemma : ps ∋ minimal ps (λ eq → ¬p (eqo∅ eq)) | |
74 lemma = x∋minimal ps (λ eq → ¬p (eqo∅ eq)) | |
75 | |
76 decp : ( p : Set n ) → Dec p -- assuming axiom of choice | |
77 decp p with p∨¬p p | |
78 decp p | case1 x = yes x | |
79 decp p | case2 x = no x | |
80 | |
81 ∋-p : (A x : HOD ) → Dec ( A ∋ x ) | |
82 ∋-p A x with p∨¬p ( A ∋ x ) -- LEM | |
83 ∋-p A x | case1 t = yes t | |
84 ∋-p A x | case2 t = no (λ x → t x) | |
85 | |
86 double-neg-eilm : {A : Set n} → ¬ ¬ A → A -- we don't have this in intutionistic logic | |
87 double-neg-eilm {A} notnot with decp A -- assuming axiom of choice | |
88 ... | yes p = p | |
89 ... | no ¬p = ⊥-elim ( notnot ¬p ) | |
90 | |
91 open _⊆_ | |
92 | |
93 power→⊆ : ( A t : HOD) → Power A ∋ t → t ⊆ A | |
94 power→⊆ A t PA∋t = record { incl = λ {x} t∋x → double-neg-eilm (t1 t∋x) } where | |
95 t1 : {x : HOD } → t ∋ x → ¬ ¬ (A ∋ x) | |
96 t1 = power→ A t PA∋t | |
97 | |
98 OrdP : ( x : Ordinal ) ( y : HOD ) → Dec ( Ord x ∋ y ) | |
99 OrdP x y with trio< x (& y) | |
100 OrdP x y | tri< a ¬b ¬c = no ¬c | |
101 OrdP x y | tri≈ ¬a refl ¬c = no ( o<¬≡ refl ) | |
102 OrdP x y | tri> ¬a ¬b c = yes c | |
103 | |
104 open import zfc | |
105 | |
106 HOD→ZFC : ZFC | |
107 HOD→ZFC = record { | |
108 ZFSet = HOD | |
109 ; _∋_ = _∋_ | |
110 ; _≈_ = _=h=_ | |
111 ; ∅ = od∅ | |
112 ; Select = Select | |
113 ; isZFC = isZFC | |
114 } where | |
115 -- infixr 200 _∈_ | |
116 -- infixr 230 _∩_ _∪_ | |
117 isZFC : IsZFC (HOD ) _∋_ _=h=_ od∅ Select | |
118 isZFC = record { | |
119 choice-func = choice-func ; | |
120 choice = choice | |
121 } where | |
122 -- Axiom of choice ( is equivalent to the existence of minimal in our case ) | |
123 -- ∀ X [ ∅ ∉ X → (∃ f : X → ⋃ X ) → ∀ A ∈ X ( f ( A ) ∈ A ) ] | |
124 choice-func : (X : HOD ) → {x : HOD } → ¬ ( x =h= od∅ ) → ( X ∋ x ) → HOD | |
125 choice-func X {x} not X∋x = minimal x not | |
126 choice : (X : HOD ) → {A : HOD } → ( X∋A : X ∋ A ) → (not : ¬ ( A =h= od∅ )) → A ∋ choice-func X not X∋A | |
127 choice X {A} X∋A not = x∋minimal A not | |
128 |