comparison src/ODUtil.agda @ 1150:fe0129c40745

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 17 Jan 2023 11:21:18 +0900
parents 3091ac71a999
children 8a071bf52407
comparison
equal deleted inserted replaced
1149:f8a30e568eca 1150:fe0129c40745
43 43
44 cseq : HOD → HOD 44 cseq : HOD → HOD
45 cseq x = record { od = record { def = λ y → odef x (osuc y) } ; odmax = osuc (odmax x) ; <odmax = lemma } where 45 cseq x = record { od = record { def = λ y → odef x (osuc y) } ; odmax = osuc (odmax x) ; <odmax = lemma } where
46 lemma : {y : Ordinal} → def (od x) (osuc y) → y o< osuc (odmax x) 46 lemma : {y : Ordinal} → def (od x) (osuc y) → y o< osuc (odmax x)
47 lemma {y} lt = ordtrans <-osuc (ordtrans (<odmax x lt) <-osuc ) 47 lemma {y} lt = ordtrans <-osuc (ordtrans (<odmax x lt) <-osuc )
48
49 ∩-comm : { A B : HOD } → (A ∩ B) ≡ (B ∩ A)
50 ∩-comm {A} {B} = ==→o≡ record { eq← = λ {x} lt → ⟪ proj2 lt , proj1 lt ⟫ ; eq→ = λ {x} lt → ⟪ proj2 lt , proj1 lt ⟫ }
51
52 _∪_ : ( A B : HOD ) → HOD
53 A ∪ B = record { od = record { def = λ x → odef A x ∨ odef B x } ;
54 odmax = omax (odmax A) (odmax B) ; <odmax = lemma } where
55 lemma : {y : Ordinal} → odef A y ∨ odef B y → y o< omax (odmax A) (odmax B)
56 lemma {y} (case1 a) = ordtrans (<odmax A a) (omax-x _ _)
57 lemma {y} (case2 b) = ordtrans (<odmax B b) (omax-y _ _)
58
59 _\_ : ( A B : HOD ) → HOD
60 A \ B = record { od = record { def = λ x → odef A x ∧ ( ¬ ( odef B x ) ) }; odmax = odmax A ; <odmax = λ y → <odmax A (proj1 y) }
61
62 ¬∅∋ : {x : HOD} → ¬ ( od∅ ∋ x )
63 ¬∅∋ {x} = ¬x<0
48 64
49 65
50 pair-xx<xy : {x y : HOD} → & (x , x) o< osuc (& (x , y) ) 66 pair-xx<xy : {x y : HOD} → & (x , x) o< osuc (& (x , y) )
51 pair-xx<xy {x} {y} = ⊆→o≤ lemma where 67 pair-xx<xy {x} {y} = ⊆→o≤ lemma where
52 lemma : {z : Ordinal} → def (od (x , x)) z → def (od (x , y)) z 68 lemma : {z : Ordinal} → def (od (x , x)) z → def (od (x , y)) z
229 → { p q : HOD } → Union (Power P) ∋ p → Union (Power P) ∋ q → Union (Power P) ∋ (p ∩ q) 245 → { p q : HOD } → Union (Power P) ∋ p → Union (Power P) ∋ q → Union (Power P) ∋ (p ∩ q)
230 UPower∩ {P} each {p} {q} record { owner = x ; ao = ppx ; ox = xz } record { owner = y ; ao = ppy ; ox = yz } 246 UPower∩ {P} each {p} {q} record { owner = x ; ao = ppx ; ox = xz } record { owner = y ; ao = ppy ; ox = yz }
231 = record { owner = & P ; ao = PPP ; ox = lem03 } where 247 = record { owner = & P ; ao = PPP ; ox = lem03 } where
232 lem03 : odef (* (& P)) (& (p ∩ q)) 248 lem03 : odef (* (& P)) (& (p ∩ q))
233 lem03 = subst (λ k → odef k (& (p ∩ q))) (sym *iso) ( each (ppx _ xz) (ppy _ yz) ) 249 lem03 = subst (λ k → odef k (& (p ∩ q))) (sym *iso) ( each (ppx _ xz) (ppy _ yz) )
250
251 -- ∋-irr : {X x : HOD} → (a b : X ∋ x ) → a ≡ b
252 -- ∋-irr {X} {x} _ _ = refl
253 -- is requed in
254 -- Replace∩ : {X P Q : HOD} → {ψ : (x : HOD) → X ∋ x → HOD} → (P⊆X : P ⊆ X) → (Q⊆X : Q ⊆ X )
255 -- → Replace' (P ∩ Q) (λ _ pq → ψ _ (P⊆X (proj1 pq ))) ≡ Replace' P (λ _ p → ψ _ (P⊆X p)) ∩ Replace' Q (λ _ q → ψ _ (Q⊆X q))
256 -- Replace∩ {X} {P} {Q} {ψ} P⊆X Q⊆X = ==→o≡ record { eq→ = lem04 ; eq← = ? } where
257 -- lem04 : {x : Ordinal} → OD.def (od (Replace' (P ∩ Q) (λ z pq → ψ z (P⊆X (proj1 pq)) ))) x
258 -- → OD.def (od (Replace' P (λ z p → ψ z (P⊆X p)) ∩ Replace' Q (λ z q → ψ z (Q⊆X q)))) x
259 -- lem04 {x} record { z = z ; az = az ; x=ψz = x=ψz } = ⟪
260 -- record { z = _ ; az = proj1 az ; x=ψz = ? } ,
261 -- record { z = _ ; az = proj2 az ; x=ψz = ? } ⟫
262
263 Repl∪ψ : {X P Q : HOD} → (ψ : (x : HOD) → X ∋ x → HOD) → (P⊆X : P ⊆ X) → (Q⊆X : Q ⊆ X ) → (x : HOD) → (P ∪ Q) ∋ x → HOD
264 Repl∪ψ {X} {P} {Q} ψ P⊆X Q⊆X x (case1 p) = ψ _ (P⊆X p)
265 Repl∪ψ {X} {P} {Q} ψ P⊆X Q⊆X x (case2 q) = ψ _ (Q⊆X q)
266
267 Replace∪ : {X P Q : HOD} → {ψ : (x : HOD) → X ∋ x → HOD} → (P⊆X : P ⊆ X) → (Q⊆X : Q ⊆ X )
268 → Replace' (P ∪ Q) (Repl∪ψ {X} {P} {Q} ψ P⊆X Q⊆X) ≡ Replace' P (λ _ p → ψ _ (P⊆X p)) ∪ Replace' Q (λ _ q → ψ _ (Q⊆X q))
269 Replace∪ {X} {P} {Q} {ψ} P⊆X Q⊆X = ==→o≡ record { eq→ = ? ; eq← = ? }
270
271
272