@@ -22,6 +22,7 @@ open import elementary-number-theory.multiplicative-group-of-positive-rational-n
2222open import elementary-number-theory.multiplicative-group-of-rational-numbers
2323open import elementary-number-theory.multiplicative-monoid-of-rational-numbers
2424open import elementary-number-theory.negative-rational-numbers
25+ open import elementary-number-theory.poset-closed-intervals-rational-numbers
2526open import elementary-number-theory.positive-and-negative-rational-numbers
2627open import elementary-number-theory.positive-rational-numbers
2728open import elementary-number-theory.rational-numbers
@@ -753,3 +754,137 @@ commutative-monoid-mul-closed-interval-ℚ =
753754 ( monoid-mul-closed-interval-ℚ ,
754755 commutative-mul-closed-interval-ℚ)
755756```
757+
758+ ### Multiplication of closed intervals is subdistributive
759+
760+ ``` agda
761+ abstract
762+ left-subdistributive-mul-add-closed-interval-ℚ :
763+ ([a,b] [c,d] [e,f] : closed-interval-ℚ) →
764+ leq-closed-interval-ℚ
765+ ( mul-closed-interval-ℚ [a,b] (add-closed-interval-ℚ [c,d] [e,f]))
766+ ( add-closed-interval-ℚ
767+ ( mul-closed-interval-ℚ [a,b] [c,d])
768+ ( mul-closed-interval-ℚ [a,b] [e,f]))
769+ left-subdistributive-mul-add-closed-interval-ℚ [a,b] [c,d] [e,f] =
770+ leq-closed-interval-leq-subtype-ℚ
771+ ( mul-closed-interval-ℚ [a,b] (add-closed-interval-ℚ [c,d] [e,f]))
772+ ( add-closed-interval-ℚ
773+ ( mul-closed-interval-ℚ [a,b] [c,d])
774+ ( mul-closed-interval-ℚ [a,b] [e,f]))
775+ ( λ q q∈[a,b]⟨[c,d]+[e,f]⟩ →
776+ let
777+ open
778+ do-syntax-trunc-Prop
779+ ( subtype-closed-interval-ℚ
780+ ( add-closed-interval-ℚ
781+ ( mul-closed-interval-ℚ [a,b] [c,d])
782+ ( mul-closed-interval-ℚ [a,b] [e,f]))
783+ ( q))
784+ in do
785+ ((qab , qcdef) , qab∈[a,b] , qcdef∈[c,d]+[e,f] , q=qab*qcdef) ←
786+ is-in-minkowski-product-is-in-mul-closed-interval-ℚ
787+ ( [a,b])
788+ ( add-closed-interval-ℚ [c,d] [e,f])
789+ ( q)
790+ ( q∈[a,b]⟨[c,d]+[e,f]⟩)
791+ ((qcd , qef) , qcd∈[c,d] , qef∈[e,f] , qcdef=qcd+qef) ←
792+ is-in-minkowski-sum-is-in-add-closed-interval-ℚ
793+ ( [c,d])
794+ ( [e,f])
795+ ( qcdef)
796+ ( qcdef∈[c,d]+[e,f])
797+ inv-tr
798+ ( is-in-closed-interval-ℚ
799+ ( add-closed-interval-ℚ
800+ ( mul-closed-interval-ℚ [a,b] [c,d])
801+ ( mul-closed-interval-ℚ [a,b] [e,f])))
802+ ( ( q=qab*qcdef) ∙
803+ ( ap-mul-ℚ refl qcdef=qcd+qef) ∙
804+ ( left-distributive-mul-add-ℚ qab qcd qef))
805+ ( is-in-add-interval-add-is-in-closed-interval-ℚ
806+ ( mul-closed-interval-ℚ [a,b] [c,d])
807+ ( mul-closed-interval-ℚ [a,b] [e,f])
808+ ( qab *ℚ qcd)
809+ ( qab *ℚ qef)
810+ ( is-in-mul-interval-mul-is-in-closed-interval-ℚ
811+ ( [a,b])
812+ ( [c,d])
813+ ( qab)
814+ ( qcd)
815+ ( qab∈[a,b])
816+ ( qcd∈[c,d]))
817+ ( is-in-mul-interval-mul-is-in-closed-interval-ℚ
818+ ( [a,b])
819+ ( [e,f])
820+ ( qab)
821+ ( qef)
822+ ( qab∈[a,b])
823+ ( qef∈[e,f]))))
824+ ```
825+
826+ ### Containment of intervals is preserved by multiplication
827+
828+ ``` agda
829+ abstract
830+ preserves-leq-left-mul-closed-interval-ℚ :
831+ ([c,d] [a,b] [a',b'] : closed-interval-ℚ) →
832+ leq-closed-interval-ℚ [a,b] [a',b'] →
833+ leq-closed-interval-ℚ
834+ ( mul-closed-interval-ℚ [a,b] [c,d])
835+ ( mul-closed-interval-ℚ [a',b'] [c,d])
836+ preserves-leq-left-mul-closed-interval-ℚ [c,d] [a,b] [a',b'] [a,b]⊆[a',b'] =
837+ leq-closed-interval-leq-subtype-ℚ
838+ ( mul-closed-interval-ℚ [a,b] [c,d])
839+ ( mul-closed-interval-ℚ [a',b'] [c,d])
840+ ( binary-tr
841+ ( _⊆_)
842+ ( eq-minkowski-mul-closed-interval-ℚ [a,b] [c,d])
843+ ( eq-minkowski-mul-closed-interval-ℚ [a',b'] [c,d])
844+ ( preserves-leq-left-minkowski-mul-Commutative-Monoid
845+ ( commutative-monoid-mul-ℚ)
846+ ( subtype-closed-interval-ℚ [c,d])
847+ ( subtype-closed-interval-ℚ [a,b])
848+ ( subtype-closed-interval-ℚ [a',b'])
849+ ( leq-subtype-leq-closed-interval-ℚ [a,b] [a',b'] [a,b]⊆[a',b'])))
850+
851+ preserves-leq-right-mul-closed-interval-ℚ :
852+ ([a,b] [c,d] [c',d'] : closed-interval-ℚ) →
853+ leq-closed-interval-ℚ [c,d] [c',d'] →
854+ leq-closed-interval-ℚ
855+ ( mul-closed-interval-ℚ [a,b] [c,d])
856+ ( mul-closed-interval-ℚ [a,b] [c',d'])
857+ preserves-leq-right-mul-closed-interval-ℚ [a,b] [c,d] [c',d'] [c,d]⊆[c',d'] =
858+ binary-tr
859+ ( leq-closed-interval-ℚ)
860+ ( commutative-mul-closed-interval-ℚ [c,d] [a,b])
861+ ( commutative-mul-closed-interval-ℚ [c',d'] [a,b])
862+ ( preserves-leq-left-mul-closed-interval-ℚ
863+ ( [a,b])
864+ ( [c,d])
865+ ( [c',d'])
866+ ( [c,d]⊆[c',d']))
867+
868+ preserves-leq-mul-closed-interval-ℚ :
869+ ([a,b] [a',b'] [c,d] [c',d'] : closed-interval-ℚ) →
870+ leq-closed-interval-ℚ [a,b] [a',b'] → leq-closed-interval-ℚ [c,d] [c',d'] →
871+ leq-closed-interval-ℚ
872+ ( mul-closed-interval-ℚ [a,b] [c,d])
873+ ( mul-closed-interval-ℚ [a',b'] [c',d'])
874+ preserves-leq-mul-closed-interval-ℚ
875+ [a,b] [a',b'] [c,d] [c',d'] [a,b]⊆[a',b'] [c,d]⊆[c',d'] =
876+ transitive-leq-closed-interval-ℚ
877+ ( mul-closed-interval-ℚ [a,b] [c,d])
878+ ( mul-closed-interval-ℚ [a,b] [c',d'])
879+ ( mul-closed-interval-ℚ [a',b'] [c',d'])
880+ ( preserves-leq-left-mul-closed-interval-ℚ
881+ ( [c',d'])
882+ ( [a,b])
883+ ( [a',b'])
884+ ( [a,b]⊆[a',b']))
885+ ( preserves-leq-right-mul-closed-interval-ℚ
886+ ( [a,b])
887+ ( [c,d])
888+ ( [c',d'])
889+ ( [c,d]⊆[c',d']))
890+ ```
0 commit comments