# HG changeset patch # User Shinji KONO # Date 1665305921 -32400 # Node ID 6146d75131f51c55a2cbb89efb654b9a537fd4b7 # Parent ac4daa43ef2a8447a0010b860b7cb608ed6ee028 ... diff -r ac4daa43ef2a -r 6146d75131f5 src/zorn.agda --- a/src/zorn.agda Fri Oct 07 17:13:41 2022 +0900 +++ b/src/zorn.agda Sun Oct 09 17:58:41 2022 +0900 @@ -656,14 +656,6 @@ = ⟪ ab , ch-is-sup b b ¬a ¬b c = record { supf = supf0 ; sup=u = ? ; asupf = ? ; supf-mono = ? ; supf-< = ? - ; supfmax = ? ; minsup = ? ; supf-is-minsup = ? ; csupf = ? } where - ... | tri≈ ¬a b ¬c = ? where - -- ... | case1 sfpx=px = record { supf = supf1 ; sup=u = ? ; asupf = asupf1 ; supf-mono = supf-mono1 ; supf-< = supf-<1 - -- ; supfmax = ? ; minsup = ? ; supf-is-minsup = ? ; csupf = ? } where - - -- we are going to determine (supf x), which is not specified in previous zc - -- case1 : supf px ≡ px - -- supf px is MinSUP of previous chain , supf x ≡ MinSUP of Union of UChain and FClosure px - sfpx=px = ? + zc41 : supf0 px o≤ x → ZChain A f mf ay x + zc41 sfpx≤x = record { supf = supf1 ; sup=u = ? ; asupf = ? ; supf-mono = supf1-mono ; supf-< = ? + ; supfmax = ? ; minsup = ? ; supf-is-minsup = ? ; csupf = csupf1 } where + -- supf0 px is included by the chain + -- ( UnionCF A f mf ay supf0 px ∪ FClosure (supf0 px) ) ≡ UnionCF supf1 x + -- supf1 x ≡ sp1, which is not included now pchainpx : HOD pchainpx = record { od = record { def = λ z → (odef A z ∧ UChain A f mf ay supf0 px z ) ∨ FClosure A f px z } ; odmax = & A ; ¬a ¬b c = sp1 --- this may equal or larger then x, and sp1 ≡ supf x, is not included in UniofCF - - apx : odef A px - apx = subst (λ k → odef A k ) (sym sfpx=px) ( ZChain.asupf zc ) - - asupf1 : {z : Ordinal } → odef A (supf1 z ) - asupf1 {z} with trio< z px - ... | tri< a ¬b ¬c = ZChain.asupf zc - ... | tri≈ ¬a b ¬c = subst (λ k → odef A k ) (trans (cong supf0 b) (sym sfpx=px)) ( ZChain.asupf zc ) - ... | tri> ¬a ¬b c = MinSUP.asm sup1 + ... | tri≈ ¬a b ¬c = supf0 z + ... | tri> ¬a ¬b c = sp1 sf1=sf0 : {z : Ordinal } → z o≤ px → supf1 z ≡ supf0 z - sf1=sf0 {z} z ¬a ¬b c = ⊥-elim ( o≤> z ¬a ¬b c = ⊥-elim ( o≤> z≤px c ) - supf-mono1 : {z w : Ordinal } → z o≤ w → supf1 z o≤ supf1 w - supf-mono1 {z} {w} z≤w with trio< w px - ... | tri< a ¬b ¬c = subst₂ (λ j k → j o≤ k ) (sym (sf1=sf0 (o<→≤ (ordtrans≤-< z≤w a)))) refl ( supf-mono z≤w ) - ... | tri≈ ¬a refl ¬c with osuc-≡< z≤w - ... | case1 refl = o≤-refl0 zc17 where - zc17 : supf1 px ≡ px - zc17 with trio< px px - ... | tri< a ¬b ¬c = ⊥-elim ( ¬b refl ) - ... | tri≈ ¬a b ¬c = refl - ... | tri> ¬a ¬b c = ⊥-elim ( ¬b refl ) - ... | case2 lt = subst₂ (λ j k → j o≤ k ) (sym (sf1=sf0 (o<→≤ lt))) (sym sfpx=px) ( supf-mono z≤w ) - supf-mono1 {z} {w} z≤w | tri> ¬a ¬b c with trio< z px - ... | tri< a ¬b ¬c = zc19 where - zc21 : MinSUP A (UnionCF A f mf ay supf0 z) - zc21 = ZChain.minsup zc (o<→≤ a) - zc24 : {x₁ : Ordinal} → odef (UnionCF A f mf ay supf0 z) x₁ → (x₁ ≡ sp1) ∨ (x₁ << sp1) - zc24 {x₁} ux = MinSUP.x ¬a ¬b c = o≤-refl - - supf-<1 : {z0 z1 : Ordinal} → supf1 z0 o< supf1 z1 → supf1 z0 << supf1 z1 - supf-<1 {z0} {z1} sz0 ¬a ¬b px ¬a ¬b c = ⊥-elim ( o<¬≡ refl sz0 px ¬a ¬b c = refl - ch1x=pchainpx : UnionCF A f mf ay supf1 x ≡ pchainpx - ch1x=pchainpx = ==→o≡ record { eq→ = zc11 ; eq← = zc12 } where - fcup : {u z : Ordinal } → FClosure A f (supf1 u) z → u o≤ px → FClosure A f (supf0 u) z - fcup {u} {z} fc u≤px = subst (λ k → FClosure A f k z ) (sf1=sf0 u≤px) fc - fcpu : {u z : Ordinal } → FClosure A f (supf0 u) z → u o≤ px → FClosure A f (supf1 u) z - fcpu {u} {z} fc u≤px = subst (λ k → FClosure A f k z ) (sym (sf1=sf0 u≤px)) fc - zc11 : {z : Ordinal} → odef (UnionCF A f mf ay supf1 x) z → odef pchainpx z - zc11 {z} ⟪ az , ch-init fc ⟫ = case1 ⟪ az , ch-init fc ⟫ - zc11 {z} ⟪ az , ch-is-sup u u≤x is-sup fc ⟫ = zc21 fc where - zc21 : {z1 : Ordinal } → FClosure A f (supf1 u) z1 → odef pchainpx z1 - zc21 {z1} (fsuc z2 fc ) with zc21 fc - ... | case1 ⟪ ua1 , ch-init fc₁ ⟫ = case1 ⟪ proj2 ( mf _ ua1) , ch-init (fsuc _ fc₁) ⟫ - ... | case1 ⟪ ua1 , ch-is-sup u u≤x u1-is-sup fc₁ ⟫ = case1 ⟪ proj2 ( mf _ ua1) , ch-is-sup u u≤x u1-is-sup (fsuc _ fc₁) ⟫ - ... | case2 fc = case2 (fsuc _ fc) - zc21 (init asp refl ) with trio< u px | inspect supf1 u - ... | tri< a ¬b ¬c | _ = case1 ⟪ asp , ch-is-sup u ? record {fcy ¬a ¬b c | _ = ⊥-elim ( ¬p ¬a ¬b c | _ = ⊥-elim ( ¬p ¬a ¬b c with trio< a px + ... | tri< a ¬a ¬b c = o≤-refl record STMP {z : Ordinal} (z≤x : z o≤ x ) : Set (Level.suc n) where field - tsup : MinSUP A (UnionCF A f mf ay supf1 z) + tsup : MinSUP A (UnionCF A f mf ay supf0 z) tsup=sup : supf1 z ≡ MinSUP.sup tsup sup : {z : Ordinal} → (z≤x : z o≤ x ) → STMP z≤x sup {z} z≤x with trio< z px ... | tri< a ¬b ¬c = record { tsup = record { sup = MinSUP.sup m ; asm = MinSUP.asm m - ; x ¬a ¬b px ¬a ¬b px ¬a ¬b c = ⊥-elim ( ¬p ¬a ¬b c = zc41 (o<→≤ c) + ... | tri≈ ¬a b ¬c = zc41 (o≤-refl0 (sym b)) + ... | tri< a ¬b ¬c = record { supf = supf0 ; sup=u = ? ; asupf = ? ; supf-mono = ? ; supf-< = ? + ; supfmax = ? ; minsup = ? ; supf-is-minsup = ? ; csupf = ? } where - -- case2 : px o< supf px - -- supf px is not MinSUP of previous chain , supf x ≡ supf px + -- supf0 px not is included by the chain + -- supf1 x ≡ supf0 px because of supfmax - -- record { supf = supf0 ; asupf = ZChain.asupf zc ; sup = λ lt → STMP.tsup (sup lt ) ; supf-mono = supf-mono - -- ; supf-< = ? ; sup=u = sup=u ; supf-is-sup = λ lt → STMP.tsup=sup (sup lt) } where supf1 : Ordinal → Ordinal supf1 z with trio< z px ... | tri< a ¬b ¬c = supf0 z