@@ -21,13 +21,11 @@ import Algebra.Structures as AlgebraicStructures
2121open import Data.Bool.Base using (Bool; false; true; not; if_then_else_)
2222open import Data.Fin.Base using (Fin; zero; suc; cast; toℕ)
2323open import Data.List.Base as List
24- open import Data.List.Membership.Propositional using (_∈_)
2524open import Data.List.Relation.Unary.All using (All; []; _∷_)
2625open import Data.List.Relation.Unary.Any using (Any; here; there)
2726open import Data.Maybe.Base as Maybe using (Maybe; just; nothing)
2827open import Data.Maybe.Relation.Unary.Any using (just) renaming (Any to MAny)
2928open import Data.Nat.Base
30- open import Data.Nat.Divisibility using (_∣_; divides; ∣n⇒∣m*n)
3129open import Data.Nat.Properties
3230open import Data.Product.Base as Product
3331 using (_×_; _,_; uncurry; uncurry′; proj₁; proj₂; <_,_>)
@@ -829,34 +827,6 @@ mapMaybeIsInj₂∘mapInj₂ = mapMaybe-map-retract λ _ → refl
829827mapMaybeIsInj₂∘mapInj₁ : (xs : List A) → mapMaybe (isInj₂ {B = B}) (map inj₁ xs) ≡ []
830828mapMaybeIsInj₂∘mapInj₁ = mapMaybe-map-none λ _ → refl
831829
832- ------------------------------------------------------------------------
833- -- sum
834-
835- sum-++ : ∀ xs ys → sum (xs ++ ys) ≡ sum xs + sum ys
836- sum-++ [] ys = refl
837- sum-++ (x ∷ xs) ys = begin
838- x + sum (xs ++ ys) ≡⟨ cong (x +_) (sum-++ xs ys) ⟩
839- x + (sum xs + sum ys) ≡⟨ sym (+-assoc x _ _) ⟩
840- (x + sum xs) + sum ys ∎
841-
842- ------------------------------------------------------------------------
843- -- product
844-
845- ∈⇒∣product : ∀ {n ns} → n ∈ ns → n ∣ product ns
846- ∈⇒∣product {n} {n ∷ ns} (here refl) = divides (product ns) (*-comm n (product ns))
847- ∈⇒∣product {n} {m ∷ ns} (there n∈ns) = ∣n⇒∣m*n m (∈⇒∣product n∈ns)
848-
849- product≢0 : ∀ {ns} → All NonZero ns → NonZero (product ns)
850- product≢0 [] = _
851- product≢0 {n ∷ ns} (n≢0 ∷ ns≢0) = m*n≢0 n (product ns) {{n≢0}} {{product≢0 ns≢0}}
852-
853- ∈⇒≤product : ∀ {n ns} → All NonZero ns → n ∈ ns → n ≤ product ns
854- ∈⇒≤product {ns = n ∷ ns} (_ ∷ ns≢0) (here refl) =
855- m≤m*n n (product ns) {{product≢0 ns≢0}}
856- ∈⇒≤product {ns = n ∷ _} (n≢0 ∷ ns≢0) (there n∈ns) =
857- m≤n⇒m≤o*n n {{n≢0}} (∈⇒≤product ns≢0 n∈ns)
858-
859-
860830------------------------------------------------------------------------
861831-- applyUpTo
862832
@@ -1534,7 +1504,7 @@ module _ (f : A → B) where
15341504
15351505
15361506------------------------------------------------------------------------
1537- -- DEPRECATED
1507+ -- DEPRECATED NAMES
15381508------------------------------------------------------------------------
15391509-- Please use the new names as continuing support for the old names is
15401510-- not guaranteed.
@@ -1565,12 +1535,6 @@ map-++-commute = map-++
15651535Please use map-++ instead."
15661536#-}
15671537
1568- sum-++-commute = sum-++
1569- {-# WARNING_ON_USAGE sum-++-commute
1570- "Warning: map-++-commute was deprecated in v2.0.
1571- Please use map-++ instead."
1572- #-}
1573-
15741538reverse-map-commute = reverse-map
15751539{-# WARNING_ON_USAGE reverse-map-commute
15761540"Warning: reverse-map-commute was deprecated in v2.0.
@@ -1658,3 +1622,50 @@ concat-[-] = concat-map-[_]
16581622"Warning: concat-[-] was deprecated in v2.2.
16591623Please use concat-map-[_] instead."
16601624#-}
1625+
1626+ -- Version 2.3
1627+
1628+ sum-++ : ∀ xs ys → sum (xs ++ ys) ≡ sum xs + sum ys
1629+ sum-++ [] ys = refl
1630+ sum-++ (x ∷ xs) ys = begin
1631+ x + sum (xs ++ ys) ≡⟨ cong (x +_) (sum-++ xs ys) ⟩
1632+ x + (sum xs + sum ys) ≡⟨ +-assoc x _ _ ⟨
1633+ (x + sum xs) + sum ys ∎
1634+ {-# WARNING_ON_USAGE sum-++
1635+ "Warning: sum-++ was deprecated in v2.3.
1636+ Please use Data.Nat.ListAction.Properties.sum-++ instead."
1637+ #-}
1638+ sum-++-commute = sum-++
1639+ {-# WARNING_ON_USAGE sum-++-commute
1640+ "Warning: sum-++-commute was deprecated in v2.0.
1641+ Please use Data.Nat.ListAction.Properties.sum-++ instead."
1642+ #-}
1643+
1644+ open import Data.List.Membership.Propositional using (_∈_)
1645+ open import Data.Nat.Divisibility using (_∣_; m∣m*n; ∣n⇒∣m*n)
1646+
1647+ ∈⇒∣product : ∀ {n ns} → n ∈ ns → n ∣ product ns
1648+ ∈⇒∣product {ns = n ∷ ns} (here refl) = m∣m*n (product ns)
1649+ ∈⇒∣product {ns = m ∷ ns} (there n∈ns) = ∣n⇒∣m*n m (∈⇒∣product n∈ns)
1650+ {-# WARNING_ON_USAGE ∈⇒∣product
1651+ "Warning: ∈⇒∣product was deprecated in v2.3.
1652+ Please use Data.Nat.ListAction.Properties.∈⇒∣product instead."
1653+ #-}
1654+
1655+ product≢0 : ∀ {ns} → All NonZero ns → NonZero (product ns)
1656+ product≢0 [] = _
1657+ product≢0 {n ∷ ns} (n≢0 ∷ ns≢0) = m*n≢0 n (product ns) {{n≢0}} {{product≢0 ns≢0}}
1658+ {-# WARNING_ON_USAGE product≢0
1659+ "Warning: product≢0 was deprecated in v2.3.
1660+ Please use Data.Nat.ListAction.Properties.product≢0 instead."
1661+ #-}
1662+
1663+ ∈⇒≤product : ∀ {n ns} → All NonZero ns → n ∈ ns → n ≤ product ns
1664+ ∈⇒≤product {ns = n ∷ ns} (_ ∷ ns≢0) (here refl) =
1665+ m≤m*n n (product ns) {{product≢0 ns≢0}}
1666+ ∈⇒≤product {ns = n ∷ _} (n≢0 ∷ ns≢0) (there n∈ns) =
1667+ m≤n⇒m≤o*n n {{n≢0}} (∈⇒≤product ns≢0 n∈ns)
1668+ {-# WARNING_ON_USAGE ∈⇒≤product
1669+ "Warning: ∈⇒≤product was deprecated in v2.3.
1670+ Please use Data.Nat.ListAction.Properties.∈⇒≤product instead."
1671+ #-}
0 commit comments