# HG changeset patch # User Shinji KONO # Date 1719023975 -32400 # Node ID 41a8df20cfeabd5ebb923b33dba849f8bce0b482 # Parent 9d8fbfc5bf878f85e689849d4a19da6805cc1567 bad pattern on fω→2-wld diff -r 9d8fbfc5bf87 -r 41a8df20cfea src/PFOD.agda --- a/src/PFOD.agda Sat Jun 22 09:24:52 2024 +0900 +++ b/src/PFOD.agda Sat Jun 22 11:39:35 2024 +0900 @@ -48,15 +48,14 @@ import filter open import Relation.Nullary -open import Relation.Binary +-- open import Relation.Binary hiding ( _⇔_ ) open import Data.Empty -open import Relation.Binary -open import Relation.Binary.Core open import Relation.Binary.PropositionalEquality open import Data.Nat renaming ( zero to Zero ; suc to Suc ; ℕ to Nat ; _⊔_ to _n⊔_ ) import BAlgebra -open BAlgebra O +-- open BAlgebra O +open import ZProduct O HODAxiom ho< ------- @@ -67,7 +66,6 @@ open import Data.List hiding (filter) open import Data.Maybe -open import ZProduct O data Hω2 : (i : Nat) ( x : Ordinal ) → Set n where hφ : Hω2 0 o∅ @@ -85,61 +83,61 @@ open Hω2r -hw⊆POmega : {x : Ordinal} → Hω2r x → odef (Power (Power Omega )) x +hw⊆POmega : {x : Ordinal} → Hω2r x → odef (Power (Power (Omega ho<))) x hw⊆POmega {x} r = odmax1 (Hω2r.count r) (Hω2r.hω2 r) where - odmax1 : {y : Ordinal} (i : Nat) → Hω2 i y → odef (Power (Power Omega )) y - odmax1 0 hφ z xz = ⊥-elim ( ¬x<0 (subst (λ k → odef k z) o∅≡od∅ xz )) + odmax1 : {y : Ordinal} (i : Nat) → Hω2 i y → odef (Power (Power (Omega ho<) )) y + odmax1 0 hφ z xz = ⊥-elim ( ¬x<0 (eq→ o∅==od∅ xz )) odmax1 (Suc i) (h0 {_} {y} hw) = pf01 where - pf00 : odef ( Power (Power Omega)) y + pf00 : odef ( Power (Power (Omega ho<))) y pf00 = odmax1 i hw - pf01 : odef (Power (Power Omega)) (& (Union (< nat→ω i , nat→ω 0 > , * y))) - pf01 z xz with subst (λ k → odef k z ) *iso xz + pf01 : odef (Power (Power (Omega ho<))) (& (Union (< nat→ω i , nat→ω 0 > , * y))) + pf01 z xz with eq→ *iso xz ... | record { owner = owner ; ao = case1 refl ; ox = ox } = pf02 where pf02 : (w : Ordinal) → odef (* z) w → Omega-d w - pf02 w zw with subst (λ k → odef k z) *iso ox - ... | case2 refl with subst (λ k → odef k w) *iso zw + pf02 w zw with eq→ *iso ox + ... | case2 refl with eq→ *iso zw ... | case1 refl = ω∋nat→ω {i} ... | case2 refl = ω∋nat→ω {0} - pf02 w zw | case1 refl with subst (λ k → odef k w) *iso zw + pf02 w zw | case1 refl with eq→ *iso zw ... | case1 refl = ω∋nat→ω {i} ... | case2 refl = ω∋nat→ω {i} ... | record { owner = owner ; ao = case2 refl ; ox = ox } = pf02 where - pf03 : odef ( Power (Power Omega)) y + pf03 : odef ( Power (Power (Omega ho<))) y pf03 = odmax1 i hw pf02 : (w : Ordinal) → odef (* z) w → Omega-d w pf02 w zw = odmax1 i hw _ (subst (λ k → odef (* k) z) (&iso) ox) _ zw odmax1 (Suc i) (h1 {_} {y} hw) = pf01 where - pf00 : odef ( Power (Power Omega)) y + pf00 : odef ( Power (Power (Omega ho<))) y pf00 = odmax1 i hw - pf01 : odef (Power (Power Omega)) (& (Union (< nat→ω i , nat→ω 1 > , * y))) - pf01 z xz with subst (λ k → odef k z ) *iso xz + pf01 : odef (Power (Power (Omega ho<))) (& (Union (< nat→ω i , nat→ω 1 > , * y))) + pf01 z xz with eq→ *iso xz ... | record { owner = owner ; ao = case1 refl ; ox = ox } = pf02 where pf02 : (w : Ordinal) → odef (* z) w → Omega-d w - pf02 w zw with subst (λ k → odef k z) *iso ox - ... | case2 refl with subst (λ k → odef k w) *iso zw + pf02 w zw with eq→ *iso ox + ... | case2 refl with eq→ *iso zw ... | case1 refl = ω∋nat→ω {i} ... | case2 refl = ω∋nat→ω {1} - pf02 w zw | case1 refl with subst (λ k → odef k w) *iso zw + pf02 w zw | case1 refl with eq→ *iso zw ... | case1 refl = ω∋nat→ω {i} ... | case2 refl = ω∋nat→ω {i} ... | record { owner = owner ; ao = case2 refl ; ox = ox } = pf02 where - pf03 : odef ( Power (Power Omega)) y + pf03 : odef ( Power (Power (Omega ho<))) y pf03 = odmax1 i hw pf02 : (w : Ordinal) → odef (* z) w → Omega-d w pf02 w zw = odmax1 i hw _ (subst (λ k → odef (* k) z) (&iso) ox) _ zw odmax1 (Suc i) (he {_} {y} hw) = pf00 where - pf00 : odef ( Power (Power Omega)) y + pf00 : odef ( Power (Power (Omega ho<))) y pf00 = odmax1 i hw -- -- Set of limited partial function of Omega -- HODω2 : HOD -HODω2 = record { od = record { def = λ x → Hω2r x } ; odmax = & (Power (Power Omega)) +HODω2 = record { od = record { def = λ x → Hω2r x } ; odmax = & (Power (Power (Omega ho<))) ;