comparison src/HyperReal.agda @ 5:ebc18df12f5a

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 02 Jul 2021 22:58:09 +0900
parents f094694aeec5
children b7c2a67befdf
comparison
equal deleted inserted replaced
4:f094694aeec5 5:ebc18df12f5a
13 open import logic 13 open import logic
14 14
15 HyperNat : Set 15 HyperNat : Set
16 HyperNat = ℕ → ℕ 16 HyperNat = ℕ → ℕ
17 17
18 record IsoN : Set where
19 field
20 m→ m← : ℕ → ℕ
21 id→← : (i : ℕ) → m→ (m← i ) ≡ i
22 id←→ : (i : ℕ) → m← (m→ i ) ≡ i
23
24 open IsoN
25
18 record NxN : Set where 26 record NxN : Set where
19 field 27 field
20 nxn→n : ℕ ∧ ℕ → ℕ 28 nxn→n : ℕ ∧ ℕ → ℕ
21 n→nxn : ℕ → ℕ ∧ ℕ 29 n→nxn : ℕ → ℕ ∧ ℕ
22 nn-id : (i j : ℕ) → n→nxn (nxn→n ⟪ i , j ⟫ ) ≡ ⟪ i , j ⟫ 30 nn-id : (i j : ℕ) → n→nxn (nxn→n ⟪ i , j ⟫ ) ≡ ⟪ i , j ⟫
23 n-id : (i : ℕ) → nxn→n (n→nxn i ) ≡ i 31 n-id : (i : ℕ) → nxn→n (n→nxn i ) ≡ i
24
25 32
26 open _∧_ 33 open _∧_
27 34
28 -- t1 : nxn→n 0 1 ≡ 1 35 -- t1 : nxn→n 0 1 ≡ 1
29 -- t1 = refl 36 -- t1 = refl
92 i n* j = λ k → i (n1 k) * j (n2 k) 99 i n* j = λ k → i (n1 k) * j (n2 k)
93 100
94 hzero : HyperNat 101 hzero : HyperNat
95 hzero _ = 0 102 hzero _ = 0
96 103
104 record _n=_ (i j : HyperNat ) : Set where
105 field
106 =-map : IsoN
107 =-m : ℕ
108 is-n= : (k : ℕ ) → k > =-m → i k ≡ j (m→ =-map k)
109
97 -- 110 --
98 -- 111 --
99 record _n≤_ (i j : HyperNat ) : Set where 112 record _n≤_ (i j : HyperNat ) : Set where
100 field 113 field
101 ≤-map : ℕ → ℕ 114 ≤-map : IsoN
102 ≤-m : ℕ 115 ≤-m : ℕ
103 is-n≤ : (k : ℕ ) → k > ≤-m → i k ≤ j (≤-map k) 116 is-n≤ : (k : ℕ ) → k > ≤-m → i k ≤ j (m→ ≤-map k)
104 117
105 postulate 118 postulate
106 _cmpn_ : ( i j : HyperNat ) → Dec ( i n≤ j ) 119 _cmpn_ : ( i j : HyperNat ) → Dec ( i n≤ j )
107 120
108 HNTotalOrder : IsTotalPreorder HyperNat ? _n≤_ 121 HNTotalOrder : IsTotalPreorder _n=_ _n≤_
109 HNTotalOrder = ? 122 HNTotalOrder = record {
123 isPreorder = record {
124 isEquivalence = {!!}
125 ; reflexive = {!!}
126 ; trans = {!!} }
127 ; total = {!!}
128 }
110 129
111 130
112 data HyperZ : Set where 131 data HyperZ : Set where
113 hz : HyperNat → HyperNat → HyperZ 132 hz : HyperNat → HyperNat → HyperZ
114 133
120 -- ( i - i₁ ) * ( j - j₁ ) = i * j + i₁ * j₁ - i * j₁ - i₁ * j 139 -- ( i - i₁ ) * ( j - j₁ ) = i * j + i₁ * j₁ - i * j₁ - i₁ * j
121 hz i i₁ z* hz j j₁ = hz (λ k → i k * j k + i₁ k * j₁ k ) (λ k → i k * j₁ k - i₁ k * j k ) 140 hz i i₁ z* hz j j₁ = hz (λ k → i k * j k + i₁ k * j₁ k ) (λ k → i k * j₁ k - i₁ k * j k )
122 141
123 HNzero : HyperNat → Set 142 HNzero : HyperNat → Set
124 HNzero i = ( k : ℕ ) → i k ≡ 0 143 HNzero i = ( k : ℕ ) → i k ≡ 0
144
145 _z=_ : (i j : HyperZ ) → Set
146 _z=_ = {!!}
147
148 _z≤_ : (i j : HyperZ ) → Set
149 _z≤_ = {!!}
125 150
126 ≤→= : {i j : ℕ} → i ≤ j → j ≤ i → i ≡ j 151 ≤→= : {i j : ℕ} → i ≤ j → j ≤ i → i ≡ j
127 ≤→= {0} {0} z≤n z≤n = refl 152 ≤→= {0} {0} z≤n z≤n = refl
128 ≤→= {suc i} {suc j} (s≤s i<j) (s≤s j<i) = cong suc ( ≤→= {i} {j} i<j j<i ) 153 ≤→= {suc i} {suc j} (s≤s i<j) (s≤s j<i) = cong suc ( ≤→= {i} {j} i<j j<i )
129 154
173 ... | no t | no s = {!!} 198 ... | no t | no s = {!!}
174 199
175 HRzero : HyperR → Set 200 HRzero : HyperR → Set
176 HRzero (hr i j nz ) = HZzero i 201 HRzero (hr i j nz ) = HZzero i
177 202
203 _h=_ : (i j : HyperR ) → Set
204 _h=_ = {!!}
205
206 _h≤_ : (i j : HyperR ) → Set
207 _h≤_ = {!!}
208
178 _h*_ : (i j : HyperR) → HyperR 209 _h*_ : (i j : HyperR) → HyperR
179 210
180 _h+_ : (i j : HyperR) → HyperR 211 _h+_ : (i j : HyperR) → HyperR
181 hr x k nz h+ hr y k₁ nz₁ = hr ( (x z* (hz k hzero)) z+ (y z* (hz k₁ hzero)) ) (k n* k₁) (HNnzero* nz nz₁) 212 hr x k nz h+ hr y k₁ nz₁ = hr ( (x z* (hz k hzero)) z+ (y z* (hz k₁ hzero)) ) (k n* k₁) (HNnzero* nz nz₁)
182 213