comparison OD.agda @ 388:19687f3304c9

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 25 Jul 2020 12:54:28 +0900
parents 8b0715e28b33
children 43b0a6ca7602
comparison
equal deleted inserted replaced
387:8b0715e28b33 388:19687f3304c9
164 otrans : {a x y : Ordinal } → odef (Ord a) x → odef (Ord x) y → odef (Ord a) y 164 otrans : {a x y : Ordinal } → odef (Ord a) x → odef (Ord x) y → odef (Ord a) y
165 otrans x<a y<x = ordtrans y<x x<a 165 otrans x<a y<x = ordtrans y<x x<a
166 166
167 odef→o< : {X : HOD } → {x : Ordinal } → odef X x → x o< od→ord X 167 odef→o< : {X : HOD } → {x : Ordinal } → odef X x → x o< od→ord X
168 odef→o< {X} {x} lt = o<-subst {_} {_} {x} {od→ord X} ( c<→o< ( odef-subst {X} {x} lt (sym oiso) (sym diso) )) diso diso 168 odef→o< {X} {x} lt = o<-subst {_} {_} {x} {od→ord X} ( c<→o< ( odef-subst {X} {x} lt (sym oiso) (sym diso) )) diso diso
169
170 odefo→o< : {X y : Ordinal } → odef (ord→od X) y → y o< X
171 odefo→o< {X} {y} lt = subst₂ (λ j k → j o< k ) diso diso ( c<→o< (subst (λ k → odef (ord→od X) k ) (sym diso ) lt ))
169 172
170 -- avoiding lv != Zero error 173 -- avoiding lv != Zero error
171 orefl : { x : HOD } → { y : Ordinal } → od→ord x ≡ y → od→ord x ≡ y 174 orefl : { x : HOD } → { y : Ordinal } → od→ord x ≡ y → od→ord x ≡ y
172 orefl refl = refl 175 orefl refl = refl
173 176
317 induction : (ox : Ordinal) → ((oy : Ordinal) → oy o< ox → ψ (ord→od oy)) → ψ (ord→od ox) 320 induction : (ox : Ordinal) → ((oy : Ordinal) → oy o< ox → ψ (ord→od oy)) → ψ (ord→od ox)
318 induction ox prev = ind ( λ {y} lt → subst (λ k → ψ k ) oiso (prev (od→ord y) (o<-subst (c<→o< lt) refl diso ))) 321 induction ox prev = ind ( λ {y} lt → subst (λ k → ψ k ) oiso (prev (od→ord y) (o<-subst (c<→o< lt) refl diso )))
319 ε-induction-ord : (ox : Ordinal) { oy : Ordinal } → oy o< ox → ψ (ord→od oy) 322 ε-induction-ord : (ox : Ordinal) { oy : Ordinal } → oy o< ox → ψ (ord→od oy)
320 ε-induction-ord ox {oy} lt = TransFinite {λ oy → ψ (ord→od oy)} induction oy 323 ε-induction-ord ox {oy} lt = TransFinite {λ oy → ψ (ord→od oy)} induction oy
321 324
322 -- level trick (what'a shame) 325 -- level trick (what'a shame) for LEM / minimal
323 -- ε-induction1 : { ψ : HOD → Set (suc n)} 326 ε-induction1 : { ψ : HOD → Set (suc n)}
324 -- → ( {x : HOD } → ({ y : HOD } → x ∋ y → ψ y ) → ψ x ) 327 → ( {x : HOD } → ({ y : HOD } → x ∋ y → ψ y ) → ψ x )
325 -- → (x : HOD ) → ψ x 328 → (x : HOD ) → ψ x
326 -- ε-induction1 {ψ} ind x = subst (λ k → ψ k ) oiso (ε-induction-ord (osuc (od→ord x)) <-osuc ) where 329 ε-induction1 {ψ} ind x = subst (λ k → ψ k ) oiso (ε-induction-ord (osuc (od→ord x)) <-osuc ) where
327 -- induction : (ox : Ordinal) → ((oy : Ordinal) → oy o< ox → ψ (ord→od oy)) → ψ (ord→od ox) 330 induction : (ox : Ordinal) → ((oy : Ordinal) → oy o< ox → ψ (ord→od oy)) → ψ (ord→od ox)
328 -- induction ox prev = ind ( λ {y} lt → subst (λ k → ψ k ) oiso (prev (od→ord y) (o<-subst (c<→o< lt) refl diso ))) 331 induction ox prev = ind ( λ {y} lt → subst (λ k → ψ k ) oiso (prev (od→ord y) (o<-subst (c<→o< lt) refl diso )))
329 -- ε-induction-ord : (ox : Ordinal) { oy : Ordinal } → oy o< ox → ψ (ord→od oy) 332 ε-induction-ord : (ox : Ordinal) { oy : Ordinal } → oy o< ox → ψ (ord→od oy)
330 -- ε-induction-ord ox {oy} lt = TransFinite1 {λ oy → ψ (ord→od oy)} induction oy 333 ε-induction-ord ox {oy} lt = TransFinite1 {λ oy → ψ (ord→od oy)} induction oy
331 334
332 Select : (X : HOD ) → ((x : HOD ) → Set n ) → HOD 335 Select : (X : HOD ) → ((x : HOD ) → Set n ) → HOD
333 Select X ψ = record { od = record { def = λ x → ( odef X x ∧ ψ ( ord→od x )) } ; odmax = odmax X ; <odmax = λ y → <odmax X (proj1 y) } 336 Select X ψ = record { od = record { def = λ x → ( odef X x ∧ ψ ( ord→od x )) } ; odmax = odmax X ; <odmax = λ y → <odmax X (proj1 y) }
334 337
335 Replace : HOD → (HOD → HOD) → HOD 338 Replace : HOD → (HOD → HOD) → HOD