@@ -28,12 +28,12 @@ module Numbers.RationalsLemmas where
triangleInequality { a} { b} | inl ( inl 0 <a) | inl ( inl 0 <b) | inl ( inl 0 <a+b) = inr ( reflexive { a +Q b} )
where
open Equivalence ( Setoid.eq ( fieldOfFractionsSetoid ℤ IntDom) )
triangleInequality { a} { b} | inl ( inl 0 <a) | inl ( inl 0 <b) | inl ( inr a+b<0) = exFalso ( exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} ( SetoidPartialOrder.transitive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} { 0 Q} { a +Q b} a+b<0 ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q +Q 0 Q} { 0 Q} { a +Q b} { a +Q b} ( symmetric { 0 Q} { 0 Q +Q 0 Q} ( Group.multI dentRight ( Ring.additiveGroup ℚ Ring) { 0 Q} ) ) ( reflexive { a +Q b} ) ( ringAddInequalities ℚ Ordered { 0 Q} { a} { 0 Q} { b} 0 <a 0 <b) ) ) ) )
triangleInequality { a} { b} | inl ( inl 0 <a) | inl ( inl 0 <b) | inl ( inr a+b<0) = exFalso ( exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} ( SetoidPartialOrder.transitive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} { 0 Q} { a +Q b} a+b<0 ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q +Q 0 Q} { 0 Q} { a +Q b} { a +Q b} ( symmetric { 0 Q} { 0 Q +Q 0 Q} ( Group.i dentRight ( Ring.additiveGroup ℚ Ring) { 0 Q} ) ) ( reflexive { a +Q b} ) ( ringAddInequalities ℚ Ordered { 0 Q} { a} { 0 Q} { b} 0 <a 0 <b) ) ) ) )
where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
open Equivalence eq
triangleInequality { a} { b} | inl ( inl 0 <a) | inl ( inl 0 <b) | inr 0 = a+b = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q +Q 0 Q} { 0 Q} { a +Q b} { 0 Q} ( multI dentRight { 0 Q} ) ( symmetric { 0 Q} { a +Q b} 0 = a+b) ( ringAddInequalities ℚ Ordered { 0 Q} { a} { 0 Q} { b} 0 <a 0 <b) ) )
triangleInequality { a} { b} | inl ( inl 0 <a) | inl ( inl 0 <b) | inr 0 = a+b = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q +Q 0 Q} { 0 Q} { a +Q b} { 0 Q} ( i dentRight { 0 Q} ) ( symmetric { 0 Q} { a +Q b} 0 = a+b) ( ringAddInequalities ℚ Ordered { 0 Q} { a} { 0 Q} { b} 0 <a 0 <b) ) )
where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
@@ -49,23 +49,23 @@ module Numbers.RationalsLemmas where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
open Equivalence eq
triangleInequality { a} { b} | inl ( inl 0 <a) | inl ( inr b<0) | inr 0 = a+b = inl ( SetoidPartialOrder.transitive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} { a} { a +Q ( inverse b) } 0 <a ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q +Q a} { a} { inverse b +Q a} { a +Q inverse b} ( multI dentLeft { a} ) ( Ring.groupIsAbelian ℚ Ring { inverse b} { a} ) ( OrderedRing.orderRespectsAddition ℚ Ordered { 0 Q} { inverse b} ( ringMinusFlipsOrder'' ℚ Ordered { b} b<0) a) ) )
triangleInequality { a} { b} | inl ( inl 0 <a) | inl ( inr b<0) | inr 0 = a+b = inl ( SetoidPartialOrder.transitive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} { a} { a +Q ( inverse b) } 0 <a ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q +Q a} { a} { inverse b +Q a} { a +Q inverse b} ( i dentLeft { a} ) ( Ring.groupIsAbelian ℚ Ring { inverse b} { a} ) ( OrderedRing.orderRespectsAddition ℚ Ordered { 0 Q} { inverse b} ( ringMinusFlipsOrder'' ℚ Ordered { b} b<0) a) ) )
where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
open Equivalence eq
triangleInequality { a} { b} | inl ( inl 0 <a) | inr 0 = b with SetoidTotalOrder.totality ℚ TotalOrder 0 Q ( a +Q b)
triangleInequality { a} { b} | inl ( inl 0 <a) | inr 0 = b | inl ( inl 0 <a+b) = inr ( w ellDefined { a} { b} { a} { 0 Q} ( reflexive { a} ) ( symmetric { 0 Q} { b} 0 = b) )
triangleInequality { a} { b} | inl ( inl 0 <a) | inr 0 = b | inl ( inl 0 <a+b) = inr ( +W ellDefined { a} { b} { a} { 0 Q} ( reflexive { a} ) ( symmetric { 0 Q} { b} 0 = b) )
where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
open Equivalence eq
triangleInequality { a} { b} | inl ( inl 0 <a) | inr 0 = b | inl ( inr a+b<0) = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} ( SetoidPartialOrder.transitive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} { 0 Q} { a +Q b} a+b<0 ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} { 0 Q} { a} { a +Q b} ( reflexive { 0 Q} ) ( transitive { a} { a +Q 0 Q} { a +Q b} ( symmetric { a +Q 0 Q} { a} ( multI dentRight { a} ) ) ( w ellDefined { a} { 0 Q} { a} { b} ( reflexive { a} ) 0 = b) ) 0 <a) ) )
triangleInequality { a} { b} | inl ( inl 0 <a) | inr 0 = b | inl ( inr a+b<0) = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} ( SetoidPartialOrder.transitive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} { 0 Q} { a +Q b} a+b<0 ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} { 0 Q} { a} { a +Q b} ( reflexive { 0 Q} ) ( transitive { a} { a +Q 0 Q} { a +Q b} ( symmetric { a +Q 0 Q} { a} ( i dentRight { a} ) ) ( +W ellDefined { a} { 0 Q} { a} { b} ( reflexive { a} ) 0 = b) ) 0 <a) ) )
where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
open Equivalence eq
triangleInequality { a} { b} | inl ( inl 0 <a) | inr 0 = b | inr 0 = a+b = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} { a +Q b} { a} { a +Q b} 0 = a+b ( transitive { a} { a +Q 0 Q} { a +Q b} ( symmetric { a +Q 0 Q} { a} ( multI dentRight { a} ) ) ( w ellDefined { a} { 0 Q} { a} { b} ( reflexive { a} ) 0 = b) ) 0 <a) )
triangleInequality { a} { b} | inl ( inl 0 <a) | inr 0 = b | inr 0 = a+b = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} { a +Q b} { a} { a +Q b} 0 = a+b ( transitive { a} { a +Q 0 Q} { a +Q b} ( symmetric { a +Q 0 Q} { a} ( i dentRight { a} ) ) ( +W ellDefined { a} { 0 Q} { a} { b} ( reflexive { a} ) 0 = b) ) 0 <a) )
where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
@@ -84,13 +84,13 @@ module Numbers.RationalsLemmas where
open Equivalence eq
blah : ( inverse a +Q inverse b) <Q ( inverse a +Q b)
blah = SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { inverse b +Q inverse a} { inverse a +Q inverse b} { b +Q inverse a} { inverse a +Q b} ( Ring.groupIsAbelian ℚ Ring { inverse b} { inverse a} ) ( Ring.groupIsAbelian ℚ Ring { b} { inverse a} ) ( OrderedRing.orderRespectsAddition ℚ Ordered { inverse b} { b} ( SetoidPartialOrder.transitive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { inverse b} { 0 Q} { b} ( ringMinusFlipsOrder ℚ Ordered { b} 0 <b) 0 <b) ( inverse a) )
triangleInequality { a} { b} | inl ( inr a<0) | inl ( inl 0 <b) | inr 0 = a+b = inl ( SetoidPartialOrder.transitive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} { b} { inverse a +Q b} 0 <b ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { b +Q 0 Q} { b} { b +Q inverse a} { inverse a +Q b} ( multI dentRight { b} ) ( Ring.groupIsAbelian ℚ Ring { b} { inverse a} ) ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q +Q b} { b +Q 0 Q} { inverse a +Q b} { b +Q inverse a} ( Ring.groupIsAbelian ℚ Ring { 0 Q} { b} ) ( Ring.groupIsAbelian ℚ Ring { inverse a} { b} ) ( OrderedRing.orderRespectsAddition ℚ Ordered { 0 Q} { inverse a} ( ringMinusFlipsOrder'' ℚ Ordered { a} a<0) b) ) ) )
triangleInequality { a} { b} | inl ( inr a<0) | inl ( inl 0 <b) | inr 0 = a+b = inl ( SetoidPartialOrder.transitive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} { b} { inverse a +Q b} 0 <b ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { b +Q 0 Q} { b} { b +Q inverse a} { inverse a +Q b} ( i dentRight { b} ) ( Ring.groupIsAbelian ℚ Ring { b} { inverse a} ) ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q +Q b} { b +Q 0 Q} { inverse a +Q b} { b +Q inverse a} ( Ring.groupIsAbelian ℚ Ring { 0 Q} { b} ) ( Ring.groupIsAbelian ℚ Ring { inverse a} { b} ) ( OrderedRing.orderRespectsAddition ℚ Ordered { 0 Q} { inverse a} ( ringMinusFlipsOrder'' ℚ Ordered { a} a<0) b) ) ) )
where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
open Equivalence eq
triangleInequality { a} { b} | inl ( inr a<0) | inl ( inr b<0) with SetoidTotalOrder.totality ℚ TotalOrder 0 Q ( a +Q b)
triangleInequality { a} { b} | inl ( inr a<0) | inl ( inr b<0) | inl ( inl 0 <a+b) = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} ( SetoidPartialOrder.transitive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} { 0 Q} { a +Q b} ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} { a +Q b} { 0 Q +Q 0 Q} { 0 Q} ( reflexive { a +Q b} ) ( multI dentRight { 0 Q} ) ( ringAddInequalities ℚ Ordered { a} { 0 Q} { b} { 0 Q} a<0 b<0) ) 0 <a+b) )
triangleInequality { a} { b} | inl ( inr a<0) | inl ( inr b<0) | inl ( inl 0 <a+b) = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} ( SetoidPartialOrder.transitive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} { 0 Q} { a +Q b} ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} { a +Q b} { 0 Q +Q 0 Q} { 0 Q} ( reflexive { a +Q b} ) ( i dentRight { 0 Q} ) ( ringAddInequalities ℚ Ordered { a} { 0 Q} { b} { 0 Q} a<0 b<0) ) 0 <a+b) )
where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
@@ -100,65 +100,65 @@ module Numbers.RationalsLemmas where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
open Equivalence eq
triangleInequality { a} { b} | inl ( inr a<0) | inl ( inr b<0) | inr 0 = a+b = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} { 0 Q} { 0 Q} { 0 Q} ( symmetric { 0 Q} { a +Q b} 0 = a+b) ( reflexive { 0 Q} ) ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} { a +Q b} { 0 Q +Q 0 Q} { 0 Q} ( reflexive { a +Q b} ) ( multI dentLeft { 0 Q} ) ( ringAddInequalities ℚ Ordered { a} { 0 Q} { b} { 0 Q} a<0 b<0) ) ) )
triangleInequality { a} { b} | inl ( inr a<0) | inl ( inr b<0) | inr 0 = a+b = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} { 0 Q} { 0 Q} { 0 Q} ( symmetric { 0 Q} { a +Q b} 0 = a+b) ( reflexive { 0 Q} ) ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} { a +Q b} { 0 Q +Q 0 Q} { 0 Q} ( reflexive { a +Q b} ) ( i dentLeft { 0 Q} ) ( ringAddInequalities ℚ Ordered { a} { 0 Q} { b} { 0 Q} a<0 b<0) ) ) )
where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
open Equivalence eq
triangleInequality { a} { b} | inl ( inr a<0) | inr 0 = b with SetoidTotalOrder.totality ℚ TotalOrder 0 Q ( a +Q b)
triangleInequality { a} { b} | inl ( inr a<0) | inr 0 = b | inl ( inl 0 <a+b) = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a} ( SetoidPartialOrder.transitive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a} { 0 Q} { a} a<0 ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} { 0 Q} { a +Q b} { a} ( reflexive { 0 Q} ) ( transitive { a +Q b} { a +Q 0 Q} { a} ( w ellDefined { a} { b} { a} { 0 Q} ( reflexive { a} ) ( symmetric { 0 Q} { b} 0 = b) ) ( multI dentRight { a} ) ) 0 <a+b) ) )
triangleInequality { a} { b} | inl ( inr a<0) | inr 0 = b | inl ( inl 0 <a+b) = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a} ( SetoidPartialOrder.transitive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a} { 0 Q} { a} a<0 ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} { 0 Q} { a +Q b} { a} ( reflexive { 0 Q} ) ( transitive { a +Q b} { a +Q 0 Q} { a} ( +W ellDefined { a} { b} { a} { 0 Q} ( reflexive { a} ) ( symmetric { 0 Q} { b} 0 = b) ) ( i dentRight { a} ) ) 0 <a+b) ) )
where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
open Equivalence eq
triangleInequality { a} { b} | inl ( inr a<0) | inr 0 = b | inl ( inr a+b<0) = inr ( transitive { inverse ( a +Q b) } { ( inverse b) +Q ( inverse a) } { ( inverse a) +Q 0 Q} ( invContravariant ( Ring.additiveGroup ℚ Ring) { a} { b} ) ( transitive { inverse b +Q inverse a} { inverse a +Q inverse b} { inverse a +Q 0 Q} ( Ring.groupIsAbelian ℚ Ring { inverse b} { inverse a} ) ( w ellDefined { inverse a} { inverse b} { inverse a} { 0 Q} ( reflexive { inverse a} ) ( transitive { inverse b} { inverse 0 Q} { 0 Q} ( inverseWellDefined ( Ring.additiveGroup ℚ Ring) { b} { 0 Q} ( symmetric { 0 Q} { b} 0 = b) ) ( symmetric { 0 Q} { inverse 0 Q} ( invIdentity ( Ring.additiveGroup ℚ Ring) ) ) ) ) ) )
triangleInequality { a} { b} | inl ( inr a<0) | inr 0 = b | inl ( inr a+b<0) = inr ( transitive { inverse ( a +Q b) } { ( inverse b) +Q ( inverse a) } { ( inverse a) +Q 0 Q} ( invContravariant ( Ring.additiveGroup ℚ Ring) { a} { b} ) ( transitive { inverse b +Q inverse a} { inverse a +Q inverse b} { inverse a +Q 0 Q} ( Ring.groupIsAbelian ℚ Ring { inverse b} { inverse a} ) ( +W ellDefined { inverse a} { inverse b} { inverse a} { 0 Q} ( reflexive { inverse a} ) ( transitive { inverse b} { inverse 0 Q} { 0 Q} ( inverseWellDefined ( Ring.additiveGroup ℚ Ring) { b} { 0 Q} ( symmetric { 0 Q} { b} 0 = b) ) ( symmetric { 0 Q} { inverse 0 Q} ( invIdentity ( Ring.additiveGroup ℚ Ring) ) ) ) ) ) )
where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
open Equivalence eq
triangleInequality { a} { b} | inl ( inr a<0) | inr 0 = b | inr 0 = a+b = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a} { 0 Q} { 0 Q} { 0 Q} ( transitive { a} { a +Q b} { 0 Q} ( transitive { a} { a +Q 0 Q} { a +Q b} ( symmetric { a +Q 0 Q} { a} ( multI dentRight { a} ) ) ( w ellDefined { a} { 0 Q} { a} { b} ( reflexive { a} ) 0 = b) ) ( symmetric { 0 Q} { a +Q b} 0 = a+b) ) ( reflexive { 0 Q} ) a<0) )
triangleInequality { a} { b} | inl ( inr a<0) | inr 0 = b | inr 0 = a+b = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a} { 0 Q} { 0 Q} { 0 Q} ( transitive { a} { a +Q b} { 0 Q} ( transitive { a} { a +Q 0 Q} { a +Q b} ( symmetric { a +Q 0 Q} { a} ( i dentRight { a} ) ) ( +W ellDefined { a} { 0 Q} { a} { b} ( reflexive { a} ) 0 = b) ) ( symmetric { 0 Q} { a +Q b} 0 = a+b) ) ( reflexive { 0 Q} ) a<0) )
where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
open Equivalence eq
triangleInequality { a} { b} | inr 0 = a with SetoidTotalOrder.totality ℚ TotalOrder 0 Q b
triangleInequality { a} { b} | inr 0 = a | inl ( inl 0 <b) with SetoidTotalOrder.totality ℚ TotalOrder 0 Q ( a +Q b)
triangleInequality { a} { b} | inr 0 = a | inl ( inl 0 <b) | inl ( inl 0 <a+b) = inr ( Group.w ellDefined ( Ring.additiveGroup ℚ Ring) { a} { b} { 0 Q} { b} ( symmetric { 0 Q} { a} 0 = a) ( reflexive { b} ) )
triangleInequality { a} { b} | inr 0 = a | inl ( inl 0 <b) | inl ( inl 0 <a+b) = inr ( Group.+W ellDefined ( Ring.additiveGroup ℚ Ring) { a} { b} { 0 Q} { b} ( symmetric { 0 Q} { a} 0 = a) ( reflexive { b} ) )
where
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
open Equivalence eq
triangleInequality { a} { b} | inr 0 = a | inl ( inl 0 <b) | inl ( inr a+b<0) = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} ( SetoidPartialOrder.transitive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} { 0 Q} { a +Q b} a+b<0 ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} { 0 Q} { b} { a +Q b} ( reflexive { 0 Q} ) ( transitive { b} { 0 Q +Q b} { a +Q b} ( symmetric { 0 Q +Q b} { b} ( Group.multI dentLeft ( Ring.additiveGroup ℚ Ring) { b} ) ) ( Group.w ellDefined ( Ring.additiveGroup ℚ Ring) { 0 Q} { b} { a} { b} 0 = a ( reflexive { b} ) ) ) 0 <b) ) )
triangleInequality { a} { b} | inr 0 = a | inl ( inl 0 <b) | inl ( inr a+b<0) = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} ( SetoidPartialOrder.transitive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} { 0 Q} { a +Q b} a+b<0 ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} { 0 Q} { b} { a +Q b} ( reflexive { 0 Q} ) ( transitive { b} { 0 Q +Q b} { a +Q b} ( symmetric { 0 Q +Q b} { b} ( Group.i dentLeft ( Ring.additiveGroup ℚ Ring) { b} ) ) ( Group.+W ellDefined ( Ring.additiveGroup ℚ Ring) { 0 Q} { b} { a} { b} 0 = a ( reflexive { b} ) ) ) 0 <b) ) )
where
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
open Equivalence eq
triangleInequality { a} { b} | inr 0 = a | inl ( inl 0 <b) | inr 0 = a+b = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { b} ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} { b} { b} { b} ( transitive { 0 Q} { a +Q b} { b} 0 = a+b ( transitive { a +Q b} { 0 Q +Q b} { b} ( w ellDefined { a} { b} { 0 Q} { b} ( symmetric { 0 Q} { a} 0 = a) ( reflexive { b} ) ) ( multI dentLeft { b} ) ) ) ( reflexive { b} ) 0 <b) )
triangleInequality { a} { b} | inr 0 = a | inl ( inl 0 <b) | inr 0 = a+b = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { b} ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} { b} { b} { b} ( transitive { 0 Q} { a +Q b} { b} 0 = a+b ( transitive { a +Q b} { 0 Q +Q b} { b} ( +W ellDefined { a} { b} { 0 Q} { b} ( symmetric { 0 Q} { a} 0 = a) ( reflexive { b} ) ) ( i dentLeft { b} ) ) ) ( reflexive { b} ) 0 <b) )
where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
open Equivalence eq
triangleInequality { a} { b} | inr 0 = a | inl ( inr b<0) with SetoidTotalOrder.totality ℚ TotalOrder 0 Q ( a +Q b)
triangleInequality { a} { b} | inr 0 = a | inl ( inr b<0) | inl ( inl 0 <a+b) = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { b} ( SetoidPartialOrder.transitive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { b} { 0 Q} { b} b<0 ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} { 0 Q} { a +Q b} { b} ( reflexive { 0 Q} ) ( transitive { a +Q b} { 0 Q +Q b} { b} ( w ellDefined { a} { b} { 0 Q} { b} ( symmetric { 0 Q} { a} 0 = a) ( reflexive { b} ) ) ( multI dentLeft { b} ) ) 0 <a+b) ) )
triangleInequality { a} { b} | inr 0 = a | inl ( inr b<0) | inl ( inl 0 <a+b) = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { b} ( SetoidPartialOrder.transitive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { b} { 0 Q} { b} b<0 ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} { 0 Q} { a +Q b} { b} ( reflexive { 0 Q} ) ( transitive { a +Q b} { 0 Q +Q b} { b} ( +W ellDefined { a} { b} { 0 Q} { b} ( symmetric { 0 Q} { a} 0 = a) ( reflexive { b} ) ) ( i dentLeft { b} ) ) 0 <a+b) ) )
where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
open Equivalence eq
triangleInequality { a} { b} | inr 0 = a | inl ( inr b<0) | inl ( inr a+b<0) = inr ( transitive { inverse ( a +Q b) } { inverse b +Q inverse a} { 0 Q +Q inverse b} ( invContravariant ( Ring.additiveGroup ℚ Ring) { a} { b} ) ( transitive { inverse b +Q inverse a} { inverse a +Q inverse b} { 0 Q +Q inverse b} ( Ring.groupIsAbelian ℚ Ring { inverse b} { inverse a} ) ( w ellDefined { inverse a} { inverse b} { 0 Q} { inverse b} ( transitive { inverse a} { inverse 0 Q} { 0 Q} ( symmetric { inverse 0 Q} { inverse a} ( inverseWellDefined ( Ring.additiveGroup ℚ Ring) { 0 Q} { a} 0 = a) ) ( invIdentity ( Ring.additiveGroup ℚ Ring) ) ) ( reflexive { inverse b} ) ) ) )
triangleInequality { a} { b} | inr 0 = a | inl ( inr b<0) | inl ( inr a+b<0) = inr ( transitive { inverse ( a +Q b) } { inverse b +Q inverse a} { 0 Q +Q inverse b} ( invContravariant ( Ring.additiveGroup ℚ Ring) { a} { b} ) ( transitive { inverse b +Q inverse a} { inverse a +Q inverse b} { 0 Q +Q inverse b} ( Ring.groupIsAbelian ℚ Ring { inverse b} { inverse a} ) ( +W ellDefined { inverse a} { inverse b} { 0 Q} { inverse b} ( transitive { inverse a} { inverse 0 Q} { 0 Q} ( symmetric { inverse 0 Q} { inverse a} ( inverseWellDefined ( Ring.additiveGroup ℚ Ring) { 0 Q} { a} 0 = a) ) ( invIdentity ( Ring.additiveGroup ℚ Ring) ) ) ( reflexive { inverse b} ) ) ) )
where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
open Equivalence eq
triangleInequality { a} { b} | inr 0 = a | inl ( inr b<0) | inr 0 = a+b = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { b} ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { b} { b} { 0 Q} { b} ( reflexive { b} ) ( transitive { 0 Q} { a +Q b} { b} 0 = a+b ( transitive { a +Q b} { 0 Q +Q b} { b} ( w ellDefined { a} { b} { 0 Q} { b} ( symmetric { 0 Q} { a} 0 = a) ( reflexive { b} ) ) ( multI dentLeft { b} ) ) ) b<0) )
triangleInequality { a} { b} | inr 0 = a | inl ( inr b<0) | inr 0 = a+b = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { b} ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { b} { b} { 0 Q} { b} ( reflexive { b} ) ( transitive { 0 Q} { a +Q b} { b} 0 = a+b ( transitive { a +Q b} { 0 Q +Q b} { b} ( +W ellDefined { a} { b} { 0 Q} { b} ( symmetric { 0 Q} { a} 0 = a) ( reflexive { b} ) ) ( i dentLeft { b} ) ) ) b<0) )
where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
open Equivalence eq
triangleInequality { a} { b} | inr 0 = a | inr 0 = b with SetoidTotalOrder.totality ℚ TotalOrder 0 Q ( a +Q b)
triangleInequality { a} { b} | inr 0 = a | inr 0 = b | inl ( inl 0 <a+b) = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} { 0 Q} { a +Q b} { 0 Q} ( reflexive { 0 Q} ) ( transitive { a +Q b} { 0 Q +Q 0 Q} { 0 Q} ( w ellDefined { a} { b} { 0 Q} { 0 Q} ( symmetric { 0 Q} { a} 0 = a) ( symmetric { 0 Q} { b} 0 = b) ) ( multI dentRight { 0 Q} ) ) 0 <a+b) )
triangleInequality { a} { b} | inr 0 = a | inr 0 = b | inl ( inl 0 <a+b) = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} { 0 Q} { a +Q b} { 0 Q} ( reflexive { 0 Q} ) ( transitive { a +Q b} { 0 Q +Q 0 Q} { 0 Q} ( +W ellDefined { a} { b} { 0 Q} { 0 Q} ( symmetric { 0 Q} { a} 0 = a) ( symmetric { 0 Q} { b} 0 = b) ) ( i dentRight { 0 Q} ) ) 0 <a+b) )
where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)
open Equivalence eq
triangleInequality { a} { b} | inr 0 = a | inr 0 = b | inl ( inr a+b<0) = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} { 0 Q} { 0 Q} { 0 Q} ( transitive { a +Q b} { 0 Q +Q 0 Q} { 0 Q} ( w ellDefined { a} { b} { 0 Q} { 0 Q} ( symmetric { 0 Q} { a} 0 = a) ( symmetric { 0 Q} { b} 0 = b) ) ( multI dentRight { 0 Q} ) ) ( reflexive { 0 Q} ) a+b<0) )
triangleInequality { a} { b} | inr 0 = a | inr 0 = b | inl ( inr a+b<0) = exFalso ( SetoidPartialOrder.irreflexive ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { 0 Q} ( SetoidPartialOrder.wellDefined ( fieldOfFractionsOrder ℤ IntDom ℤ OrderedRing) { a +Q b} { 0 Q} { 0 Q} { 0 Q} ( transitive { a +Q b} { 0 Q +Q 0 Q} { 0 Q} ( +W ellDefined { a} { b} { 0 Q} { 0 Q} ( symmetric { 0 Q} { a} 0 = a) ( symmetric { 0 Q} { b} 0 = b) ) ( i dentRight { 0 Q} ) ) ( reflexive { 0 Q} ) a+b<0) )
where
open Group ( Ring.additiveGroup ℚ Ring)
open Setoid ( fieldOfFractionsSetoid ℤ IntDom)