mirror of
https://github.com/Smaug123/agdaproofs
synced 2025-10-16 00:48:41 +00:00
Triangle inequality on the rationals (#20)
This commit is contained in:
@@ -1,32 +1,39 @@
|
||||
{-# OPTIONS --safe --warning=error #-}
|
||||
|
||||
open import Fields
|
||||
open import Rings
|
||||
open import Fields.Fields
|
||||
open import Functions
|
||||
open import Orders
|
||||
open import LogicalFormulae
|
||||
open import Rationals
|
||||
open import Naturals
|
||||
open import Numbers.Rationals
|
||||
open import Numbers.RationalsLemmas
|
||||
open import Numbers.Naturals
|
||||
open import Setoids.Setoids
|
||||
open import Setoids.Orders
|
||||
|
||||
open import Agda.Primitive using (Level; lzero; lsuc; _⊔_)
|
||||
|
||||
module Reals where
|
||||
record Subset {m n : _} (A : Set m) (B : Set n) : Set (m ⊔ n) where
|
||||
field
|
||||
inj : A → B
|
||||
injInj : Injection inj
|
||||
|
||||
--record RealField {n : _} {A : Set n} {R : Ring A} {F : Field R} : Set _ where
|
||||
-- field
|
||||
-- orderedField : OrderedField F
|
||||
-- open OrderedField orderedField
|
||||
-- open TotalOrder ord
|
||||
-- open Ring R
|
||||
-- field
|
||||
-- complete : {c : _} {C : Set c} → (S : Subset C A) → (upperBound : A) → ({s : C} → (Subset.inj S s) < upperBound) → Sg A (λ lub → ({s : C} → (Subset.inj S s) < lub) && ({s : C} → (Subset.inj S s) < upperBound → (Subset.inj S s) < lub))
|
||||
|
||||
|
||||
record Real : Set where
|
||||
module Numbers.Reals where
|
||||
record ℝ : Set where
|
||||
field
|
||||
f : ℕ → ℚ
|
||||
converges : {ε : ℚ} → Sg ℕ (λ x → {y : ℕ} → x <N y → (f x) +Q (f y) <Q ε)
|
||||
converges : {ε : ℚ} → Sg ℕ (λ x → {y : ℕ} → x <N y → (absQ ((f x) -Q (f y))) <Q ε)
|
||||
|
||||
_+R_ : ℝ → ℝ → ℝ
|
||||
ℝ.f (record { f = a ; converges = conA } +R record { f = b ; converges = conB }) n = (a n) +Q (b n)
|
||||
ℝ.converges (record { f = a ; converges = conA } +R record { f = b ; converges = conB }) {e} = {!absQ (a x +Q b x)!}
|
||||
|
||||
negateR : ℝ → ℝ
|
||||
ℝ.f (negateR record { f = f ; converges = converges }) n = negateQ (f n)
|
||||
ℝ.converges (negateR record { f = f ; converges = converges }) {e} with converges {e}
|
||||
... | n , pr = n , λ {y} x<y → SetoidPartialOrder.wellDefined ℚPartialOrder {absQ ((f n) -Q (f y))} {absQ ((negateQ (f n)) -Q (negateQ (f y)))} {e} {e} {!!} {!reflQ e!} (pr {y} x<y)
|
||||
|
||||
_-R_ : ℝ → ℝ → ℝ
|
||||
a -R b = a +R (negateR b)
|
||||
|
||||
_*R_ : ℝ → ℝ → ℝ
|
||||
ℝ.f (record { f = a ; converges = conA } *R record { f = b ; converges = conB }) n = (a n) *Q (b n)
|
||||
ℝ.converges (record { f = a ; converges = conA } *R record { f = b ; converges = conB}) {e} = {!!}
|
||||
|
||||
realsSetoid : Setoid ℝ
|
||||
(realsSetoid Setoid.∼ record { f = a ; converges = convA }) record { f = b ; converges = convB } = {!!}
|
||||
Setoid.eq realsSetoid = {!!}
|
||||
|
Reference in New Issue
Block a user