@@ -17,7 +17,11 @@ module Fields.FieldOfFractions.Order {a b c : _} {A : Set a} {S : Setoid {a} {b}
open import Fields.FieldOfFractions.Setoid I
open import Fields.FieldOfFractions.Ring I
open import Fields.FieldOfFractions.Addition I
open import Fields.FieldOfFractions.Lemmas I
open Ring R
open Setoid S
open Equivalence eq
open SetoidTotalOrder ( TotallyOrderedRing.total order)
open import Rings.Orders.Partial.Lemmas
open PartiallyOrderedRing pRing
@@ -28,17 +32,11 @@ fieldOfFractionsComparison (numA ,, (denomA , denomA!=0)) (numB ,, (denomB , den
fieldOfFractionsComparison ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) | inl ( inl 0 <denomA) | inl ( inl 0 <denomB) = ( numA * denomB) < ( numB * denomA)
fieldOfFractionsComparison ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) | inl ( inl 0 <denomA) | inl ( inr denomB<0) = ( numB * denomA) < ( numA * denomB)
fieldOfFractionsComparison ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) | inl ( inl 0 <denomA) | inr 0 = denomB = exFalso ( denomB!=0 ( symmetric 0 = denomB) )
where
open Equivalence ( Setoid.eq S)
fieldOfFractionsComparison ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) | inl ( inr denomA<0) with totality ( Ring.0R R) denomB
fieldOfFractionsComparison ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) | inl ( inr denomA<0) | inl ( inl 0 <denomB) = ( numB * denomA) < ( numA * denomB)
fieldOfFractionsComparison ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) | inl ( inr denomA<0) | inl ( inr denomB<0) = ( numA * denomB) < ( numB * denomA)
fieldOfFractionsComparison ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) | inl ( inr denomA<0) | inr 0 = denomB = exFalso ( denomB!=0 ( symmetric 0 = denomB) )
where
open Equivalence ( Setoid.eq S)
fieldOfFractionsComparison ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) | inr 0 = denomA = exFalso ( denomA!=0 ( symmetric 0 = denomA) )
where
open Equivalence ( Setoid.eq S)
private
abstract
@@ -50,8 +48,6 @@ private
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inl 0 <denomZ) | inl ( inl 0 <denomY) | inl ( inl 0 <denomX) with totality ( Ring.0R R) denomY
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inl 0 <denomZ) | inl ( inl 0 <denomY) | inl ( inl 0 <denomX) | inl ( inl _) = s
where
open Ring R
open Equivalence ( Setoid.eq S)
have : ( ( numX * denomY) * denomZ) < ( ( numY * denomX) * denomZ)
have = ringCanMultiplyByPositive pRing 0 <denomZ x<y
p : ( ( numX * denomZ) * denomY) < ( ( numY * denomX) * denomZ)
@@ -64,13 +60,9 @@ private
s = ringCanCancelPositive order 0 <denomX r
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inl 0 <denomZ) | inl ( inl 0 <denomY) | inl ( inl 0 <denomX) | inl ( inr x) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <denomY x) )
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inl 0 <denomZ) | inl ( inl 0 <denomY) | inl ( inl 0 <denomX) | inr x = exFalso ( denomY!=0 ( symmetric x) )
where
open Equivalence ( Setoid.eq S)
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inl 0 <denomZ) | inl ( inl 0 <denomY) | inl ( inr denomX<0) with totality ( Ring.0R R) denomY
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inl 0 <denomZ) | inl ( inl 0 <denomY) | inl ( inr denomX<0) | inl ( inl _) = ringCanCancelNegative order denomX<0 r
where
open Ring R
open Equivalence ( Setoid.eq S)
p : ( ( numY * denomX) * denomZ) < ( ( numX * denomZ) * denomY)
p = SetoidPartialOrder.<WellDefined pOrder reflexive ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative) ) ( ringCanMultiplyByPositive pRing 0 <denomZ x<y)
q : ( ( numY * denomX) * denomZ) < ( ( denomX * numZ) * denomY)
@@ -85,8 +77,6 @@ private
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inl 0 <denomZ) | inl ( inr denomY<0) | inl ( inl 0 <denomX) | inl ( inl 0 <denomY) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <denomY denomY<0) )
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inl 0 <denomZ) | inl ( inr denomY<0) | inl ( inl 0 <denomX) | inl ( inr _) = ringCanCancelPositive order 0 <denomX r
where
open Ring R
open Equivalence ( Setoid.eq S)
p : ( ( numY * denomX) * denomZ) < ( ( numX * denomY) * denomZ)
p = ringCanMultiplyByPositive pRing 0 <denomZ x<y
q : ( ( numY * denomX) * denomZ) < ( ( denomX * numZ) * denomY)
@@ -98,8 +88,6 @@ private
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inl 0 <denomZ) | inl ( inr denomY<0) | inl ( inr denomX<0) | inl ( inl 0 <denomY) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <denomY denomY<0) )
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inl 0 <denomZ) | inl ( inr denomY<0) | inl ( inr denomX<0) | inl ( inr _) = ringCanCancelNegative order denomX<0 q
where
open Ring R
open Equivalence ( Setoid.eq S)
p : ( ( numX * denomY) * denomZ) < ( ( numY * denomX) * denomZ)
p = ringCanMultiplyByPositive pRing 0 <denomZ x<y
q : ( ( numZ * denomY) * denomX) < ( ( numY * denomZ) * denomX)
@@ -112,8 +100,6 @@ private
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inl ( inl 0 <denomY) | inl ( inl 0 <denomX) with totality ( Ring.0R R) denomY
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inl ( inl 0 <denomY) | inl ( inl 0 <denomX) | inl ( inl _) = ringCanCancelPositive order 0 <denomX ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative) ) ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive x=z) ( transitive ( *WellDefined reflexive ( *Commutative) ) ( transitive *Associative ( *WellDefined *Commutative reflexive) ) ) ) ) p)
where
open Ring R
open Equivalence ( Setoid.eq S)
p : ( ( numY * denomX) * denomZ) < ( ( denomY * numX) * denomZ)
p = ringCanMultiplyByNegative pRing denomZ<0 ( SetoidPartialOrder.<WellDefined pOrder *Commutative reflexive x<y)
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inl ( inl 0 <denomY) | inl ( inl 0 <denomX) | inl ( inr denomY<0) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <denomY denomY<0) )
@@ -121,29 +107,19 @@ private
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inl ( inl 0 <denomY) | inl ( inr denomX<0) with totality ( Ring.0R R) denomY
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inl ( inl 0 <denomY) | inl ( inr denomX<0) | inl ( inl _) = ringCanCancelNegative order denomX<0 ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) ( transitive *Associative ( transitive ( *WellDefined x=z reflexive) ( transitive ( symmetric *Associative) *Commutative) ) ) ) ) ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative) ) p)
where
open Ring R
open Equivalence ( Setoid.eq S)
p : ( ( numX * denomY) * denomZ) < ( ( numY * denomX) * denomZ)
p = ringCanMultiplyByNegative pRing denomZ<0 x<y
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inl ( inl 0 <denomY) | inl ( inr denomX<0) | inl ( inr denomY<0) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder denomY<0 0 <denomY) )
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inl ( inl 0 <denomY) | inl ( inr denomX<0) | inr 0 = denomY = exFalso ( denomY!=0 ( Equivalence.symmetric ( Setoid.eq S) 0 = denomY) )
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inl ( inl 0 <denomY) | inr x = exFalso ( denomX!=0 ( symmetric x) )
where
open Equivalence ( Setoid.eq S)
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inl ( inr denomY<0) with totality ( Ring.0R R) denomX
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inl ( inr denomY<0) | inl ( inl 0 <denomX) with totality ( Ring.0R R) denomY
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inl ( inr denomY<0) | inl ( inl 0 <denomX) | inl ( inl 0 <denomY) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <denomY denomY<0) )
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inl ( inr denomY<0) | inl ( inl 0 <denomX) | inl ( inr _) = ringCanCancelPositive order 0 <denomX ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( *WellDefined *Commutative reflexive) ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive x=z) ( transitive *Associative ( transitive *Commutative *Associative) ) ) ) ) ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative) ) ( ringCanMultiplyByNegative pRing denomZ<0 x<y) )
where
open Ring R
open Equivalence ( Setoid.eq S)
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inl ( inr denomY<0) | inl ( inl 0 <denomX) | inr x = exFalso ( denomY!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inl ( inr denomY<0) | inl ( inr denomX<0) with totality ( Ring.0R R) denomY
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inl ( inr denomY<0) | inl ( inr denomX<0) | inl ( inl 0 <denomY) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <denomY denomY<0) )
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inl ( inr denomY<0) | inl ( inr denomX<0) | inl ( inr _) = ringCanCancelNegative order denomX<0 ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative) ) ( transitive ( *WellDefined *Commutative reflexive) ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive x=z) ( transitive ( *WellDefined reflexive *Commutative) ( transitive *Associative ( *WellDefined *Commutative reflexive) ) ) ) ) ) ( ringCanMultiplyByNegative pRing denomZ<0 x<y) )
where
open Ring R
open Equivalence ( Setoid.eq S)
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inl ( inr denomY<0) | inl ( inr denomX<0) | inr x = exFalso ( denomY!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inl ( inr denomY<0) | inr x = exFalso ( denomX!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
fieldOfFractionsOrderWellDefinedLeft { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y x=z | inl ( inr denomZ<0) | inr x = exFalso ( denomY!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
@@ -154,55 +130,27 @@ private
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inl 0 <denomX) with totality ( Ring.0R R) denomZ
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inl 0 <denomX) | inl ( inl 0 <denomZ) with totality ( Ring.0R R) denomY
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inl 0 <denomX) | inl ( inl 0 <denomZ) | inl ( inl 0 <denomY) = ringCanCancelPositive order 0 <denomY ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative) ) ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) ( transitive *Associative ( transitive ( *WellDefined y=z reflexive) ( transitive ( symmetric *Associative) *Commutative) ) ) ) ) ( ringCanMultiplyByPositive pRing 0 <denomZ x<y) )
where
open Ring R
open Equivalence ( Setoid.eq S)
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inl 0 <denomX) | inl ( inl 0 <denomZ) | inl ( inr denomY<0) = ringCanCancelNegative order denomY<0 ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) ( transitive *Associative ( transitive ( *WellDefined y=z reflexive) ( transitive ( symmetric *Associative) *Commutative) ) ) ) ) ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative) ) ( ringCanMultiplyByPositive pRing 0 <denomZ x<y) )
where
open Ring R
open Equivalence ( Setoid.eq S)
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inl 0 <denomX) | inl ( inl 0 <denomZ) | inr x = exFalso ( denomY!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inl 0 <denomX) | inl ( inr denomZ<0) with totality ( Ring.0R R) denomY
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inl 0 <denomX) | inl ( inr denomZ<0) | inl ( inl 0 <denomY) = ringCanCancelPositive order 0 <denomY ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) ( transitive *Associative ( transitive ( *WellDefined y=z reflexive) ( transitive ( symmetric *Associative) *Commutative) ) ) ) ) ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative) ) ( ringCanMultiplyByNegative pRing denomZ<0 x<y) )
where
open Ring R
open Equivalence ( Setoid.eq S)
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inl 0 <denomX) | inl ( inr denomZ<0) | inl ( inr denomY<0) = ringCanCancelNegative order denomY<0 ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative) ) ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) ( transitive ( *Associative) ( transitive ( *WellDefined y=z reflexive) ( transitive ( symmetric *Associative) *Commutative) ) ) ) ) ( ringCanMultiplyByNegative pRing denomZ<0 x<y) )
where
open Ring R
open Equivalence ( Setoid.eq S)
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inl 0 <denomX) | inl ( inr denomZ<0) | inr x = exFalso ( denomY!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inl 0 <denomX) | inr x = exFalso ( denomZ!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inr denomX<0) with totality ( Ring.0R R) denomZ
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inr denomX<0) | inl ( inl 0 <denomZ) with totality ( Ring.0R R) denomY
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inr denomX<0) | inl ( inl 0 <denomZ) | inl ( inl 0 <denomY) = ringCanCancelPositive order 0 <denomY ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) ( transitive *Associative ( transitive ( *WellDefined y=z reflexive) ( transitive ( symmetric *Associative) *Commutative) ) ) ) ) ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative) ) ( ringCanMultiplyByPositive pRing 0 <denomZ x<y) )
where
open Ring R
open Equivalence ( Setoid.eq S)
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inr denomX<0) | inl ( inl 0 <denomZ) | inl ( inr denomY<0) = ringCanCancelNegative order denomY<0 ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative) ) ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) ( transitive *Associative ( transitive ( *WellDefined y=z reflexive) ( transitive ( symmetric *Associative) *Commutative) ) ) ) ) ( ringCanMultiplyByPositive pRing 0 <denomZ x<y) )
where
open Ring R
open Equivalence ( Setoid.eq S)
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inr denomX<0) | inl ( inl 0 <denomZ) | inr x = exFalso ( denomY!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inr denomX<0) | inl ( inr denomZ<0) with totality ( Ring.0R R) denomY
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inr denomX<0) | inl ( inr denomZ<0) | inl ( inl 0 <denomY) = ringCanCancelPositive order 0 <denomY ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative) ) ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) ( transitive *Associative ( transitive ( *WellDefined y=z reflexive) ( transitive ( symmetric *Associative) *Commutative) ) ) ) ) ( ringCanMultiplyByNegative pRing denomZ<0 x<y) )
where
open Ring R
open Equivalence ( Setoid.eq S)
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inr denomX<0) | inl ( inr denomZ<0) | inl ( inr denomY<0) = ringCanCancelNegative order denomY<0 ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) ( transitive *Associative ( transitive ( *WellDefined y=z reflexive) ( transitive ( symmetric *Associative) *Commutative) ) ) ) ) ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative) ) ( ringCanMultiplyByNegative pRing denomZ<0 x<y) )
where
open Ring R
open Equivalence ( Setoid.eq S)
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inr denomX<0) | inl ( inr denomZ<0) | inr x = exFalso ( denomY!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inl ( inr denomX<0) | inr x = exFalso ( denomZ!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
fieldOfFractionsOrderWellDefinedRight { numX ,, ( denomX , denomX!=0) } { numY ,, ( denomY , denomY!=0) } { numZ ,, ( denomZ , denomZ!=0) } x<y y=z | inr x = exFalso ( denomX!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
swapLemma : { a b : _} { A : Set a} { S : Setoid { a} { b} A} { _+_ : A → A → A} { _*_ : A → A → A} ( R : Ring S _+_ _*_) { x y z : A} → Setoid._∼ _ S ( ( x * y) * z) ( ( x * z) * y)
swapLemma { S = S} R = transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative)
where
open Setoid S
open Ring R
open Equivalence ( Setoid.eq S)
swapLemma : { x y z : A} → Setoid._∼ _ S ( ( x * y) * z) ( ( x * z) * y)
swapLemma = transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative)
private
abstract
@@ -225,9 +173,6 @@ private
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inl 0 <denomA) | inl ( inl 0 <denomC) | inl ( inl x) with totality ( Ring.0R R) denomC
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inl 0 <denomA) | inl ( inl 0 <denomC) | inl ( inl 0 <denomB) | inl ( inl _) = ringCanCancelPositive order 0 <denomB p
where
open Setoid S
open Ring R
open Equivalence ( Setoid.eq S)
inter : ( ( numA * denomB) * denomC) < ( ( numB * denomA) * denomC)
inter = ringCanMultiplyByPositive pRing 0 <denomC a<b
p : ( ( numA * denomC) * denomB) < ( ( numC * denomA) * denomB)
@@ -236,79 +181,57 @@ private
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inl 0 <denomA) | inl ( inl 0 <denomC) | inl ( inl 0 <denomB) | inr x = exFalso ( denomC!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inl 0 <denomA) | inl ( inl 0 <denomC) | inl ( inr denomB<0) with totality ( Ring.0R R) denomC
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inl 0 <denomA) | inl ( inl 0 <denomC) | inl ( inr denomB<0) | inl ( inl _) = ringCanCancelNegative order denomB<0 ( SetoidPartialOrder.<Transitive pOrder ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative) ) reflexive ( ringCanMultiplyByPositive pRing 0 <denomA b<c) ) ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative) ) ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative) ) ( ringCanMultiplyByPositive pRing 0 <denomC a<b) ) )
where
open Setoid S
open Ring R
open Equivalence ( Setoid.eq S)
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inl 0 <denomA) | inl ( inl 0 <denomC) | inl ( inr denomB<0) | inl ( inr denomC<0) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <denomC denomC<0) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inl 0 <denomA) | inl ( inl 0 <denomC) | inl ( inr denomB<0) | inr x = exFalso ( denomC!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inl 0 <denomA) | inl ( inl 0 <denomC) | inr x = exFalso ( denomB!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inl 0 <denomA) | inl ( inr denomC<0) with totality ( Ring.0R R) denomB
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inl 0 <denomA) | inl ( inr denomC<0) | inl ( inl 0 <denomB) with totality ( Ring.0R R) denomC
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inl 0 <denomA) | inl ( inr denomC<0) | inl ( inl 0 <denomB) | inl ( inl 0 <denomC) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <denomC denomC<0) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inl 0 <denomA) | inl ( inr denomC<0) | inl ( inl 0 <denomB) | inl ( inr _) = ringCanCancelPositive order 0 <denomB ( SetoidPartialOrder.<Transitive pOrder have ( SetoidPartialOrder.<WellDefined pOrder ( swapLemma R) ( swapLemma R) ( ringCanMultiplyByNegative pRing denomC<0 a<b) ) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inl 0 <denomA) | inl ( inr denomC<0) | inl ( inl 0 <denomB) | inl ( inr _) = ringCanCancelPositive order 0 <denomB ( SetoidPartialOrder.<Transitive pOrder have ( SetoidPartialOrder.<WellDefined pOrder swapLemma swapLemma ( ringCanMultiplyByNegative pRing denomC<0 a<b) ) )
where
open Setoid S
open Ring R
open Equivalence ( Setoid.eq S)
have : ( ( numC * denomA) * denomB) < ( ( numB * denomC) * denomA)
have = SetoidPartialOrder.<WellDefined pOrder ( swapLemma R) reflexive ( ringCanMultiplyByPositive pRing 0 <denomA b<c)
have = SetoidPartialOrder.<WellDefined pOrder swapLemma reflexive ( ringCanMultiplyByPositive pRing 0 <denomA b<c)
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inl 0 <denomA) | inl ( inr denomC<0) | inl ( inl 0 <denomB) | inr x = exFalso ( denomC!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inl 0 <denomA) | inl ( inr denomC<0) | inl ( inr denomB<0) with totality ( Ring.0R R) denomC
... | ( inl ( inl 0 <denomC) ) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <denomC denomC<0) )
... | ( inl ( inr _) ) = ringCanCancelNegative order denomB<0 ( SetoidPartialOrder.<Transitive pOrder have ( SetoidPartialOrder.<WellDefined pOrder ( swapLemma R) ( swapLemma R) ( ringCanMultiplyByPositive pRing 0 <denomA b<c) ) )
... | ( inl ( inr _) ) = ringCanCancelNegative order denomB<0 ( SetoidPartialOrder.<Transitive pOrder have ( SetoidPartialOrder.<WellDefined pOrder ( swapLemma) ( swapLemma) ( ringCanMultiplyByPositive pRing 0 <denomA b<c) ) )
where
open Setoid S
open Ring R
open Equivalence ( Setoid.eq S)
have : ( ( numA * denomC) * denomB) < ( ( numB * denomA) * denomC)
have = SetoidPartialOrder.<WellDefined pOrder ( swapLemma R) reflexive ( ringCanMultiplyByNegative pRing denomC<0 a<b)
have = SetoidPartialOrder.<WellDefined pOrder ( swapLemma) reflexive ( ringCanMultiplyByNegative pRing denomC<0 a<b)
... | inr x = exFalso ( denomC!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inl 0 <denomA) | inl ( inr denomC<0) | inr x = exFalso ( denomB!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inl 0 <denomA) | inr x = exFalso ( denomC!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) with totality ( Ring.0R R) denomC
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inl 0 <denomC) with totality ( Ring.0R R) denomB
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inl 0 <denomC) | inl ( inl 0 <denomB) with totality ( Ring.0R R) denomC
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inl 0 <denomC) | inl ( inl 0 <denomB) | inl ( inl _) = ringCanCancelPositive order 0 <denomB ( SetoidPartialOrder.<Transitive pOrder ( SetoidPartialOrder.<WellDefined pOrder ( swapLemma R) ( swapLemma R) ( ringCanMultiplyByNegative pRing denomA<0 b<c) ) have)
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inl 0 <denomC) | inl ( inl 0 <denomB) | inl ( inl _) = ringCanCancelPositive order 0 <denomB ( SetoidPartialOrder.<Transitive pOrder ( SetoidPartialOrder.<WellDefined pOrder ( swapLemma) ( swapLemma) ( ringCanMultiplyByNegative pRing denomA<0 b<c) ) have)
where
open Setoid S
open Ring R
open Equivalence ( Setoid.eq S)
have : ( ( numB * denomA) * denomC) < ( ( numA * denomC) * denomB)
have = SetoidPartialOrder.<WellDefined pOrder reflexive ( swapLemma R) ( ringCanMultiplyByPositive pRing 0 <denomC a<b)
have = SetoidPartialOrder.<WellDefined pOrder reflexive ( swapLemma) ( ringCanMultiplyByPositive pRing 0 <denomC a<b)
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inl 0 <denomC) | inl ( inl 0 <denomB) | inl ( inr denomC<0) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <denomC denomC<0) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inl 0 <denomC) | inl ( inl 0 <denomB) | inr x = exFalso ( denomC!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inl 0 <denomC) | inl ( inr denomB<0) with totality ( Ring.0R R) denomC
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inl 0 <denomC) | inl ( inr denomB<0) | inl ( inl _) = ringCanCancelNegative order denomB<0 ( SetoidPartialOrder.<Transitive pOrder have ( SetoidPartialOrder.<WellDefined pOrder ( swapLemma R) ( swapLemma R) ( ringCanMultiplyByNegative pRing denomA<0 b<c) ) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inl 0 <denomC) | inl ( inr denomB<0) | inl ( inl _) = ringCanCancelNegative order denomB<0 ( SetoidPartialOrder.<Transitive pOrder have ( SetoidPartialOrder.<WellDefined pOrder ( swapLemma) ( swapLemma) ( ringCanMultiplyByNegative pRing denomA<0 b<c) ) )
where
open Setoid S
open Ring R
open Equivalence ( Setoid.eq S)
have : ( ( numA * denomC) * denomB) < ( ( numB * denomA) * denomC)
have = SetoidPartialOrder.<WellDefined pOrder ( swapLemma R) reflexive ( ringCanMultiplyByPositive pRing 0 <denomC a<b)
have = SetoidPartialOrder.<WellDefined pOrder ( swapLemma) reflexive ( ringCanMultiplyByPositive pRing 0 <denomC a<b)
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inl 0 <denomC) | inl ( inr denomB<0) | inl ( inr denomC<0) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <denomC denomC<0) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inl 0 <denomC) | inl ( inr denomB<0) | inr x = exFalso ( denomC!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inl 0 <denomC) | inr x = exFalso ( denomB!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inr denomC<0) with totality ( Ring.0R R) denomB
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inr denomC<0) | inl ( inl 0 <denomB) with totality ( Ring.0R R) denomC
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inr denomC<0) | inl ( inl 0 <denomB) | inl ( inl 0 <denomC) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <denomC denomC<0) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inr denomC<0) | inl ( inl 0 <denomB) | inl ( inr _) = ringCanCancelPositive order 0 <denomB ( SetoidPartialOrder.<Transitive pOrder have ( SetoidPartialOrder.<WellDefined pOrder ( swapLemma R) ( swapLemma R) ( ringCanMultiplyByNegative pRing denomA<0 b<c) ) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inr denomC<0) | inl ( inl 0 <denomB) | inl ( inr _) = ringCanCancelPositive order 0 <denomB ( SetoidPartialOrder.<Transitive pOrder have ( SetoidPartialOrder.<WellDefined pOrder ( swapLemma) ( swapLemma) ( ringCanMultiplyByNegative pRing denomA<0 b<c) ) )
where
open Setoid S
open Ring R
open Equivalence ( Setoid.eq S)
have : ( ( numA * denomC) * denomB) < ( ( numB * denomA) * denomC)
have = SetoidPartialOrder.<WellDefined pOrder ( swapLemma R) reflexive ( ringCanMultiplyByNegative pRing denomC<0 a<b)
have = SetoidPartialOrder.<WellDefined pOrder ( swapLemma) reflexive ( ringCanMultiplyByNegative pRing denomC<0 a<b)
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inr denomC<0) | inl ( inl 0 <denomB) | inr x = exFalso ( denomC!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inr denomC<0) | inl ( inr denomB<0) with totality ( Ring.0R R) denomC
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inr denomC<0) | inl ( inr denomB<0) | inl ( inl 0 <denomC) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <denomC denomC<0) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inr denomC<0) | inl ( inr denomB<0) | inl ( inr _) = ringCanCancelNegative order denomB<0 ( SetoidPartialOrder.<Transitive pOrder ( SetoidPartialOrder.<WellDefined pOrder ( swapLemma R) ( swapLemma R) ( ringCanMultiplyByNegative pRing denomA<0 b<c) ) have)
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inr denomC<0) | inl ( inr denomB<0) | inl ( inr _) = ringCanCancelNegative order denomB<0 ( SetoidPartialOrder.<Transitive pOrder ( SetoidPartialOrder.<WellDefined pOrder ( swapLemma) ( swapLemma) ( ringCanMultiplyByNegative pRing denomA<0 b<c) ) have)
where
open Setoid S
open Ring R
open Equivalence ( Setoid.eq S)
have : ( ( numB * denomA) * denomC) < ( ( numA * denomC) * denomB)
have = SetoidPartialOrder.<WellDefined pOrder reflexive ( swapLemma R) ( ringCanMultiplyByNegative pRing denomC<0 a<b)
have = SetoidPartialOrder.<WellDefined pOrder reflexive ( swapLemma) ( ringCanMultiplyByNegative pRing denomC<0 a<b)
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inr denomC<0) | inl ( inr denomB<0) | inr x = exFalso ( denomC!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inl ( inr denomC<0) | inr x = exFalso ( denomB!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
<transitive ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) ( numC ,, ( denomC , denomC!=0) ) a<b b<c | inl ( inr denomA<0) | inr x = exFalso ( denomC!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
@@ -366,57 +289,25 @@ private
ineqLemma { x} { y} 0 <xy 0 <x with totality ( Ring.0R R) y
ineqLemma { x} { y} 0 <xy 0 <x | inl ( inl 0 <y) = 0 <y
ineqLemma { x} { y} 0 <xy 0 <x | inl ( inr y<0) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <xy ( SetoidPartialOrder.<WellDefined pOrder reflexive ( transitive *Commutative ( Ring.timesZero R) ) ( ringCanMultiplyByNegative pRing y<0 0 <x) ) ) )
where
open Setoid S
open Ring R
open Equivalence ( Setoid.eq S)
ineqLemma { x} { y} 0 <xy 0 <x | inr 0 = y = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<WellDefined pOrder reflexive ( transitive ( *WellDefined reflexive ( symmetric 0 = y) ) ( Ring.timesZero R) ) 0 <xy) )
where
open Setoid S
open Ring R
open Equivalence ( Setoid.eq S)
ineqLemma' : { x y : A} → ( Ring.0R R) < ( x * y) → x < ( Ring.0R R) → y < ( Ring.0R R)
ineqLemma' { x} { y} 0 <xy x<0 with totality ( Ring.0R R) y
... | inl ( inl 0 <y) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <xy ( SetoidPartialOrder.<WellDefined pOrder *Commutative ( transitive *Commutative ( Ring.timesZero R) ) ( ringCanMultiplyByNegative pRing x<0 0 <y) ) ) )
where
open Setoid S
open Ring R
open Equivalence ( Setoid.eq S)
... | inl ( inr y<0) = y<0
... | ( inr 0 = y) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<WellDefined pOrder reflexive ( transitive ( *WellDefined reflexive ( symmetric 0 = y) ) ( Ring.timesZero R) ) 0 <xy) )
where
open Setoid S
open Ring R
open Equivalence ( Setoid.eq S)
ineqLemma'' : { x y : A} → ( x * y) < ( Ring.0R R) → ( Ring.0R R) < x → y < ( Ring.0R R)
ineqLemma'' { x} { y} xy<0 0 <x with totality ( Ring.0R R) y
... | inl ( inl 0 <y) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder xy<0 ( orderRespectsMultiplication 0 <x 0 <y) ) )
where
open Setoid S
open Ring R
open Equivalence ( Setoid.eq S)
... | inl ( inr y<0) = y<0
... | ( inr 0 = y) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( *WellDefined reflexive ( symmetric 0 = y) ) ( Ring.timesZero R) ) reflexive xy<0) )
where
open Setoid S
open Ring R
open Equivalence ( Setoid.eq S)
ineqLemma''' : { x y : A} → ( x * y) < ( Ring.0R R) → x < ( Ring.0R R) → ( Ring.0R R) < y
ineqLemma''' { x} { y} xy<0 x<0 with totality ( Ring.0R R) y
... | inl ( inl 0 <y) = 0 <y
... | inl ( inr y<0) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder xy<0 ( SetoidPartialOrder.<WellDefined pOrder ( transitive *Commutative ( Ring.timesZero R) ) reflexive ( ringCanMultiplyByNegative pRing y<0 x<0) ) ) )
where
open Setoid S
open Ring R
open Equivalence ( Setoid.eq S)
... | inr 0 = y = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( *WellDefined reflexive ( symmetric 0 = y) ) ( Ring.timesZero R) ) reflexive xy<0) )
where
open Setoid S
open Ring R
open Equivalence ( Setoid.eq S)
private
<orderRespectsAddition : ( a b : fieldOfFractionsSet) ( a<b : fieldOfFractionsComparison a b) ( c : fieldOfFractionsSet) → fieldOfFractionsComparison ( fieldOfFractionsPlus a c) ( fieldOfFractionsPlus b c)
@@ -426,23 +317,17 @@ private
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inl 0 <dAdC) | inl ( inl 0 <dBdC) | inl ( inl 0 <dA) with totality ( Ring.0R R) denomB
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inl 0 <dAdC) | inl ( inl 0 <dBdC) | inl ( inl 0 <dA) | inl ( inl 0 <dB) = SetoidPartialOrder.<WellDefined pOrder ( symmetric *Associative) ( symmetric *Associative) ( ringCanMultiplyByPositive pRing 0 <dC ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( Group.+WellDefined additiveGroup *Commutative *Commutative) ( transitive ( symmetric *DistributesOver+) *Commutative) ) ( transitive ( Group.+WellDefined additiveGroup *Commutative *Commutative) ( transitive ( symmetric *DistributesOver+) *Commutative) ) ans) )
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
0<dC : 0 R < denomC
0 <dC with totality 0 R denomC
0 <dC | inl ( inl x) = x
0 <dC | inl ( inr dC<0) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <dBdC ( SetoidPartialOrder.<WellDefined pOrder reflexive ( transitive *Commutative ( Ring.timesZero R) ) ( ringCanMultiplyByNegative pRing dC<0 0 <dB) ) ) )
0 <dC | inr x = exFalso ( denomC!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
p : ( ( numA * denomC) * denomB) < ( ( numB * denomC) * denomA)
p = SetoidPartialOrder.<WellDefined pOrder ( swapLemma R) ( swapLemma R) ( ringCanMultiplyByPositive pRing 0 <dC a<b)
p = SetoidPartialOrder.<WellDefined pOrder ( swapLemma) ( swapLemma) ( ringCanMultiplyByPositive pRing 0 <dC a<b)
ans : ( ( ( ( numA * denomC) * denomB) + ( ( denomA * numC) * denomB) ) ) < ( ( ( ( numB * denomC) * denomA) + ( ( denomB * numC) * denomA) ) )
ans = SetoidPartialOrder.<WellDefined pOrder reflexive ( Group.+WellDefined additiveGroup reflexive ( transitive ( *WellDefined *Commutative reflexive) ( transitive ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative) ) ( *WellDefined *Commutative reflexive) ) ) ) ( PartiallyOrderedRing.orderRespectsAddition pRing p ( ( denomA * numC) * denomB) )
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inl 0 <dAdC) | inl ( inl 0 <dBdC) | inl ( inl 0 <dA) | inl ( inr dB<0) = exFalso bad
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
dC<0 : denomC < 0 R
dC<0 with totality 0 R denomC
... | inl ( inl x) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <dBdC ( SetoidPartialOrder.<WellDefined pOrder reflexive ( transitive *Commutative ( Ring.timesZero R) ) ( ringCanMultiplyByPositive pRing x dB<0) ) ) )
@@ -454,9 +339,6 @@ private
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inl 0 <dAdC) | inl ( inl 0 <dBdC) | inl ( inr dA<0) with totality ( Ring.0R R) denomB
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inl 0 <dAdC) | inl ( inl 0 <dBdC) | inl ( inr dA<0) | inl ( inl 0 <dB) = exFalso bad
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
0<dC : 0 R < denomC
0 <dC with totality 0 R denomC
0 <dC | inl ( inl x) = x
@@ -471,9 +353,6 @@ private
bad = SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <dC dC<0)
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inl 0 <dAdC) | inl ( inl 0 <dBdC) | inl ( inr dA<0) | inl ( inr dB<0) = SetoidPartialOrder.<WellDefined pOrder ( symmetric *Associative) ( symmetric *Associative) ( ringCanMultiplyByNegative pRing dC<0 ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( symmetric *DistributesOver+) *Commutative) ( transitive ( symmetric *DistributesOver+) *Commutative) have'') )
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
dC<0 : denomC < 0 R
dC<0 = ineqLemma' 0 <dAdC dA<0
have : ( ( numB * denomA) * denomC) < ( ( numA * denomB) * denomC)
@@ -488,9 +367,6 @@ private
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inl 0 <dAdC) | inl ( inr dBdC<0) | inl ( inl 0 <dA) with totality ( Ring.0R R) denomB
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inl 0 <dAdC) | inl ( inr dBdC<0) | inl ( inl 0 <dA) | inl ( inl 0 <dB) = exFalso bad
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
0<dC : 0 R < denomC
0 <dC = ineqLemma 0 <dAdC 0 <dA
dC<0 : denomC < 0 R
@@ -499,33 +375,24 @@ private
bad = SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <dC dC<0)
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inl 0 <dAdC) | inl ( inr dBdC<0) | inl ( inl 0 <dA) | inl ( inr dB<0) = SetoidPartialOrder.<WellDefined pOrder ( symmetric *Associative) ( symmetric *Associative) ( ringCanMultiplyByPositive pRing 0 <dC ans)
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
0<dC : 0 R < denomC
0 <dC = ineqLemma 0 <dAdC 0 <dA
have : ( ( numB * denomA) * denomC) < ( ( numA * denomB) * denomC)
have = ringCanMultiplyByPositive pRing 0 <dC a<b
have' : ( ( ( numB * denomC) * denomA) + ( ( denomB * numC) * denomA) ) < ( ( ( numA * denomC) * denomB) + ( ( denomB * numC) * denomA) )
have' = PartiallyOrderedRing.orderRespectsAddition pRing ( SetoidPartialOrder.<WellDefined pOrder ( swapLemma R) ( swapLemma R) have) _
have' = PartiallyOrderedRing.orderRespectsAddition pRing ( SetoidPartialOrder.<WellDefined pOrder ( swapLemma) ( swapLemma) have) _
ans : ( ( ( numB * denomC) + ( denomB * numC) ) * denomA) < ( ( ( numA * denomC) + ( denomA * numC) ) * denomB)
ans = SetoidPartialOrder.<WellDefined pOrder ( transitive ( Group.+WellDefined additiveGroup *Commutative *Commutative) ( transitive ( symmetric *DistributesOver+) *Commutative) ) ( transitive ( Group.+WellDefined additiveGroup *Commutative ( transitive ( symmetric *Associative) ( *WellDefined reflexive *Commutative) ) ) ( transitive ( symmetric *DistributesOver+) *Commutative) ) have'
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inl 0 <dAdC) | inl ( inr dBdC<0) | inl ( inl 0 <dA) | inr x = exFalso ( denomB!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inl 0 <dAdC) | inl ( inr dBdC<0) | inl ( inr dA<0) with totality ( Ring.0R R) denomB
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inl 0 <dAdC) | inl ( inr dBdC<0) | inl ( inr dA<0) | inl ( inl 0 <dB) = SetoidPartialOrder.<WellDefined pOrder ( symmetric *Associative) ( symmetric *Associative) ( ringCanMultiplyByNegative pRing dC<0 ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( Group.+WellDefined additiveGroup *Commutative *Commutative) ( transitive ( transitive ( Group.+WellDefined additiveGroup reflexive ( transitive *Associative ( transitive ( *WellDefined *Commutative reflexive) ( symmetric *Associative) ) ) ) ( symmetric *DistributesOver+) ) *Commutative) ) ( transitive ( Group.+WellDefined additiveGroup *Commutative *Commutative) ( transitive ( symmetric *DistributesOver+) *Commutative) ) have) )
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
dC<0 : denomC < 0 R
dC<0 = ineqLemma'' dBdC<0 0 <dB
have : ( ( ( numA * denomC) * denomB) + ( ( denomB * numC) * denomA) ) < ( ( ( numB * denomC) * denomA) + ( ( denomB * numC) * denomA) )
have = PartiallyOrderedRing.orderRespectsAddition pRing ( SetoidPartialOrder.<WellDefined pOrder ( swapLemma R) ( swapLemma R) ( ringCanMultiplyByNegative pRing dC<0 a<b) ) _
have = PartiallyOrderedRing.orderRespectsAddition pRing ( SetoidPartialOrder.<WellDefined pOrder ( swapLemma) ( swapLemma) ( ringCanMultiplyByNegative pRing dC<0 a<b) ) _
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inl 0 <dAdC) | inl ( inr dBdC<0) | inl ( inr dA<0) | inl ( inr dB<0) = exFalso bad
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
dC<0 : denomC < 0 R
dC<0 = ineqLemma' 0 <dAdC dA<0
0<dC : 0 R < denomC
@@ -541,18 +408,12 @@ private
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inr dAdC<0) | inl ( inl 0 <dBdC) | inl ( inl 0 <dA) with totality ( Ring.0R R) denomB
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inr dAdC<0) | inl ( inl 0 <dBdC) | inl ( inl 0 <dA) | inl ( inl 0 <dB) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <dC dC<0) )
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
0<dC : 0 R < denomC
0 <dC = ineqLemma 0 <dBdC 0 <dB
dC<0 : denomC < 0 R
dC<0 = ineqLemma'' dAdC<0 0 <dA
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inr dAdC<0) | inl ( inl 0 <dBdC) | inl ( inl 0 <dA) | inl ( inr dB<0) = SetoidPartialOrder.<WellDefined pOrder ( symmetric *Associative) ( symmetric *Associative) ( ringCanMultiplyByNegative pRing dC<0 ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( Group.+WellDefined additiveGroup ( transitive ( *WellDefined *Commutative reflexive) ( symmetric *Associative) ) *Commutative) ( transitive ( symmetric *DistributesOver+) *Commutative) ) ( transitive ( Group.+WellDefined additiveGroup ( transitive ( *WellDefined *Commutative reflexive) ( symmetric *Associative) ) ( transitive ( symmetric *Associative) ( *WellDefined reflexive *Commutative) ) ) ( transitive ( symmetric *DistributesOver+) *Commutative) ) have) )
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
dC<0 : denomC < 0 R
dC<0 = ineqLemma'' dAdC<0 0 <dA
have : ( ( ( numA * denomB) * denomC) + ( ( denomA * numC) * denomB) ) < ( ( ( numB * denomA) * denomC) + ( ( denomA * numC) * denomB) )
@@ -561,18 +422,12 @@ private
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inr dAdC<0) | inl ( inl 0 <dBdC) | inl ( inr dA<0) with totality ( Ring.0R R) denomB
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inr dAdC<0) | inl ( inl 0 <dBdC) | inl ( inr dA<0) | inl ( inl 0 <dB) = SetoidPartialOrder.<WellDefined pOrder ( symmetric *Associative) ( symmetric *Associative) ( ringCanMultiplyByPositive pRing 0 <dC ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( Group.+WellDefined additiveGroup *Commutative *Commutative) ( transitive ( transitive ( Group.+WellDefined additiveGroup ( transitive *Commutative ( transitive ( transitive ( symmetric *Associative) ( transitive ( *WellDefined reflexive *Commutative) *Associative) ) *Commutative) ) ( transitive *Associative ( transitive ( *WellDefined *Commutative reflexive) ( symmetric *Associative) ) ) ) ( symmetric *DistributesOver+) ) *Commutative) ) ( transitive ( Group.+WellDefined additiveGroup *Commutative *Commutative) ( transitive ( transitive ( Group.+WellDefined additiveGroup ( transitive *Commutative ( transitive ( *WellDefined *Commutative reflexive) ( symmetric *Associative) ) ) reflexive) ( symmetric *DistributesOver+) ) *Commutative) ) have) )
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
0<dC : 0 R < denomC
0 <dC = ineqLemma 0 <dBdC 0 <dB
have : ( ( ( numB * denomA) * denomC) + ( ( denomA * numC) * denomB) ) < ( ( ( numA * denomB) * denomC) + ( ( denomA * numC) * denomB) )
have = PartiallyOrderedRing.orderRespectsAddition pRing ( ringCanMultiplyByPositive pRing 0 <dC a<b) _
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inr dAdC<0) | inl ( inl 0 <dBdC) | inl ( inr dA<0) | inl ( inr dB<0) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <dC dC<0) )
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
dC<0 : denomC < 0 R
dC<0 = ineqLemma' 0 <dBdC dB<0
0<dC : 0 R < denomC
@@ -583,18 +438,12 @@ private
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inr dAdC<0) | inl ( inr dBdC<0) | inl ( inl 0 <dA) with totality ( Ring.0R R) denomB
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inr dAdC<0) | inl ( inr dBdC<0) | inl ( inl 0 <dA) | inl ( inl 0 <dB) = SetoidPartialOrder.<WellDefined pOrder ( symmetric *Associative) ( symmetric *Associative) ( ringCanMultiplyByNegative pRing dC<0 ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( transitive ( Group.+WellDefined additiveGroup *Commutative *Commutative) ( Group.+WellDefined additiveGroup ( transitive *Commutative ( transitive ( *WellDefined *Commutative reflexive) ( symmetric *Associative) ) ) reflexive) ) ( transitive ( symmetric *DistributesOver+) *Commutative) ) ( transitive ( transitive ( Group.+WellDefined additiveGroup *Commutative *Commutative) ( Group.+WellDefined additiveGroup ( transitive ( transitive *Associative ( *WellDefined *Commutative reflexive) ) *Commutative) ( transitive *Associative ( transitive ( *WellDefined *Commutative reflexive) ( symmetric *Associative) ) ) ) ) ( transitive ( symmetric *DistributesOver+) *Commutative) ) have) )
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
dC<0 : denomC < 0 R
dC<0 = ineqLemma'' dAdC<0 0 <dA
have : ( ( ( numB * denomA) * denomC) + ( ( denomB * numC) * denomA) ) < ( ( ( numA * denomB) * denomC) + ( ( denomB * numC) * denomA) )
have = PartiallyOrderedRing.orderRespectsAddition pRing ( ringCanMultiplyByNegative pRing dC<0 a<b) _
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inr dAdC<0) | inl ( inr dBdC<0) | inl ( inl 0 <dA) | inl ( inr dB<0) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder dC<0 0 <dC) )
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
dC<0 : denomC < 0 R
dC<0 = ineqLemma'' dAdC<0 0 <dA
0<dC : 0 R < denomC
@@ -603,18 +452,12 @@ private
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inr dAdC<0) | inl ( inr dBdC<0) | inl ( inr dA<0) with totality ( Ring.0R R) denomB
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inr dAdC<0) | inl ( inr dBdC<0) | inl ( inr dA<0) | inl ( inl 0 <dB) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <dC dC<0) )
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
0<dC : 0 R < denomC
0 <dC = ineqLemma''' dAdC<0 dA<0
dC<0 : denomC < 0 R
dC<0 = ineqLemma'' dBdC<0 0 <dB
<orderRespectsAddition ( numA ,, ( denomA , denomA!=0) ) ( numB ,, ( denomB , denomB!=0) ) a<b ( numC ,, ( denomC , denomC!=0) ) | inl ( inr dAdC<0) | inl ( inr dBdC<0) | inl ( inr dA<0) | inl ( inr dB<0) = SetoidPartialOrder.<WellDefined pOrder ( symmetric *Associative) ( symmetric *Associative) ( ringCanMultiplyByPositive pRing 0 <dC ( SetoidPartialOrder.<WellDefined pOrder ( transitive ( Group.+WellDefined additiveGroup *Commutative *Commutative) ( transitive ( Group.+WellDefined additiveGroup ( transitive *Commutative ( transitive ( *WellDefined *Commutative reflexive) ( symmetric *Associative) ) ) reflexive) ( transitive ( symmetric *DistributesOver+) *Commutative) ) ) ( transitive ( Group.+WellDefined additiveGroup *Commutative *Commutative) ( transitive ( transitive ( Group.+WellDefined additiveGroup ( transitive *Commutative ( transitive ( *WellDefined *Commutative reflexive) ( symmetric *Associative) ) ) ( transitive *Commutative ( transitive ( symmetric *Associative) ( *WellDefined reflexive *Commutative) ) ) ) ( symmetric *DistributesOver+) ) *Commutative) ) have) )
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
0<dC : 0 R < denomC
0 <dC = ineqLemma''' dAdC<0 dA<0
have : ( ( ( numA * denomB) * denomC) + ( ( denomA * numC) * denomB) ) < ( ( ( numB * denomA) * denomC) + ( ( denomA * numC) * denomB) )
@@ -634,9 +477,6 @@ PartiallyOrderedRing.orderRespectsMultiplication (fieldOfFractionsPOrderedRing)
PartiallyOrderedRing.orderRespectsMultiplication ( fieldOfFractionsPOrderedRing) { numA ,, ( denomA , denomA!=0) } { numB ,, ( denomB , denomB!=0) } 0 <a 0 <b | inl ( inl 0 <1) | inl ( inl 0 <dAdB) | inl ( inl 0 <dB) with totality ( Ring.0R R) denomA
PartiallyOrderedRing.orderRespectsMultiplication ( fieldOfFractionsPOrderedRing) { numA ,, ( denomA , denomA!=0) } { numB ,, ( denomB , denomB!=0) } 0 <a 0 <b | inl ( inl 0 <1) | inl ( inl 0 <dAdB) | inl ( inl 0 <dB) | inl ( inl 0 <dA) = SetoidPartialOrder.<WellDefined pOrder ( symmetric ( transitive *Commutative ( Ring.timesZero R) ) ) ( symmetric ( transitive *Commutative identIsIdent) ) 0 <nAnB
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
0<nA : 0 R < numA
0 <nA = SetoidPartialOrder.<WellDefined pOrder ( transitive *Commutative ( Ring.timesZero R) ) ( transitive *Commutative identIsIdent) 0 <a
0<nB : 0 R < numB
@@ -644,22 +484,11 @@ PartiallyOrderedRing.orderRespectsMultiplication (fieldOfFractionsPOrderedRing)
0<nAnB : 0 R < ( numA * numB)
0 <nAnB = SetoidPartialOrder.<WellDefined pOrder ( transitive *Commutative ( Ring.timesZero R) ) reflexive ( ringCanMultiplyByPositive pRing 0 <nB 0 <nA)
PartiallyOrderedRing.orderRespectsMultiplication ( fieldOfFractionsPOrderedRing) { numA ,, ( denomA , denomA!=0) } { numB ,, ( denomB , denomB!=0) } 0 <a 0 <b | inl ( inl 0 <1) | inl ( inl 0 <dAdB) | inl ( inl 0 <dB) | inl ( inr dA<0) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <dAdB ( SetoidPartialOrder.<WellDefined pOrder *Commutative ( transitive *Commutative ( Ring.timesZero R) ) ( ringCanMultiplyByNegative pRing dA<0 0 <dB) ) ) )
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
PartiallyOrderedRing.orderRespectsMultiplication ( fieldOfFractionsPOrderedRing) { numA ,, ( denomA , denomA!=0) } { numB ,, ( denomB , denomB!=0) } 0 <a 0 <b | inl ( inl 0 <1) | inl ( inl 0 <dAdB) | inl ( inl 0 <dB) | inr x = exFalso ( denomA!=0 ( Equivalence.symmetric ( Setoid.eq S) x) )
PartiallyOrderedRing.orderRespectsMultiplication ( fieldOfFractionsPOrderedRing) { numA ,, ( denomA , denomA!=0) } { numB ,, ( denomB , denomB!=0) } 0 <a 0 <b | inl ( inl 0 <1) | inl ( inl 0 <dAdB) | inl ( inr dB<0) with totality ( Ring.0R R) denomA
PartiallyOrderedRing.orderRespectsMultiplication ( fieldOfFractionsPOrderedRing) { numA ,, ( denomA , denomA!=0) } { numB ,, ( denomB , denomB!=0) } 0 <a 0 <b | inl ( inl 0 <1) | inl ( inl 0 <dAdB) | inl ( inr dB<0) | inl ( inl 0 <dA) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <dAdB ( SetoidPartialOrder.<WellDefined pOrder reflexive ( transitive *Commutative ( Ring.timesZero R) ) ( ringCanMultiplyByNegative pRing dB<0 0 <dA) ) ) )
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
PartiallyOrderedRing.orderRespectsMultiplication ( fieldOfFractionsPOrderedRing) { numA ,, ( denomA , denomA!=0) } { numB ,, ( denomB , denomB!=0) } 0 <a 0 <b | inl ( inl 0 <1) | inl ( inl 0 <dAdB) | inl ( inr dB<0) | inl ( inr dA<0) = SetoidPartialOrder.<WellDefined pOrder ( symmetric ( transitive *Commutative ( Ring.timesZero R) ) ) ( symmetric ( transitive *Commutative identIsIdent) ) 0 <nAnB
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
nB<0 : numB < 0 R
nB<0 = SetoidPartialOrder.<WellDefined pOrder ( transitive *Commutative identIsIdent) ( transitive *Commutative ( Ring.timesZero R) ) 0 <b
nA<0 : numA < 0 R
@@ -672,17 +501,11 @@ PartiallyOrderedRing.orderRespectsMultiplication (fieldOfFractionsPOrderedRing)
PartiallyOrderedRing.orderRespectsMultiplication ( fieldOfFractionsPOrderedRing) { numA ,, ( denomA , denomA!=0) } { numB ,, ( denomB , denomB!=0) } 0 <a 0 <b | inl ( inl 0 <1) | inl ( inr dAdB<0) | inl ( inl 0 <denomB) with totality ( Ring.0R R) denomA
PartiallyOrderedRing.orderRespectsMultiplication ( fieldOfFractionsPOrderedRing) { numA ,, ( denomA , denomA!=0) } { numB ,, ( denomB , denomB!=0) } 0 <a 0 <b | inl ( inl 0 <1) | inl ( inr dAdB<0) | inl ( inl 0 <denomB) | inl ( inl 0 <denomA) = exFalso f
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
f : False
f with PartiallyOrderedRing.orderRespectsMultiplication pRing 0 <denomA 0 <denomB
... | bl = SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder bl dAdB<0)
PartiallyOrderedRing.orderRespectsMultiplication ( fieldOfFractionsPOrderedRing) { numA ,, ( denomA , denomA!=0) } { numB ,, ( denomB , denomB!=0) } 0 <a 0 <b | inl ( inl 0 <1) | inl ( inr dAdB<0) | inl ( inl 0 <denomB) | inl ( inr denomA<0) = SetoidPartialOrder.<WellDefined pOrder ( symmetric ( transitive *Commutative identIsIdent) ) ( symmetric ( transitive *Commutative ( Ring.timesZero R) ) ) ans
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
0<nB : 0 R < numB
0 <nB = SetoidPartialOrder.<WellDefined pOrder ( transitive *Commutative ( Ring.timesZero R) ) ( transitive *Commutative identIsIdent) 0 <b
nA<0 : numA < 0 R
@@ -693,9 +516,6 @@ PartiallyOrderedRing.orderRespectsMultiplication (fieldOfFractionsPOrderedRing)
PartiallyOrderedRing.orderRespectsMultiplication ( fieldOfFractionsPOrderedRing) { numA ,, ( denomA , denomA!=0) } { numB ,, ( denomB , denomB!=0) } 0 <a 0 <b | inl ( inl 0 <1) | inl ( inr dAdB<0) | inl ( inr denomB<0) with totality ( Ring.0R R) denomA
PartiallyOrderedRing.orderRespectsMultiplication ( fieldOfFractionsPOrderedRing) { numA ,, ( denomA , denomA!=0) } { numB ,, ( denomB , denomB!=0) } 0 <a 0 <b | inl ( inl 0 <1) | inl ( inr dAdB<0) | inl ( inr denomB<0) | inl ( inl 0 <denomA) = SetoidPartialOrder.<WellDefined pOrder ( symmetric ( transitive *Commutative identIsIdent) ) ( symmetric ( transitive *Commutative ( Ring.timesZero R) ) ) nAnB<0
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
nB<0 : numB < 0 R
nB<0 = SetoidPartialOrder.<WellDefined pOrder ( transitive *Commutative identIsIdent) ( transitive *Commutative ( Ring.timesZero R) ) 0 <b
0<nA : 0 R < numA
@@ -704,9 +524,6 @@ PartiallyOrderedRing.orderRespectsMultiplication (fieldOfFractionsPOrderedRing)
nAnB<0 = SetoidPartialOrder.<WellDefined pOrder reflexive ( transitive *Commutative ( Ring.timesZero R) ) ( ringCanMultiplyByNegative pRing nB<0 0 <nA)
PartiallyOrderedRing.orderRespectsMultiplication ( fieldOfFractionsPOrderedRing) { numA ,, ( denomA , denomA!=0) } { numB ,, ( denomB , denomB!=0) } 0 <a 0 <b | inl ( inl 0 <1) | inl ( inr dAdB<0) | inl ( inr denomB<0) | inl ( inr denomA<0) = exFalso f
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
h : 0 R < ( denomA * denomB)
h = SetoidPartialOrder.<WellDefined pOrder ( transitive *Commutative ( Ring.timesZero R) ) reflexive ( ringCanMultiplyByNegative pRing denomB<0 denomA<0)
f : False
@@ -716,11 +533,16 @@ PartiallyOrderedRing.orderRespectsMultiplication (fieldOfFractionsPOrderedRing)
PartiallyOrderedRing.orderRespectsMultiplication ( fieldOfFractionsPOrderedRing) { numA ,, ( denomA , denomA!=0) } { numB ,, ( denomB , denomB!=0) } 0 <a 0 <b | inl ( inl 0 <1) | inr 0 = dAdB with IntegralDomain.intDom I ( Equivalence.symmetric ( Setoid.eq S) 0 = dAdB)
... | f = exFalso ( denomB!=0 ( f denomA!=0) )
PartiallyOrderedRing.orderRespectsMultiplication ( fieldOfFractionsPOrderedRing) { numA ,, ( denomA , denomA!=0) } { numB ,, ( denomB , denomB!=0) } 0 <a 0 <b | inl ( inr 1 <0) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 1 <0 ( SetoidPartialOrder.<WellDefined pOrder ( transitive *Commutative ( Ring.timesZero R) ) identIsIdent ( ringCanMultiplyByNegative pRing 1 <0 1 <0) ) ) )
where
open Setoid S
open Equivalence ( Setoid.eq S)
open Ring R
PartiallyOrderedRing.orderRespectsMultiplication ( fieldOfFractionsPOrderedRing) { numA ,, ( denomA , denomA!=0) } { numB ,, ( denomB , denomB!=0) } 0 <a 0 <b | inr x = exFalso ( IntegralDomain.nontrivial I ( Equivalence.symmetric ( Setoid.eq S) x) )
fieldOfFractionsOrderedRing : TotallyOrderedRing fieldOfFractionsPOrderedRing
TotallyOrderedRing.total fieldOfFractionsOrderedRing = fieldOfFractionsTotalOrder
fieldOfFractionsOrderInherited : { x y : A} → x < y → fieldOfFractionsComparison ( embedIntoFieldOfFractions x) ( embedIntoFieldOfFractions y)
fieldOfFractionsOrderInherited { x} { y} x<y with totality 0 R 1 R
fieldOfFractionsOrderInherited { x} { y} x<y | inl ( inl 0 <1) with totality 0 R 1 R
fieldOfFractionsOrderInherited { x} { y} x<y | inl ( inl 0 <1) | inl ( inl _) = SetoidPartialOrder.<WellDefined pOrder ( symmetric ( transitive *Commutative identIsIdent) ) ( symmetric ( transitive *Commutative identIsIdent) ) x<y
fieldOfFractionsOrderInherited { x} { y} x<y | inl ( inl 0 <1) | inl ( inr 1 <0) = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<Transitive pOrder 0 <1 1 <0) )
fieldOfFractionsOrderInherited { x} { y} x<y | inl ( inl 0 <1) | inr 0 = 1 = exFalso ( SetoidPartialOrder.irreflexive pOrder ( SetoidPartialOrder.<WellDefined pOrder 0 = 1 reflexive 0 <1) )
fieldOfFractionsOrderInherited { x} { y} x<y | inl ( inr 1 <0) = exFalso ( 1 <0False order 1 <0)
fieldOfFractionsOrderInherited { x} { y} x<y | inr 0 = 1 = exFalso ( anyComparisonImpliesNontrivial pRing x<y 0 = 1 )