diff ordinal.agda @ 30:3b0fdb95618e

problem on Ordinal ( OSuc ℵ )
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 21 May 2019 00:30:01 +0900
parents fce60b99dc55
children 97ff3f7933fe 2b853472cb24
line wrap: on
line diff
--- a/ordinal.agda	Mon May 20 18:18:43 2019 +0900
+++ b/ordinal.agda	Tue May 21 00:30:01 2019 +0900
@@ -30,11 +30,22 @@
 
 open import Data.Nat.Properties 
 open import Data.Empty
+open import Data.Unit using ( ⊤ )
 open import Relation.Nullary
 
 open import Relation.Binary
 open import Relation.Binary.Core
 
+¬ℵ : {n : Level} {lx : Nat } ( x : OrdinalD {n} lx ) → Set 
+¬ℵ (Φ lv₁) = ⊤
+¬ℵ (OSuc lv₁ x) = ¬ℵ x
+¬ℵ (ℵ lv₁) = ⊥
+
+s<refl : {n : Level } {lx : Nat } { x : OrdinalD {n} lx } → ¬ℵ x  → x d< OSuc lx x
+s<refl {n} {.lv₁} {Φ lv₁} t = Φ<
+s<refl {n} {.lv₁} {OSuc lv₁ x} t = s< (s<refl t)
+s<refl {n} {.(Suc lv₁)} {ℵ lv₁} ()
+
 o∅ : {n : Level} → Ordinal {n}
 o∅  = record { lv = Zero ; ord = Φ Zero }
 
@@ -167,13 +178,13 @@
      }
  }
 
-TransFinite : {n : Level} → ( ψ : Ordinal {n} → Set n ) 
+TransFinite : {n : Level} → { ψ : Ordinal {n} → Set n }
   → ( ∀ (lx : Nat ) → ψ ( record { lv = Suc lx ; ord = ℵ lx } )) 
   → ( ∀ (lx : Nat ) → ψ ( record { lv = lx ; ord = Φ lx } ) )
   → ( ∀ (lx : Nat ) → (x : OrdinalD lx )  → ψ ( record { lv = lx ; ord = x } ) → ψ ( record { lv = lx ; ord = OSuc lx x } ) )
   →  ∀ (x : Ordinal)  → ψ x
-TransFinite ψ caseℵ caseΦ caseOSuc record { lv = lv ; ord = Φ lv } = caseΦ lv
-TransFinite ψ caseℵ caseΦ caseOSuc record { lv = lv ; ord = OSuc lv ord₁ } = caseOSuc lv ord₁
-    ( TransFinite ψ caseℵ caseΦ caseOSuc (record { lv = lv ; ord = ord₁ } ))
-TransFinite ψ caseℵ caseΦ caseOSuc record { lv = Suc lv₁ ; ord = ℵ lv₁ } = caseℵ lv₁
+TransFinite caseℵ caseΦ caseOSuc record { lv = lv ; ord = Φ lv } = caseΦ lv
+TransFinite caseℵ caseΦ caseOSuc record { lv = lv ; ord = OSuc lv ord₁ } = caseOSuc lv ord₁
+    ( TransFinite caseℵ caseΦ caseOSuc (record { lv = lv ; ord = ord₁ } ))
+TransFinite caseℵ caseΦ caseOSuc record { lv = Suc lv₁ ; ord = ℵ lv₁ } = caseℵ lv₁