# HG changeset patch # User Shinji KONO # Date 1671350177 -32400 # Node ID 125605b5bf47b21cc7a00d0ecc36167ba1995508 # Parent 2fa98e3c0fa36a489eaddab58b6eb9aa2f2f6126 supf-idem is not so easy diff -r 2fa98e3c0fa3 -r 125605b5bf47 src/zorn.agda --- a/src/zorn.agda Sun Dec 18 10:32:29 2022 +0900 +++ b/src/zorn.agda Sun Dec 18 16:56:17 2022 +0900 @@ -342,13 +342,15 @@ {y : Ordinal} (ay : odef A y) ( z : Ordinal ) : Set (Level.suc n) where field supf : Ordinal → Ordinal + + cfcs : {a b w : Ordinal } → a o< b → b o≤ z → supf a o< b → FClosure A f (supf a) w → odef (UnionCF A f ay supf b) w + order : {a b w : Ordinal } → b o≤ z → supf a o< supf b → FClosure A f (supf a) w → w ≤ supf b + asupf : {x : Ordinal } → odef A (supf x) - supf-mono : {x y : Ordinal } → x o≤ y → supf x o≤ supf y zo≤sz : {x : Ordinal } → x o≤ z → x o≤ supf x + is-minsup : {x : Ordinal } → (x≤z : x o≤ z) → IsMinSUP A (UnionCF A f ay supf x) (supf x) - cfcs : {a b w : Ordinal } → a o< b → b o≤ z → supf a o< b → FClosure A f (supf a) w → odef (UnionCF A f ay supf b) w - supf-idem : {b : Ordinal } → b o≤ z → supf b o≤ z → supf (supf b) ≡ supf b chain : HOD chain = UnionCF A f ay supf z @@ -398,6 +400,50 @@ initial {x} x≤z ⟪ aa , ch-init fc ⟫ = s≤fc y f mf fc initial {x} x≤z ⟪ aa , ch-is-sup u u ¬a ¬b c with ≤-ftrans (order (o<→≤ sua (λ lt → <-irr (case2 b (λ lt → <-irr (case2 b ( @@ -436,6 +482,16 @@ ... | tri≈ ¬a b ¬c = b ... | tri> ¬a ¬b b z48 b b≤sa ( supf-inject ( osucprev ( begin - osuc (supf (supf a)) ≡⟨ cong osuc (supf-idem (ordtrans (supf-inject sa b≤sa ( supf-inject ( osucprev ( begin + osuc (supf (supf a)) ≡⟨ cong osuc (supf-idem (ordtrans (supf-inject sa ¬a ¬b c with ≤-ftrans (order (o<→≤ sua (λ lt → <-irr (case2 b (λ lt → <-irr (case2 b ( + IsMinSUP.minsup (is-minsup b≤z) asupf1 (λ {z} uzb → IsMinSUP.x≤sup (is-minsup a≤z) (subst (λ k → odef k z) (sym ua=ub) uzb)) ) sa ¬a ¬b sb ( + IsMinSUP.minsup (is-minsup a≤z) asupf1 (λ {z} uza → IsMinSUP.x≤sup (is-minsup b≤z) (subst (λ k → odef k z) ua=ub uza)) ) sb ¬a ¬b c = ⊥-elim ( ¬p ¬a ¬b px ¬a ¬b c = ⊥-elim ( o≤> b≤x c ) -- x o< b ≤ x + a≤x : a o≤ x + a≤x = o<→≤ ( subst (λ k → a o< k ) b=x a ¬a ¬b 0 ¬a ¬b 0 ( + IsMinSUP.minsup (is-minsup b≤z) asupf (λ {z} uzb → IsMinSUP.x≤sup (is-minsup a≤z) (subst (λ k → odef k z) (sym ua=ub) uzb)) ) sa ¬a ¬b sb ( + IsMinSUP.minsup (is-minsup a≤z) asupf (λ {z} uza → IsMinSUP.x≤sup (is-minsup b≤z) (subst (λ k → odef k z) ua=ub uza)) ) sb