# HG changeset patch # User Shinji KONO # Date 1719743811 -32400 # Node ID 2435deeecda9b216ff27240badaab8f1f9bfd691 # Parent 4f597bc6b3d62d3f160e44445ce2b96a8f77189b maxfilter fixed diff -r 4f597bc6b3d6 -r 2435deeecda9 src/ODUtil.agda --- a/src/ODUtil.agda Sun Jun 30 16:07:58 2024 +0900 +++ b/src/ODUtil.agda Sun Jun 30 19:36:51 2024 +0900 @@ -50,6 +50,10 @@ ⊆∩-incl-2 : {a b c : HOD} → a ⊆ c → ( b ∩ a ) ⊆ c ⊆∩-incl-2 {a} {b} {c} a ¬a ¬b 0 ¬a ¬b bq⊂bp = subst₂ (λ j k → odef j k ) (sym *iso) refl record { owner = bp ; ao = Bbp ; ox = mf36 } where + ... | tri> ¬a ¬b bq⊂bp = eq← *iso record { owner = bp ; ao = Bbp ; ox = mf36 } where mf36 : odef (* bp) (& ((* p) ∩ (* q))) - mf36 = IsFilter.filter2 mf30 bbp (proj2 bq⊂bp bbq) Lpq where + mf36 = IsFilter.filter2 mf30 bbp (eq→ *iso (proj2 bq⊂bp (eq← *iso bbq))) Lpq where mf30 : IsFilter {L} {P} LP bp mf30 = proj1 ( B⊆FX Bbp ) mf32 : ¬ odef (Union B) o∅ mf32 record { owner = owner ; ao = bo ; ox = o0 } with proj1 ( B⊆FX bo ) ... | record { f⊆L = f⊆L ; filter1 = filter1 ; filter2 = filter2 ; proper = proper } = ⊥-elim ( proper o0 ) mf14 : IsFilter LP (& (Union B)) - mf14 = record { f⊆L = subst (λ k → k ⊆ L) (sym *iso) mf16 ; filter1 = mf17 ; filter2 = mf31 ; proper = subst (λ k → ¬ odef k o∅) (sym *iso) mf32 } + mf14 = record { f⊆L = λ lt → mf16 (eq→ *iso lt) ; filter1 = mf17 ; filter2 = mf31 ; proper = λ not → mf32 (eq→ *iso not) } mf15 : filter F ⊆ Union B - mf15 {x} Fx = record { owner = & mf20 ; ao = mf18 ; ox = subst (λ k → odef k x) (sym *iso) (mf22 Fx) } where + mf15 {x} Fx = record { owner = & mf20 ; ao = mf18 ; ox = eq← *iso (mf22 Fx) } where mf22 : odef (filter F) x → odef mf20 x - mf22 Fx = subst (λ k → odef k x) *iso ( proj2 (B⊆FX mf18) Fx ) + mf22 Fx = eq→ *iso ( proj2 (B⊆FX mf18) Fx ) mf13 : odef FX (& (Union B)) - mf13 = ⟪ mf14 , subst (λ k → filter F ⊆ k ) (sym *iso) mf15 ⟫ + mf13 = ⟪ mf14 , (λ lt → eq← *iso (mf15 lt) ) ⟫ mf42 : {z : Ordinal} → odef B z → * z ⊆ Union B mf42 {z} Bz {x} zx = record { owner = _ ; ao = Bz ; ox = zx } mf40 : {z : Ordinal} → odef B z → (z ≡ & (Union B)) ∨ ( * z ⊂ * (& (Union B)) ) mf40 {z} Bz with B⊆FX Bz ... | ⟪ filterz , F⊆z ⟫ with osuc-≡< ( ⊆→o≤ {* z} {Union B} (mf42 Bz) ) ... | case1 eq = case1 (trans (sym &iso) eq ) - ... | case2 lt = case2 ⟪ subst₂ (λ j k → j o< & k ) refl (sym *iso) lt , subst (λ k → * z ⊆ k) (sym *iso) (mf42 Bz) ⟫ + ... | case2 lt = case2 ⟪ subst₂ (λ j k → j o< k ) refl (sym (==→o≡ *iso)) lt , (λ lt → eq← *iso (mf42 Bz lt )) ⟫ mx : Maximal FX mx = Zorn-lemma (∈∅< FX∋F) SUP⊆ imf : IsFilter {L} {P} LP (& (Maximal.maximal mx)) @@ -150,23 +153,24 @@ mf00 = IsFilter.f⊆L imf mf01 : { p q : HOD } → L ∋ q → (* (& (Maximal.maximal mx))) ∋ p → p ⊆ q → (* (& (Maximal.maximal mx))) ∋ q mf01 {p} {q} Lq Fq p⊆q = IsFilter.filter1 imf Lq Fq - (λ {x} lt → subst (λ k → odef k x) (sym *iso) ( p⊆q (subst (λ k → odef k x) *iso lt ) )) + (λ {x} lt → eq← *iso ( p⊆q (eq→ *iso lt ) )) mf02 : { p q : HOD } → (* (& (Maximal.maximal mx))) ∋ p → (* (& (Maximal.maximal mx))) ∋ q → L ∋ (p ∩ q) → (* (& (Maximal.maximal mx))) ∋ (p ∩ q) - mf02 {p} {q} Fp Fq Lpq = subst₂ (λ j k → odef (* (& (Maximal.maximal mx))) (& (j ∩ k ))) *iso *iso ( - IsFilter.filter2 imf Fp Fq (subst₂ (λ j k → odef L (& (j ∩ k ))) (sym *iso) (sym *iso) Lpq )) + mf02 {p} {q} Fp Fq Lpq = subst (λ k → odef (* (& (Maximal.maximal mx))) k) (sym (==→o≡ *iso∩)) ( + IsFilter.filter2 imf Fp Fq (subst (λ k → odef L k) (==→o≡ *iso∩ ) Lpq )) mf : Filter {L} {P} LP mf = record { filter = * (& (Maximal.maximal mx)) ; f⊆L = mf00 ; filter1 = mf01 ; filter2 = mf02 } mf52 : filter F ⊆ Maximal.maximal mx - mf52 = subst (λ k → filter F ⊆ k ) *iso (proj2 mf53) where + mf52 = λ lt → eq→ *iso (proj2 mf53 lt) where mf53 : FX ∋ Maximal.maximal mx mf53 = Maximal.as mx mf50 : (f : Filter LP) → ¬ (filter f ∋ od∅) → filter F ⊆ filter f → ¬ (* (& (zorn.Maximal.maximal mx)) ⊂ filter f) - mf50 f proper F⊆f = subst (λ k → ¬ ( k ⊂ filter f )) (sym *iso) (Maximal.¬maximal