# HG changeset patch # User Shinji KONO # Date 1625721816 -32400 # Node ID f0763f51631ef2d899d68a3a809f0d3f15624be1 # Parent 9fefd6c7fb7796ad5a15c90b80ee7eea103adde6 ... diff -r 9fefd6c7fb77 -r f0763f51631e src/HyperReal.agda --- a/src/HyperReal.agda Thu Jul 08 11:55:40 2021 +0900 +++ b/src/HyperReal.agda Thu Jul 08 14:23:36 2021 +0900 @@ -4,7 +4,7 @@ open import Data.Nat.Properties open import Data.Empty open import Relation.Nullary using (¬_; Dec; yes; no) -open import Level renaming ( suc to succ ; zero to Zero ) +open import Level renaming ( suc to succ ; zero to Zero ; _⊔_ to _L⊔_ ) open import Relation.Binary.PropositionalEquality hiding ( [_] ) open import Relation.Binary.Definitions open import Relation.Binary.Structures @@ -56,15 +56,18 @@ field <-map : Bijection ℕ ℕ <-m : ℕ - is-<≤ : (k : ℕ ) → k > <-m → i k < j (fun→ <-map k) + is-n< : (k : ℕ ) → k > <-m → i k < j (fun→ <-map k) open _n<_ _n<=s≤_ : (i j : HyperNat ) → (i n< j) ⇔ (( i n+ h 1 ) n≤ j ) _n<=s≤_ = {!!} +¬hn<0 : {x : HyperNat } → ¬ ( x n< h 0 ) +¬hn<0 {x} x<0 = ⊥-elim ( nat-≤> (is-n< x<0 (suc (<-m x<0)) a ¬a ¬b c = {!!} @@ -114,20 +117,33 @@ _z<_ : (i j : HyperZ ) → Set _z<_ (hz x0 y0) (hz x1 y1) = (x0 n+ y1) n< (x1 n+ y0) -_cmpz_ : Trichotomous {Level.zero} _z=_ _z<_ -(hz x0 y0) cmpz (hz x1 y1) = (x0 n+ y1) cmpn (x1 n+ y0) +<-cmpz : Trichotomous {Level.zero} _z=_ _z<_ +<-cmpz (hz x0 y0) (hz x1 y1) = <-cmpn (x0 n+ y1) (x1 n+ y0) import Axiom.Extensionality.Propositional postulate f-extensionality : { n m : Level} → Axiom.Extensionality.Propositional.Extensionality n m +--- x*y ...... 0 0 0 0 ... +--- x ...... 0 0 1 0 1 .... +--- y ...... 0 1 0 1 0 .... + HNnzero* : {x y : HyperNat } → ¬ ( x n= h 0 ) → ¬ ( y n= h 0 ) → ¬ ( (x n* y) n= h 0 ) -HNnzero* {x} {y} nzx nzy nzx*y = {!!} where - hnz0 : ( k : ℕ ) → x k * y k ≡ 0 → (x k ≡ 0) ∨ (y k ≡ 0) - hnz0 k x*y = m*n=0⇒m=0∨n=0 x*y - +HNnzero* {x} {y} nzx nzy xy0 = hn1 where + hn2 : ( h 0 n< x ) → ( h 0 n< y ) → ¬ ( (x n* y) n= h 0 ) + hn2 0 ¬a ¬b c with <-cmpn y (h 0) + ... | tri< a ¬b₁ ¬c = ⊥-elim ( ¬hn<0 a) + ... | tri≈ ¬a₁ b ¬c = nzy b + ... | tri> ¬a₁ ¬b₁ c₁ = hn2 c c₁ xy0 HZzero : HyperZ → Set -HZzero (hz i j ) = ( k : ℕ ) → i k ≡ j k +HZzero z = hZ 0 0 z= z HZzero? : ( i : HyperZ ) → Dec (HZzero i) HZzero? = {!!} @@ -136,10 +152,7 @@ hr : HyperZ → (k : HyperNat ) → ¬ (k n= h 0) → HyperR HZnzero* : {x y : HyperZ } → ¬ ( HZzero x ) → ¬ ( HZzero y ) → ¬ ( HZzero (x z* y) ) -HZnzero* {x} {y} nzx nzy nzx*y with HZzero? x | HZzero? y -... | yes t | s = ⊥-elim ( nzx t ) -... | t | yes s = ⊥-elim ( nzy s ) -... | no t | no s = {!!} +HZnzero* {x} {y} nzx nzy nzx*y = {!!} HRzero : HyperR → Set HRzero (hr i j nz ) = HZzero i @@ -147,11 +160,20 @@ hR : ℕ → ℕ → (k : HyperNat ) → ¬ (k n= h 0) → HyperR hR x y k ne = hr (hZ x y) k ne +-- +-- z0 / y0 = z1 / y1 ← z0 * y1 = z1 * y0 +-- _h=_ : (i j : HyperR ) → Set -_h=_ = {!!} +hr z0 k0 ne0 h= hr z1 k1 ne1 = (z0 z* (hz k1 (h 0))) z= (z1 z* (hz k0 (h 0))) _h≤_ : (i j : HyperR ) → Set -_h≤_ = {!!} +hr z0 k0 ne0 h≤ hr z1 k1 ne1 = (z0 z* (hz k1 (h 0))) z≤ (z1 z* (hz k0 (h 0))) + +_h<_ : (i j : HyperR ) → Set +hr z0 k0 ne0 h< hr z1 k1 ne1 = (z0 z* (hz k1 (h 0))) z< (z1 z* (hz k0 (h 0))) + +<-cmph : Trichotomous {Level.zero} _h=_ _h<_ +<-cmph (hr z0 k0 ne0 ) ( hr z1 k1 ne1 ) = <-cmpz (z0 z* (hz k1 (h 0))) (z1 z* (hz k0 (h 0))) _h*_ : (i j : HyperR) → HyperR hr x k nz h* hr y k₁ nz₁ = hr ( x z* y ) ( k n* k₁ ) (HNnzero* nz nz₁) @@ -170,4 +192,4 @@ factor : HyperNat factor n = {!!} fne : (n : ℕ) → ¬ (factor n= h 0) - fne = ? + fne = {!!}