### changeset 207:3e4eb4da1453

try again ..
author Shinji KONO Thu, 01 Aug 2019 00:13:07 +0900 684d70f1f26b 64ef1db53c49 OD.agda 1 files changed, 11 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
```--- a/OD.agda	Wed Jul 31 17:48:08 2019 +0900
+++ b/OD.agda	Thu Aug 01 00:13:07 2019 +0900
@@ -566,39 +566,19 @@
choice-func' : (X : OD {suc n} ) → (∋-p : (A x : OD {suc n} ) → Dec ( A ∋ x ) )  → ¬ ( X == od∅ ) → choiced X
choice-func' X ∋-p not = have_to_find
where
-            <-not : {X : OD {suc n}} → ( ox : Ordinal {suc n}) → Set (suc n)
-            <-not {X} ox =  ( y : Ordinal {suc n}) → y o< ox → ¬ (X ∋ (ord→od y))
-            lemma-ord : ( ox : Ordinal {suc n} ) → <-not {X} ox ∨ choiced X
-            lemma-ord  ox = TransFinite {n} {suc (suc n)} {λ ox → <-not {X} ox ∨  choiced X  } caseΦ caseOSuc ox where
-               caseΦ : (lx : Nat) → ((x : Ordinal) → x o< ordinal lx (Φ lx) → <-not {X} x ∨ choiced X) →
-                    <-not {X} (record { lv = lx ; ord = Φ lx }) ∨ choiced X
+            ψ : ( ox : Ordinal {suc n}) → Set (suc (suc n))
+            ψ ox = ( x : Ordinal {suc n}) → x o< ox  → ¬ (def X x ) ∨ choiced X
+            lemma-ord : ( ox : Ordinal {suc n} ) → ψ ox
+            lemma-ord  ox = TransFinite {n} {suc (suc n)} {ψ} caseΦ caseOSuc ox where
+               caseΦ : (lx : Nat) → ( (x : Ordinal {suc n} ) → x o< ordinal lx (Φ lx) → ψ x) → ψ (ordinal lx (Φ lx) )
caseΦ lx prev with ∋-p X ( ord→od (ordinal lx (Φ lx) ))
-               caseΦ lx prev | yes p = case2 ( record { a-choice = ord→od (ordinal lx (Φ lx)) ; is-in = p } )
-               caseΦ lx prev | no ¬p = lemma (ordinal lx (Φ lx)) <-osuc  where
-                    lemma : (x : Ordinal {suc n}) → x o<  osuc (ordinal lx (Φ lx))
-                        → ((y : Ordinal) → (Suc (lv y) ≤ lx) ∨ (ord y d< Φ lx) → def X (od→ord (ord→od y)) → ⊥) ∨ choiced X
-                    lemma x lt with osuc-≡< lt
-                    lemma x lt | case1 refl = case1 ?
-                    lemma x lt | case2 lt1 with prev x lt1
-                    lemma x lt | case2 lt1 | case1 lt2 = case1 {!!}
-                    lemma x lt | case2 lt1 | case2 found = case2 found
-               caseOSuc : (lx : Nat) (x : OrdinalD lx) → (<-not {X} (record { lv = lx ; ord = x }) ∨ choiced X) →
-                    <-not {X} (record { lv = lx ; ord = OSuc lx x }) ∨ choiced X
+               caseΦ lx prev | yes p = ? -- case2 ( record { a-choice = ord→od (ordinal lx (Φ lx)) ; is-in = p } )
+               caseΦ lx prev | no ¬p = ?
+               caseOSuc : (lx : Nat) (x : OrdinalD lx) → ψ ( ordinal lx x ) → ψ ( ordinal lx (OSuc lx x) )
caseOSuc lx x prev with ∋-p X (ord→od record { lv = lx ; ord = x } )
-               caseOSuc lx x prev | yes p = case2 (record { a-choice = ord→od record { lv = lx ; ord = x } ; is-in = p })
-               caseOSuc lx x (case1 not_found) | no ¬p = case1 lemma where
-                    lemma : (y : Ordinal) → (Suc (lv y) ≤ lx) ∨ (ord y d< OSuc lx x) → def X (od→ord (ord→od y)) → ⊥
-                    lemma y lt with trio< y (ordinal lx x )
-                    lemma y lt | tri< a ¬b ¬c = not_found y a
-                    lemma y lt | tri≈ ¬a refl ¬c = ¬p
-                    lemma y lt | tri> ¬a ¬b c with osuc-≡< lt
-                    lemma y lt | tri> ¬a ¬b c | case1 refl = ⊥-elim ( ¬b refl )
-                    lemma y lt | tri> ¬a ¬b c | case2 lt1 = ⊥-elim (o<> c lt1 )
-               caseOSuc lx x (case2 found) | no ¬p = case2 found
+               caseOSuc lx x prev | yes p = ? -- case2 (record { a-choice = ord→od record { lv = lx ; ord = x } ; is-in = p })
+               caseOSuc lx x prev | no ¬p =  ?
have_to_find : choiced X
have_to_find with lemma-ord (od→ord X )
-            have_to_find | case1 not_found = ⊥-elim ( not ( record {
-                eq→ = λ {x} lt → ⊥-elim (not_found x (def→o< lt)  (def-subst {suc n} {_} {_} {X} {_} lt refl (sym diso ))) ;
-                eq← = λ lt → ⊥-elim (¬x<0 lt) } ) )
-            have_to_find | case2 found = found
+            have_to_find | t = ?
```